projen-modules 5.1.1 → 5.3.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 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\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## GitHub Configuration\n\nAll 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.\n\nThe repository must be configured as below so that nothing can be merged without going through the queue.\n\n### Mergify\n\nInstall the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.\n\n### Pull request settings\n\nIn **Settings → General → Pull Requests**:\n* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.\n* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.\n* Tick **Automatically delete head branches**.\n\n### Actions settings\n\nIn **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.\n\n### Code scanning\n\nCodeQL 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.\n\n### Branch ruleset\n\nIn **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:\n* **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.\n* **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.\n* **Restrict deletions** and **Block force pushes**.\n* **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.\n* **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.\n* **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.\n\nDo not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.\n\nIf the queue is unavailable and a change has to be merged, add yourself to the bypass list temporarily and remove yourself afterwards.\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```"
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## GitHub Configuration\n\nAll 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.\n\nThe repository must be configured as below so that nothing can be merged without going through the queue.\n\n### Mergify\n\nInstall the [Mergify GitHub App](https://github.com/apps/mergify) and give it access to this repository.\n\n### Pull request settings\n\nIn **Settings → General → Pull Requests**:\n* Allow squash merging only (untick merge commits and rebase merging), matching the queue's merge method.\n* Untick **Allow auto-merge**, because GitHub's own auto-merge merges outside the queue.\n* Tick **Automatically delete head branches**.\n\n### Actions settings\n\nIn **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.\n\n### Code scanning\n\nCodeQL 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.\n\n### Branch ruleset\n\nIn **Settings → Rules → Rulesets**, create a branch ruleset with enforcement **Active** that targets the default branch, and set:\n* **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.\n* **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.\n* **Restrict deletions** and **Block force pushes**.\n* **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.\n* **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.\n* **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.\n\nDo not enable GitHub's own **Require merge queue** rule, as it competes with Mergify.\n\nIf the queue is unavailable and a change has to be merged, add yourself to the bypass list temporarily and remove yourself afterwards.\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",
@@ -11843,6 +11843,6 @@
11843
11843
  "symbolId": "src/components/readme/elements/section:SectionOptions"
11844
11844
  }
11845
11845
  },
11846
- "version": "5.1.1",
11847
- "fingerprint": "vhNGrU0XfBemseg7RvVOxSPRyP6nATkEXBGdu4maqVk="
11846
+ "version": "5.3.0",
11847
+ "fingerprint": "4vPFaM2oHZpa8Kck0X67umXp5M+b7g4QbyIXpr6KaQ0="
11848
11848
  }
package/README.md CHANGED
@@ -6,6 +6,10 @@ A collection of custom projen modules, that can be used to bootstrap and maintai
6
6
 
7
7
  ## Getting Started
8
8
 
