@xpertss/projen-types 0.0.21 → 0.0.23

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.
Files changed (45) hide show
  1. package/.jsii +445 -309
  2. package/API.md +1453 -385
  3. package/README.md +40 -16
  4. package/lib/actions/action-build-workflow.js +11 -4
  5. package/lib/actions/action-dogfood-workflow.js +1 -1
  6. package/lib/actions/action-sonar-workflow.d.ts +10 -29
  7. package/lib/actions/action-sonar-workflow.js +9 -58
  8. package/lib/actions/github-action-project.d.ts +5 -22
  9. package/lib/actions/github-action-project.js +16 -12
  10. package/lib/cdk/app-runtime-scaffold.js +1 -1
  11. package/lib/cdk/cdk-app-project.js +1 -1
  12. package/lib/cdk/cdk-infra-project.js +1 -1
  13. package/lib/cdk/cdk-typescript-base.d.ts +3 -0
  14. package/lib/cdk/cdk-typescript-base.js +14 -2
  15. package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
  16. package/lib/cdk/components/edge-networking-constructs.js +1 -1
  17. package/lib/cdk/database-component.js +1 -1
  18. package/lib/cdk/options.d.ts +2 -1
  19. package/lib/cdk/options.js +1 -1
  20. package/lib/common/projen-drift-check-workflow.js +1 -1
  21. package/lib/common/sonar-options.d.ts +29 -0
  22. package/lib/common/sonar-options.js +3 -0
  23. package/lib/common/sonar-workflow.d.ts +48 -0
  24. package/lib/common/sonar-workflow.js +75 -0
  25. package/lib/common/workflow-change-notice-workflow.js +1 -1
  26. package/lib/index.d.ts +2 -0
  27. package/lib/index.js +3 -1
  28. package/lib/java/components/cdk-deploy-hook.js +1 -1
  29. package/lib/java/components/code-index-workflow.js +1 -1
  30. package/lib/java/components/docker-publish.js +1 -1
  31. package/lib/java/components/flyway-migration.js +1 -1
  32. package/lib/java/components/github-packages-publish.js +1 -1
  33. package/lib/java/components/maven-central-publish.js +1 -1
  34. package/lib/java/components/maven-upgrade-report.js +1 -1
  35. package/lib/java/java-app-project.js +1 -1
  36. package/lib/java/java-library-project.js +1 -1
  37. package/lib/java/java-maven-base.d.ts +6 -2
  38. package/lib/java/java-maven-base.js +18 -14
  39. package/lib/java/java-service-project.js +1 -1
  40. package/lib/java/java-spring-boot-project.js +1 -1
  41. package/lib/java/maven/maven-module.js +1 -1
  42. package/lib/java/maven/maven-pom.js +1 -1
  43. package/lib/java/options.d.ts +2 -3
  44. package/lib/java/options.js +1 -1
  45. package/package.json +1 -1
@@ -9,6 +9,7 @@ const internal_actions_1 = require("../common/internal-actions");
9
9
  const license_file_1 = require("../common/license-file");
10
10
  const manual_deploy_workflow_1 = require("../common/manual-deploy-workflow");
11
11
  const projen_drift_check_workflow_1 = require("../common/projen-drift-check-workflow");
12
+ const sonar_workflow_1 = require("../common/sonar-workflow");
12
13
  const workflow_change_notice_workflow_1 = require("../common/workflow-change-notice-workflow");
13
14
  const workflow_purpose_1 = require("../common/workflow-purpose");
14
15
  // Resolved through Node's normal module resolution, so in a *published*
@@ -24,7 +25,9 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
24
25
  * `ManualDeployWorkflow` when `environments` is provided.
25
26
  */
26
27
  class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
27
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.21" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.23" };
29
+ /** Set only when `sonarHostUrl` is provided. */
30
+ sonarWorkflow;
28
31
  constructor(options) {
29
32
  super({
30
33
  // Spread first, overrides after: forwarding the caller's options is
@@ -101,6 +104,15 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
101
104
  gheTokenSecret: options.gheTokenSecret ?? constants_1.DEFAULT_GHE_TOKEN_SECRET,
102
105
  });
103
106
  new workflow_change_notice_workflow_1.WorkflowChangeNoticeWorkflow(this);
107
+ if (options.sonarHostUrl) {
108
+ this.sonarWorkflow = new sonar_workflow_1.SonarWorkflow(this, {
109
+ sonarHostUrl: options.sonarHostUrl,
110
+ sonarOrganization: options.sonarOrganization,
111
+ sonarTokenSecret: options.sonarTokenSecret,
112
+ sonarPullRequestGate: options.sonarPullRequestGate,
113
+ sonarProjectKey: options.sonarProjectKey,
114
+ });
115
+ }
104
116
  // `build` is projen's built-in NodeProject workflow (enabled via
105
117
  // `buildWorkflowOptions` above), not one this package constructs -
106
118
  // annotate it the same way as the others.
@@ -136,4 +148,4 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
136
148
  }
137
149
  }
