projen-modules 5.1.0 → 5.2.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 +2 -2
- package/lib/components/github/deployments.js +21 -5
- package/lib/components/readme/elements/section.js +1 -1
- package/lib/components/readme/index.js +2 -2
- package/lib/projects/cdk-ts/index.js +17 -15
- package/lib/projects/jsii/index.js +1 -1
- package/lib/projects/npm/index.js +1 -1
- package/lib/projects/python/index.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -11843,6 +11843,6 @@
|
|
|
11843
11843
|
"symbolId": "src/components/readme/elements/section:SectionOptions"
|
|
11844
11844
|
}
|
|
11845
11845
|
},
|
|
11846
|
-
"version": "5.
|
|
11847
|
-
"fingerprint": "
|
|
11846
|
+
"version": "5.2.0",
|
|
11847
|
+
"fingerprint": "PWwVscjFnc6qYiNcRGPu5aonUHqf0j0bZamaqxiHzFg="
|
|
11848
11848
|
}
|
|
@@ -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 |
|
|
107
|
-
'| ----------- | ------ |
|
|
108
|
-
...deployments.map((d) => `| ${d.environment} | ${d.region} |
|
|
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
|
|
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.
|
|
6
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Section", version: "5.2.0" };
|
|
7
7
|
options;
|
|
8
8
|
constructor(options) {
|
|
9
9
|
this.options = options;
|
|
@@ -9,7 +9,7 @@ const section_1 = require("./elements/section");
|
|
|
9
9
|
* in between
|
|
10
10
|
*/
|
|
11
11
|
class ReadmeOrder {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.ReadmeOrder", version: "5.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.ReadmeOrder", version: "5.2.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.
|
|
33
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.Readme", version: "5.2.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.
|
|
64
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.CdkTypeScriptApp", version: "5.2.0" };
|
|
65
65
|
readme;
|
|
66
66
|
constructor(options) {
|
|
67
67
|
const mergedOptions = getOptions(options);
|
|
@@ -76,21 +76,19 @@ class CdkTypeScriptApp extends awscdk_1.AwsCdkTypeScriptApp {
|
|
|
76
76
|
this.readme.addSection('Getting Started', (0, getting_started_1.gettingStartedCommands)(this), {
|
|
77
77
|
order: readme_1.ReadmeOrder.INTRODUCTION,
|
|
78
78
|
});
|
|
79
|
-
this.readme.addSection('CDK', `
|
|
79
|
+
this.readme.addSection('CDK', `Bootstrap each AWS account and region once:
|
|
80
80
|
|
|
81
81
|
\`\`\`sh
|
|
82
82
|
npx cdk bootstrap
|
|
83
83
|
\`\`\`
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
\`\`\`sh
|
|
87
|
-
npx projen build
|
|
88
|
-
\`\`\`
|
|
85
|
+
Deploy the app:
|
|
89
86
|
|
|
90
|
-
Deploy the CDK stack
|
|
91
87
|
\`\`\`sh
|
|
92
88
|
npx projen deploy
|
|
93
|
-
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
If the app has more than one stack, name the stacks to deploy or pass \`--all\`, as in \`npx projen deploy --all\`.`, { order: readme_1.ReadmeOrder.USAGE });
|
|
94
92
|
if (mergedOptions.experimentalIntegRunner) {
|
|
95
93
|
this.configureIntegRunner(mergedOptions.integRunnerVersion ?? exports.DEFAULT_INTEG_RUNNER_VERSION);
|
|
96
94
|
}
|
|
@@ -148,12 +146,16 @@ npx projen deploy
|
|
|
148
146
|
],
|
|
149
147
|
receiveArgs: true,
|
|
150
148
|
});
|
|
151
|
-
this.readme.addSection('Integration Tests', `Integration tests are run by [integ-runner](https://github.com/aws/aws-cdk-cli/tree/main/packages/%40aws-cdk/integ-runner)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
* \`npx projen integ
|
|
155
|
-
* \`npx projen integ:
|
|
156
|
-
|
|
149
|
+
this.readme.addSection('Integration Tests', `Integration tests are run by [integ-runner](https://github.com/aws/aws-cdk-cli/tree/main/packages/%40aws-cdk/integ-runner).
|
|
150
|
+
|
|
151
|
+
These tasks only compare snapshots, so they need no AWS credentials and deploy nothing. \`npx projen test\`, and so \`npx projen build\`, runs \`integ\`:
|
|
152
|
+
* \`npx projen integ\` synthesizes each test and compares it with its snapshot.
|
|
153
|
+
* \`npx projen integ:debug\` does the same with verbose diagnostics, keeping the generated snapshots of tests that differ.
|
|
154
|
+
|
|
155
|
+
These tasks deploy to AWS, in the account and region of the current AWS credentials. Each test's stacks are real, so the tasks take minutes and incur AWS costs:
|
|
156
|
+
* \`npx projen integ:update\` deploys the tests whose snapshots differ, runs their assertions, destroys the stacks and, if they pass, updates the snapshots.
|
|
157
|
+
* \`npx projen integ:force\` deploys every test in the same way, even if its snapshot is unchanged.
|
|
158
|
+
* \`npx projen integ:watch\` deploys a single test and redeploys it as its code changes, like \`cdk deploy --watch\`.
|
|
157
159
|
|
|
158
160
|
\`${INTEG_RUNNER}\` is pinned to \`${integRunnerVersion}\` and \`${INTEG_TESTS_ALPHA}\` to the release matching \`cdkVersion\`, so the upgrade workflow never changes their versions: they only change when \`cdkVersion\` or \`integRunnerVersion\` is changed. This is intended, as each \`${INTEG_TESTS_ALPHA}\` release rewrites the assertion code bundled in the snapshots.
|
|
159
161
|
|
|
@@ -163,4 +165,4 @@ integ-runner ignores changes to asset hashes, so a test whose only change is Lam
|
|
|
163
165
|
exports.CdkTypeScriptApp = CdkTypeScriptApp;
|
|
164
166
|
__exportStar(require("./cdk-typescript-app-options"), exports);
|
|
165
167
|
__exportStar(require("./deployment-environment"), exports);
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCxxRUFBcUU7QUFDckUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWlGO0FBQ2pGLDZEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRXRELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkQsU0FBUyxVQUFVLENBQUMsT0FBZ0M7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDckQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuQywyRUFBMkU7UUFDM0UsOERBQThEO1FBQzlELE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tB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aUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixVQUFVLEVBQ2hFLHVCQUFjLENBQUMsS0FBSyxDQUNyQixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUIsV0FBVyxFQUNULGlGQUFpRjtZQUNuRixRQUFRLEVBQUUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDO1lBQ3ZFLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzFCLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUN2RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMxQixXQUFXLEVBQ1Qsc0VBQXNFO1lBQ3hFLFFBQVEsRUFBRTtnQkFDUixjQUFjO2dCQUNkLElBQUk7Z0JBQ0osWUFBWTtnQkFDWixZQUFZO2dCQUNaLEtBQUs7Z0JBQ0wsb0JBQW9CO2FBQ3JCO1lBQ0QsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLG1CQUFtQixFQUNuQjs7Ozs7OztJQU9GLFlBQVkscUJBQXFCLGtCQUFrQixZQUFZLGlCQUFpQiwyTUFBMk0saUJBQWlCOztrTkFFOUYsRUFDNU0sRUFBRSxLQUFLLEVBQUUsb0JBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FDN0IsQ0FBQztJQUNKLENBQUM7O0FBekhILDRDQTBIQztBQUVELCtEQUE2QztBQUM3QywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7XG4gIEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gIEF3c0Nka1R5cGVTY3JpcHRBcHBPcHRpb25zLFxuICBMYW1iZGFSdW50aW1lLFxufSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyB9IGZyb20gJy4vY2RrLXR5cGVzY3JpcHQtYXBwLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29kZU93bmVycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVvd25lcnMnO1xuaW1wb3J0IHsgQ29kZVFsIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZXFsJztcbmltcG9ydCB7IGFkZERlcGxveW1lbnRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvZGVwbG95bWVudHMnO1xuaW1wb3J0IHtcbiAgYXV0b01lcmdlT3B0aW9ucyxcbiAgY29uZmlndXJlTWVyZ2lmeSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvbWVyZ2lmeSc7XG5pbXBvcnQgeyBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZSc7XG5pbXBvcnQgeyBSZWFkbWUsIFJlYWRtZU9yZGVyIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgZ2V0dGluZ1N0YXJ0ZWRDb21tYW5kcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVhZG1lL2dldHRpbmctc3RhcnRlZCc7XG5pbXBvcnQgeyBtZXJnZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9tZXJnZS1vcHRpb25zJztcblxuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiBgQGF3cy1jZGsvaW50ZWctcnVubmVyYCBwaW5uZWQgd2hlbiBgZXhwZXJpbWVudGFsSW50ZWdSdW5uZXJgIGlzIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOVEVHX1JVTk5FUl9WRVJTSU9OID0gJzIuMjA1LjYnO1xuXG5jb25zdCBJTlRFR19SVU5ORVIgPSAnQGF3cy1jZGsvaW50ZWctcnVubmVyJztcbmNvbnN0IElOVEVHX1RFU1RTX0FMUEhBID0gJ0Bhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhJztcblxuZnVuY3Rpb24gZ2V0T3B0aW9ucyhvcHRpb25zOiBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucykge1xuICBjb25zdCB7IG5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgbmFtZSxcbiAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgIGdpdGlnbm9yZTogWycubnBtcmMnLCAnLnZzY29kZSddLFxuICAgIHB1bGxSZXF1ZXN0VGVtcGxhdGVDb250ZW50czogREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUsXG4gICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAvLyBhdXRoZW50aWNhdGUgYXMgdGhlIEdpdEh1YiBBcHAsIHNvIG1lcmdpZnkgY2FuIGFwcHJvdmUgdXBncmFkZSBwdWxsIHJlcXVlc3RzXG4gICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKHt9KSxcbiAgICBsYW1iZGFPcHRpb25zOiB7IHJ1bnRpbWU6IExhbWJkYVJ1bnRpbWUuTk9ERUpTXzI0X1ggfSxcbiAgICBqZXN0T3B0aW9uczogeyBqZXN0VmVyc2lvbjogJ14zMCcgfSxcbiAgICAvLyBtYXRjaCB0aGUgbGFtYmRhIHJ1bnRpbWUsIHVubGVzcyBkZXJpdmVkIGZyb20gbWluTm9kZVZlcnNpb247IGEgY29uc3VtZXJcbiAgICAvLyBAdHlwZXMvbm9kZSBpbiBkZXZEZXBzIGlzIGFkZGVkIGxhdGVyLCBzbyByZXBsYWNlcyB0aGlzIG9uZVxuICAgIGRldkRlcHM6IG9wdGlvbnMubWluTm9kZVZlcnNpb24gPyBbXSA6IFsnQHR5cGVzL25vZGVAXjI0J10sXG4gICAgLy8gdHMtamVzdCBvbmx5IHJlcG9ydHMgdHlwZSBlcnJvcnMgaW4gdGhlIGZpbGVzIGEgdGVzdCBydW4gbG9hZHMsIHNvIHR5cGUtY2hlY2sgdGhlIHdob2xlIHN1aXRlIGZpcnN0XG4gICAgdHlwZWNoZWNrVGVzdHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8Q2RrVHlwZVNjcmlwdEFwcE9wdGlvbnM+O1xuXG4gIHJldHVybiBtZXJnZU9wdGlvbnMoZGVmYXVsdHMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIEEgQ0RLIGFwcGxpY2F0aW9uIGluIFR5cGVTY3JpcHRcbiAqXG4gKiBEZWZhdWx0cyB0byB0aGUgTm9kZS5qcyAyNCBMYW1iZGEgcnVudGltZSAoYGxhbWJkYU9wdGlvbnMucnVudGltZWApIHdpdGhcbiAqIG1hdGNoaW5nIGBAdHlwZXMvbm9kZWAsIGFuZCBKZXN0IDMwIChgamVzdE9wdGlvbnMuamVzdFZlcnNpb25gKS5cbiAqXG4gKiBAcGppZCBjZGstdHlwZXNjcmlwdC1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVTY3JpcHRBcHAgZXh0ZW5kcyBBd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgcmVhZG1lOiBSZWFkbWU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgICBhdXRvTWVyZ2VPcHRpb25zOiBhdXRvTWVyZ2VPcHRpb25zKG1lcmdlZE9wdGlvbnMpLFxuICAgIH0gYXMgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpO1xuXG4gICAgbmV3IENvZGVPd25lcnModGhpcywgbWVyZ2VkT3B0aW9ucy5jb2RlT3duZXJzKTtcbiAgICB0aGlzLnJlYWRtZSA9IG5ldyBSZWFkbWUodGhpcywge1xuICAgICAgZGVzY3JpcHRpb246IG1lcmdlZE9wdGlvbnMucmVhZG1lPy5kZXNjcmlwdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKCdHZXR0aW5nIFN0YXJ0ZWQnLCBnZXR0aW5nU3RhcnRlZENvbW1hbmRzKHRoaXMpLCB7XG4gICAgICBvcmRlcjogUmVhZG1lT3JkZXIuSU5UUk9EVUNUSU9OLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnQ0RLJyxcbiAgICAgIGBPbiBmaXJzdCBydW4gb2YgYSBDREsgaW5zdGFsbGF0aW9uOlxuXG5cXGBcXGBcXGBzaFxubnB4IGNkayBib290c3RyYXBcblxcYFxcYFxcYFxuXG5CdWlsZCB0aGUgcHJvamVjdFxuXFxgXFxgXFxgc2hcbm5weCBwcm9qZW4gYnVpbGRcblxcYFxcYFxcYFxuXG5EZXBsb3kgdGhlIENESyBzdGFja1xuXFxgXFxgXFxgc2hcbm5weCBwcm9qZW4gZGVwbG95XG5cXGBcXGBcXGBgLFxuICAgICAgeyBvcmRlcjogUmVhZG1lT3JkZXIuVVNBR0UgfSxcbiAgICApO1xuICAgIGlmIChtZXJnZWRPcHRpb25zLmV4cGVyaW1lbnRhbEludGVnUnVubmVyKSB7XG4gICAgICB0aGlzLmNvbmZpZ3VyZUludGVnUnVubmVyKFxuICAgICAgICBtZXJnZWRPcHRpb25zLmludGVnUnVubmVyVmVyc2lvbiA/PyBERUZBVUxUX0lOVEVHX1JVTk5FUl9WRVJTSU9OLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKChtZXJnZWRPcHRpb25zLmNvZGVxbCA/PyB0cnVlKSAmJiB0aGlzLmdpdGh1Yj8ud29ya2Zsb3dzRW5hYmxlZCkge1xuICAgICAgbmV3IENvZGVRbCh0aGlzLmdpdGh1Yiwge1xuICAgICAgICAvLyBpbnRlZy1ydW5uZXIgc25hcHNob3QgYXNzZXRzIGFyZSBidW5kbGVzIG9mIGRlcGVuZGVuY2llcywgcmVuYW1lZCBvbiBldmVyeSB1cGRhdGVcbiAgICAgICAgcGF0aHNJZ25vcmU6IG1lcmdlZE9wdGlvbnMuY29kZXFsUGF0aHNJZ25vcmUgPz8gW1xuICAgICAgICAgIENvZGVRbC5JTlRFR19TTkFQU0hPVF9QQVRIUyxcbiAgICAgICAgXSxcbiAgICAgICAgYnJhbmNoZXM6IFttZXJnZWRPcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoXSxcbiAgICAgICAgbGFuZ3VhZ2VzOiBbJ2phdmFzY3JpcHQtdHlwZXNjcmlwdCcsICdhY3Rpb25zJ10sXG4gICAgICB9KTtcbiAgICB9XG4gICAgYWRkRGVwbG95bWVudHModGhpcywge1xuICAgICAgZGVwbG95bWVudHM6IG1lcmdlZE9wdGlvbnMuZGVwbG95bWVudHMgPz8gW10sXG4gICAgICBub2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgIHJlbGVhc2VXb3JrZmxvd05hbWU6IG1lcmdlZE9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5hdXRvTWVyZ2UpIHtcbiAgICAgIGNvbmZpZ3VyZU1lcmdpZnkodGhpcywge1xuICAgICAgICBhcHByb3ZlZFJldmlld3M6IG1lcmdlZE9wdGlvbnMuYXV0b01lcmdlT3B0aW9ucz8uYXBwcm92ZWRSZXZpZXdzLFxuICAgICAgICB0cnVzdGVkQXV0aG9yczogbWVyZ2VkT3B0aW9ucy50cnVzdGVkQXV0aG9ycyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5zIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGRlcGVuZGVuY2llcyB0aGF0IHByb2plbiBhZGRzIGF0IGBsYXRlc3RgLCBhc1xuICAgKiBlYWNoIGBAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYWAgcmVsZWFzZSByZXdyaXRlcyB0aGUgYnVuZGxlZCBhc3NlcnRpb25cbiAgICogY29kZSBpbiB0aGUgc25hcHNob3RzIGFuZCBkcmlmdHMgZnJvbSBgYXdzLWNkay1saWJgLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25maWd1cmVJbnRlZ1J1bm5lcihpbnRlZ1J1bm5lclZlcnNpb246IHN0cmluZykge1xuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KElOVEVHX1JVTk5FUiwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShJTlRFR19URVNUU19BTFBIQSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICB0aGlzLmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGAke0lOVEVHX1JVTk5FUn1AJHtpbnRlZ1J1bm5lclZlcnNpb259YCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgICk7XG4gICAgdGhpcy5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHtJTlRFR19URVNUU19BTFBIQX1AJHt0aGlzLmNka0RlcHMuY2RrTWluaW11bVZlcnNpb259LWFscGhhLjBgLFxuICAgICAgRGVwZW5kZW5jeVR5cGUuQlVJTEQsXG4gICAgKTtcblxuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6Zm9yY2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSdW4gaW50ZWdyYXRpb24gc25hcHNob3QgdGVzdHMsIGZvcmNpbmcgdGVzdHMgdG8gcnVuIGV2ZW4gaWYgdGhlcmUncyBubyBjaGFuZ2VzXCIsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0tZm9yY2UnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6d2F0Y2gnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1dhdGNoIHRoZSBpbnRlZ3JhdGlvbiBzbmFwc2hvdCB0ZXN0cycsXG4gICAgICBleGVjQXJnczogWydpbnRlZy1ydW5uZXInLCAnJEAnLCAnLS1sYW5ndWFnZScsICd0eXBlc2NyaXB0JywgJy0td2F0Y2gnXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFzaygnaW50ZWc6ZGVidWcnLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1J1biBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MgYW5kIGZhaWx1cmUgYXJ0aWZhY3RzJyxcbiAgICAgIGV4ZWNBcmdzOiBbXG4gICAgICAgICdpbnRlZy1ydW5uZXInLFxuICAgICAgICAnJEAnLFxuICAgICAgICAnLS1sYW5ndWFnZScsXG4gICAgICAgICd0eXBlc2NyaXB0JyxcbiAgICAgICAgJy12dicsXG4gICAgICAgICctLWluc3BlY3QtZmFpbHVyZXMnLFxuICAgICAgXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdJbnRlZ3JhdGlvbiBUZXN0cycsXG4gICAgICBgSW50ZWdyYXRpb24gdGVzdHMgYXJlIHJ1biBieSBbaW50ZWctcnVubmVyXShodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGstY2xpL3RyZWUvbWFpbi9wYWNrYWdlcy8lNDBhd3MtY2RrL2ludGVnLXJ1bm5lcikgYXMgcGFydCBvZiBcXGBucHggcHJvamVuIHRlc3RcXGAsIHdoaWNoIGNvbXBhcmVzIGVhY2ggdGVzdCdzIHNuYXBzaG90IHdpdGggYSBmcmVzaCBzeW50aC4gUnVuIHRoZW0gd2l0aDpcbiogXFxgbnB4IHByb2plbiBpbnRlZ1xcYCB0byBydW4gdGhlIHNuYXBzaG90IHRlc3RzLlxuKiBcXGBucHggcHJvamVuIGludGVnOnVwZGF0ZVxcYCB0byB1cGRhdGUgdGhlIHNuYXBzaG90cyBvZiB0ZXN0cyB0aGF0IGNoYW5nZWQuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6Zm9yY2VcXGAgdG8gcnVuIGFsbCB0ZXN0cywgZXZlbiBpZiB0aGVpciBzbmFwc2hvdHMgYXJlIHVuY2hhbmdlZC5cbiogXFxgbnB4IHByb2plbiBpbnRlZzp3YXRjaFxcYCB0byB3YXRjaCB0aGUgdGVzdHMuXG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6ZGVidWdcXGAgdG8gcnVuIHRoZSB0ZXN0cyB3aXRoIHZlcmJvc2UgZGlhZ25vc3RpY3MgYW5kIGtlZXAgdGhlIGFydGlmYWN0cyBvZiBmYWlsZWQgdGVzdHMuXG5cblxcYCR7SU5URUdfUlVOTkVSfVxcYCBpcyBwaW5uZWQgdG8gXFxgJHtpbnRlZ1J1bm5lclZlcnNpb259XFxgIGFuZCBcXGAke0lOVEVHX1RFU1RTX0FMUEhBfVxcYCB0byB0aGUgcmVsZWFzZSBtYXRjaGluZyBcXGBjZGtWZXJzaW9uXFxgLCBzbyB0aGUgdXBncmFkZSB3b3JrZmxvdyBuZXZlciBjaGFuZ2VzIHRoZWlyIHZlcnNpb25zOiB0aGV5IG9ubHkgY2hhbmdlIHdoZW4gXFxgY2RrVmVyc2lvblxcYCBvciBcXGBpbnRlZ1J1bm5lclZlcnNpb25cXGAgaXMgY2hhbmdlZC4gVGhpcyBpcyBpbnRlbmRlZCwgYXMgZWFjaCBcXGAke0lOVEVHX1RFU1RTX0FMUEhBfVxcYCByZWxlYXNlIHJld3JpdGVzIHRoZSBhc3NlcnRpb24gY29kZSBidW5kbGVkIGluIHRoZSBzbmFwc2hvdHMuXG5cbmludGVnLXJ1bm5lciBpZ25vcmVzIGNoYW5nZXMgdG8gYXNzZXQgaGFzaGVzLCBzbyBhIHRlc3Qgd2hvc2Ugb25seSBjaGFuZ2UgaXMgTGFtYmRhIGNvZGUgaXMgcmVwb3J0ZWQgYXMgXFxgVU5DSEFOR0VEXFxgIGFuZCBpcyBub3QgZGVwbG95ZWQuIFJ1biBcXGBucHggcHJvamVuIGludGVnOmZvcmNlXFxgIHRvIGV4ZXJjaXNlIG5ldyBMYW1iZGEgY29kZSBlbmQgdG8gZW5kLmAsXG4gICAgICB7IG9yZGVyOiBSZWFkbWVPcmRlci5VU0FHRSB9LFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2RlcGxveW1lbnQtZW52aXJvbm1lbnQnO1xuIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvY2RrLXRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCw4Q0FJMkI7QUFFM0IsbUVBQWdFO0FBQ2hFLDJEQUF3RDtBQUN4RCxxRUFBcUU7QUFDckUsNkRBR3lDO0FBQ3pDLHlGQUE4RjtBQUM5RixvREFBOEQ7QUFDOUQsNkVBQWlGO0FBQ2pGLDZEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEsNEJBQTRCLEdBQUcsU0FBUyxDQUFDO0FBRXRELE1BQU0sWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBQzdDLE1BQU0saUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFFdkQsU0FBUyxVQUFVLENBQUMsT0FBZ0M7SUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUV6QixNQUFNLFFBQVEsR0FBRztRQUNmLElBQUk7UUFDSixvQkFBb0IsRUFBRSxNQUFNO1FBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDaEMsMkJBQTJCLEVBQUUscURBQTZCO1FBQzFELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLCtFQUErRTtRQUMvRSxpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDckQsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtRQUNuQywyRUFBMkU7UUFDM0UsOERBQThEO1FBQzlELE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDMUQsc0dBQXNHO1FBQ3RHLGNBQWMsRUFBRSxJQUFJO0tB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QWlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsVUFBVSxFQUNoRSx1QkFBYyxDQUFDLEtBQUssQ0FDckIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzFCLFdBQVcsRUFDVCxpRkFBaUY7WUFDbkYsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUN2RSxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUMxQixXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUM7WUFDdkUsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUIsV0FBVyxFQUNULHNFQUFzRTtZQUN4RSxRQUFRLEVBQUU7Z0JBQ1IsY0FBYztnQkFDZCxJQUFJO2dCQUNKLFlBQVk7Z0JBQ1osWUFBWTtnQkFDWixLQUFLO2dCQUNMLG9CQUFvQjthQUNyQjtZQUNELFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUNwQixtQkFBbUIsRUFDbkI7Ozs7Ozs7Ozs7O0lBV0YsWUFBWSxxQkFBcUIsa0JBQWtCLFlBQVksaUJBQWlCLDJNQUEyTSxpQkFBaUI7O2tOQUU5RixFQUM1TSxFQUFFLEtBQUssRUFBRSxvQkFBVyxDQUFDLEtBQUssRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUEzSEgsNENBNEhDO0FBRUQsK0RBQTZDO0FBQzdDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlcGVuZGVuY3lUeXBlLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHtcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMsXG4gIExhbWJkYVJ1bnRpbWUsXG59IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IENka1R5cGVTY3JpcHRBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstdHlwZXNjcmlwdC1hcHAtb3B0aW9ucyc7XG5pbXBvcnQgeyBDb2RlT3duZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvY29kZW93bmVycyc7XG5pbXBvcnQgeyBDb2RlUWwgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9jb2RlcWwnO1xuaW1wb3J0IHsgYWRkRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9kZXBsb3ltZW50cyc7XG5pbXBvcnQge1xuICBhdXRvTWVyZ2VPcHRpb25zLFxuICBjb25maWd1cmVNZXJnaWZ5LFxufSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9tZXJnaWZ5JztcbmltcG9ydCB7IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9naXRodWIvcHVsbC1yZXF1ZXN0LXRlbXBsYXRlJztcbmltcG9ydCB7IFJlYWRtZSwgUmVhZG1lT3JkZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlYWRtZSc7XG5pbXBvcnQgeyBnZXR0aW5nU3RhcnRlZENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUvZ2V0dGluZy1zdGFydGVkJztcbmltcG9ydCB7IG1lcmdlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL21lcmdlLW9wdGlvbnMnO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIGBAYXdzLWNkay9pbnRlZy1ydW5uZXJgIHBpbm5lZCB3aGVuIGBleHBlcmltZW50YWxJbnRlZ1J1bm5lcmAgaXMgZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5URUdfUlVOTkVSX1ZFUlNJT04gPSAnMi4yMDUuNic7XG5cbmNvbnN0IElOVEVHX1JVTk5FUiA9ICdAYXdzLWNkay9pbnRlZy1ydW5uZXInO1xuY29uc3QgSU5URUdfVEVTVFNfQUxQSEEgPSAnQGF3cy1jZGsvaW50ZWctdGVzdHMtYWxwaGEnO1xuXG5mdW5jdGlvbiBnZXRPcHRpb25zKG9wdGlvbnM6IENka1R5cGVTY3JpcHRBcHBPcHRpb25zKSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBuYW1lLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgZ2l0aWdub3JlOiBbJy5ucG1yYycsICcudnNjb2RlJ10sXG4gICAgcHVsbFJlcXVlc3RUZW1wbGF0ZUNvbnRlbnRzOiBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSxcbiAgICBwcm9qZW5yY1RzOiB0cnVlLFxuICAgIC8vIGF1dGhlbnRpY2F0ZSBhcyB0aGUgR2l0SHViIEFwcCwgc28gbWVyZ2lmeSBjYW4gYXBwcm92ZSB1cGdyYWRlIHB1bGwgcmVxdWVzdHNcbiAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoe30pLFxuICAgIGxhbWJkYU9wdGlvbnM6IHsgcnVudGltZTogTGFtYmRhUnVudGltZS5OT0RFSlNfMjRfWCB9LFxuICAgIGplc3RPcHRpb25zOiB7IGplc3RWZXJzaW9uOiAnXjMwJyB9LFxuICAgIC8vIG1hdGNoIHRoZSBsYW1iZGEgcnVudGltZSwgdW5sZXNzIGRlcml2ZWQgZnJvbSBtaW5Ob2RlVmVyc2lvbjsgYSBjb25zdW1lclxuICAgIC8vIEB0eXBlcy9ub2RlIGluIGRldkRlcHMgaXMgYWRkZWQgbGF0ZXIsIHNvIHJlcGxhY2VzIHRoaXMgb25lXG4gICAgZGV2RGVwczogb3B0aW9ucy5taW5Ob2RlVmVyc2lvbiA/IFtdIDogWydAdHlwZXMvbm9kZUBeMjQnXSxcbiAgICAvLyB0cy1qZXN0IG9ubHkgcmVwb3J0cyB0eXBlIGVycm9ycyBpbiB0aGUgZmlsZXMgYSB0ZXN0IHJ1biBsb2Fkcywgc28gdHlwZS1jaGVjayB0aGUgd2hvbGUgc3VpdGUgZmlyc3RcbiAgICB0eXBlY2hlY2tUZXN0czogdHJ1ZSxcbiAgfSBzYXRpc2ZpZXMgUGFydGlhbDxDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucz47XG5cbiAgcmV0dXJuIG1lcmdlT3B0aW9ucyhkZWZhdWx0cywgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogQSBDREsgYXBwbGljYXRpb24gaW4gVHlwZVNjcmlwdFxuICpcbiAqIERlZmF1bHRzIHRvIHRoZSBOb2RlLmpzIDI0IExhbWJkYSBydW50aW1lIChgbGFtYmRhT3B0aW9ucy5ydW50aW1lYCkgd2l0aFxuICogbWF0Y2hpbmcgYEB0eXBlcy9ub2RlYCwgYW5kIEplc3QgMzAgKGBqZXN0T3B0aW9ucy5qZXN0VmVyc2lvbmApLlxuICpcbiAqIEBwamlkIGNkay10eXBlc2NyaXB0LWFwcFxuICovXG5leHBvcnQgY2xhc3MgQ2RrVHlwZVNjcmlwdEFwcCBleHRlbmRzIEF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucykge1xuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ubWVyZ2VkT3B0aW9ucyxcbiAgICAgIGF1dG9NZXJnZU9wdGlvbnM6IGF1dG9NZXJnZU9wdGlvbnMobWVyZ2VkT3B0aW9ucyksXG4gICAgfSBhcyBBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucyk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzLCB7XG4gICAgICBkZXNjcmlwdGlvbjogbWVyZ2VkT3B0aW9ucy5yZWFkbWU/LmRlc2NyaXB0aW9uLFxuICAgIH0pO1xuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oJ0dldHRpbmcgU3RhcnRlZCcsIGdldHRpbmdTdGFydGVkQ29tbWFuZHModGhpcyksIHtcbiAgICAgIG9yZGVyOiBSZWFkbWVPcmRlci5JTlRST0RVQ1RJT04sXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkbWUuYWRkU2VjdGlvbihcbiAgICAgICdDREsnLFxuICAgICAgYEJvb3RzdHJhcCBlYWNoIEFXUyBhY2NvdW50IGFuZCByZWdpb24gb25jZTpcblxuXFxgXFxgXFxgc2hcbm5weCBjZGsgYm9vdHN0cmFwXG5cXGBcXGBcXGBcblxuRGVwbG95IHRoZSBhcHA6XG5cblxcYFxcYFxcYHNoXG5ucHggcHJvamVuIGRlcGxveVxuXFxgXFxgXFxgXG5cbklmIHRoZSBhcHAgaGFzIG1vcmUgdGhhbiBvbmUgc3RhY2ssIG5hbWUgdGhlIHN0YWNrcyB0byBkZXBsb3kgb3IgcGFzcyBcXGAtLWFsbFxcYCwgYXMgaW4gXFxgbnB4IHByb2plbiBkZXBsb3kgLS1hbGxcXGAuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgICBpZiAobWVyZ2VkT3B0aW9ucy5leHBlcmltZW50YWxJbnRlZ1J1bm5lcikge1xuICAgICAgdGhpcy5jb25maWd1cmVJbnRlZ1J1bm5lcihcbiAgICAgICAgbWVyZ2VkT3B0aW9ucy5pbnRlZ1J1bm5lclZlcnNpb24gPz8gREVGQVVMVF9JTlRFR19SVU5ORVJfVkVSU0lPTixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICgobWVyZ2VkT3B0aW9ucy5jb2RlcWwgPz8gdHJ1ZSkgJiYgdGhpcy5naXRodWI/LndvcmtmbG93c0VuYWJsZWQpIHtcbiAgICAgIG5ldyBDb2RlUWwodGhpcy5naXRodWIsIHtcbiAgICAgICAgLy8gaW50ZWctcnVubmVyIHNuYXBzaG90IGFzc2V0cyBhcmUgYnVuZGxlcyBvZiBkZXBlbmRlbmNpZXMsIHJlbmFtZWQgb24gZXZlcnkgdXBkYXRlXG4gICAgICAgIHBhdGhzSWdub3JlOiBtZXJnZWRPcHRpb25zLmNvZGVxbFBhdGhzSWdub3JlID8/IFtcbiAgICAgICAgICBDb2RlUWwuSU5URUdfU05BUFNIT1RfUEFUSFMsXG4gICAgICAgIF0sXG4gICAgICAgIGJyYW5jaGVzOiBbbWVyZ2VkT3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaF0sXG4gICAgICAgIGxhbmd1YWdlczogWydqYXZhc2NyaXB0LXR5cGVzY3JpcHQnLCAnYWN0aW9ucyddLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGFkZERlcGxveW1lbnRzKHRoaXMsIHtcbiAgICAgIGRlcGxveW1lbnRzOiBtZXJnZWRPcHRpb25zLmRlcGxveW1lbnRzID8/IFtdLFxuICAgICAgbm9kZVZlcnNpb246IHRoaXMubm9kZVZlcnNpb24sXG4gICAgICByZWxlYXNlV29ya2Zsb3dOYW1lOiBtZXJnZWRPcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUsXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuYXV0b01lcmdlKSB7XG4gICAgICBjb25maWd1cmVNZXJnaWZ5KHRoaXMsIHtcbiAgICAgICAgYXBwcm92ZWRSZXZpZXdzOiBtZXJnZWRPcHRpb25zLmF1dG9NZXJnZU9wdGlvbnM/LmFwcHJvdmVkUmV2aWV3cyxcbiAgICAgICAgdHJ1c3RlZEF1dGhvcnM6IG1lcmdlZE9wdGlvbnMudHJ1c3RlZEF1dGhvcnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGlucyB0aGUgaW50ZWdyYXRpb24gdGVzdCBkZXBlbmRlbmNpZXMgdGhhdCBwcm9qZW4gYWRkcyBhdCBgbGF0ZXN0YCwgYXNcbiAgICogZWFjaCBgQGF3cy1jZGsvaW50ZWctdGVzdHMtYWxwaGFgIHJlbGVhc2UgcmV3cml0ZXMgdGhlIGJ1bmRsZWQgYXNzZXJ0aW9uXG4gICAqIGNvZGUgaW4gdGhlIHNuYXBzaG90cyBhbmQgZHJpZnRzIGZyb20gYGF3cy1jZGstbGliYC5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlSW50ZWdSdW5uZXIoaW50ZWdSdW5uZXJWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShJTlRFR19SVU5ORVIsIERlcGVuZGVuY3lUeXBlLkRFVkVOVik7XG4gICAgdGhpcy5kZXBzLnJlbW92ZURlcGVuZGVuY3koSU5URUdfVEVTVFNfQUxQSEEsIERlcGVuZGVuY3lUeXBlLkRFVkVOVik7XG4gICAgdGhpcy5kZXBzLmFkZERlcGVuZGVuY3koXG4gICAgICBgJHtJTlRFR19SVU5ORVJ9QCR7aW50ZWdSdW5uZXJWZXJzaW9ufWAsXG4gICAgICBEZXBlbmRlbmN5VHlwZS5CVUlMRCxcbiAgICApO1xuICAgIHRoaXMuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYCR7SU5URUdfVEVTVFNfQUxQSEF9QCR7dGhpcy5jZGtEZXBzLmNka01pbmltdW1WZXJzaW9ufS1hbHBoYS4wYCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgICk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOmZvcmNlJywge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiUnVuIGludGVncmF0aW9uIHNuYXBzaG90IHRlc3RzLCBmb3JjaW5nIHRlc3RzIHRvIHJ1biBldmVuIGlmIHRoZXJlJ3Mgbm8gY2hhbmdlc1wiLFxuICAgICAgZXhlY0FyZ3M6IFsnaW50ZWctcnVubmVyJywgJyRAJywgJy0tbGFuZ3VhZ2UnLCAndHlwZXNjcmlwdCcsICctLWZvcmNlJ10sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOndhdGNoJywge1xuICAgICAgZGVzY3JpcHRpb246ICdXYXRjaCB0aGUgaW50ZWdyYXRpb24gc25hcHNob3QgdGVzdHMnLFxuICAgICAgZXhlY0FyZ3M6IFsnaW50ZWctcnVubmVyJywgJyRAJywgJy0tbGFuZ3VhZ2UnLCAndHlwZXNjcmlwdCcsICctLXdhdGNoJ10sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhc2soJ2ludGVnOmRlYnVnJywge1xuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdSdW4gaW50ZWdyYXRpb24gdGVzdHMgd2l0aCB2ZXJib3NlIGRpYWdub3N0aWNzIGFuZCBmYWlsdXJlIGFydGlmYWN0cycsXG4gICAgICBleGVjQXJnczogW1xuICAgICAgICAnaW50ZWctcnVubmVyJyxcbiAgICAgICAgJyRAJyxcbiAgICAgICAgJy0tbGFuZ3VhZ2UnLFxuICAgICAgICAndHlwZXNjcmlwdCcsXG4gICAgICAgICctdnYnLFxuICAgICAgICAnLS1pbnNwZWN0LWZhaWx1cmVzJyxcbiAgICAgIF0sXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVhZG1lLmFkZFNlY3Rpb24oXG4gICAgICAnSW50ZWdyYXRpb24gVGVzdHMnLFxuICAgICAgYEludGVncmF0aW9uIHRlc3RzIGFyZSBydW4gYnkgW2ludGVnLXJ1bm5lcl0oaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS90cmVlL21haW4vcGFja2FnZXMvJTQwYXdzLWNkay9pbnRlZy1ydW5uZXIpLlxuXG5UaGVzZSB0YXNrcyBvbmx5IGNvbXBhcmUgc25hcHNob3RzLCBzbyB0aGV5IG5lZWQgbm8gQVdTIGNyZWRlbnRpYWxzIGFuZCBkZXBsb3kgbm90aGluZy4gXFxgbnB4IHByb2plbiB0ZXN0XFxgLCBhbmQgc28gXFxgbnB4IHByb2plbiBidWlsZFxcYCwgcnVucyBcXGBpbnRlZ1xcYDpcbiogXFxgbnB4IHByb2plbiBpbnRlZ1xcYCBzeW50aGVzaXplcyBlYWNoIHRlc3QgYW5kIGNvbXBhcmVzIGl0IHdpdGggaXRzIHNuYXBzaG90LlxuKiBcXGBucHggcHJvamVuIGludGVnOmRlYnVnXFxgIGRvZXMgdGhlIHNhbWUgd2l0aCB2ZXJib3NlIGRpYWdub3N0aWNzLCBrZWVwaW5nIHRoZSBnZW5lcmF0ZWQgc25hcHNob3RzIG9mIHRlc3RzIHRoYXQgZGlmZmVyLlxuXG5UaGVzZSB0YXNrcyBkZXBsb3kgdG8gQVdTLCBpbiB0aGUgYWNjb3VudCBhbmQgcmVnaW9uIG9mIHRoZSBjdXJyZW50IEFXUyBjcmVkZW50aWFscy4gRWFjaCB0ZXN0J3Mgc3RhY2tzIGFyZSByZWFsLCBzbyB0aGUgdGFza3MgdGFrZSBtaW51dGVzIGFuZCBpbmN1ciBBV1MgY29zdHM6XG4qIFxcYG5weCBwcm9qZW4gaW50ZWc6dXBkYXRlXFxgIGRlcGxveXMgdGhlIHRlc3RzIHdob3NlIHNuYXBzaG90cyBkaWZmZXIsIHJ1bnMgdGhlaXIgYXNzZXJ0aW9ucywgZGVzdHJveXMgdGhlIHN0YWNrcyBhbmQsIGlmIHRoZXkgcGFzcywgdXBkYXRlcyB0aGUgc25hcHNob3RzLlxuKiBcXGBucHggcHJvamVuIGludGVnOmZvcmNlXFxgIGRlcGxveXMgZXZlcnkgdGVzdCBpbiB0aGUgc2FtZSB3YXksIGV2ZW4gaWYgaXRzIHNuYXBzaG90IGlzIHVuY2hhbmdlZC5cbiogXFxgbnB4IHByb2plbiBpbnRlZzp3YXRjaFxcYCBkZXBsb3lzIGEgc2luZ2xlIHRlc3QgYW5kIHJlZGVwbG95cyBpdCBhcyBpdHMgY29kZSBjaGFuZ2VzLCBsaWtlIFxcYGNkayBkZXBsb3kgLS13YXRjaFxcYC5cblxuXFxgJHtJTlRFR19SVU5ORVJ9XFxgIGlzIHBpbm5lZCB0byBcXGAke2ludGVnUnVubmVyVmVyc2lvbn1cXGAgYW5kIFxcYCR7SU5URUdfVEVTVFNfQUxQSEF9XFxgIHRvIHRoZSByZWxlYXNlIG1hdGNoaW5nIFxcYGNka1ZlcnNpb25cXGAsIHNvIHRoZSB1cGdyYWRlIHdvcmtmbG93IG5ldmVyIGNoYW5nZXMgdGhlaXIgdmVyc2lvbnM6IHRoZXkgb25seSBjaGFuZ2Ugd2hlbiBcXGBjZGtWZXJzaW9uXFxgIG9yIFxcYGludGVnUnVubmVyVmVyc2lvblxcYCBpcyBjaGFuZ2VkLiBUaGlzIGlzIGludGVuZGVkLCBhcyBlYWNoIFxcYCR7SU5URUdfVEVTVFNfQUxQSEF9XFxgIHJlbGVhc2UgcmV3cml0ZXMgdGhlIGFzc2VydGlvbiBjb2RlIGJ1bmRsZWQgaW4gdGhlIHNuYXBzaG90cy5cblxuaW50ZWctcnVubmVyIGlnbm9yZXMgY2hhbmdlcyB0byBhc3NldCBoYXNoZXMsIHNvIGEgdGVzdCB3aG9zZSBvbmx5IGNoYW5nZSBpcyBMYW1iZGEgY29kZSBpcyByZXBvcnRlZCBhcyBcXGBVTkNIQU5HRURcXGAgYW5kIGlzIG5vdCBkZXBsb3llZC4gUnVuIFxcYG5weCBwcm9qZW4gaW50ZWc6Zm9yY2VcXGAgdG8gZXhlcmNpc2UgbmV3IExhbWJkYSBjb2RlIGVuZCB0byBlbmQuYCxcbiAgICAgIHsgb3JkZXI6IFJlYWRtZU9yZGVyLlVTQUdFIH0sXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL2Nkay10eXBlc2NyaXB0LWFwcC1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95bWVudC1lbnZpcm9ubWVudCc7XG4iXX0=
|
|
@@ -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.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.JsiiProject", version: "5.2.0" };
|
|
52
52
|
readme;
|
|
53
53
|
constructor(options) {
|
|
54
54
|
const mergedOptions = getOptions(options);
|
|
@@ -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.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.NpmPackage", version: "5.2.0" };
|
|
51
51
|
readme;
|
|
52
52
|
constructor(options) {
|
|
53
53
|
const mergedOptions = getOptions(options);
|
|
@@ -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.
|
|
46
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen-modules.PythonPackage", version: "5.2.0" };
|
|
47
47
|
autoMerge;
|
|
48
48
|
readme;
|
|
49
49
|
constructor(options) {
|