9
+ Prerequisites:
10
+ * Node.js 22
11
+ * Yarn 1 (classic)
12
+
9
13
  ```sh
10
14
  yarn install
11
15
  npx projen build
@@ -18,6 +18,20 @@ exports.AWS_ACTIONS_CONFIGURE_AWS_CREDENTIALS = 'aws-actions/configure-aws-crede
18
18
  const DEFAULT_ROLE_SECRET = 'AWS_DEPLOYMENT_ROLE_ARN';
19
19
  const RELEASE_JOB_ID = 'release';
20
20
  const capitalise = (value) => value.charAt(0).toUpperCase() + value.slice(1);
21
+ const SECRET_REFERENCE = /\$\{\{\s*secrets\.([A-Za-z_][A-Za-z0-9_]*)\s*\}\}/g;
22
+ /**
23
+ * The secrets a deployment needs: its role ARN secret, then those its env
24
+ * values reference, in order of appearance and without duplicates
25
+ */
26
+ function deploymentSecrets(deployment) {
27
+ const secrets = new Set([deployment.roleSecret ?? DEFAULT_ROLE_SECRET]);
28
+ for (const value of Object.values(deployment.env ?? {})) {
29
+ for (const [, name] of value.matchAll(SECRET_REFERENCE)) {
30
+ secrets.add(name);
31
+ }
32
+ }
33
+ return [...secrets];
34
+ }
21
35
  /**
22
36
  * Adds a job per deployment environment to the default branch's release
23
37
  * workflow, each one deploying after the release job and the previous
@@ -103,11 +117,13 @@ function addDeployments(project, options) {
103
117
  readme_1.Readme.of(project)?.addSection('Deployment', [
104
118
  'After each release, the release workflow deploys to these GitHub environments in order, each after the previous one succeeds:',
105
119
  '',
106
- '| Environment | Region | Role ARN secret |',
107
- '| ----------- | ------ | --------------- |',
108
- ...deployments.map((d) => `| ${d.environment} | ${d.region} | \`${d.roleSecret ?? DEFAULT_ROLE_SECRET}\` |`),
120
+ '| Environment | Region | Secrets |',
121
+ '| ----------- | ------ | ------- |',
122
+ ...deployments.map((d) => `| ${d.environment} | ${d.region} | ${deploymentSecrets(d)
123
+ .map((name) => `\`${name}\``)
124
+ .join(', ')} |`),
109
125
  '',
110
- 'Each environment needs its role ARN secret, for a role that trusts GitHub\'s OIDC provider.',
126
+ 'Each environment needs these secrets set, the first being the ARN of a role that trusts GitHub\'s OIDC provider.',
111
127
  ].join('\n'), { order: readme_1.ReadmeOrder.USAGE });
112
128
  }
113
129
  /**
@@ -167,4 +183,4 @@ function deployCommand(pm) {
167
183
  return 'bun run deploy';
168
184
  }
169
185
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9naXRodWIvZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNkNBLHdDQTZHQztBQTFKRCxtQ0FBZ0M7QUFDaEMsMkRBQWtFO0FBQ2xFLHVFQUEyRTtBQUMzRSxzREFBd0U7QUFDeEUscURBQXdFO0FBRXhFLHNDQUFnRDtBQUVoRCxpRkFBaUY7QUFDakYsaUZBQWlGO0FBQ2pGLHVGQUF1RjtBQUN2RixtQ0FBbUM7QUFDdEIsUUFBQSxrQkFBa0IsR0FDN0IsNkRBQTZELENBQUM7QUFDaEUsc0RBQXNEO0FBQ3pDLFFBQUEscUNBQXFDLEdBQ2hELGdGQUFnRixDQUFDO0FBRW5GLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO0FBa0JqQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixPQUFvQixFQUNwQixPQUEyQjtJQUUzQixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxTQUFTLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FB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Q0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsYUFBYSxDQUFDLEVBQXNCO0lBQzNDLElBQUksSUFBQSxvQkFBYSxFQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUEsa0JBQVcsRUFBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQ1gsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sbUJBQW1CLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxJQUFJO1lBQzFCLGtEQUFrRDtZQUNsRCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCO1lBQ0UsT0FBTyxnQkFBZ0IsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBCVUlMRF9BUlRJRkFDVF9OQU1FIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvY29uc3RhbnRzJztcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyLCBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBpc1lhcm5CZXJyeSwgaXNZYXJuQ2xhc3NpYyB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdC91dGlsJztcbmltcG9ydCB7IERlcGxveW1lbnRFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3Byb2plY3RzL2Nkay10cy9kZXBsb3ltZW50LWVudmlyb25tZW50JztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi9yZWFkbWUnO1xuXG4vLyBwcm9qZW4gb25seSBwaW5zIHRoZXNlIGJ5IHRhZywgc28gdGhleSBhcmUgcGlubmVkIGJ5IFNIQSBoZXJlLiBTdGVwcyByZWZlcmVuY2Vcbi8vIHRoZW0gYnkgYG5hbWVAc2hhYCwgd2hpY2ggcHJvamVjdC5naXRodWIuYWN0aW9ucyByZXNvbHZlcyB3aGVuIHRoZSB3b3JrZmxvdyBpc1xuLy8gcmVuZGVyZWQsIHNvIGBwcm9qZWN0LmdpdGh1Yi5hY3Rpb25zLnNldCgnYWN0aW9ucy9zZXR1cC1ub2RlJywgLi4uKWAgb3ZlcnJpZGVzIHRoZW0uXG4vKiogYWN0aW9ucy9zZXR1cC1ub2RlIGF0IHY3LjAuMCAqL1xuZXhwb3J0IGNvbnN0IEFDVElPTlNfU0VUVVBfTk9ERSA9XG4gICdhY3Rpb25zL3NldHVwLW5vZGVAODIwNzYyNzg2MDI2NzQwYzc2ZjM2MDg1YjBlZmM0N2EzMWZlNTAyMCc7XG4vKiogYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFscyBhdCB2Ni4zLjAgKi9cbmV4cG9ydCBjb25zdCBBV1NfQUNUSU9OU19DT05GSUdVUkVfQVdTX0NSRURFTlRJQUxTID1cbiAgJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAZTEyNTM4MjRlNWMxMGZmOWRmNDY4NzRmODFlZDNlYzkyOWUxOWNmZCc7XG5cbmNvbnN0IERFRkFVTFRfUk9MRV9TRUNSRVQgPSAnQVdTX0RFUExPWU1FTlRfUk9MRV9BUk4nO1xuY29uc3QgUkVMRUFTRV9KT0JfSUQgPSAncmVsZWFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudHNPcHRpb25zIHtcbiAgcmVhZG9ubHkgZGVwbG95bWVudHM6IEFycmF5PERlcGxveW1lbnRFbnZpcm9ubWVudD47XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSByZWxlYXNlIHdvcmtmbG93IGZvciB0aGUgZGVmYXVsdCBicmFuY2hcbiAgICpcbiAgICogQGRlZmF1bHQgJ3JlbGVhc2UnXG4gICAqL1xuICByZWFkb25seSByZWxlYXNlV29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogTm9kZS5qcyB2ZXJzaW9uIHRoYXQgdGhlIHJlbGVhc2Ugd29ya2Zsb3cgc2V0cyB1cFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBydW5uZXIncyB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBub2RlVmVyc2lvbj86IHN0cmluZztcbn1cblxuY29uc3QgY2FwaXRhbGlzZSA9ICh2YWx1ZTogc3RyaW5nKSA9PlxuICB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuXG4vKipcbiAqIEFkZHMgYSBqb2IgcGVyIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIGRlZmF1bHQgYnJhbmNoJ3MgcmVsZWFzZVxuICogd29ya2Zsb3csIGVhY2ggb25lIGRlcGxveWluZyBhZnRlciB0aGUgcmVsZWFzZSBqb2IgYW5kIHRoZSBwcmV2aW91c1xuICogZW52aXJvbm1lbnQncyBqb2JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZERlcGxveW1lbnRzKFxuICBwcm9qZWN0OiBOb2RlUHJvamVjdCxcbiAgb3B0aW9uczogRGVwbG95bWVudHNPcHRpb25zLFxuKSB7XG4gIGNvbnN0IHsgZGVwbG95bWVudHMgfSA9IG9wdGlvbnM7XG4gIGlmIChkZXBsb3ltZW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB3b3JrZmxvd05hbWUgPSBvcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUgPz8gJ3JlbGVhc2UnO1xuICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgaWYgKCFwcm9qZWN0LnJlbGVhc2UgfHwgIXdvcmtmbG93KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGRlcGxveW1lbnRzIG5lZWQgYSBcIiR7d29ya2Zsb3dOYW1lfVwiIEdpdEh1YiB3b3JrZmxvdywgc28gdGhlIHByb2plY3QgbXVzdCBoYXZlIHJlbGVhc2UgZW5hYmxlZCBhbmQgR2l0SHViIHdvcmtmbG93cyBlbmFibGVkYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHsgZW52aXJvbm1lbnQgfSBvZiBkZXBsb3ltZW50cykge1xuICAgIGlmICghL15bQS1aYS16MC05Xy1dKyQvLnRlc3QoZW52aXJvbm1lbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBEZXBsb3ltZW50IGVudmlyb25tZW50IFwiJHtlbnZpcm9ubWVudH1cIiBtdXN0IGJlIG5vbi1lbXB0eSBhbmQgb25seSBjb250YWluIGxldHRlcnMsIGRpZ2l0cywgXCJfXCIgYW5kIFwiLVwiLCBhcyBpdCBpcyB1c2VkIGluIHRoZSBqb2IgaWRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlZW4uaGFzKGVudmlyb25tZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXBsb3ltZW50IGVudmlyb25tZW50IFwiJHtlbnZpcm9ubWVudH1cIiBpcyBkdXBsaWNhdGVkYCk7XG4gICAgfVxuICAgIHNlZW4uYWRkKGVudmlyb25tZW50KTtcbiAgfVxuXG4gIC8vIGRlcGxveSBqb2JzIHJ1biBvbiB0aGUgc2FtZSBydW5uZXJzIGFzIHRoZSByZWxlYXNlIGpvYlxuICBjb25zdCByZWxlYXNlSm9iID0gd29ya2Zsb3cuZ2V0Sm9iKFJFTEVBU0VfSk9CX0lEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYjtcbiAgY29uc3Qgc2V0dXBTdGVwcyA9IHBhY2thZ2VNYW5hZ2VyU2V0dXBTdGVwcyhwcm9qZWN0LCBvcHRpb25zLm5vZGVWZXJzaW9uKTtcbiAgLy8gcm9sZSBzZXNzaW9uIG5hbWVzIG9ubHkgYWxsb3cgW1xcdys9LC5ALV1cbiAgY29uc3Qgcm9sZVNlc3Npb25OYW1lID0gYCR7cHJvamVjdC5uYW1lfS1kZXBsb3lgLnJlcGxhY2UoXG4gICAgL1teXFx3Kz0sLkAtXS9nLFxuICAgICctJyxcbiAgKTtcblxuICBsZXQgcHJldmlvdXNKb2JJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IGRlcGxveW1lbnQgb2YgZGVwbG95bWVudHMpIHtcbiAgICBjb25zdCBqb2JJZCA9IGBkZXBsb3lfJHtkZXBsb3ltZW50LmVudmlyb25tZW50fWA7XG4gICAgY29uc3Qgcm9sZVNlY3JldCA9IGRlcGxveW1lbnQucm9sZVNlY3JldCA/PyBERUZBVUxUX1JPTEVfU0VDUkVUO1xuICAgIGNvbnN0IGVudiA9IGRlcGxveW1lbnQuZW52ID8/IHt9O1xuICAgIHdvcmtmbG93LmFkZEpvYihqb2JJZCwge1xuICAgICAgbmFtZTpcbiAgICAgICAgZGVwbG95bWVudC5uYW1lID8/IGBEZXBsb3kgdG8gJHtjYXBpdGFsaXNlKGRlcGxveW1lbnQuZW52aXJvbm1lbnQpfWAsXG4gICAgICBlbnZpcm9ubWVudDogZGVwbG95bWVudC5lbnZpcm9ubWVudCxcbiAgICAgIC8vIHJlbGVhc2UgaXMgbGlzdGVkIGV4cGxpY2l0bHksIGFzIHRoZSBjb25kaXRpb24gcmVhZHMgaXRzIG91dHB1dHNcbiAgICAgIG5lZWRzOiBwcmV2aW91c0pvYklkID8gW1JFTEVBU0VfSk9CX0lELCBwcmV2aW91c0pvYklkXSA6IFtSRUxFQVNFX0pPQl9JRF0sXG4gICAgICBydW5zT246IHJlbGVhc2VKb2IucnVuc09uLFxuICAgICAgcnVuc09uR3JvdXA6IHJlbGVhc2VKb2IucnVuc09uR3JvdXAsXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGlmOiBgbmVlZHMuJHtSRUxFQVNFX0pPQl9JRH0ub3V0cHV0cy50YWdfZXhpc3RzICE9ICd0cnVlJ2AsXG4gICAgICAvLyBUaGUgY29tbWl0IGlzIG5vdCByZWJ1aWx0OiB0aGUgcmVsZWFzZSBqb2IgYWxyZWFkeSBidWlsdCBhbmQgdGVzdGVkIGl0LFxuICAgICAgLy8gYW5kIGNkayBkZXBsb3kgYnVuZGxlcyB0aGUgTGFtYmRhcyBpdHNlbGYgdGhyb3VnaCB0aGUgYnVpbGQgaG9vayBpblxuICAgICAgLy8gY2RrLmpzb24uIFRoZSByZWxlYXNlJ3MgYXJ0aWZhY3QgKHdpdGggcmVsZWFzZXRhZy50eHQpIGlzIHN0aWxsXG4gICAgICAvLyBkb3dubG9hZGVkLCBzbyB0aGUgYXBwIGNhbiByZWFkIHRoZSByZWxlYXNlZCB2ZXJzaW9uLlxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgdXNlczogZ2l0aHViLkFjdGlvblJlZnMuQUNUSU9OU19DSEVDS09VVCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEb3dubG9hZCBidWlsZCBhcnRpZmFjdHMnLFxuICAgICAgICAgIHVzZXM6IGdpdGh1Yi5BY3Rpb25SZWZzLkFDVElPTlNfRE9XTkxPQURfQVJUSUZBQ1QsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgbmFtZTogQlVJTERfQVJUSUZBQ1RfTkFNRSxcbiAgICAgICAgICAgIHBhdGg6IHByb2plY3QucmVsZWFzZS5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjb25maWd1cmUgYXdzIGNyZWRlbnRpYWxzJyxcbiAgICAgICAgICB1c2VzOiBBV1NfQUNUSU9OU19DT05GSUdVUkVfQVdTX0NSRURFTlRJQUxTLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IGBcXCR7eyBzZWNyZXRzLiR7cm9sZVNlY3JldH0gfX1gLFxuICAgICAgICAgICAgJ3JvbGUtc2Vzc2lvbi1uYW1lJzogcm9sZVNlc3Npb25OYW1lLFxuICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiBkZXBsb3ltZW50LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RlcGxveScsXG4gICAgICAgICAgcnVuOiBgJHtkZXBsb3lDb21tYW5kKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcil9IC0tcmVxdWlyZS1hcHByb3ZhbCAke2RlcGxveW1lbnQucmVxdWlyZUFwcHJvdmFsID8/ICduZXZlcid9YCxcbiAgICAgICAgICAuLi4oT2JqZWN0LmtleXMoZW52KS5sZW5ndGggPiAwICYmIHsgZW52IH0pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBwcmV2aW91c0pvYklkID0gam9iSWQ7XG4gIH1cblxuICBSZWFkbWUub2YocHJvamVjdCk/LmFkZFNlY3Rpb24oXG4gICAgJ0RlcGxveW1lbnQnLFxuICAgIFtcbiAgICAgICdBZnRlciBlYWNoIHJlbGVhc2UsIHRoZSByZWxlYXNlIHdvcmtmbG93IGRlcGxveXMgdG8gdGhlc2UgR2l0SHViIGVudmlyb25tZW50cyBpbiBvcmRlciwgZWFjaCBhZnRlciB0aGUgcHJldmlvdXMgb25lIHN1Y2NlZWRzOicsXG4gICAgICAnJyxcbiAgICAgICd8IEVudmlyb25tZW50IHwgUmVnaW9uIHwgUm9sZSBBUk4gc2VjcmV0IHwnLFxuICAgICAgJ3wgLS0tLS0tLS0tLS0gfCAtLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfCcsXG4gICAgICAuLi5kZXBsb3ltZW50cy5tYXAoXG4gICAgICAgIChkKSA9PlxuICAgICAgICAgIGB8ICR7ZC5lbnZpcm9ubWVudH0gfCAke2QucmVnaW9ufSB8IFxcYCR7ZC5yb2xlU2VjcmV0ID8/IERFRkFVTFRfUk9MRV9TRUNSRVR9XFxgIHxgLFxuICAgICAgKSxcbiAgICAgICcnLFxuICAgICAgJ0VhY2ggZW52aXJvbm1lbnQgbmVlZHMgaXRzIHJvbGUgQVJOIHNlY3JldCwgZm9yIGEgcm9sZSB0aGF0IHRydXN0cyBHaXRIdWJcXCdzIE9JREMgcHJvdmlkZXIuJyxcbiAgICBdLmpvaW4oJ1xcbicpLFxuICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICk7XG59XG5cbi8qKlxuICogU3RlcHMgdGhhdCBpbnN0YWxsIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBtaXJyb3JpbmcgcHJvamVuJ3Mgb3duXG4gKiB3b3JrZmxvdyBzZXR1cCBidXQgd2l0aCBzZXR1cC1ub2RlIHBpbm5lZCBieSBTSEFcbiAqL1xuZnVuY3Rpb24gcGFja2FnZU1hbmFnZXJTZXR1cFN0ZXBzKFxuICBwcm9qZWN0OiBOb2RlUHJvamVjdCxcbiAgbm9kZVZlcnNpb24/OiBzdHJpbmcsXG4pOiBBcnJheTxKb2JTdGVwPiB7XG4gIGNvbnN0IHBtID0gcHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyO1xuICBjb25zdCBzdGVwcyA9IG5ldyBBcnJheTxKb2JTdGVwPigpO1xuICBpZiAocG0gPT09IE5vZGVQYWNrYWdlTWFuYWdlci5CVU4pIHtcbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdTZXR1cCBidW4nLFxuICAgICAgdXNlczogZ2l0aHViLkFjdGlvblJlZnMuT1ZFTl9TSF9TRVRVUF9CVU4sXG4gICAgICB3aXRoOiB7ICdidW4tdmVyc2lvbic6IHByb2plY3QucGFja2FnZS5idW5WZXJzaW9uIH0sXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGlzWWFybkJlcnJ5KHBtKSkge1xuICAgICAgc3RlcHMucHVzaCh7IG5hbWU6ICdFbmFibGUgY29yZXBhY2snLCBydW46ICdjb3JlcGFjayBlbmFibGUnIH0pO1xuICAgIH0gZWxzZSBpZiAocG0gPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNKSB7XG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1NldHVwIHBucG0nLFxuICAgICAgICB1c2VzOiBnaXRodWIuQWN0aW9uUmVmcy5QTlBNX0FDVElPTl9TRVRVUCxcbiAgICAgICAgd2l0aDogeyB2ZXJzaW9uOiBwcm9qZWN0LnBhY2thZ2UucG5wbVZlcnNpb24gfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgIHVzZXM6IEFDVElPTlNfU0VUVVBfTk9ERSxcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgLi4uKG5vZGVWZXJzaW9uICYmIHsgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uIH0pLFxuICAgICAgICBjYWNoZTogaXNZYXJuQ2xhc3NpYyhwbSkgfHwgaXNZYXJuQmVycnkocG0pID8gJ3lhcm4nIDogcG0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHN0ZXBzLnB1c2goe1xuICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgcnVuOiBwcm9qZWN0LnBhY2thZ2UuaW5zdGFsbENvbW1hbmQsXG4gIH0pO1xuICByZXR1cm4gc3RlcHM7XG59XG5cbi8qKlxuICogUnVucyB0aGUgcHJvamVjdCdzIGRlcGxveSB0YXNrLCBwYXNzaW5nIG9uIHRoZSBhcmd1bWVudHMgdGhhdCBmb2xsb3dcbiAqL1xuZnVuY3Rpb24gZGVwbG95Q29tbWFuZChwbTogTm9kZVBhY2thZ2VNYW5hZ2VyKSB7XG4gIGlmIChpc1lhcm5DbGFzc2ljKHBtKSB8fCBpc1lhcm5CZXJyeShwbSkpIHtcbiAgICByZXR1cm4gJ3lhcm4gZGVwbG95JztcbiAgfVxuICBzd2l0Y2ggKHBtKSB7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNOlxuICAgICAgcmV0dXJuICducG0gcnVuIGRlcGxveSAtLSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIC8vIGBwbnBtIGRlcGxveWAgaXMgYSBwbnBtIGNvbW1hbmQsIG5vdCB0aGUgc2NyaXB0XG4gICAgICByZXR1cm4gJ3BucG0gcnVuIGRlcGxveSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnYnVuIHJ1biBkZXBsb3knO1xuICB9XG59XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9naXRodWIvZGVwbG95bWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNkRBLHdDQStHQztBQTVLRCxtQ0FBZ0M7QUFDaEMsMkRBQWtFO0FBQ2xFLHVFQUEyRTtBQUMzRSxzREFBd0U7QUFDeEUscURBQXdFO0FBRXhFLHNDQUFnRDtBQUVoRCxpRkFBaUY7QUFDakYsaUZBQWlGO0FBQ2pGLHVGQUF1RjtBQUN2RixtQ0FBbUM7QUFDdEIsUUFBQSxrQkFBa0IsR0FDN0IsNkRBQTZELENBQUM7QUFDaEUsc0RBQXNEO0FBQ3pDLFFBQUEscUNBQXFDLEdBQ2hELGdGQUFnRixDQUFDO0FBRW5GLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDO0FBa0JqQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVqRCxNQUFNLGdCQUFnQixHQUFHLG9EQUFvRCxDQUFDO0FBRTlFOzs7R0FHRztBQUNILFNBQVMsaUJBQWlCLENBQUMsVUFBaUM7SUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUN4RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3hELEtBQUssTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDeEQs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dWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQlVJTERfQVJUSUZBQ1RfTkFNRSB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciwgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgaXNZYXJuQmVycnksIGlzWWFybkNsYXNzaWMgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQvdXRpbCc7XG5pbXBvcnQgeyBEZXBsb3ltZW50RW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9wcm9qZWN0cy9jZGstdHMvZGVwbG95bWVudC1lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vcmVhZG1lJztcblxuLy8gcHJvamVuIG9ubHkgcGlucyB0aGVzZSBieSB0YWcsIHNvIHRoZXkgYXJlIHBpbm5lZCBieSBTSEEgaGVyZS4gU3RlcHMgcmVmZXJlbmNlXG4vLyB0aGVtIGJ5IGBuYW1lQHNoYWAsIHdoaWNoIHByb2plY3QuZ2l0aHViLmFjdGlvbnMgcmVzb2x2ZXMgd2hlbiB0aGUgd29ya2Zsb3cgaXNcbi8vIHJlbmRlcmVkLCBzbyBgcHJvamVjdC5naXRodWIuYWN0aW9ucy5zZXQoJ2FjdGlvbnMvc2V0dXAtbm9kZScsIC4uLilgIG92ZXJyaWRlcyB0aGVtLlxuLyoqIGFjdGlvbnMvc2V0dXAtbm9kZSBhdCB2Ny4wLjAgKi9cbmV4cG9ydCBjb25zdCBBQ1RJT05TX1NFVFVQX05PREUgPVxuICAnYWN0aW9ucy9zZXR1cC1ub2RlQDgyMDc2Mjc4NjAyNjc0MGM3NmYzNjA4NWIwZWZjNDdhMzFmZTUwMjAnO1xuLyoqIGF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHMgYXQgdjYuMy4wICovXG5leHBvcnQgY29uc3QgQVdTX0FDVElPTlNfQ09ORklHVVJFX0FXU19DUkVERU5USUFMUyA9XG4gICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQGUxMjUzODI0ZTVjMTBmZjlkZjQ2ODc0ZjgxZWQzZWM5MjllMTljZmQnO1xuXG5jb25zdCBERUZBVUxUX1JPTEVfU0VDUkVUID0gJ0FXU19ERVBMT1lNRU5UX1JPTEVfQVJOJztcbmNvbnN0IFJFTEVBU0VfSk9CX0lEID0gJ3JlbGVhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRzT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRlcGxveW1lbnRzOiBBcnJheTxEZXBsb3ltZW50RW52aXJvbm1lbnQ+O1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcmVsZWFzZSB3b3JrZmxvdyBmb3IgdGhlIGRlZmF1bHQgYnJhbmNoXG4gICAqXG4gICAqIEBkZWZhdWx0ICdyZWxlYXNlJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVdvcmtmbG93TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE5vZGUuanMgdmVyc2lvbiB0aGF0IHRoZSByZWxlYXNlIHdvcmtmbG93IHNldHMgdXBcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgcnVubmVyJ3MgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmNvbnN0IGNhcGl0YWxpc2UgPSAodmFsdWU6IHN0cmluZykgPT5cbiAgdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKTtcblxuY29uc3QgU0VDUkVUX1JFRkVSRU5DRSA9IC9cXCRcXHtcXHtcXHMqc2VjcmV0c1xcLihbQS1aYS16X11bQS1aYS16MC05X10qKVxccypcXH1cXH0vZztcblxuLyoqXG4gKiBUaGUgc2VjcmV0cyBhIGRlcGxveW1lbnQgbmVlZHM6IGl0cyByb2xlIEFSTiBzZWNyZXQsIHRoZW4gdGhvc2UgaXRzIGVudlxuICogdmFsdWVzIHJlZmVyZW5jZSwgaW4gb3JkZXIgb2YgYXBwZWFyYW5jZSBhbmQgd2l0aG91dCBkdXBsaWNhdGVzXG4gKi9cbmZ1bmN0aW9uIGRlcGxveW1lbnRTZWNyZXRzKGRlcGxveW1lbnQ6IERlcGxveW1lbnRFbnZpcm9ubWVudCk6IEFycmF5PHN0cmluZz4ge1xuICBjb25zdCBzZWNyZXRzID0gbmV3IFNldChbZGVwbG95bWVudC5yb2xlU2VjcmV0ID8/IERFRkFVTFRfUk9MRV9TRUNSRVRdKTtcbiAgZm9yIChjb25zdCB2YWx1ZSBvZiBPYmplY3QudmFsdWVzKGRlcGxveW1lbnQuZW52ID8/IHt9KSkge1xuICAgIGZvciAoY29uc3QgWywgbmFtZV0gb2YgdmFsdWUubWF0Y2hBbGwoU0VDUkVUX1JFRkVSRU5DRSkpIHtcbiAgICAgIHNlY3JldHMuYWRkKG5hbWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gWy4uLnNlY3JldHNdO1xufVxuXG4vKipcbiAqIEFkZHMgYSBqb2IgcGVyIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgdG8gdGhlIGRlZmF1bHQgYnJhbmNoJ3MgcmVsZWFzZVxuICogd29ya2Zsb3csIGVhY2ggb25lIGRlcGxveWluZyBhZnRlciB0aGUgcmVsZWFzZSBqb2IgYW5kIHRoZSBwcmV2aW91c1xuICogZW52aXJvbm1lbnQncyBqb2JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZERlcGxveW1lbnRzKFxuICBwcm9qZWN0OiBOb2RlUHJvamVjdCxcbiAgb3B0aW9uczogRGVwbG95bWVudHNPcHRpb25zLFxuKSB7XG4gIGNvbnN0IHsgZGVwbG95bWVudHMgfSA9IG9wdGlvbnM7XG4gIGlmIChkZXBsb3ltZW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB3b3JrZmxvd05hbWUgPSBvcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUgPz8gJ3JlbGVhc2UnO1xuICBjb25zdCB3b3JrZmxvdyA9IHByb2plY3QuZ2l0aHViPy50cnlGaW5kV29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgaWYgKCFwcm9qZWN0LnJlbGVhc2UgfHwgIXdvcmtmbG93KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYGRlcGxveW1lbnRzIG5lZWQgYSBcIiR7d29ya2Zsb3dOYW1lfVwiIEdpdEh1YiB3b3JrZmxvdywgc28gdGhlIHByb2plY3QgbXVzdCBoYXZlIHJlbGVhc2UgZW5hYmxlZCBhbmQgR2l0SHViIHdvcmtmbG93cyBlbmFibGVkYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHsgZW52aXJvbm1lbnQgfSBvZiBkZXBsb3ltZW50cykge1xuICAgIGlmICghL15bQS1aYS16MC05Xy1dKyQvLnRlc3QoZW52aXJvbm1lbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBEZXBsb3ltZW50IGVudmlyb25tZW50IFwiJHtlbnZpcm9ubWVudH1cIiBtdXN0IGJlIG5vbi1lbXB0eSBhbmQgb25seSBjb250YWluIGxldHRlcnMsIGRpZ2l0cywgXCJfXCIgYW5kIFwiLVwiLCBhcyBpdCBpcyB1c2VkIGluIHRoZSBqb2IgaWRgLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHNlZW4uaGFzKGVudmlyb25tZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXBsb3ltZW50IGVudmlyb25tZW50IFwiJHtlbnZpcm9ubWVudH1cIiBpcyBkdXBsaWNhdGVkYCk7XG4gICAgfVxuICAgIHNlZW4uYWRkKGVudmlyb25tZW50KTtcbiAgfVxuXG4gIC8vIGRlcGxveSBqb2JzIHJ1biBvbiB0aGUgc2FtZSBydW5uZXJzIGFzIHRoZSByZWxlYXNlIGpvYlxuICBjb25zdCByZWxlYXNlSm9iID0gd29ya2Zsb3cuZ2V0Sm9iKFJFTEVBU0VfSk9CX0lEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYjtcbiAgY29uc3Qgc2V0dXBTdGVwcyA9IHBhY2thZ2VNYW5hZ2VyU2V0dXBTdGVwcyhwcm9qZWN0LCBvcHRpb25zLm5vZGVWZXJzaW9uKTtcbiAgLy8gcm9sZSBzZXNzaW9uIG5hbWVzIG9ubHkgYWxsb3cgW1xcdys9LC5ALV1cbiAgY29uc3Qgcm9sZVNlc3Npb25OYW1lID0gYCR7cHJvamVjdC5uYW1lfS1kZXBsb3lgLnJlcGxhY2UoXG4gICAgL1teXFx3Kz0sLkAtXS9nLFxuICAgICctJyxcbiAgKTtcblxuICBsZXQgcHJldmlvdXNKb2JJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBmb3IgKGNvbnN0IGRlcGxveW1lbnQgb2YgZGVwbG95bWVudHMpIHtcbiAgICBjb25zdCBqb2JJZCA9IGBkZXBsb3lfJHtkZXBsb3ltZW50LmVudmlyb25tZW50fWA7XG4gICAgY29uc3Qgcm9sZVNlY3JldCA9IGRlcGxveW1lbnQucm9sZVNlY3JldCA/PyBERUZBVUxUX1JPTEVfU0VDUkVUO1xuICAgIGNvbnN0IGVudiA9IGRlcGxveW1lbnQuZW52ID8/IHt9O1xuICAgIHdvcmtmbG93LmFkZEpvYihqb2JJZCwge1xuICAgICAgbmFtZTpcbiAgICAgICAgZGVwbG95bWVudC5uYW1lID8/IGBEZXBsb3kgdG8gJHtjYXBpdGFsaXNlKGRlcGxveW1lbnQuZW52aXJvbm1lbnQpfWAsXG4gICAgICBlbnZpcm9ubWVudDogZGVwbG95bWVudC5lbnZpcm9ubWVudCxcbiAgICAgIC8vIHJlbGVhc2UgaXMgbGlzdGVkIGV4cGxpY2l0bHksIGFzIHRoZSBjb25kaXRpb24gcmVhZHMgaXRzIG91dHB1dHNcbiAgICAgIG5lZWRzOiBwcmV2aW91c0pvYklkID8gW1JFTEVBU0VfSk9CX0lELCBwcmV2aW91c0pvYklkXSA6IFtSRUxFQVNFX0pPQl9JRF0sXG4gICAgICBydW5zT246IHJlbGVhc2VKb2IucnVuc09uLFxuICAgICAgcnVuc09uR3JvdXA6IHJlbGVhc2VKb2IucnVuc09uR3JvdXAsXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGlmOiBgbmVlZHMuJHtSRUxFQVNFX0pPQl9JRH0ub3V0cHV0cy50YWdfZXhpc3RzICE9ICd0cnVlJ2AsXG4gICAgICAvLyBUaGUgY29tbWl0IGlzIG5vdCByZWJ1aWx0OiB0aGUgcmVsZWFzZSBqb2IgYWxyZWFkeSBidWlsdCBhbmQgdGVzdGVkIGl0LFxuICAgICAgLy8gYW5kIGNkayBkZXBsb3kgYnVuZGxlcyB0aGUgTGFtYmRhcyBpdHNlbGYgdGhyb3VnaCB0aGUgYnVpbGQgaG9vayBpblxuICAgICAgLy8gY2RrLmpzb24uIFRoZSByZWxlYXNlJ3MgYXJ0aWZhY3QgKHdpdGggcmVsZWFzZXRhZy50eHQpIGlzIHN0aWxsXG4gICAgICAvLyBkb3dubG9hZGVkLCBzbyB0aGUgYXBwIGNhbiByZWFkIHRoZSByZWxlYXNlZCB2ZXJzaW9uLlxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgdXNlczogZ2l0aHViLkFjdGlvblJlZnMuQUNUSU9OU19DSEVDS09VVCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEb3dubG9hZCBidWlsZCBhcnRpZmFjdHMnLFxuICAgICAgICAgIHVzZXM6IGdpdGh1Yi5BY3Rpb25SZWZzLkFDVElPTlNfRE9XTkxPQURfQVJUSUZBQ1QsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgbmFtZTogQlVJTERfQVJUSUZBQ1RfTkFNRSxcbiAgICAgICAgICAgIHBhdGg6IHByb2plY3QucmVsZWFzZS5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjb25maWd1cmUgYXdzIGNyZWRlbnRpYWxzJyxcbiAgICAgICAgICB1c2VzOiBBV1NfQUNUSU9OU19DT05GSUdVUkVfQVdTX0NSRURFTlRJQUxTLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IGBcXCR7eyBzZWNyZXRzLiR7cm9sZVNlY3JldH0gfX1gLFxuICAgICAgICAgICAgJ3JvbGUtc2Vzc2lvbi1uYW1lJzogcm9sZVNlc3Npb25OYW1lLFxuICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiBkZXBsb3ltZW50LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RlcGxveScsXG4gICAgICAgICAgcnVuOiBgJHtkZXBsb3lDb21tYW5kKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcil9IC0tcmVxdWlyZS1hcHByb3ZhbCAke2RlcGxveW1lbnQucmVxdWlyZUFwcHJvdmFsID8/ICduZXZlcid9YCxcbiAgICAgICAgICAuLi4oT2JqZWN0LmtleXMoZW52KS5sZW5ndGggPiAwICYmIHsgZW52IH0pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBwcmV2aW91c0pvYklkID0gam9iSWQ7XG4gIH1cblxuICBSZWFkbWUub2YocHJvamVjdCk/LmFkZFNlY3Rpb24oXG4gICAgJ0RlcGxveW1lbnQnLFxuICAgIFtcbiAgICAgICdBZnRlciBlYWNoIHJlbGVhc2UsIHRoZSByZWxlYXNlIHdvcmtmbG93IGRlcGxveXMgdG8gdGhlc2UgR2l0SHViIGVudmlyb25tZW50cyBpbiBvcmRlciwgZWFjaCBhZnRlciB0aGUgcHJldmlvdXMgb25lIHN1Y2NlZWRzOicsXG4gICAgICAnJyxcbiAgICAgICd8IEVudmlyb25tZW50IHwgUmVnaW9uIHwgU2VjcmV0cyB8JyxcbiAgICAgICd8IC0tLS0tLS0tLS0tIHwgLS0tLS0tIHwgLS0tLS0tLSB8JyxcbiAgICAgIC4uLmRlcGxveW1lbnRzLm1hcChcbiAgICAgICAgKGQpID0+XG4gICAgICAgICAgYHwgJHtkLmVudmlyb25tZW50fSB8ICR7ZC5yZWdpb259IHwgJHtkZXBsb3ltZW50U2VjcmV0cyhkKVxuICAgICAgICAgICAgLm1hcCgobmFtZSkgPT4gYFxcYCR7bmFtZX1cXGBgKVxuICAgICAgICAgICAgLmpvaW4oJywgJyl9IHxgLFxuICAgICAgKSxcbiAgICAgICcnLFxuICAgICAgJ0VhY2ggZW52aXJvbm1lbnQgbmVlZHMgdGhlc2Ugc2VjcmV0cyBzZXQsIHRoZSBmaXJzdCBiZWluZyB0aGUgQVJOIG9mIGEgcm9sZSB0aGF0IHRydXN0cyBHaXRIdWJcXCdzIE9JREMgcHJvdmlkZXIuJyxcbiAgICBdLmpvaW4oJ1xcbicpLFxuICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICk7XG59XG5cbi8qKlxuICogU3RlcHMgdGhhdCBpbnN0YWxsIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBtaXJyb3JpbmcgcHJvamVuJ3Mgb3duXG4gKiB3b3JrZmxvdyBzZXR1cCBidXQgd2l0aCBzZXR1cC1ub2RlIHBpbm5lZCBieSBTSEFcbiAqL1xuZnVuY3Rpb24gcGFja2FnZU1hbmFnZXJTZXR1cFN0ZXBzKFxuICBwcm9qZWN0OiBOb2RlUHJvamVjdCxcbiAgbm9kZVZlcnNpb24/OiBzdHJpbmcsXG4pOiBBcnJheTxKb2JTdGVwPiB7XG4gIGNvbnN0IHBtID0gcHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyO1xuICBjb25zdCBzdGVwcyA9IG5ldyBBcnJheTxKb2JTdGVwPigpO1xuICBpZiAocG0gPT09IE5vZGVQYWNrYWdlTWFuYWdlci5CVU4pIHtcbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdTZXR1cCBidW4nLFxuICAgICAgdXNlczogZ2l0aHViLkFjdGlvblJlZnMuT1ZFTl9TSF9TRVRVUF9CVU4sXG4gICAgICB3aXRoOiB7ICdidW4tdmVyc2lvbic6IHByb2plY3QucGFja2FnZS5idW5WZXJzaW9uIH0sXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGlzWWFybkJlcnJ5KHBtKSkge1xuICAgICAgc3RlcHMucHVzaCh7IG5hbWU6ICdFbmFibGUgY29yZXBhY2snLCBydW46ICdjb3JlcGFjayBlbmFibGUnIH0pO1xuICAgIH0gZWxzZSBpZiAocG0gPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNKSB7XG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1NldHVwIHBucG0nLFxuICAgICAgICB1c2VzOiBnaXRodWIuQWN0aW9uUmVmcy5QTlBNX0FDVElPTl9TRVRVUCxcbiAgICAgICAgd2l0aDogeyB2ZXJzaW9uOiBwcm9qZWN0LnBhY2thZ2UucG5wbVZlcnNpb24gfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgIHVzZXM6IEFDVElPTlNfU0VUVVBfTk9ERSxcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgLi4uKG5vZGVWZXJzaW9uICYmIHsgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uIH0pLFxuICAgICAgICBjYWNoZTogaXNZYXJuQ2xhc3NpYyhwbSkgfHwgaXNZYXJuQmVycnkocG0pID8gJ3lhcm4nIDogcG0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHN0ZXBzLnB1c2goe1xuICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgcnVuOiBwcm9qZWN0LnBhY2thZ2UuaW5zdGFsbENvbW1hbmQsXG4gIH0pO1xuICByZXR1cm4gc3RlcHM7XG59XG5cbi8qKlxuICogUnVucyB0aGUgcHJvamVjdCdzIGRlcGxveSB0YXNrLCBwYXNzaW5nIG9uIHRoZSBhcmd1bWVudHMgdGhhdCBmb2xsb3dcbiAqL1xuZnVuY3Rpb24gZGVwbG95Q29tbWFuZChwbTogTm9kZVBhY2thZ2VNYW5hZ2VyKSB7XG4gIGlmIChpc1lhcm5DbGFzc2ljKHBtKSB8fCBpc1lhcm5CZXJyeShwbSkpIHtcbiAgICByZXR1cm4gJ3lhcm4gZGVwbG95JztcbiAgfVxuICBzd2l0Y2ggKHBtKSB7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNOlxuICAgICAgcmV0dXJuICducG0gcnVuIGRlcGxveSAtLSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIC8vIGBwbnBtIGRlcGxveWAgaXMgYSBwbnBtIGNvbW1hbmQsIG5vdCB0aGUgc2NyaXB0XG4gICAgICByZXR1cm4gJ3BucG0gcnVuIGRlcGxveSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnYnVuIHJ1biBkZXBsb3knO1xuICB9XG59XG4iXX0=
@@ -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.1.1" };
6
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Section", version: "5.3.0" };
7
7
  options;
8
8
  constructor(options) {
9
9
  this.options = options;
@@ -1,5 +1,24 @@
1
1
  import { Project } from 'projen';
2
2
  /**
3
- * Commands that install a fresh checkout's dependencies and build it
3
+ * Options for the "Getting Started" README section
4
4
  */
5
- export declare function gettingStartedCommands(project: Project): string;
5
+ export interface GettingStartedOptions {
6
+ /**
7
+ * The Node.js version the project is built with, such as a node project's
8
+ * `workflowNodeVersion`, which is only visible to the project itself.
9
+ *
10
+ * @default - the project's `minNodeVersion`
11
+ */
12
+ readonly nodeVersion?: string;
13
+ /**
14
+ * Prerequisites specific to the project type, listed after the tools
15
+ *
16
+ * @default - none
17
+ */
18
+ readonly prerequisites?: string[];
19
+ }
20
+ /**
21
+ * The prerequisites and commands to install a fresh checkout's dependencies
22
+ * and build it
23
+ */
24
+ export declare function gettingStartedSection(project: Project, options?: GettingStartedOptions): string;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gettingStartedCommands = gettingStartedCommands;
3
+ exports.gettingStartedSection = gettingStartedSection;
4
4
  const javascript_1 = require("projen/lib/javascript");
5
+ const python_1 = require("projen/lib/python");
5
6
  const YARN_PACKAGE_MANAGERS = [
6
7
  javascript_1.NodePackageManager.YARN,
7
8
  javascript_1.NodePackageManager.YARN_CLASSIC,
@@ -18,10 +19,56 @@ function installCommand(project) {
18
19
  ? 'yarn install'
19
20
  : `${packageManager} install`;
20
21
  }
22
+ function nodePrerequisite(nodeVersion) {
23
+ // versions such as `lts/*` have no major to show
24
+ const major = /\d+/.exec(nodeVersion ?? '')?.[0];
25
+ return major ? `Node.js ${major}` : 'a current Node.js LTS release';
26
+ }
27
+ function packageManagerPrerequisite(project) {
28
+ const { packageManager, pnpmVersion, yarnVersion } = project.package;
29
+ switch (packageManager) {
30
+ case javascript_1.NodePackageManager.YARN:
31
+ case javascript_1.NodePackageManager.YARN_CLASSIC:
32
+ return 'Yarn 1 (classic)';
33
+ case javascript_1.NodePackageManager.YARN2:
34
+ case javascript_1.NodePackageManager.YARN_BERRY:
35
+ return yarnVersion ? `Yarn ${yarnVersion} (Berry)` : 'Yarn (Berry)';
36
+ case javascript_1.NodePackageManager.PNPM:
37
+ return pnpmVersion ? `pnpm ${pnpmVersion}` : 'pnpm';
38
+ case javascript_1.NodePackageManager.BUN:
39
+ return 'Bun';
40
+ default:
41
+ return 'npm';
42
+ }
43
+ }
44
+ function prerequisites(project, options) {
45
+ if (!(project instanceof javascript_1.NodeProject)) {
46
+ // non-node projects, such as python, still need Node.js to run projen
47
+ return [
48
+ ...(project instanceof python_1.PythonProject ? ['Python 3'] : []),
49
+ `${nodePrerequisite(options.nodeVersion)}, to run projen`,
50
+ ...(options.prerequisites ?? []),
51
+ ];
52
+ }
53
+ return [
54
+ nodePrerequisite(options.nodeVersion ?? project.minNodeVersion),
55
+ packageManagerPrerequisite(project),
56
+ ...(options.prerequisites ?? []),
57
+ ];
58
+ }
21
59
  /**
22
- * Commands that install a fresh checkout's dependencies and build it
60
+ * The prerequisites and commands to install a fresh checkout's dependencies
61
+ * and build it
23
62
  */
