projen-modules 5.3.0 → 5.5.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/.jsii +43 -26
- package/API.md +13 -0
- package/README.md +6 -33
- package/docs/github-configuration.md +40 -0
- package/lib/components/github/contributing.d.ts +33 -0
- package/lib/components/github/contributing.js +104 -0
- package/lib/components/github/format.d.ts +4 -0
- package/lib/components/github/format.js +13 -0
- package/lib/components/github/mergify.js +40 -24
- package/lib/components/readme/elements/section.js +1 -1
- package/lib/components/readme/index.d.ts +5 -0
- package/lib/components/readme/index.js +8 -3
- package/lib/projects/cdk-ts/index.js +4 -2
- package/lib/projects/jsii/index.js +4 -2
- package/lib/projects/npm/index.js +4 -2
- package/lib/projects/python/index.js +4 -2
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
},
|
|
100
100
|
"name": "projen-modules",
|
|
101
101
|
"readme": {
|
|
102
|
-
"markdown": "<!-- ~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\". -->\n\n# projen-modules\n\nA collection of custom projen modules, that can be used to bootstrap and maintain consistent project configuration, tooling, dependencies, and builds.\n\n## Getting Started\n\nPrerequisites:\n* Node.js 22\n* Yarn 1 (classic)\n\n```sh\nyarn install\nnpx projen build\n```\n\nThis will:\n* Install the dependencies\n* Apply any projen changes\n* Run tests\n* Package project locally\n\nAny files changed by projen should be committed to git.\n\nRunning the tests like this will update any snapshot files, this should be reviewed and committed to git.\n\n## Testing\n\nTypes of testing:\n* Snapshot - projen project outputs are stored as a snapshot in the corresponding `__snapshots__` directory. When the project changes then it is expected that these snapshots change too and should be reviewed committed alongside the project.\n* Unit tests - these assert on specific functionality of the project and should be written for any new functionality added.\n\n\n## Creating a New Project\n\n\n```\nnpx projen new {project} --from projen-modules\n```\n\nSome projects may have required fields that need to be specified as part of this command, review any errors for details what needs to be specified.\n\n### Project Types\n\n| Project type | Description |\n| ---------------------------------------------- | -------------------------- |\n| [cdk-typescript-app](API.md#cdktypescriptapp-) | A typescript CDK app |\n| [npm-package](API.md#npmpackage-) | A typescript npm package |\n| [python-package](API.md#pythonpackage-) | A python package |\n| [jsii-package](API.md#jsiiproject-) | A typescript JSII package |\n\n## Project Structure\n\nAll source is located in `src` and is grouped by:\n* `components` - these are common building blocks that can be used by projects to implement specific project functionality.\n* `projects` - these are projects that can be built from this project (see #something)\n* `utils` - these are helper functions that are often reused\n\n`test` contains tests, and mirrors the `src` directory structure. Within here there are `__snapshots__` which contain snapshots of project tests (see #section).\n\n##
|
|
102
|
+
"markdown": "<!-- ~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\". -->\n\n# projen-modules\n\nA collection of custom projen modules, that can be used to bootstrap and maintain consistent project configuration, tooling, dependencies, and builds.\n\n## Getting Started\n\nPrerequisites:\n* Node.js 22\n* Yarn 1 (classic)\n\n```sh\nyarn install\nnpx projen build\n```\n\nThis will:\n* Install the dependencies\n* Apply any projen changes\n* Run tests\n* Package project locally\n\nAny files changed by projen should be committed to git.\n\nRunning the tests like this will update any snapshot files, this should be reviewed and committed to git.\n\n## Testing\n\nTypes of testing:\n* Snapshot - projen project outputs are stored as a snapshot in the corresponding `__snapshots__` directory. When the project changes then it is expected that these snapshots change too and should be reviewed committed alongside the project.\n* Unit tests - these assert on specific functionality of the project and should be written for any new functionality added.\n\n\n## Creating a New Project\n\n\n```\nnpx projen new {project} --from projen-modules\n```\n\nSome projects may have required fields that need to be specified as part of this command, review any errors for details what needs to be specified.\n\n### Project Types\n\n| Project type | Description |\n| ---------------------------------------------- | -------------------------- |\n| [cdk-typescript-app](API.md#cdktypescriptapp-) | A typescript CDK app |\n| [npm-package](API.md#npmpackage-) | A typescript npm package |\n| [python-package](API.md#pythonpackage-) | A python package |\n| [jsii-package](API.md#jsiiproject-) | A typescript JSII package |\n\n## Project Structure\n\nAll source is located in `src` and is grouped by:\n* `components` - these are common building blocks that can be used by projects to implement specific project functionality.\n* `projects` - these are projects that can be built from this project (see #something)\n* `utils` - these are helper functions that are often reused\n\n`test` contains tests, and mirrors the `src` directory structure. Within here there are `__snapshots__` which contain snapshots of project tests (see #section).\n\n## Contributing\n\nPull request titles must follow [Conventional Commits](https://www.conventionalcommits.org), with one of the types `feat`, `fix` or `chore`, such as `feat: describe the change`. The **Validate PR title** check fails until the title does.\n\nOnce a pull request is approved, or is opened by `daveshepherd`, and its checks pass, the [Mergify](https://mergify.com) merge queue squash merges it, with its title as the commit message. Draft pull requests and those labelled `do-not-merge` are not merged.\n\nThe type decides the next release: `feat` releases a minor version and `fix` a patch version, while a breaking change, marked by `!` after the type (such as `feat!: ...`) or a `BREAKING CHANGE:` footer, releases a major version. Other types still release a patch version. While the version is below 1.0.0, a breaking change releases a minor version and `feat` a patch version.\n\n## GitHub Configuration\n\nThe one-off configuration that this repository needs on GitHub, such as the Mergify merge queue and the branch ruleset, is described in [docs/github-configuration.md](docs/github-configuration.md).\n\n## Known Issues\n\n`cdk-typescript-app` defaults to Jest 30, which hoists `@sinonjs/fake-timers` 15 whose bundled types conflict with the `@types/sinon` used by `aws-sdk-client-mock`. Projects using `aws-sdk-client-mock` can set `compilerOptions.skipLibCheck` on the test tsconfig:\n\n```ts\nproject.tryFindObjectFile('test/tsconfig.json')?.addOverride('compilerOptions.skipLibCheck', true);\n```"
|
|
103
103
|
},
|
|
104
104
|
"repository": {
|
|
105
105
|
"type": "git",
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
},
|
|
171
171
|
"locationInModule": {
|
|
172
172
|
"filename": "src/projects/cdk-ts/index.ts",
|
|
173
|
-
"line":
|
|
173
|
+
"line": 63
|
|
174
174
|
},
|
|
175
175
|
"parameters": [
|
|
176
176
|
{
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"kind": "class",
|
|
185
185
|
"locationInModule": {
|
|
186
186
|
"filename": "src/projects/cdk-ts/index.ts",
|
|
187
|
-
"line":
|
|
187
|
+
"line": 60
|
|
188
188
|
},
|
|
189
189
|
"name": "CdkTypeScriptApp",
|
|
190
190
|
"properties": [
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
},
|
|
195
195
|
"locationInModule": {
|
|
196
196
|
"filename": "src/projects/cdk-ts/index.ts",
|
|
197
|
-
"line":
|
|
197
|
+
"line": 61
|
|
198
198
|
},
|
|
199
199
|
"name": "readme",
|
|
200
200
|
"type": {
|
|
@@ -3787,7 +3787,7 @@
|
|
|
3787
3787
|
},
|
|
3788
3788
|
"locationInModule": {
|
|
3789
3789
|
"filename": "src/projects/jsii/index.ts",
|
|
3790
|
-
"line":
|
|
3790
|
+
"line": 44
|
|
3791
3791
|
},
|
|
3792
3792
|
"parameters": [
|
|
3793
3793
|
{
|
|
@@ -3801,7 +3801,7 @@
|
|
|
3801
3801
|
"kind": "class",
|
|
3802
3802
|
"locationInModule": {
|
|
3803
3803
|
"filename": "src/projects/jsii/index.ts",
|
|
3804
|
-
"line":
|
|
3804
|
+
"line": 41
|
|
3805
3805
|
},
|
|
3806
3806
|
"name": "JsiiProject",
|
|
3807
3807
|
"properties": [
|
|
@@ -3811,7 +3811,7 @@
|
|
|
3811
3811
|
},
|
|
3812
3812
|
"locationInModule": {
|
|
3813
3813
|
"filename": "src/projects/jsii/index.ts",
|
|
3814
|
-
"line":
|
|
3814
|
+
"line": 42
|
|
3815
3815
|
},
|
|
3816
3816
|
"name": "readme",
|
|
3817
3817
|
"type": {
|
|
@@ -7113,7 +7113,7 @@
|
|
|
7113
7113
|
},
|
|
7114
7114
|
"locationInModule": {
|
|
7115
7115
|
"filename": "src/projects/npm/index.ts",
|
|
7116
|
-
"line":
|
|
7116
|
+
"line": 43
|
|
7117
7117
|
},
|
|
7118
7118
|
"parameters": [
|
|
7119
7119
|
{
|
|
@@ -7127,7 +7127,7 @@
|
|
|
7127
7127
|
"kind": "class",
|
|
7128
7128
|
"locationInModule": {
|
|
7129
7129
|
"filename": "src/projects/npm/index.ts",
|
|
7130
|
-
"line":
|
|
7130
|
+
"line": 40
|
|
7131
7131
|
},
|
|
7132
7132
|
"name": "NpmPackage",
|
|
7133
7133
|
"properties": [
|
|
@@ -7137,7 +7137,7 @@
|
|
|
7137
7137
|
},
|
|
7138
7138
|
"locationInModule": {
|
|
7139
7139
|
"filename": "src/projects/npm/index.ts",
|
|
7140
|
-
"line":
|
|
7140
|
+
"line": 41
|
|
7141
7141
|
},
|
|
7142
7142
|
"name": "readme",
|
|
7143
7143
|
"type": {
|
|
@@ -10144,7 +10144,7 @@
|
|
|
10144
10144
|
},
|
|
10145
10145
|
"locationInModule": {
|
|
10146
10146
|
"filename": "src/projects/python/index.ts",
|
|
10147
|
-
"line":
|
|
10147
|
+
"line": 40
|
|
10148
10148
|
},
|
|
10149
10149
|
"parameters": [
|
|
10150
10150
|
{
|
|
@@ -10158,7 +10158,7 @@
|
|
|
10158
10158
|
"kind": "class",
|
|
10159
10159
|
"locationInModule": {
|
|
10160
10160
|
"filename": "src/projects/python/index.ts",
|
|
10161
|
-
"line":
|
|
10161
|
+
"line": 36
|
|
10162
10162
|
},
|
|
10163
10163
|
"name": "PythonPackage",
|
|
10164
10164
|
"properties": [
|
|
@@ -10169,7 +10169,7 @@
|
|
|
10169
10169
|
"immutable": true,
|
|
10170
10170
|
"locationInModule": {
|
|
10171
10171
|
"filename": "src/projects/python/index.ts",
|
|
10172
|
-
"line":
|
|
10172
|
+
"line": 37
|
|
10173
10173
|
},
|
|
10174
10174
|
"name": "autoMerge",
|
|
10175
10175
|
"optional": true,
|
|
@@ -10183,7 +10183,7 @@
|
|
|
10183
10183
|
},
|
|
10184
10184
|
"locationInModule": {
|
|
10185
10185
|
"filename": "src/projects/python/index.ts",
|
|
10186
|
-
"line":
|
|
10186
|
+
"line": 38
|
|
10187
10187
|
},
|
|
10188
10188
|
"name": "readme",
|
|
10189
10189
|
"type": {
|
|
@@ -11405,7 +11405,7 @@
|
|
|
11405
11405
|
},
|
|
11406
11406
|
"locationInModule": {
|
|
11407
11407
|
"filename": "src/components/readme/index.ts",
|
|
11408
|
-
"line":
|
|
11408
|
+
"line": 67
|
|
11409
11409
|
},
|
|
11410
11410
|
"parameters": [
|
|
11411
11411
|
{
|
|
@@ -11426,7 +11426,7 @@
|
|
|
11426
11426
|
"kind": "class",
|
|
11427
11427
|
"locationInModule": {
|
|
11428
11428
|
"filename": "src/components/readme/index.ts",
|
|
11429
|
-
"line":
|
|
11429
|
+
"line": 56
|
|
11430
11430
|
},
|
|
11431
11431
|
"methods": [
|
|
11432
11432
|
{
|
|
@@ -11436,7 +11436,7 @@
|
|
|
11436
11436
|
},
|
|
11437
11437
|
"locationInModule": {
|
|
11438
11438
|
"filename": "src/components/readme/index.ts",
|
|
11439
|
-
"line":
|
|
11439
|
+
"line": 60
|
|
11440
11440
|
},
|
|
11441
11441
|
"name": "of",
|
|
11442
11442
|
"parameters": [
|
|
@@ -11463,7 +11463,7 @@
|
|
|
11463
11463
|
},
|
|
11464
11464
|
"locationInModule": {
|
|
11465
11465
|
"filename": "src/components/readme/index.ts",
|
|
11466
|
-
"line":
|
|
11466
|
+
"line": 91
|
|
11467
11467
|
},
|
|
11468
11468
|
"name": "addSection",
|
|
11469
11469
|
"parameters": [
|
|
@@ -11501,7 +11501,7 @@
|
|
|
11501
11501
|
},
|
|
11502
11502
|
"locationInModule": {
|
|
11503
11503
|
"filename": "src/components/readme/index.ts",
|
|
11504
|
-
"line":
|
|
11504
|
+
"line": 114
|
|
11505
11505
|
},
|
|
11506
11506
|
"name": "removeSection",
|
|
11507
11507
|
"parameters": [
|
|
@@ -11525,7 +11525,7 @@
|
|
|
11525
11525
|
},
|
|
11526
11526
|
"locationInModule": {
|
|
11527
11527
|
"filename": "src/components/readme/index.ts",
|
|
11528
|
-
"line":
|
|
11528
|
+
"line": 131
|
|
11529
11529
|
},
|
|
11530
11530
|
"name": "synthesizeContent",
|
|
11531
11531
|
"overrides": "projen.FileBase",
|
|
@@ -11552,7 +11552,7 @@
|
|
|
11552
11552
|
},
|
|
11553
11553
|
"locationInModule": {
|
|
11554
11554
|
"filename": "src/components/readme/index.ts",
|
|
11555
|
-
"line":
|
|
11555
|
+
"line": 126
|
|
11556
11556
|
},
|
|
11557
11557
|
"name": "tryFindSection",
|
|
11558
11558
|
"parameters": [
|
|
@@ -11581,7 +11581,7 @@
|
|
|
11581
11581
|
"immutable": true,
|
|
11582
11582
|
"locationInModule": {
|
|
11583
11583
|
"filename": "src/components/readme/index.ts",
|
|
11584
|
-
"line":
|
|
11584
|
+
"line": 82
|
|
11585
11585
|
},
|
|
11586
11586
|
"name": "sections",
|
|
11587
11587
|
"type": {
|
|
@@ -11599,7 +11599,7 @@
|
|
|
11599
11599
|
},
|
|
11600
11600
|
"locationInModule": {
|
|
11601
11601
|
"filename": "src/components/readme/index.ts",
|
|
11602
|
-
"line":
|
|
11602
|
+
"line": 64
|
|
11603
11603
|
},
|
|
11604
11604
|
"name": "description",
|
|
11605
11605
|
"optional": true,
|
|
@@ -11658,6 +11658,23 @@
|
|
|
11658
11658
|
},
|
|
11659
11659
|
"name": "ReadmeOrder",
|
|
11660
11660
|
"properties": [
|
|
11661
|
+
{
|
|
11662
|
+
"const": true,
|
|
11663
|
+
"docs": {
|
|
11664
|
+
"stability": "stable",
|
|
11665
|
+
"summary": "How to contribute, such as the pull request title format and how pull requests are merged."
|
|
11666
|
+
},
|
|
11667
|
+
"immutable": true,
|
|
11668
|
+
"locationInModule": {
|
|
11669
|
+
"filename": "src/components/readme/index.ts",
|
|
11670
|
+
"line": 42
|
|
11671
|
+
},
|
|
11672
|
+
"name": "CONTRIBUTING",
|
|
11673
|
+
"static": true,
|
|
11674
|
+
"type": {
|
|
11675
|
+
"primitive": "number"
|
|
11676
|
+
}
|
|
11677
|
+
},
|
|
11661
11678
|
{
|
|
11662
11679
|
"const": true,
|
|
11663
11680
|
"docs": {
|
|
@@ -11701,7 +11718,7 @@
|
|
|
11701
11718
|
"immutable": true,
|
|
11702
11719
|
"locationInModule": {
|
|
11703
11720
|
"filename": "src/components/readme/index.ts",
|
|
11704
|
-
"line":
|
|
11721
|
+
"line": 46
|
|
11705
11722
|
},
|
|
11706
11723
|
"name": "REFERENCE",
|
|
11707
11724
|
"static": true,
|
|
@@ -11843,6 +11860,6 @@
|
|
|
11843
11860
|
"symbolId": "src/components/readme/elements/section:SectionOptions"
|
|
11844
11861
|
}
|
|
11845
11862
|
},
|
|
11846
|
-
"version": "5.
|
|
11847
|
-
"fingerprint": "
|
|
11863
|
+
"version": "5.5.0",
|
|
11864
|
+
"fingerprint": "RTUKPAK3v6ZEBDtVFO1FSCcMsxP8abOp0CXWHe44we0="
|
|
11848
11865
|
}
|
package/API.md
CHANGED
|
@@ -14727,6 +14727,7 @@ Orders of the bands of sections in the README, leaving room for sections in betw
|
|
|
14727
14727
|
|
|
14728
14728
|
| **Name** | **Type** | **Description** |
|
|
14729
14729
|
| --- | --- | --- |
|
|
14730
|
+
| <code><a href="#projen-modules.ReadmeOrder.property.CONTRIBUTING">CONTRIBUTING</a></code> | <code>number</code> | How to contribute, such as the pull request title format and how pull requests are merged. |
|
|
14730
14731
|
| <code><a href="#projen-modules.ReadmeOrder.property.DEFAULT">DEFAULT</a></code> | <code>number</code> | Sections added without an order. |
|
|
14731
14732
|
| <code><a href="#projen-modules.ReadmeOrder.property.INTRODUCTION">INTRODUCTION</a></code> | <code>number</code> | Sections a reader needs first, such as getting started. |
|
|
14732
14733
|
| <code><a href="#projen-modules.ReadmeOrder.property.REFERENCE">REFERENCE</a></code> | <code>number</code> | Reference material, such as repository configuration and known issues. |
|
|
@@ -14734,6 +14735,18 @@ Orders of the bands of sections in the README, leaving room for sections in betw
|
|
|
14734
14735
|
|
|
14735
14736
|
---
|
|
14736
14737
|
|
|
14738
|
+
##### `CONTRIBUTING`<sup>Required</sup> <a name="CONTRIBUTING" id="projen-modules.ReadmeOrder.property.CONTRIBUTING"></a>
|
|
14739
|
+
|
|
14740
|
+
```typescript
|
|
14741
|
+
public readonly CONTRIBUTING: number;
|
|
14742
|
+
```
|
|
14743
|
+
|
|
14744
|
+
- *Type:* number
|
|
14745
|
+
|
|
14746
|
+
How to contribute, such as the pull request title format and how pull requests are merged.
|
|
14747
|
+
|
|
14748
|
+
---
|
|
14749
|
+
|
|
14737
14750
|
##### `DEFAULT`<sup>Required</sup> <a name="DEFAULT" id="projen-modules.ReadmeOrder.property.DEFAULT"></a>
|
|
14738
14751
|
|
|
14739
14752
|
```typescript
|
package/README.md
CHANGED
|
@@ -59,44 +59,17 @@ All source is located in `src` and is grouped by:
|
|
|
59
59
|
|
|
60
60
|
`test` contains tests, and mirrors the `src` directory structure. Within here there are `__snapshots__` which contain snapshots of project tests (see #section).
|
|
61
61
|
|
|
62
|
-
##
|
|
63
|
-
|
|
64
|
-
All pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request is approved, or is opened by `daveshepherd`, and its checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.
|
|
65
|
-
|
|
66
|
-
The repository must be configured as below so that nothing can be merged without going through the queue.
|
|
67
|
-
|
|
68
|
-
### Mergify
|
|
69
|
-
|
|
70
|
-
Install the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.
|
|
71
|
-
|
|
72
|
-
### Pull request settings
|
|
62
|
+
## Contributing
|
|
73
63
|
|
|
74
|
-
|
|
75
|
-
* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.
|
|
76
|
-
* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.
|
|
77
|
-
* Tick **Automatically delete head branches**.
|
|
64
|
+
Pull request titles must follow [Conventional Commits](https://www.conventionalcommits.org), with one of the types `feat`, `fix` or `chore`, such as `feat: describe the change`. The **Validate PR title** check fails until the title does.
|
|
78
65
|
|
|
79
|
-
|
|
66
|
+
Once a pull request is approved, or is opened by `daveshepherd`, and its checks pass, the [Mergify](https://mergify.com) merge queue squash merges it, with its title as the commit message. Draft pull requests and those labelled `do-not-merge` are not merged.
|
|
80
67
|
|
|
81
|
-
|
|
68
|
+
The type decides the next release: `feat` releases a minor version and `fix` a patch version, while a breaking change, marked by `!` after the type (such as `feat!: ...`) or a `BREAKING CHANGE:` footer, releases a major version. Other types still release a patch version. While the version is below 1.0.0, a breaking change releases a minor version and `feat` a patch version.
|
|
82
69
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
CodeQL runs from `.github/workflows/codeql.yml`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the `CodeQL` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.
|
|
86
|
-
|
|
87
|
-
### Branch ruleset
|
|
88
|
-
|
|
89
|
-
In **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:
|
|
90
|
-
* **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.
|
|
91
|
-
* **Restrict updates**: only bypass actors can update the branch, so pull requests cannot be merged from the GitHub UI or CLI and commits cannot be pushed directly.
|
|
92
|
-
* **Restrict deletions** and **Block force pushes**.
|
|
93
|
-
* **Require a pull request before merging**, with 0 required approvals, because Mergify requires approvals itself for authors other than `daveshepherd` and is exempt from this rule. Tick **Dismiss stale pull request approvals when new commits are pushed**, so that commits pushed after an approval need approving again before the queue merges them.
|
|
94
|
-
* **Require status checks to pass**, listing the checks that `.mergify.yml` waits for: `build`, `package-js`, `package-python`. Leave **Require branches to be up to date before merging** unticked, as the queue already updates and retests each pull request.
|
|
95
|
-
* **Require code scanning results**, with the tool **CodeQL**, security alerts set to **High or higher** and alerts set to **Errors**. Mergify is exempt from this rule, so `.mergify.yml` also waits for the `CodeQL` check instead.
|
|
96
|
-
|
|
97
|
-
Do not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.
|
|
70
|
+
## GitHub Configuration
|
|
98
71
|
|
|
99
|
-
|
|
72
|
+
The one-off configuration that this repository needs on GitHub, such as the Mergify merge queue and the branch ruleset, is described in [docs/github-configuration.md](docs/github-configuration.md).
|
|
100
73
|
|
|
101
74
|
## Known Issues
|
|
102
75
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!-- ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". -->
|
|
2
|
+
|
|
3
|
+
# GitHub Configuration
|
|
4
|
+
|
|
5
|
+
All pull requests are merged by the [Mergify](https://mergify.com) merge queue, configured in `.mergify.yml`. Once a pull request is approved, or is opened by `daveshepherd`, and its checks pass, Mergify queues it, brings it up to date with the default branch, waits for the checks again and squash merges it. Draft pull requests and those labelled `do-not-merge` are not merged.
|
|
6
|
+
|
|
7
|
+
The repository must be configured as below so that nothing can be merged without going through the queue.
|
|
8
|
+
|
|
9
|
+
## Mergify
|
|
10
|
+
|
|
11
|
+
Install the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.
|
|
12
|
+
|
|
13
|
+
## Pull request settings
|
|
14
|
+
|
|
15
|
+
In **Settings → General → Pull Requests**:
|
|
16
|
+
* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.
|
|
17
|
+
* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.
|
|
18
|
+
* Tick **Automatically delete head branches**.
|
|
19
|
+
|
|
20
|
+
## Actions settings
|
|
21
|
+
|
|
22
|
+
In **Settings → Actions → General**, set **Approval for running fork pull request workflows from contributors** to **Require approval for all external contributors**. A pull request from a fork runs its own copy of the workflows, so it can change how the required checks pass.
|
|
23
|
+
|
|
24
|
+
## Code scanning
|
|
25
|
+
|
|
26
|
+
CodeQL runs from `.github/workflows/codeql.yml`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the `CodeQL` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.
|
|
27
|
+
|
|
28
|
+
## Branch ruleset
|
|
29
|
+
|
|
30
|
+
In **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:
|
|
31
|
+
* **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.
|
|
32
|
+
* **Restrict updates**: only bypass actors can update the branch, so pull requests cannot be merged from the GitHub UI or CLI and commits cannot be pushed directly.
|
|
33
|
+
* **Restrict deletions** and **Block force pushes**.
|
|
34
|
+
* **Require a pull request before merging**, with 0 required approvals, because Mergify requires approvals itself for authors other than `daveshepherd` and is exempt from this rule. Tick **Dismiss stale pull request approvals when new commits are pushed**, so that commits pushed after an approval need approving again before the queue merges them.
|
|
35
|
+
* **Require status checks to pass**, listing the checks that `.mergify.yml` waits for: `build`, `package-js`, `package-python`. Leave **Require branches to be up to date before merging** unticked, as the queue already updates and retests each pull request.
|
|
36
|
+
* **Require code scanning results**, with the tool **CodeQL**, security alerts set to **High or higher** and alerts set to **Errors**. Mergify is exempt from this rule, so `.mergify.yml` also waits for the `CodeQL` check instead.
|
|
37
|
+
|
|
38
|
+
Do not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.
|
|
39
|
+
|
|
40
|
+
If the queue is unavailable and a change has to be merged, add yourself to the bypass list temporarily and remove yourself afterwards.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, github, Project, ReleasableCommits } from 'projen';
|
|
2
|
+
export interface ContributingOptions {
|
|
3
|
+
/**
|
|
4
|
+
* The project's GitHub options, which configure the pull request title check
|
|
5
|
+
*/
|
|
6
|
+
readonly githubOptions?: github.GitHubOptions;
|
|
7
|
+
/**
|
|
8
|
+
* The project's releasable commits, which decide whether other types release
|
|
9
|
+
*/
|
|
10
|
+
readonly releasableCommits?: ReleasableCommits;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The Contributing section of the README, describing the pull request title
|
|
14
|
+
* check and the merge queue that are configured
|
|
15
|
+
*/
|
|
16
|
+
export declare class Contributing extends Component {
|
|
17
|
+
/**
|
|
18
|
+
* The project's Contributing section, created if it does not have one yet
|
|
19
|
+
*/
|
|
20
|
+
static of(project: Project): Contributing;
|
|
21
|
+
private pullRequestTitle?;
|
|
22
|
+
private mergeQueue?;
|
|
23
|
+
private constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Describes the pull request title check, if the project runs it
|
|
26
|
+
*/
|
|
27
|
+
configurePullRequestTitle(options: ContributingOptions): void;
|
|
28
|
+
/**
|
|
29
|
+
* Describes how pull requests are merged by the merge queue
|
|
30
|
+
*/
|
|
31
|
+
configureMergeQueue(description: string): void;
|
|
32
|
+
private render;
|
|
33
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Contributing = void 0;
|
|
4
|
+
const projen_1 = require("projen");
|
|
5
|
+
const javascript_1 = require("projen/lib/javascript");
|
|
6
|
+
const format_1 = require("./format");
|
|
7
|
+
const readme_1 = require("../readme");
|
|
8
|
+
// projen's default pull request title types; its PullRequestLint keeps its
|
|
9
|
+
// options private, so they are read from the project's options instead
|
|
10
|
+
const DEFAULT_TYPES = ['feat', 'fix', 'chore'];
|
|
11
|
+
function titleParagraph(title) {
|
|
12
|
+
const scope = title.scopes.length
|
|
13
|
+
? `${title.requireScope ? 'and a scope' : 'and, optionally, a scope'} from ${(0, format_1.formatList)(title.scopes)}`
|
|
14
|
+
: title.requireScope
|
|
15
|
+
? 'and a scope'
|
|
16
|
+
: '';
|
|
17
|
+
const exampleScope = title.requireScope || title.scopes.length
|
|
18
|
+
? `(${title.scopes[0] ?? 'scope'})`
|
|
19
|
+
: '';
|
|
20
|
+
return `Pull request titles must follow [Conventional Commits](https://www.conventionalcommits.org), with one of the types ${(0, format_1.formatList)(title.types)}${scope ? ` ${scope}` : ''}, such as \`${title.types[0]}${exampleScope}: describe the change\`. The **Validate PR title** check fails until the title does.`;
|
|
21
|
+
}
|
|
22
|
+
function releaseParagraph(title, mergeQueue) {
|
|
23
|
+
const bumps = [
|
|
24
|
+
...(title.types.includes('feat') ? ['`feat` releases a minor version'] : []),
|
|
25
|
+
...(title.types.includes('fix')
|
|
26
|
+
? [`\`fix\`${title.types.includes('feat') ? '' : ' releases'} a patch version`]
|
|
27
|
+
: []),
|
|
28
|
+
];
|
|
29
|
+
const otherTypes = title.types.filter((t) => t !== 'feat' && t !== 'fix');
|
|
30
|
+
const others = !otherTypes.length
|
|
31
|
+
? ''
|
|
32
|
+
: title.everyCommitReleases
|
|
33
|
+
? ' Other types still release a patch version.'
|
|
34
|
+
: ' Other types only release a patch version if `releasableCommits` counts them.';
|
|
35
|
+
const intro = mergeQueue
|
|
36
|
+
? 'The type decides the next release'
|
|
37
|
+
: 'Once a pull request is squash merged with its title as the commit message, its type decides the next release';
|
|
38
|
+
const preMajor = title.types.includes('feat')
|
|
39
|
+
? 'a breaking change releases a minor version and `feat` a patch version'
|
|
40
|
+
: 'a breaking change releases a minor version';
|
|
41
|
+
return `${intro}: ${bumps.length ? `${bumps.join(' and ')}, while ` : ''}a breaking change, marked by \`!\` after the type (such as \`${title.types[0]}!: ...\`) or a \`BREAKING CHANGE:\` footer, releases a major version.${others} While the version is below 1.0.0, ${preMajor}.`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The Contributing section of the README, describing the pull request title
|
|
45
|
+
* check and the merge queue that are configured
|
|
46
|
+
*/
|
|
47
|
+
class Contributing extends projen_1.Component {
|
|
48
|
+
/**
|
|
49
|
+
* The project's Contributing section, created if it does not have one yet
|
|
50
|
+
*/
|
|
51
|
+
static of(project) {
|
|
52
|
+
return (project.components.find((c) => c instanceof Contributing) ?? new Contributing(project));
|
|
53
|
+
}
|
|
54
|
+
pullRequestTitle;
|
|
55
|
+
mergeQueue;
|
|
56
|
+
constructor(project) {
|
|
57
|
+
super(project);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Describes the pull request title check, if the project runs it
|
|
61
|
+
*/
|
|
62
|
+
configurePullRequestTitle(options) {
|
|
63
|
+
const githubOptions = options.githubOptions ?? {};
|
|
64
|
+
const lintOptions = githubOptions.pullRequestLintOptions ?? {};
|
|
65
|
+
const project = this.project;
|
|
66
|
+
if (!project.github?.workflowsEnabled ||
|
|
67
|
+
!(githubOptions.pullRequestLint ?? true) ||
|
|
68
|
+
!(lintOptions.semanticTitle ?? true)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const titleOptions = lintOptions.semanticTitleOptions ?? {};
|
|
72
|
+
this.pullRequestTitle = {
|
|
73
|
+
types: titleOptions.types ?? DEFAULT_TYPES,
|
|
74
|
+
requireScope: titleOptions.requireScope ?? false,
|
|
75
|
+
scopes: titleOptions.scopes ?? [],
|
|
76
|
+
release: this.project instanceof javascript_1.NodeProject &&
|
|
77
|
+
this.project.release !== undefined,
|
|
78
|
+
everyCommitReleases: options.releasableCommits === undefined,
|
|
79
|
+
};
|
|
80
|
+
this.render();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Describes how pull requests are merged by the merge queue
|
|
84
|
+
*/
|
|
85
|
+
configureMergeQueue(description) {
|
|
86
|
+
this.mergeQueue = description;
|
|
87
|
+
this.render();
|
|
88
|
+
}
|
|
89
|
+
render() {
|
|
90
|
+
const paragraphs = [
|
|
91
|
+
...(this.pullRequestTitle ? [titleParagraph(this.pullRequestTitle)] : []),
|
|
92
|
+
...(this.mergeQueue ? [this.mergeQueue] : []),
|
|
93
|
+
...(this.pullRequestTitle?.release
|
|
94
|
+
? [releaseParagraph(this.pullRequestTitle, this.mergeQueue !== undefined)]
|
|
95
|
+
: []),
|
|
96
|
+
];
|
|
97
|
+
if (paragraphs.length) {
|
|
98
|
+
readme_1.Readme.of(this.project)?.addSection(CONTRIBUTING_TITLE, paragraphs.join('\n\n'), { order: readme_1.ReadmeOrder.CONTRIBUTING });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.Contributing = Contributing;
|
|
103
|
+
const CONTRIBUTING_TITLE = 'Contributing';
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJpYnV0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ2l0aHViL2NvbnRyaWJ1dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBdUU7QUFDdkUsc0RBQW9EO0FBQ3BELHFDQUFzQztBQUN0QyxzQ0FBZ0Q7QUFFaEQsMkVBQTJFO0FBQzNFLHVFQUF1RTtBQUN2RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFxQi9DLFNBQVMsY0FBYyxDQUFDLEtBQXVCO0lBQzdDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUMvQixDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixTQUFTLElBQUEsbUJBQVUsRUFBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdkcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ2xCLENBQUMsQ0FBQyxhQUFhO1lBQ2YsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULE1BQU0sWUFBWSxHQUNoQixLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUN2QyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sR0FBRztRQUNuQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsT0FBTyxzSEFBc0gsSUFBQSxtQkFBVSxFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksc0ZBQXNGLENBQUM7QUFDcFQsQ0FBQztBQUVELFNB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QUFrQixFQUNsQixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUN2QixFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLFlBQVksRUFBRSxDQUNwQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRjtBQXRFRCxvQ0FzRUM7QUFFRCxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViLCBQcm9qZWN0LCBSZWxlYXNhYmxlQ29tbWl0cyB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBmb3JtYXRMaXN0IH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgUmVhZG1lLCBSZWFkbWVPcmRlciB9IGZyb20gJy4uL3JlYWRtZSc7XG5cbi8vIHByb2plbidzIGRlZmF1bHQgcHVsbCByZXF1ZXN0IHRpdGxlIHR5cGVzOyBpdHMgUHVsbFJlcXVlc3RMaW50IGtlZXBzIGl0c1xuLy8gb3B0aW9ucyBwcml2YXRlLCBzbyB0aGV5IGFyZSByZWFkIGZyb20gdGhlIHByb2plY3QncyBvcHRpb25zIGluc3RlYWRcbmNvbnN0IERFRkFVTFRfVFlQRVMgPSBbJ2ZlYXQnLCAnZml4JywgJ2Nob3JlJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0aW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvamVjdCdzIEdpdEh1YiBvcHRpb25zLCB3aGljaCBjb25maWd1cmUgdGhlIHB1bGwgcmVxdWVzdCB0aXRsZSBjaGVja1xuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViT3B0aW9ucz86IGdpdGh1Yi5HaXRIdWJPcHRpb25zO1xuICAvKipcbiAgICogVGhlIHByb2plY3QncyByZWxlYXNhYmxlIGNvbW1pdHMsIHdoaWNoIGRlY2lkZSB3aGV0aGVyIG90aGVyIHR5cGVzIHJlbGVhc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2FibGVDb21taXRzPzogUmVsZWFzYWJsZUNvbW1pdHM7XG59XG5cbmludGVyZmFjZSBQdWxsUmVxdWVzdFRpdGxlIHtcbiAgcmVhZG9ubHkgdHlwZXM6IEFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IHJlcXVpcmVTY29wZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2NvcGVzOiBBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSByZWxlYXNlOiBib29sZWFuO1xuICByZWFkb25seSBldmVyeUNvbW1pdFJlbGVhc2VzOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiB0aXRsZVBhcmFncmFwaCh0aXRsZTogUHVsbFJlcXVlc3RUaXRsZSk6IHN0cmluZyB7XG4gIGNvbnN0IHNjb3BlID0gdGl0bGUuc2NvcGVzLmxlbmd0aFxuICAgID8gYCR7dGl0bGUucmVxdWlyZVNjb3BlID8gJ2FuZCBhIHNjb3BlJyA6ICdhbmQsIG9wdGlvbmFsbHksIGEgc2NvcGUnfSBmcm9tICR7Zm9ybWF0TGlzdCh0aXRsZS5zY29wZXMpfWBcbiAgICA6IHRpdGxlLnJlcXVpcmVTY29wZVxuICAgICAgPyAnYW5kIGEgc2NvcGUnXG4gICAgICA6ICcnO1xuICBjb25zdCBleGFtcGxlU2NvcGUgPVxuICAgIHRpdGxlLnJlcXVpcmVTY29wZSB8fCB0aXRsZS5zY29wZXMubGVuZ3RoXG4gICAgICA/IGAoJHt0aXRsZS5zY29wZXNbMF0gPz8gJ3Njb3BlJ30pYFxuICAgICAgOiAnJztcbiAgcmV0dXJuIGBQdWxsIHJlcXVlc3QgdGl0bGVzIG11c3QgZm9sbG93IFtDb252ZW50aW9uYWwgQ29tbWl0c10oaHR0cHM6Ly93d3cuY29udmVudGlvbmFsY29tbWl0cy5vcmcpLCB3aXRoIG9uZSBvZiB0aGUgdHlwZXMgJHtmb3JtYXRMaXN0KHRpdGxlLnR5cGVzKX0ke3Njb3BlID8gYCAke3Njb3BlfWAgOiAnJ30sIHN1Y2ggYXMgXFxgJHt0aXRsZS50eXBlc1swXX0ke2V4YW1wbGVTY29wZX06IGRlc2NyaWJlIHRoZSBjaGFuZ2VcXGAuIFRoZSAqKlZhbGlkYXRlIFBSIHRpdGxlKiogY2hlY2sgZmFpbHMgdW50aWwgdGhlIHRpdGxlIGRvZXMuYDtcbn1cblxuZnVuY3Rpb24gcmVsZWFzZVBhcmFncmFwaCh0aXRsZTogUHVsbFJlcXVlc3RUaXRsZSwgbWVyZ2VRdWV1ZTogYm9vbGVhbik6IHN0cmluZyB7XG4gIGNvbnN0IGJ1bXBzID0gW1xuICAgIC4uLih0aXRsZS50eXBlcy5pbmNsdWRlcygnZmVhdCcpID8gWydgZmVhdGAgcmVsZWFzZXMgYSBtaW5vciB2ZXJzaW9uJ10gOiBbXSksXG4gICAgLi4uKHRpdGxlLnR5cGVzLmluY2x1ZGVzKCdmaXgnKVxuICAgICAgPyBbYFxcYGZpeFxcYCR7dGl0bGUudHlwZXMuaW5jbHVkZXMoJ2ZlYXQnKSA/ICcnIDogJyByZWxlYXNlcyd9IGEgcGF0Y2ggdmVyc2lvbmBdXG4gICAgICA6IFtdKSxcbiAgXTtcbiAgY29uc3Qgb3RoZXJUeXBlcyA9IHRpdGxlLnR5cGVzLmZpbHRlcigodCkgPT4gdCAhPT0gJ2ZlYXQnICYmIHQgIT09ICdmaXgnKTtcbiAgY29uc3Qgb3RoZXJzID0gIW90aGVyVHlwZXMubGVuZ3RoXG4gICAgPyAnJ1xuICAgIDogdGl0bGUuZXZlcnlDb21taXRSZWxlYXNlc1xuICAgICAgPyAnIE90aGVyIHR5cGVzIHN0aWxsIHJlbGVhc2UgYSBwYXRjaCB2ZXJzaW9uLidcbiAgICAgIDogJyBPdGhlciB0eXBlcyBvbmx5IHJlbGVhc2UgYSBwYXRjaCB2ZXJzaW9uIGlmIGByZWxlYXNhYmxlQ29tbWl0c2AgY291bnRzIHRoZW0uJztcbiAgY29uc3QgaW50cm8gPSBtZXJnZVF1ZXVlXG4gICAgPyAnVGhlIHR5cGUgZGVjaWRlcyB0aGUgbmV4dCByZWxlYXNlJ1xuICAgIDogJ09uY2UgYSBwdWxsIHJlcXVlc3QgaXMgc3F1YXNoIG1lcmdlZCB3aXRoIGl0cyB0aXRsZSBhcyB0aGUgY29tbWl0IG1lc3NhZ2UsIGl0cyB0eXBlIGRlY2lkZXMgdGhlIG5leHQgcmVsZWFzZSc7XG4gIGNvbnN0IHByZU1ham9yID0gdGl0bGUudHlwZXMuaW5jbHVkZXMoJ2ZlYXQnKVxuICAgID8gJ2EgYnJlYWtpbmcgY2hhbmdlIHJlbGVhc2VzIGEgbWlub3IgdmVyc2lvbiBhbmQgYGZlYXRgIGEgcGF0Y2ggdmVyc2lvbidcbiAgICA6ICdhIGJyZWFraW5nIGNoYW5nZSByZWxlYXNlcyBhIG1pbm9yIHZlcnNpb24nO1xuICByZXR1cm4gYCR7aW50cm99OiAke2J1bXBzLmxlbmd0aCA/IGAke2J1bXBzLmpvaW4oJyBhbmQgJyl9LCB3aGlsZSBgIDogJyd9YSBicmVha2luZyBjaGFuZ2UsIG1hcmtlZCBieSBcXGAhXFxgIGFmdGVyIHRoZSB0eXBlIChzdWNoIGFzIFxcYCR7dGl0bGUudHlwZXNbMF19ITogLi4uXFxgKSBvciBhIFxcYEJSRUFLSU5HIENIQU5HRTpcXGAgZm9vdGVyLCByZWxlYXNlcyBhIG1ham9yIHZlcnNpb24uJHtvdGhlcnN9IFdoaWxlIHRoZSB2ZXJzaW9uIGlzIGJlbG93IDEuMC4wLCAke3ByZU1ham9yfS5gO1xufVxuXG4vKipcbiAqIFRoZSBDb250cmlidXRpbmcgc2VjdGlvbiBvZiB0aGUgUkVBRE1FLCBkZXNjcmliaW5nIHRoZSBwdWxsIHJlcXVlc3QgdGl0bGVcbiAqIGNoZWNrIGFuZCB0aGUgbWVyZ2UgcXVldWUgdGhhdCBhcmUgY29uZmlndXJlZFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0aW5nIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0J3MgQ29udHJpYnV0aW5nIHNlY3Rpb24sIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgaGF2ZSBvbmUgeWV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBDb250cmlidXRpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChcbiAgICAgICAgKGMpOiBjIGlzIENvbnRyaWJ1dGluZyA9PiBjIGluc3RhbmNlb2YgQ29udHJpYnV0aW5nLFxuICAgICAgKSA/PyBuZXcgQ29udHJpYnV0aW5nKHByb2plY3QpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHVsbFJlcXVlc3RUaXRsZT86IFB1bGxSZXF1ZXN0VGl0bGU7XG4gIHByaXZhdGUgbWVyZ2VRdWV1ZT86IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIHB1bGwgcmVxdWVzdCB0aXRsZSBjaGVjaywgaWYgdGhlIHByb2plY3QgcnVucyBpdFxuICAgKi9cbiAgY29uZmlndXJlUHVsbFJlcXVlc3RUaXRsZShvcHRpb25zOiBDb250cmlidXRpbmdPcHRpb25zKSB7XG4gICAgY29uc3QgZ2l0aHViT3B0aW9ucyA9IG9wdGlvbnMuZ2l0aHViT3B0aW9ucyA/PyB7fTtcbiAgICBjb25zdCBsaW50T3B0aW9ucyA9IGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50T3B0aW9ucyA/PyB7fTtcbiAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0IGFzIFByb2plY3QgJiB7IGdpdGh1Yj86IGdpdGh1Yi5HaXRIdWIgfTtcbiAgICBpZiAoXG4gICAgICAhcHJvamVjdC5naXRodWI/LndvcmtmbG93c0VuYWJsZWQgfHxcbiAgICAgICEoZ2l0aHViT3B0aW9ucy5wdWxsUmVxdWVzdExpbnQgPz8gdHJ1ZSkgfHxcbiAgICAgICEobGludE9wdGlvbnMuc2VtYW50aWNUaXRsZSA/PyB0cnVlKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0aXRsZU9wdGlvbnMgPSBsaW50T3B0aW9ucy5zZW1hbnRpY1RpdGxlT3B0aW9ucyA/PyB7fTtcbiAgICB0aGlzLnB1bGxSZXF1ZXN0VGl0bGUgPSB7XG4gICAgICB0eXBlczogdGl0bGVPcHRpb25zLnR5cGVzID8/IERFRkFVTFRfVFlQRVMsXG4gICAgICByZXF1aXJlU2NvcGU6IHRpdGxlT3B0aW9ucy5yZXF1aXJlU2NvcGUgPz8gZmFsc2UsXG4gICAgICBzY29wZXM6IHRpdGxlT3B0aW9ucy5zY29wZXMgPz8gW10sXG4gICAgICByZWxlYXNlOlxuICAgICAgICB0aGlzLnByb2plY3QgaW5zdGFuY2VvZiBOb2RlUHJvamVjdCAmJlxuICAgICAgICB0aGlzLnByb2plY3QucmVsZWFzZSAhPT0gdW5kZWZpbmVkLFxuICAgICAgZXZlcnlDb21taXRSZWxlYXNlczogb3B0aW9ucy5yZWxlYXNhYmxlQ29tbWl0cyA9PT0gdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgaG93IHB1bGwgcmVxdWVzdHMgYXJlIG1lcmdlZCBieSB0aGUgbWVyZ2UgcXVldWVcbiAgICovXG4gIGNvbmZpZ3VyZU1lcmdlUXVldWUoZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHRoaXMubWVyZ2VRdWV1ZSA9IGRlc2NyaXB0aW9uO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpIHtcbiAgICBjb25zdCBwYXJhZ3JhcGhzID0gW1xuICAgICAgLi4uKHRoaXMucHVsbFJlcXVlc3RUaXRsZSA/IFt0aXRsZVBhcmFncmFwaCh0aGlzLnB1bGxSZXF1ZXN0VGl0bGUpXSA6IFtdKSxcbiAgICAgIC4uLih0aGlzLm1lcmdlUXVldWUgPyBbdGhpcy5tZXJnZVF1ZXVlXSA6IFtdKSxcbiAgICAgIC4uLih0aGlzLnB1bGxSZXF1ZXN0VGl0bGU/LnJlbGVhc2VcbiAgICAgICAgPyBbcmVsZWFzZVBhcmFncmFwaCh0aGlzLnB1bGxSZXF1ZXN0VGl0bGUsIHRoaXMubWVyZ2VRdWV1ZSAhPT0gdW5kZWZpbmVkKV1cbiAgICAgICAgOiBbXSksXG4gICAgXTtcbiAgICBpZiAocGFyYWdyYXBocy5sZW5ndGgpIHtcbiAgICAgIFJlYWRtZS5vZih0aGlzLnByb2plY3QpPy5hZGRTZWN0aW9uKFxuICAgICAgICBDT05UUklCVVRJTkdfVElUTEUsXG4gICAgICAgIHBhcmFncmFwaHMuam9pbignXFxuXFxuJyksXG4gICAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLkNPTlRSSUJVVElORyB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgQ09OVFJJQlVUSU5HX1RJVExFID0gJ0NvbnRyaWJ1dGluZyc7XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatList = formatList;
|
|
4
|
+
/**
|
|
5
|
+
* Formats values as code, such as "`a`, `b` or `c`"
|
|
6
|
+
*/
|
|
7
|
+
function formatList(values) {
|
|
8
|
+
const quoted = values.map((value) => '`' + value + '`');
|
|
9
|
+
return quoted.length > 1
|
|
10
|
+
? `${quoted.slice(0, -1).join(', ')} or ${quoted[quoted.length - 1]}`
|
|
11
|
+
: quoted.join('');
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ2l0aHViL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLGdDQUtDO0FBUkQ7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsTUFBcUI7SUFDOUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN0QixDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNyRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtYXRzIHZhbHVlcyBhcyBjb2RlLCBzdWNoIGFzIFwiYGFgLCBgYmAgb3IgYGNgXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdExpc3QodmFsdWVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgY29uc3QgcXVvdGVkID0gdmFsdWVzLm1hcCgodmFsdWUpID0+ICdgJyArIHZhbHVlICsgJ2AnKTtcbiAgcmV0dXJuIHF1b3RlZC5sZW5ndGggPiAxXG4gICAgPyBgJHtxdW90ZWQuc2xpY2UoMCwgLTEpLmpvaW4oJywgJyl9IG9yICR7cXVvdGVkW3F1b3RlZC5sZW5ndGggLSAxXX1gXG4gICAgOiBxdW90ZWQuam9pbignJyk7XG59XG4iXX0=
|
|
@@ -4,6 +4,8 @@ exports.autoMergeOptions = autoMergeOptions;
|
|
|
4
4
|
exports.configureMergify = configureMergify;
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
const codeql_1 = require("./codeql");
|
|
7
|
+
const contributing_1 = require("./contributing");
|
|
8
|
+
const format_1 = require("./format");
|
|
7
9
|
const readme_1 = require("../readme");
|
|
8
10
|
/**
|
|
9
11
|
* Options for projen's auto merge, which requires its approvals from every
|
|
@@ -15,18 +17,12 @@ function autoMergeOptions(options) {
|
|
|
15
17
|
}
|
|
16
18
|
return { ...options.autoMergeOptions, approvedReviews: 0 };
|
|
17
19
|
}
|
|
18
|
-
function formatList(values) {
|
|
19
|
-
const quoted = values.map((value) => '`' + value + '`');
|
|
20
|
-
return quoted.length > 1
|
|
21
|
-
? `${quoted.slice(0, -1).join(', ')} or ${quoted[quoted.length - 1]}`
|
|
22
|
-
: quoted.join('');
|
|
23
|
-
}
|
|
24
20
|
function queueDescription(config) {
|
|
25
21
|
if (!config.approvedReviews) {
|
|
26
22
|
return "Once a pull request's checks pass";
|
|
27
23
|
}
|
|
28
24
|
if (config.trustedAuthors.length) {
|
|
29
|
-
return `Once a pull request is approved, or is opened by ${formatList(config.trustedAuthors)}, and its checks pass`;
|
|
25
|
+
return `Once a pull request is approved, or is opened by ${(0, format_1.formatList)(config.trustedAuthors)}, and its checks pass`;
|
|
30
26
|
}
|
|
31
27
|
return 'Once a pull request is approved and its checks pass';
|
|
32
28
|
}
|
|
@@ -43,7 +39,10 @@ A repository with a single maintainer, who cannot approve their own pull request
|
|
|
43
39
|
}
|
|
44
40
|
return '';
|
|
45
41
|
}
|
|
46
|
-
|
|
42
|
+
/**
|
|
43
|
+
* The guide to configuring the repository on GitHub
|
|
44
|
+
*/
|
|
45
|
+
function githubConfigurationGuide(config) {
|
|
47
46
|
const statusChecks = config.requiredChecks.length
|
|
48
47
|
? 'the checks that `.mergify.yml` waits for: `' +
|
|
49
48
|
config.requiredChecks.join('`, `') +
|
|
@@ -51,7 +50,7 @@ function githubConfigurationSection(config) {
|
|
|
51
50
|
: 'any CI checks added to the project (none are configured yet), keeping them in sync with `.mergify.yml`';
|
|
52
51
|
const approvals = config.trustedAuthors.length
|
|
53
52
|
? '0 required approvals, because Mergify requires approvals itself for authors other than ' +
|
|
54
|
-
formatList(config.trustedAuthors) +
|
|
53
|
+
(0, format_1.formatList)(config.trustedAuthors) +
|
|
55
54
|
' and is exempt from this rule'
|
|
56
55
|
: config.approvedReviews === 1
|
|
57
56
|
? '1 required approval'
|
|
@@ -62,12 +61,12 @@ function githubConfigurationSection(config) {
|
|
|
62
61
|
? ` CodeQL does not scan the integ-runner snapshots (\`${codeql_1.CodeQl.INTEG_SNAPSHOT_PATHS}\`): their assets are generated bundles of dependencies whose file names change on every \`integ:update\`, so alerts on them can neither be fixed in the repository nor dismissed for good. The source they are built from is still scanned.`
|
|
63
62
|
: '') +
|
|
64
63
|
(otherPathsIgnore.length
|
|
65
|
-
? ` CodeQL does not scan paths matching ${formatList(otherPathsIgnore)}.`
|
|
64
|
+
? ` CodeQL does not scan paths matching ${(0, format_1.formatList)(otherPathsIgnore)}.`
|
|
66
65
|
: '');
|
|
67
66
|
const codeScanningSettings = config.codeScanning
|
|
68
67
|
? `
|
|
69
68
|
|
|
70
|
-
|
|
69
|
+
## Code scanning
|
|
71
70
|
|
|
72
71
|
CodeQL runs from \`.github/workflows/codeql.yml\`, which is managed by projen. In **Settings → Advanced Security**, leave CodeQL **Default setup** off, because it cannot run alongside this workflow. Under **Protection rules**, keep the **Check run failure threshold** at **High or higher** for security alerts and **Errors** for other alerts, as this decides whether the \`${codeql_1.CodeQl.CHECK_NAME}\` check fails. Private repositories also need GitHub Code Security enabled there for code scanning results to be uploaded.${ignoredPaths}`
|
|
73
72
|
: '';
|
|
@@ -79,22 +78,22 @@ CodeQL runs from \`.github/workflows/codeql.yml\`, which is managed by projen. I
|
|
|
79
78
|
|
|
80
79
|
The repository must be configured as below so that nothing can be merged without going through the queue.
|
|
81
80
|
|
|
82
|
-
|
|
81
|
+
## Mergify
|
|
83
82
|
|
|
84
83
|
Install the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.
|
|
85
84
|
|
|
86
|
-
|
|
85
|
+
## Pull request settings
|
|
87
86
|
|
|
88
87
|
In **Settings → General → Pull Requests**:
|
|
89
88
|
* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.
|
|
90
89
|
* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.
|
|
91
90
|
* Tick **Automatically delete head branches**.
|
|
92
91
|
|
|
93
|
-
|
|
92
|
+
## Actions settings
|
|
94
93
|
|
|
95
94
|
In **Settings → Actions → General**, set **Approval for running fork pull request workflows from contributors** to **Require approval for all external contributors**. A pull request from a fork runs its own copy of the workflows, so it can change how the required checks pass.${codeScanningSettings}
|
|
96
95
|
|
|
97
|
-
|
|
96
|
+
## Branch ruleset
|
|
98
97
|
|
|
99
98
|
In **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:
|
|
100
99
|
* **Bypass list**: the **Mergify** app only, in **Exempt** mode. Do not add admins or other roles, as anyone on this list can merge without the queue.
|
|
@@ -155,24 +154,41 @@ function configureMergify(project, options = {}) {
|
|
|
155
154
|
},
|
|
156
155
|
});
|
|
157
156
|
project.tryFindObjectFile('.mergify.yml')?.addOverride('merge_protections_settings.reporting_method', options.reportingMethod ?? 'deployments');
|
|
158
|
-
|
|
157
|
+
contributing_1.Contributing.of(project).configureMergeQueue(`${queueDescription({ approvedReviews, trustedAuthors })}, the [Mergify](https://mergify.com) merge queue squash merges it, with its title as the commit message. Draft pull requests and those labelled \`do-not-merge\` are not merged.`);
|
|
158
|
+
const configuration = () => ({
|
|
159
159
|
approvedReviews,
|
|
160
160
|
codeScanning: codeScanning(),
|
|
161
161
|
codeScanningPathsIgnore: codeQl()?.pathsIgnore ?? [],
|
|
162
162
|
requiredChecks: buildJobIds(),
|
|
163
163
|
trustedAuthors,
|
|
164
|
-
})
|
|
165
|
-
|
|
164
|
+
});
|
|
165
|
+
// the guide is rendered when the file is synthesized, after every component has been added
|
|
166
|
+
new GithubConfigurationFile(project, () => githubConfigurationGuide(configuration()));
|
|
167
|
+
readme_1.Readme.of(project)?.addSection(GITHUB_CONFIGURATION_TITLE, `The one-off configuration that this repository needs on GitHub, such as the Mergify merge queue and the branch ruleset, is described in [${GITHUB_CONFIGURATION_FILE}](${GITHUB_CONFIGURATION_FILE}).`, { order: readme_1.ReadmeOrder.REFERENCE });
|
|
166
168
|
new BeforeSynthesis(project, () => {
|
|
167
169
|
upgradeConditions.splice(0, upgradeConditions.length, upgradeAuthor, ...buildJobIds().map((id) => `status-success=${id}`));
|
|
168
|
-
// leave the section alone if the project has removed or replaced it
|
|
169
|
-
const readme = readme_1.Readme.of(project);
|
|
170
|
-
if (readmeSection && readme?.tryFindSection(GITHUB_CONFIGURATION_TITLE) === readmeSection) {
|
|
171
|
-
readmeSection = addReadmeSection();
|
|
172
|
-
}
|
|
173
170
|
});
|
|
174
171
|
}
|
|
175
172
|
const GITHUB_CONFIGURATION_TITLE = 'GitHub Configuration';
|
|
173
|
+
/**
|
|
174
|
+
* Where the guide to configuring the repository on GitHub is written, in the
|
|
175
|
+
* docs directory every project uses
|
|
176
|
+
*/
|
|
177
|
+
const GITHUB_CONFIGURATION_FILE = 'docs/github-configuration.md';
|
|
178
|
+
/**
|
|
179
|
+
* The guide to configuring the repository on GitHub, as its own markdown file
|
|
180
|
+
*/
|
|
181
|
+
class GithubConfigurationFile extends projen_1.FileBase {
|
|
182
|
+
body;
|
|
183
|
+
constructor(project, body) {
|
|
184
|
+
super(project, GITHUB_CONFIGURATION_FILE, {});
|
|
185
|
+
this.body = body;
|
|
186
|
+
}
|
|
187
|
+
synthesizeContent(_) {
|
|
188
|
+
const marker = this.marker ? `<!-- ${this.marker} -->\n\n` : '';
|
|
189
|
+
return `${marker}# ${GITHUB_CONFIGURATION_TITLE}\n\n${this.body()}\n`;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
176
192
|
/**
|
|
177
193
|
* Runs a callback once every component has been added, before any file is
|
|
178
194
|
* synthesized
|
|
@@ -187,4 +203,4 @@ class BeforeSynthesis extends projen_1.Component {
|
|
|
187
203
|
this.callback();
|
|
188
204
|
}
|
|
189
205
|
}
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMENBLDRDQVFDO0FBNkdELDRDQTJGQztBQTFQRCxtQ0FBb0Q7QUFDcEQscUNBQWtDO0FBQ2xDLHNDQUFnRDtBQW9DaEQ7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsT0FHaEM7SUFDQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsTUFBcUI7SUFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN4RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUN0QixDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNyRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBVUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUEyQjtJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLE9BQU8sbUNBQW1DLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLGNB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RSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQ3JELENBQUM7UUFDRixvRUFBb0U7UUFDcEUsTUFBTSxNQUFNLEdBQUcsZUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLGFBQWEsSUFBSSxNQUFNLEVBQUUsY0FBYyxDQUFDLDBCQUEwQixDQUFDLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDMUYsYUFBYSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsc0JBQXNCLENBQUM7QUFFMUQ7OztHQUdHO0FBQ0gsTUFBTSxlQUFnQixTQUFRLGtCQUFTO0lBR2xCO0lBRm5CLFlBQ0UsT0FBZ0IsRUFDQyxRQUFvQjtRQUVyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGRSxhQUFRLEdBQVIsUUFBUSxDQUFZO0lBR3ZDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViLCBQcm9qZWN0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENvZGVRbCB9IGZyb20gJy4vY29kZXFsJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi9yZWFkbWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBhcHByb3ZpbmcgcmV2aWV3cyB0aGUgbWVyZ2UgcXVldWUgd2FpdHMgZm9yLCB3aGljaCBzaG91bGQgbWF0Y2hcbiAgICogYGF1dG9NZXJnZU9wdGlvbnMuYXBwcm92ZWRSZXZpZXdzYFxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZlZFJldmlld3M/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGFzc2lnblVzZXJzPzogQXJyYXk8c3RyaW5nPjtcbiAgcmVhZG9ubHkgcmVwb3J0aW5nTWV0aG9kPzogc3RyaW5nO1xuICAvKipcbiAgICogQXV0aG9ycyB3aG9zZSBwdWxsIHJlcXVlc3RzIHRoZSBtZXJnZSBxdWV1ZSBtZXJnZXMgd2l0aG91dCBhbiBhcHByb3ZhbCwgc3VjaFxuICAgKiBhcyB0aGUgc2luZ2xlIG1haW50YWluZXIgb2YgYSByZXBvc2l0b3J5LCB3aG8gY2Fubm90IGFwcHJvdmUgdGhlaXIgb3duIHB1bGxcbiAgICogcmVxdWVzdHMuIFB1bGwgcmVxdWVzdHMgZnJvbSBhbnlvbmUgZWxzZSBzdGlsbCBuZWVkIGBhcHByb3ZlZFJldmlld3NgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEF1dGhvcnM/OiBBcnJheTxzdHJpbmc+O1xuICAvKipcbiAgICogQXV0aG9yIG9mIHRoZSBwcm9qZW4gdXBncmFkZSBwdWxsIHJlcXVlc3RzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgYXBwcm92ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuZG9yLXByb2plbltib3RdJ1xuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUF1dGhvcj86IHN0cmluZztcbn1cblxudHlwZSBNZXJnaWZ5UHJvamVjdCA9IFByb2plY3QgJiB7XG4gIHJlYWRvbmx5IGF1dG9NZXJnZT86IGdpdGh1Yi5BdXRvTWVyZ2U7XG4gIHJlYWRvbmx5IGdpdGh1Yj86IGdpdGh1Yi5HaXRIdWI7XG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3c/OiB7XG4gICAgcmVhZG9ubHkgYnVpbGRKb2JJZHM/OiBBcnJheTxzdHJpbmc+O1xuICB9O1xufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBwcm9qZW4ncyBhdXRvIG1lcmdlLCB3aGljaCByZXF1aXJlcyBpdHMgYXBwcm92YWxzIGZyb20gZXZlcnlcbiAqIGF1dGhvciwgc28gd2l0aCB0cnVzdGVkIGF1dGhvcnMgYGNvbmZpZ3VyZU1lcmdpZnlgIHJlcXVpcmVzIHRoZW0gaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXV0b01lcmdlT3B0aW9ucyhvcHRpb25zOiB7XG4gIHJlYWRvbmx5IGF1dG9NZXJnZU9wdGlvbnM/OiBnaXRodWIuQXV0b01lcmdlT3B0aW9ucztcbiAgcmVhZG9ubHkgdHJ1c3RlZEF1dGhvcnM/OiBBcnJheTxzdHJpbmc+O1xufSk6IGdpdGh1Yi5BdXRvTWVyZ2VPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFvcHRpb25zLnRydXN0ZWRBdXRob3JzPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gb3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zO1xuICB9XG4gIHJldHVybiB7IC4uLm9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucywgYXBwcm92ZWRSZXZpZXdzOiAwIH07XG59XG5cbmZ1bmN0aW9uIGZvcm1hdExpc3QodmFsdWVzOiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcbiAgY29uc3QgcXVvdGVkID0gdmFsdWVzLm1hcCgodmFsdWUpID0+ICdgJyArIHZhbHVlICsgJ2AnKTtcbiAgcmV0dXJuIHF1b3RlZC5sZW5ndGggPiAxXG4gICAgPyBgJHtxdW90ZWQuc2xpY2UoMCwgLTEpLmpvaW4oJywgJyl9IG9yICR7cXVvdGVkW3F1b3RlZC5sZW5ndGggLSAxXX1gXG4gICAgOiBxdW90ZWQuam9pbignJyk7XG59XG5cbmludGVyZmFjZSBHaXRodWJDb25maWd1cmF0aW9uIHtcbiAgcmVhZG9ubHkgYXBwcm92ZWRSZXZpZXdzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvZGVTY2FubmluZzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY29kZVNjYW5uaW5nUGF0aHNJZ25vcmU6IEFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IHJlcXVpcmVkQ2hlY2tzOiBBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSB0cnVzdGVkQXV0aG9yczogQXJyYXk8c3RyaW5nPjtcbn1cblxuZnVuY3Rpb24gcXVldWVEZXNjcmlwdGlvbihjb25maWc6IEdpdGh1YkNvbmZpZ3VyYXRpb24pOiBzdHJpbmcge1xuICBpZiAoIWNvbmZpZy5hcHByb3ZlZFJldmlld3MpIHtcbiAgICByZXR1cm4gXCJPbmNlIGEgcHVsbCByZXF1ZXN0J3MgY2hlY2tzIHBhc3NcIjtcbiAgfVxuICBpZiAoY29uZmlnLnRydXN0ZWRBdXRob3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBgT25jZSBhIHB1bGwgcmVxdWVzdCBpcyBhcHByb3ZlZCwgb3IgaXMgb3BlbmVkIGJ5ICR7Zm9ybWF0TGlzdChjb25maWcudHJ1c3RlZEF1dGhvcnMpfSwgYW5kIGl0cyBjaGVja3MgcGFzc2A7XG4gIH1cbiAgcmV0dXJuICdPbmNlIGEgcHVsbCByZXF1ZXN0IGlzIGFwcHJvdmVkIGFuZCBpdHMgY2hlY2tzIHBhc3MnO1xufVxuXG5mdW5jdGlvbiBhcHByb3ZhbEd1aWRhbmNlKGNvbmZpZzogR2l0aHViQ29uZmlndXJhdGlvbik6IHN0cmluZyB7XG4gIGlmICghY29uZmlnLmFwcHJvdmVkUmV2aWV3cykge1xuICAgIHJldHVybiBgXG5cbioqV2FybmluZzoqKiBubyBhcHByb3ZhbHMgYXJlIHJlcXVpcmVkLCBzbyB0aGUgcXVldWUgbWVyZ2VzIGFueSBwdWxsIHJlcXVlc3Qgd2hvc2UgY2hlY2tzIHBhc3MsIGluY2x1ZGluZyBvbmUgZnJvbSBhIGZvcmsgdGhhdCBjaGFuZ2VzIHRoZSB3b3JrZmxvd3MgcHJvZHVjaW5nIHRob3NlIGNoZWNrcy4gU2V0IFxcYGF1dG9NZXJnZU9wdGlvbnMuYXBwcm92ZWRSZXZpZXdzXFxgIHRvIGF0IGxlYXN0IDEsIGFuZCB1c2UgXFxgdHJ1c3RlZEF1dGhvcnNcXGAgZm9yIG1haW50YWluZXJzIHdobyBjYW5ub3QgYXBwcm92ZSB0aGVpciBvd24gcHVsbCByZXF1ZXN0cy5gO1xuICB9XG4gIGlmICghY29uZmlnLnRydXN0ZWRBdXRob3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBgXG5cbkEgcmVwb3NpdG9yeSB3aXRoIGEgc2luZ2xlIG1haW50YWluZXIsIHdobyBjYW5ub3QgYXBwcm92ZSB0aGVpciBvd24gcHVsbCByZXF1ZXN0cywgc2hvdWxkIGxpc3QgdGhlbSBpbiBcXGB0cnVzdGVkQXV0aG9yc1xcYCBpbiBcXGAucHJvamVucmMudHNcXGAuIFRoZWlyIHB1bGwgcmVxdWVzdHMgYXJlIHRoZW4gbWVyZ2VkIHdpdGhvdXQgYW4gYXBwcm92YWwsIHdoaWxlIGV2ZXJ5b25lIGVsc2UncyBzdGlsbCBuZWVkIG9uZS5gO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZ2l0aHViQ29uZmlndXJhdGlvblNlY3Rpb24oY29uZmlnOiBHaXRodWJDb25maWd1cmF0aW9uKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhdHVzQ2hlY2tzID0gY29uZmlnLnJlcXVpcmVkQ2hlY2tzLmxlbmd0aFxuICAgID8gJ3RoZSBjaGVja3MgdGhhdCBgLm1lcmdpZnkueW1sYCB3YWl0cyBmb3I6IGAnICtcbiAgICAgIGNvbmZpZy5yZXF1aXJlZENoZWNrcy5qb2luKCdgLCBgJykgK1xuICAgICAgJ2AnXG4gICAgOiAnYW55IENJIGNoZWNrcyBhZGRlZCB0byB0aGUgcHJvamVjdCAobm9uZSBhcmUgY29uZmlndXJlZCB5ZXQpLCBrZWVwaW5nIHRoZW0gaW4gc3luYyB3aXRoIGAubWVyZ2lmeS55bWxgJztcbiAgY29uc3QgYXBwcm92YWxzID0gY29uZmlnLnRydXN0ZWRBdXRob3JzLmxlbmd0aFxuICAgID8gJzAgcmVxdWlyZWQgYXBwcm92YWxzLCBiZWNhdXNlIE1lcmdpZnkgcmVxdWlyZXMgYXBwcm92YWxzIGl0c2VsZiBmb3IgYXV0aG9ycyBvdGhlciB0aGFuICcgK1xuICAgICAgZm9ybWF0TGlzdChjb25maWcudHJ1c3RlZEF1dGhvcnMpICtcbiAgICAgICcgYW5kIGlzIGV4ZW1wdCBmcm9tIHRoaXMgcnVsZSdcbiAgICA6IGNvbmZpZy5hcHByb3ZlZFJldmlld3MgPT09IDFcbiAgICAgID8gJzEgcmVxdWlyZWQgYXBwcm92YWwnXG4gICAgICA6IGAke2NvbmZpZy5hcHByb3ZlZFJldmlld3N9IHJlcXVpcmVkIGFwcHJvdmFsc2A7XG4gIGNvbnN0IHBhdGhzSWdub3JlID0gY29uZmlnLmNvZGVTY2FubmluZ1BhdGhzSWdub3JlO1xuICBjb25zdCBvdGhlclBhdGhzSWdub3JlID0gcGF0aHNJZ25vcmUuZmlsdGVyKFxuICAgIChwYXR0ZXJuKSA9PiBwYXR0ZXJuICE9PSBDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFMsXG4gICk7XG4gIGNvbnN0IGlnbm9yZWRQYXRocyA9XG4gICAgKHBhdGhzSWdub3JlLmluY2x1ZGVzKENvZGVRbC5JTlRFR19TTkFQU0hPVF9QQVRIUylcbiAgICAgID8gYCBDb2RlUUwgZG9lcyBub3Qgc2NhbiB0aGUgaW50ZWctcnVubmVyIHNuYXBzaG90cyAoXFxgJHtDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFN9XFxgKTogdGhlaXIgYXNzZXRzIGFyZSBnZW5lcmF0ZWQgYnVuZGxlcyBvZiBkZXBlbmRlbmNpZXMgd2hvc2UgZmlsZSBuYW1lcyBjaGFuZ2Ugb24gZXZlcnkgXFxgaW50ZWc6dXBkYXRlXFxgLCBzbyBhbGVydHMgb24gdGhlbSBjYW4gbmVpdGhlciBiZSBmaXhlZCBpbiB0aGUgcmVwb3NpdG9yeSBub3IgZGlzbWlzc2VkIGZvciBnb29kLiBUaGUgc291cmNlIHRoZXkgYXJlIGJ1aWx0IGZyb20gaXMgc3RpbGwgc2Nhbm5lZC5gXG4gICAgICA6ICcnKSArXG4gICAgKG90aGVyUGF0aHNJZ25vcmUubGVuZ3RoXG4gICAgICA/IGAgQ29kZVFMIGRvZXMgbm90IHNjYW4gcGF0aHMgbWF0Y2hpbmcgJHtmb3JtYXRMaXN0KG90aGVyUGF0aHNJZ25vcmUpfS5gXG4gICAgICA6ICcnKTtcbiAgY29uc3QgY29kZVNjYW5uaW5nU2V0dGluZ3MgPSBjb25maWcuY29kZVNjYW5uaW5nXG4gICAgPyBgXG5cbiMjIyBDb2RlIHNjYW5uaW5nXG5cbkNvZGVRTCBydW5zIGZyb20gXFxgLmdpdGh1Yi93b3JrZmxvd3MvY29kZXFsLnltbFxcYCwgd2hpY2ggaXMgbWFuYWdlZCBieSBwcm9qZW4uIEluICoqU2V0dGluZ3Mg4oaSIEFkdmFuY2VkIFNlY3VyaXR5KiosIGxlYXZlIENvZGVRTCAqKkRlZmF1bHQgc2V0dXAqKiBvZmYsIGJlY2F1c2UgaXQgY2Fubm90IHJ1biBhbG9uZ3NpZGUgdGhpcyB3b3JrZmxvdy4gVW5kZXIgKipQcm90ZWN0aW9uIHJ1bGVzKiosIGtlZXAgdGhlICoqQ2hlY2sgcnVuIGZhaWx1cmUgdGhyZXNob2xkKiogYXQgKipIaWdoIG9yIGhpZ2hlcioqIGZvciBzZWN1cml0eSBhbGVydHMgYW5kICoqRXJyb3JzKiogZm9yIG90aGVyIGFsZXJ0cywgYXMgdGhpcyBkZWNpZGVzIHdoZXRoZXIgdGhlIFxcYCR7Q29kZVFsLkNIRUNLX05BTUV9XFxgIGNoZWNrIGZhaWxzLiBQcml2YXRlIHJlcG9zaXRvcmllcyBhbHNvIG5lZWQgR2l0SHViIENvZGUgU2VjdXJpdHkgZW5hYmxlZCB0aGVyZSBmb3IgY29kZSBzY2FubmluZyByZXN1bHRzIHRvIGJlIHVwbG9hZGVkLiR7aWdub3JlZFBhdGhzfWBcbiAgICA6ICcnO1xuICBjb25zdCBjb2RlU2Nhbm5pbmdSdWxlID0gY29uZmlnLmNvZGVTY2FubmluZ1xuICAgID8gYFxuKiAqKlJlcXVpcmUgY29kZSBzY2FubmluZyByZXN1bHRzKiosIHdpdGggdGhlIHRvb2wgKipDb2RlUUwqKiwgc2VjdXJpdHkgYWxlcnRzIHNldCB0byAqKkhpZ2ggb3IgaGlnaGVyKiogYW5kIGFsZXJ0cyBzZXQgdG8gKipFcnJvcnMqKi4gTWVyZ2lmeSBpcyBleGVtcHQgZnJvbSB0aGlzIHJ1bGUsIHNvIFxcYC5tZXJnaWZ5LnltbFxcYCBhbHNvIHdhaXRzIGZvciB0aGUgXFxgJHtDb2RlUWwuQ0hFQ0tfTkFNRX1cXGAgY2hlY2sgaW5zdGVhZC5gXG4gICAgOiAnJztcbiAgcmV0dXJuIGBBbGwgcHVsbCByZXF1ZXN0cyBhcmUgbWVyZ2VkIGJ5IHRoZSBbTWVyZ2lmeV0oaHR0cHM6Ly9tZXJnaWZ5LmNvbSkgbWVyZ2UgcXVldWUsIGNvbmZpZ3VyZWQgaW4gXFxgLm1lcmdpZnkueW1sXFxgLiAke3F1ZXVlRGVzY3JpcHRpb24oY29uZmlnKX0sIE1lcmdpZnkgcXVldWVzIGl0LCBicmluZ3MgaXQgdXAgdG8gZGF0ZSB3aXRoIHRoZSBkZWZhdWx0IGJyYW5jaCwgd2FpdHMgZm9yIHRoZSBjaGVja3MgYWdhaW4gYW5kIHNxdWFzaCBtZXJnZXMgaXQuIERyYWZ0IHB1bGwgcmVxdWVzdHMgYW5kIHRob3NlIGxhYmVsbGVkIFxcYGRvLW5vdC1tZXJnZVxcYCBhcmUgbm90IG1lcmdlZC5cblxuVGhlIHJlcG9zaXRvcnkgbXVzdCBiZSBjb25maWd1cmVkIGFzIGJlbG93IHNvIHRoYXQgbm90aGluZyBjYW4gYmUgbWVyZ2VkIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGUgcXVldWUuXG5cbiMjIyBNZXJnaWZ5XG5cbkluc3RhbGwgdGhlIFtNZXJnaWZ5IEdpdEh1YiBBcHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBzL21lcmdpZnkpIGFuZCBnaXZlIGl0IGFjY2VzcyB0byB0aGlzIHJlcG9zaXRvcnkuXG5cbiMjIyBQdWxsIHJlcXVlc3Qgc2V0dGluZ3NcblxuSW4gKipTZXR0aW5ncyDihpIgR2VuZXJhbCDihpIgUHVsbCBSZXF1ZXN0cyoqOlxuKiBBbGxvdyBzcXVhc2ggbWVyZ2luZyBvbmx5ICh1bnRpY2sgbWVyZ2UgY29tbWl0cyBhbmQgcmViYXNlIG1lcmdpbmcpLCBtYXRjaGluZyB0aGUgcXVldWUncyBtZXJnZSBtZXRob2QuXG4qIFVudGljayAqKkFsbG93IGF1dG8tbWVyZ2UqKiwgYmVjYXVzZSBHaXRIdWIncyBvd24gYXV0by1tZXJnZSBtZXJnZXMgb3V0c2lkZSB0aGUgcXVldWUuXG4qIFRpY2sgKipBdXRvbWF0aWNhbGx5IGRlbGV0ZSBoZWFkIGJyYW5jaGVzKiouXG5cbiMjIyBBY3Rpb25zIHNldHRpbmdzXG5cbkluICoqU2V0dGluZ3Mg4oaSIEFjdGlvbnMg4oaSIEdlbmVyYWwqKiwgc2V0ICoqQXBwcm92YWwgZm9yIHJ1bm5pbmcgZm9yayBwdWxsIHJlcXVlc3Qgd29ya2Zsb3dzIGZyb20gY29udHJpYnV0b3JzKiogdG8gKipSZXF1aXJlIGFwcHJvdmFsIGZvciBhbGwgZXh0ZXJuYWwgY29udHJpYnV0b3JzKiouIEEgcHVsbCByZXF1ZXN0IGZyb20gYSBmb3JrIHJ1bnMgaXRzIG93biBjb3B5IG9mIHRoZSB3b3JrZmxvd3MsIHNvIGl0IGNhbiBjaGFuZ2UgaG93IHRoZSByZXF1aXJlZCBjaGVja3MgcGFzcy4ke2NvZGVTY2FubmluZ1NldHRpbmdzfVxuXG4jIyMgQnJhbmNoIHJ1bGVzZXRcblxuSW4gKipTZXR0aW5ncyDihpIgUnVsZXMg4oaSIFJ1bGVzZXRzKiosIGNyZWF0ZSBhIGJyYW5jaCBydWxlc2V0IHdpdGggZW5mb3JjZW1lbnQgKipBY3RpdmUqKiB0aGF0IHRhcmdldHMgdGhlIGRlZmF1bHQgYnJhbmNoLCBhbmQgc2V0OlxuKiAqKkJ5cGFzcyBsaXN0Kio6IHRoZSAqKk1lcmdpZnkqKiBhcHAgb25seSwgaW4gKipFeGVtcHQqKiBtb2RlLiBEbyBub3QgYWRkIGFkbWlucyBvciBvdGhlciByb2xlcywgYXMgYW55b25lIG9uIHRoaXMgbGlzdCBjYW4gbWVyZ2Ugd2l0aG91dCB0aGUgcXVldWUuXG4qICoqUmVzdHJpY3QgdXBkYXRlcyoqOiBvbmx5IGJ5cGFzcyBhY3RvcnMgY2FuIHVwZGF0ZSB0aGUgYnJhbmNoLCBzbyBwdWxsIHJlcXVlc3RzIGNhbm5vdCBiZSBtZXJnZWQgZnJvbSB0aGUgR2l0SHViIFVJIG9yIENMSSBhbmQgY29tbWl0cyBjYW5ub3QgYmUgcHVzaGVkIGRpcmVjdGx5LlxuKiAqKlJlc3RyaWN0IGRlbGV0aW9ucyoqIGFuZCAqKkJsb2NrIGZvcmNlIHB1c2hlcyoqLlxuKiAqKlJlcXVpcmUgYSBwdWxsIHJlcXVlc3QgYmVmb3JlIG1lcmdpbmcqKiwgd2l0aCAke2FwcHJvdmFsc30uIFRpY2sgKipEaXNtaXNzIHN0YWxlIHB1bGwgcmVxdWVzdCBhcHByb3ZhbHMgd2hlbiBuZXcgY29tbWl0cyBhcmUgcHVzaGVkKiosIHNvIHRoYXQgY29tbWl0cyBwdXNoZWQgYWZ0ZXIgYW4gYXBwcm92YWwgbmVlZCBhcHByb3ZpbmcgYWdhaW4gYmVmb3JlIHRoZSBxdWV1ZSBtZXJnZXMgdGhlbS5cbiogKipSZXF1aXJlIHN0YXR1cyBjaGVja3MgdG8gcGFzcyoqLCBsaXN0aW5nICR7c3RhdHVzQ2hlY2tzfS4gTGVhdmUgKipSZXF1aXJlIGJyYW5jaGVzIHRvIGJlIHVwIHRvIGRhdGUgYmVmb3JlIG1lcmdpbmcqKiB1bnRpY2tlZCwgYXMgdGhlIHF1ZXVlIGFscmVhZHkgdXBkYXRlcyBhbmQgcmV0ZXN0cyBlYWNoIHB1bGwgcmVxdWVzdC4ke2NvZGVTY2FubmluZ1J1bGV9XG5cbkRvIG5vdCBlbmFibGUgR2l0SHViJ3Mgb3duICoqUmVxdWlyZSBtZXJnZSBxdWV1ZSoqIHJ1bGUsIGFzIGl0IGNvbXBldGVzIHdpdGggTWVyZ2lmeS5cblxuSWYgdGhlIHF1ZXVlIGlzIHVuYXZhaWxhYmxlIGFuZCBhIGNoYW5nZSBoYXMgdG8gYmUgbWVyZ2VkLCBhZGQgeW91cnNlbGYgdG8gdGhlIGJ5cGFzcyBsaXN0IHRlbXBvcmFyaWx5IGFuZCByZW1vdmUgeW91cnNlbGYgYWZ0ZXJ3YXJkcy4ke2FwcHJvdmFsR3VpZGFuY2UoY29uZmlnKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlTWVyZ2lmeShcbiAgcHJvamVjdDogTWVyZ2lmeVByb2plY3QsXG4gIG9wdGlvbnM6IE1lcmdpZnlPcHRpb25zID0ge30sXG4pIHtcbiAgY29uc3QgbWVyZ2lmeSA9IHByb2plY3QuZ2l0aHViPy5tZXJnaWZ5O1xuICBpZiAoIW1lcmdpZnkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBidWlsZCBqb2JzIGFuZCBDb2RlUUwgY2FuIGJlIGFkZGVkIGFmdGVyIHRoaXMsIHNvIHRoZXkgYXJlIHJlYWQgYXQgc3ludGhlc2lzXG4gIGNvbnN0IGJ1aWxkSm9iSWRzID0gKCkgPT4gcHJvamVjdC5idWlsZFdvcmtmbG93Py5idWlsZEpvYklkcyA/PyBbXTtcbiAgY29uc3QgY29kZVFsID0gKCkgPT5cbiAgICBwcm9qZWN0LmNvbXBvbmVudHMuZmluZCgoYyk6IGMgaXMgQ29kZVFsID0+IGMgaW5zdGFuY2VvZiBDb2RlUWwpO1xuICBjb25zdCBjb2RlU2Nhbm5pbmcgPSAoKSA9PiBjb2RlUWwoKSAhPT0gdW5kZWZpbmVkO1xuXG4gIHByb2plY3QuYXV0b01lcmdlPy5hZGRDb25kaXRpb25zKCctZHJhZnQnKTtcblxuICBjb25zdCBhcHByb3ZlZFJldmlld3MgPSBvcHRpb25zLmFwcHJvdmVkUmV2aWV3cyA/PyAxO1xuICBjb25zdCB0cnVzdGVkQXV0aG9ycyA9IG9wdGlvbnMudHJ1c3RlZEF1dGhvcnMgPz8gW107XG4gIGlmICh0cnVzdGVkQXV0aG9ycy5sZW5ndGggJiYgYXBwcm92ZWRSZXZpZXdzKSB7XG4gICAgY29uc3QgYXBwcm92ZWRPclRydXN0ZWQ6IGdpdGh1Yi5NZXJnaWZ5Q29uZGl0aW9uID0ge1xuICAgICAgb3I6IFtcbiAgICAgICAgYCNhcHByb3ZlZC1yZXZpZXdzLWJ5Pj0ke2FwcHJvdmVkUmV2aWV3c31gLFxuICAgICAgICAuLi50cnVzdGVkQXV0aG9ycy5tYXAoKGF1dGhvcikgPT4gYGF1dGhvcj0ke2F1dGhvcn1gKSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICAvLyBwcm9qZW4gdHlwZXMgYXV0byBtZXJnZSBjb25kaXRpb25zIGFzIHN0cmluZ3MsIGJ1dCBtZXJnaWZ5IGFjY2VwdHMgb3BlcmF0b3JzIHRvb1xuICAgIHByb2plY3QuYXV0b01lcmdlPy5hZGRDb25kaXRpb25zKGFwcHJvdmVkT3JUcnVzdGVkIGFzIHVua25vd24gYXMgc3RyaW5nKTtcbiAgfVxuXG4gIC8vIE1lcmdpZnkgaXMgZXhlbXB0IGZyb20gdGhlIHJ1bGVzZXQncyBjb2RlIHNjYW5uaW5nIHJ1bGUsIHNvIHRoZSBxdWV1ZSBlbmZvcmNlcyBpdCBpbnN0ZWFkXG4gIHByb2plY3QuYXV0b01lcmdlPy5hZGRDb25kaXRpb25zTGF0ZXIoe1xuICAgIHJlbmRlcjogKCkgPT5cbiAgICAgIGNvZGVTY2FubmluZygpID8gW2BzdGF0dXMtc3VjY2Vzcz0ke0NvZGVRbC5DSEVDS19OQU1FfWBdIDogW10sXG4gIH0pO1xuXG4gIGNvbnN0IHVwZ3JhZGVBdXRob3IgPSBgYXV0aG9yPSR7b3B0aW9ucy51cGdyYWRlQXV0aG9yID8/ICdlbmRvci1wcm9qZW5bYm90XSd9YDtcbiAgY29uc3QgdXBncmFkZUNvbmRpdGlvbnMgPSBbdXBncmFkZUF1dGhvcl07XG4gIG1lcmdpZnkuYWRkUnVsZSh7XG4gICAgbmFtZTogJ0F1dG9tYXRpYyBhcHByb3ZhbCBmb3IgcHJvamVuIHVwZ3JhZGUgcHVsbCByZXF1ZXN0cycsXG4gICAgY29uZGl0aW9uczogdXBncmFkZUNvbmRpdGlvbnMsXG4gICAgYWN0aW9uczoge1xuICAgICAgcmV2aWV3OiB7XG4gICAgICAgIHR5cGU6ICdBUFBST1ZFJyxcbiAgICAgICAgbWVzc2FnZTogJ0F1dG9tYXRpY2FsbHkgYXBwcm92aW5nIHByb2plbiB1cGdyYWRlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgbWVyZ2lmeS5hZGRSdWxlKHtcbiAgICBuYW1lOiAnQXNzaWduIFBSIHdoZW4gY2hlY2sgZmFpbHMnLFxuICAgIGNvbmRpdGlvbnM6IFsnI2NoZWNrLWZhaWx1cmUgPiAwJ10sXG4gICAgYWN0aW9uczoge1xuICAgICAgYXNzaWduOiB7XG4gICAgICAgIGFkZF91c2Vyczogb3B0aW9ucy5hc3NpZ25Vc2VycyA/PyBbJ2RhdmVzaGVwaGVyZCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICBwcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKCcubWVyZ2lmeS55bWwnKT8uYWRkT3ZlcnJpZGUoXG4gICAgJ21lcmdlX3Byb3RlY3Rpb25zX3NldHRpbmdzLnJlcG9ydGluZ19tZXRob2QnLFxuICAgIG9wdGlvbnMucmVwb3J0aW5nTWV0aG9kID8/ICdkZXBsb3ltZW50cycsXG4gICk7XG5cbiAgY29uc3QgYWRkUmVhZG1lU2VjdGlvbiA9ICgpID0+XG4gICAgUmVhZG1lLm9mKHByb2plY3QpPy5hZGRTZWN0aW9uKFxuICAgICAgR0lUSFVCX0NPTkZJR1VSQVRJT05fVElUTEUsXG4gICAgICBnaXRodWJDb25maWd1cmF0aW9uU2VjdGlvbih7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3cyxcbiAgICAgICAgY29kZVNjYW5uaW5nOiBjb2RlU2Nhbm5pbmcoKSxcbiAgICAgICAgY29kZVNjYW5uaW5nUGF0aHNJZ25vcmU6IGNvZGVRbCgpPy5wYXRoc0lnbm9yZSA/PyBbXSxcbiAgICAgICAgcmVxdWlyZWRDaGVja3M6IGJ1aWxkSm9iSWRzKCksXG4gICAgICAgIHRydXN0ZWRBdXRob3JzLFxuICAgICAgfSksXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5SRUZFUkVOQ0UgfSxcbiAgICApO1xuICBsZXQgcmVhZG1lU2VjdGlvbiA9IGFkZFJlYWRtZVNlY3Rpb24oKTtcblxuICBuZXcgQmVmb3JlU3ludGhlc2lzKHByb2plY3QsICgpID0+IHtcbiAgICB1cGdyYWRlQ29uZGl0aW9ucy5zcGxpY2UoXG4gICAgICAwLFxuICAgICAgdXBncmFkZUNvbmRpdGlvbnMubGVuZ3RoLFxuICAgICAgdXBncmFkZUF1dGhvcixcbiAgICAgIC4uLmJ1aWxkSm9iSWRzKCkubWFwKChpZCkgPT4gYHN0YXR1cy1zdWNjZXNzPSR7aWR9YCksXG4gICAgKTtcbiAgICAvLyBsZWF2ZSB0aGUgc2VjdGlvbiBhbG9uZSBpZiB0aGUgcHJvamVjdCBoYXMgcmVtb3ZlZCBvciByZXBsYWNlZCBpdFxuICAgIGNvbnN0IHJlYWRtZSA9IFJlYWRtZS5vZihwcm9qZWN0KTtcbiAgICBpZiAocmVhZG1lU2VjdGlvbiAmJiByZWFkbWU/LnRyeUZpbmRTZWN0aW9uKEdJVEhVQl9DT05GSUdVUkFUSU9OX1RJVExFKSA9PT0gcmVhZG1lU2VjdGlvbikge1xuICAgICAgcmVhZG1lU2VjdGlvbiA9IGFkZFJlYWRtZVNlY3Rpb24oKTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCBHSVRIVUJfQ09ORklHVVJBVElPTl9USVRMRSA9ICdHaXRIdWIgQ29uZmlndXJhdGlvbic7XG5cbi8qKlxuICogUnVucyBhIGNhbGxiYWNrIG9uY2UgZXZlcnkgY29tcG9uZW50IGhhcyBiZWVuIGFkZGVkLCBiZWZvcmUgYW55IGZpbGUgaXNcbiAqIHN5bnRoZXNpemVkXG4gKi9cbmNsYXNzIEJlZm9yZVN5bnRoZXNpcyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IFByb2plY3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogKCkgPT4gdm9pZCxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHRoaXMuY2FsbGJhY2soKTtcbiAgfVxufVxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNENBLDRDQVFDO0FBMkdELDRDQTZGQztBQTVQRCxtQ0FBeUU7QUFDekUscUNBQWtDO0FBQ2xDLGlEQUE4QztBQUM5QyxxQ0FBc0M7QUFDdEMsc0NBQWdEO0FBb0NoRDs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUdoQztJQUNDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQzdELENBQUM7QUFVRCxTQUFTLGdCQUFnQixDQUN2QixNQUF1RTtJQUV2RSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLE9BQU8sbUNBQW1DLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxPQUFPLG9EQUFvRCxJQUFBLG1CQUFVLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0SCxDQUFDO0lBQ0QsT0FBTyxxREFBcUQsQ0FBQztBQUMvRCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUEyQjtJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVCLE9BQU87OzRUQUVpVCxDQUFDO0lBQzNULENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxPQUFPOzs4T0FFbU8sQ0FBQztJQUM3TyxDQUFDO0lBQ0QsT0FBTyxFQUFFLENB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Q0wsQ0FBQztBQUVELE1BQU0sMEJBQTBCLEdBQUcsc0JBQXNCLENBQUM7QUFFMUQ7OztHQUdHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRyw4QkFBOEIsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sdUJBQXdCLFNBQVEsaUJBQVE7SUFHekI7SUFGbkIsWUFDRSxPQUFnQixFQUNDLElBQWtCO1FBRW5DLEtBQUssQ0FBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFGN0IsU0FBSSxHQUFKLElBQUksQ0FBYztJQUdyQyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sR0FBRyxNQUFNLEtBQUssMEJBQTBCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDeEUsQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxlQUFnQixTQUFRLGtCQUFTO0lBR2xCO0lBRm5CLFlBQ0UsT0FBZ0IsRUFDQyxRQUFvQjtRQUVyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGRSxhQUFRLEdBQVIsUUFBUSxDQUFZO0lBR3ZDLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRmlsZUJhc2UsIGdpdGh1YiwgSVJlc29sdmVyLCBQcm9qZWN0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENvZGVRbCB9IGZyb20gJy4vY29kZXFsJztcbmltcG9ydCB7IENvbnRyaWJ1dGluZyB9IGZyb20gJy4vY29udHJpYnV0aW5nJztcbmltcG9ydCB7IGZvcm1hdExpc3QgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vcmVhZG1lJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgYXBwcm92aW5nIHJldmlld3MgdGhlIG1lcmdlIHF1ZXVlIHdhaXRzIGZvciwgd2hpY2ggc2hvdWxkIG1hdGNoXG4gICAqIGBhdXRvTWVyZ2VPcHRpb25zLmFwcHJvdmVkUmV2aWV3c2BcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgYXBwcm92ZWRSZXZpZXdzPzogbnVtYmVyO1xuICByZWFkb25seSBhc3NpZ25Vc2Vycz86IEFycmF5PHN0cmluZz47XG4gIHJlYWRvbmx5IHJlcG9ydGluZ01ldGhvZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dGhvcnMgd2hvc2UgcHVsbCByZXF1ZXN0cyB0aGUgbWVyZ2UgcXVldWUgbWVyZ2VzIHdpdGhvdXQgYW4gYXBwcm92YWwsIHN1Y2hcbiAgICogYXMgdGhlIHNpbmdsZSBtYWludGFpbmVyIG9mIGEgcmVwb3NpdG9yeSwgd2hvIGNhbm5vdCBhcHByb3ZlIHRoZWlyIG93biBwdWxsXG4gICAqIHJlcXVlc3RzLiBQdWxsIHJlcXVlc3RzIGZyb20gYW55b25lIGVsc2Ugc3RpbGwgbmVlZCBgYXBwcm92ZWRSZXZpZXdzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBdXRob3JzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIEF1dGhvciBvZiB0aGUgcHJvamVuIHVwZ3JhZGUgcHVsbCByZXF1ZXN0cyB0aGF0IGFyZSBhdXRvbWF0aWNhbGx5IGFwcHJvdmVkXG4gICAqXG4gICAqIEBkZWZhdWx0ICdlbmRvci1wcm9qZW5bYm90XSdcbiAgICovXG4gIHJlYWRvbmx5IHVwZ3JhZGVBdXRob3I/OiBzdHJpbmc7XG59XG5cbnR5cGUgTWVyZ2lmeVByb2plY3QgPSBQcm9qZWN0ICYge1xuICByZWFkb25seSBhdXRvTWVyZ2U/OiBnaXRodWIuQXV0b01lcmdlO1xuICByZWFkb25seSBnaXRodWI/OiBnaXRodWIuR2l0SHViO1xuICByZWFkb25seSBidWlsZFdvcmtmbG93Pzoge1xuICAgIHJlYWRvbmx5IGJ1aWxkSm9iSWRzPzogQXJyYXk8c3RyaW5nPjtcbiAgfTtcbn07XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcHJvamVuJ3MgYXV0byBtZXJnZSwgd2hpY2ggcmVxdWlyZXMgaXRzIGFwcHJvdmFscyBmcm9tIGV2ZXJ5XG4gKiBhdXRob3IsIHNvIHdpdGggdHJ1c3RlZCBhdXRob3JzIGBjb25maWd1cmVNZXJnaWZ5YCByZXF1aXJlcyB0aGVtIGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dG9NZXJnZU9wdGlvbnMob3B0aW9uczoge1xuICByZWFkb25seSBhdXRvTWVyZ2VPcHRpb25zPzogZ2l0aHViLkF1dG9NZXJnZU9wdGlvbnM7XG4gIHJlYWRvbmx5IHRydXN0ZWRBdXRob3JzPzogQXJyYXk8c3RyaW5nPjtcbn0pOiBnaXRodWIuQXV0b01lcmdlT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gIGlmICghb3B0aW9ucy50cnVzdGVkQXV0aG9ycz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucztcbiAgfVxuICByZXR1cm4geyAuLi5vcHRpb25zLmF1dG9NZXJnZU9wdGlvbnMsIGFwcHJvdmVkUmV2aWV3czogMCB9O1xufVxuXG5pbnRlcmZhY2UgR2l0aHViQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IGFwcHJvdmVkUmV2aWV3czogbnVtYmVyO1xuICByZWFkb25seSBjb2RlU2Nhbm5pbmc6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNvZGVTY2FubmluZ1BhdGhzSWdub3JlOiBBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSByZXF1aXJlZENoZWNrczogQXJyYXk8c3RyaW5nPjtcbiAgcmVhZG9ubHkgdHJ1c3RlZEF1dGhvcnM6IEFycmF5PHN0cmluZz47XG59XG5cbmZ1bmN0aW9uIHF1ZXVlRGVzY3JpcHRpb24oXG4gIGNvbmZpZzogUGljazxHaXRodWJDb25maWd1cmF0aW9uLCAnYXBwcm92ZWRSZXZpZXdzJyB8ICd0cnVzdGVkQXV0aG9ycyc+LFxuKTogc3RyaW5nIHtcbiAgaWYgKCFjb25maWcuYXBwcm92ZWRSZXZpZXdzKSB7XG4gICAgcmV0dXJuIFwiT25jZSBhIHB1bGwgcmVxdWVzdCdzIGNoZWNrcyBwYXNzXCI7XG4gIH1cbiAgaWYgKGNvbmZpZy50cnVzdGVkQXV0aG9ycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gYE9uY2UgYSBwdWxsIHJlcXVlc3QgaXMgYXBwcm92ZWQsIG9yIGlzIG9wZW5lZCBieSAke2Zvcm1hdExpc3QoY29uZmlnLnRydXN0ZWRBdXRob3JzKX0sIGFuZCBpdHMgY2hlY2tzIHBhc3NgO1xuICB9XG4gIHJldHVybiAnT25jZSBhIHB1bGwgcmVxdWVzdCBpcyBhcHByb3ZlZCBhbmQgaXRzIGNoZWNrcyBwYXNzJztcbn1cblxuZnVuY3Rpb24gYXBwcm92YWxHdWlkYW5jZShjb25maWc6IEdpdGh1YkNvbmZpZ3VyYXRpb24pOiBzdHJpbmcge1xuICBpZiAoIWNvbmZpZy5hcHByb3ZlZFJldmlld3MpIHtcbiAgICByZXR1cm4gYFxuXG4qKldhcm5pbmc6Kiogbm8gYXBwcm92YWxzIGFyZSByZXF1aXJlZCwgc28gdGhlIHF1ZXVlIG1lcmdlcyBhbnkgcHVsbCByZXF1ZXN0IHdob3NlIGNoZWNrcyBwYXNzLCBpbmNsdWRpbmcgb25lIGZyb20gYSBmb3JrIHRoYXQgY2hhbmdlcyB0aGUgd29ya2Zsb3dzIHByb2R1Y2luZyB0aG9zZSBjaGVja3MuIFNldCBcXGBhdXRvTWVyZ2VPcHRpb25zLmFwcHJvdmVkUmV2aWV3c1xcYCB0byBhdCBsZWFzdCAxLCBhbmQgdXNlIFxcYHRydXN0ZWRBdXRob3JzXFxgIGZvciBtYWludGFpbmVycyB3aG8gY2Fubm90IGFwcHJvdmUgdGhlaXIgb3duIHB1bGwgcmVxdWVzdHMuYDtcbiAgfVxuICBpZiAoIWNvbmZpZy50cnVzdGVkQXV0aG9ycy5sZW5ndGgpIHtcbiAgICByZXR1cm4gYFxuXG5BIHJlcG9zaXRvcnkgd2l0aCBhIHNpbmdsZSBtYWludGFpbmVyLCB3aG8gY2Fubm90IGFwcHJvdmUgdGhlaXIgb3duIHB1bGwgcmVxdWVzdHMsIHNob3VsZCBsaXN0IHRoZW0gaW4gXFxgdHJ1c3RlZEF1dGhvcnNcXGAgaW4gXFxgLnByb2plbnJjLnRzXFxgLiBUaGVpciBwdWxsIHJlcXVlc3RzIGFyZSB0aGVuIG1lcmdlZCB3aXRob3V0IGFuIGFwcHJvdmFsLCB3aGlsZSBldmVyeW9uZSBlbHNlJ3Mgc3RpbGwgbmVlZCBvbmUuYDtcbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogVGhlIGd1aWRlIHRvIGNvbmZpZ3VyaW5nIHRoZSByZXBvc2l0b3J5IG9uIEdpdEh1YlxuICovXG5mdW5jdGlvbiBnaXRodWJDb25maWd1cmF0aW9uR3VpZGUoY29uZmlnOiBHaXRodWJDb25maWd1cmF0aW9uKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhdHVzQ2hlY2tzID0gY29uZmlnLnJlcXVpcmVkQ2hlY2tzLmxlbmd0aFxuICAgID8gJ3RoZSBjaGVja3MgdGhhdCBgLm1lcmdpZnkueW1sYCB3YWl0cyBmb3I6IGAnICtcbiAgICAgIGNvbmZpZy5yZXF1aXJlZENoZWNrcy5qb2luKCdgLCBgJykgK1xuICAgICAgJ2AnXG4gICAgOiAnYW55IENJIGNoZWNrcyBhZGRlZCB0byB0aGUgcHJvamVjdCAobm9uZSBhcmUgY29uZmlndXJlZCB5ZXQpLCBrZWVwaW5nIHRoZW0gaW4gc3luYyB3aXRoIGAubWVyZ2lmeS55bWxgJztcbiAgY29uc3QgYXBwcm92YWxzID0gY29uZmlnLnRydXN0ZWRBdXRob3JzLmxlbmd0aFxuICAgID8gJzAgcmVxdWlyZWQgYXBwcm92YWxzLCBiZWNhdXNlIE1lcmdpZnkgcmVxdWlyZXMgYXBwcm92YWxzIGl0c2VsZiBmb3IgYXV0aG9ycyBvdGhlciB0aGFuICcgK1xuICAgICAgZm9ybWF0TGlzdChjb25maWcudHJ1c3RlZEF1dGhvcnMpICtcbiAgICAgICcgYW5kIGlzIGV4ZW1wdCBmcm9tIHRoaXMgcnVsZSdcbiAgICA6IGNvbmZpZy5hcHByb3ZlZFJldmlld3MgPT09IDFcbiAgICAgID8gJzEgcmVxdWlyZWQgYXBwcm92YWwnXG4gICAgICA6IGAke2NvbmZpZy5hcHByb3ZlZFJldmlld3N9IHJlcXVpcmVkIGFwcHJvdmFsc2A7XG4gIGNvbnN0IHBhdGhzSWdub3JlID0gY29uZmlnLmNvZGVTY2FubmluZ1BhdGhzSWdub3JlO1xuICBjb25zdCBvdGhlclBhdGhzSWdub3JlID0gcGF0aHNJZ25vcmUuZmlsdGVyKFxuICAgIChwYXR0ZXJuKSA9PiBwYXR0ZXJuICE9PSBDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFMsXG4gICk7XG4gIGNvbnN0IGlnbm9yZWRQYXRocyA9XG4gICAgKHBhdGhzSWdub3JlLmluY2x1ZGVzKENvZGVRbC5JTlRFR19TTkFQU0hPVF9QQVRIUylcbiAgICAgID8gYCBDb2RlUUwgZG9lcyBub3Qgc2NhbiB0aGUgaW50ZWctcnVubmVyIHNuYXBzaG90cyAoXFxgJHtDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFN9XFxgKTogdGhlaXIgYXNzZXRzIGFyZSBnZW5lcmF0ZWQgYnVuZGxlcyBvZiBkZXBlbmRlbmNpZXMgd2hvc2UgZmlsZSBuYW1lcyBjaGFuZ2Ugb24gZXZlcnkgXFxgaW50ZWc6dXBkYXRlXFxgLCBzbyBhbGVydHMgb24gdGhlbSBjYW4gbmVpdGhlciBiZSBmaXhlZCBpbiB0aGUgcmVwb3NpdG9yeSBub3IgZGlzbWlzc2VkIGZvciBnb29kLiBUaGUgc291cmNlIHRoZXkgYXJlIGJ1aWx0IGZyb20gaXMgc3RpbGwgc2Nhbm5lZC5gXG4gICAgICA6ICcnKSArXG4gICAgKG90aGVyUGF0aHNJZ25vcmUubGVuZ3RoXG4gICAgICA/IGAgQ29kZVFMIGRvZXMgbm90IHNjYW4gcGF0aHMgbWF0Y2hpbmcgJHtmb3JtYXRMaXN0KG90aGVyUGF0aHNJZ25vcmUpfS5gXG4gICAgICA6ICcnKTtcbiAgY29uc3QgY29kZVNjYW5uaW5nU2V0dGluZ3MgPSBjb25maWcuY29kZVNjYW5uaW5nXG4gICAgPyBgXG5cbiMjIENvZGUgc2Nhbm5pbmdcblxuQ29kZVFMIHJ1bnMgZnJvbSBcXGAuZ2l0aHViL3dvcmtmbG93cy9jb2RlcWwueW1sXFxgLCB3aGljaCBpcyBtYW5hZ2VkIGJ5IHByb2plbi4gSW4gKipTZXR0aW5ncyDihpIgQWR2YW5jZWQgU2VjdXJpdHkqKiwgbGVhdmUgQ29kZVFMICoqRGVmYXVsdCBzZXR1cCoqIG9mZiwgYmVjYXVzZSBpdCBjYW5ub3QgcnVuIGFsb25nc2lkZSB0aGlzIHdvcmtmbG93LiBVbmRlciAqKlByb3RlY3Rpb24gcnVsZXMqKiwga2VlcCB0aGUgKipDaGVjayBydW4gZmFpbHVyZSB0aHJlc2hvbGQqKiBhdCAqKkhpZ2ggb3IgaGlnaGVyKiogZm9yIHNlY3VyaXR5IGFsZXJ0cyBhbmQgKipFcnJvcnMqKiBmb3Igb3RoZXIgYWxlcnRzLCBhcyB0aGlzIGRlY2lkZXMgd2hldGhlciB0aGUgXFxgJHtDb2RlUWwuQ0hFQ0tfTkFNRX1cXGAgY2hlY2sgZmFpbHMuIFByaXZhdGUgcmVwb3NpdG9yaWVzIGFsc28gbmVlZCBHaXRIdWIgQ29kZSBTZWN1cml0eSBlbmFibGVkIHRoZXJlIGZvciBjb2RlIHNjYW5uaW5nIHJlc3VsdHMgdG8gYmUgdXBsb2FkZWQuJHtpZ25vcmVkUGF0aHN9YFxuICAgIDogJyc7XG4gIGNvbnN0IGNvZGVTY2FubmluZ1J1bGUgPSBjb25maWcuY29kZVNjYW5uaW5nXG4gICAgPyBgXG4qICoqUmVxdWlyZSBjb2RlIHNjYW5uaW5nIHJlc3VsdHMqKiwgd2l0aCB0aGUgdG9vbCAqKkNvZGVRTCoqLCBzZWN1cml0eSBhbGVydHMgc2V0IHRvICoqSGlnaCBvciBoaWdoZXIqKiBhbmQgYWxlcnRzIHNldCB0byAqKkVycm9ycyoqLiBNZXJnaWZ5IGlzIGV4ZW1wdCBmcm9tIHRoaXMgcnVsZSwgc28gXFxgLm1lcmdpZnkueW1sXFxgIGFsc28gd2FpdHMgZm9yIHRoZSBcXGAke0NvZGVRbC5DSEVDS19OQU1FfVxcYCBjaGVjayBpbnN0ZWFkLmBcbiAgICA6ICcnO1xuICByZXR1cm4gYEFsbCBwdWxsIHJlcXVlc3RzIGFyZSBtZXJnZWQgYnkgdGhlIFtNZXJnaWZ5XShodHRwczovL21lcmdpZnkuY29tKSBtZXJnZSBxdWV1ZSwgY29uZmlndXJlZCBpbiBcXGAubWVyZ2lmeS55bWxcXGAuICR7cXVldWVEZXNjcmlwdGlvbihjb25maWcpfSwgTWVyZ2lmeSBxdWV1ZXMgaXQsIGJyaW5ncyBpdCB1cCB0byBkYXRlIHdpdGggdGhlIGRlZmF1bHQgYnJhbmNoLCB3YWl0cyBmb3IgdGhlIGNoZWNrcyBhZ2FpbiBhbmQgc3F1YXNoIG1lcmdlcyBpdC4gRHJhZnQgcHVsbCByZXF1ZXN0cyBhbmQgdGhvc2UgbGFiZWxsZWQgXFxgZG8tbm90LW1lcmdlXFxgIGFyZSBub3QgbWVyZ2VkLlxuXG5UaGUgcmVwb3NpdG9yeSBtdXN0IGJlIGNvbmZpZ3VyZWQgYXMgYmVsb3cgc28gdGhhdCBub3RoaW5nIGNhbiBiZSBtZXJnZWQgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBxdWV1ZS5cblxuIyMgTWVyZ2lmeVxuXG5JbnN0YWxsIHRoZSBbTWVyZ2lmeSBHaXRIdWIgQXBwXShodHRwczovL2dpdGh1Yi5jb20vYXBwcy9tZXJnaWZ5KSBhbmQgZ2l2ZSBpdCBhY2Nlc3MgdG8gdGhpcyByZXBvc2l0b3J5LlxuXG4jIyBQdWxsIHJlcXVlc3Qgc2V0dGluZ3NcblxuSW4gKipTZXR0aW5ncyDihpIgR2VuZXJhbCDihpIgUHVsbCBSZXF1ZXN0cyoqOlxuKiBBbGxvdyBzcXVhc2ggbWVyZ2luZyBvbmx5ICh1bnRpY2sgbWVyZ2UgY29tbWl0cyBhbmQgcmViYXNlIG1lcmdpbmcpLCBtYXRjaGluZyB0aGUgcXVldWUncyBtZXJnZSBtZXRob2QuXG4qIFVudGljayAqKkFsbG93IGF1dG8tbWVyZ2UqKiwgYmVjYXVzZSBHaXRIdWIncyBvd24gYXV0by1tZXJnZSBtZXJnZXMgb3V0c2lkZSB0aGUgcXVldWUuXG4qIFRpY2sgKipBdXRvbWF0aWNhbGx5IGRlbGV0ZSBoZWFkIGJyYW5jaGVzKiouXG5cbiMjIEFjdGlvbnMgc2V0dGluZ3NcblxuSW4gKipTZXR0aW5ncyDihpIgQWN0aW9ucyDihpIgR2VuZXJhbCoqLCBzZXQgKipBcHByb3ZhbCBmb3IgcnVubmluZyBmb3JrIHB1bGwgcmVxdWVzdCB3b3JrZmxvd3MgZnJvbSBjb250cmlidXRvcnMqKiB0byAqKlJlcXVpcmUgYXBwcm92YWwgZm9yIGFsbCBleHRlcm5hbCBjb250cmlidXRvcnMqKi4gQSBwdWxsIHJlcXVlc3QgZnJvbSBhIGZvcmsgcnVucyBpdHMgb3duIGNvcHkgb2YgdGhlIHdvcmtmbG93cywgc28gaXQgY2FuIGNoYW5nZSBob3cgdGhlIHJlcXVpcmVkIGNoZWNrcyBwYXNzLiR7Y29kZVNjYW5uaW5nU2V0dGluZ3N9XG5cbiMjIEJyYW5jaCBydWxlc2V0XG5cbkluICoqU2V0dGluZ3Mg4oaSIFJ1bGVzIOKGkiBSdWxlc2V0cyoqLCBjcmVhdGUgYSBicmFuY2ggcnVsZXNldCB3aXRoIGVuZm9yY2VtZW50ICoqQWN0aXZlKiogdGhhdCB0YXJnZXRzIHRoZSBkZWZhdWx0IGJyYW5jaCwgYW5kIHNldDpcbiogKipCeXBhc3MgbGlzdCoqOiB0aGUgKipNZXJnaWZ5KiogYXBwIG9ubHksIGluICoqRXhlbXB0KiogbW9kZS4gRG8gbm90IGFkZCBhZG1pbnMgb3Igb3RoZXIgcm9sZXMsIGFzIGFueW9uZSBvbiB0aGlzIGxpc3QgY2FuIG1lcmdlIHdpdGhvdXQgdGhlIHF1ZXVlLlxuKiAqKlJlc3RyaWN0IHVwZGF0ZXMqKjogb25seSBieXBhc3MgYWN0b3JzIGNhbiB1cGRhdGUgdGhlIGJyYW5jaCwgc28gcHVsbCByZXF1ZXN0cyBjYW5ub3QgYmUgbWVyZ2VkIGZyb20gdGhlIEdpdEh1YiBVSSBvciBDTEkgYW5kIGNvbW1pdHMgY2Fubm90IGJlIHB1c2hlZCBkaXJlY3RseS5cbiogKipSZXN0cmljdCBkZWxldGlvbnMqKiBhbmQgKipCbG9jayBmb3JjZSBwdXNoZXMqKi5cbiogKipSZXF1aXJlIGEgcHVsbCByZXF1ZXN0IGJlZm9yZSBtZXJnaW5nKiosIHdpdGggJHthcHByb3ZhbHN9LiBUaWNrICoqRGlzbWlzcyBzdGFsZSBwdWxsIHJlcXVlc3QgYXBwcm92YWxzIHdoZW4gbmV3IGNvbW1pdHMgYXJlIHB1c2hlZCoqLCBzbyB0aGF0IGNvbW1pdHMgcHVzaGVkIGFmdGVyIGFuIGFwcHJvdmFsIG5lZWQgYXBwcm92aW5nIGFnYWluIGJlZm9yZSB0aGUgcXVldWUgbWVyZ2VzIHRoZW0uXG4qICoqUmVxdWlyZSBzdGF0dXMgY2hlY2tzIHRvIHBhc3MqKiwgbGlzdGluZyAke3N0YXR1c0NoZWNrc30uIExlYXZlICoqUmVxdWlyZSBicmFuY2hlcyB0byBiZSB1cCB0byBkYXRlIGJlZm9yZSBtZXJnaW5nKiogdW50aWNrZWQsIGFzIHRoZSBxdWV1ZSBhbHJlYWR5IHVwZGF0ZXMgYW5kIHJldGVzdHMgZWFjaCBwdWxsIHJlcXVlc3QuJHtjb2RlU2Nhbm5pbmdSdWxlfVxuXG5EbyBub3QgZW5hYmxlIEdpdEh1YidzIG93biAqKlJlcXVpcmUgbWVyZ2UgcXVldWUqKiBydWxlLCBhcyBpdCBjb21wZXRlcyB3aXRoIE1lcmdpZnkuXG5cbklmIHRoZSBxdWV1ZSBpcyB1bmF2YWlsYWJsZSBhbmQgYSBjaGFuZ2UgaGFzIHRvIGJlIG1lcmdlZCwgYWRkIHlvdXJzZWxmIHRvIHRoZSBieXBhc3MgbGlzdCB0ZW1wb3JhcmlseSBhbmQgcmVtb3ZlIHlvdXJzZWxmIGFmdGVyd2FyZHMuJHthcHByb3ZhbEd1aWRhbmNlKGNvbmZpZyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZU1lcmdpZnkoXG4gIHByb2plY3Q6IE1lcmdpZnlQcm9qZWN0LFxuICBvcHRpb25zOiBNZXJnaWZ5T3B0aW9ucyA9IHt9LFxuKSB7XG4gIGNvbnN0IG1lcmdpZnkgPSBwcm9qZWN0LmdpdGh1Yj8ubWVyZ2lmeTtcbiAgaWYgKCFtZXJnaWZ5KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gYnVpbGQgam9icyBhbmQgQ29kZVFMIGNhbiBiZSBhZGRlZCBhZnRlciB0aGlzLCBzbyB0aGV5IGFyZSByZWFkIGF0IHN5bnRoZXNpc1xuICBjb25zdCBidWlsZEpvYklkcyA9ICgpID0+IHByb2plY3QuYnVpbGRXb3JrZmxvdz8uYnVpbGRKb2JJZHMgPz8gW107XG4gIGNvbnN0IGNvZGVRbCA9ICgpID0+XG4gICAgcHJvamVjdC5jb21wb25lbnRzLmZpbmQoKGMpOiBjIGlzIENvZGVRbCA9PiBjIGluc3RhbmNlb2YgQ29kZVFsKTtcbiAgY29uc3QgY29kZVNjYW5uaW5nID0gKCkgPT4gY29kZVFsKCkgIT09IHVuZGVmaW5lZDtcblxuICBwcm9qZWN0LmF1dG9NZXJnZT8uYWRkQ29uZGl0aW9ucygnLWRyYWZ0Jyk7XG5cbiAgY29uc3QgYXBwcm92ZWRSZXZpZXdzID0gb3B0aW9ucy5hcHByb3ZlZFJldmlld3MgPz8gMTtcbiAgY29uc3QgdHJ1c3RlZEF1dGhvcnMgPSBvcHRpb25zLnRydXN0ZWRBdXRob3JzID8/IFtdO1xuICBpZiAodHJ1c3RlZEF1dGhvcnMubGVuZ3RoICYmIGFwcHJvdmVkUmV2aWV3cykge1xuICAgIGNvbnN0IGFwcHJvdmVkT3JUcnVzdGVkOiBnaXRodWIuTWVyZ2lmeUNvbmRpdGlvbiA9IHtcbiAgICAgIG9yOiBbXG4gICAgICAgIGAjYXBwcm92ZWQtcmV2aWV3cy1ieT49JHthcHByb3ZlZFJldmlld3N9YCxcbiAgICAgICAgLi4udHJ1c3RlZEF1dGhvcnMubWFwKChhdXRob3IpID0+IGBhdXRob3I9JHthdXRob3J9YCksXG4gICAgICBdLFxuICAgIH07XG4gICAgLy8gcHJvamVuIHR5cGVzIGF1dG8gbWVyZ2UgY29uZGl0aW9ucyBhcyBzdHJpbmdzLCBidXQgbWVyZ2lmeSBhY2NlcHRzIG9wZXJhdG9ycyB0b29cbiAgICBwcm9qZWN0LmF1dG9NZXJnZT8uYWRkQ29uZGl0aW9ucyhhcHByb3ZlZE9yVHJ1c3RlZCBhcyB1bmtub3duIGFzIHN0cmluZyk7XG4gIH1cblxuICAvLyBNZXJnaWZ5IGlzIGV4ZW1wdCBmcm9tIHRoZSBydWxlc2V0J3MgY29kZSBzY2FubmluZyBydWxlLCBzbyB0aGUgcXVldWUgZW5mb3JjZXMgaXQgaW5zdGVhZFxuICBwcm9qZWN0LmF1dG9NZXJnZT8uYWRkQ29uZGl0aW9uc0xhdGVyKHtcbiAgICByZW5kZXI6ICgpID0+XG4gICAgICBjb2RlU2Nhbm5pbmcoKSA/IFtgc3RhdHVzLXN1Y2Nlc3M9JHtDb2RlUWwuQ0hFQ0tfTkFNRX1gXSA6IFtdLFxuICB9KTtcblxuICBjb25zdCB1cGdyYWRlQXV0aG9yID0gYGF1dGhvcj0ke29wdGlvbnMudXBncmFkZUF1dGhvciA/PyAnZW5kb3ItcHJvamVuW2JvdF0nfWA7XG4gIGNvbnN0IHVwZ3JhZGVDb25kaXRpb25zID0gW3VwZ3JhZGVBdXRob3JdO1xuICBtZXJnaWZ5LmFkZFJ1bGUoe1xuICAgIG5hbWU6ICdBdXRvbWF0aWMgYXBwcm92YWwgZm9yIHByb2plbiB1cGdyYWRlIHB1bGwgcmVxdWVzdHMnLFxuICAgIGNvbmRpdGlvbnM6IHVwZ3JhZGVDb25kaXRpb25zLFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHJldmlldzoge1xuICAgICAgICB0eXBlOiAnQVBQUk9WRScsXG4gICAgICAgIG1lc3NhZ2U6ICdBdXRvbWF0aWNhbGx5IGFwcHJvdmluZyBwcm9qZW4gdXBncmFkZScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIG1lcmdpZnkuYWRkUnVsZSh7XG4gICAgbmFtZTogJ0Fzc2lnbiBQUiB3aGVuIGNoZWNrIGZhaWxzJyxcbiAgICBjb25kaXRpb25zOiBbJyNjaGVjay1mYWlsdXJlID4gMCddLFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIGFzc2lnbjoge1xuICAgICAgICBhZGRfdXNlcnM6IG9wdGlvbnMuYXNzaWduVXNlcnMgPz8gWydkYXZlc2hlcGhlcmQnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgcHJvamVjdC50cnlGaW5kT2JqZWN0RmlsZSgnLm1lcmdpZnkueW1sJyk/LmFkZE92ZXJyaWRlKFxuICAgICdtZXJnZV9wcm90ZWN0aW9uc19zZXR0aW5ncy5yZXBvcnRpbmdfbWV0aG9kJyxcbiAgICBvcHRpb25zLnJlcG9ydGluZ01ldGhvZCA/PyAnZGVwbG95bWVudHMnLFxuICApO1xuXG4gIENvbnRyaWJ1dGluZy5vZihwcm9qZWN0KS5jb25maWd1cmVNZXJnZVF1ZXVlKFxuICAgIGAke3F1ZXVlRGVzY3JpcHRpb24oeyBhcHByb3ZlZFJldmlld3MsIHRydXN0ZWRBdXRob3JzIH0pfSwgdGhlIFtNZXJnaWZ5XShodHRwczovL21lcmdpZnkuY29tKSBtZXJnZSBxdWV1ZSBzcXVhc2ggbWVyZ2VzIGl0LCB3aXRoIGl0cyB0aXRsZSBhcyB0aGUgY29tbWl0IG1lc3NhZ2UuIERyYWZ0IHB1bGwgcmVxdWVzdHMgYW5kIHRob3NlIGxhYmVsbGVkIFxcYGRvLW5vdC1tZXJnZVxcYCBhcmUgbm90IG1lcmdlZC5gLFxuICApO1xuXG4gIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSAoKTogR2l0aHViQ29uZmlndXJhdGlvbiA9PiAoe1xuICAgIGFwcHJvdmVkUmV2aWV3cyxcbiAgICBjb2RlU2Nhbm5pbmc6IGNvZGVTY2FubmluZygpLFxuICAgIGNvZGVTY2FubmluZ1BhdGhzSWdub3JlOiBjb2RlUWwoKT8ucGF0aHNJZ25vcmUgPz8gW10sXG4gICAgcmVxdWlyZWRDaGVja3M6IGJ1aWxkSm9iSWRzKCksXG4gICAgdHJ1c3RlZEF1dGhvcnMsXG4gIH0pO1xuICAvLyB0aGUgZ3VpZGUgaXMgcmVuZGVyZWQgd2hlbiB0aGUgZmlsZSBpcyBzeW50aGVzaXplZCwgYWZ0ZXIgZXZlcnkgY29tcG9uZW50IGhhcyBiZWVuIGFkZGVkXG4gIG5ldyBHaXRodWJDb25maWd1cmF0aW9uRmlsZShwcm9qZWN0LCAoKSA9PlxuICAgIGdpdGh1YkNvbmZpZ3VyYXRpb25HdWlkZShjb25maWd1cmF0aW9uKCkpLFxuICApO1xuICBSZWFkbWUub2YocHJvamVjdCk/LmFkZFNlY3Rpb24oXG4gICAgR0lUSFVCX0NPTkZJR1VSQVRJT05fVElUTEUsXG4gICAgYFRoZSBvbmUtb2ZmIGNvbmZpZ3VyYXRpb24gdGhhdCB0aGlzIHJlcG9zaXRvcnkgbmVlZHMgb24gR2l0SHViLCBzdWNoIGFzIHRoZSBNZXJnaWZ5IG1lcmdlIHF1ZXVlIGFuZCB0aGUgYnJhbmNoIHJ1bGVzZXQsIGlzIGRlc2NyaWJlZCBpbiBbJHtHSVRIVUJfQ09ORklHVVJBVElPTl9GSUxFfV0oJHtHSVRIVUJfQ09ORklHVVJBVElPTl9GSUxFfSkuYCxcbiAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5SRUZFUkVOQ0UgfSxcbiAgKTtcblxuICBuZXcgQmVmb3JlU3ludGhlc2lzKHByb2plY3QsICgpID0+IHtcbiAgICB1cGdyYWRlQ29uZGl0aW9ucy5zcGxpY2UoXG4gICAgICAwLFxuICAgICAgdXBncmFkZUNvbmRpdGlvbnMubGVuZ3RoLFxuICAgICAgdXBncmFkZUF1dGhvcixcbiAgICAgIC4uLmJ1aWxkSm9iSWRzKCkubWFwKChpZCkgPT4gYHN0YXR1cy1zdWNjZXNzPSR7aWR9YCksXG4gICAgKTtcbiAgfSk7XG59XG5cbmNvbnN0IEdJVEhVQl9DT05GSUdVUkFUSU9OX1RJVExFID0gJ0dpdEh1YiBDb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBXaGVyZSB0aGUgZ3VpZGUgdG8gY29uZmlndXJpbmcgdGhlIHJlcG9zaXRvcnkgb24gR2l0SHViIGlzIHdyaXR0ZW4sIGluIHRoZVxuICogZG9jcyBkaXJlY3RvcnkgZXZlcnkgcHJvamVjdCB1c2VzXG4gKi9cbmNvbnN0IEdJVEhVQl9DT05GSUdVUkFUSU9OX0ZJTEUgPSAnZG9jcy9naXRodWItY29uZmlndXJhdGlvbi5tZCc7XG5cbi8qKlxuICogVGhlIGd1aWRlIHRvIGNvbmZpZ3VyaW5nIHRoZSByZXBvc2l0b3J5IG9uIEdpdEh1YiwgYXMgaXRzIG93biBtYXJrZG93biBmaWxlXG4gKi9cbmNsYXNzIEdpdGh1YkNvbmZpZ3VyYXRpb25GaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYm9keTogKCkgPT4gc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBHSVRIVUJfQ09ORklHVVJBVElPTl9GSUxFLCB7fSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXJrZXIgPSB0aGlzLm1hcmtlciA/IGA8IS0tICR7dGhpcy5tYXJrZXJ9IC0tPlxcblxcbmAgOiAnJztcbiAgICByZXR1cm4gYCR7bWFya2VyfSMgJHtHSVRIVUJfQ09ORklHVVJBVElPTl9USVRMRX1cXG5cXG4ke3RoaXMuYm9keSgpfVxcbmA7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIGEgY2FsbGJhY2sgb25jZSBldmVyeSBjb21wb25lbnQgaGFzIGJlZW4gYWRkZWQsIGJlZm9yZSBhbnkgZmlsZSBpc1xuICogc3ludGhlc2l6ZWRcbiAqL1xuY2xhc3MgQmVmb3JlU3ludGhlc2lzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogUHJvamVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrOiAoKSA9PiB2b2lkLFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgdGhpcy5jYWxsYmFjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Section = void 0;
|
|
4
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
5
|
class Section {
|
|
6
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Section", version: "5.
|
|
6
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Section", version: "5.5.0" };
|
|
7
7
|
options;
|
|
8
8
|
constructor(options) {
|
|
9
9
|
this.options = options;
|
|
@@ -32,6 +32,11 @@ export declare class ReadmeOrder {
|
|
|
32
32
|
* Sections added without an order
|
|
33
33
|
*/
|
|
34
34
|
static readonly DEFAULT = 50;
|
|
35
|
+
/**
|
|
36
|
+
* How to contribute, such as the pull request title format and how pull
|
|
37
|
+
* requests are merged
|
|
38
|
+
*/
|
|
39
|
+
static readonly CONTRIBUTING = 80;
|
|
35
40
|
/**
|
|
36
41
|
* Reference material, such as repository configuration and known issues
|
|
37
42
|
*/
|
|
@@ -9,7 +9,7 @@ const section_1 = require("./elements/section");
|
|
|
9
9
|
* in between
|
|
10
10
|
*/
|
|
11
11
|
class ReadmeOrder {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.ReadmeOrder", version: "5.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.ReadmeOrder", version: "5.5.0" };
|
|
13
13
|
/**
|
|
14
14
|
* Sections a reader needs first, such as getting started
|
|
15
15
|
*/
|
|
@@ -22,6 +22,11 @@ class ReadmeOrder {
|
|
|
22
22
|
* Sections added without an order
|
|
23
23
|
*/
|
|
24
24
|
static DEFAULT = 50;
|
|
25
|
+
/**
|
|
26
|
+
* How to contribute, such as the pull request title format and how pull
|
|
27
|
+
* requests are merged
|
|
28
|
+
*/
|
|
29
|
+
static CONTRIBUTING = 80;
|
|
25
30
|
/**
|
|
26
31
|
* Reference material, such as repository configuration and known issues
|
|
27
32
|
*/
|
|
@@ -30,7 +35,7 @@ class ReadmeOrder {
|
|
|
30
35
|
}
|
|
31
36
|
exports.ReadmeOrder = ReadmeOrder;
|
|
32
37
|
class Readme extends projen_1.FileBase {
|
|
33
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Readme", version: "5.
|
|
38
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Readme", version: "5.5.0" };
|
|
34
39
|
/**
|
|
35
40
|
* The README of a project, if it has one
|
|
36
41
|
*/
|
|
@@ -108,4 +113,4 @@ class Readme extends projen_1.FileBase {
|
|
|
108
113
|
}
|
|
109
114
|
}
|
|
110
115
|
exports.Readme = Readme;
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZWFkbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFvRTtBQUNwRSxnREFBNkM7QUFtQjdDOzs7R0FHRztBQUNILE1BQWEsV0FBVzs7SUFDdEI7O09BRUc7SUFDSSxNQUFNLENBQVUsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6Qzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2xDOztPQUVHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEM7OztPQUdHO0lBQ0ksTUFBTSxDQUFVLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekM7O09BRUc7SUFDSSxNQUFNLENBQVUsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUV0QyxnQkFBdUIsQ0FBQzs7QUF2QjFCLGtDQXdCQztBQU9ELE1BQWEsTUFBTyxTQUFRLGlCQUFROztJQUNsQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxXQUFXLENBQXFCO0lBQ2YsT0FBTyxHQUF3QixFQUFFLENBQUM7SUFFbkQsWUFBWSxPQUFnQixFQUFFLFVBQXlCLEVBQUU7UUFDdkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXZDLGdFQUFnRTtRQUNoRSxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QyxJQUFJLE1BQU0sWUFBWSxxQkFBWSxFQUFFLENBQUM7Z0JB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SSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsb0dBQW9HO0lBQzVGLGNBQWM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7O0FBekZILHdCQTBGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZVJlYWRtZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi9lbGVtZW50cy9zZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWFkbWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFNlY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIHRoZSBzZWN0aW9uIGluIHRoZSBSRUFETUUsIGxvd2VzdCBmaXJzdC4gU2VjdGlvbnMgd2l0aCB0aGVcbiAgICogc2FtZSBvcmRlciBrZWVwIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYFJlYWRtZU9yZGVyLkRFRkFVTFRgLCBvciB0aGUgZXhpc3Rpbmcgb3JkZXIgd2hlbiByZXBsYWNpbmcgYSBzZWN0aW9uXG4gICAqL1xuICByZWFkb25seSBvcmRlcj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcmRlcnMgb2YgdGhlIGJhbmRzIG9mIHNlY3Rpb25zIGluIHRoZSBSRUFETUUsIGxlYXZpbmcgcm9vbSBmb3Igc2VjdGlvbnNcbiAqIGluIGJldHdlZW5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlYWRtZU9yZGVyIHtcbiAgLyoqXG4gICAqIFNlY3Rpb25zIGEgcmVhZGVyIG5lZWRzIGZpcnN0LCBzdWNoIGFzIGdldHRpbmcgc3RhcnRlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlRST0RVQ1RJT04gPSAxMDtcbiAgLyoqXG4gICAqIEhvdyB0byB1c2UgYW5kIG9wZXJhdGUgdGhlIHByb2plY3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNBR0UgPSAyMDtcbiAgLyoqXG4gICAqIFNlY3Rpb25zIGFkZGVkIHdpdGhvdXQgYW4gb3JkZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVCA9IDUwO1xuICAvKipcbiAgICogSG93IHRvIGNvbnRyaWJ1dGUsIHN1Y2ggYXMgdGhlIHB1bGwgcmVxdWVzdCB0aXRsZSBmb3JtYXQgYW5kIGhvdyBwdWxsXG4gICAqIHJlcXVlc3RzIGFyZSBtZXJnZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09OVFJJQlVUSU5HID0gODA7XG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgbWF0ZXJpYWwsIHN1Y2ggYXMgcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uIGFuZCBrbm93biBpc3N1ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVGRVJFTkNFID0gOTA7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbmludGVyZmFjZSBTZWN0aW9uRW50cnkge1xuICByZWFkb25seSBzZWN0aW9uOiBTZWN0aW9uO1xuICByZWFkb25seSBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgUmVhZG1lIGV4dGVuZHMgRmlsZUJhc2Uge1xuICAvKipcbiAgICogVGhlIFJFQURNRSBvZiBhIHByb2plY3QsIGlmIGl0IGhhcyBvbmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IFJlYWRtZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKChjKTogYyBpcyBSZWFkbWUgPT4gYyBpbnN0YW5jZW9mIFJlYWRtZSk7XG4gIH1cblxuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJpZXM6IEFycmF5PFNlY3Rpb25FbnRyeT4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBSZWFkbWVPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0LCAnUkVBRE1FLm1kJywge30pO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBvcHRpb25zLmRlc2NyaXB0aW9uO1xuXG4gICAgLy8gcHJvamVuJ3MgcHJvamVjdHMgYWRkIGEgc2FtcGxlIFJFQURNRS5tZCwgd2hpY2ggdGhpcyByZXBsYWNlc1xuICAgIGZvciAoY29uc3Qgc2FtcGxlIG9mIHByb2plY3QuY29tcG9uZW50cykge1xuICAgICAgaWYgKHNhbXBsZSBpbnN0YW5jZW9mIFNhbXBsZVJlYWRtZSkge1xuICAgICAgICBzYW1wbGUubm9kZS5zY29wZT8ubm9kZS50cnlSZW1vdmVDaGlsZChzYW1wbGUubm9kZS5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9ucywgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIHRoZSBSRUFETUVcbiAgICovXG4gIGdldCBzZWN0aW9ucygpOiBBcnJheTxTZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJlZEVudHJpZXMoKS5tYXAoKGUpID0+IGUuc2VjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNlY3Rpb24sIG9yIHJlcGxhY2VzIHRoZSBzZWN0aW9uIHdpdGggdGhlIHNhbWUgdGl0bGVcbiAgICpcbiAgICogQHJldHVybnMgdGhlIHNlY3Rpb25cbiAgICovXG4gIGFkZFNlY3Rpb24oXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgb3B0aW9uczogQWRkU2VjdGlvbk9wdGlvbnMgPSB7fSxcbiAgKTogU2VjdGlvbiB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbmRJbmRleCh0aXRsZSk7XG4gICAgY29uc3Qgb3JkZXIgPVxuICAgICAgb3B0aW9ucy5vcmRlciA/P1xuICAgICAgKGluZGV4ID49IDAgPyB0aGlzLmVudHJpZXNbaW5kZXhdLm9yZGVyIDogUmVhZG1lT3JkZXIuREVGQVVMVCk7XG4gICAgY29uc3QgZW50cnkgPSB7IHNlY3Rpb246IG5ldyBTZWN0aW9uKHsgdGl0bGUsIGJvZHkgfSksIG9yZGVyIH07XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuZW50cmllc1tpbmRleF0gPSBlbnRyeTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gZW50cnkuc2VjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBzZWN0aW9uIHdpdGggdGhlIGdpdmVuIHRpdGxlXG4gICAqXG4gICAqIEByZXR1cm5zIHdoZXRoZXIgYSBzZWN0aW9uIHdhcyByZW1vdmVkXG4gICAqL1xuICByZW1vdmVTZWN0aW9uKHRpdGxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEluZGV4KHRpdGxlKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIHdpdGggdGhlIGdpdmVuIHRpdGxlLCBpZiB0aGVyZSBpcyBvbmVcbiAgICovXG4gIHRyeUZpbmRTZWN0aW9uKHRpdGxlOiBzdHJpbmcpOiBTZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEluZGV4KHRpdGxlKTtcbiAgICByZXR1cm4gaW5kZXggPj0gMCA/IHRoaXMuZW50cmllc1tpbmRleF0uc2VjdGlvbiA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb250ZW50ID0gdGhpcy5tYXJrZXIgPyBgPCEtLSAke3RoaXMubWFya2VyfSAtLT5cXG5cXG5gIDogJyc7XG4gICAgY29udGVudCA9IGNvbnRlbnQuY29uY2F0KGAjICR7dGhpcy5wcm9qZWN0Lm5hbWV9XFxuXFxuYCk7XG4gICAgY29udGVudCA9IGNvbnRlbnQuY29uY2F0KHRoaXMuZGVzY3JpcHRpb24gPyBgJHt0aGlzLmRlc2NyaXB0aW9ufVxcblxcbmAgOiAnJyk7XG4gICAgcmV0dXJuIGNvbnRlbnQuY29uY2F0KHRoaXMuc2VjdGlvbnMubWFwKChzKSA9PiBzLnN5bnRoKCkpLmpvaW4oJ1xcblxcbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEluZGV4KHRpdGxlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmluZEluZGV4KChlKSA9PiBlLnNlY3Rpb24ub3B0aW9ucy50aXRsZSA9PT0gdGl0bGUpO1xuICB9XG5cbiAgLy8gQXJyYXkucHJvdG90eXBlLnNvcnQgaXMgc3RhYmxlLCBzbyBzZWN0aW9ucyB3aXRoIHRoZSBzYW1lIG9yZGVyIGtlZXAgdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCBpblxuICBwcml2YXRlIG9yZGVyZWRFbnRyaWVzKCk6IEFycmF5PFNlY3Rpb25FbnRyeT4ge1xuICAgIHJldHVybiBbLi4udGhpcy5lbnRyaWVzXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -20,6 +20,7 @@ const projen_1 = require("projen");
|
|
|
20
20
|
const awscdk_1 = require("projen/lib/awscdk");
|
|
21
21
|
const codeowners_1 = require("../../components/github/codeowners");
|
|
22
22
|
const codeql_1 = require("../../components/github/codeql");
|
|
23
|
+
const contributing_1 = require("../../components/github/contributing");
|
|
23
24
|
const deployments_1 = require("../../components/github/deployments");
|
|
24
25
|
const mergify_1 = require("../../components/github/mergify");
|
|
25
26
|
const pull_request_template_1 = require("../../components/github/pull-request-template");
|
|
@@ -61,7 +62,7 @@ function getOptions(options) {
|
|
|
61
62
|
* @pjid cdk-typescript-app
|
|
62
63
|
*/
|
|
63
64
|
class CdkTypeScriptApp extends awscdk_1.AwsCdkTypeScriptApp {
|
|
64
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.CdkTypeScriptApp", version: "5.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.CdkTypeScriptApp", version: "5.5.0" };
|
|
65
66
|
readme;
|
|
66
67
|
constructor(options) {
|
|
67
68
|
const mergedOptions = getOptions(options);
|
|
@@ -114,6 +115,7 @@ If the app has more than one stack, name the stacks to deploy or pass \`--all\`,
|
|
|
114
115
|
nodeVersion: this.nodeVersion,
|
|
115
116
|
releaseWorkflowName: mergedOptions.releaseWorkflowName,
|
|
116
117
|
});
|
|
118
|
+
contributing_1.Contributing.of(this).configurePullRequestTitle(mergedOptions);
|
|
117
119
|
if (this.autoMerge) {
|
|
118
120
|
(0, mergify_1.configureMergify)(this, {
|
|
119
121
|
approvedReviews: mergedOptions.autoMergeOptions?.approvedReviews,
|
|
@@ -172,4 +174,4 @@ integ-runner ignores changes to asset hashes, so a test whose only change is Lam
|
|
|
172
174
|
exports.CdkTypeScriptApp = CdkTypeScriptApp;
|
|
173
175
|
__exportStar(require("./cdk-typescript-app-options"), exports);
|
|
174
176
|
__exportStar(require("./deployment-environment"), exports);
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCxxRUFBcUU7QUFDckUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWdGO0FBQ2hGLDZEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRXRELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkQsU0FBUyxVQUFVLENBQUMsT0FBZ0M7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDckQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuQywyRUFBMkU7UUFDM0UsOERBQThEO1FBQzlELE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tBQ3NCLENBQUM7SUFFN0MsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSw0QkFBbUI7O0lBQ3ZELE1BQU0sQ0FBUztJQUVmLFlBQVksT0FBZ0M7UUFDMUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLEtBQUssQ0FBQztZQUNKLEdBQUcsYUFBYTtZQUNoQixnQkFBZ0IsRUFBRSxJQUFBLDBCQUFnQixFQUFDLGFBQWEsQ0FBQztTQUNwQixDQUFDLENBQUM7UUFFakMsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUU7WUFDN0IsV0FBVyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVztTQUMvQyxDQUFDLENBQUM7UUFDSCwrREFBK0Q7UUFDL0QsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLHVCQUF1QjtZQUMxRCxDQUFDLENBQUMsZ0dBQWdHO1lBQ2xHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDcEIsaUJBQWlCLEVBQ2pCLElBQUEsdUNBQXFCLEVBQUMsSUFBSSxFQUFFO1lBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUU7Z0JBQ2IsMkRBQTJELGNBQWMsRUFBRTthQUM1RTtTQUNGLENBQUMsRUFDRixFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLFlBQVksRUFBRSxDQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLEtBQUssRUFDTDs7Ozs7Ozs7Ozs7O29IQVk4RyxFQUM5RyxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO1FBQ0YsSUFBSSxhQUFhLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQ3ZCLGFBQWEsQ0FBQyxrQkFBa0IsSUFBSSxvQ0FBNEIsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDcEUsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEIsb0ZBQW9GO2dCQUNwRixXQUFXLEVBQUUsYUFBYSxDQUFDLGlCQUFpQixJQUFJO29CQUM5QyxlQUFNLENBQUMsb0JBQW9CO2lCQUM1QjtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQzthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBQSw0QkFBYyxFQUFDLElBQUksRUFBRTtZQUNuQixXQUFXLEVBQUUsYUFBYSxDQUFDLFdBQVcsSUFBSSxFQUFFO1lBQzVDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixtQkFBbUIsRUFBRSxhQUFhLENBQUMsbUJBQW1CO1NBQ3ZELENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNyQixlQUFlLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2hFLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYzthQUM3QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQkFBb0IsQ0FBQyxrQkFBMEI7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsdUJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLHVCQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLEdBQUcsWUFBWSxJQUFJLGtCQUFrQixFQUFFLEVBQ3ZDLHVCQUFjLENBQUMsS0FBSyxDQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLEdBQUcsaUJBQWlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsVUFBVSxFQUNoRSx1QkFBYyxDQUFDLEtBQUssQ0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzFCLFdBQVcsRUFDVCxpRkFBaUY7WUFDbkYsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUN2RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMxQixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7WUFDdkUsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUIsV0FBVyxFQUNULHNFQUFzRTtZQUN4RSxRQUFRLEVBQUU7Z0JBQ1IsY0FBYztnQkFDZCxJQUFJO2dCQUNKLFlBQVk7Z0JBQ1osWUFBWTtnQkFDWixLQUFLO2dCQUNMLG9CQUFvQjthQUNyQjtZQUNELFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixtQkFBbUIsRUFDbkI7Ozs7Ozs7Ozs7O0lBV0YsWUFBWSxxQkFBcUIsa0JBQWtCLFlBQVksaUJBQWlCLDJNQUEyTSxpQkFBaUI7O2tOQUU5RixFQUM1TSxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUF0SUgsNENBdUlDO0FBRUQsK0RBQTZDO0FBQzdDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlcGVuZGVuY3lUeXBlLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHtcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMsXG4gIExhbWJkYVJ1bnRpbWUsXG59IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IENka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHsgYWRkRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9kZXBsb3ltZW50cyc7XG5pbXBvcnQge1xuICBhdXRvTWVyZ2VPcHRpb25zLFxuICBjb25maWd1cmVNZXJnaWZ5LFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5JztcbmltcG9ydCB7IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvcHVsbC1yZXF1ZXN0LXRlbXBsYXRlJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZSc7XG5pbXBvcnQgeyBnZXR0aW5nU3RhcnRlZFNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZS9nZXR0aW5nLXN0YXJ0ZWQnO1xuaW1wb3J0IHsgbWVyZ2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgYEBhd3MtY2RrL2ludGVnLXJ1bm5lcmAgcGlubmVkIHdoZW4gYGV4cGVyaW1lbnRhbEludGVnUnVubmVyYCBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFR19SVU5ORVJfVkVSU0lPTiA9ICcyLjIwNS42JztcblxuY29uc3QgSU5URUdfUlVOTkVSID0gJ0Bhd3MtY2RrL2ludGVnLXJ1bm5lcic7XG5jb25zdCBJTlRFR19URVNUU19BTFBIQSA9ICdAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYSc7XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMob3B0aW9uczogQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICBnaXRpZ25vcmU6IFsnLm5wbXJjJywgJy52c2NvZGUnXSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgLy8gYXV0aGVudGljYXRlIGFzIHRoZSBHaXRIdWIgQXBwLCBzbyBtZXJnaWZ5IGNhbiBhcHByb3ZlIHVwZ3JhZGUgcHVsbCByZXF1ZXN0c1xuICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCh7fSksXG4gICAgbGFtYmRhT3B0aW9uczogeyBydW50aW1lOiBMYW1iZGFSdW50aW1lLk5PREVKU18yNF9YIH0sXG4gICAgamVzdE9wdGlvbnM6IHsgamVzdFZlcnNpb246ICdeMzAnIH0sXG4gICAgLy8gbWF0Y2ggdGhlIGxhbWJkYSBydW50aW1lLCB1bmxlc3MgZGVyaXZlZCBmcm9tIG1pbk5vZGVWZXJzaW9uOyBhIGNvbnN1bWVyXG4gICAgLy8gQHR5cGVzL25vZGUgaW4gZGV2RGVwcyBpcyBhZGRlZCBsYXRlciwgc28gcmVwbGFjZXMgdGhpcyBvbmVcbiAgICBkZXZEZXBzOiBvcHRpb25zLm1pbk5vZGVWZXJzaW9uID8gW10gOiBbJ0B0eXBlcy9ub2RlQF4yNCddLFxuICAgIC8vIHRzLWplc3Qgb25seSByZXBvcnRzIHR5cGUgZXJyb3JzIGluIHRoZSBmaWxlcyBhIHRlc3QgcnVuIGxvYWRzLCBzbyB0eXBlLWNoZWNrIHRoZSB3aG9sZSBzdWl0ZSBmaXJzdFxuICAgIHR5cGVjaGVja1Rlc3RzOiB0cnVlLFxuICB9IHNhdGlzZmllcyBQYXJ0aWFsPENka1R5cGVTY3JpcHRBcHBPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIENESyBhcHBsaWNhdGlvbiBpbiBUeXBlU2NyaXB0XG4gKlxuICogRGVmYXVsdHMgdG8gdGhlIE5vZGUuanMgMjQgTGFtYmRhIHJ1bnRpbWUgKGBsYW1iZGFPcHRpb25zLnJ1bnRpbWVgKSB3aXRoXG4gKiBtYXRjaGluZyBgQHR5cGVzL25vZGVgLCBhbmQgSmVzdCAzMCAoYGplc3RPcHRpb25zLmplc3RWZXJzaW9uYCkuXG4gKlxuICogQHBqaWQgY2RrLXR5cGVzY3JpcHQtYXBwXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtUeXBlU2NyaXB0QXBwIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIHJlYWRtZTogUmVhZG1lO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGdldE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgICAgYXV0b01lcmdlT3B0aW9uczogYXV0b01lcmdlT3B0aW9ucyhtZXJnZWRPcHRpb25zKSxcbiAgICB9IGFzIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKTtcblxuICAgIG5ldyBDb2RlT3duZXJzKHRoaXMsIG1lcmdlZE9wdGlvbnMuY29kZU93bmVycyk7XG4gICAgdGhpcy5yZWFkbWUgPSBuZXcgUmVhZG1lKHRoaXMsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXJnZWRPcHRpb25zLnJlYWRtZT8uZGVzY3JpcHRpb24sXG4gICAgfSk7XG4gICAgLy8gaW50ZWc6ZGVidWcgb25seSBjb21wYXJlcyBzbmFwc2hvdHMsIHNvIG5lZWRzIG5vIGNyZWRlbnRpYWxzXG4gICAgY29uc3QgZGVwbG95aW5nVGFza3MgPSBtZXJnZWRPcHRpb25zLmV4cGVyaW1lbnRhbEludGVnUnVubmVyXG4gICAgICA/ICcgYW5kIGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdCB0YXNrcyB0aGF0IGRlcGxveSAoYGludGVnOnVwZGF0ZWAsIGBpbnRlZzpmb3JjZWAsIGBpbnRlZzp3YXRjaGApJ1xuICAgICAgOiAnJztcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0dldHRpbmcgU3RhcnRlZCcsXG4gICAgICBnZXR0aW5nU3RhcnRlZFNlY3Rpb24odGhpcywge1xuICAgICAgICBub2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgICAgcHJlcmVxdWlzaXRlczogW1xuICAgICAgICAgIGBBV1MgY3JlZGVudGlhbHMgZm9yIHRoZSB0YXJnZXQgYWNjb3VudCwgbmVlZGVkIHRvIGRlcGxveSR7ZGVwbG95aW5nVGFza3N9YCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OIH0sXG4gICAgKTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0NESycsXG4gICAgICBgQm9vdHN0cmFwIGVhY2ggQVdTIGFjY291bnQgYW5kIHJlZ2lvbiBvbmNlOlxuXG5cXGBcXGBcXGBzaFxubnB4IGNkayBib290c3RyYXBcblxcYFxcYFxcYFxuXG5EZXBsb3kgdGhlIGFwcDpcblxuXFxgXFxgXFxgc2hcbm5weCBwcm9qZW4gZGVwbG95XG5cXGBcXGBcXGBcblxuSWYgdGhlIGFwcCBoYXMgbW9yZSB0aGFuIG9uZSBzdGFjaywgbmFtZSB0aGUgc3RhY2tzIHRvIGRlcGxveSBvciBwYXNzIFxcYC0tYWxsXFxgLCBhcyBpbiBcXGBucHggcHJvamVuIGRlcGxveSAtLWFsbFxcYC5gLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuVVNBR0UgfSxcbiAgICApO1xuICAgIGlmIChtZXJnZWRPcHRpb25zLmV4cGVyaW1lbnRhbEludGVnUnVubmVyKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZUludGVnUnVubmVyKFxuICAgICAgICBtZXJnZWRPcHRpb25zLmludGVnUnVubmVyVmVyc2lvbiA/PyBERUZBVUxUX0lOVEVHX1JVTk5FUl9WRVJTSU9OLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmNvZGVxbCA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ud29ya2Zsb3dzRW5hYmxlZCkge1xuICAgICAgbmV3IENvZGVRbCh0aGlzLmdpdGh1Yiwge1xuICAgICAgICAvLyBpbnRlZy1ydW5uZXIgc25hcHNob3QgYXNzZXRzIGFyZSBidW5kbGVzIG9mIGRlcGVuZGVuY2llcywgcmVuYW1lZCBvbiBldmVyeSB1cGRhdGVcbiAgICAgICAgcGF0aHNJZ25vcmU6IG1lcmdlZE9wdGlvbnMuY29kZXFsUGF0aHNJZ25vcmUgPz8gW1xuICAgICAgICAgIENvZGVRbC5JTlRFR19TTkFQU0hPVF9QQVRIUyxcbiAgICAgICAgXSxcbiAgICAgICAgYnJhbmNoZXM6IFttZXJnZWRPcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoXSxcbiAgICAgICAgbGFuZ3VhZ2VzOiBbJ2phdmFzY3JpcHQtdHlwZXNjcmlwdCcsICdhY3Rpb25zJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgYWRkRGVwbG95bWVudHModGhpcywge1xuICAgICAgZGVwbG95bWVudHM6IG1lcmdlZE9wdGlvbnMuZGVwbG95bWVudHMgPz8gW10sXG4gICAgICBub2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgIHJlbGVhc2VXb3JrZmxvd05hbWU6IG1lcmdlZE9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5hdXRvTWVyZ2UpIHtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5zIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGRlcGVuZGVuY2llcyB0aGF0IHByb2plbiBhZGRzIGF0IGBsYXRlc3RgLCBhc1xuICAgKiBlYWNoIGBAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYWAgcmVsZWFzZSByZXdyaXRlcyB0aGUgYnVuZGxlZCBhc3NlcnRpb25cbiAgICogY29kZSBpbiB0aGUgc25hcHNob3RzIGFuZCBkcmlmdHMgZnJvbSBgYXdzLWNkay1saWJgLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25maWd1cmVJbnRlZ1J1bm5lcihpbnRlZ1J1bm5lclZlcnNpb246IHN0cmluZykge1xuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KElOVEVHX1JVTk5FUiwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShJTlRFR19URVNUU19BTFBIQSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGAke0lOVEVHX1JVTk5FUn1AJHtpbnRlZ1J1bm5lclZlcnNpb259YCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgICk7XG4gICAgdGhpcy5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHtJTlRFR19URVNUU19BTFBIQX1AJHt0aGlzLmNka0RlcHMuY2RrTWluaW11bVZlcnNpb259LWFscGhhLjBgLFxuICAgICAgRGVwZW5kZW5jeVR5cGUuQlVJTEQsXG4gICAgKTtcblxuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6Zm9yY2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSdW4gaW50ZWdyYXRpb24gc25hcHNob3QgdGVzdHMsIGZvcmNpbmcgdGVzdHMgdG8gcnVuIGV2ZW4gaWYgdGhlcmUncyBubyBjaGFuZ2VzXCIsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0tZm9yY2UnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6d2F0Y2gnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1dhdGNoIHRoZSBpbnRlZ3JhdGlvbiBzbmFwc2hvdCB0ZXN0cycsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0td2F0Y2gnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6ZGVidWcnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1J1biBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MgYW5kIGZhaWx1cmUgYXJ0aWZhY3RzJyxcbiAgICAgIGV4ZWNBcmdzOiBbXG4gICAgICAgICdpbnRlZy1ydW5uZXInLFxuICAgICAgICAnJEAnLFxuICAgICAgICAnLS1sYW5ndWFnZScsXG4gICAgICAgICd0eXBlc2NyaXB0JyxcbiAgICAgICAgJy12dicsXG4gICAgICAgICctLWluc3BlY3QtZmFpbHVyZXMnLFxuICAgICAgXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdJbnRlZ3JhdGlvbiBUZXN0cycsXG4gICAgICBgSW50ZWdyYXRpb24gdGVzdHMgYXJlIHJ1biBieSBbaW50ZWctcnVubmVyXShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGstY2xpL3RyZWUvbWFpbi9wYWNrYWdlcy8lNDBhd3MtY2RrL2ludGVnLXJ1bm5lcikuXG5cblRoZXNlIHRhc2tzIG9ubHkgY29tcGFyZSBzbmFwc2hvdHMsIHNvIHRoZXkgbmVlZCBubyBBV1MgY3JlZGVudGlhbHMgYW5kIGRlcGxveSBub3RoaW5nLiBcXGBucHggcHJvamVuIHRlc3RcXGAsIGFuZCBzbyBcXGBucHggcHJvamVuIGJ1aWxkXFxgLCBydW5zIFxcYGludGVnXFxgOlxuKiBcXGBucHggcHJvamVuIGludGVnXFxgIHN5bnRoZXNpemVzIGVhY2ggdGVzdCBhbmQgY29tcGFyZXMgaXQgd2l0aCBpdHMgc25hcHNob3QuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6ZGVidWdcXGAgZG9lcyB0aGUgc2FtZSB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MsIGtlZXBpbmcgdGhlIGdlbmVyYXRlZCBzbmFwc2hvdHMgb2YgdGVzdHMgdGhhdCBkaWZmZXIuXG5cblRoZXNlIHRhc2tzIGRlcGxveSB0byBBV1MsIGluIHRoZSBhY2NvdW50IGFuZCByZWdpb24gb2YgdGhlIGN1cnJlbnQgQVdTIGNyZWRlbnRpYWxzLiBFYWNoIHRlc3QncyBzdGFja3MgYXJlIHJlYWwsIHNvIHRoZSB0YXNrcyB0YWtlIG1pbnV0ZXMgYW5kIGluY3VyIEFXUyBjb3N0czpcbiogXFxgbnB4IHByb2plbiBpbnRlZzp1cGRhdGVcXGAgZGVwbG95cyB0aGUgdGVzdHMgd2hvc2Ugc25hcHNob3RzIGRpZmZlciwgcnVucyB0aGVpciBhc3NlcnRpb25zLCBkZXN0cm95cyB0aGUgc3RhY2tzIGFuZCwgaWYgdGhleSBwYXNzLCB1cGRhdGVzIHRoZSBzbmFwc2hvdHMuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6Zm9yY2VcXGAgZGVwbG95cyBldmVyeSB0ZXN0IGluIHRoZSBzYW1lIHdheSwgZXZlbiBpZiBpdHMgc25hcHNob3QgaXMgdW5jaGFuZ2VkLlxuKiBcXGBucHggcHJvamVuIGludGVnOndhdGNoXFxgIGRlcGxveXMgYSBzaW5nbGUgdGVzdCBhbmQgcmVkZXBsb3lzIGl0IGFzIGl0cyBjb2RlIGNoYW5nZXMsIGxpa2UgXFxgY2RrIGRlcGxveSAtLXdhdGNoXFxgLlxuXG5cXGAke0lOVEVHX1JVTk5FUn1cXGAgaXMgcGlubmVkIHRvIFxcYCR7aW50ZWdSdW5uZXJWZXJzaW9ufVxcYCBhbmQgXFxgJHtJTlRFR19URVNUU19BTFBIQX1cXGAgdG8gdGhlIHJlbGVhc2UgbWF0Y2hpbmcgXFxgY2RrVmVyc2lvblxcYCwgc28gdGhlIHVwZ3JhZGUgd29ya2Zsb3cgbmV2ZXIgY2hhbmdlcyB0aGVpciB2ZXJzaW9uczogdGhleSBvbmx5IGNoYW5nZSB3aGVuIFxcYGNka1ZlcnNpb25cXGAgb3IgXFxgaW50ZWdSdW5uZXJWZXJzaW9uXFxgIGlzIGNoYW5nZWQuIFRoaXMgaXMgaW50ZW5kZWQsIGFzIGVhY2ggXFxgJHtJTlRFR19URVNUU19BTFBIQX1cXGAgcmVsZWFzZSByZXdyaXRlcyB0aGUgYXNzZXJ0aW9uIGNvZGUgYnVuZGxlZCBpbiB0aGUgc25hcHNob3RzLlxuXG5pbnRlZy1ydW5uZXIgaWdub3JlcyBjaGFuZ2VzIHRvIGFzc2V0IGhhc2hlcywgc28gYSB0ZXN0IHdob3NlIG9ubHkgY2hhbmdlIGlzIExhbWJkYSBjb2RlIGlzIHJlcG9ydGVkIGFzIFxcYFVOQ0hBTkdFRFxcYCBhbmQgaXMgbm90IGRlcGxveWVkLiBSdW4gXFxgbnB4IHByb2plbiBpbnRlZzpmb3JjZVxcYCB0byBleGVyY2lzZSBuZXcgTGFtYmRhIGNvZGUgZW5kIHRvIGVuZC5gLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuVVNBR0UgfSxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vY2RrLXR5cGVzY3JpcHQtYXBwLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXBsb3ltZW50LWVudmlyb25tZW50JztcbiJdfQ==
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCx1RUFBb0U7QUFDcEUscUVBQXFFO0FBQ3JFLDZEQUd5QztBQUN6Qyx5RkFBOEY7QUFDOUYsb0RBQThEO0FBQzlELDZFQUFnRjtBQUNoRiw2REFBeUQ7QUFFekQ7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLFNBQVMsQ0FBQztBQUV0RCxNQUFNLFlBQVksR0FBRyx1QkFBdUIsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0FBRXZELFNBQVMsVUFBVSxDQUFDLE9BQWdDO0lBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osb0JBQW9CLEVBQUUsTUFBTTtRQUM1QixTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ2hDLDJCQUEyQixFQUFFLHFEQUE2QjtRQUMxRCxVQUFVLEVBQUUsSUFBSTtRQUNoQiwrRUFBK0U7UUFDL0UsaUJBQWlCLEVBQUUsZUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkQsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLHNCQUFhLENBQUMsV0FBVyxFQUFFO1FBQ3JELFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7UUFDbkMsMkVBQTJFO1FBQzNFLDhEQUE4RDtRQUM5RCxPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBQzFELHNHQUFzRztRQUN0RyxjQUFj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LEVBQ25COzs7Ozs7Ozs7OztJQVdGLFlBQVkscUJBQXFCLGtCQUFrQixZQUFZLGlCQUFpQiwyTUFBMk0saUJBQWlCOztrTkFFOUYsRUFDNU0sRUFBRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FDN0IsQ0FBQztJQUNKLENBQUM7O0FBdklILDRDQXdJQztBQUVELCtEQUE2QztBQUM3QywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7XG4gIEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zLFxuICBMYW1iZGFSdW50aW1lLFxufSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJy4vY2RrLXR5cGVzY3JpcHQtYXBwLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29kZU93bmVycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVvd25lcnMnO1xuaW1wb3J0IHsgQ29kZVFsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZXFsJztcbmltcG9ydCB7IENvbnRyaWJ1dGluZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvbnRyaWJ1dGluZyc7XG5pbXBvcnQgeyBhZGREZXBsb3ltZW50cyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2RlcGxveW1lbnRzJztcbmltcG9ydCB7XG4gIGF1dG9NZXJnZU9wdGlvbnMsXG4gIGNvbmZpZ3VyZU1lcmdpZnksXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL21lcmdpZnknO1xuaW1wb3J0IHsgREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9wdWxsLXJlcXVlc3QtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUmVhZG1lLCBSZWFkbWVPcmRlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lJztcbmltcG9ydCB7IGdldHRpbmdTdGFydGVkU2VjdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiBgQGF3cy1jZGsvaW50ZWctcnVubmVyYCBwaW5uZWQgd2hlbiBgZXhwZXJpbWVudGFsSW50ZWdSdW5uZXJgIGlzIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOVEVHX1JVTk5FUl9WRVJTSU9OID0gJzIuMjA1LjYnO1xuXG5jb25zdCBJTlRFR19SVU5ORVIgPSAnQGF3cy1jZGsvaW50ZWctcnVubmVyJztcbmNvbnN0IElOVEVHX1RFU1RTX0FMUEhBID0gJ0Bhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucykge1xuICBjb25zdCB7IG5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgbmFtZSxcbiAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgIGdpdGlnbm9yZTogWycubnBtcmMnLCAnLnZzY29kZSddLFxuICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUsXG4gICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAvLyBhdXRoZW50aWNhdGUgYXMgdGhlIEdpdEh1YiBBcHAsIHNvIG1lcmdpZnkgY2FuIGFwcHJvdmUgdXBncmFkZSBwdWxsIHJlcXVlc3RzXG4gICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHt9KSxcbiAgICBsYW1iZGFPcHRpb25zOiB7IHJ1bnRpbWU6IExhbWJkYVJ1bnRpbWUuTk9ERUpTXzI0X1ggfSxcbiAgICBqZXN0T3B0aW9uczogeyBqZXN0VmVyc2lvbjogJ14zMCcgfSxcbiAgICAvLyBtYXRjaCB0aGUgbGFtYmRhIHJ1bnRpbWUsIHVubGVzcyBkZXJpdmVkIGZyb20gbWluTm9kZVZlcnNpb247IGEgY29uc3VtZXJcbiAgICAvLyBAdHlwZXMvbm9kZSBpbiBkZXZEZXBzIGlzIGFkZGVkIGxhdGVyLCBzbyByZXBsYWNlcyB0aGlzIG9uZVxuICAgIGRldkRlcHM6IG9wdGlvbnMubWluTm9kZVZlcnNpb24gPyBbXSA6IFsnQHR5cGVzL25vZGVAXjI0J10sXG4gICAgLy8gdHMtamVzdCBvbmx5IHJlcG9ydHMgdHlwZSBlcnJvcnMgaW4gdGhlIGZpbGVzIGEgdGVzdCBydW4gbG9hZHMsIHNvIHR5cGUtY2hlY2sgdGhlIHdob2xlIHN1aXRlIGZpcnN0XG4gICAgdHlwZWNoZWNrVGVzdHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8Q2RrVHlwZVNjcmlwdEFwcE9wdGlvbnM+O1xuXG4gIHJldHVybiBtZXJnZU9wdGlvbnMoZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgQ0RLIGFwcGxpY2F0aW9uIGluIFR5cGVTY3JpcHRcbiAqXG4gKiBEZWZhdWx0cyB0byB0aGUgTm9kZS5qcyAyNCBMYW1iZGEgcnVudGltZSAoYGxhbWJkYU9wdGlvbnMucnVudGltZWApIHdpdGhcbiAqIG1hdGNoaW5nIGBAdHlwZXMvbm9kZWAsIGFuZCBKZXN0IDMwIChgamVzdE9wdGlvbnMuamVzdFZlcnNpb25gKS5cbiAqXG4gKiBAcGppZCBjZGstdHlwZXNjcmlwdC1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgcmVhZG1lOiBSZWFkbWU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgICBhdXRvTWVyZ2VPcHRpb25zOiBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgIH0gYXMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpO1xuXG4gICAgbmV3IENvZGVPd25lcnModGhpcywgbWVyZ2VkT3B0aW9ucy5jb2RlT3duZXJzKTtcbiAgICB0aGlzLnJlYWRtZSA9IG5ldyBSZWFkbWUodGhpcywge1xuICAgICAgZGVzY3JpcHRpb246IG1lcmdlZE9wdGlvbnMucmVhZG1lPy5kZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgICAvLyBpbnRlZzpkZWJ1ZyBvbmx5IGNvbXBhcmVzIHNuYXBzaG90cywgc28gbmVlZHMgbm8gY3JlZGVudGlhbHNcbiAgICBjb25zdCBkZXBsb3lpbmdUYXNrcyA9IG1lcmdlZE9wdGlvbnMuZXhwZXJpbWVudGFsSW50ZWdSdW5uZXJcbiAgICAgID8gJyBhbmQgZm9yIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IHRhc2tzIHRoYXQgZGVwbG95IChgaW50ZWc6dXBkYXRlYCwgYGludGVnOmZvcmNlYCwgYGludGVnOndhdGNoYCknXG4gICAgICA6ICcnO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnR2V0dGluZyBTdGFydGVkJyxcbiAgICAgIGdldHRpbmdTdGFydGVkU2VjdGlvbih0aGlzLCB7XG4gICAgICAgIG5vZGVWZXJzaW9uOiB0aGlzLm5vZGVWZXJzaW9uLFxuICAgICAgICBwcmVyZXF1aXNpdGVzOiBbXG4gICAgICAgICAgYEFXUyBjcmVkZW50aWFscyBmb3IgdGhlIHRhcmdldCBhY2NvdW50LCBuZWVkZWQgdG8gZGVwbG95JHtkZXBsb3lpbmdUYXNrc31gLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5JTlRST0RVQ1RJT04gfSxcbiAgICApO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnQ0RLJyxcbiAgICAgIGBCb290c3RyYXAgZWFjaCBBV1MgYWNjb3VudCBhbmQgcmVnaW9uIG9uY2U6XG5cblxcYFxcYFxcYHNoXG5ucHggY2RrIGJvb3RzdHJhcFxuXFxgXFxgXFxgXG5cbkRlcGxveSB0aGUgYXBwOlxuXG5cXGBcXGBcXGBzaFxubnB4IHByb2plbiBkZXBsb3lcblxcYFxcYFxcYFxuXG5JZiB0aGUgYXBwIGhhcyBtb3JlIHRoYW4gb25lIHN0YWNrLCBuYW1lIHRoZSBzdGFja3MgdG8gZGVwbG95IG9yIHBhc3MgXFxgLS1hbGxcXGAsIGFzIGluIFxcYG5weCBwcm9qZW4gZGVwbG95IC0tYWxsXFxgLmAsXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5VU0FHRSB9LFxuICAgICk7XG4gICAgaWYgKG1lcmdlZE9wdGlvbnMuZXhwZXJpbWVudGFsSW50ZWdSdW5uZXIpIHtcbiAgICAgIHRoaXMuY29uZmlndXJlSW50ZWdSdW5uZXIoXG4gICAgICAgIG1lcmdlZE9wdGlvbnMuaW50ZWdSdW5uZXJWZXJzaW9uID8/IERFRkFVTFRfSU5URUdfUlVOTkVSX1ZFUlNJT04sXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoKG1lcmdlZE9wdGlvbnMuY29kZXFsID8/IHRydWUpICYmIHRoaXMuZ2l0aHViPy53b3JrZmxvd3NFbmFibGVkKSB7XG4gICAgICBuZXcgQ29kZVFsKHRoaXMuZ2l0aHViLCB7XG4gICAgICAgIC8vIGludGVnLXJ1bm5lciBzbmFwc2hvdCBhc3NldHMgYXJlIGJ1bmRsZXMgb2YgZGVwZW5kZW5jaWVzLCByZW5hbWVkIG9uIGV2ZXJ5IHVwZGF0ZVxuICAgICAgICBwYXRoc0lnbm9yZTogbWVyZ2VkT3B0aW9ucy5jb2RlcWxQYXRoc0lnbm9yZSA/PyBbXG4gICAgICAgICAgQ29kZVFsLklOVEVHX1NOQVBTSE9UX1BBVEhTLFxuICAgICAgICBdLFxuICAgICAgICBicmFuY2hlczogW21lcmdlZE9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2hdLFxuICAgICAgICBsYW5ndWFnZXM6IFsnamF2YXNjcmlwdC10eXBlc2NyaXB0JywgJ2FjdGlvbnMnXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBhZGREZXBsb3ltZW50cyh0aGlzLCB7XG4gICAgICBkZXBsb3ltZW50czogbWVyZ2VkT3B0aW9ucy5kZXBsb3ltZW50cyA/PyBbXSxcbiAgICAgIG5vZGVWZXJzaW9uOiB0aGlzLm5vZGVWZXJzaW9uLFxuICAgICAgcmVsZWFzZVdvcmtmbG93TmFtZTogbWVyZ2VkT3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuICAgIENvbnRyaWJ1dGluZy5vZih0aGlzKS5jb25maWd1cmVQdWxsUmVxdWVzdFRpdGxlKG1lcmdlZE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmF1dG9NZXJnZSkge1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBpbnMgdGhlIGludGVncmF0aW9uIHRlc3QgZGVwZW5kZW5jaWVzIHRoYXQgcHJvamVuIGFkZHMgYXQgYGxhdGVzdGAsIGFzXG4gICAqIGVhY2ggYEBhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhYCByZWxlYXNlIHJld3JpdGVzIHRoZSBidW5kbGVkIGFzc2VydGlvblxuICAgKiBjb2RlIGluIHRoZSBzbmFwc2hvdHMgYW5kIGRyaWZ0cyBmcm9tIGBhd3MtY2RrLWxpYmAuXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZUludGVnUnVubmVyKGludGVnUnVubmVyVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5kZXBzLnJlbW92ZURlcGVuZGVuY3koSU5URUdfUlVOTkVSLCBEZXBlbmRlbmN5VHlwZS5ERVZFTlYpO1xuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KElOVEVHX1RFU1RTX0FMUEhBLCBEZXBlbmRlbmN5VHlwZS5ERVZFTlYpO1xuICAgIHRoaXMuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYCR7SU5URUdfUlVOTkVSfUAke2ludGVnUnVubmVyVmVyc2lvbn1gLFxuICAgICAgRGVwZW5kZW5jeVR5cGUuQlVJTEQsXG4gICAgKTtcbiAgICB0aGlzLmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGAke0lOVEVHX1RFU1RTX0FMUEhBfUAke3RoaXMuY2RrRGVwcy5jZGtNaW5pbXVtVmVyc2lvbn0tYWxwaGEuMGAsXG4gICAgICBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRUYXNrKCdpbnRlZzpmb3JjZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlJ1biBpbnRlZ3JhdGlvbiBzbmFwc2hvdCB0ZXN0cywgZm9yY2luZyB0ZXN0cyB0byBydW4gZXZlbiBpZiB0aGVyZSdzIG5vIGNoYW5nZXNcIixcbiAgICAgIGV4ZWNBcmdzOiBbJ2ludGVnLXJ1bm5lcicsICckQCcsICctLWxhbmd1YWdlJywgJ3R5cGVzY3JpcHQnLCAnLS1mb3JjZSddLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUYXNrKCdpbnRlZzp3YXRjaCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnV2F0Y2ggdGhlIGludGVncmF0aW9uIHNuYXBzaG90IHRlc3RzJyxcbiAgICAgIGV4ZWNBcmdzOiBbJ2ludGVnLXJ1bm5lcicsICckQCcsICctLWxhbmd1YWdlJywgJ3R5cGVzY3JpcHQnLCAnLS13YXRjaCddLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUYXNrKCdpbnRlZzpkZWJ1ZycsIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnUnVuIGludGVncmF0aW9uIHRlc3RzIHdpdGggdmVyYm9zZSBkaWFnbm9zdGljcyBhbmQgZmFpbHVyZSBhcnRpZmFjdHMnLFxuICAgICAgZXhlY0FyZ3M6IFtcbiAgICAgICAgJ2ludGVnLXJ1bm5lcicsXG4gICAgICAgICckQCcsXG4gICAgICAgICctLWxhbmd1YWdlJyxcbiAgICAgICAgJ3R5cGVzY3JpcHQnLFxuICAgICAgICAnLXZ2JyxcbiAgICAgICAgJy0taW5zcGVjdC1mYWlsdXJlcycsXG4gICAgICBdLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0ludGVncmF0aW9uIFRlc3RzJyxcbiAgICAgIGBJbnRlZ3JhdGlvbiB0ZXN0cyBhcmUgcnVuIGJ5IFtpbnRlZy1ydW5uZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay1jbGkvdHJlZS9tYWluL3BhY2thZ2VzLyU0MGF3cy1jZGsvaW50ZWctcnVubmVyKS5cblxuVGhlc2UgdGFza3Mgb25seSBjb21wYXJlIHNuYXBzaG90cywgc28gdGhleSBuZWVkIG5vIEFXUyBjcmVkZW50aWFscyBhbmQgZGVwbG95IG5vdGhpbmcuIFxcYG5weCBwcm9qZW4gdGVzdFxcYCwgYW5kIHNvIFxcYG5weCBwcm9qZW4gYnVpbGRcXGAsIHJ1bnMgXFxgaW50ZWdcXGA6XG4qIFxcYG5weCBwcm9qZW4gaW50ZWdcXGAgc3ludGhlc2l6ZXMgZWFjaCB0ZXN0IGFuZCBjb21wYXJlcyBpdCB3aXRoIGl0cyBzbmFwc2hvdC5cbiogXFxgbnB4IHByb2plbiBpbnRlZzpkZWJ1Z1xcYCBkb2VzIHRoZSBzYW1lIHdpdGggdmVyYm9zZSBkaWFnbm9zdGljcywga2VlcGluZyB0aGUgZ2VuZXJhdGVkIHNuYXBzaG90cyBvZiB0ZXN0cyB0aGF0IGRpZmZlci5cblxuVGhlc2UgdGFza3MgZGVwbG95IHRvIEFXUywgaW4gdGhlIGFjY291bnQgYW5kIHJlZ2lvbiBvZiB0aGUgY3VycmVudCBBV1MgY3JlZGVudGlhbHMuIEVhY2ggdGVzdCdzIHN0YWNrcyBhcmUgcmVhbCwgc28gdGhlIHRhc2tzIHRha2UgbWludXRlcyBhbmQgaW5jdXIgQVdTIGNvc3RzOlxuKiBcXGBucHggcHJvamVuIGludGVnOnVwZGF0ZVxcYCBkZXBsb3lzIHRoZSB0ZXN0cyB3aG9zZSBzbmFwc2hvdHMgZGlmZmVyLCBydW5zIHRoZWlyIGFzc2VydGlvbnMsIGRlc3Ryb3lzIHRoZSBzdGFja3MgYW5kLCBpZiB0aGV5IHBhc3MsIHVwZGF0ZXMgdGhlIHNuYXBzaG90cy5cbiogXFxgbnB4IHByb2plbiBpbnRlZzpmb3JjZVxcYCBkZXBsb3lzIGV2ZXJ5IHRlc3QgaW4gdGhlIHNhbWUgd2F5LCBldmVuIGlmIGl0cyBzbmFwc2hvdCBpcyB1bmNoYW5nZWQuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6d2F0Y2hcXGAgZGVwbG95cyBhIHNpbmdsZSB0ZXN0IGFuZCByZWRlcGxveXMgaXQgYXMgaXRzIGNvZGUgY2hhbmdlcywgbGlrZSBcXGBjZGsgZGVwbG95IC0td2F0Y2hcXGAuXG5cblxcYCR7SU5URUdfUlVOTkVSfVxcYCBpcyBwaW5uZWQgdG8gXFxgJHtpbnRlZ1J1bm5lclZlcnNpb259XFxgIGFuZCBcXGAke0lOVEVHX1RFU1RTX0FMUEhBfVxcYCB0byB0aGUgcmVsZWFzZSBtYXRjaGluZyBcXGBjZGtWZXJzaW9uXFxgLCBzbyB0aGUgdXBncmFkZSB3b3JrZmxvdyBuZXZlciBjaGFuZ2VzIHRoZWlyIHZlcnNpb25zOiB0aGV5IG9ubHkgY2hhbmdlIHdoZW4gXFxgY2RrVmVyc2lvblxcYCBvciBcXGBpbnRlZ1J1bm5lclZlcnNpb25cXGAgaXMgY2hhbmdlZC4gVGhpcyBpcyBpbnRlbmRlZCwgYXMgZWFjaCBcXGAke0lOVEVHX1RFU1RTX0FMUEhBfVxcYCByZWxlYXNlIHJld3JpdGVzIHRoZSBhc3NlcnRpb24gY29kZSBidW5kbGVkIGluIHRoZSBzbmFwc2hvdHMuXG5cbmludGVnLXJ1bm5lciBpZ25vcmVzIGNoYW5nZXMgdG8gYXNzZXQgaGFzaGVzLCBzbyBhIHRlc3Qgd2hvc2Ugb25seSBjaGFuZ2UgaXMgTGFtYmRhIGNvZGUgaXMgcmVwb3J0ZWQgYXMgXFxgVU5DSEFOR0VEXFxgIGFuZCBpcyBub3QgZGVwbG95ZWQuIFJ1biBcXGBucHggcHJvamVuIGludGVnOmZvcmNlXFxgIHRvIGV4ZXJjaXNlIG5ldyBMYW1iZGEgY29kZSBlbmQgdG8gZW5kLmAsXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5VU0FHRSB9LFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveW1lbnQtZW52aXJvbm1lbnQnO1xuIl19
|
|
@@ -19,6 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
19
19
|
const projen_1 = require("projen");
|
|
20
20
|
const codeowners_1 = require("../../components/github/codeowners");
|
|
21
21
|
const codeql_1 = require("../../components/github/codeql");
|
|
22
|
+
const contributing_1 = require("../../components/github/contributing");
|
|
22
23
|
const mergify_1 = require("../../components/github/mergify");
|
|
23
24
|
const pull_request_template_1 = require("../../components/github/pull-request-template");
|
|
24
25
|
const readme_1 = require("../../components/readme");
|
|
@@ -48,7 +49,7 @@ function getOptions(options) {
|
|
|
48
49
|
* @pjid jsii-project
|
|
49
50
|
*/
|
|
50
51
|
class JsiiProject extends projen_1.cdk.JsiiProject {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.JsiiProject", version: "5.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.JsiiProject", version: "5.5.0" };
|
|
52
53
|
readme;
|
|
53
54
|
constructor(options) {
|
|
54
55
|
const mergedOptions = getOptions(options);
|
|
@@ -80,6 +81,7 @@ Running the tests like this will update any snapshot files, this should be revie
|
|
|
80
81
|
languages: ['javascript-typescript', 'actions'],
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
contributing_1.Contributing.of(this).configurePullRequestTitle(mergedOptions);
|
|
83
85
|
if (this.autoMerge) {
|
|
84
86
|
(0, mergify_1.configureMergify)(this, {
|
|
85
87
|
approvedReviews: mergedOptions.autoMergeOptions?.approvedReviews,
|
|
@@ -90,4 +92,4 @@ Running the tests like this will update any snapshot files, this should be revie
|
|
|
90
92
|
}
|
|
91
93
|
exports.JsiiProject = JsiiProject;
|
|
92
94
|
__exportStar(require("./jsii-project-options"), exports);
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvanNpaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFFckMsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCx1RUFBb0U7QUFDcEUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWdGO0FBQ2hGLDZEQUF5RDtBQUV6RCxTQUFTLFVBQVUsQ0FBQyxPQUEyQjtJQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXpCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSTtRQUNKLFNBQVMsRUFBRSxJQUFJO1FBQ2Ysb0JBQW9CLEVBQUUsTUFBTTtRQUM1QixTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1FBQ2hDLDJCQUEyQixFQUFFLHFEQUE2QjtRQUMxRCxVQUFVLEVBQUUsSUFBSTtRQUNoQiwrRUFBK0U7UUFDL0UsaUJBQWlCLEVBQUUsZUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdkQsMEZBQTBGO1FBQzFGLGlFQUFpRTtRQUNqRSxjQUFjLEVBQUUsSUFBSTtLQUNpQixDQUFDO0lBRXhDLE9BQU8sSUFBQSw0QkFBWSxFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFdBQVksU0FBUSxZQUFHLENBQUMsV0FBVzs7SUFDOUMsTUFBTSxDQUFTO0lBRWYsWUFBWSxPQUEyQjtRQUNyQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsS0FBSyxDQUFDO1lBQ0osR0FBRyxhQUFhO1lBQ2hCLGdCQUFnQixFQUFFLElBQUEsMEJBQWdCLEVBQUMsYUFBYSxDQUFDO1NBQ3hCLENBQUMsQ0FBQztRQUU3QixJQUFJLHVCQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRTtZQUM3QixXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXO1NBQy9DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixpQkFBaUIsRUFDakIsR0FBRyxJQUFBLHVDQUFxQixFQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7Ozs7OzswR0FTbUMsRUFDcEcsRUFBRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FDcEMsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixTQUFTLEVBQ1Q7OztDQUdMLEVBQ0ssRUFBRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FDN0IsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN0QixRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FBQzthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsMkJBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBQSwwQkFBZ0IsRUFBQyxJQUFJLEVBQUU7Z0JBQ3JCLGVBQWUsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDaEUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQWxESCxrQ0FtREM7QUFFRCx5REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjZGssIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKc2lpUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL2pzaWktcHJvamVjdC1vcHRpb25zJztcbmltcG9ydCB7IENvZGVPd25lcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2Rlb3duZXJzJztcbmltcG9ydCB7IENvZGVRbCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVxbCc7XG5pbXBvcnQgeyBDb250cmlidXRpbmcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb250cmlidXRpbmcnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUvZ2V0dGluZy1zdGFydGVkJztcbmltcG9ydCB7IG1lcmdlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IEpzaWlQcm9qZWN0T3B0aW9ucykge1xuICBjb25zdCB7IG5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgbmFtZSxcbiAgICBhdXRvTWVyZ2U6IHRydWUsXG4gICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICBnaXRpZ25vcmU6IFsnLm5wbXJjJywgJy52c2NvZGUnXSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgLy8gYXV0aGVudGljYXRlIGFzIHRoZSBHaXRIdWIgQXBwLCBzbyBtZXJnaWZ5IGNhbiBhcHByb3ZlIHVwZ3JhZGUgcHVsbCByZXF1ZXN0c1xuICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCh7fSksXG4gICAgLy8gdHMtamVzdCBza2lwcyB0eXBlLWNoZWNraW5nIHVuZGVyIHRoZSBpc29sYXRlZE1vZHVsZXMgc2V0dGluZyBvZiB0aGUganNpaSBkZXYgdHNjb25maWcsXG4gICAgLy8gYW5kIGpzaWkgb25seSBjb21waWxlcyBzcmMsIHNvIHR5cGUtY2hlY2sgdGhlIHRlc3Qgc3VpdGUgZmlyc3RcbiAgICB0eXBlY2hlY2tUZXN0czogdHJ1ZSxcbiAgfSBzYXRpc2ZpZXMgUGFydGlhbDxKc2lpUHJvamVjdE9wdGlvbnM+O1xuXG4gIHJldHVybiBtZXJnZU9wdGlvbnMoZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgSlNJSSBwcm9qZWN0IGluIFR5cGVTY3JpcHRcbiAqXG4gKlxuICogQHBqaWQganNpaS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBKc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIHJlYWRtZTogUmVhZG1lO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEpzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ubWVyZ2VkT3B0aW9ucyxcbiAgICAgIGF1dG9NZXJnZU9wdGlvbnM6IGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgfSBhcyBjZGsuSnNpaVByb2plY3RPcHRpb25zKTtcblxuICAgIG5ldyBDb2RlT3duZXJzKHRoaXMsIG1lcmdlZE9wdGlvbnMuY29kZU93bmVycyk7XG4gICAgdGhpcy5yZWFkbWUgPSBuZXcgUmVhZG1lKHRoaXMsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXJnZWRPcHRpb25zLnJlYWRtZT8uZGVzY3JpcHRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICAgICAgYCR7Z2V0dGluZ1N0YXJ0ZWRTZWN0aW9uKHRoaXMsIHsgbm9kZVZlcnNpb246IHRoaXMubm9kZVZlcnNpb24gfSl9XFxuXG5UaGlzIHdpbGw6XG4qIEluc3RhbGwgdGhlIGRlcGVuZGVuY2llc1xuKiBBcHBseSBhbnkgcHJvamVuIGNoYW5nZXNcbiogUnVuIHRlc3RzXG4qIFBhY2thZ2UgcHJvamVjdCBsb2NhbGx5XG5cbkFueSBmaWxlcyBjaGFuZ2VkIGJ5IHByb2plbiBzaG91bGQgYmUgY29tbWl0dGVkIHRvIGdpdC5cblxuUnVubmluZyB0aGUgdGVzdHMgbGlrZSB0aGlzIHdpbGwgdXBkYXRlIGFueSBzbmFwc2hvdCBmaWxlcywgdGhpcyBzaG91bGQgYmUgcmV2aWV3ZWQgYW5kIGNvbW1pdHRlZCB0byBnaXQuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLklOVFJPRFVDVElPTiB9LFxuICAgICk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdUZXN0aW5nJyxcbiAgICAgIGBUeXBlcyBvZiB0ZXN0aW5nOlxuKiBTbmFwc2hvdCAtIHByb2plbiBwcm9qZWN0IG91dHB1dHMgYXJlIHN0b3JlZCBhcyBhIHNuYXBzaG90IGluIHRoZSBjb3JyZXNwb25kaW5nIFxcYF9fc25hcHNob3RzX19cXGAgZGlyZWN0b3J5LiBXaGVuIHRoZSBwcm9qZWN0IGNoYW5nZXMgdGhlbiBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZXNlIHNuYXBzaG90cyBjaGFuZ2UgdG9vIGFuZCBzaG91bGQgYmUgcmV2aWV3ZWQgY29tbWl0dGVkIGFsb25nc2lkZSB0aGUgcHJvamVjdC5cbiogVW5pdCB0ZXN0cyAtIHRoZXNlIGFzc2VydCBvbiBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBwcm9qZWN0IGFuZCBzaG91bGQgYmUgd3JpdHRlbiBmb3IgYW55IG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVkLlxuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgICBpZiAoKG1lcmdlZE9wdGlvbnMuY29kZXFsID8/IHRydWUpICYmIHRoaXMuZ2l0aHViPy53b3JrZmxvd3NFbmFibGVkKSB7XG4gICAgICBuZXcgQ29kZVFsKHRoaXMuZ2l0aHViLCB7XG4gICAgICAgIGJyYW5jaGVzOiBbbWVyZ2VkT3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaF0sXG4gICAgICAgIGxhbmd1YWdlczogWydqYXZhc2NyaXB0LXR5cGVzY3JpcHQnLCAnYWN0aW9ucyddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIENvbnRyaWJ1dGluZy5vZih0aGlzKS5jb25maWd1cmVQdWxsUmVxdWVzdFRpdGxlKG1lcmdlZE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmF1dG9NZXJnZSkge1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vanNpaS1wcm9qZWN0LW9wdGlvbnMnO1xuIl19
|
|
@@ -19,6 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
19
19
|
const projen_1 = require("projen");
|
|
20
20
|
const circleci_1 = require("../../circleci");
|
|
21
21
|
const codeowners_1 = require("../../components/github/codeowners");
|
|
22
|
+
const contributing_1 = require("../../components/github/contributing");
|
|
22
23
|
const mergify_1 = require("../../components/github/mergify");
|
|
23
24
|
const pull_request_template_1 = require("../../components/github/pull-request-template");
|
|
24
25
|
const readme_1 = require("../../components/readme");
|
|
@@ -47,7 +48,7 @@ function getOptions(options) {
|
|
|
47
48
|
* @pjid npm-package
|
|
48
49
|
*/
|
|
49
50
|
class NpmPackage extends projen_1.typescript.TypeScriptProject {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.NpmPackage", version: "5.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.NpmPackage", version: "5.5.0" };
|
|
51
52
|
readme;
|
|
52
53
|
constructor(options) {
|
|
53
54
|
const mergedOptions = getOptions(options);
|
|
@@ -61,6 +62,7 @@ class NpmPackage extends projen_1.typescript.TypeScriptProject {
|
|
|
61
62
|
description: mergedOptions.readme?.description,
|
|
62
63
|
});
|
|
63
64
|
this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedSection)(this, { nodeVersion: this.nodeVersion }), { order: readme_1.ReadmeOrder.INTRODUCTION });
|
|
65
|
+
contributing_1.Contributing.of(this).configurePullRequestTitle(mergedOptions);
|
|
64
66
|
if (this.autoMerge) {
|
|
65
67
|
(0, mergify_1.configureMergify)(this, {
|
|
66
68
|
approvedReviews: mergedOptions.autoMergeOptions?.approvedReviews,
|
|
@@ -71,4 +73,4 @@ class NpmPackage extends projen_1.typescript.TypeScriptProject {
|
|
|
71
73
|
}
|
|
72
74
|
exports.NpmPackage = NpmPackage;
|
|
73
75
|
__exportStar(require("./npm-package-options"), exports);
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvbnBtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFvQztBQUVwQyw2Q0FBNkM7QUFDN0MsbUVBQWdFO0FBQ2hFLHVFQUFvRTtBQUNwRSw2REFHeUM7QUFDekMseUZBQThGO0FBQzlGLG9EQUE4RDtBQUM5RCw2RUFBZ0Y7QUFDaEYsNkRBQXlEO0FBRXpELFNBQVMsVUFBVSxDQUFDLE9BQTBCO0lBQzVDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osb0JBQW9CLEVBQUUsTUFBTTtRQUM1QixhQUFhLEVBQUU7WUFDYixTQUFTLEVBQUUsS0FBSztTQUNqQjtRQUNELFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLHNHQUFzRztRQUN0RyxjQUFjLEVBQUUsSUFBSTtLQUNnQixDQUFDO0lBRXZDLE9BQU8sSUFBQSw0QkFBWSxFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjs7SUFDMUQsTUFBTSxDQUFTO0lBRWYsWUFBWSxPQUEwQjtRQUNwQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsS0FBSyxDQUFDO1lBQ0osR0FBRyxhQUFhO1lBQ2hCLGdCQUFnQixFQUFFLElBQUEsMEJBQWdCLEVBQUMsYUFBYSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO1FBRTFDLElBQUksdUJBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksc0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRTtZQUM3QixXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXO1NBQy9DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixpQkFBaUIsRUFDakIsSUFBQSx1Q0FBcUIsRUFBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQzlELEVBQUUsS0FBSyxFQUFFLG9CQUFXLENBQUMsWUFBWSxFQUFFLENBQ3BDLENBQUM7UUFDRiwyQkFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFBLDBCQUFnQixFQUFDLElBQUksRUFBRTtnQkFDckIsZUFBZSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlO2dCQUNoRSxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWM7YUFDN0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBNUJILGdDQTZCQztBQUVELHdEQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTnBtUGFja2FnZU9wdGlvbnMgfSBmcm9tICcuL25wbS1wYWNrYWdlLW9wdGlvbnMnO1xuaW1wb3J0IHsgTnBtQ2lyY2xlQ2kgfSBmcm9tICcuLi8uLi9jaXJjbGVjaSc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb250cmlidXRpbmcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb250cmlidXRpbmcnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUvZ2V0dGluZy1zdGFydGVkJztcbmltcG9ydCB7IG1lcmdlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IE5wbVBhY2thZ2VPcHRpb25zKSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBuYW1lLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgd29ya2Zsb3dzOiBmYWxzZSxcbiAgICB9LFxuICAgIGdpdGlnbm9yZTogWycubnBtcmMnLCAnLnZzY29kZSddLFxuICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUsXG4gICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAvLyB0cy1qZXN0IG9ubHkgcmVwb3J0cyB0eXBlIGVycm9ycyBpbiB0aGUgZmlsZXMgYSB0ZXN0IHJ1biBsb2Fkcywgc28gdHlwZS1jaGVjayB0aGUgd2hvbGUgc3VpdGUgZmlyc3RcbiAgICB0eXBlY2hlY2tUZXN0czogdHJ1ZSxcbiAgfSBzYXRpc2ZpZXMgUGFydGlhbDxOcG1QYWNrYWdlT3B0aW9ucz47XG5cbiAgcmV0dXJuIG1lcmdlT3B0aW9ucyhkZWZhdWx0cywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogQSBOUE0vbm9kZSBwYWNrYWdlIGluIFR5cGVTY3JpcHRcbiAqXG4gKlxuICogQHBqaWQgbnBtLXBhY2thZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIE5wbVBhY2thZ2UgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcbiAgcmVhZG1lOiBSZWFkbWU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTnBtUGFja2FnZU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgICBhdXRvTWVyZ2VPcHRpb25zOiBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgIH0gYXMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpO1xuXG4gICAgbmV3IENvZGVPd25lcnModGhpcywgbWVyZ2VkT3B0aW9ucy5jb2RlT3duZXJzKTtcbiAgICBuZXcgTnBtQ2lyY2xlQ2kodGhpcyk7XG4gICAgdGhpcy5yZWFkbWUgPSBuZXcgUmVhZG1lKHRoaXMsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXJnZWRPcHRpb25zLnJlYWRtZT8uZGVzY3JpcHRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICAgICAgZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uKHRoaXMsIHsgbm9kZVZlcnNpb246IHRoaXMubm9kZVZlcnNpb24gfSksXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5JTlRST0RVQ1RJT04gfSxcbiAgICApO1xuICAgIENvbnRyaWJ1dGluZy5vZih0aGlzKS5jb25maWd1cmVQdWxsUmVxdWVzdFRpdGxlKG1lcmdlZE9wdGlvbnMpO1xuICAgIGlmICh0aGlzLmF1dG9NZXJnZSkge1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vbnBtLXBhY2thZ2Utb3B0aW9ucyc7XG4iXX0=
|
|
@@ -20,6 +20,7 @@ const projen_1 = require("projen");
|
|
|
20
20
|
const python_1 = require("projen/lib/python");
|
|
21
21
|
const codeowners_1 = require("../../components/github/codeowners");
|
|
22
22
|
const codeql_1 = require("../../components/github/codeql");
|
|
23
|
+
const contributing_1 = require("../../components/github/contributing");
|
|
23
24
|
const mergify_1 = require("../../components/github/mergify");
|
|
24
25
|
const pull_request_template_1 = require("../../components/github/pull-request-template");
|
|
25
26
|
const readme_1 = require("../../components/readme");
|
|
@@ -43,7 +44,7 @@ function getOptions(options) {
|
|
|
43
44
|
* @pjid python-package
|
|
44
45
|
*/
|
|
45
46
|
class PythonPackage extends python_1.PythonProject {
|
|
46
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.PythonPackage", version: "5.
|
|
47
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.PythonPackage", version: "5.5.0" };
|
|
47
48
|
autoMerge;
|
|
48
49
|
readme;
|
|
49
50
|
constructor(options) {
|
|
@@ -66,6 +67,7 @@ class PythonPackage extends python_1.PythonProject {
|
|
|
66
67
|
languages: ['python', 'actions'],
|
|
67
68
|
});
|
|
68
69
|
}
|
|
70
|
+
contributing_1.Contributing.of(this).configurePullRequestTitle(mergedOptions);
|
|
69
71
|
// projen only wires the merge queue up for node projects
|
|
70
72
|
if ((mergedOptions.autoMerge ?? true) && this.github?.mergify) {
|
|
71
73
|
this.autoMerge = new projen_1.github.AutoMerge(this.github, (0, mergify_1.autoMergeOptions)(mergedOptions));
|
|
@@ -78,4 +80,4 @@ class PythonPackage extends python_1.PythonProject {
|
|
|
78
80
|
}
|
|
79
81
|
exports.PythonPackage = PythonPackage;
|
|
80
82
|
__exportStar(require("./python-package-options"), exports);
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvcHl0aG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyw4Q0FBd0U7QUFFeEUsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCx1RUFBb0U7QUFDcEUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWdGO0FBQ2hGLDZEQUF5RDtBQUV6RCxTQUFTLFVBQVUsQ0FBQyxPQUE2QjtJQUMvQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXpCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSTtRQUNKLG1CQUFtQixFQUFFLElBQUk7UUFDekIsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztLQUNoQixDQUFDO0lBRTFDLE9BQU8sSUFBQSw0QkFBWSxFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGFBQWMsU0FBUSxzQkFBYTs7SUFDckMsU0FBUyxDQUFvQjtJQUN0QyxNQUFNLENBQVM7SUFFZixZQUFZLE9BQTZCO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUM7WUFDSixHQUFHLGFBQWE7U0FDTyxDQUFDLENBQUM7UUFFM0IsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxhQUFhLENBQUMsbUJBQW1CLElBQUksSUFBSSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxzQkFBc0IsQ0FDakMsR0FBRyxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUMsQ0FDckQsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRTtZQUM3QixXQUFXLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxXQUFXO1NBQy9DLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLElBQUEsdUNBQXFCLEVBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckUsS0FBSyxFQUFFLG9CQUFXLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDcEUsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEIsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsMkJBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0QseURBQXlEO1FBQ3pELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQU0sQ0FBQyxTQUFTLENBQ25DLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBQSwwQkFBZ0IsRUFBQyxhQUFhLENBQUMsQ0FDaEMsQ0FBQztZQUNGLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNyQixlQUFlLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2hFLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYzthQUM3QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUF4Q0gsc0NBeUNDO0FBRUQsMkRBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFB5dGhvblByb2plY3QsIFB5dGhvblByb2plY3RPcHRpb25zIH0gZnJvbSAncHJvamVuL2xpYi9weXRob24nO1xuaW1wb3J0IHsgUHl0aG9uUGFja2FnZU9wdGlvbnMgfSBmcm9tICcuL3B5dGhvbi1wYWNrYWdlLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29kZU93bmVycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVvd25lcnMnO1xuaW1wb3J0IHsgQ29kZVFsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZXFsJztcbmltcG9ydCB7IENvbnRyaWJ1dGluZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvbnRyaWJ1dGluZyc7XG5pbXBvcnQge1xuICBhdXRvTWVyZ2VPcHRpb25zLFxuICBjb25maWd1cmVNZXJnaWZ5LFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5JztcbmltcG9ydCB7IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvcHVsbC1yZXF1ZXN0LXRlbXBsYXRlJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZSc7XG5pbXBvcnQgeyBnZXR0aW5nU3RhcnRlZFNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZS9nZXR0aW5nLXN0YXJ0ZWQnO1xuaW1wb3J0IHsgbWVyZ2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2Utb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMob3B0aW9uczogUHl0aG9uUGFja2FnZU9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZTogdHJ1ZSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIC8vIGF1dGhlbnRpY2F0ZSBhcyB0aGUgR2l0SHViIEFwcCwgc28gbWVyZ2lmeSBjYW4gYXBwcm92ZSB1cGdyYWRlIHB1bGwgcmVxdWVzdHNcbiAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoe30pLFxuICB9IHNhdGlzZmllcyBQYXJ0aWFsPFB5dGhvblBhY2thZ2VPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIFB5dGhvbiBwYWNrYWdlXG4gKlxuICpcbiAqIEBwamlkIHB5dGhvbi1wYWNrYWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBQeXRob25QYWNrYWdlIGV4dGVuZHMgUHl0aG9uUHJvamVjdCB7XG4gIHJlYWRvbmx5IGF1dG9NZXJnZT86IGdpdGh1Yi5BdXRvTWVyZ2U7XG4gIHJlYWRtZTogUmVhZG1lO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFB5dGhvblBhY2thZ2VPcHRpb25zKSB7XG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGdldE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgIH0gYXMgUHl0aG9uUHJvamVjdE9wdGlvbnMpO1xuXG4gICAgbmV3IENvZGVPd25lcnModGhpcywgbWVyZ2VkT3B0aW9ucy5jb2RlT3duZXJzKTtcbiAgICBpZiAobWVyZ2VkT3B0aW9ucy5wdWxsUmVxdWVzdFRlbXBsYXRlID8/IHRydWUpIHtcbiAgICAgIHRoaXMuZ2l0aHViPy5hZGRQdWxsUmVxdWVzdFRlbXBsYXRlKFxuICAgICAgICAuLi4obWVyZ2VkT3B0aW9ucy5wdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHMgPz8gW10pLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZWFkbWUgPSBuZXcgUmVhZG1lKHRoaXMsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXJnZWRPcHRpb25zLnJlYWRtZT8uZGVzY3JpcHRpb24sXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbignR2V0dGluZyBTdGFydGVkJywgZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uKHRoaXMpLCB7XG4gICAgICBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OLFxuICAgIH0pO1xuICAgIGlmICgobWVyZ2VkT3B0aW9ucy5jb2RlcWwgPz8gdHJ1ZSkgJiYgdGhpcy5naXRodWI/LndvcmtmbG93c0VuYWJsZWQpIHtcbiAgICAgIG5ldyBDb2RlUWwodGhpcy5naXRodWIsIHtcbiAgICAgICAgbGFuZ3VhZ2VzOiBbJ3B5dGhvbicsICdhY3Rpb25zJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgQ29udHJpYnV0aW5nLm9mKHRoaXMpLmNvbmZpZ3VyZVB1bGxSZXF1ZXN0VGl0bGUobWVyZ2VkT3B0aW9ucyk7XG4gICAgLy8gcHJvamVuIG9ubHkgd2lyZXMgdGhlIG1lcmdlIHF1ZXVlIHVwIGZvciBub2RlIHByb2plY3RzXG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmF1dG9NZXJnZSA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ubWVyZ2lmeSkge1xuICAgICAgdGhpcy5hdXRvTWVyZ2UgPSBuZXcgZ2l0aHViLkF1dG9NZXJnZShcbiAgICAgICAgdGhpcy5naXRodWIsXG4gICAgICAgIGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgICApO1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vcHl0aG9uLXBhY2thZ2Utb3B0aW9ucyc7XG4iXX0=
|