138
150
  exports.CdkTypescriptProject = CdkTypescriptProject;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR5cGVzY3JpcHQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9EO0FBRXBELG1EQUErRDtBQUMvRCx5REFBeUQ7QUFFekQsaUVBQTBFO0FBQzFFLHlEQUF3RDtBQUN4RCw2RUFBd0U7QUFDeEUsdUZBQWlGO0FBQ2pGLCtGQUF5RjtBQUN6RixpRUFBaUU7QUFFakUsd0VBQXdFO0FBQ3hFLDZFQUE2RTtBQUM3RSxtQ0FBbUM7QUFDbkMsaUVBQWlFO0FBQ2pFLE1BQU0sb0JBQW9CLEdBQVcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBTTNFOzs7Ozs7R0FNRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjs7SUFDbEUsWUFBWSxPQUFvQztRQUM5QyxLQUFLLENBQUM7WUFDSixvRUFBb0U7WUFDcEUscUVBQXFFO1lBQ3JFLGlFQUFpRTtZQUNqRSx3REFBd0Q7WUFDeEQscUVBQXFFO1lBQ3JFLDZEQUE2RDtZQUM3RCxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztZQUMzQyw2REFBNkQ7WUFDN0QsZ0RBQWdEO1lBQ2hELFFBQVEsRUFBRSxLQUFLO1lBQ2Ysb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQix5RUFBeUU7WUFDekUscUVBQXFFO1lBQ3JFLHVFQUF1RTtZQUN2RSx3RUFBd0U7WUFDeEUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRTtZQUN6QyxzRUFBc0U7WUFDdEUsb0VBQW9FO1lBQ3BFLHVDQUF1QztZQUN2QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixtRUFBbUU7WUFDbkUsc0VBQXNFO1lBQ3RFLG9FQUFvRTtZQUNwRSxlQUFlO1lBQ2YsaUJBQWlCLEVBQUUsUUFBUTtZQUMzQixrRUFBa0U7WUFDbEUscUVBQXFFO1lBQ3JFLDhEQUE4RDtZQUM5RCxzRUFBc0U7WUFDdEUsY0FBYyxFQUFFLFFBQVE7WUFDeEIsd0VBQXdFO1lBQ3hFLGtFQUFrRTtZQUNsRSw4REFBOEQ7WUFDOUQsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRztZQUNqRCxzRUFBc0U7WUFDdEUsb0JBQW9CLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO1lBQzdDLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDbEUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksb0NBQXdCO2FBQzNELENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSx1RUFBdUU7UUFDdkUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTNCLHdFQUF3RTtRQUN4RSxxRUFBcUU7UUFDckUsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QixJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakMsSUFBQSw4QkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBQSw2QkFBYyxFQUFDLElBQUksRUFBRTtnQkFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksS0FBSztnQkFDOUIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksZ0JBQWdCO2dCQUMxRCxlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWU7YUFDekMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FDYixnRUFBZ0UsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFBLCtDQUE0QixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpDLElBQUksc0RBQXdCLENBQUMsSUFBSSxFQUFFO1lBQ2pDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLG9DQUF3QjtTQUNuRSxDQUFDLENBQUM7UUFDSCxJQUFJLDhEQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLGlFQUFpRTtRQUNqRSxtRUFBbUU7UUFDbkUsMENBQTBDO1FBQzFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUEsc0NBQW1CLEVBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFDaEMsNEZBQTRGLENBQzdGLENBQUM7UUFDSixDQUFDO1FBQ0QseUVBQXlFO1FBQ3pFLHFEQUFxRDtRQUNyRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RELElBQUEsc0NBQW1CLEVBQ2pCLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsaURBQWlELENBQ2xELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxJQUFJLDZDQUFvQixDQUFDLElBQUksRUFBRTtnQkFDN0IsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dCQUNsQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUNwQjt3QkFDRSxJQUFJLEVBQUUsU0FBUzt3QkFDZixHQUFHLEVBQUUsUUFBUTtxQkFDZDtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZUFBZSxHQUFHLENBQUMsSUFBSSxHQUFHO3dCQUNoQyxHQUFHLEVBQUUsdUVBQXVFLEdBQUcsQ0FBQyxJQUFJLEVBQUU7d0JBQ3RGLEdBQUcsRUFBRTs0QkFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDaEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7eUJBQzFEO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBNUhILG9EQTZIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgZ2l0aHViLCBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENvbW1vbkNka09wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVUIH0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhZGRFZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb21tb24vZWRpdG9yY29uZmlnJztcbmltcG9ydCB7IEVudmlyb25tZW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwtYWN0aW9ucyc7XG5pbXBvcnQgeyBhZGRMaWNlbnNlRmlsZSB9IGZyb20gJy4uL2NvbW1vbi9saWNlbnNlLWZpbGUnO1xuaW1wb3J0IHsgTWFudWFsRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vbWFudWFsLWRlcGxveS13b3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBSZXNvbHZlZCB0aHJvdWdoIE5vZGUncyBub3JtYWwgbW9kdWxlIHJlc29sdXRpb24sIHNvIGluIGEgKnB1Ymxpc2hlZCpcbi8vIHBhY2thZ2UgdGhpcyBpcyB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgdGhhdCBzY2FmZm9sZGVkIHRoZSByZXBvIChzYW1lXG4vLyB0cmljayBhcyBgR2l0SHViQWN0aW9uUHJvamVjdGApLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIENka1R5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkNka09wdGlvbnMge1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiAoc3RyaW5nIHwgRW52aXJvbm1lbnRPcHRpb25zKVtdO1xufVxuXG4vKipcbiAqIFNoYXJlZCBDREsgKyBUeXBlU2NyaXB0IGZvdW5kYXRpb24gZm9yIGBDZGtJbmZyYVByb2plY3RgIGFuZFxuICogYENka0FwcFByb2plY3RgOiBzdGFuZGFyZCBhcHAgc3RydWN0dXJlICh2aWEgYEF3c0Nka1R5cGVTY3JpcHRBcHBgLFxuICogYGNkay5qc29uYCwgYGNkayBzeW50aGAvYGNkayBkaWZmYCB0YXNrcyksIGEgUFItY2hlY2sgYnVpbGQgdGhhdCBoYXJkLWZhaWxzXG4gKiBvbiBwcm9qZW4gZHJpZnQgKHJhdGhlciB0aGFuIHNlbGYtbXV0YXRpbmcpLCBhbmQgYW4gb3B0aW9uYWxcbiAqIGBNYW51YWxEZXBsb3lXb3JrZmxvd2Agd2hlbiBgZW52aXJvbm1lbnRzYCBpcyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVzY3JpcHRQcm9qZWN0IGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAvLyBTcHJlYWQgZmlyc3QsIG92ZXJyaWRlcyBhZnRlcjogZm9yd2FyZGluZyB0aGUgY2FsbGVyJ3Mgb3B0aW9ucyBpc1xuICAgICAgLy8gd2hhdCBsZXRzIGBwcm9qZW4gbmV3IC0tZnJvbSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgY2RrX2luZnJhYCB3b3JrXG4gICAgICAvLyAtIHByb2plbiBzbXVnZ2xlcyBpdHMgYm9vdHN0cmFwIG1hcmtlciAoYF9fbmV3X19gKSB0aHJvdWdoIHRoZVxuICAgICAgLy8gb3B0aW9ucyBvYmplY3QsIGFuZCBpdCBpcyB0aGF0IG1hcmtlciB3aGljaCBtYWtlcyB0aGVcbiAgICAgIC8vIGBQcm9qZW5yY0ZpbGVgIGNvbXBvbmVudCB3cml0ZSB0aGUgaW5pdGlhbCBgLnByb2plbnJjLnRzYC4gRHJvcCBpdFxuICAgICAgLy8gYW5kIGBwcm9qZW4gbmV3YCBzY2FmZm9sZHMgYSByZXBvIHdpdGggbm8gcHJvamVucmMgYXQgYWxsLlxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiA/PyAnMi4xODkuMScsXG4gICAgICAvLyBXZSB3cml0ZSBMSUNFTlNFIG91cnNlbHZlcyAod2l0aCBhIGh1bWFuLXJlYWRhYmxlIGhlYWRlcik7XG4gICAgICAvLyBzdXBwcmVzcyBwcm9qZW4ncyBidWlsdC1pbiBMaWNlbnNlIGNvbXBvbmVudC5cbiAgICAgIGxpY2Vuc2VkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBzYW1wbGVDb2RlOiB0cnVlLFxuICAgICAgLy8gUFIgdGl0bGVzIGFyZSBub3QgZ2F0ZWQ6IGBmZWF0OmAvYGZpeDpgIG1hdHRlciBvbmx5IGJlY2F1c2UgdGhleSBkcml2ZVxuICAgICAgLy8gdGhlIHJlbGVhc2Ugd29ya2Zsb3cgKHZpYSBgcmVsZWFzYWJsZUNvbW1pdHNgKSwgbm90IFBSIGNoZWNrcy4gVGhlXG4gICAgICAvLyBjb252ZW50aW9uYWwtY29tbWl0IFBSLXRpdGxlIGxpbnQgaXMgYWRkZWQgYnkgdGhlIGBHaXRIdWJgIGNvbXBvbmVudFxuICAgICAgLy8gdW5sZXNzIGBnaXRodWJPcHRpb25zLnB1bGxSZXF1ZXN0TGludGAgaXMgYGZhbHNlYCAoaXQgZGVmYXVsdHMgdHJ1ZSkuXG4gICAgICBnaXRodWJPcHRpb25zOiB7IHB1bGxSZXF1ZXN0TGludDogZmFsc2UgfSxcbiAgICAgIC8vIEdlbmVyYXRlZCByZXBvcyBhcmUgY29uZmlndXJlZCB0aHJvdWdoIGAucHJvamVucmMudHNgOyB3aXRob3V0IHRoaXNcbiAgICAgIC8vIGBUeXBlU2NyaXB0UHJvamVjdGAgZGVmYXVsdHMgdG8gYHByb2plbnJjVHM6IGZhbHNlYCBhbmQgd2lyZXMgdGhlXG4gICAgICAvLyBkZWZhdWx0IHRhc2sgdG8gYG5vZGUgLnByb2plbnJjLmpzYC5cbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICAvLyBQaW5uZWQsIG5vdCBgVHlwZVNjcmlwdFByb2plY3RgJ3MgZGVmYXVsdCBgKmA6IGB0eXBlc2NyaXB0QDdgIG5vXG4gICAgICAvLyBsb25nZXIgZXhwb3NlcyBgdHMuc3lzYCBmcm9tIGl0cyBKUyBBUEksIHdoaWNoIGJyZWFrcyB0aGUgYHRzLW5vZGVgXG4gICAgICAvLyB0aGF0IGBwcm9qZW5yY1RzYCB3aXJlcyB0aGUgZGVmYXVsdCB0YXNrIHRvIChBRC0wMDEgd2FudHMgdGhlIHBpblxuICAgICAgLy8gcmVnYXJkbGVzcykuXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogJ342LjAuMycsXG4gICAgICAvLyBEZWNsYXJlZCBmbG9vciBmb3IgdGhlIGdlbmVyYXRlZCByZXBvLiBBbHNvIHJlcXVpcmVkIGJ5IHRoZSBwaW5cbiAgICAgIC8vIGFib3ZlOiB3aXRoIG5vIGBtaW5Ob2RlVmVyc2lvbmAsIHByb2plbiBkZXJpdmVzIGBAdHlwZXMvbm9kZWAgZnJvbVxuICAgICAgLy8gdGhlIFR5cGVTY3JpcHQgdmVyc2lvbiBpbnN0ZWFkLCBhbmQgdGhlIGBAdHlwZXMvbm9kZUB0czYuMGBcbiAgICAgIC8vIGRpc3QtdGFnIGl0IGFza3MgZm9yIGRvZXMgbm90IGV4aXN0IC0gYG5wbSBpbnN0YWxsYCBmYWlscyBvdXRyaWdodC5cbiAgICAgIG1pbk5vZGVWZXJzaW9uOiAnMjIuMC4wJyxcbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBwcm9qZW4gZGVmYXVsdHMgdG8geWFybiBjbGFzc2ljIGFuZCB0aGUgZ2VuZXJhdGVkIHJlcG8nc1xuICAgICAgLy8gb3duIGluc3RhbGwgc3RlcCBydW5zIGB5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlc2AsIHdoaWxlIGV2ZXJ5XG4gICAgICAvLyB3b3JrZmxvdyB0aGlzIHBhY2thZ2UgZ2VuZXJhdGVzIC0gYW5kIHRoZSBSRUFETUUgLSB1c2UgbnBtLlxuICAgICAgcGFja2FnZU1hbmFnZXI6IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTSxcbiAgICAgIC8vIEZhaWwgUFIgY2hlY2tzIG9uIGRyaWZ0IGluc3RlYWQgb2YgYXV0by1jb21taXR0aW5nIHByb2plbidzIG91dHB1dC5cbiAgICAgIGJ1aWxkV29ya2Zsb3dPcHRpb25zOiB7IG11dGFibGVCdWlsZDogZmFsc2UgfSxcbiAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICBzZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvLyBgLnByb2plbnJjLnRzYCBpbXBvcnRzIHRoaXMgcGFja2FnZSwgc28gdGhlIGdlbmVyYXRlZCByZXBvIGhhcyB0b1xuICAgIC8vIGRlY2xhcmUgaXQ6IHByb2plbiBwcnVuZXMgYW55IGRlcGVuZGVuY3kgb2YgYSBgTm9kZVByb2plY3RgIHRoYXQgdGhlXG4gICAgLy8gcHJvamVucmMgZG9lcyBub3QgYXNrIGZvciAoXCJSZW1vdmluZyB1bm1hbmFnZWQgZGVwZW5kZW5jaWVzLi4uXCIpLCB3aGljaFxuICAgIC8vIHdvdWxkIGxlYXZlIGEgcmVwbyB3aG9zZSBgbnB4IHByb2plbmAgY2Fubm90IHJlc29sdmUgaXRzIG93biBwcm9qZWN0XG4gICAgLy8gdHlwZSBhZnRlciBhIGNsZWFuIGBucG0gY2lgLlxuICAgIHRoaXMuYWRkRGV2RGVwcyhgQHhwZXJ0c3MvcHJvamVuLXR5cGVzQCR7UFJPSkVOX1RZUEVTX1ZFUlNJT059YCk7XG4gICAgdGhpcy5hZGREZXZEZXBzKCdlc2J1aWxkJyk7XG5cbiAgICAvLyBKZXRCcmFpbnMgSURFIHN0YXRlICguaWRlYS8pIGlzIG5ldmVyIHRyYWNrZWQgaW4gZ2VuZXJhdGVkIHJlcG9zLCBhbmRcbiAgICAvLyBuZWl0aGVyIGlzIC9zcGVjLyAobG9jYWwgcGxhbnMgYW5kIHNwZWNzOyB0aGUgcGF0dGVybiBjb3ZlcnMgZXZlcnlcbiAgICAvLyBzdWJkaXJlY3RvcnkpLlxuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvLmlkZWEvKicpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvc3BlYy8nKTtcblxuICAgIGlmIChvcHRpb25zLmVkaXRvcmNvbmZpZyA/PyB0cnVlKSB7XG4gICAgICBhZGRFZGl0b3JDb25maWcodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubGljZW5zZWQgPz8gdHJ1ZSkge1xuICAgICAgYWRkTGljZW5zZUZpbGUodGhpcywge1xuICAgICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICAgIGNvcHlyaWdodE93bmVyOiBvcHRpb25zLmNvcHlyaWdodE93bmVyID8/ICdYcGVydCBTb2Z0d2FyZScsXG4gICAgICAgIGNvcHlyaWdodFBlcmlvZDogb3B0aW9ucy5jb3B5cmlnaHRQZXJpb2QsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IHRoaXMuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nka1R5cGVzY3JpcHRQcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgbmV3IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBnaGVUb2tlblNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgfSk7XG4gICAgbmV3IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3codGhpcyk7XG5cbiAgICAvLyBgYnVpbGRgIGlzIHByb2plbidzIGJ1aWx0LWluIE5vZGVQcm9qZWN0IHdvcmtmbG93IChlbmFibGVkIHZpYVxuICAgIC8vIGBidWlsZFdvcmtmbG93T3B0aW9uc2AgYWJvdmUpLCBub3Qgb25lIHRoaXMgcGFja2FnZSBjb25zdHJ1Y3RzIC1cbiAgICAvLyBhbm5vdGF0ZSBpdCB0aGUgc2FtZSB3YXkgYXMgdGhlIG90aGVycy5cbiAgICBpZiAodGhpcy5idWlsZFdvcmtmbG93KSB7XG4gICAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cud29ya2Zsb3cuZmlsZSxcbiAgICAgICAgJ1B1bGwtcmVxdWVzdCBidWlsZCBnYXRlOiBpbnN0YWxsIGRlcGVuZGVuY2llcywgc3ludGhlc2l6ZSB0aGUgQ0RLIGFwcCwgYW5kIHJ1biB1bml0IHRlc3RzLicsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBgZGVwc1VwZ3JhZGVgIGlzIHByb2plbidzIGJ1aWx0LWluIG5pZ2h0bHkgdXBncmFkZSB3b3JrZmxvdyAtIGFubm90YXRlXG4gICAgLy8gaXQgdGhlIHNhbWUgd2F5IChvbmUgd29ya2Zsb3cgcGVyIHJlbGVhc2UgYnJhbmNoKS5cbiAgICBpZiAodGhpcy51cGdyYWRlV29ya2Zsb3cpIHtcbiAgICAgIGZvciAoY29uc3Qgd29ya2Zsb3cgb2YgdGhpcy51cGdyYWRlV29ya2Zsb3cud29ya2Zsb3dzKSB7XG4gICAgICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICAgICAgd29ya2Zsb3cuZmlsZSxcbiAgICAgICAgICAnT3BlbiBhIG5pZ2h0bHkgZGVwZW5kZW5jeS11cGdyYWRlIHB1bGwgcmVxdWVzdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudHMgJiYgb3B0aW9ucy5lbnZpcm9ubWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgbmV3IE1hbnVhbERlcGxveVdvcmtmbG93KHRoaXMsIHtcbiAgICAgICAgZW52aXJvbm1lbnRzOiBvcHRpb25zLmVudmlyb25tZW50cyxcbiAgICAgICAgZGVwbG95U3RlcHM6IChlbnYpID0+IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCcsXG4gICAgICAgICAgICBydW46ICducG0gY2knLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYGNkayBkZXBsb3kgKCR7ZW52Lm5hbWV9KWAsXG4gICAgICAgICAgICBydW46IGBucHggY2RrIGRlcGxveSAtLWFsbCAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1jb250ZXh0IGVudmlyb25tZW50PSR7ZW52Lm5hbWV9YCxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAuLi4oZW52LmFjY291bnRJZCA/IHsgQ0RLX0RFRkFVTFRfQUNDT1VOVDogZW52LmFjY291bnRJZCB9IDoge30pLFxuICAgICAgICAgICAgICAuLi4oZW52LnJlZ2lvbiA/IHsgQ0RLX0RFRkFVTFRfUkVHSU9OOiBlbnYucmVnaW9uIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR5cGVzY3JpcHQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9EO0FBRXBELG1EQUErRDtBQUMvRCx5REFBeUQ7QUFFekQsaUVBQTBFO0FBQzFFLHlEQUF3RDtBQUN4RCw2RUFBd0U7QUFDeEUsdUZBQWlGO0FBQ2pGLDZEQUF5RDtBQUN6RCwrRkFBeUY7QUFDekYsaUVBQWlFO0FBRWpFLHdFQUF3RTtBQUN4RSw2RUFBNkU7QUFDN0UsbUNBQW1DO0FBQ25DLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQU0zRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7O0lBQ2xFLGdEQUFnRDtJQUNoQyxhQUFhLENBQWlCO0lBRTlDLFlBQVksT0FBb0M7UUFDOUMsS0FBSyxDQUFDO1lBQ0osb0VBQW9FO1lBQ3BFLHFFQUFxRTtZQUNyRSxpRUFBaUU7WUFDakUsd0RBQXdEO1lBQ3hELHFFQUFxRTtZQUNyRSw2REFBNkQ7WUFDN0QsR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVM7WUFDM0MsNkRBQTZEO1lBQzdELGdEQUFnRDtZQUNoRCxRQUFRLEVBQUUsS0FBSztZQUNmLG9CQUFvQixFQUFFLE1BQU07WUFDNUIsVUFBVSxFQUFFLElBQUk7WUFDaEIseUVBQXlFO1lBQ3pFLHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUsd0VBQXdFO1lBQ3hFLGFBQWEsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUU7WUFDekMsc0VBQXNFO1lBQ3RFLG9FQUFvRTtZQUNwRSx1Q0FBdUM7WUFDdkMsVUFBVSxFQUFF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ZSxFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0RCxJQUFBLHNDQUFtQixFQUNqQixRQUFRLENBQUMsSUFBSSxFQUNiLGlEQUFpRCxDQUNsRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUQsSUFBSSw2Q0FBb0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQzdCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtnQkFDbEMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztvQkFDcEI7d0JBQ0UsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsR0FBRyxFQUFFLFFBQVE7cUJBQ2Q7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLGVBQWUsR0FBRyxDQUFDLElBQUksR0FBRzt3QkFDaEMsR0FBRyxFQUFFLHVFQUF1RSxHQUFHLENBQUMsSUFBSSxFQUFFO3dCQUN0RixHQUFHLEVBQUU7NEJBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ2hFLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3lCQUMxRDtxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXpJSCxvREEwSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGdpdGh1YiwgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBDb21tb25DZGtPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2VkaXRvcmNvbmZpZyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudE9wdGlvbnMgfSBmcm9tICcuLi9jb21tb24vZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgYWRkTGljZW5zZUZpbGUgfSBmcm9tICcuLi9jb21tb24vbGljZW5zZS1maWxlJztcbmltcG9ydCB7IE1hbnVhbERlcGxveVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL21hbnVhbC1kZXBsb3ktd29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbi1kcmlmdC1jaGVjay13b3JrZmxvdyc7XG5pbXBvcnQgeyBTb25hcldvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3NvbmFyLXdvcmtmbG93JztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBSZXNvbHZlZCB0aHJvdWdoIE5vZGUncyBub3JtYWwgbW9kdWxlIHJlc29sdXRpb24sIHNvIGluIGEgKnB1Ymxpc2hlZCpcbi8vIHBhY2thZ2UgdGhpcyBpcyB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgdGhhdCBzY2FmZm9sZGVkIHRoZSByZXBvIChzYW1lXG4vLyB0cmljayBhcyBgR2l0SHViQWN0aW9uUHJvamVjdGApLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIENka1R5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkNka09wdGlvbnMge1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiAoc3RyaW5nIHwgRW52aXJvbm1lbnRPcHRpb25zKVtdO1xufVxuXG4vKipcbiAqIFNoYXJlZCBDREsgKyBUeXBlU2NyaXB0IGZvdW5kYXRpb24gZm9yIGBDZGtJbmZyYVByb2plY3RgIGFuZFxuICogYENka0FwcFByb2plY3RgOiBzdGFuZGFyZCBhcHAgc3RydWN0dXJlICh2aWEgYEF3c0Nka1R5cGVTY3JpcHRBcHBgLFxuICogYGNkay5qc29uYCwgYGNkayBzeW50aGAvYGNkayBkaWZmYCB0YXNrcyksIGEgUFItY2hlY2sgYnVpbGQgdGhhdCBoYXJkLWZhaWxzXG4gKiBvbiBwcm9qZW4gZHJpZnQgKHJhdGhlciB0aGFuIHNlbGYtbXV0YXRpbmcpLCBhbmQgYW4gb3B0aW9uYWxcbiAqIGBNYW51YWxEZXBsb3lXb3JrZmxvd2Agd2hlbiBgZW52aXJvbm1lbnRzYCBpcyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVzY3JpcHRQcm9qZWN0IGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICAvKiogU2V0IG9ubHkgd2hlbiBgc29uYXJIb3N0VXJsYCBpcyBwcm92aWRlZC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvbmFyV29ya2Zsb3c/OiBTb25hcldvcmtmbG93O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka1R5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC8vIFNwcmVhZCBmaXJzdCwgb3ZlcnJpZGVzIGFmdGVyOiBmb3J3YXJkaW5nIHRoZSBjYWxsZXIncyBvcHRpb25zIGlzXG4gICAgICAvLyB3aGF0IGxldHMgYHByb2plbiBuZXcgLS1mcm9tIEB4cGVydHNzL3Byb2plbi10eXBlcyBjZGtfaW5mcmFgIHdvcmtcbiAgICAgIC8vIC0gcHJvamVuIHNtdWdnbGVzIGl0cyBib290c3RyYXAgbWFya2VyIChgX19uZXdfX2ApIHRocm91Z2ggdGhlXG4gICAgICAvLyBvcHRpb25zIG9iamVjdCwgYW5kIGl0IGlzIHRoYXQgbWFya2VyIHdoaWNoIG1ha2VzIHRoZVxuICAgICAgLy8gYFByb2plbnJjRmlsZWAgY29tcG9uZW50IHdyaXRlIHRoZSBpbml0aWFsIGAucHJvamVucmMudHNgLiBEcm9wIGl0XG4gICAgICAvLyBhbmQgYHByb2plbiBuZXdgIHNjYWZmb2xkcyBhIHJlcG8gd2l0aCBubyBwcm9qZW5yYyBhdCBhbGwuXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgY2RrVmVyc2lvbjogb3B0aW9ucy5jZGtWZXJzaW9uID8/ICcyLjE4OS4xJyxcbiAgICAgIC8vIFdlIHdyaXRlIExJQ0VOU0Ugb3Vyc2VsdmVzICh3aXRoIGEgaHVtYW4tcmVhZGFibGUgaGVhZGVyKTtcbiAgICAgIC8vIHN1cHByZXNzIHByb2plbidzIGJ1aWx0LWluIExpY2Vuc2UgY29tcG9uZW50LlxuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICAgIHNhbXBsZUNvZGU6IHRydWUsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgcHVsbFJlcXVlc3RMaW50OiBmYWxzZSB9LFxuICAgICAgLy8gR2VuZXJhdGVkIHJlcG9zIGFyZSBjb25maWd1cmVkIHRocm91Z2ggYC5wcm9qZW5yYy50c2A7IHdpdGhvdXQgdGhpc1xuICAgICAgLy8gYFR5cGVTY3JpcHRQcm9qZWN0YCBkZWZhdWx0cyB0byBgcHJvamVucmNUczogZmFsc2VgIGFuZCB3aXJlcyB0aGVcbiAgICAgIC8vIGRlZmF1bHQgdGFzayB0byBgbm9kZSAucHJvamVucmMuanNgLlxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIC8vIFBpbm5lZCwgbm90IGBUeXBlU2NyaXB0UHJvamVjdGAncyBkZWZhdWx0IGAqYDogYHR5cGVzY3JpcHRAN2Agbm9cbiAgICAgIC8vIGxvbmdlciBleHBvc2VzIGB0cy5zeXNgIGZyb20gaXRzIEpTIEFQSSwgd2hpY2ggYnJlYWtzIHRoZSBgdHMtbm9kZWBcbiAgICAgIC8vIHRoYXQgYHByb2plbnJjVHNgIHdpcmVzIHRoZSBkZWZhdWx0IHRhc2sgdG8gKEFELTAwMSB3YW50cyB0aGUgcGluXG4gICAgICAvLyByZWdhcmRsZXNzKS5cbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uOiAnfjYuMC4zJyxcbiAgICAgIC8vIERlY2xhcmVkIGZsb29yIGZvciB0aGUgZ2VuZXJhdGVkIHJlcG8uIEFsc28gcmVxdWlyZWQgYnkgdGhlIHBpblxuICAgICAgLy8gYWJvdmU6IHdpdGggbm8gYG1pbk5vZGVWZXJzaW9uYCwgcHJvamVuIGRlcml2ZXMgYEB0eXBlcy9ub2RlYCBmcm9tXG4gICAgICAvLyB0aGUgVHlwZVNjcmlwdCB2ZXJzaW9uIGluc3RlYWQsIGFuZCB0aGUgYEB0eXBlcy9ub2RlQHRzNi4wYFxuICAgICAgLy8gZGlzdC10YWcgaXQgYXNrcyBmb3IgZG9lcyBub3QgZXhpc3QgLSBgbnBtIGluc3RhbGxgIGZhaWxzIG91dHJpZ2h0LlxuICAgICAgbWluTm9kZVZlcnNpb246ICcyMi4wLjAnLFxuICAgICAgLy8gV2l0aG91dCB0aGlzIHByb2plbiBkZWZhdWx0cyB0byB5YXJuIGNsYXNzaWMgYW5kIHRoZSBnZW5lcmF0ZWQgcmVwbydzXG4gICAgICAvLyBvd24gaW5zdGFsbCBzdGVwIHJ1bnMgYHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzYCwgd2hpbGUgZXZlcnlcbiAgICAgIC8vIHdvcmtmbG93IHRoaXMgcGFja2FnZSBnZW5lcmF0ZXMgLSBhbmQgdGhlIFJFQURNRSAtIHVzZSBucG0uXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuTlBNLFxuICAgICAgLy8gRmFpbCBQUiBjaGVja3Mgb24gZHJpZnQgaW5zdGVhZCBvZiBhdXRvLWNvbW1pdHRpbmcgcHJvamVuJ3Mgb3V0cHV0LlxuICAgICAgYnVpbGRXb3JrZmxvd09wdGlvbnM6IHsgbXV0YWJsZUJ1aWxkOiBmYWxzZSB9LFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8vIGAucHJvamVucmMudHNgIGltcG9ydHMgdGhpcyBwYWNrYWdlLCBzbyB0aGUgZ2VuZXJhdGVkIHJlcG8gaGFzIHRvXG4gICAgLy8gZGVjbGFyZSBpdDogcHJvamVuIHBydW5lcyBhbnkgZGVwZW5kZW5jeSBvZiBhIGBOb2RlUHJvamVjdGAgdGhhdCB0aGVcbiAgICAvLyBwcm9qZW5yYyBkb2VzIG5vdCBhc2sgZm9yIChcIlJlbW92aW5nIHVubWFuYWdlZCBkZXBlbmRlbmNpZXMuLi5cIiksIHdoaWNoXG4gICAgLy8gd291bGQgbGVhdmUgYSByZXBvIHdob3NlIGBucHggcHJvamVuYCBjYW5ub3QgcmVzb2x2ZSBpdHMgb3duIHByb2plY3RcbiAgICAvLyB0eXBlIGFmdGVyIGEgY2xlYW4gYG5wbSBjaWAuXG4gICAgdGhpcy5hZGREZXZEZXBzKGBAeHBlcnRzcy9wcm9qZW4tdHlwZXNAJHtQUk9KRU5fVFlQRVNfVkVSU0lPTn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoJ2VzYnVpbGQnKTtcblxuICAgIC8vIEpldEJyYWlucyBJREUgc3RhdGUgKC5pZGVhLykgaXMgbmV2ZXIgdHJhY2tlZCBpbiBnZW5lcmF0ZWQgcmVwb3MsIGFuZFxuICAgIC8vIG5laXRoZXIgaXMgL3NwZWMvIChsb2NhbCBwbGFucyBhbmQgc3BlY3M7IHRoZSBwYXR0ZXJuIGNvdmVycyBldmVyeVxuICAgIC8vIHN1YmRpcmVjdG9yeSkuXG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy8uaWRlYS8qJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy9zcGVjLycpO1xuXG4gICAgaWYgKG9wdGlvbnMuZWRpdG9yY29uZmlnID8/IHRydWUpIHtcbiAgICAgIGFkZEVkaXRvckNvbmZpZyh0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5saWNlbnNlZCA/PyB0cnVlKSB7XG4gICAgICBhZGRMaWNlbnNlRmlsZSh0aGlzLCB7XG4gICAgICAgIHNwZHg6IG9wdGlvbnMubGljZW5zZSA/PyAnTUlUJyxcbiAgICAgICAgY29weXJpZ2h0T3duZXI6IG9wdGlvbnMuY29weXJpZ2h0T3duZXIgPz8gJ1hwZXJ0IFNvZnR3YXJlJyxcbiAgICAgICAgY29weXJpZ2h0UGVyaW9kOiBvcHRpb25zLmNvcHlyaWdodFBlcmlvZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2RrVHlwZXNjcmlwdFByb2plY3QgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uIHRvIGJlIGVuYWJsZWQnLFxuICAgICAgKTtcbiAgICB9XG4gICAgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyhnaCk7XG5cbiAgICBuZXcgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93KHRoaXMsIHtcbiAgICAgIGdoZVRva2VuU2VjcmV0OiBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCxcbiAgICB9KTtcbiAgICBuZXcgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyh0aGlzKTtcblxuICAgIGlmIChvcHRpb25zLnNvbmFySG9zdFVybCkge1xuICAgICAgdGhpcy5zb25hcldvcmtmbG93ID0gbmV3IFNvbmFyV29ya2Zsb3codGhpcywge1xuICAgICAgICBzb25hckhvc3RVcmw6IG9wdGlvbnMuc29uYXJIb3N0VXJsLFxuICAgICAgICBzb25hck9yZ2FuaXphdGlvbjogb3B0aW9ucy5zb25hck9yZ2FuaXphdGlvbixcbiAgICAgICAgc29uYXJUb2tlblNlY3JldDogb3B0aW9ucy5zb25hclRva2VuU2VjcmV0LFxuICAgICAgICBzb25hclB1bGxSZXF1ZXN0R2F0ZTogb3B0aW9ucy5zb25hclB1bGxSZXF1ZXN0R2F0ZSxcbiAgICAgICAgc29uYXJQcm9qZWN0S2V5OiBvcHRpb25zLnNvbmFyUHJvamVjdEtleSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGBidWlsZGAgaXMgcHJvamVuJ3MgYnVpbHQtaW4gTm9kZVByb2plY3Qgd29ya2Zsb3cgKGVuYWJsZWQgdmlhXG4gICAgLy8gYGJ1aWxkV29ya2Zsb3dPcHRpb25zYCBhYm92ZSksIG5vdCBvbmUgdGhpcyBwYWNrYWdlIGNvbnN0cnVjdHMgLVxuICAgIC8vIGFubm90YXRlIGl0IHRoZSBzYW1lIHdheSBhcyB0aGUgb3RoZXJzLlxuICAgIGlmICh0aGlzLmJ1aWxkV29ya2Zsb3cpIHtcbiAgICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdy53b3JrZmxvdy5maWxlLFxuICAgICAgICAnUHVsbC1yZXF1ZXN0IGJ1aWxkIGdhdGU6IGluc3RhbGwgZGVwZW5kZW5jaWVzLCBzeW50aGVzaXplIHRoZSBDREsgYXBwLCBhbmQgcnVuIHVuaXQgdGVzdHMuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGBkZXBzVXBncmFkZWAgaXMgcHJvamVuJ3MgYnVpbHQtaW4gbmlnaHRseSB1cGdyYWRlIHdvcmtmbG93IC0gYW5ub3RhdGVcbiAgICAvLyBpdCB0aGUgc2FtZSB3YXkgKG9uZSB3b3JrZmxvdyBwZXIgcmVsZWFzZSBicmFuY2gpLlxuICAgIGlmICh0aGlzLnVwZ3JhZGVXb3JrZmxvdykge1xuICAgICAgZm9yIChjb25zdCB3b3JrZmxvdyBvZiB0aGlzLnVwZ3JhZGVXb3JrZmxvdy53b3JrZmxvd3MpIHtcbiAgICAgICAgbm90ZVdvcmtmbG93UHVycG9zZShcbiAgICAgICAgICB3b3JrZmxvdy5maWxlLFxuICAgICAgICAgICdPcGVuIGEgbmlnaHRseSBkZXBlbmRlbmN5LXVwZ3JhZGUgcHVsbCByZXF1ZXN0LicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmVudmlyb25tZW50cyAmJiBvcHRpb25zLmVudmlyb25tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBuZXcgTWFudWFsRGVwbG95V29ya2Zsb3codGhpcywge1xuICAgICAgICBlbnZpcm9ubWVudHM6IG9wdGlvbnMuZW52aXJvbm1lbnRzLFxuICAgICAgICBkZXBsb3lTdGVwczogKGVudikgPT4gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdJbnN0YWxsJyxcbiAgICAgICAgICAgIHJ1bjogJ25wbSBjaScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgY2RrIGRlcGxveSAoJHtlbnYubmFtZX0pYCxcbiAgICAgICAgICAgIHJ1bjogYG5weCBjZGsgZGVwbG95IC0tYWxsIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciAtLWNvbnRleHQgZW52aXJvbm1lbnQ9JHtlbnYubmFtZX1gLFxuICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgIC4uLihlbnYuYWNjb3VudElkID8geyBDREtfREVGQVVMVF9BQ0NPVU5UOiBlbnYuYWNjb3VudElkIH0gOiB7fSksXG4gICAgICAgICAgICAgIC4uLihlbnYucmVnaW9uID8geyBDREtfREVGQVVMVF9SRUdJT046IGVudi5yZWdpb24gfSA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