24
- function gettingStartedCommands(project) {
25
- return ['```sh', installCommand(project), 'npx projen build', '```'].join('\n');
63
+ function gettingStartedSection(project, options = {}) {
64
+ return [
65
+ 'Prerequisites:',
66
+ ...prerequisites(project, options).map((prerequisite) => `* ${prerequisite}`),
67
+ '',
68
+ '```sh',
69
+ installCommand(project),
70
+ 'npx projen build',
71
+ '```',
72
+ ].join('\n');
26
73
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0dGluZy1zdGFydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdCQSx3REFJQztBQTNCRCxzREFBd0U7QUFFeEUsTUFBTSxxQkFBcUIsR0FBRztJQUM1QiwrQkFBa0IsQ0FBQyxJQUFJO0lBQ3ZCLCtCQUFrQixDQUFDLFlBQVk7SUFDL0IsK0JBQWtCLENBQUMsS0FBSztJQUN4QiwrQkFBa0IsQ0FBQyxVQUFVO0NBQzlCLENBQUM7QUFFRixTQUFTLGNBQWMsQ0FBQyxPQUFnQjtJQUN0QyxJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksd0JBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsdUZBQXVGO1FBQ3ZGLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ3RELE9BQU8scUJBQXFCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUNuRCxDQUFDLENBQUMsY0FBYztRQUNoQixDQUFDLENBQUMsR0FBRyxjQUFjLFVBQVUsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxPQUFnQjtJQUNyRCxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyLCBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbmNvbnN0IFlBUk5fUEFDS0FHRV9NQU5BR0VSUyA9IFtcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4sXG4gIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0NMQVNTSUMsXG4gIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOMixcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQkVSUlksXG5dO1xuXG5mdW5jdGlvbiBpbnN0YWxsQ29tbWFuZChwcm9qZWN0OiBQcm9qZWN0KTogc3RyaW5nIHtcbiAgaWYgKCEocHJvamVjdCBpbnN0YW5jZW9mIE5vZGVQcm9qZWN0KSkge1xuICAgIC8vIHByb2plbidzIGluc3RhbGwgdGFzayBpbnN0YWxscyB0aGUgZGVwZW5kZW5jaWVzIG9mIG5vbi1ub2RlIHByb2plY3RzLCBzdWNoIGFzIHB5dGhvblxuICAgIHJldHVybiAnbnB4IHByb2plbiBpbnN0YWxsJztcbiAgfVxuICBjb25zdCBwYWNrYWdlTWFuYWdlciA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcjtcbiAgcmV0dXJuIFlBUk5fUEFDS0FHRV9NQU5BR0VSUy5pbmNsdWRlcyhwYWNrYWdlTWFuYWdlcilcbiAgICA/ICd5YXJuIGluc3RhbGwnXG4gICAgOiBgJHtwYWNrYWdlTWFuYWdlcn0gaW5zdGFsbGA7XG59XG5cbi8qKlxuICogQ29tbWFuZHMgdGhhdCBpbnN0YWxsIGEgZnJlc2ggY2hlY2tvdXQncyBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIGl0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXR0aW5nU3RhcnRlZENvbW1hbmRzKHByb2plY3Q6IFByb2plY3QpOiBzdHJpbmcge1xuICByZXR1cm4gWydgYGBzaCcsIGluc3RhbGxDb21tYW5kKHByb2plY3QpLCAnbnB4IHByb2plbiBidWlsZCcsICdgYGAnXS5qb2luKFxuICAgICdcXG4nLFxuICApO1xufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0dGluZy1zdGFydGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlGQSxzREFhQztBQXJHRCxzREFBd0U7QUFDeEUsOENBQWtEO0FBRWxELE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsK0JBQWtCLENBQUMsSUFBSTtJQUN2QiwrQkFBa0IsQ0FBQyxZQUFZO0lBQy9CLCtCQUFrQixDQUFDLEtBQUs7SUFDeEIsK0JBQWtCLENBQUMsVUFBVTtDQUM5QixDQUFDO0FBc0JGLFNBQVMsY0FBYyxDQUFDLE9BQWdCO0lBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSx3QkFBVyxDQUFDLEVBQUUsQ0FBQztRQUN0Qyx1RkFBdUY7UUFDdkYsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDdEQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxjQUFjO1FBQ2hCLENBQUMsQ0FBQyxHQUFHLGNBQWMsVUFBVSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFdBQW9CO0lBQzVDLGlEQUFpRDtJQUNqRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQztBQUN0RSxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxPQUFvQjtJQUN0RCxNQUFNLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3JFLFFBQVEsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSywrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxZQUFZO1lBQ2xDLE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsS0FBSywrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDOUIsS0FBSywrQkFBa0IsQ0FBQyxVQUFVO1lBQ2hDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLFdBQVcsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDdEUsS0FBSywrQkFBa0IsQ0FBQyxJQUFJO1lBQzFCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEQsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1FBQ2Y7WUFDRSxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixPQUFnQixFQUNoQixPQUE4QjtJQUU5QixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksd0JBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsc0VBQXNFO1FBQ3RFLE9BQU87WUFDTCxHQUFHLENBQUMsT0FBTyxZQUFZLHNCQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RCxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCO1lBQ3pELEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztTQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87UUFDTCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDL0QsMEJBQTBCLENBQUMsT0FBTyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxPQUFnQixFQUNoQixVQUFpQyxFQUFFO0lBRW5DLE9BQU87UUFDTCxnQkFBZ0I7UUFDaEIsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUM3RSxFQUFFO1FBQ0YsT0FBTztRQUNQLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDdkIsa0JBQWtCO1FBQ2xCLEtBQUs7S0FDTixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciwgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvcHl0aG9uJztcblxuY29uc3QgWUFSTl9QQUNLQUdFX01BTkFHRVJTID0gW1xuICBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTixcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQ0xBU1NJQyxcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yLFxuICBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWSxcbl07XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIFwiR2V0dGluZyBTdGFydGVkXCIgUkVBRE1FIHNlY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXR0aW5nU3RhcnRlZE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIE5vZGUuanMgdmVyc2lvbiB0aGUgcHJvamVjdCBpcyBidWlsdCB3aXRoLCBzdWNoIGFzIGEgbm9kZSBwcm9qZWN0J3NcbiAgICogYHdvcmtmbG93Tm9kZVZlcnNpb25gLCB3aGljaCBpcyBvbmx5IHZpc2libGUgdG8gdGhlIHByb2plY3QgaXRzZWxmLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBwcm9qZWN0J3MgYG1pbk5vZGVWZXJzaW9uYFxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByZXJlcXVpc2l0ZXMgc3BlY2lmaWMgdG8gdGhlIHByb2plY3QgdHlwZSwgbGlzdGVkIGFmdGVyIHRoZSB0b29sc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHByZXJlcXVpc2l0ZXM/OiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gaW5zdGFsbENvbW1hbmQocHJvamVjdDogUHJvamVjdCk6IHN0cmluZyB7XG4gIGlmICghKHByb2plY3QgaW5zdGFuY2VvZiBOb2RlUHJvamVjdCkpIHtcbiAgICAvLyBwcm9qZW4ncyBpbnN0YWxsIHRhc2sgaW5zdGFsbHMgdGhlIGRlcGVuZGVuY2llcyBvZiBub24tbm9kZSBwcm9qZWN0cywgc3VjaCBhcyBweXRob25cbiAgICByZXR1cm4gJ25weCBwcm9qZW4gaW5zdGFsbCc7XG4gIH1cbiAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXI7XG4gIHJldHVybiBZQVJOX1BBQ0tBR0VfTUFOQUdFUlMuaW5jbHVkZXMocGFja2FnZU1hbmFnZXIpXG4gICAgPyAneWFybiBpbnN0YWxsJ1xuICAgIDogYCR7cGFja2FnZU1hbmFnZXJ9IGluc3RhbGxgO1xufVxuXG5mdW5jdGlvbiBub2RlUHJlcmVxdWlzaXRlKG5vZGVWZXJzaW9uPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gdmVyc2lvbnMgc3VjaCBhcyBgbHRzLypgIGhhdmUgbm8gbWFqb3IgdG8gc2hvd1xuICBjb25zdCBtYWpvciA9IC9cXGQrLy5leGVjKG5vZGVWZXJzaW9uID8/ICcnKT8uWzBdO1xuICByZXR1cm4gbWFqb3IgPyBgTm9kZS5qcyAke21ham9yfWAgOiAnYSBjdXJyZW50IE5vZGUuanMgTFRTIHJlbGVhc2UnO1xufVxuXG5mdW5jdGlvbiBwYWNrYWdlTWFuYWdlclByZXJlcXVpc2l0ZShwcm9qZWN0OiBOb2RlUHJvamVjdCk6IHN0cmluZyB7XG4gIGNvbnN0IHsgcGFja2FnZU1hbmFnZXIsIHBucG1WZXJzaW9uLCB5YXJuVmVyc2lvbiB9ID0gcHJvamVjdC5wYWNrYWdlO1xuICBzd2l0Y2ggKHBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjpcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0NMQVNTSUM6XG4gICAgICByZXR1cm4gJ1lhcm4gMSAoY2xhc3NpYyknO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yOlxuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQkVSUlk6XG4gICAgICByZXR1cm4geWFyblZlcnNpb24gPyBgWWFybiAke3lhcm5WZXJzaW9ufSAoQmVycnkpYCA6ICdZYXJuIChCZXJyeSknO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICByZXR1cm4gcG5wbVZlcnNpb24gPyBgcG5wbSAke3BucG1WZXJzaW9ufWAgOiAncG5wbSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgcmV0dXJuICdCdW4nO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ25wbSc7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcmVxdWlzaXRlcyhcbiAgcHJvamVjdDogUHJvamVjdCxcbiAgb3B0aW9uczogR2V0dGluZ1N0YXJ0ZWRPcHRpb25zLFxuKTogc3RyaW5nW10ge1xuICBpZiAoIShwcm9qZWN0IGluc3RhbmNlb2YgTm9kZVByb2plY3QpKSB7XG4gICAgLy8gbm9uLW5vZGUgcHJvamVjdHMsIHN1Y2ggYXMgcHl0aG9uLCBzdGlsbCBuZWVkIE5vZGUuanMgdG8gcnVuIHByb2plblxuICAgIHJldHVybiBbXG4gICAgICAuLi4ocHJvamVjdCBpbnN0YW5jZW9mIFB5dGhvblByb2plY3QgPyBbJ1B5dGhvbiAzJ10gOiBbXSksXG4gICAgICBgJHtub2RlUHJlcmVxdWlzaXRlKG9wdGlvbnMubm9kZVZlcnNpb24pfSwgdG8gcnVuIHByb2plbmAsXG4gICAgICAuLi4ob3B0aW9ucy5wcmVyZXF1aXNpdGVzID8/IFtdKSxcbiAgICBdO1xuICB9XG4gIHJldHVybiBbXG4gICAgbm9kZVByZXJlcXVpc2l0ZShvcHRpb25zLm5vZGVWZXJzaW9uID8/IHByb2plY3QubWluTm9kZVZlcnNpb24pLFxuICAgIHBhY2thZ2VNYW5hZ2VyUHJlcmVxdWlzaXRlKHByb2plY3QpLFxuICAgIC4uLihvcHRpb25zLnByZXJlcXVpc2l0ZXMgPz8gW10pLFxuICBdO1xufVxuXG4vKipcbiAqIFRoZSBwcmVyZXF1aXNpdGVzIGFuZCBjb21tYW5kcyB0byBpbnN0YWxsIGEgZnJlc2ggY2hlY2tvdXQncyBkZXBlbmRlbmNpZXNcbiAqIGFuZCBidWlsZCBpdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uKFxuICBwcm9qZWN0OiBQcm9qZWN0LFxuICBvcHRpb25zOiBHZXR0aW5nU3RhcnRlZE9wdGlvbnMgPSB7fSxcbik6IHN0cmluZyB7XG4gIHJldHVybiBbXG4gICAgJ1ByZXJlcXVpc2l0ZXM6JyxcbiAgICAuLi5wcmVyZXF1aXNpdGVzKHByb2plY3QsIG9wdGlvbnMpLm1hcCgocHJlcmVxdWlzaXRlKSA9PiBgKiAke3ByZXJlcXVpc2l0ZX1gKSxcbiAgICAnJyxcbiAgICAnYGBgc2gnLFxuICAgIGluc3RhbGxDb21tYW5kKHByb2plY3QpLFxuICAgICducHggcHJvamVuIGJ1aWxkJyxcbiAgICAnYGBgJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cbiJdfQ==
@@ -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.1.1" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.ReadmeOrder", version: "5.3.0" };
13
13
  /**
14
14
  * Sections a reader needs first, such as getting started
15
15
  */
@@ -30,7 +30,7 @@ class ReadmeOrder {
30
30
  }
31
31
  exports.ReadmeOrder = ReadmeOrder;
32
32
  class Readme extends projen_1.FileBase {
33
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Readme", version: "5.1.1" };
33
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Readme", version: "5.3.0" };
34
34
  /**
35
35
  * The README of a project, if it has one
36
36
  */
@@ -61,7 +61,7 @@ function getOptions(options) {
61
61
  * @pjid cdk-typescript-app
62
62
  */
63
63
  class CdkTypeScriptApp extends awscdk_1.AwsCdkTypeScriptApp {
64
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.CdkTypeScriptApp", version: "5.1.1" };
64
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.CdkTypeScriptApp", version: "5.3.0" };
65
65
  readme;
66
66
  constructor(options) {
67
67
  const mergedOptions = getOptions(options);
@@ -73,9 +73,16 @@ class CdkTypeScriptApp extends awscdk_1.AwsCdkTypeScriptApp {
73
73
  this.readme = new readme_1.Readme(this, {
74
74
  description: mergedOptions.readme?.description,
75
75
  });
76
- this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedCommands)(this), {
77
- order: readme_1.ReadmeOrder.INTRODUCTION,
78
- });
76
+ // integ:debug only compares snapshots, so needs no credentials
77
+ const deployingTasks = mergedOptions.experimentalIntegRunner
78
+ ? ' and for the integration test tasks that deploy (`integ:update`, `integ:force`, `integ:watch`)'
79
+ : '';
80
+ this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedSection)(this, {
81
+ nodeVersion: this.nodeVersion,
82
+ prerequisites: [
83
+ `AWS credentials for the target account, needed to deploy${deployingTasks}`,
84
+ ],
85
+ }), { order: readme_1.ReadmeOrder.INTRODUCTION });
79
86
  this.readme.addSection('CDK', `Bootstrap each AWS account and region once:
80
87
 
81
88
  \`\`\`sh
@@ -165,4 +172,4 @@ integ-runner ignores changes to asset hashes, so a test whose only change is Lam
165
172
  exports.CdkTypeScriptApp = CdkTypeScriptApp;
166
173
  __exportStar(require("./cdk-typescript-app-options"), exports);
167
174
  __exportStar(require("./deployment-environment"), exports);
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCxxRUFBcUU7QUFDckUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWlGO0FBQ2pGLDZEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRXRELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkQsU0FBUyxVQUFVLENBQUMsT0FBZ0M7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDckQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuQywyRUFBMkU7UUFDM0UsOERBQThEO1FBQzlELE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tB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QWlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsVUFBVSxFQUNoRSx1QkFBYyxDQUFDLEtBQUssQ0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzFCLFdBQVcsRUFDVCxpRkFBaUY7WUFDbkYsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUN2RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMxQixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7WUFDdkUsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUIsV0FBVyxFQUNULHNFQUFzRTtZQUN4RSxRQUFRLEVBQUU7Z0JBQ1IsY0FBYztnQkFDZCxJQUFJO2dCQUNKLFlBQVk7Z0JBQ1osWUFBWTtnQkFDWixLQUFLO2dCQUNMLG9CQUFvQjthQUNyQjtZQUNELFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixtQkFBbUIsRUFDbkI7Ozs7Ozs7Ozs7O0lBV0YsWUFBWSxxQkFBcUIsa0JBQWtCLFlBQVksaUJBQWlCLDJNQUEyTSxpQkFBaUI7O2tOQUU5RixFQUM1TSxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUEzSEgsNENBNEhDO0FBRUQsK0RBQTZDO0FBQzdDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlcGVuZGVuY3lUeXBlLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHtcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMsXG4gIExhbWJkYVJ1bnRpbWUsXG59IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IENka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHsgYWRkRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9kZXBsb3ltZW50cyc7XG5pbXBvcnQge1xuICBhdXRvTWVyZ2VPcHRpb25zLFxuICBjb25maWd1cmVNZXJnaWZ5LFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5JztcbmltcG9ydCB7IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvcHVsbC1yZXF1ZXN0LXRlbXBsYXRlJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZSc7XG5pbXBvcnQgeyBnZXR0aW5nU3RhcnRlZENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUvZ2V0dGluZy1zdGFydGVkJztcbmltcG9ydCB7IG1lcmdlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLW9wdGlvbnMnO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIGBAYXdzLWNkay9pbnRlZy1ydW5uZXJgIHBpbm5lZCB3aGVuIGBleHBlcmltZW50YWxJbnRlZ1J1bm5lcmAgaXMgZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5URUdfUlVOTkVSX1ZFUlNJT04gPSAnMi4yMDUuNic7XG5cbmNvbnN0IElOVEVHX1JVTk5FUiA9ICdAYXdzLWNkay9pbnRlZy1ydW5uZXInO1xuY29uc3QgSU5URUdfVEVTVFNfQUxQSEEgPSAnQGF3cy1jZGsvaW50ZWctdGVzdHMtYWxwaGEnO1xuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IENka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBuYW1lLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgZ2l0aWdub3JlOiBbJy5ucG1yYycsICcudnNjb2RlJ10sXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgIC8vIGF1dGhlbnRpY2F0ZSBhcyB0aGUgR2l0SHViIEFwcCwgc28gbWVyZ2lmeSBjYW4gYXBwcm92ZSB1cGdyYWRlIHB1bGwgcmVxdWVzdHNcbiAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoe30pLFxuICAgIGxhbWJkYU9wdGlvbnM6IHsgcnVudGltZTogTGFtYmRhUnVudGltZS5OT0RFSlNfMjRfWCB9LFxuICAgIGplc3RPcHRpb25zOiB7IGplc3RWZXJzaW9uOiAnXjMwJyB9LFxuICAgIC8vIG1hdGNoIHRoZSBsYW1iZGEgcnVudGltZSwgdW5sZXNzIGRlcml2ZWQgZnJvbSBtaW5Ob2RlVmVyc2lvbjsgYSBjb25zdW1lclxuICAgIC8vIEB0eXBlcy9ub2RlIGluIGRldkRlcHMgaXMgYWRkZWQgbGF0ZXIsIHNvIHJlcGxhY2VzIHRoaXMgb25lXG4gICAgZGV2RGVwczogb3B0aW9ucy5taW5Ob2RlVmVyc2lvbiA/IFtdIDogWydAdHlwZXMvbm9kZUBeMjQnXSxcbiAgICAvLyB0cy1qZXN0IG9ubHkgcmVwb3J0cyB0eXBlIGVycm9ycyBpbiB0aGUgZmlsZXMgYSB0ZXN0IHJ1biBsb2Fkcywgc28gdHlwZS1jaGVjayB0aGUgd2hvbGUgc3VpdGUgZmlyc3RcbiAgICB0eXBlY2hlY2tUZXN0czogdHJ1ZSxcbiAgfSBzYXRpc2ZpZXMgUGFydGlhbDxDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucz47XG5cbiAgcmV0dXJuIG1lcmdlT3B0aW9ucyhkZWZhdWx0cywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogQSBDREsgYXBwbGljYXRpb24gaW4gVHlwZVNjcmlwdFxuICpcbiAqIERlZmF1bHRzIHRvIHRoZSBOb2RlLmpzIDI0IExhbWJkYSBydW50aW1lIChgbGFtYmRhT3B0aW9ucy5ydW50aW1lYCkgd2l0aFxuICogbWF0Y2hpbmcgYEB0eXBlcy9ub2RlYCwgYW5kIEplc3QgMzAgKGBqZXN0T3B0aW9ucy5qZXN0VmVyc2lvbmApLlxuICpcbiAqIEBwamlkIGNkay10eXBlc2NyaXB0LWFwcFxuICovXG5leHBvcnQgY2xhc3MgQ2RrVHlwZVNjcmlwdEFwcCBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucykge1xuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ubWVyZ2VkT3B0aW9ucyxcbiAgICAgIGF1dG9NZXJnZU9wdGlvbnM6IGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgfSBhcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oJ0dldHRpbmcgU3RhcnRlZCcsIGdldHRpbmdTdGFydGVkQ29tbWFuZHModGhpcyksIHtcbiAgICAgIG9yZGVyOiBSZWFkbWVPcmRlci5JTlRST0RVQ1RJT04sXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdDREsnLFxuICAgICAgYEJvb3RzdHJhcCBlYWNoIEFXUyBhY2NvdW50IGFuZCByZWdpb24gb25jZTpcblxuXFxgXFxgXFxgc2hcbm5weCBjZGsgYm9vdHN0cmFwXG5cXGBcXGBcXGBcblxuRGVwbG95IHRoZSBhcHA6XG5cblxcYFxcYFxcYHNoXG5ucHggcHJvamVuIGRlcGxveVxuXFxgXFxgXFxgXG5cbklmIHRoZSBhcHAgaGFzIG1vcmUgdGhhbiBvbmUgc3RhY2ssIG5hbWUgdGhlIHN0YWNrcyB0byBkZXBsb3kgb3IgcGFzcyBcXGAtLWFsbFxcYCwgYXMgaW4gXFxgbnB4IHByb2plbiBkZXBsb3kgLS1hbGxcXGAuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgICBpZiAobWVyZ2VkT3B0aW9ucy5leHBlcmltZW50YWxJbnRlZ1J1bm5lcikge1xuICAgICAgdGhpcy5jb25maWd1cmVJbnRlZ1J1bm5lcihcbiAgICAgICAgbWVyZ2VkT3B0aW9ucy5pbnRlZ1J1bm5lclZlcnNpb24gPz8gREVGQVVMVF9JTlRFR19SVU5ORVJfVkVSU0lPTixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICgobWVyZ2VkT3B0aW9ucy5jb2RlcWwgPz8gdHJ1ZSkgJiYgdGhpcy5naXRodWI/LndvcmtmbG93c0VuYWJsZWQpIHtcbiAgICAgIG5ldyBDb2RlUWwodGhpcy5naXRodWIsIHtcbiAgICAgICAgLy8gaW50ZWctcnVubmVyIHNuYXBzaG90IGFzc2V0cyBhcmUgYnVuZGxlcyBvZiBkZXBlbmRlbmNpZXMsIHJlbmFtZWQgb24gZXZlcnkgdXBkYXRlXG4gICAgICAgIHBhdGhzSWdub3JlOiBtZXJnZWRPcHRpb25zLmNvZGVxbFBhdGhzSWdub3JlID8/IFtcbiAgICAgICAgICBDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFMsXG4gICAgICAgIF0sXG4gICAgICAgIGJyYW5jaGVzOiBbbWVyZ2VkT3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaF0sXG4gICAgICAgIGxhbmd1YWdlczogWydqYXZhc2NyaXB0LXR5cGVzY3JpcHQnLCAnYWN0aW9ucyddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGFkZERlcGxveW1lbnRzKHRoaXMsIHtcbiAgICAgIGRlcGxveW1lbnRzOiBtZXJnZWRPcHRpb25zLmRlcGxveW1lbnRzID8/IFtdLFxuICAgICAgbm9kZVZlcnNpb246IHRoaXMubm9kZVZlcnNpb24sXG4gICAgICByZWxlYXNlV29ya2Zsb3dOYW1lOiBtZXJnZWRPcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUsXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuYXV0b01lcmdlKSB7XG4gICAgICBjb25maWd1cmVNZXJnaWZ5KHRoaXMsIHtcbiAgICAgICAgYXBwcm92ZWRSZXZpZXdzOiBtZXJnZWRPcHRpb25zLmF1dG9NZXJnZU9wdGlvbnM/LmFwcHJvdmVkUmV2aWV3cyxcbiAgICAgICAgdHJ1c3RlZEF1dGhvcnM6IG1lcmdlZE9wdGlvbnMudHJ1c3RlZEF1dGhvcnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGlucyB0aGUgaW50ZWdyYXRpb24gdGVzdCBkZXBlbmRlbmNpZXMgdGhhdCBwcm9qZW4gYWRkcyBhdCBgbGF0ZXN0YCwgYXNcbiAgICogZWFjaCBgQGF3cy1jZGsvaW50ZWctdGVzdHMtYWxwaGFgIHJlbGVhc2UgcmV3cml0ZXMgdGhlIGJ1bmRsZWQgYXNzZXJ0aW9uXG4gICAqIGNvZGUgaW4gdGhlIHNuYXBzaG90cyBhbmQgZHJpZnRzIGZyb20gYGF3cy1jZGstbGliYC5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlSW50ZWdSdW5uZXIoaW50ZWdSdW5uZXJWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShJTlRFR19SVU5ORVIsIERlcGVuZGVuY3lUeXBlLkRFVkVOVik7XG4gICAgdGhpcy5kZXBzLnJlbW92ZURlcGVuZGVuY3koSU5URUdfVEVTVFNfQUxQSEEsIERlcGVuZGVuY3lUeXBlLkRFVkVOVik7XG4gICAgdGhpcy5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHtJTlRFR19SVU5ORVJ9QCR7aW50ZWdSdW5uZXJWZXJzaW9ufWAsXG4gICAgICBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICApO1xuICAgIHRoaXMuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYCR7SU5URUdfVEVTVFNfQUxQSEF9QCR7dGhpcy5jZGtEZXBzLmNka01pbmltdW1WZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgICk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOmZvcmNlJywge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUnVuIGludGVncmF0aW9uIHNuYXBzaG90IHRlc3RzLCBmb3JjaW5nIHRlc3RzIHRvIHJ1biBldmVuIGlmIHRoZXJlJ3Mgbm8gY2hhbmdlc1wiLFxuICAgICAgZXhlY0FyZ3M6IFsnaW50ZWctcnVubmVyJywgJyRAJywgJy0tbGFuZ3VhZ2UnLCAndHlwZXNjcmlwdCcsICctLWZvcmNlJ10sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOndhdGNoJywge1xuICAgICAgZGVzY3JpcHRpb246ICdXYXRjaCB0aGUgaW50ZWdyYXRpb24gc25hcHNob3QgdGVzdHMnLFxuICAgICAgZXhlY0FyZ3M6IFsnaW50ZWctcnVubmVyJywgJyRAJywgJy0tbGFuZ3VhZ2UnLCAndHlwZXNjcmlwdCcsICctLXdhdGNoJ10sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOmRlYnVnJywge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdSdW4gaW50ZWdyYXRpb24gdGVzdHMgd2l0aCB2ZXJib3NlIGRpYWdub3N0aWNzIGFuZCBmYWlsdXJlIGFydGlmYWN0cycsXG4gICAgICBleGVjQXJnczogW1xuICAgICAgICAnaW50ZWctcnVubmVyJyxcbiAgICAgICAgJyRAJyxcbiAgICAgICAgJy0tbGFuZ3VhZ2UnLFxuICAgICAgICAndHlwZXNjcmlwdCcsXG4gICAgICAgICctdnYnLFxuICAgICAgICAnLS1pbnNwZWN0LWZhaWx1cmVzJyxcbiAgICAgIF0sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnSW50ZWdyYXRpb24gVGVzdHMnLFxuICAgICAgYEludGVncmF0aW9uIHRlc3RzIGFyZSBydW4gYnkgW2ludGVnLXJ1bm5lcl0oaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS90cmVlL21haW4vcGFja2FnZXMvJTQwYXdzLWNkay9pbnRlZy1ydW5uZXIpLlxuXG5UaGVzZSB0YXNrcyBvbmx5IGNvbXBhcmUgc25hcHNob3RzLCBzbyB0aGV5IG5lZWQgbm8gQVdTIGNyZWRlbnRpYWxzIGFuZCBkZXBsb3kgbm90aGluZy4gXFxgbnB4IHByb2plbiB0ZXN0XFxgLCBhbmQgc28gXFxgbnB4IHByb2plbiBidWlsZFxcYCwgcnVucyBcXGBpbnRlZ1xcYDpcbiogXFxgbnB4IHByb2plbiBpbnRlZ1xcYCBzeW50aGVzaXplcyBlYWNoIHRlc3QgYW5kIGNvbXBhcmVzIGl0IHdpdGggaXRzIHNuYXBzaG90LlxuKiBcXGBucHggcHJvamVuIGludGVnOmRlYnVnXFxgIGRvZXMgdGhlIHNhbWUgd2l0aCB2ZXJib3NlIGRpYWdub3N0aWNzLCBrZWVwaW5nIHRoZSBnZW5lcmF0ZWQgc25hcHNob3RzIG9mIHRlc3RzIHRoYXQgZGlmZmVyLlxuXG5UaGVzZSB0YXNrcyBkZXBsb3kgdG8gQVdTLCBpbiB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIG9mIHRoZSBjdXJyZW50IEFXUyBjcmVkZW50aWFscy4gRWFjaCB0ZXN0J3Mgc3RhY2tzIGFyZSByZWFsLCBzbyB0aGUgdGFza3MgdGFrZSBtaW51dGVzIGFuZCBpbmN1ciBBV1MgY29zdHM6XG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6dXBkYXRlXFxgIGRlcGxveXMgdGhlIHRlc3RzIHdob3NlIHNuYXBzaG90cyBkaWZmZXIsIHJ1bnMgdGhlaXIgYXNzZXJ0aW9ucywgZGVzdHJveXMgdGhlIHN0YWNrcyBhbmQsIGlmIHRoZXkgcGFzcywgdXBkYXRlcyB0aGUgc25hcHNob3RzLlxuKiBcXGBucHggcHJvamVuIGludGVnOmZvcmNlXFxgIGRlcGxveXMgZXZlcnkgdGVzdCBpbiB0aGUgc2FtZSB3YXksIGV2ZW4gaWYgaXRzIHNuYXBzaG90IGlzIHVuY2hhbmdlZC5cbiogXFxgbnB4IHByb2plbiBpbnRlZzp3YXRjaFxcYCBkZXBsb3lzIGEgc2luZ2xlIHRlc3QgYW5kIHJlZGVwbG95cyBpdCBhcyBpdHMgY29kZSBjaGFuZ2VzLCBsaWtlIFxcYGNkayBkZXBsb3kgLS13YXRjaFxcYC5cblxuXFxgJHtJTlRFR19SVU5ORVJ9XFxgIGlzIHBpbm5lZCB0byBcXGAke2ludGVnUnVubmVyVmVyc2lvbn1cXGAgYW5kIFxcYCR7SU5URUdfVEVTVFNfQUxQSEF9XFxgIHRvIHRoZSByZWxlYXNlIG1hdGNoaW5nIFxcYGNka1ZlcnNpb25cXGAsIHNvIHRoZSB1cGdyYWRlIHdvcmtmbG93IG5ldmVyIGNoYW5nZXMgdGhlaXIgdmVyc2lvbnM6IHRoZXkgb25seSBjaGFuZ2Ugd2hlbiBcXGBjZGtWZXJzaW9uXFxgIG9yIFxcYGludGVnUnVubmVyVmVyc2lvblxcYCBpcyBjaGFuZ2VkLiBUaGlzIGlzIGludGVuZGVkLCBhcyBlYWNoIFxcYCR7SU5URUdfVEVTVFNfQUxQSEF9XFxgIHJlbGVhc2UgcmV3cml0ZXMgdGhlIGFzc2VydGlvbiBjb2RlIGJ1bmRsZWQgaW4gdGhlIHNuYXBzaG90cy5cblxuaW50ZWctcnVubmVyIGlnbm9yZXMgY2hhbmdlcyB0byBhc3NldCBoYXNoZXMsIHNvIGEgdGVzdCB3aG9zZSBvbmx5IGNoYW5nZSBpcyBMYW1iZGEgY29kZSBpcyByZXBvcnRlZCBhcyBcXGBVTkNIQU5HRURcXGAgYW5kIGlzIG5vdCBkZXBsb3llZC4gUnVuIFxcYG5weCBwcm9qZW4gaW50ZWc6Zm9yY2VcXGAgdG8gZXhlcmNpc2UgbmV3IExhbWJkYSBjb2RlIGVuZCB0byBlbmQuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL2Nkay10eXBlc2NyaXB0LWFwcC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95bWVudC1lbnZpcm9ubWVudCc7XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCxxRUFBcUU7QUFDckUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWdGO0FBQ2hGLDZEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRXRELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkQsU0FBUyxVQUFVLENBQUMsT0FBZ0M7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDckQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuQywyRUFBMkU7UUFDM0UsOERBQThEO1FBQzlELE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tB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QUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUF0SUgsNENBdUlDO0FBRUQsK0RBQTZDO0FBQzdDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlcGVuZGVuY3lUeXBlLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHtcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMsXG4gIExhbWJkYVJ1bnRpbWUsXG59IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IENka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHsgYWRkRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9kZXBsb3ltZW50cyc7XG5pbXBvcnQge1xuICBhdXRvTWVyZ2VPcHRpb25zLFxuICBjb25maWd1cmVNZXJnaWZ5LFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5JztcbmltcG9ydCB7IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvcHVsbC1yZXF1ZXN0LXRlbXBsYXRlJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZSc7XG5pbXBvcnQgeyBnZXR0aW5nU3RhcnRlZFNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZS9nZXR0aW5nLXN0YXJ0ZWQnO1xuaW1wb3J0IHsgbWVyZ2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgYEBhd3MtY2RrL2ludGVnLXJ1bm5lcmAgcGlubmVkIHdoZW4gYGV4cGVyaW1lbnRhbEludGVnUnVubmVyYCBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlRFR19SVU5ORVJfVkVSU0lPTiA9ICcyLjIwNS42JztcblxuY29uc3QgSU5URUdfUlVOTkVSID0gJ0Bhd3MtY2RrL2ludGVnLXJ1bm5lcic7XG5jb25zdCBJTlRFR19URVNUU19BTFBIQSA9ICdAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYSc7XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMob3B0aW9uczogQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICBnaXRpZ25vcmU6IFsnLm5wbXJjJywgJy52c2NvZGUnXSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgLy8gYXV0aGVudGljYXRlIGFzIHRoZSBHaXRIdWIgQXBwLCBzbyBtZXJnaWZ5IGNhbiBhcHByb3ZlIHVwZ3JhZGUgcHVsbCByZXF1ZXN0c1xuICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCh7fSksXG4gICAgbGFtYmRhT3B0aW9uczogeyBydW50aW1lOiBMYW1iZGFSdW50aW1lLk5PREVKU18yNF9YIH0sXG4gICAgamVzdE9wdGlvbnM6IHsgamVzdFZlcnNpb246ICdeMzAnIH0sXG4gICAgLy8gbWF0Y2ggdGhlIGxhbWJkYSBydW50aW1lLCB1bmxlc3MgZGVyaXZlZCBmcm9tIG1pbk5vZGVWZXJzaW9uOyBhIGNvbnN1bWVyXG4gICAgLy8gQHR5cGVzL25vZGUgaW4gZGV2RGVwcyBpcyBhZGRlZCBsYXRlciwgc28gcmVwbGFjZXMgdGhpcyBvbmVcbiAgICBkZXZEZXBzOiBvcHRpb25zLm1pbk5vZGVWZXJzaW9uID8gW10gOiBbJ0B0eXBlcy9ub2RlQF4yNCddLFxuICAgIC8vIHRzLWplc3Qgb25seSByZXBvcnRzIHR5cGUgZXJyb3JzIGluIHRoZSBmaWxlcyBhIHRlc3QgcnVuIGxvYWRzLCBzbyB0eXBlLWNoZWNrIHRoZSB3aG9sZSBzdWl0ZSBmaXJzdFxuICAgIHR5cGVjaGVja1Rlc3RzOiB0cnVlLFxuICB9IHNhdGlzZmllcyBQYXJ0aWFsPENka1R5cGVTY3JpcHRBcHBPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIENESyBhcHBsaWNhdGlvbiBpbiBUeXBlU2NyaXB0XG4gKlxuICogRGVmYXVsdHMgdG8gdGhlIE5vZGUuanMgMjQgTGFtYmRhIHJ1bnRpbWUgKGBsYW1iZGFPcHRpb25zLnJ1bnRpbWVgKSB3aXRoXG4gKiBtYXRjaGluZyBgQHR5cGVzL25vZGVgLCBhbmQgSmVzdCAzMCAoYGplc3RPcHRpb25zLmplc3RWZXJzaW9uYCkuXG4gKlxuICogQHBqaWQgY2RrLXR5cGVzY3JpcHQtYXBwXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtUeXBlU2NyaXB0QXBwIGV4dGVuZHMgQXdzQ2RrVHlwZVNjcmlwdEFwcCB7XG4gIHJlYWRtZTogUmVhZG1lO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGdldE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgICAgYXV0b01lcmdlT3B0aW9uczogYXV0b01lcmdlT3B0aW9ucyhtZXJnZWRPcHRpb25zKSxcbiAgICB9IGFzIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zKTtcblxuICAgIG5ldyBDb2RlT3duZXJzKHRoaXMsIG1lcmdlZE9wdGlvbnMuY29kZU93bmVycyk7XG4gICAgdGhpcy5yZWFkbWUgPSBuZXcgUmVhZG1lKHRoaXMsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBtZXJnZWRPcHRpb25zLnJlYWRtZT8uZGVzY3JpcHRpb24sXG4gICAgfSk7XG4gICAgLy8gaW50ZWc6ZGVidWcgb25seSBjb21wYXJlcyBzbmFwc2hvdHMsIHNvIG5lZWRzIG5vIGNyZWRlbnRpYWxzXG4gICAgY29uc3QgZGVwbG95aW5nVGFza3MgPSBtZXJnZWRPcHRpb25zLmV4cGVyaW1lbnRhbEludGVnUnVubmVyXG4gICAgICA/ICcgYW5kIGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdCB0YXNrcyB0aGF0IGRlcGxveSAoYGludGVnOnVwZGF0ZWAsIGBpbnRlZzpmb3JjZWAsIGBpbnRlZzp3YXRjaGApJ1xuICAgICAgOiAnJztcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0dldHRpbmcgU3RhcnRlZCcsXG4gICAgICBnZXR0aW5nU3RhcnRlZFNlY3Rpb24odGhpcywge1xuICAgICAgICBub2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgICAgcHJlcmVxdWlzaXRlczogW1xuICAgICAgICAgIGBBV1MgY3JlZGVudGlhbHMgZm9yIHRoZSB0YXJnZXQgYWNjb3VudCwgbmVlZGVkIHRvIGRlcGxveSR7ZGVwbG95aW5nVGFza3N9YCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OIH0sXG4gICAgKTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0NESycsXG4gICAgICBgQm9vdHN0cmFwIGVhY2ggQVdTIGFjY291bnQgYW5kIHJlZ2lvbiBvbmNlOlxuXG5cXGBcXGBcXGBzaFxubnB4IGNkayBib290c3RyYXBcblxcYFxcYFxcYFxuXG5EZXBsb3kgdGhlIGFwcDpcblxuXFxgXFxgXFxgc2hcbm5weCBwcm9qZW4gZGVwbG95XG5cXGBcXGBcXGBcblxuSWYgdGhlIGFwcCBoYXMgbW9yZSB0aGFuIG9uZSBzdGFjaywgbmFtZSB0aGUgc3RhY2tzIHRvIGRlcGxveSBvciBwYXNzIFxcYC0tYWxsXFxgLCBhcyBpbiBcXGBucHggcHJvamVuIGRlcGxveSAtLWFsbFxcYC5gLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuVVNBR0UgfSxcbiAgICApO1xuICAgIGlmIChtZXJnZWRPcHRpb25zLmV4cGVyaW1lbnRhbEludGVnUnVubmVyKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZUludGVnUnVubmVyKFxuICAgICAgICBtZXJnZWRPcHRpb25zLmludGVnUnVubmVyVmVyc2lvbiA/PyBERUZBVUxUX0lOVEVHX1JVTk5FUl9WRVJTSU9OLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmNvZGVxbCA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ud29ya2Zsb3dzRW5hYmxlZCkge1xuICAgICAgbmV3IENvZGVRbCh0aGlzLmdpdGh1Yiwge1xuICAgICAgICAvLyBpbnRlZy1ydW5uZXIgc25hcHNob3QgYXNzZXRzIGFyZSBidW5kbGVzIG9mIGRlcGVuZGVuY2llcywgcmVuYW1lZCBvbiBldmVyeSB1cGRhdGVcbiAgICAgICAgcGF0aHNJZ25vcmU6IG1lcmdlZE9wdGlvbnMuY29kZXFsUGF0aHNJZ25vcmUgPz8gW1xuICAgICAgICAgIENvZGVRbC5JTlRFR19TTkFQU0hPVF9QQVRIUyxcbiAgICAgICAgXSxcbiAgICAgICAgYnJhbmNoZXM6IFttZXJnZWRPcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoXSxcbiAgICAgICAgbGFuZ3VhZ2VzOiBbJ2phdmFzY3JpcHQtdHlwZXNjcmlwdCcsICdhY3Rpb25zJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgYWRkRGVwbG95bWVudHModGhpcywge1xuICAgICAgZGVwbG95bWVudHM6IG1lcmdlZE9wdGlvbnMuZGVwbG95bWVudHMgPz8gW10sXG4gICAgICBub2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgIHJlbGVhc2VXb3JrZmxvd05hbWU6IG1lcmdlZE9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5hdXRvTWVyZ2UpIHtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5zIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGRlcGVuZGVuY2llcyB0aGF0IHByb2plbiBhZGRzIGF0IGBsYXRlc3RgLCBhc1xuICAgKiBlYWNoIGBAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYWAgcmVsZWFzZSByZXdyaXRlcyB0aGUgYnVuZGxlZCBhc3NlcnRpb25cbiAgICogY29kZSBpbiB0aGUgc25hcHNob3RzIGFuZCBkcmlmdHMgZnJvbSBgYXdzLWNkay1saWJgLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25maWd1cmVJbnRlZ1J1bm5lcihpbnRlZ1J1bm5lclZlcnNpb246IHN0cmluZykge1xuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KElOVEVHX1JVTk5FUiwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShJTlRFR19URVNUU19BTFBIQSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGAke0lOVEVHX1JVTk5FUn1AJHtpbnRlZ1J1bm5lclZlcnNpb259YCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgICk7XG4gICAgdGhpcy5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHtJTlRFR19URVNUU19BTFBIQX1AJHt0aGlzLmNka0RlcHMuY2RrTWluaW11bVZlcnNpb259LWFscGhhLjBgLFxuICAgICAgRGVwZW5kZW5jeVR5cGUuQlVJTEQsXG4gICAgKTtcblxuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6Zm9yY2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSdW4gaW50ZWdyYXRpb24gc25hcHNob3QgdGVzdHMsIGZvcmNpbmcgdGVzdHMgdG8gcnVuIGV2ZW4gaWYgdGhlcmUncyBubyBjaGFuZ2VzXCIsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0tZm9yY2UnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6d2F0Y2gnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1dhdGNoIHRoZSBpbnRlZ3JhdGlvbiBzbmFwc2hvdCB0ZXN0cycsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0td2F0Y2gnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6ZGVidWcnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1J1biBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MgYW5kIGZhaWx1cmUgYXJ0aWZhY3RzJyxcbiAgICAgIGV4ZWNBcmdzOiBbXG4gICAgICAgICdpbnRlZy1ydW5uZXInLFxuICAgICAgICAnJEAnLFxuICAgICAgICAnLS1sYW5ndWFnZScsXG4gICAgICAgICd0eXBlc2NyaXB0JyxcbiAgICAgICAgJy12dicsXG4gICAgICAgICctLWluc3BlY3QtZmFpbHVyZXMnLFxuICAgICAgXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdJbnRlZ3JhdGlvbiBUZXN0cycsXG4gICAgICBgSW50ZWdyYXRpb24gdGVzdHMgYXJlIHJ1biBieSBbaW50ZWctcnVubmVyXShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGstY2xpL3RyZWUvbWFpbi9wYWNrYWdlcy8lNDBhd3MtY2RrL2ludGVnLXJ1bm5lcikuXG5cblRoZXNlIHRhc2tzIG9ubHkgY29tcGFyZSBzbmFwc2hvdHMsIHNvIHRoZXkgbmVlZCBubyBBV1MgY3JlZGVudGlhbHMgYW5kIGRlcGxveSBub3RoaW5nLiBcXGBucHggcHJvamVuIHRlc3RcXGAsIGFuZCBzbyBcXGBucHggcHJvamVuIGJ1aWxkXFxgLCBydW5zIFxcYGludGVnXFxgOlxuKiBcXGBucHggcHJvamVuIGludGVnXFxgIHN5bnRoZXNpemVzIGVhY2ggdGVzdCBhbmQgY29tcGFyZXMgaXQgd2l0aCBpdHMgc25hcHNob3QuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6ZGVidWdcXGAgZG9lcyB0aGUgc2FtZSB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MsIGtlZXBpbmcgdGhlIGdlbmVyYXRlZCBzbmFwc2hvdHMgb2YgdGVzdHMgdGhhdCBkaWZmZXIuXG5cblRoZXNlIHRhc2tzIGRlcGxveSB0byBBV1MsIGluIHRoZSBhY2NvdW50IGFuZCByZWdpb24gb2YgdGhlIGN1cnJlbnQgQVdTIGNyZWRlbnRpYWxzLiBFYWNoIHRlc3QncyBzdGFja3MgYXJlIHJlYWwsIHNvIHRoZSB0YXNrcyB0YWtlIG1pbnV0ZXMgYW5kIGluY3VyIEFXUyBjb3N0czpcbiogXFxgbnB4IHByb2plbiBpbnRlZzp1cGRhdGVcXGAgZGVwbG95cyB0aGUgdGVzdHMgd2hvc2Ugc25hcHNob3RzIGRpZmZlciwgcnVucyB0aGVpciBhc3NlcnRpb25zLCBkZXN0cm95cyB0aGUgc3RhY2tzIGFuZCwgaWYgdGhleSBwYXNzLCB1cGRhdGVzIHRoZSBzbmFwc2hvdHMuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6Zm9yY2VcXGAgZGVwbG95cyBldmVyeSB0ZXN0IGluIHRoZSBzYW1lIHdheSwgZXZlbiBpZiBpdHMgc25hcHNob3QgaXMgdW5jaGFuZ2VkLlxuKiBcXGBucHggcHJvamVuIGludGVnOndhdGNoXFxgIGRlcGxveXMgYSBzaW5nbGUgdGVzdCBhbmQgcmVkZXBsb3lzIGl0IGFzIGl0cyBjb2RlIGNoYW5nZXMsIGxpa2UgXFxgY2RrIGRlcGxveSAtLXdhdGNoXFxgLlxuXG5cXGAke0lOVEVHX1JVTk5FUn1cXGAgaXMgcGlubmVkIHRvIFxcYCR7aW50ZWdSdW5uZXJWZXJzaW9ufVxcYCBhbmQgXFxgJHtJTlRFR19URVNUU19BTFBIQX1cXGAgdG8gdGhlIHJlbGVhc2UgbWF0Y2hpbmcgXFxgY2RrVmVyc2lvblxcYCwgc28gdGhlIHVwZ3JhZGUgd29ya2Zsb3cgbmV2ZXIgY2hhbmdlcyB0aGVpciB2ZXJzaW9uczogdGhleSBvbmx5IGNoYW5nZSB3aGVuIFxcYGNka1ZlcnNpb25cXGAgb3IgXFxgaW50ZWdSdW5uZXJWZXJzaW9uXFxgIGlzIGNoYW5nZWQuIFRoaXMgaXMgaW50ZW5kZWQsIGFzIGVhY2ggXFxgJHtJTlRFR19URVNUU19BTFBIQX1cXGAgcmVsZWFzZSByZXdyaXRlcyB0aGUgYXNzZXJ0aW9uIGNvZGUgYnVuZGxlZCBpbiB0aGUgc25hcHNob3RzLlxuXG5pbnRlZy1ydW5uZXIgaWdub3JlcyBjaGFuZ2VzIHRvIGFzc2V0IGhhc2hlcywgc28gYSB0ZXN0IHdob3NlIG9ubHkgY2hhbmdlIGlzIExhbWJkYSBjb2RlIGlzIHJlcG9ydGVkIGFzIFxcYFVOQ0hBTkdFRFxcYCBhbmQgaXMgbm90IGRlcGxveWVkLiBSdW4gXFxgbnB4IHByb2plbiBpbnRlZzpmb3JjZVxcYCB0byBleGVyY2lzZSBuZXcgTGFtYmRhIGNvZGUgZW5kIHRvIGVuZC5gLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuVVNBR0UgfSxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vY2RrLXR5cGVzY3JpcHQtYXBwLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXBsb3ltZW50LWVudmlyb25tZW50JztcbiJdfQ==
@@ -48,7 +48,7 @@ function getOptions(options) {
48
48
  * @pjid jsii-project
49
49
  */
50
50
  class JsiiProject extends projen_1.cdk.JsiiProject {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.JsiiProject", version: "5.1.1" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.JsiiProject", version: "5.3.0" };
52
52
  readme;
53
53
  constructor(options) {
54
54
  const mergedOptions = getOptions(options);
@@ -60,7 +60,7 @@ class JsiiProject extends projen_1.cdk.JsiiProject {
60
60
  this.readme = new readme_1.Readme(this, {
61
61
  description: mergedOptions.readme?.description,
62
62
  });
63
- this.readme.addSection('Getting Started', `${(0, getting_started_1.gettingStartedCommands)(this)}\n
63
+ this.readme.addSection('Getting Started', `${(0, getting_started_1.gettingStartedSection)(this, { nodeVersion: this.nodeVersion })}\n
64
64
  This will:
65
65
  * Install the dependencies
66
66
  * Apply any projen changes
@@ -90,4 +90,4 @@ Running the tests like this will update any snapshot files, this should be revie
90
90
  }
91
91
  exports.JsiiProject = JsiiProject;
92
92
  __exportStar(require("./jsii-project-options"), exports);
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvanNpaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFFckMsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCw2REFHeUM7QUFDekMseUZBQThGO0FBQzlGLG9EQUE4RDtBQUM5RCw2RUFBaUY7QUFDakYsNkRBQXlEO0FBRXpELFNBQVMsVUFBVSxDQUFDLE9BQTJCO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osU0FBUyxFQUFFLElBQUk7UUFDZixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCwwRkFBMEY7UUFDMUYsaUVBQWlFO1FBQ2pFLGNBQWMsRUFBRSxJQUFJO0tBQ2lCLENBQUM7SUFFeEMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsV0FBWSxTQUFRLFlBQUcsQ0FBQyxXQUFXOztJQUM5QyxNQUFNLENBQVM7SUFFZixZQUFZLE9BQTJCO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUM7WUFDSixHQUFHLGFBQWE7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxhQUFhLENBQUM7U0FDeEIsQ0FBQyxDQUFDO1FBRTdCLElBQUksdUJBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLGlCQUFpQixFQUNqQixHQUFHLElBQUEsd0NBQXNCLEVBQUMsSUFBSSxDQUFDOzs7Ozs7Ozs7MEdBU3FFLEVBQ3BHLEVBQUUsS0FBSyxFQUFFLG9CQUFXLENBQUMsWUFBWSxFQUFFLENBQ3BDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FDcEIsU0FBUyxFQUNUOzs7Q0FHTCxFQUNLLEVBQUUsS0FBSyxFQUFFLG9CQUFXLENBQUMsS0FBSyxFQUFFLENBQzdCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDcEUsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEIsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxTQUFTLENBQUM7YUFDaEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNyQixlQUFlLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2hFLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYzthQUM3QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFqREgsa0NBa0RDO0FBRUQseURBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2RrLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9qc2lpLXByb2plY3Qtb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRDb21tYW5kcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgYXV0b01lcmdlOiB0cnVlLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgZ2l0aWdub3JlOiBbJy5ucG1yYycsICcudnNjb2RlJ10sXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgIC8vIGF1dGhlbnRpY2F0ZSBhcyB0aGUgR2l0SHViIEFwcCwgc28gbWVyZ2lmeSBjYW4gYXBwcm92ZSB1cGdyYWRlIHB1bGwgcmVxdWVzdHNcbiAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoe30pLFxuICAgIC8vIHRzLWplc3Qgc2tpcHMgdHlwZS1jaGVja2luZyB1bmRlciB0aGUgaXNvbGF0ZWRNb2R1bGVzIHNldHRpbmcgb2YgdGhlIGpzaWkgZGV2IHRzY29uZmlnLFxuICAgIC8vIGFuZCBqc2lpIG9ubHkgY29tcGlsZXMgc3JjLCBzbyB0eXBlLWNoZWNrIHRoZSB0ZXN0IHN1aXRlIGZpcnN0XG4gICAgdHlwZWNoZWNrVGVzdHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8SnNpaVByb2plY3RPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIEpTSUkgcHJvamVjdCBpbiBUeXBlU2NyaXB0XG4gKlxuICpcbiAqIEBwamlkIGpzaWktcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgSnNpaVByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgICBhdXRvTWVyZ2VPcHRpb25zOiBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgIH0gYXMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnR2V0dGluZyBTdGFydGVkJyxcbiAgICAgIGAke2dldHRpbmdTdGFydGVkQ29tbWFuZHModGhpcyl9XFxuXG5UaGlzIHdpbGw6XG4qIEluc3RhbGwgdGhlIGRlcGVuZGVuY2llc1xuKiBBcHBseSBhbnkgcHJvamVuIGNoYW5nZXNcbiogUnVuIHRlc3RzXG4qIFBhY2thZ2UgcHJvamVjdCBsb2NhbGx5XG5cbkFueSBmaWxlcyBjaGFuZ2VkIGJ5IHByb2plbiBzaG91bGQgYmUgY29tbWl0dGVkIHRvIGdpdC5cblxuUnVubmluZyB0aGUgdGVzdHMgbGlrZSB0aGlzIHdpbGwgdXBkYXRlIGFueSBzbmFwc2hvdCBmaWxlcywgdGhpcyBzaG91bGQgYmUgcmV2aWV3ZWQgYW5kIGNvbW1pdHRlZCB0byBnaXQuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLklOVFJPRFVDVElPTiB9LFxuICAgICk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdUZXN0aW5nJyxcbiAgICAgIGBUeXBlcyBvZiB0ZXN0aW5nOlxuKiBTbmFwc2hvdCAtIHByb2plbiBwcm9qZWN0IG91dHB1dHMgYXJlIHN0b3JlZCBhcyBhIHNuYXBzaG90IGluIHRoZSBjb3JyZXNwb25kaW5nIFxcYF9fc25hcHNob3RzX19cXGAgZGlyZWN0b3J5LiBXaGVuIHRoZSBwcm9qZWN0IGNoYW5nZXMgdGhlbiBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZXNlIHNuYXBzaG90cyBjaGFuZ2UgdG9vIGFuZCBzaG91bGQgYmUgcmV2aWV3ZWQgY29tbWl0dGVkIGFsb25nc2lkZSB0aGUgcHJvamVjdC5cbiogVW5pdCB0ZXN0cyAtIHRoZXNlIGFzc2VydCBvbiBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBwcm9qZWN0IGFuZCBzaG91bGQgYmUgd3JpdHRlbiBmb3IgYW55IG5ldyBmdW5jdGlvbmFsaXR5IGFkZGVkLlxuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgICBpZiAoKG1lcmdlZE9wdGlvbnMuY29kZXFsID8/IHRydWUpICYmIHRoaXMuZ2l0aHViPy53b3JrZmxvd3NFbmFibGVkKSB7XG4gICAgICBuZXcgQ29kZVFsKHRoaXMuZ2l0aHViLCB7XG4gICAgICAgIGJyYW5jaGVzOiBbbWVyZ2VkT3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaF0sXG4gICAgICAgIGxhbmd1YWdlczogWydqYXZhc2NyaXB0LXR5cGVzY3JpcHQnLCAnYWN0aW9ucyddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmF1dG9NZXJnZSkge1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vanNpaS1wcm9qZWN0LW9wdGlvbnMnO1xuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvanNpaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBcUM7QUFFckMsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCw2REFHeUM7QUFDekMseUZBQThGO0FBQzlGLG9EQUE4RDtBQUM5RCw2RUFBZ0Y7QUFDaEYsNkRBQXlEO0FBRXpELFNBQVMsVUFBVSxDQUFDLE9BQTJCO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osU0FBUyxFQUFFLElBQUk7UUFDZixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCwwRkFBMEY7UUFDMUYsaUVBQWlFO1FBQ2pFLGNBQWMsRUFBRSxJQUFJO0tBQ2lCLENBQUM7SUFFeEMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsV0FBWSxTQUFRLFlBQUcsQ0FBQyxXQUFXOztJQUM5QyxNQUFNLENBQVM7SUFFZixZQUFZLE9BQTJCO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUM7WUFDSixHQUFHLGFBQWE7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxhQUFhLENBQUM7U0FDeEIsQ0FBQyxDQUFDO1FBRTdCLElBQUksdUJBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLGlCQUFpQixFQUNqQixHQUFHLElBQUEsdUNBQXFCLEVBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzs7Ozs7Ozs7OzBHQVNtQyxFQUNwRyxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLFlBQVksRUFBRSxDQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLFNBQVMsRUFDVDs7O0NBR0wsRUFDSyxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3BFLElBQUksZUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsU0FBUyxDQUFDO2FBQ2hELENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFBLDBCQUFnQixFQUFDLElBQUksRUFBRTtnQkFDckIsZUFBZSxFQUFFLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlO2dCQUNoRSxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWM7YUFDN0MsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBakRILGtDQWtEQztBQUVELHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNkaywgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEpzaWlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vanNpaS1wcm9qZWN0LW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29kZU93bmVycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVvd25lcnMnO1xuaW1wb3J0IHsgQ29kZVFsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZXFsJztcbmltcG9ydCB7XG4gIGF1dG9NZXJnZU9wdGlvbnMsXG4gIGNvbmZpZ3VyZU1lcmdpZnksXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL21lcmdpZnknO1xuaW1wb3J0IHsgREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9wdWxsLXJlcXVlc3QtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUmVhZG1lLCBSZWFkbWVPcmRlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lJztcbmltcG9ydCB7IGdldHRpbmdTdGFydGVkU2VjdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgYXV0b01lcmdlOiB0cnVlLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgZ2l0aWdub3JlOiBbJy5ucG1yYycsICcudnNjb2RlJ10sXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgIC8vIGF1dGhlbnRpY2F0ZSBhcyB0aGUgR2l0SHViIEFwcCwgc28gbWVyZ2lmeSBjYW4gYXBwcm92ZSB1cGdyYWRlIHB1bGwgcmVxdWVzdHNcbiAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoe30pLFxuICAgIC8vIHRzLWplc3Qgc2tpcHMgdHlwZS1jaGVja2luZyB1bmRlciB0aGUgaXNvbGF0ZWRNb2R1bGVzIHNldHRpbmcgb2YgdGhlIGpzaWkgZGV2IHRzY29uZmlnLFxuICAgIC8vIGFuZCBqc2lpIG9ubHkgY29tcGlsZXMgc3JjLCBzbyB0eXBlLWNoZWNrIHRoZSB0ZXN0IHN1aXRlIGZpcnN0XG4gICAgdHlwZWNoZWNrVGVzdHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8SnNpaVByb2plY3RPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIEpTSUkgcHJvamVjdCBpbiBUeXBlU2NyaXB0XG4gKlxuICpcbiAqIEBwamlkIGpzaWktcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgSnNpaVByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgICBhdXRvTWVyZ2VPcHRpb25zOiBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgIH0gYXMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnR2V0dGluZyBTdGFydGVkJyxcbiAgICAgIGAke2dldHRpbmdTdGFydGVkU2VjdGlvbih0aGlzLCB7IG5vZGVWZXJzaW9uOiB0aGlzLm5vZGVWZXJzaW9uIH0pfVxcblxuVGhpcyB3aWxsOlxuKiBJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXNcbiogQXBwbHkgYW55IHByb2plbiBjaGFuZ2VzXG4qIFJ1biB0ZXN0c1xuKiBQYWNrYWdlIHByb2plY3QgbG9jYWxseVxuXG5BbnkgZmlsZXMgY2hhbmdlZCBieSBwcm9qZW4gc2hvdWxkIGJlIGNvbW1pdHRlZCB0byBnaXQuXG5cblJ1bm5pbmcgdGhlIHRlc3RzIGxpa2UgdGhpcyB3aWxsIHVwZGF0ZSBhbnkgc25hcHNob3QgZmlsZXMsIHRoaXMgc2hvdWxkIGJlIHJldmlld2VkIGFuZCBjb21taXR0ZWQgdG8gZ2l0LmAsXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5JTlRST0RVQ1RJT04gfSxcbiAgICApO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnVGVzdGluZycsXG4gICAgICBgVHlwZXMgb2YgdGVzdGluZzpcbiogU25hcHNob3QgLSBwcm9qZW4gcHJvamVjdCBvdXRwdXRzIGFyZSBzdG9yZWQgYXMgYSBzbmFwc2hvdCBpbiB0aGUgY29ycmVzcG9uZGluZyBcXGBfX3NuYXBzaG90c19fXFxgIGRpcmVjdG9yeS4gV2hlbiB0aGUgcHJvamVjdCBjaGFuZ2VzIHRoZW4gaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGVzZSBzbmFwc2hvdHMgY2hhbmdlIHRvbyBhbmQgc2hvdWxkIGJlIHJldmlld2VkIGNvbW1pdHRlZCBhbG9uZ3NpZGUgdGhlIHByb2plY3QuXG4qIFVuaXQgdGVzdHMgLSB0aGVzZSBhc3NlcnQgb24gc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgcHJvamVjdCBhbmQgc2hvdWxkIGJlIHdyaXR0ZW4gZm9yIGFueSBuZXcgZnVuY3Rpb25hbGl0eSBhZGRlZC5cbmAsXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5VU0FHRSB9LFxuICAgICk7XG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmNvZGVxbCA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ud29ya2Zsb3dzRW5hYmxlZCkge1xuICAgICAgbmV3IENvZGVRbCh0aGlzLmdpdGh1Yiwge1xuICAgICAgICBicmFuY2hlczogW21lcmdlZE9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2hdLFxuICAgICAgICBsYW5ndWFnZXM6IFsnamF2YXNjcmlwdC10eXBlc2NyaXB0JywgJ2FjdGlvbnMnXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5hdXRvTWVyZ2UpIHtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL2pzaWktcHJvamVjdC1vcHRpb25zJztcbiJdfQ==
@@ -47,7 +47,7 @@ function getOptions(options) {
47
47
  * @pjid npm-package
48
48
  */
49
49
  class NpmPackage extends projen_1.typescript.TypeScriptProject {
50
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.NpmPackage", version: "5.1.1" };
50
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.NpmPackage", version: "5.3.0" };
51
51
  readme;
52
52
  constructor(options) {
53
53
  const mergedOptions = getOptions(options);
@@ -60,9 +60,7 @@ class NpmPackage extends projen_1.typescript.TypeScriptProject {
60
60
  this.readme = new readme_1.Readme(this, {
61
61
  description: mergedOptions.readme?.description,
62
62
  });
63
- this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedCommands)(this), {
64
- order: readme_1.ReadmeOrder.INTRODUCTION,
65
- });
63
+ this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedSection)(this, { nodeVersion: this.nodeVersion }), { order: readme_1.ReadmeOrder.INTRODUCTION });
66
64
  if (this.autoMerge) {
67
65
  (0, mergify_1.configureMergify)(this, {
68
66
  approvedReviews: mergedOptions.autoMergeOptions?.approvedReviews,
@@ -73,4 +71,4 @@ class NpmPackage extends projen_1.typescript.TypeScriptProject {
73
71
  }
74
72
  exports.NpmPackage = NpmPackage;
75
73
  __exportStar(require("./npm-package-options"), exports);
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvbnBtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFvQztBQUVwQyw2Q0FBNkM7QUFDN0MsbUVBQWdFO0FBQ2hFLDZEQUd5QztBQUN6Qyx5RkFBOEY7QUFDOUYsb0RBQThEO0FBQzlELDZFQUFpRjtBQUNqRiw2REFBeUQ7QUFFekQsU0FBUyxVQUFVLENBQUMsT0FBMEI7SUFDNUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLGFBQWEsRUFBRTtZQUNiLFNBQVMsRUFBRSxLQUFLO1NBQ2pCO1FBQ0QsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNoQywyQkFBMkIsRUFBRSxxREFBNkI7UUFDMUQsVUFBVSxFQUFFLElBQUk7UUFDaEIsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tBQ2dCLENBQUM7SUFFdkMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsVUFBVyxTQUFRLG1CQUFVLENBQUMsaUJBQWlCOztJQUMxRCxNQUFNLENBQVM7SUFFZixZQUFZLE9BQTBCO1FBQ3BDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUM7WUFDSixHQUFHLGFBQWE7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxhQUFhLENBQUM7U0FDWCxDQUFDLENBQUM7UUFFMUMsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxzQkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsSUFBQSx3Q0FBc0IsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUN0RSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxZQUFZO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNyQixlQUFlLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2hFLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYzthQUM3QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUF6QkgsZ0NBMEJDO0FBRUQsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOcG1QYWNrYWdlT3B0aW9ucyB9IGZyb20gJy4vbnBtLXBhY2thZ2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBOcG1DaXJjbGVDaSB9IGZyb20gJy4uLy4uL2NpcmNsZWNpJztcbmltcG9ydCB7IENvZGVPd25lcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2Rlb3duZXJzJztcbmltcG9ydCB7XG4gIGF1dG9NZXJnZU9wdGlvbnMsXG4gIGNvbmZpZ3VyZU1lcmdpZnksXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL21lcmdpZnknO1xuaW1wb3J0IHsgREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9wdWxsLXJlcXVlc3QtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUmVhZG1lLCBSZWFkbWVPcmRlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lJztcbmltcG9ydCB7IGdldHRpbmdTdGFydGVkQ29tbWFuZHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZS9nZXR0aW5nLXN0YXJ0ZWQnO1xuaW1wb3J0IHsgbWVyZ2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2Utb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMob3B0aW9uczogTnBtUGFja2FnZU9wdGlvbnMpIHtcbiAgY29uc3QgeyBuYW1lIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIG5hbWUsXG4gICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICB3b3JrZmxvd3M6IGZhbHNlLFxuICAgIH0sXG4gICAgZ2l0aWdub3JlOiBbJy5ucG1yYycsICcudnNjb2RlJ10sXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgIC8vIHRzLWplc3Qgb25seSByZXBvcnRzIHR5cGUgZXJyb3JzIGluIHRoZSBmaWxlcyBhIHRlc3QgcnVuIGxvYWRzLCBzbyB0eXBlLWNoZWNrIHRoZSB3aG9sZSBzdWl0ZSBmaXJzdFxuICAgIHR5cGVjaGVja1Rlc3RzOiB0cnVlLFxuICB9IHNhdGlzZmllcyBQYXJ0aWFsPE5wbVBhY2thZ2VPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIE5QTS9ub2RlIHBhY2thZ2UgaW4gVHlwZVNjcmlwdFxuICpcbiAqXG4gKiBAcGppZCBucG0tcGFja2FnZVxuICovXG5leHBvcnQgY2xhc3MgTnBtUGFja2FnZSBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBOcG1QYWNrYWdlT3B0aW9ucykge1xuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ubWVyZ2VkT3B0aW9ucyxcbiAgICAgIGF1dG9NZXJnZU9wdGlvbnM6IGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgfSBhcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIG5ldyBOcG1DaXJjbGVDaSh0aGlzKTtcbiAgICB0aGlzLnJlYWRtZSA9IG5ldyBSZWFkbWUodGhpcywge1xuICAgICAgZGVzY3JpcHRpb246IG1lcmdlZE9wdGlvbnMucmVhZG1lPy5kZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKCdHZXR0aW5nIFN0YXJ0ZWQnLCBnZXR0aW5nU3RhcnRlZENvbW1hbmRzKHRoaXMpLCB7XG4gICAgICBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLmF1dG9NZXJnZSkge1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vbnBtLXBhY2thZ2Utb3B0aW9ucyc7XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvbnBtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFvQztBQUVwQyw2Q0FBNkM7QUFDN0MsbUVBQWdFO0FBQ2hFLDZEQUd5QztBQUN6Qyx5RkFBOEY7QUFDOUYsb0RBQThEO0FBQzlELDZFQUFnRjtBQUNoRiw2REFBeUQ7QUFFekQsU0FBUyxVQUFVLENBQUMsT0FBMEI7SUFDNUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLGFBQWEsRUFBRTtZQUNiLFNBQVMsRUFBRSxLQUFLO1NBQ2pCO1FBQ0QsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNoQywyQkFBMkIsRUFBRSxxREFBNkI7UUFDMUQsVUFBVSxFQUFFLElBQUk7UUFDaEIsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tBQ2dCLENBQUM7SUFFdkMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsVUFBVyxTQUFRLG1CQUFVLENBQUMsaUJBQWlCOztJQUMxRCxNQUFNLENBQVM7SUFFZixZQUFZLE9BQTBCO1FBQ3BDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxLQUFLLENBQUM7WUFDSixHQUFHLGFBQWE7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBZ0IsRUFBQyxhQUFhLENBQUM7U0FDWCxDQUFDLENBQUM7UUFFMUMsSUFBSSx1QkFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxzQkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLGlCQUFpQixFQUNqQixJQUFBLHVDQUFxQixFQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDOUQsRUFBRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FDcEMsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUEsMEJBQWdCLEVBQUMsSUFBSSxFQUFFO2dCQUNyQixlQUFlLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2hFLGNBQWMsRUFBRSxhQUFhLENBQUMsY0FBYzthQUM3QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUEzQkgsZ0NBNEJDO0FBRUQsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOcG1QYWNrYWdlT3B0aW9ucyB9IGZyb20gJy4vbnBtLXBhY2thZ2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBOcG1DaXJjbGVDaSB9IGZyb20gJy4uLy4uL2NpcmNsZWNpJztcbmltcG9ydCB7IENvZGVPd25lcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2Rlb3duZXJzJztcbmltcG9ydCB7XG4gIGF1dG9NZXJnZU9wdGlvbnMsXG4gIGNvbmZpZ3VyZU1lcmdpZnksXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL21lcmdpZnknO1xuaW1wb3J0IHsgREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9wdWxsLXJlcXVlc3QtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUmVhZG1lLCBSZWFkbWVPcmRlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lJztcbmltcG9ydCB7IGdldHRpbmdTdGFydGVkU2VjdGlvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBOcG1QYWNrYWdlT3B0aW9ucykge1xuICBjb25zdCB7IG5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgbmFtZSxcbiAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgIHdvcmtmbG93czogZmFsc2UsXG4gICAgfSxcbiAgICBnaXRpZ25vcmU6IFsnLm5wbXJjJywgJy52c2NvZGUnXSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgLy8gdHMtamVzdCBvbmx5IHJlcG9ydHMgdHlwZSBlcnJvcnMgaW4gdGhlIGZpbGVzIGEgdGVzdCBydW4gbG9hZHMsIHNvIHR5cGUtY2hlY2sgdGhlIHdob2xlIHN1aXRlIGZpcnN0XG4gICAgdHlwZWNoZWNrVGVzdHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8TnBtUGFja2FnZU9wdGlvbnM+O1xuXG4gIHJldHVybiBtZXJnZU9wdGlvbnMoZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgTlBNL25vZGUgcGFja2FnZSBpbiBUeXBlU2NyaXB0XG4gKlxuICpcbiAqIEBwamlkIG5wbS1wYWNrYWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBOcG1QYWNrYWdlIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIHJlYWRtZTogUmVhZG1lO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE5wbVBhY2thZ2VPcHRpb25zKSB7XG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGdldE9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBzdXBlcih7XG4gICAgICAuLi5tZXJnZWRPcHRpb25zLFxuICAgICAgYXV0b01lcmdlT3B0aW9uczogYXV0b01lcmdlT3B0aW9ucyhtZXJnZWRPcHRpb25zKSxcbiAgICB9IGFzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKTtcblxuICAgIG5ldyBDb2RlT3duZXJzKHRoaXMsIG1lcmdlZE9wdGlvbnMuY29kZU93bmVycyk7XG4gICAgbmV3IE5wbUNpcmNsZUNpKHRoaXMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnR2V0dGluZyBTdGFydGVkJyxcbiAgICAgIGdldHRpbmdTdGFydGVkU2VjdGlvbih0aGlzLCB7IG5vZGVWZXJzaW9uOiB0aGlzLm5vZGVWZXJzaW9uIH0pLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OIH0sXG4gICAgKTtcbiAgICBpZiAodGhpcy5hdXRvTWVyZ2UpIHtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL25wbS1wYWNrYWdlLW9wdGlvbnMnO1xuIl19
@@ -43,7 +43,7 @@ function getOptions(options) {
43
43
  * @pjid python-package
44
44
  */
45
45
  class PythonPackage extends python_1.PythonProject {
46
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.PythonPackage", version: "5.1.1" };
46
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.PythonPackage", version: "5.3.0" };
47
47
  autoMerge;
48
48
  readme;
49
49
  constructor(options) {
@@ -58,7 +58,7 @@ class PythonPackage extends python_1.PythonProject {
58
58
  this.readme = new readme_1.Readme(this, {
59
59
  description: mergedOptions.readme?.description,
60
60
  });
61
- this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedCommands)(this), {
61
+ this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedSection)(this), {
62
62
  order: readme_1.ReadmeOrder.INTRODUCTION,
63
63
  });
64
64
  if ((mergedOptions.codeql ?? true) && this.github?.workflowsEnabled) {
@@ -78,4 +78,4 @@ class PythonPackage extends python_1.PythonProject {
78
78
  }
79
79
  exports.PythonPackage = PythonPackage;
80
80
  __exportStar(require("./python-package-options"), exports);
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvcHl0aG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyw4Q0FBd0U7QUFFeEUsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCw2REFHeUM7QUFDekMseUZBQThGO0FBQzlGLG9EQUE4RDtBQUM5RCw2RUFBaUY7QUFDakYsNkRBQXlEO0FBRXpELFNBQVMsVUFBVSxDQUFDLE9BQTZCO0lBQy9DLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osbUJBQW1CLEVBQUUsSUFBSTtRQUN6QiwyQkFBMkIsRUFBRSxxREFBNkI7UUFDMUQsK0VBQStFO1FBQy9FLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQ2hCLENBQUM7SUFFMUMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFhOztJQUNyQyxTQUFTLENBQW9CO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLFlBQVksT0FBNkI7UUFDdkMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLEtBQUssQ0FBQztZQUNKLEdBQUcsYUFBYTtTQUNPLENBQUMsQ0FBQztRQUUzQixJQUFJLHVCQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFLHNCQUFzQixDQUNqQyxHQUFHLENBQUMsYUFBYSxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsSUFBQSx3Q0FBc0IsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUN0RSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxZQUFZO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN0QixTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFBLDBCQUFnQixFQUFDLGFBQWEsQ0FBQyxDQUNoQyxDQUFDO1lBQ0YsSUFBQSwwQkFBZ0IsRUFBQyxJQUFJLEVBQUU7Z0JBQ3JCLGVBQWUsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDaEUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXZDSCxzQ0F3Q0M7QUFFRCwyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCwgUHl0aG9uUHJvamVjdE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL3B5dGhvbic7XG5pbXBvcnQgeyBQeXRob25QYWNrYWdlT3B0aW9ucyB9IGZyb20gJy4vcHl0aG9uLXBhY2thZ2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRDb21tYW5kcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBQeXRob25QYWNrYWdlT3B0aW9ucykge1xuICBjb25zdCB7IG5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgbmFtZSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlOiB0cnVlLFxuICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUsXG4gICAgLy8gYXV0aGVudGljYXRlIGFzIHRoZSBHaXRIdWIgQXBwLCBzbyBtZXJnaWZ5IGNhbiBhcHByb3ZlIHVwZ3JhZGUgcHVsbCByZXF1ZXN0c1xuICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCh7fSksXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8UHl0aG9uUGFja2FnZU9wdGlvbnM+O1xuXG4gIHJldHVybiBtZXJnZU9wdGlvbnMoZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgUHl0aG9uIHBhY2thZ2VcbiAqXG4gKlxuICogQHBqaWQgcHl0aG9uLXBhY2thZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIFB5dGhvblBhY2thZ2UgZXh0ZW5kcyBQeXRob25Qcm9qZWN0IHtcbiAgcmVhZG9ubHkgYXV0b01lcmdlPzogZ2l0aHViLkF1dG9NZXJnZTtcbiAgcmVhZG1lOiBSZWFkbWU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUHl0aG9uUGFja2FnZU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgfSBhcyBQeXRob25Qcm9qZWN0T3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIGlmIChtZXJnZWRPcHRpb25zLnB1bGxSZXF1ZXN0VGVtcGxhdGUgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5naXRodWI/LmFkZFB1bGxSZXF1ZXN0VGVtcGxhdGUoXG4gICAgICAgIC4uLihtZXJnZWRPcHRpb25zLnB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50cyA/PyBbXSksXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnJlYWRtZSA9IG5ldyBSZWFkbWUodGhpcywge1xuICAgICAgZGVzY3JpcHRpb246IG1lcmdlZE9wdGlvbnMucmVhZG1lPy5kZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKCdHZXR0aW5nIFN0YXJ0ZWQnLCBnZXR0aW5nU3RhcnRlZENvbW1hbmRzKHRoaXMpLCB7XG4gICAgICBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OLFxuICAgIH0pO1xuICAgIGlmICgobWVyZ2VkT3B0aW9ucy5jb2RlcWwgPz8gdHJ1ZSkgJiYgdGhpcy5naXRodWI/LndvcmtmbG93c0VuYWJsZWQpIHtcbiAgICAgIG5ldyBDb2RlUWwodGhpcy5naXRodWIsIHtcbiAgICAgICAgbGFuZ3VhZ2VzOiBbJ3B5dGhvbicsICdhY3Rpb25zJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gcHJvamVuIG9ubHkgd2lyZXMgdGhlIG1lcmdlIHF1ZXVlIHVwIGZvciBub2RlIHByb2plY3RzXG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmF1dG9NZXJnZSA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ubWVyZ2lmeSkge1xuICAgICAgdGhpcy5hdXRvTWVyZ2UgPSBuZXcgZ2l0aHViLkF1dG9NZXJnZShcbiAgICAgICAgdGhpcy5naXRodWIsXG4gICAgICAgIGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgICApO1xuICAgICAgY29uZmlndXJlTWVyZ2lmeSh0aGlzLCB7XG4gICAgICAgIGFwcHJvdmVkUmV2aWV3czogbWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zPy5hcHByb3ZlZFJldmlld3MsXG4gICAgICAgIHRydXN0ZWRBdXRob3JzOiBtZXJnZWRPcHRpb25zLnRydXN0ZWRBdXRob3JzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vcHl0aG9uLXBhY2thZ2Utb3B0aW9ucyc7XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvcHl0aG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnQztBQUNoQyw4Q0FBd0U7QUFFeEUsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCw2REFHeUM7QUFDekMseUZBQThGO0FBQzlGLG9EQUE4RDtBQUM5RCw2RUFBZ0Y7QUFDaEYsNkRBQXlEO0FBRXpELFNBQVMsVUFBVSxDQUFDLE9BQTZCO0lBQy9DLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekIsTUFBTSxRQUFRLEdBQUc7UUFDZixJQUFJO1FBQ0osbUJBQW1CLEVBQUUsSUFBSTtRQUN6QiwyQkFBMkIsRUFBRSxxREFBNkI7UUFDMUQsK0VBQStFO1FBQy9FLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQ2hCLENBQUM7SUFFMUMsT0FBTyxJQUFBLDRCQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsYUFBYyxTQUFRLHNCQUFhOztJQUNyQyxTQUFTLENBQW9CO0lBQ3RDLE1BQU0sQ0FBUztJQUVmLFlBQVksT0FBNkI7UUFDdkMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLEtBQUssQ0FBQztZQUNKLEdBQUcsYUFBYTtTQUNPLENBQUMsQ0FBQztRQUUzQixJQUFJLHVCQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFLHNCQUFzQixDQUNqQyxHQUFHLENBQUMsYUFBYSxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLFdBQVcsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLFdBQVc7U0FDL0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsSUFBQSx1Q0FBcUIsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxZQUFZO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUN0QixTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBTSxDQUFDLFNBQVMsQ0FDbkMsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFBLDBCQUFnQixFQUFDLGFBQWEsQ0FBQyxDQUNoQyxDQUFDO1lBQ0YsSUFBQSwwQkFBZ0IsRUFBQyxJQUFJLEVBQUU7Z0JBQ3JCLGVBQWUsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDaEUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxjQUFjO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXZDSCxzQ0F3Q0M7QUFFRCwyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCwgUHl0aG9uUHJvamVjdE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL3B5dGhvbic7XG5pbXBvcnQgeyBQeXRob25QYWNrYWdlT3B0aW9ucyB9IGZyb20gJy4vcHl0aG9uLXBhY2thZ2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUvZ2V0dGluZy1zdGFydGVkJztcbmltcG9ydCB7IG1lcmdlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IFB5dGhvblBhY2thZ2VPcHRpb25zKSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBuYW1lLFxuICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGU6IHRydWUsXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICAvLyBhdXRoZW50aWNhdGUgYXMgdGhlIEdpdEh1YiBBcHAsIHNvIG1lcmdpZnkgY2FuIGFwcHJvdmUgdXBncmFkZSBwdWxsIHJlcXVlc3RzXG4gICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHt9KSxcbiAgfSBzYXRpc2ZpZXMgUGFydGlhbDxQeXRob25QYWNrYWdlT3B0aW9ucz47XG5cbiAgcmV0dXJuIG1lcmdlT3B0aW9ucyhkZWZhdWx0cywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogQSBQeXRob24gcGFja2FnZVxuICpcbiAqXG4gKiBAcGppZCBweXRob24tcGFja2FnZVxuICovXG5leHBvcnQgY2xhc3MgUHl0aG9uUGFja2FnZSBleHRlbmRzIFB5dGhvblByb2plY3Qge1xuICByZWFkb25seSBhdXRvTWVyZ2U/OiBnaXRodWIuQXV0b01lcmdlO1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQeXRob25QYWNrYWdlT3B0aW9ucykge1xuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ubWVyZ2VkT3B0aW9ucyxcbiAgICB9IGFzIFB5dGhvblByb2plY3RPcHRpb25zKTtcblxuICAgIG5ldyBDb2RlT3duZXJzKHRoaXMsIG1lcmdlZE9wdGlvbnMuY29kZU93bmVycyk7XG4gICAgaWYgKG1lcmdlZE9wdGlvbnMucHVsbFJlcXVlc3RUZW1wbGF0ZSA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmdpdGh1Yj8uYWRkUHVsbFJlcXVlc3RUZW1wbGF0ZShcbiAgICAgICAgLi4uKG1lcmdlZE9wdGlvbnMucHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzID8/IFtdKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oJ0dldHRpbmcgU3RhcnRlZCcsIGdldHRpbmdTdGFydGVkU2VjdGlvbih0aGlzKSwge1xuICAgICAgb3JkZXI6IFJlYWRtZU9yZGVyLklOVFJPRFVDVElPTixcbiAgICB9KTtcbiAgICBpZiAoKG1lcmdlZE9wdGlvbnMuY29kZXFsID8/IHRydWUpICYmIHRoaXMuZ2l0aHViPy53b3JrZmxvd3NFbmFibGVkKSB7XG4gICAgICBuZXcgQ29kZVFsKHRoaXMuZ2l0aHViLCB7XG4gICAgICAgIGxhbmd1YWdlczogWydweXRob24nLCAnYWN0aW9ucyddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIHByb2plbiBvbmx5IHdpcmVzIHRoZSBtZXJnZSBxdWV1ZSB1cCBmb3Igbm9kZSBwcm9qZWN0c1xuICAgIGlmICgobWVyZ2VkT3B0aW9ucy5hdXRvTWVyZ2UgPz8gdHJ1ZSkgJiYgdGhpcy5naXRodWI/Lm1lcmdpZnkpIHtcbiAgICAgIHRoaXMuYXV0b01lcmdlID0gbmV3IGdpdGh1Yi5BdXRvTWVyZ2UoXG4gICAgICAgIHRoaXMuZ2l0aHViLFxuICAgICAgICBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgICAgKTtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL3B5dGhvbi1wYWNrYWdlLW9wdGlvbnMnO1xuIl19
package/package.json CHANGED
@@ -83,7 +83,7 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "version": "5.1.1",
86
+ "version": "5.3.0",
87
87
  "jest": {
88
88
  "coverageProvider": "v8",
89
89
  "testMatch": [