10
10
  * built from this project's own source (app projects).
11
11
  */
12
12
  class EcrEcsConstructs extends projen_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.21" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.23" };
14
14
  constructor(project, options = {}) {
15
15
  super(project, 'EcrEcsConstructs');
16
16
  const externalImageSource = options.externalImageSource ?? true;
@@ -42,7 +42,7 @@ const HELPERS = {
42
42
  * to whichever `edgeResources` the consuming project type opts into.
43
43
  */
44
44
  class EdgeNetworkingConstructs extends projen_1.Component {
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.21" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.23" };
46
46
  constructor(project, resources) {
47
47
  super(project, 'EdgeNetworkingConstructs');
48
48
  if (resources.length === 0) {
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
10
10
  * the consuming team to wire up; no opinionated default is imposed.
11
11
  */
12
12
  class DatabaseComponent extends projen_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.21" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.23" };
14
14
  constructor(project, options = {}) {
15
15
  super(project, 'DatabaseComponent');
16
16
  const engine = options.engine ?? 'postgres';
@@ -1,4 +1,5 @@
1
1
  import { EnvironmentOptions } from '../common/environment-options';
2
+ import { SonarScanOptions } from '../common/sonar-options';
2
3
  export type EdgeResource = 'cloudfront' | 'route53' | 'apigateway' | 'cognito' | 'sqs';
3
4
  export interface EcrEcsOptions {
4
5
  /** @default false */
@@ -11,7 +12,7 @@ export interface EcrEcsOptions {
11
12
  */
12
13
  readonly externalImageSource?: boolean;
13
14
  }
14
- export interface CommonCdkOptions {
15
+ export interface CommonCdkOptions extends SonarScanOptions {
15
16
  readonly name: string;
16
17
  /** @default "2.189.1" */
17
18
  readonly cdkVersion?: string;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBFZGdlUmVzb3VyY2UgPVxuICB8ICdjbG91ZGZyb250J1xuICB8ICdyb3V0ZTUzJ1xuICB8ICdhcGlnYXRld2F5J1xuICB8ICdjb2duaXRvJ1xuICB8ICdzcXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjckVjc09wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEVDUyBzZXJ2aWNlIHN0YW5kcyB1cCBhbiBleHRlcm5hbGx5LWJ1aWx0IGltYWdlIChpbmZyYS1vbmx5KVxuICAgKiByYXRoZXIgdGhhbiBvbmUgYnVpbHQgZnJvbSB0aGlzIHByb2plY3QncyBvd24gc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbEltYWdlU291cmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25DZGtPcHRpb25zIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIjIuMTg5LjFcIiAqL1xuICByZWFkb25seSBjZGtWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIiAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogV3JpdGUgYSBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU1BEWCBpZGVudGlmaWVyIGZvciB0aGUgZ2VuZXJhdGVkIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgXCJNSVRcIlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29weXJpZ2h0IG93bmVyIG5hbWVkIGluIHRoZSBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IFwiWHBlcnQgU29mdHdhcmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0T3duZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvcHlyaWdodCBwZXJpb2QgbmFtZWQgaW4gdGhlIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgLSB0aGUgY3VycmVudCB5ZWFyXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRQZXJpb2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgcHJvamVuLW1hbmFnZWQgYC5lZGl0b3Jjb25maWdgLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlZGl0b3Jjb25maWc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0luZnJhUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25DZGtPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlcGxveSB0YXJnZXRzIGZvciB0aGUgbWFudWFsLWRpc3BhdGNoIGRlcGxveSB3b3JrZmxvdywgZS5nLlxuICAgKiBbXCJkZXZcIiwgXCJzdGFnZVwiLCBcInByb2RcIl0uIE5vIGBkZXBsb3lgIHdvcmtmbG93IGlzIGdlbmVyYXRlZCB3aGVuIHRoaXMgaXNcbiAgICogZW1wdHkgb3Igb21pdHRlZC5cbiAgICpcbiAgICogT3B0aW9uYWwgcmF0aGVyIHRoYW4gcmVxdWlyZWQgc28gdGhhdCBgcHJvamVuIG5ldyAtLWZyb21gIGNhbiBzY2FmZm9sZFxuICAgKiB0aGUgcmVwbzogaXRzIHVuaW9uIHR5cGUgKGBzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnNgKSBpcyBub3RcbiAgICogXCJKU09OLWxpa2VcIiwgc28gcHJvamVuJ3MgQ0xJIGNhbm5vdCByZW5kZXIgYSB2YWx1ZSBmb3IgaXQgaW50byB0aGVcbiAgICogaW5pdGlhbCBgLnByb2plbnJjLnRzYCAtIGFuZCBhICpyZXF1aXJlZCogb3B0aW9uIGl0IGNhbm5vdCByZW5kZXIgbGVhdmVzXG4gICAqIGJlaGluZCBhIHByb2plbnJjIHRoYXQgZG9lcyBub3QgdHlwZS1jaGVjay5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXBsb3kgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50cz86IChzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnMpW107XG5cbiAgcmVhZG9ubHkgZWNyRWNzPzogRWNyRWNzT3B0aW9ucztcblxuICByZWFkb25seSBlZGdlUmVzb3VyY2VzPzogRWRnZVJlc291cmNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IFwicG9zdGdyZXNcIiAqL1xuICByZWFkb25seSBlbmdpbmU/OiAncG9zdGdyZXMnIHwgJ215c3FsJyB8ICdkeW5hbW9kYic7XG5cbiAgLyoqIE1pZ3JhdGlvbiB0b29sIHRvIHdpcmUgdXAsIGUuZy4gXCJmbHl3YXlcIiwgXCJsaXF1aWJhc2VcIiwgXCJwcmlzbWFcIi4gTGVmdCBwbHVnZ2FibGUgLSBubyBkZWZhdWx0LiAqL1xuICByZWFkb25seSBtaWdyYXRpb25Ub29sPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0FwcFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrSW5mcmFQcm9qZWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRhdGFiYXNlPzogRGF0YWJhc2VPcHRpb25zO1xuXG4gIC8qKiBAZGVmYXVsdCBcInNyYy9hcHAudHNcIiAqL1xuICByZWFkb25seSBhcHBFbnRyeVBvaW50Pzogc3RyaW5nO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgU29uYXJTY2FuT3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi9zb25hci1vcHRpb25zJztcblxuZXhwb3J0IHR5cGUgRWRnZVJlc291cmNlID1cbiAgfCAnY2xvdWRmcm9udCdcbiAgfCAncm91dGU1MydcbiAgfCAnYXBpZ2F0ZXdheSdcbiAgfCAnY29nbml0bydcbiAgfCAnc3FzJztcblxuZXhwb3J0IGludGVyZmFjZSBFY3JFY3NPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IGZhbHNlICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBFQ1Mgc2VydmljZSBzdGFuZHMgdXAgYW4gZXh0ZXJuYWxseS1idWlsdCBpbWFnZSAoaW5mcmEtb25seSlcbiAgICogcmF0aGVyIHRoYW4gb25lIGJ1aWx0IGZyb20gdGhpcyBwcm9qZWN0J3Mgb3duIHNvdXJjZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxJbWFnZVNvdXJjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uQ2RrT3B0aW9ucyBleHRlbmRzIFNvbmFyU2Nhbk9wdGlvbnMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiMi4xODkuMVwiICovXG4gIHJlYWRvbmx5IGNka1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiUFJPSkVOX0dJVEhVQl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IGdoZVRva2VuU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTUERYIGlkZW50aWZpZXIgZm9yIHRoZSBnZW5lcmF0ZWQgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcIk1JVFwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb3B5cmlnaHQgb3duZXIgbmFtZWQgaW4gdGhlIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgXCJYcGVydCBTb2Z0d2FyZVwiXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRPd25lcj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29weXJpZ2h0IHBlcmlvZCBuYW1lZCBpbiB0aGUgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjdXJyZW50IHllYXJcbiAgICovXG4gIHJlYWRvbmx5IGNvcHlyaWdodFBlcmlvZD86IHN0cmluZztcblxuICAvKipcbiAgICogV3JpdGUgYSBwcm9qZW4tbWFuYWdlZCBgLmVkaXRvcmNvbmZpZ2AuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvcmNvbmZpZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrSW5mcmFQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkNka09wdGlvbnMge1xuICAvKipcbiAgICogRGVwbG95IHRhcmdldHMgZm9yIHRoZSBtYW51YWwtZGlzcGF0Y2ggZGVwbG95IHdvcmtmbG93LCBlLmcuXG4gICAqIFtcImRldlwiLCBcInN0YWdlXCIsIFwicHJvZFwiXS4gTm8gYGRlcGxveWAgd29ya2Zsb3cgaXMgZ2VuZXJhdGVkIHdoZW4gdGhpcyBpc1xuICAgKiBlbXB0eSBvciBvbWl0dGVkLlxuICAgKlxuICAgKiBPcHRpb25hbCByYXRoZXIgdGhhbiByZXF1aXJlZCBzbyB0aGF0IGBwcm9qZW4gbmV3IC0tZnJvbWAgY2FuIHNjYWZmb2xkXG4gICAqIHRoZSByZXBvOiBpdHMgdW5pb24gdHlwZSAoYHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9uc2ApIGlzIG5vdFxuICAgKiBcIkpTT04tbGlrZVwiLCBzbyBwcm9qZW4ncyBDTEkgY2Fubm90IHJlbmRlciBhIHZhbHVlIGZvciBpdCBpbnRvIHRoZVxuICAgKiBpbml0aWFsIGAucHJvamVucmMudHNgIC0gYW5kIGEgKnJlcXVpcmVkKiBvcHRpb24gaXQgY2Fubm90IHJlbmRlciBsZWF2ZXNcbiAgICogYmVoaW5kIGEgcHJvamVucmMgdGhhdCBkb2VzIG5vdCB0eXBlLWNoZWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlcGxveSB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzPzogKHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9ucylbXTtcblxuICByZWFkb25seSBlY3JFY3M/OiBFY3JFY3NPcHRpb25zO1xuXG4gIHJlYWRvbmx5IGVkZ2VSZXNvdXJjZXM/OiBFZGdlUmVzb3VyY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZU9wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgXCJwb3N0Z3Jlc1wiICovXG4gIHJlYWRvbmx5IGVuZ2luZT86ICdwb3N0Z3JlcycgfCAnbXlzcWwnIHwgJ2R5bmFtb2RiJztcblxuICAvKiogTWlncmF0aW9uIHRvb2wgdG8gd2lyZSB1cCwgZS5nLiBcImZseXdheVwiLCBcImxpcXVpYmFzZVwiLCBcInByaXNtYVwiLiBMZWZ0IHBsdWdnYWJsZSAtIG5vIGRlZmF1bHQuICovXG4gIHJlYWRvbmx5IG1pZ3JhdGlvblRvb2w/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQXBwUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtJbmZyYVByb2plY3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgZGF0YWJhc2U/OiBEYXRhYmFzZU9wdGlvbnM7XG5cbiAgLyoqIEBkZWZhdWx0IFwic3JjL2FwcC50c1wiICovXG4gIHJlYWRvbmx5IGFwcEVudHJ5UG9pbnQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const ci_steps_1 = require("./ci-steps");
7
7
  const workflow_purpose_1 = require("./workflow-purpose");
8
8
  class ProjenDriftCheckWorkflow extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.21" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.23" };
10
10
  workflow;
11
11
  constructor(scope, options = {}) {
12
12
  super(scope, 'ProjenDriftCheckWorkflow');
@@ -0,0 +1,29 @@
1
+ export interface SonarScanOptions {
2
+ /**
3
+ * URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`). When
4
+ * set, a `sonar.yml` SonarScanner workflow is generated; when omitted, no
5
+ * Sonar workflow is produced. Must be reachable from github.com-hosted
6
+ * (public) runners (AD-001).
7
+ */
8
+ readonly sonarHostUrl?: string;
9
+ /**
10
+ * SonarCloud organization key (`sonar.organization`). Mandatory for the
11
+ * Scanner CLI on SonarCloud - it is not derived from the token, so a scan
12
+ * without it always fails.
13
+ * @default "xpertss"
14
+ */
15
+ readonly sonarOrganization?: string;
16
+ /** @default "SONAR_TOKEN" */
17
+ readonly sonarTokenSecret?: string;
18
+ /**
19
+ * Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
20
+ * @default true
21
+ */
22
+ readonly sonarPullRequestGate?: boolean;
23
+ /**
24
+ * `sonar.projectKey`.
25
+ * @default - `${sonarOrganization}_${name}` (the org + project key SonarCloud
26
+ * uses, e.g. `xpertss_create-pull-request`)
27
+ */
28
+ readonly sonarProjectKey?: string;
29
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vc29uYXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTb25hclNjYW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgb3JnJ3MgU29uYXJDbG91ZCBpbnN0YW5jZSAoZS5nLiBgaHR0cHM6Ly9zb25hcmNsb3VkLmlvYCkuIFdoZW5cbiAgICogc2V0LCBhIGBzb25hci55bWxgIFNvbmFyU2Nhbm5lciB3b3JrZmxvdyBpcyBnZW5lcmF0ZWQ7IHdoZW4gb21pdHRlZCwgbm9cbiAgICogU29uYXIgd29ya2Zsb3cgaXMgcHJvZHVjZWQuIE11c3QgYmUgcmVhY2hhYmxlIGZyb20gZ2l0aHViLmNvbS1ob3N0ZWRcbiAgICogKHB1YmxpYykgcnVubmVycyAoQUQtMDAxKS5cbiAgICovXG4gIHJlYWRvbmx5IHNvbmFySG9zdFVybD86IHN0cmluZztcblxuICAvKipcbiAgICogU29uYXJDbG91ZCBvcmdhbml6YXRpb24ga2V5IChgc29uYXIub3JnYW5pemF0aW9uYCkuIE1hbmRhdG9yeSBmb3IgdGhlXG4gICAqIFNjYW5uZXIgQ0xJIG9uIFNvbmFyQ2xvdWQgLSBpdCBpcyBub3QgZGVyaXZlZCBmcm9tIHRoZSB0b2tlbiwgc28gYSBzY2FuXG4gICAqIHdpdGhvdXQgaXQgYWx3YXlzIGZhaWxzLlxuICAgKiBAZGVmYXVsdCBcInhwZXJ0c3NcIlxuICAgKi9cbiAgcmVhZG9ubHkgc29uYXJPcmdhbml6YXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiU09OQVJfVE9LRU5cIiAqL1xuICByZWFkb25seSBzb25hclRva2VuU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBzb25hci55bWxgIGFsc28gcnVucyBvbiBgcHVsbF9yZXF1ZXN0YCBhcyBhIHBhc3MvZmFpbCBnYXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzb25hclB1bGxSZXF1ZXN0R2F0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGBzb25hci5wcm9qZWN0S2V5YC5cbiAgICogQGRlZmF1bHQgLSBgJHtzb25hck9yZ2FuaXphdGlvbn1fJHtuYW1lfWAgKHRoZSBvcmcgKyBwcm9qZWN0IGtleSBTb25hckNsb3VkXG4gICAqIHVzZXMsIGUuZy4gYHhwZXJ0c3NfY3JlYXRlLXB1bGwtcmVxdWVzdGApXG4gICAqL1xuICByZWFkb25seSBzb25hclByb2plY3RLZXk/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Component, github } from 'projen';
2
+ export interface SonarWorkflowOptions {
3
+ /**
4
+ * URL of the org's SonarCloud instance (e.g. `https://sonarcloud.io`).
5
+ * Required, no default - a guessed server is worse than a loud failure.
6
+ */
7
+ readonly sonarHostUrl: string;
8
+ /**
9
+ * SonarCloud organization key (`sonar.organization`). Mandatory for the
10
+ * Scanner CLI on SonarCloud - it is not derived from the token, so a scan
11
+ * without it always fails.
12
+ * @default "xpertss"
13
+ */
14
+ readonly sonarOrganization?: string;
15
+ /** @default "SONAR_TOKEN" */
16
+ readonly sonarTokenSecret?: string;
17
+ /**
18
+ * Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate.
19
+ * @default true
20
+ */
21
+ readonly sonarPullRequestGate?: boolean;
22
+ /**
23
+ * `sonar.projectKey`.
24
+ * @default - `${sonarOrganization}_${name}` (the org + project key SonarCloud
25
+ * uses, e.g. `xpertss_create-pull-request`)
26
+ */
27
+ readonly sonarProjectKey?: string;
28
+ /**
29
+ * `sonar.inclusions` glob, only needed for files Sonar's default inclusions
30
+ * skip - e.g. a composite action's `action.yml` and `*.sh` scripts, which
31
+ * live outside the defaults. Omit it for default-recognized languages
32
+ * (Java, TypeScript, ...).
33
+ * @default - none (Sonar's default inclusions)
34
+ */
35
+ readonly sonarInclusions?: string;
36
+ }
37
+ /**
38
+ * AD-001 Layer 2: SonarCloud via the Scanner CLI only (never
39
+ * `SonarSource/sonarqube-scan-action` - third-party, and it carried a
40
+ * security advisory). `sonar.projectKey` defaults to
41
+ * `${sonarOrganization}_${name}` (the org + project key SonarCloud uses);
42
+ * `sonar.inclusions` is emitted only when provided, since the defaults are
43
+ * enough for default-recognized languages.
44
+ */
45
+ export declare class SonarWorkflow extends Component {
46
+ readonly workflow: github.GithubWorkflow;
47
+ constructor(scope: github.GitHubProject, options: SonarWorkflowOptions);
48
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SonarWorkflow = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const projen_1 = require("projen");
6
+ const workflow_purpose_1 = require("./workflow-purpose");
7
+ // Pinned release + verified SHA-256 (linux-x64) - upgrade is a reviewed diff
8
+ // of this constant, never a floating version (AD-001).
9
+ const SONAR_SCANNER_VERSION = '8.1.0.6389';
10
+ const SONAR_SCANNER_SHA256 = 'bb8f709f9cb73352f8d1260a3b3c506c0f41146754bc630762c126d795499d0b';
11
+ /**
12
+ * AD-001 Layer 2: SonarCloud via the Scanner CLI only (never
13
+ * `SonarSource/sonarqube-scan-action` - third-party, and it carried a
14
+ * security advisory). `sonar.projectKey` defaults to
15
+ * `${sonarOrganization}_${name}` (the org + project key SonarCloud uses);
16
+ * `sonar.inclusions` is emitted only when provided, since the defaults are
17
+ * enough for default-recognized languages.
18
+ */
19
+ class SonarWorkflow extends projen_1.Component {
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.SonarWorkflow", version: "0.0.23" };
21
+ workflow;
22
+ constructor(scope, options) {
23
+ super(scope, 'SonarWorkflow');
24
+ if (!options.sonarHostUrl) {
25
+ throw new Error('SonarWorkflow requires sonarHostUrl');
26
+ }
27
+ const gh = scope.github;
28
+ if (!gh) {
29
+ throw new Error('SonarWorkflow requires GitHub integration to be enabled');
30
+ }
31
+ const sonarTokenSecret = options.sonarTokenSecret ?? 'SONAR_TOKEN';
32
+ const pullRequestGate = options.sonarPullRequestGate ?? true;
33
+ const sonarOrganization = options.sonarOrganization ?? 'xpertss';
34
+ const projectKey = options.sonarProjectKey ?? `${sonarOrganization}_${scope.name}`;
35
+ this.workflow = new projen_1.github.GithubWorkflow(gh, 'sonar');
36
+ (0, workflow_purpose_1.noteWorkflowPurpose)(this.workflow.file, 'Static-analysis scan on the org SonarCloud.');
37
+ this.workflow.on({
38
+ push: { branches: ['main'] },
39
+ ...(pullRequestGate ? { pullRequest: {} } : {}),
40
+ });
41
+ this.workflow.addJob('sonar', {
42
+ runsOn: ['ubuntu-latest'],
43
+ permissions: { contents: projen_1.github.workflows.JobPermission.READ },
44
+ env: { SONAR_TOKEN: `\${{ secrets.${sonarTokenSecret} }}` },
45
+ steps: [
46
+ projen_1.github.WorkflowSteps.checkout(),
47
+ {
48
+ name: 'Install sonar-scanner',
49
+ run: `set -euo pipefail
50
+ curl -fsSL -o /tmp/sonar-scanner.zip "https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux-x64.zip"
51
+ echo "${SONAR_SCANNER_SHA256} /tmp/sonar-scanner.zip" | sha256sum -c -
52
+ unzip -q /tmp/sonar-scanner.zip -d /tmp
53
+ echo "/tmp/sonar-scanner-${SONAR_SCANNER_VERSION}-linux-x64/bin" >> "$GITHUB_PATH"
54
+ `,
55
+ },
56
+ {
57
+ name: 'Scan',
58
+ run: [
59
+ 'sonar-scanner \\',
60
+ ` -Dsonar.host.url=${options.sonarHostUrl} \\`,
61
+ ` -Dsonar.organization=${sonarOrganization} \\`,
62
+ ` -Dsonar.projectKey=${projectKey} \\`,
63
+ ' -Dsonar.projectVersion="$(git describe --tags --always)" \\',
64
+ ...(options.sonarInclusions
65
+ ? [` -Dsonar.inclusions=${options.sonarInclusions} \\`]
66
+ : []),
67
+ ' -Dsonar.qualitygate.wait=true',
68
+ ].join('\n'),
69
+ },
70
+ ],
71
+ });
72
+ }
73
+ }
74
+ exports.SonarWorkflow = SonarWorkflow;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYXItd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3NvbmFyLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBMkM7QUFDM0MseURBQXlEO0FBRXpELDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUM7QUFDM0MsTUFBTSxvQkFBb0IsR0FDeEIsa0VBQWtFLENBQUM7QUEyQ3JFOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGFBQWMsU0FBUSxrQkFBUzs7SUFDMUIsUUFBUSxDQUF3QjtJQUVoRCxZQUFZLEtBQTJCLEVBQUUsT0FBNkI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztRQUU5QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxDQUMxRCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLGFBQWEsQ0FBQztRQUNuRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDO1FBQzdELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixJQUFJLFNBQVMsQ0FBQztRQUNqRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEdBQUcsaUJBQWlCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5GLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2RCxJQUFBLHNDQUFtQixFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLDZDQUE2QyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtZQUM5RCxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLGdCQUFnQixLQUFLLEVBQUU7WUFDM0QsS0FBSyxFQUFFO2dCQUNMLGVBQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUMvQjtvQkFDRSxJQUFJLEVBQUUsdUJBQXVCO29CQUM3QixHQUFHLEVBQUU7MEhBQzJHLHFCQUFxQjtRQUN2SSxvQkFBb0I7OzJCQUVELHFCQUFxQjtDQUMvQztpQkFDUTtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixHQUFHLEVBQUU7d0JBQ0gsa0JBQWtCO3dCQUNsQixzQkFBc0IsT0FBTyxDQUFDLFlBQVksS0FBSzt3QkFDL0MsMEJBQTBCLGlCQUFpQixLQUFLO3dCQUNoRCx3QkFBd0IsVUFBVSxLQUFLO3dCQUN2QywrREFBK0Q7d0JBQy9ELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZTs0QkFDekIsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLE9BQU8sQ0FBQyxlQUFlLEtBQUssQ0FBQzs0QkFDeEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDUCxpQ0FBaUM7cUJBQ2xDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDYjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEzREgsc0NBNERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4vd29ya2Zsb3ctcHVycG9zZSc7XG5cbi8vIFBpbm5lZCByZWxlYXNlICsgdmVyaWZpZWQgU0hBLTI1NiAobGludXgteDY0KSAtIHVwZ3JhZGUgaXMgYSByZXZpZXdlZCBkaWZmXG4vLyBvZiB0aGlzIGNvbnN0YW50LCBuZXZlciBhIGZsb2F0aW5nIHZlcnNpb24gKEFELTAwMSkuXG5jb25zdCBTT05BUl9TQ0FOTkVSX1ZFUlNJT04gPSAnOC4xLjAuNjM4OSc7XG5jb25zdCBTT05BUl9TQ0FOTkVSX1NIQTI1NiA9XG4gICdiYjhmNzA5ZjljYjczMzUyZjhkMTI2MGEzYjNjNTA2YzBmNDExNDY3NTRiYzYzMDc2MmMxMjZkNzk1NDk5ZDBiJztcblxuZXhwb3J0IGludGVyZmFjZSBTb25hcldvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIG9yZydzIFNvbmFyQ2xvdWQgaW5zdGFuY2UgKGUuZy4gYGh0dHBzOi8vc29uYXJjbG91ZC5pb2ApLlxuICAgKiBSZXF1aXJlZCwgbm8gZGVmYXVsdCAtIGEgZ3Vlc3NlZCBzZXJ2ZXIgaXMgd29yc2UgdGhhbiBhIGxvdWQgZmFpbHVyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvbmFySG9zdFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTb25hckNsb3VkIG9yZ2FuaXphdGlvbiBrZXkgKGBzb25hci5vcmdhbml6YXRpb25gKS4gTWFuZGF0b3J5IGZvciB0aGVcbiAgICogU2Nhbm5lciBDTEkgb24gU29uYXJDbG91ZCAtIGl0IGlzIG5vdCBkZXJpdmVkIGZyb20gdGhlIHRva2VuLCBzbyBhIHNjYW5cbiAgICogd2l0aG91dCBpdCBhbHdheXMgZmFpbHMuXG4gICAqIEBkZWZhdWx0IFwieHBlcnRzc1wiXG4gICAqL1xuICByZWFkb25seSBzb25hck9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJTT05BUl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IHNvbmFyVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHNvbmFyLnltbGAgYWxzbyBydW5zIG9uIGBwdWxsX3JlcXVlc3RgIGFzIGEgcGFzcy9mYWlsIGdhdGUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHVsbFJlcXVlc3RHYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogYHNvbmFyLnByb2plY3RLZXlgLlxuICAgKiBAZGVmYXVsdCAtIGAke3NvbmFyT3JnYW5pemF0aW9ufV8ke25hbWV9YCAodGhlIG9yZyArIHByb2plY3Qga2V5IFNvbmFyQ2xvdWRcbiAgICogdXNlcywgZS5nLiBgeHBlcnRzc19jcmVhdGUtcHVsbC1yZXF1ZXN0YClcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHJvamVjdEtleT86IHN0cmluZztcblxuICAvKipcbiAgICogYHNvbmFyLmluY2x1c2lvbnNgIGdsb2IsIG9ubHkgbmVlZGVkIGZvciBmaWxlcyBTb25hcidzIGRlZmF1bHQgaW5jbHVzaW9uc1xuICAgKiBza2lwIC0gZS5nLiBhIGNvbXBvc2l0ZSBhY3Rpb24ncyBgYWN0aW9uLnltbGAgYW5kIGAqLnNoYCBzY3JpcHRzLCB3aGljaFxuICAgKiBsaXZlIG91dHNpZGUgdGhlIGRlZmF1bHRzLiBPbWl0IGl0IGZvciBkZWZhdWx0LXJlY29nbml6ZWQgbGFuZ3VhZ2VzXG4gICAqIChKYXZhLCBUeXBlU2NyaXB0LCAuLi4pLlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgKFNvbmFyJ3MgZGVmYXVsdCBpbmNsdXNpb25zKVxuICAgKi9cbiAgcmVhZG9ubHkgc29uYXJJbmNsdXNpb25zPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFELTAwMSBMYXllciAyOiBTb25hckNsb3VkIHZpYSB0aGUgU2Nhbm5lciBDTEkgb25seSAobmV2ZXJcbiAqIGBTb25hclNvdXJjZS9zb25hcnF1YmUtc2Nhbi1hY3Rpb25gIC0gdGhpcmQtcGFydHksIGFuZCBpdCBjYXJyaWVkIGFcbiAqIHNlY3VyaXR5IGFkdmlzb3J5KS4gYHNvbmFyLnByb2plY3RLZXlgIGRlZmF1bHRzIHRvXG4gKiBgJHtzb25hck9yZ2FuaXphdGlvbn1fJHtuYW1lfWAgKHRoZSBvcmcgKyBwcm9qZWN0IGtleSBTb25hckNsb3VkIHVzZXMpO1xuICogYHNvbmFyLmluY2x1c2lvbnNgIGlzIGVtaXR0ZWQgb25seSB3aGVuIHByb3ZpZGVkLCBzaW5jZSB0aGUgZGVmYXVsdHMgYXJlXG4gKiBlbm91Z2ggZm9yIGRlZmF1bHQtcmVjb2duaXplZCBsYW5ndWFnZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTb25hcldvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93OiBnaXRodWIuR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGdpdGh1Yi5HaXRIdWJQcm9qZWN0LCBvcHRpb25zOiBTb25hcldvcmtmbG93T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCAnU29uYXJXb3JrZmxvdycpO1xuXG4gICAgaWYgKCFvcHRpb25zLnNvbmFySG9zdFVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTb25hcldvcmtmbG93IHJlcXVpcmVzIHNvbmFySG9zdFVybCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGdoID0gc2NvcGUuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1NvbmFyV29ya2Zsb3cgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uIHRvIGJlIGVuYWJsZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb25hclRva2VuU2VjcmV0ID0gb3B0aW9ucy5zb25hclRva2VuU2VjcmV0ID8/ICdTT05BUl9UT0tFTic7XG4gICAgY29uc3QgcHVsbFJlcXVlc3RHYXRlID0gb3B0aW9ucy5zb25hclB1bGxSZXF1ZXN0R2F0ZSA/PyB0cnVlO1xuICAgIGNvbnN0IHNvbmFyT3JnYW5pemF0aW9uID0gb3B0aW9ucy5zb25hck9yZ2FuaXphdGlvbiA/PyAneHBlcnRzcyc7XG4gICAgY29uc3QgcHJvamVjdEtleSA9IG9wdGlvbnMuc29uYXJQcm9qZWN0S2V5ID8/IGAke3NvbmFyT3JnYW5pemF0aW9ufV8ke3Njb3BlLm5hbWV9YDtcblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLkdpdGh1YldvcmtmbG93KGdoLCAnc29uYXInKTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKHRoaXMud29ya2Zsb3cuZmlsZSwgJ1N0YXRpYy1hbmFseXNpcyBzY2FuIG9uIHRoZSBvcmcgU29uYXJDbG91ZC4nKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHB1c2g6IHsgYnJhbmNoZXM6IFsnbWFpbiddIH0sXG4gICAgICAuLi4ocHVsbFJlcXVlc3RHYXRlID8geyBwdWxsUmVxdWVzdDoge30gfSA6IHt9KSxcbiAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignc29uYXInLCB7XG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBlbnY6IHsgU09OQVJfVE9LRU46IGBcXCR7eyBzZWNyZXRzLiR7c29uYXJUb2tlblNlY3JldH0gfX1gIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICBnaXRodWIuV29ya2Zsb3dTdGVwcy5jaGVja291dCgpLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0luc3RhbGwgc29uYXItc2Nhbm5lcicsXG4gICAgICAgICAgcnVuOiBgc2V0IC1ldW8gcGlwZWZhaWxcbmN1cmwgLWZzU0wgLW8gL3RtcC9zb25hci1zY2FubmVyLnppcCBcImh0dHBzOi8vYmluYXJpZXMuc29uYXJzb3VyY2UuY29tL0Rpc3RyaWJ1dGlvbi9zb25hci1zY2FubmVyLWNsaS9zb25hci1zY2FubmVyLWNsaS0ke1NPTkFSX1NDQU5ORVJfVkVSU0lPTn0tbGludXgteDY0LnppcFwiXG5lY2hvIFwiJHtTT05BUl9TQ0FOTkVSX1NIQTI1Nn0gIC90bXAvc29uYXItc2Nhbm5lci56aXBcIiB8IHNoYTI1NnN1bSAtYyAtXG51bnppcCAtcSAvdG1wL3NvbmFyLXNjYW5uZXIuemlwIC1kIC90bXBcbmVjaG8gXCIvdG1wL3NvbmFyLXNjYW5uZXItJHtTT05BUl9TQ0FOTkVSX1ZFUlNJT059LWxpbnV4LXg2NC9iaW5cIiA+PiBcIiRHSVRIVUJfUEFUSFwiXG5gLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1NjYW4nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ3NvbmFyLXNjYW5uZXIgXFxcXCcsXG4gICAgICAgICAgICBgICAtRHNvbmFyLmhvc3QudXJsPSR7b3B0aW9ucy5zb25hckhvc3RVcmx9IFxcXFxgLFxuICAgICAgICAgICAgYCAgLURzb25hci5vcmdhbml6YXRpb249JHtzb25hck9yZ2FuaXphdGlvbn0gXFxcXGAsXG4gICAgICAgICAgICBgICAtRHNvbmFyLnByb2plY3RLZXk9JHtwcm9qZWN0S2V5fSBcXFxcYCxcbiAgICAgICAgICAgICcgIC1Ec29uYXIucHJvamVjdFZlcnNpb249XCIkKGdpdCBkZXNjcmliZSAtLXRhZ3MgLS1hbHdheXMpXCIgXFxcXCcsXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5zb25hckluY2x1c2lvbnNcbiAgICAgICAgICAgICAgPyBbYCAgLURzb25hci5pbmNsdXNpb25zPSR7b3B0aW9ucy5zb25hckluY2x1c2lvbnN9IFxcXFxgXVxuICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgICcgIC1Ec29uYXIucXVhbGl0eWdhdGUud2FpdD10cnVlJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("./workflow-purpose");
7
7
  class WorkflowChangeNoticeWorkflow extends projen_1.Component {
8
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.21" };
8
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.23" };
9
9
  workflow;
10
10
  constructor(scope, options = {}) {
11
11
  super(scope, 'WorkflowChangeNoticeWorkflow');
package/lib/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './common/environment-options';
2
2
  export * from './common/projen-drift-check-workflow';
3
+ export * from './common/sonar-options';
4
+ export * from './common/sonar-workflow';
3
5
  export * from './common/workflow-change-notice-workflow';
4
6
  export * from './common/internal-actions';
5
7
  export * from './cdk/options';
package/lib/index.js CHANGED
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./common/environment-options"), exports);
18
18
  __exportStar(require("./common/projen-drift-check-workflow"), exports);
19
+ __exportStar(require("./common/sonar-options"), exports);
20
+ __exportStar(require("./common/sonar-workflow"), exports);
19
21
  __exportStar(require("./common/workflow-change-notice-workflow"), exports);
20
22
  __exportStar(require("./common/internal-actions"), exports);
21
23
  __exportStar(require("./cdk/options"), exports);
@@ -45,4 +47,4 @@ __exportStar(require("./actions/github-action-project"), exports);
45
47
  __exportStar(require("./actions/action-build-workflow"), exports);
46
48
  __exportStar(require("./actions/action-dogfood-workflow"), exports);
47
49
  __exportStar(require("./actions/action-sonar-workflow"), exports);
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtEQUE2QztBQUM3Qyx1RUFBcUQ7QUFDckQsMkVBQXlEO0FBQ3pELDREQUEwQztBQUUxQyxnREFBOEI7QUFDOUIsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4Qyx3REFBc0M7QUFDdEMsc0VBQW9EO0FBQ3BELDhFQUE0RDtBQUM1RCw2REFBMkM7QUFDM0MsMkRBQXlDO0FBRXpDLGlEQUErQjtBQUMvQix5REFBdUM7QUFDdkMsa0VBQWdEO0FBQ2hELHlEQUF1QztBQUN2Qyw0REFBMEM7QUFDMUMsOERBQTRDO0FBQzVDLDhEQUE0QztBQUM1QywwREFBd0M7QUFDeEMsMEVBQXdEO0FBQ3hELG1FQUFpRDtBQUNqRCw0RUFBMEQ7QUFDMUQscUVBQW1EO0FBQ25ELG9FQUFrRDtBQUNsRCx3RUFBc0Q7QUFDdEQseUVBQXVEO0FBRXZELGtFQUFnRDtBQUNoRCxrRUFBZ0Q7QUFDaEQsb0VBQWtEO0FBQ2xELGtFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vaW50ZXJuYWwtYWN0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY2RrL29wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9jZGstaW5mcmEtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9jZGstYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY29tcG9uZW50cy9lY3ItZWNzLWNvbnN0cnVjdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY29tcG9uZW50cy9lZGdlLW5ldHdvcmtpbmctY29uc3RydWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9hcHAtcnVudGltZS1zY2FmZm9sZCc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay9kYXRhYmFzZS1jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2phdmEvb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1tYXZlbi1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9qYXZhLXNwcmluZy1ib290LXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL21hdmVuL21hdmVuLXBvbSc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvbWF2ZW4vbWF2ZW4tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9qYXZhLWxpYnJhcnktcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1zZXJ2aWNlLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2phdmEtYXBwLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2NvbXBvbmVudHMvbWF2ZW4tY2VudHJhbC1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2RvY2tlci1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2dpdGh1Yi1wYWNrYWdlcy1wdWJsaXNoJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2ZseXdheS1taWdyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2NvbXBvbmVudHMvY2RrLWRlcGxveS1ob29rJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2NvZGUtaW5kZXgtd29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2NvbXBvbmVudHMvbWF2ZW4tdXBncmFkZS1yZXBvcnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hY3Rpb24tYnVpbGQtd29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2FjdGlvbi1kb2dmb29kLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hY3Rpb24tc29uYXItd29ya2Zsb3cnO1xuXG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtEQUE2QztBQUM3Qyx1RUFBcUQ7QUFDckQseURBQXVDO0FBQ3ZDLDBEQUF3QztBQUN4QywyRUFBeUQ7QUFDekQsNERBQTBDO0FBRTFDLGdEQUE4QjtBQUM5Qiw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLHdEQUFzQztBQUN0QyxzRUFBb0Q7QUFDcEQsOEVBQTREO0FBQzVELDZEQUEyQztBQUMzQywyREFBeUM7QUFFekMsaURBQStCO0FBQy9CLHlEQUF1QztBQUN2QyxrRUFBZ0Q7QUFDaEQseURBQXVDO0FBQ3ZDLDREQUEwQztBQUMxQyw4REFBNEM7QUFDNUMsOERBQTRDO0FBQzVDLDBEQUF3QztBQUN4QywwRUFBd0Q7QUFDeEQsbUVBQWlEO0FBQ2pELDRFQUEwRDtBQUMxRCxxRUFBbUQ7QUFDbkQsb0VBQWtEO0FBQ2xELHdFQUFzRDtBQUN0RCx5RUFBdUQ7QUFFdkQsa0VBQWdEO0FBQ2hELGtFQUFnRDtBQUNoRCxvRUFBa0Q7QUFDbEQsa0VBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24vZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vc29uYXItb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi9zb25hci13b3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi93b3JrZmxvdy1jaGFuZ2Utbm90aWNlLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Nkay9vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrL2Nkay10eXBlc2NyaXB0LWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY2RrLWluZnJhLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvY2RrLWFwcC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vY2RrL2NvbXBvbmVudHMvZWNyLWVjcy1jb25zdHJ1Y3RzJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrL2NvbXBvbmVudHMvZWRnZS1uZXR3b3JraW5nLWNvbnN0cnVjdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvYXBwLXJ1bnRpbWUtc2NhZmZvbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGsvZGF0YWJhc2UtY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9qYXZhL29wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2phdmEtbWF2ZW4tYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1zcHJpbmctYm9vdC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9tYXZlbi9tYXZlbi1wb20nO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL21hdmVuL21hdmVuLW1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvamF2YS1saWJyYXJ5LXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9qYXZhL2phdmEtc2VydmljZS1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9qYXZhLWFwcC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL21hdmVuLWNlbnRyYWwtcHVibGlzaCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvY29tcG9uZW50cy9kb2NrZXItcHVibGlzaCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvY29tcG9uZW50cy9naXRodWItcGFja2FnZXMtcHVibGlzaCc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvY29tcG9uZW50cy9mbHl3YXktbWlncmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL2Nkay1kZXBsb3ktaG9vayc7XG5leHBvcnQgKiBmcm9tICcuL2phdmEvY29tcG9uZW50cy9jb2RlLWluZGV4LXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vamF2YS9jb21wb25lbnRzL21hdmVuLXVwZ3JhZGUtcmVwb3J0JztcblxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2dpdGh1Yi1hY3Rpb24tcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvYWN0aW9uLWJ1aWxkLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hY3Rpb24tZG9nZm9vZC13b3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMvYWN0aW9uLXNvbmFyLXdvcmtmbG93JztcblxuIl19
@@ -18,7 +18,7 @@ const manual_deploy_workflow_1 = require("../../common/manual-deploy-workflow");
18
18
  * which is exactly when "this repo has no deploy target" needs saying.
19
19
  */
20
20
  class CdkDeployHook extends projen_1.Component {
21
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.21" };
21
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.23" };
22
22
  constructor(project, environments, options = {}) {
23
23
  super(project, 'CdkDeployHook');
24
24
  const targetRepo = options.targetRepo;
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** Generates a code index and publishes it to `.cai/` on checkin. */
8
8
  class CodeIndexWorkflow extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.21" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.23" };
10
10
  constructor(project) {
11
11
  super(project, 'CodeIndexWorkflow');
12
12
  const gh = project.github;
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** On-demand build+push of a Docker image, defaulting to Docker Hub. */
8
8
  class DockerPublish extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.21" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.23" };
10
10
  constructor(project, options = {}) {
11
11
  super(project, 'DockerPublish');
12
12
  const gh = project.github;
@@ -11,7 +11,7 @@ const java_versions_1 = require("../java-versions");
11
11
  * plugin (which Boot's BOM does not manage) is pinned for the Java line.
12
12
  */
13
13
  class FlywayMigration extends projen_1.Component {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.21" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.23" };
15
15
  constructor(project) {
16
16
  super(project, 'FlywayMigration');
17
17
  project.addPlugin(`${java_versions_1.FLYWAY_MAVEN_PLUGIN}@${project.pinnedVersion(java_versions_1.FLYWAY_MAVEN_PLUGIN)}`);
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** On-demand publish to GitHub Packages. */
8
8
  class GitHubPackagesPublish extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.21" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.23" };
10
10
  constructor(project, options = {}) {
11
11
  super(project, 'GitHubPackagesPublish');
12
12
  const gh = project.github;
@@ -9,7 +9,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
9
9
  * or OIDC trusted publishing.
10
10
  */
11
11
  class MavenCentralPublish extends projen_1.Component {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.21" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.23" };
13
13
  constructor(project, options = {}) {
14
14
  super(project, 'MavenCentralPublish');
15
15
  const gh = project.github;
@@ -17,7 +17,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
17
17
  * check. Apply an update by changing the version in `.projenrc.ts`.
18
18
  */
19
19
  class MavenUpgradeReport extends projen_1.Component {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.21" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.23" };
21
21
  workflow;
22
22
  constructor(scope, options) {
23
23
  super(scope, 'MavenUpgradeReport');
@@ -9,7 +9,7 @@ const java_maven_base_1 = require("./java-maven-base");
9
9
  * explicitly excludes Maven Central, Docker, and CDK deploy hooks.
10
10
  */
11
11
  class JavaAppProject extends java_maven_base_1.JavaMavenProject {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.21" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.23" };
13
13
  constructor(options) {
14
14
  super(options);
15
15
  new github_packages_publish_1.GitHubPackagesPublish(this, {
@@ -12,7 +12,7 @@ const java_versions_1 = require("./java-versions");
12
12
  * reactor, every module inherits them).
13
13
  */
14
14
  class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.21" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.23" };
16
16
  constructor(options) {
17
17
  super(options);
18
18
  this.addPlugin(`${java_versions_1.MAVEN_SOURCE_PLUGIN}@${this.pinnedVersion(java_versions_1.MAVEN_SOURCE_PLUGIN)}`, {
@@ -2,6 +2,7 @@ import { Task, github, java } from 'projen';
2
2
  import { MavenModule } from './maven/maven-module';
3
3
  import { MavenPom } from './maven/maven-pom';
4
4
  import { JavaMavenProjectOptions, MavenModuleOptions } from './options';
5
+ import { SonarWorkflow } from '../common/sonar-workflow';
5
6
  /**
6
7
  * Baseline Maven project, single- or multi-module, with no framework
7
8
  * assumptions. It is the base of every Java type in this package and is
@@ -17,8 +18,9 @@ import { JavaMavenProjectOptions, MavenModuleOptions } from './options';
17
18
  * modules inherit its plugins and test dependencies.
18
19
  * - `npx projen build` synthesizes, then runs Maven once: `mvn -B verify`
19
20
  * (unit tests via surefire, `*IT` tests via failsafe).
20
- * - CI: a PR build (with an optional SonarQube scan), the projen drift
21
- * check, and a nightly report-only update check.
21
+ * - CI: a PR build, the projen drift check, an optional SonarCloud scan
22
+ * (`sonar.yml`, when `sonarHostUrl` is set), and a nightly report-only
23
+ * update check.
22
24
  */
23
25
  export declare class JavaMavenProject extends github.GitHubProject {
24
26
  /** The root `pom.xml`. */
@@ -38,6 +40,8 @@ export declare class JavaMavenProject extends github.GitHubProject {
38
40
  * Maven cache - the setup every Maven CI job in this repo needs.
39
41
  */
40
42
  readonly ciSetupSteps: github.workflows.JobStep[];
43
+ /** Set only when `sonarHostUrl` is provided. */
44
+ readonly sonarWorkflow?: SonarWorkflow;
41
45
  private readonly javaLine;
42
46
  private readonly rootPackaging?;
43
47
  private readonly groupId;