projen 0.34.27 → 0.35.2

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 (102) hide show
  1. package/.jsii +280 -24
  2. package/API.md +83 -0
  3. package/docs/awscdk.md +22 -25
  4. package/lib/awscdk/auto-discover.d.ts +8 -0
  5. package/lib/awscdk/auto-discover.js +17 -2
  6. package/lib/awscdk/cdk-config.d.ts +14 -0
  7. package/lib/awscdk/cdk-config.js +7 -3
  8. package/lib/awscdk/cdk-tasks.js +1 -1
  9. package/lib/awscdk/index.d.ts +1 -0
  10. package/lib/awscdk/index.js +2 -1
  11. package/lib/awscdk/integration-test.d.ts +77 -0
  12. package/lib/awscdk/integration-test.js +100 -0
  13. package/lib/awscdk/internal.d.ts +4 -0
  14. package/lib/awscdk/internal.js +6 -2
  15. package/lib/awscdk/java-app.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/awscdk-app-ts.js +17 -2
  18. package/lib/awscdk-construct.js +4 -3
  19. package/lib/cdk8s-app-ts.js +1 -1
  20. package/lib/cdk8s-construct.js +1 -1
  21. package/lib/cdktf-construct.js +1 -1
  22. package/lib/component.js +1 -1
  23. package/lib/construct-lib.js +1 -1
  24. package/lib/deps/dependencies.js +1 -1
  25. package/lib/dev-env.js +1 -1
  26. package/lib/docker-compose.js +2 -2
  27. package/lib/eslint.js +1 -1
  28. package/lib/file.js +1 -1
  29. package/lib/git/gitattributes.js +1 -1
  30. package/lib/github/auto-approve.js +1 -1
  31. package/lib/github/auto-merge.js +1 -1
  32. package/lib/github/dependabot.js +1 -1
  33. package/lib/github/github.js +1 -1
  34. package/lib/github/mergify.js +1 -1
  35. package/lib/github/pr-template.js +1 -1
  36. package/lib/github/pull-request-lint.js +1 -1
  37. package/lib/github/stale.js +1 -1
  38. package/lib/github/task-workflow.js +1 -1
  39. package/lib/github/workflows.js +1 -1
  40. package/lib/gitpod.js +1 -1
  41. package/lib/ignore-file.js +1 -1
  42. package/lib/ini.js +1 -1
  43. package/lib/java/java-project.js +1 -1
  44. package/lib/java/junit.js +1 -1
  45. package/lib/java/maven-compile.js +1 -1
  46. package/lib/java/maven-packaging.js +1 -1
  47. package/lib/java/maven-sample.js +1 -1
  48. package/lib/java/pom.js +1 -1
  49. package/lib/java/projenrc.js +1 -1
  50. package/lib/javascript/bundler.js +1 -1
  51. package/lib/javascript/npm-config.js +1 -1
  52. package/lib/javascript/projenrc.js +1 -1
  53. package/lib/jest.js +1 -1
  54. package/lib/jsii-project.js +1 -1
  55. package/lib/json/projenrc.js +1 -1
  56. package/lib/json.js +1 -1
  57. package/lib/license.js +1 -1
  58. package/lib/logger.js +1 -1
  59. package/lib/makefile.js +1 -1
  60. package/lib/node-package.js +1 -1
  61. package/lib/node-project.js +1 -1
  62. package/lib/object-file.js +1 -1
  63. package/lib/project-build.js +1 -1
  64. package/lib/project.js +2 -2
  65. package/lib/projects.js +1 -1
  66. package/lib/python/pip.js +1 -1
  67. package/lib/python/poetry.js +2 -2
  68. package/lib/python/projenrc.js +1 -1
  69. package/lib/python/pytest.js +1 -1
  70. package/lib/python/python-project.js +1 -1
  71. package/lib/python/python-sample.js +1 -1
  72. package/lib/python/requirements-file.js +1 -1
  73. package/lib/python/setuppy.js +1 -1
  74. package/lib/python/setuptools.js +1 -1
  75. package/lib/python/venv.js +1 -1
  76. package/lib/readme.js +1 -1
  77. package/lib/release/publisher.js +1 -1
  78. package/lib/release/release-trigger.js +1 -1
  79. package/lib/release/release.js +1 -1
  80. package/lib/sample-file.js +2 -2
  81. package/lib/semver.js +1 -1
  82. package/lib/source-code.js +1 -1
  83. package/lib/tasks/runtime.js +1 -1
  84. package/lib/tasks/task.js +1 -1
  85. package/lib/tasks/tasks.js +1 -1
  86. package/lib/textfile.js +1 -1
  87. package/lib/toml.js +1 -1
  88. package/lib/typescript/projenrc.js +1 -1
  89. package/lib/typescript-config.js +1 -1
  90. package/lib/typescript.js +5 -4
  91. package/lib/upgrade-dependencies.js +2 -2
  92. package/lib/version.js +1 -1
  93. package/lib/vscode/devcontainer.js +1 -1
  94. package/lib/vscode/launch-config.js +1 -1
  95. package/lib/vscode/vscode.js +1 -1
  96. package/lib/web/next.js +3 -3
  97. package/lib/web/postcss.js +1 -1
  98. package/lib/web/react.js +4 -4
  99. package/lib/web/tailwind.js +1 -1
  100. package/lib/xmlfile.js +1 -1
  101. package/lib/yaml.js +1 -1
  102. package/package.json +3 -3
package/docs/awscdk.md CHANGED
@@ -95,37 +95,34 @@ new awscdk.LambdaFunction(p, {
95
95
  });
96
96
  ```
97
97
 
98
- ## Integration Snapshot Tests (NOT IMPLEMENTED YET)
98
+ ## Integration Snapshot Tests
99
99
 
100
- Files in the test tree with the `.integ.ts` suffix are recognized as
100
+ Files in the `test/` tree with the `.integ.ts` suffix are recognized as
101
101
  *integration snapshot tests*.
102
102
 
103
- Each test is a simple app (e.g. calls `app.synth()`) which exercises certain
103
+ Each test is a simple CDK app (e.g. calls `app.synth()`) which exercises certain
104
104
  construct(s) within the project. A test is considered passing if the app can be
105
105
  successfully deployed.
106
106
 
107
- During build, integration test apps are synthesized and their output is compared
108
- to a committed *snapshot*. If the output is the same, the test has passed,
109
- otherwise the build will fail.
110
-
111
- To create/update the snapshot, developers need to manually execute the task
112
- `integ:NAME:deploy` with AWS credentials in their environment. This task will
113
- `cdk deploy` the test app to their development account and if deployment
114
- succeeded (i.e. the test passed), it will take a snapshot of the output and add
115
- it to the repository under a `xxx.integ.snapshot` directory. This directory
116
- should be committed to the repository.
117
-
118
- In addition to the `integ:NAME:deploy` task, for each integration test, the
119
- following set of tasks are created:
120
-
121
- * `integ:NAME:deploy` - deploys & destroys the test app and updates the snapshot.
122
- * `integ:NAME:destroy` - destroys a previously deployed test app.
123
- * `integ:NAME:assert` - synthesizes the test app and compares it with the
124
- snapshot (this is the task that runs during build).
125
- * `integ:NAME:snapshot` - synthesizes the test app and updates the snapshot
126
- (bypasses the deployment).
127
- * `integ:NAME:watch` - starts `cdk watch` for the test app (monitors all source
128
- files and bundles).
107
+ To create/update the snapshot, developers are expected to execute the task
108
+ `integ:NAME:deploy` with AWS credentials for their personal development
109
+ environment. This task will deploy the test app to their account. Upon
110
+ successful deployment (i.e. the test passed), the snapshot will be captured and
111
+ stored under a directory called `xxx.integ.snapshot` next to the test
112
+ entrypoint. This directory should be committed to the repository.
113
+
114
+ During builds (either local or within a workflow), the task `integ:NAME:assert`
115
+ will be executed. This task synthesizes the test app and compares the output to
116
+ the captured snapshot. The build will fail if the output differs.
117
+
118
+ For each integration test, the following set of tasks are created:
119
+
120
+ |Task|Description|
121
+ |----|-----------|
122
+ |`integ:NAME:deploy`|Deploys & destroys the test app and updates the snapshot.|
123
+ |`integ:NAME:assert`|Synthesizes the test app and compares it with the snapshot (this is the task that runs during build)|
124
+ |`integ:NAME:snapshot`|Synthesizes the test app and updates the snapshot (not recommended to use because it bypasses deployment).|
125
+ |`integ:NAME:destroy`|Destroys a previously deployed test app.|
129
126
 
130
127
  ### Writing test assertions
131
128
 
@@ -19,6 +19,12 @@ export interface AutoDiscoverOptions {
19
19
  * @experimental
20
20
  */
21
21
  readonly srcdir: string;
22
+ /**
23
+ * (experimental) Test source tree.
24
+ *
25
+ * @experimental
26
+ */
27
+ readonly testdir: string;
22
28
  }
23
29
  /**
24
30
  * (experimental) Automatically creates a `LambdaFunction` for all `.lambda.ts` files under the source directory of the project.
@@ -30,4 +36,6 @@ export declare class AutoDiscover extends Component {
30
36
  * @experimental
31
37
  */
32
38
  constructor(project: Project, options: AutoDiscoverOptions);
39
+ private autoDiscoverLambdaFunctions;
40
+ private autoDiscoverIntegrationTests;
33
41
  }
@@ -5,6 +5,7 @@ exports.AutoDiscover = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path_1 = require("path");
7
7
  const glob = require("glob");
8
+ const _1 = require(".");
8
9
  const component_1 = require("../component");
9
10
  const internal_1 = require("./internal");
10
11
  const lambda_function_1 = require("./lambda-function");
@@ -19,6 +20,10 @@ class AutoDiscover extends component_1.Component {
19
20
  */
20
21
  constructor(project, options) {
21
22
  super(project);
23
+ this.autoDiscoverLambdaFunctions(options);
24
+ this.autoDiscoverIntegrationTests(options);
25
+ }
26
+ autoDiscoverLambdaFunctions(options) {
22
27
  const entrypoints = glob.sync(`**/*${internal_1.TYPESCRIPT_LAMBDA_EXT}`, {
23
28
  cwd: path_1.join(this.project.outdir, options.srcdir),
24
29
  });
@@ -29,8 +34,18 @@ class AutoDiscover extends component_1.Component {
29
34
  });
30
35
  }
31
36
  }
37
+ autoDiscoverIntegrationTests(options) {
38
+ const entrypoints = glob.sync(`**/*${internal_1.TYPESCRIPT_INTEG_EXT}`, {
39
+ cwd: path_1.join(this.project.outdir, options.testdir),
40
+ });
41
+ for (const entrypoint of entrypoints) {
42
+ new _1.IntegrationTest(this.project, {
43
+ entrypoint: path_1.join(options.testdir, entrypoint),
44
+ });
45
+ }
46
+ }
32
47
  }
33
48
  exports.AutoDiscover = AutoDiscover;
34
49
  _a = JSII_RTTI_SYMBOL_1;
35
- AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.34.27" };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0IsNENBQXlDO0FBRXpDLHlDQUFtRDtBQUNuRCx1REFBZ0Y7Ozs7OztBQVloRixNQUFhLFlBQWEsU0FBUSxxQkFBUzs7OztJQUd6QyxZQUFZLE9BQWdCLEVBQUUsT0FBNEI7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLGdDQUFxQixFQUFFLEVBQUU7WUFDNUQsR0FBRyxFQUFFLFdBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQy9DLENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1lBQ3BDLElBQUksZ0NBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMvQixVQUFVLEVBQUUsV0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO2dCQUM1QyxHQUFHLE9BQU8sQ0FBQyxhQUFhO2FBQ3pCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFoQkgsb0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZ2xvYiBmcm9tICdnbG9iJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vcHJvamVjdCc7XG5pbXBvcnQgeyBUWVBFU0NSSVBUX0xBTUJEQV9FWFQgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uLCBMYW1iZGFGdW5jdGlvbkNvbW1vbk9wdGlvbnMgfSBmcm9tICcuL2xhbWJkYS1mdW5jdGlvbic7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9EaXNjb3Zlck9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGFtYmRhT3B0aW9ucz86IExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF1dG9EaXNjb3ZlciBleHRlbmRzIENvbXBvbmVudCB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBlbnRyeXBvaW50cyA9IGdsb2Iuc3luYyhgKiovKiR7VFlQRVNDUklQVF9MQU1CREFfRVhUfWAsIHtcbiAgICAgIGN3ZDogam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCBvcHRpb25zLnNyY2RpciksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGVudHJ5cG9pbnQgb2YgZW50cnlwb2ludHMpIHtcbiAgICAgIG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnNyY2RpciwgZW50cnlwb2ludCksXG4gICAgICAgIC4uLm9wdGlvbnMubGFtYmRhT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSJdfQ==
50
+ AutoDiscover[_a] = { fqn: "projen.awscdk.AutoDiscover", version: "0.35.2" };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1kaXNjb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYXV0by1kaXNjb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0Isd0JBQW9DO0FBQ3BDLDRDQUF5QztBQUV6Qyx5Q0FBeUU7QUFDekUsdURBQWdGOzs7Ozs7QUFlaEYsTUFBYSxZQUFhLFNBQVEscUJBQVM7Ozs7SUFHekMsWUFBWSxPQUFnQixFQUFFLE9BQTRCO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLDJCQUEyQixDQUFDLE9BQTRCO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxnQ0FBcUIsRUFBRSxFQUFFO1lBQzVELEdBQUcsRUFBRSxXQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUMvQyxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNwQyxJQUFJLGdDQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDL0IsVUFBVSxFQUFFLFdBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztnQkFDNUMsR0FBRyxPQUFPLENBQUMsYUFBYTthQUN6QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxPQUE0QjtRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sK0JBQW9CLEVBQUUsRUFBRTtZQUMzRCxHQUFHLEVBQUUsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsSUFBSSxrQkFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hDLFVBQVUsRUFBRSxXQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7YUFDOUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQWpDSCxvQ0FtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25UZXN0IH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVFlQRVNDUklQVF9JTlRFR19FWFQsIFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB9IGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0Rpc2NvdmVyT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsYW1iZGFPcHRpb25zPzogTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRlc3RkaXI6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEF1dG9EaXNjb3ZlciBleHRlbmRzIENvbXBvbmVudCB7XG5cblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmF1dG9EaXNjb3ZlckxhbWJkYUZ1bmN0aW9ucyhvcHRpb25zKTtcbiAgICB0aGlzLmF1dG9EaXNjb3ZlckludGVncmF0aW9uVGVzdHMob3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckxhbWJkYUZ1bmN0aW9ucyhvcHRpb25zOiBBdXRvRGlzY292ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgZW50cnlwb2ludHMgPSBnbG9iLnN5bmMoYCoqLyoke1RZUEVTQ1JJUFRfTEFNQkRBX0VYVH1gLCB7XG4gICAgICBjd2Q6IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgb3B0aW9ucy5zcmNkaXIpLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzKSB7XG4gICAgICBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5wcm9qZWN0LCB7XG4gICAgICAgIGVudHJ5cG9pbnQ6IGpvaW4ob3B0aW9ucy5zcmNkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgICAuLi5vcHRpb25zLmxhbWJkYU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGF1dG9EaXNjb3ZlckludGVncmF0aW9uVGVzdHMob3B0aW9uczogQXV0b0Rpc2NvdmVyT3B0aW9ucykge1xuICAgIGNvbnN0IGVudHJ5cG9pbnRzID0gZ2xvYi5zeW5jKGAqKi8qJHtUWVBFU0NSSVBUX0lOVEVHX0VYVH1gLCB7XG4gICAgICBjd2Q6IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgb3B0aW9ucy50ZXN0ZGlyKSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgZW50cnlwb2ludCBvZiBlbnRyeXBvaW50cykge1xuICAgICAgbmV3IEludGVncmF0aW9uVGVzdCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgZW50cnlwb2ludDogam9pbihvcHRpb25zLnRlc3RkaXIsIGVudHJ5cG9pbnQpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn0iXX0=
@@ -37,6 +37,20 @@ export interface CdkConfigCommonOptions {
37
37
  * @experimental
38
38
  */
39
39
  readonly cdkout?: string;
40
+ /**
41
+ * (experimental) Glob patterns to include in `cdk watch`.
42
+ *
43
+ * @default []
44
+ * @experimental
45
+ */
46
+ readonly watchIncludes?: string[];
47
+ /**
48
+ * (experimental) Glob patterns to exclude from `cdk watch`.
49
+ *
50
+ * @default []
51
+ * @experimental
52
+ */
53
+ readonly watchExcludes?: string[];
40
54
  }
41
55
  /**
42
56
  * (experimental) Options for `CdkJson`.
@@ -16,7 +16,7 @@ class CdkConfig extends component_1.Component {
16
16
  * @experimental
17
17
  */
18
18
  constructor(project, options) {
19
- var _b, _c;
19
+ var _b, _c, _d, _e;
20
20
  super(project);
21
21
  this.cdkout = (_b = options.cdkout) !== null && _b !== void 0 ? _b : 'cdk.out';
22
22
  const context = { ...options.context };
@@ -33,6 +33,10 @@ class CdkConfig extends component_1.Component {
33
33
  context: context,
34
34
  requireApproval: options.requireApproval,
35
35
  output: this.cdkout,
36
+ watch: {
37
+ include: (_d = options.watchIncludes) !== null && _d !== void 0 ? _d : [],
38
+ exclude: (_e = options.watchExcludes) !== null && _e !== void 0 ? _e : [],
39
+ },
36
40
  },
37
41
  });
38
42
  project.gitignore.exclude(`/${this.cdkout}/`);
@@ -41,7 +45,7 @@ class CdkConfig extends component_1.Component {
41
45
  }
42
46
  exports.CdkConfig = CdkConfig;
43
47
  _a = JSII_RTTI_SYMBOL_1;
44
- CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.34.27" };
48
+ CdkConfig[_a] = { fqn: "projen.awscdk.CdkConfig", version: "0.35.2" };
45
49
  /**
46
50
  * (experimental) Which approval is required when deploying CDK apps.
47
51
  *
@@ -53,4 +57,4 @@ var ApprovalLevel;
53
57
  ApprovalLevel["ANY_CHANGE"] = "any-change";
54
58
  ApprovalLevel["BROADENING"] = "broadening";
55
59
  })(ApprovalLevel = exports.ApprovalLevel || (exports.ApprovalLevel = {}));
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvY2RrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFFbkMseUNBQTJDOzs7Ozs7QUF3QjNDLE1BQWEsU0FBVSxTQUFRLHFCQUFTOzs7O0lBUXRDLFlBQVksT0FBZ0IsRUFBRSxPQUF5Qjs7UUFDckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE1BQU0sU0FBRyxPQUFPLENBQUMsTUFBTSxtQ0FBSSxTQUFTLENBQUM7UUFFMUMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLFNBQUcsT0FBTyxDQUFDLFlBQVksbUNBQUksSUFBSSxDQUFDO1FBQzVDLElBQUksTUFBTSxFQUFFO1lBQ1YsS0FBSyxNQUFNLElBQUksSUFBSSx3QkFBYSxFQUFFO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07YUFDcEI7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBakNILDhCQWtDQzs7Ozs7Ozs7QUFHRCxJQUFZLGFBT1g7QUFQRCxXQUFZLGFBQWE7SUFFdkIsZ0NBQWUsQ0FBQTtJQUVmLDBDQUF5QixDQUFBO0lBRXpCLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQU94QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gJy4uL2pzb24nO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgRkVBVFVSRV9GTEFHUyB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IEFwcHJvdmFsTGV2ZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2Rrb3V0Pzogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ29uZmlnT3B0aW9ucyBleHRlbmRzIENka0NvbmZpZ0NvbW1vbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBwOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENka0NvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkganNvbjogSnNvbkZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtvdXQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBDZGtDb25maWdPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmNka291dCA9IG9wdGlvbnMuY2Rrb3V0ID8/ICdjZGsub3V0JztcblxuICAgIGNvbnN0IGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IC4uLm9wdGlvbnMuY29udGV4dCB9O1xuICAgIGNvbnN0IGZmbGFncyA9IG9wdGlvbnMuZmVhdHVyZUZsYWdzID8/IHRydWU7XG4gICAgaWYgKGZmbGFncykge1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIEZFQVRVUkVfRkxBR1MpIHtcbiAgICAgICAgY29udGV4dFtmbGFnXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5qc29uID0gbmV3IEpzb25GaWxlKHByb2plY3QsICdjZGsuanNvbicsIHtcbiAgICAgIG9taXRFbXB0eTogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBhcHA6IG9wdGlvbnMuYXBwLFxuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICByZXF1aXJlQXBwcm92YWw6IG9wdGlvbnMucmVxdWlyZUFwcHJvdmFsLFxuICAgICAgICBvdXRwdXQ6IHRoaXMuY2Rrb3V0LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoYC8ke3RoaXMuY2Rrb3V0fS9gKTtcbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKCcuY2RrLnN0YWdpbmcvJyk7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIEFwcHJvdmFsTGV2ZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBORVZFUiA9ICduZXZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgQU5ZX0NIQU5HRSA9ICdhbnktY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBCUk9BREVOSU5HID0gJ2Jyb2FkZW5pbmcnLFxufVxuXG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvY2RrLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDRDQUF5QztBQUN6QyxrQ0FBbUM7QUFFbkMseUNBQTJDOzs7Ozs7QUE4QjNDLE1BQWEsU0FBVSxTQUFRLHFCQUFTOzs7O0lBUXRDLFlBQVksT0FBZ0IsRUFBRSxPQUF5Qjs7UUFDckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLE1BQU0sU0FBRyxPQUFPLENBQUMsTUFBTSxtQ0FBSSxTQUFTLENBQUM7UUFFMUMsTUFBTSxPQUFPLEdBQXdCLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLFNBQUcsT0FBTyxDQUFDLFlBQVksbUNBQUksSUFBSSxDQUFDO1FBQzVDLElBQUksTUFBTSxFQUFFO1lBQ1YsS0FBSyxNQUFNLElBQUksSUFBSSx3QkFBYSxFQUFFO2dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksZUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDNUMsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNoQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO2dCQUN4QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLEtBQUssRUFBRTtvQkFDTCxPQUFPLFFBQUUsT0FBTyxDQUFDLGFBQWEsbUNBQUksRUFBRTtvQkFDcEMsT0FBTyxRQUFFLE9BQU8sQ0FBQyxhQUFhLG1DQUFJLEVBQUU7aUJBQ3JDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBckNILDhCQXNDQzs7Ozs7Ozs7QUFHRCxJQUFZLGFBT1g7QUFQRCxXQUFZLGFBQWE7SUFFdkIsZ0NBQWUsQ0FBQTtJQUVmLDBDQUF5QixDQUFBO0lBRXpCLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFQVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQU94QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBKc29uRmlsZSB9IGZyb20gJy4uL2pzb24nO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgRkVBVFVSRV9GTEFHUyB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZlYXR1cmVGbGFncz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJlcXVpcmVBcHByb3ZhbD86IEFwcHJvdmFsTGV2ZWw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2Rrb3V0Pzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHdhdGNoSW5jbHVkZXM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHdhdGNoRXhjbHVkZXM/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENka0NvbmZpZ09wdGlvbnMgZXh0ZW5kcyBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFwcDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDZGtDb25maWcgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGpzb246IEpzb25GaWxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2Rrb3V0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQ2RrQ29uZmlnT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5jZGtvdXQgPSBvcHRpb25zLmNka291dCA/PyAnY2RrLm91dCc7XG5cbiAgICBjb25zdCBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyAuLi5vcHRpb25zLmNvbnRleHQgfTtcbiAgICBjb25zdCBmZmxhZ3MgPSBvcHRpb25zLmZlYXR1cmVGbGFncyA/PyB0cnVlO1xuICAgIGlmIChmZmxhZ3MpIHtcbiAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBGRUFUVVJFX0ZMQUdTKSB7XG4gICAgICAgIGNvbnRleHRbZmxhZ10gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuanNvbiA9IG5ldyBKc29uRmlsZShwcm9qZWN0LCAnY2RrLmpzb24nLCB7XG4gICAgICBvbWl0RW1wdHk6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgYXBwOiBvcHRpb25zLmFwcCxcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgcmVxdWlyZUFwcHJvdmFsOiBvcHRpb25zLnJlcXVpcmVBcHByb3ZhbCxcbiAgICAgICAgb3V0cHV0OiB0aGlzLmNka291dCxcbiAgICAgICAgd2F0Y2g6IHtcbiAgICAgICAgICBpbmNsdWRlOiBvcHRpb25zLndhdGNoSW5jbHVkZXMgPz8gW10sXG4gICAgICAgICAgZXhjbHVkZTogb3B0aW9ucy53YXRjaEV4Y2x1ZGVzID8/IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoYC8ke3RoaXMuY2Rrb3V0fS9gKTtcbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKCcuY2RrLnN0YWdpbmcvJyk7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBlbnVtIEFwcHJvdmFsTGV2ZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBORVZFUiA9ICduZXZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgQU5ZX0NIQU5HRSA9ICdhbnktY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBCUk9BREVOSU5HID0gJ2Jyb2FkZW5pbmcnLFxufVxuXG4iXX0=
@@ -35,5 +35,5 @@ class CdkTasks extends component_1.Component {
35
35
  }
36
36
  exports.CdkTasks = CdkTasks;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.34.27" };
38
+ CdkTasks[_a] = { fqn: "projen.awscdk.CdkTasks", version: "0.35.2" };
39
39
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7Ozs7OztBQUt6QyxNQUFhLFFBQVMsU0FBUSxxQkFBUzs7OztJQWFyQyxZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEMsV0FBVyxFQUFFLDhEQUE4RDtZQUMzRSxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUN4QyxXQUFXLEVBQUUsd0NBQXdDO1lBQ3JELElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtZQUNqRSxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5DSCw0QkFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL3Byb2plY3QnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIENka1Rhc2tzIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBzeW50aDogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95OiBUYXNrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZGVzdHJveTogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGRpZmY6IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5zeW50aCA9IHByb2plY3QuYWRkVGFzaygnc3ludGgnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgKHBhcnQgb2YgXCJ5YXJuIGJ1aWxkXCIpJyxcbiAgICAgIGV4ZWM6ICdjZGsgc3ludGgnLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2RlcGxveScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95cyB5b3VyIENESyBhcHAgdG8gdGhlIEFXUyBjbG91ZCcsXG4gICAgICBleGVjOiAnY2RrIGRlcGxveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3kgPSBwcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3knLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc3Ryb3lzIHlvdXIgY2RrIGFwcCBpbiB0aGUgQVdTIGNsb3VkJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGVzdHJveScsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpZmYgPSBwcm9qZWN0LmFkZFRhc2soJ2RpZmYnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0RpZmZzIHRoZSBjdXJyZW50bHkgZGVwbG95ZWQgYXBwIGFnYWluc3QgeW91ciBjb2RlJyxcbiAgICAgIGV4ZWM6ICdjZGsgZGlmZicsXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -3,3 +3,4 @@ export * from './cdk-config';
3
3
  export * from './cdk-tasks';
4
4
  export * from './auto-discover';
5
5
  export * from './lambda-function';
6
+ export * from './integration-test';
@@ -15,4 +15,5 @@ __exportStar(require("./cdk-config"), exports);
15
15
  __exportStar(require("./cdk-tasks"), exports);
16
16
  __exportStar(require("./auto-discover"), exports);
17
17
  __exportStar(require("./lambda-function"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyxvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2phdmEtYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay10YXNrcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG8tZGlzY292ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEtZnVuY3Rpb24nOyJdfQ==
18
+ __exportStar(require("./integration-test"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyxvREFBa0M7QUFDbEMscURBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9qYXZhLWFwcCc7XG5leHBvcnQgKiBmcm9tICcuL2Nkay1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGstdGFza3MnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvLWRpc2NvdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGFtYmRhLWZ1bmN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24tdGVzdCc7Il19
@@ -0,0 +1,77 @@
1
+ import { Component } from '../component';
2
+ import { Project } from '../project';
3
+ import { Task } from '../tasks';
4
+ /**
5
+ * @experimental
6
+ */
7
+ export interface IntegrationTestCommonOptions {
8
+ /**
9
+ * (experimental) Destroy the test app after a successful deployment.
10
+ *
11
+ * If disabled, leaves the
12
+ * app deployed in the dev account.
13
+ *
14
+ * @default true
15
+ * @experimental
16
+ */
17
+ readonly destroyAfterDeploy?: boolean;
18
+ }
19
+ /**
20
+ * (experimental) Options for `IntegrationTest`.
21
+ *
22
+ * @experimental
23
+ */
24
+ export interface IntegrationTestOptions extends IntegrationTestCommonOptions {
25
+ /**
26
+ * (experimental) A path from the project root directory to a TypeScript file which contains the integration test app.
27
+ *
28
+ * This is relative to the root directory of the project.
29
+ *
30
+ * @experimental
31
+ * @example
32
+ *
33
+ * "test/subdir/foo.integ.ts"
34
+ */
35
+ readonly entrypoint: string;
36
+ }
37
+ /**
38
+ * (experimental) Cloud integration tests.
39
+ *
40
+ * @experimental
41
+ */
42
+ export declare class IntegrationTest extends Component {
43
+ /**
44
+ * (experimental) Deploy the integration test and update the snapshot upon success.
45
+ *
46
+ * @experimental
47
+ */
48
+ readonly deployTask: Task;
49
+ /**
50
+ * (experimental) Destroys a deployed stack.
51
+ *
52
+ * @experimental
53
+ */
54
+ readonly destroyTask: Task;
55
+ /**
56
+ * (experimental) Synthesizes the integration test and compares against a local copy (runs during build).
57
+ *
58
+ * @experimental
59
+ */
60
+ readonly assertTask: Task;
61
+ /**
62
+ * (experimental) Just update snapshot (without deployment).
63
+ *
64
+ * @experimental
65
+ */
66
+ readonly snapshotTask: Task;
67
+ /**
68
+ * (experimental) The watch task.
69
+ *
70
+ * @experimental
71
+ */
72
+ readonly watchTask: Task;
73
+ /**
74
+ * @experimental
75
+ */
76
+ constructor(project: Project, options: IntegrationTestOptions);
77
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.IntegrationTest = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path_1 = require("path");
7
+ const component_1 = require("../component");
8
+ const internal_1 = require("./internal");
9
+ /**
10
+ * (experimental) Cloud integration tests.
11
+ *
12
+ * @experimental
13
+ */
14
+ class IntegrationTest extends component_1.Component {
15
+ /**
16
+ * @experimental
17
+ */
18
+ constructor(project, options) {
19
+ var _b;
20
+ super(project);
21
+ const entry = options.entrypoint;
22
+ const name = path_1.basename(entry, internal_1.TYPESCRIPT_INTEG_EXT);
23
+ const dir = path_1.dirname(entry);
24
+ const deploydir = path_1.join(dir, '.tmp', `${name}.integ`, 'deploy.cdk.out');
25
+ const actualdir = path_1.join(dir, '.tmp', `${name}.integ`, 'synth.cdk.out');
26
+ const snapshotdir = path_1.join(dir, `${name}.integ.snapshot`);
27
+ const app = `ts-node ${entry}`;
28
+ if (!project.deps.getDependency('ts-node')) {
29
+ throw new Error('ts-node dependency is required for integration tests.');
30
+ }
31
+ const opts = [
32
+ `--app "${app}"`,
33
+ '--no-version-reporting',
34
+ ];
35
+ // add all feature flags
36
+ const features = [
37
+ ...internal_1.FEATURE_FLAGS,
38
+ '@aws-cdk/core:newStyleStackSynthesis',
39
+ ];
40
+ for (const feature of features) {
41
+ opts.push(`--context ${feature}=true`);
42
+ }
43
+ const cdkopts = opts.join(' ');
44
+ const deployTask = project.addTask(`integ:${name}:deploy`, {
45
+ description: `deploy integration test '${name}' and capture snapshot`,
46
+ });
47
+ deployTask.exec(`rm -fr ${deploydir}`);
48
+ deployTask.exec(`cdk deploy ${cdkopts} --require-approval=never -o ${deploydir}`);
49
+ // if deployment was successful, copy the deploy dir to the expected dir
50
+ deployTask.exec(`rm -fr ${snapshotdir}`);
51
+ deployTask.exec(`mv ${deploydir} ${snapshotdir}`);
52
+ const watchTask = project.addTask(`integ:${name}:watch`, {
53
+ description: `watch integration test '${name}' (without updating snapshots)`,
54
+ exec: `cdk watch ${cdkopts} -o ${deploydir}`,
55
+ });
56
+ const destroyTask = project.addTask(`integ:${name}:destroy`, {
57
+ description: `destroy integration test '${name}'`,
58
+ exec: `cdk destroy --app ${snapshotdir} --no-version-reporting`,
59
+ });
60
+ const destroyAfterDeploy = (_b = options.destroyAfterDeploy) !== null && _b !== void 0 ? _b : true;
61
+ if (destroyAfterDeploy) {
62
+ deployTask.spawn(destroyTask);
63
+ }
64
+ const exclude = ['asset.*', 'cdk.out', 'manifest.json', 'tree.json'];
65
+ const assertTask = project.addTask(`integ:${name}:assert`, {
66
+ description: `assert the snapshot of integration test '${name}'`,
67
+ });
68
+ assertTask.exec(`[ -d "${snapshotdir}" ] || (echo "No snapshot available for integration test '${name}'. Run 'projen ${deployTask.name}' to capture." && exit 1)`);
69
+ assertTask.exec(`cdk synth ${cdkopts} -o ${actualdir} > /dev/null`);
70
+ assertTask.exec(`diff -r ${exclude.map(x => `-x ${x}`).join(' ')} ${snapshotdir}/ ${actualdir}/`);
71
+ const snapshotTask = project.addTask(`integ:${name}:snapshot`, {
72
+ description: `update snapshot for integration test "${name}"`,
73
+ exec: `cdk synth ${cdkopts} -o ${snapshotdir} > /dev/null`,
74
+ });
75
+ // synth as part of our tests, which means that if outdir changes, anti-tamper will fail
76
+ project.testTask.spawn(assertTask);
77
+ project.addGitIgnore(`!${snapshotdir}`); // commit outdir to git but not assets
78
+ // do not commit all files we are excluding
79
+ for (const x of exclude) {
80
+ project.addGitIgnore(`${snapshotdir}/${x}`);
81
+ project.addGitIgnore(`${snapshotdir}/**/${x}`); // nested assemblies
82
+ }
83
+ project.addGitIgnore(deploydir);
84
+ project.addPackageIgnore(deploydir);
85
+ project.addGitIgnore(actualdir);
86
+ project.addPackageIgnore(actualdir);
87
+ // commit the snapshot (but not into the tarball)
88
+ project.addGitIgnore(`!${snapshotdir}`);
89
+ project.addPackageIgnore(snapshotdir);
90
+ this.deployTask = deployTask;
91
+ this.assertTask = assertTask;
92
+ this.destroyTask = destroyTask;
93
+ this.snapshotTask = snapshotTask;
94
+ this.watchTask = watchTask;
95
+ }
96
+ }
97
+ exports.IntegrationTest = IntegrationTest;
98
+ _a = JSII_RTTI_SYMBOL_1;
99
+ IntegrationTest[_a] = { fqn: "projen.awscdk.IntegrationTest", version: "0.35.2" };
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tdGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvaW50ZWdyYXRpb24tdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUErQztBQUMvQyw0Q0FBeUM7QUFHekMseUNBQWlFOzs7Ozs7QUFjakUsTUFBYSxlQUFnQixTQUFRLHFCQUFTOzs7O0lBZ0I1QyxZQUFZLE9BQWdCLEVBQUUsT0FBK0I7O1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQUcsZUFBUSxDQUFDLEtBQUssRUFBRSwrQkFBb0IsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFHLGNBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixNQUFNLFNBQVMsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsTUFBTSxTQUFTLEdBQUcsV0FBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN0RSxNQUFNLFdBQVcsR0FBRyxXQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXhELE1BQU0sR0FBRyxHQUFHLFdBQVcsS0FBSyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztTQUMxRTtRQUVELE1BQU0sSUFBSSxHQUFHO1lBQ1gsVUFBVSxHQUFHLEdBQUc7WUFDaEIsd0JBQXdCO1NBQ3pCLENBQUM7UUFFRix3QkFBd0I7UUFDeEIsTUFBTSxRQUFRLEdBQUc7WUFDZixHQUFHLHdCQUFhO1lBQ2hCLHNDQUFzQztTQUN2QyxDQUFDO1FBRUYsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLE9BQU8sT0FBTyxDQUFDLENBQUM7U0FDeEM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUN6RCxXQUFXLEVBQUUsNEJBQTRCLElBQUksd0JBQXdCO1NBQ3RFLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxPQUFPLGdDQUFnQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRWxGLHdFQUF3RTtRQUN4RSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksUUFBUSxFQUFFO1lBQ3ZELFdBQVcsRUFBRSwyQkFBMkIsSUFBSSxnQ0FBZ0M7WUFDNUUsSUFBSSxFQUFFLGFBQWEsT0FBTyxPQUFPLFNBQVMsRUFBRTtTQUM3QyxDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDM0QsV0FBVyxFQUFFLDZCQUE2QixJQUFJLEdBQUc7WUFDakQsSUFBSSxFQUFFLHFCQUFxQixXQUFXLHlCQUF5QjtTQUNoRSxDQUFDLENBQUM7UUFFSCxNQUFNLGtCQUFrQixTQUFHLE9BQU8sQ0FBQyxrQkFBa0IsbUNBQUksSUFBSSxDQUFDO1FBQzlELElBQUksa0JBQWtCLEVBQUU7WUFDdEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQjtRQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFckUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ3pELFdBQVcsRUFBRSw0Q0FBNEMsSUFBSSxHQUFHO1NBQ2pFLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxXQUFXLDZEQUE2RCxJQUFJLGtCQUFrQixVQUFVLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ25LLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxPQUFPLE9BQU8sU0FBUyxjQUFjLENBQUMsQ0FBQztRQUNwRSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxLQUFLLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFFbEcsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQzdELFdBQVcsRUFBRSx5Q0FBeUMsSUFBSSxHQUFHO1lBQzdELElBQUksRUFBRSxhQUFhLE9BQU8sT0FBTyxXQUFXLGNBQWM7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsd0ZBQXdGO1FBQ3hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO1FBRS9FLDJDQUEyQztRQUMzQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRTtZQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO1NBQ3JFO1FBRUQsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEMsaURBQWlEO1FBQ2pELE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDOztBQWxISCwwQ0FtSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi9wcm9qZWN0JztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90YXNrcyc7XG5pbXBvcnQgeyBGRUFUVVJFX0ZMQUdTLCBUWVBFU0NSSVBUX0lOVEVHX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdENvbW1vbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZGVzdHJveUFmdGVyRGVwbG95PzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0T3B0aW9ucyBleHRlbmRzIEludGVncmF0aW9uVGVzdENvbW1vbk9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uVGVzdCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBkZXBsb3lUYXNrOiBUYXNrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBkZXN0cm95VGFzazogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGFzc2VydFRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBzbmFwc2hvdFRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSB3YXRjaFRhc2s6IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0T3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeXBvaW50O1xuICAgIGNvbnN0IG5hbWUgPSBiYXNlbmFtZShlbnRyeSwgVFlQRVNDUklQVF9JTlRFR19FWFQpO1xuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoZW50cnkpO1xuXG4gICAgY29uc3QgZGVwbG95ZGlyID0gam9pbihkaXIsICcudG1wJywgYCR7bmFtZX0uaW50ZWdgLCAnZGVwbG95LmNkay5vdXQnKTtcbiAgICBjb25zdCBhY3R1YWxkaXIgPSBqb2luKGRpciwgJy50bXAnLCBgJHtuYW1lfS5pbnRlZ2AsICdzeW50aC5jZGsub3V0Jyk7XG4gICAgY29uc3Qgc25hcHNob3RkaXIgPSBqb2luKGRpciwgYCR7bmFtZX0uaW50ZWcuc25hcHNob3RgKTtcblxuICAgIGNvbnN0IGFwcCA9IGB0cy1ub2RlICR7ZW50cnl9YDtcblxuICAgIGlmICghcHJvamVjdC5kZXBzLmdldERlcGVuZGVuY3koJ3RzLW5vZGUnKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cy1ub2RlIGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQgZm9yIGludGVncmF0aW9uIHRlc3RzLicpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdHMgPSBbXG4gICAgICBgLS1hcHAgXCIke2FwcH1cImAsXG4gICAgICAnLS1uby12ZXJzaW9uLXJlcG9ydGluZycsXG4gICAgXTtcblxuICAgIC8vIGFkZCBhbGwgZmVhdHVyZSBmbGFnc1xuICAgIGNvbnN0IGZlYXR1cmVzID0gW1xuICAgICAgLi4uRkVBVFVSRV9GTEFHUyxcbiAgICAgICdAYXdzLWNkay9jb3JlOm5ld1N0eWxlU3RhY2tTeW50aGVzaXMnLCAvLyBzaW1wbGlmaWVzIGFzc2V0IGNvb3JkaW5hdGVzIGluIHN5bnRoIG91dHB1dFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgZmVhdHVyZXMpIHtcbiAgICAgIG9wdHMucHVzaChgLS1jb250ZXh0ICR7ZmVhdHVyZX09dHJ1ZWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNka29wdHMgPSBvcHRzLmpvaW4oJyAnKTtcblxuICAgIGNvbnN0IGRlcGxveVRhc2sgPSBwcm9qZWN0LmFkZFRhc2soYGludGVnOiR7bmFtZX06ZGVwbG95YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBkZXBsb3kgaW50ZWdyYXRpb24gdGVzdCAnJHtuYW1lfScgYW5kIGNhcHR1cmUgc25hcHNob3RgLFxuICAgIH0pO1xuXG4gICAgZGVwbG95VGFzay5leGVjKGBybSAtZnIgJHtkZXBsb3lkaXJ9YCk7XG4gICAgZGVwbG95VGFzay5leGVjKGBjZGsgZGVwbG95ICR7Y2Rrb3B0c30gLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC1vICR7ZGVwbG95ZGlyfWApO1xuXG4gICAgLy8gaWYgZGVwbG95bWVudCB3YXMgc3VjY2Vzc2Z1bCwgY29weSB0aGUgZGVwbG95IGRpciB0byB0aGUgZXhwZWN0ZWQgZGlyXG4gICAgZGVwbG95VGFzay5leGVjKGBybSAtZnIgJHtzbmFwc2hvdGRpcn1gKTtcbiAgICBkZXBsb3lUYXNrLmV4ZWMoYG12ICR7ZGVwbG95ZGlyfSAke3NuYXBzaG90ZGlyfWApO1xuXG4gICAgY29uc3Qgd2F0Y2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OndhdGNoYCwge1xuICAgICAgZGVzY3JpcHRpb246IGB3YXRjaCBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9JyAod2l0aG91dCB1cGRhdGluZyBzbmFwc2hvdHMpYCxcbiAgICAgIGV4ZWM6IGBjZGsgd2F0Y2ggJHtjZGtvcHRzfSAtbyAke2RlcGxveWRpcn1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVzdHJveVRhc2sgPSBwcm9qZWN0LmFkZFRhc2soYGludGVnOiR7bmFtZX06ZGVzdHJveWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGVzdHJveSBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9J2AsXG4gICAgICBleGVjOiBgY2RrIGRlc3Ryb3kgLS1hcHAgJHtzbmFwc2hvdGRpcn0gLS1uby12ZXJzaW9uLXJlcG9ydGluZ2AsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZXN0cm95QWZ0ZXJEZXBsb3kgPSBvcHRpb25zLmRlc3Ryb3lBZnRlckRlcGxveSA/PyB0cnVlO1xuICAgIGlmIChkZXN0cm95QWZ0ZXJEZXBsb3kpIHtcbiAgICAgIGRlcGxveVRhc2suc3Bhd24oZGVzdHJveVRhc2spO1xuICAgIH1cblxuICAgIGNvbnN0IGV4Y2x1ZGUgPSBbJ2Fzc2V0LionLCAnY2RrLm91dCcsICdtYW5pZmVzdC5qc29uJywgJ3RyZWUuanNvbiddO1xuXG4gICAgY29uc3QgYXNzZXJ0VGFzayA9IHByb2plY3QuYWRkVGFzayhgaW50ZWc6JHtuYW1lfTphc3NlcnRgLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYGFzc2VydCB0aGUgc25hcHNob3Qgb2YgaW50ZWdyYXRpb24gdGVzdCAnJHtuYW1lfSdgLFxuICAgIH0pO1xuXG4gICAgYXNzZXJ0VGFzay5leGVjKGBbIC1kIFwiJHtzbmFwc2hvdGRpcn1cIiBdIHx8IChlY2hvIFwiTm8gc25hcHNob3QgYXZhaWxhYmxlIGZvciBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9Jy4gUnVuICdwcm9qZW4gJHtkZXBsb3lUYXNrLm5hbWV9JyB0byBjYXB0dXJlLlwiICYmIGV4aXQgMSlgKTtcbiAgICBhc3NlcnRUYXNrLmV4ZWMoYGNkayBzeW50aCAke2Nka29wdHN9IC1vICR7YWN0dWFsZGlyfSA+IC9kZXYvbnVsbGApO1xuICAgIGFzc2VydFRhc2suZXhlYyhgZGlmZiAtciAke2V4Y2x1ZGUubWFwKHggPT4gYC14ICR7eH1gKS5qb2luKCcgJyl9ICR7c25hcHNob3RkaXJ9LyAke2FjdHVhbGRpcn0vYCk7XG5cbiAgICBjb25zdCBzbmFwc2hvdFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soYGludGVnOiR7bmFtZX06c25hcHNob3RgLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYHVwZGF0ZSBzbmFwc2hvdCBmb3IgaW50ZWdyYXRpb24gdGVzdCBcIiR7bmFtZX1cImAsXG4gICAgICBleGVjOiBgY2RrIHN5bnRoICR7Y2Rrb3B0c30gLW8gJHtzbmFwc2hvdGRpcn0gPiAvZGV2L251bGxgLFxuICAgIH0pO1xuXG4gICAgLy8gc3ludGggYXMgcGFydCBvZiBvdXIgdGVzdHMsIHdoaWNoIG1lYW5zIHRoYXQgaWYgb3V0ZGlyIGNoYW5nZXMsIGFudGktdGFtcGVyIHdpbGwgZmFpbFxuICAgIHByb2plY3QudGVzdFRhc2suc3Bhd24oYXNzZXJ0VGFzayk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoYCEke3NuYXBzaG90ZGlyfWApOyAvLyBjb21taXQgb3V0ZGlyIHRvIGdpdCBidXQgbm90IGFzc2V0c1xuXG4gICAgLy8gZG8gbm90IGNvbW1pdCBhbGwgZmlsZXMgd2UgYXJlIGV4Y2x1ZGluZ1xuICAgIGZvciAoY29uc3QgeCBvZiBleGNsdWRlKSB7XG4gICAgICBwcm9qZWN0LmFkZEdpdElnbm9yZShgJHtzbmFwc2hvdGRpcn0vJHt4fWApO1xuICAgICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoYCR7c25hcHNob3RkaXJ9LyoqLyR7eH1gKTsgLy8gbmVzdGVkIGFzc2VtYmxpZXNcbiAgICB9XG5cbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZShkZXBsb3lkaXIpO1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZShkZXBsb3lkaXIpO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKGFjdHVhbGRpcik7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGFjdHVhbGRpcik7XG5cbiAgICAvLyBjb21taXQgdGhlIHNuYXBzaG90IChidXQgbm90IGludG8gdGhlIHRhcmJhbGwpXG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoYCEke3NuYXBzaG90ZGlyfWApO1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZShzbmFwc2hvdGRpcik7XG5cbiAgICB0aGlzLmRlcGxveVRhc2sgPSBkZXBsb3lUYXNrO1xuICAgIHRoaXMuYXNzZXJ0VGFzayA9IGFzc2VydFRhc2s7XG4gICAgdGhpcy5kZXN0cm95VGFzayA9IGRlc3Ryb3lUYXNrO1xuICAgIHRoaXMuc25hcHNob3RUYXNrID0gc25hcHNob3RUYXNrO1xuICAgIHRoaXMud2F0Y2hUYXNrID0gd2F0Y2hUYXNrO1xuICB9XG59Il19
@@ -6,3 +6,7 @@ export declare const FEATURE_FLAGS: string[];
6
6
  * Suffix for AWS Lambda handlers.
7
7
  */
8
8
  export declare const TYPESCRIPT_LAMBDA_EXT = ".lambda.ts";
9
+ /**
10
+ * Suffix for integration tests.
11
+ */
12
+ export declare const TYPESCRIPT_INTEG_EXT = ".integ.ts";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TYPESCRIPT_LAMBDA_EXT = exports.FEATURE_FLAGS = void 0;
3
+ exports.TYPESCRIPT_INTEG_EXT = exports.TYPESCRIPT_LAMBDA_EXT = exports.FEATURE_FLAGS = void 0;
4
4
  /**
5
5
  * Feature flags as of v1.130.0
6
6
  */
@@ -23,4 +23,8 @@ exports.FEATURE_FLAGS = [
23
23
  * Suffix for AWS Lambda handlers.
24
24
  */
25
25
  exports.TYPESCRIPT_LAMBDA_EXT = '.lambda.ts';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ1UsUUFBQSxhQUFhLEdBQUc7SUFDM0IsMEJBQTBCO0lBQzFCLHdEQUF3RDtJQUN4RCx5Q0FBeUM7SUFDekMsb0NBQW9DO0lBQ3BDLDZDQUE2QztJQUM3QyxrREFBa0Q7SUFDbEQscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0QyxxREFBcUQ7SUFDckQsd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsMkRBQTJEO0NBQzVELENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGZWF0dXJlIGZsYWdzIGFzIG9mIHYxLjEzMC4wXG4gKi9cbmV4cG9ydCBjb25zdCBGRUFUVVJFX0ZMQUdTID0gW1xuICAnYXdzLWNkazplbmFibGVEaWZmTm9GYWlsJyxcbiAgJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5OnVzYWdlUGxhbktleU9yZGVySW5zZW5zaXRpdmVJZCcsXG4gICdAYXdzLWNkay9jb3JlOmVuYWJsZVN0YWNrTmFtZUR1cGxpY2F0ZXMnLFxuICAnQGF3cy1jZGsvY29yZTpzdGFja1JlbGF0aXZlRXhwb3J0cycsXG4gICdAYXdzLWNkay9hd3MtZWNyLWFzc2V0czpkb2NrZXJJZ25vcmVTdXBwb3J0JyxcbiAgJ0Bhd3MtY2RrL2F3cy1zZWNyZXRzbWFuYWdlcjpwYXJzZU93bmVkU2VjcmV0TmFtZScsXG4gICdAYXdzLWNkay9hd3Mta21zOmRlZmF1bHRLZXlQb2xpY2llcycsXG4gICdAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2wnLFxuICAnQGF3cy1jZGsvYXdzLWVjcy1wYXR0ZXJuczpyZW1vdmVEZWZhdWx0RGVzaXJlZENvdW50JyxcbiAgJ0Bhd3MtY2RrL2F3cy1yZHM6bG93ZXJjYXNlRGJJZGVudGlmaWVyJyxcbiAgJ0Bhd3MtY2RrL2F3cy1lZnM6ZGVmYXVsdEVuY3J5cHRpb25BdFJlc3QnLFxuICAnQGF3cy1jZGsvYXdzLWxhbWJkYTpyZWNvZ25pemVWZXJzaW9uUHJvcHMnLFxuICAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQ6ZGVmYXVsdFNlY3VyaXR5UG9saWN5VExTdjEuMl8yMDIxJyxcbl07XG5cbi8qKlxuICogU3VmZml4IGZvciBBV1MgTGFtYmRhIGhhbmRsZXJzLlxuICovXG5leHBvcnQgY29uc3QgVFlQRVNDUklQVF9MQU1CREFfRVhUID0gJy5sYW1iZGEudHMnOyJdfQ==
26
+ /**
27
+ * Suffix for integration tests.
28
+ */
29
+ exports.TYPESCRIPT_INTEG_EXT = '.integ.ts';
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ1UsUUFBQSxhQUFhLEdBQUc7SUFDM0IsMEJBQTBCO0lBQzFCLHdEQUF3RDtJQUN4RCx5Q0FBeUM7SUFDekMsb0NBQW9DO0lBQ3BDLDZDQUE2QztJQUM3QyxrREFBa0Q7SUFDbEQscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0QyxxREFBcUQ7SUFDckQsd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQywyQ0FBMkM7SUFDM0MsMkRBQTJEO0NBQzVELENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsWUFBWSxDQUFDO0FBRWxEOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZlYXR1cmUgZmxhZ3MgYXMgb2YgdjEuMTMwLjBcbiAqL1xuZXhwb3J0IGNvbnN0IEZFQVRVUkVfRkxBR1MgPSBbXG4gICdhd3MtY2RrOmVuYWJsZURpZmZOb0ZhaWwnLFxuICAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXk6dXNhZ2VQbGFuS2V5T3JkZXJJbnNlbnNpdGl2ZUlkJyxcbiAgJ0Bhd3MtY2RrL2NvcmU6ZW5hYmxlU3RhY2tOYW1lRHVwbGljYXRlcycsXG4gICdAYXdzLWNkay9jb3JlOnN0YWNrUmVsYXRpdmVFeHBvcnRzJyxcbiAgJ0Bhd3MtY2RrL2F3cy1lY3ItYXNzZXRzOmRvY2tlcklnbm9yZVN1cHBvcnQnLFxuICAnQGF3cy1jZGsvYXdzLXNlY3JldHNtYW5hZ2VyOnBhcnNlT3duZWRTZWNyZXROYW1lJyxcbiAgJ0Bhd3MtY2RrL2F3cy1rbXM6ZGVmYXVsdEtleVBvbGljaWVzJyxcbiAgJ0Bhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbCcsXG4gICdAYXdzLWNkay9hd3MtZWNzLXBhdHRlcm5zOnJlbW92ZURlZmF1bHREZXNpcmVkQ291bnQnLFxuICAnQGF3cy1jZGsvYXdzLXJkczpsb3dlcmNhc2VEYklkZW50aWZpZXInLFxuICAnQGF3cy1jZGsvYXdzLWVmczpkZWZhdWx0RW5jcnlwdGlvbkF0UmVzdCcsXG4gICdAYXdzLWNkay9hd3MtbGFtYmRhOnJlY29nbml6ZVZlcnNpb25Qcm9wcycsXG4gICdAYXdzLWNkay9hd3MtY2xvdWRmcm9udDpkZWZhdWx0U2VjdXJpdHlQb2xpY3lUTFN2MS4yXzIwMjEnLFxuXTtcblxuLyoqXG4gKiBTdWZmaXggZm9yIEFXUyBMYW1iZGEgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBUWVBFU0NSSVBUX0xBTUJEQV9FWFQgPSAnLmxhbWJkYS50cyc7XG5cbi8qKlxuICogU3VmZml4IGZvciBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRZUEVTQ1JJUFRfSU5URUdfRVhUID0gJy5pbnRlZy50cyc7Il19
@@ -86,5 +86,5 @@ class AwsCdkJavaApp extends java_1.JavaProject {
86
86
  }
87
87
  exports.AwsCdkJavaApp = AwsCdkJavaApp;
88
88
  _a = JSII_RTTI_SYMBOL_1;
89
- AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.34.27" };
89
+ AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.35.2" };
90
90
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2phdmEtYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLGlDQUFpQztBQUNqQywwQkFBK0I7QUFDL0Isa0NBQTBEO0FBQzFELDZDQUFpRTtBQUNqRSwyQ0FBdUM7Ozs7Ozs7QUFjdkMsTUFBYSxhQUFjLFNBQVEsa0JBQVc7Ozs7SUFtQjVDLFlBQVksT0FBNkI7O1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxRSxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsS0FBSztZQUNiLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUNoRTtRQUVELE1BQU0sZUFBZSxlQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLGVBQWUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFHLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLEdBQUcsRUFBRSwwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMvRCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Ozs7OztJQUdNLGdCQUFnQixDQUFDLEdBQUcsT0FBaUI7UUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLE9BQU8sQ0FBQztRQUM5QyxJQUFJLGFBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDdkQsS0FBSyxFQUFFO2dCQUNMLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ1YsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUMzQixFQUFFO29CQUNGLHlDQUF5QztvQkFDekMsMkNBQTJDO29CQUMzQyxFQUFFO29CQUNGLGdCQUFnQixJQUFJLENBQUMsYUFBYSxJQUFJO29CQUN0QyxrREFBa0Q7b0JBQ2xELDBCQUEwQjtvQkFDMUIsZ0NBQWdDO29CQUNoQyxrQkFBa0I7b0JBQ2xCLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEZILHNDQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgSmF2YVByb2plY3QsIEphdmFQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4uL2phdmEnO1xuaW1wb3J0IHsgQ2RrQ29uZmlnLCBDZGtDb25maWdDb21tb25PcHRpb25zIH0gZnJvbSAnLi9jZGstY29uZmlnJztcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSAnLi9jZGstdGFza3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0phdmFBcHBPcHRpb25zIGV4dGVuZHMgSmF2YVByb2plY3RPcHRpb25zLCBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2RrRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWFpbkNsYXNzOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQXdzQ2RrSmF2YUFwcCBleHRlbmRzIEphdmFQcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2RrVmVyc2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtDb25maWc6IENka0NvbmZpZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBtYWluQ2xhc3M6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYXNrczogQ2RrVGFza3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpblBhY2thZ2U6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpbkNsYXNzTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka0phdmFBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWFpbkNsYXNzQ29tcG9uZW50cyA9IG9wdGlvbnMubWFpbkNsYXNzLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgbWFpblBhY2thZ2UgPSBtYWluQ2xhc3NDb21wb25lbnRzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBtYWluQ2xhc3NOYW1lID0gbWFpbkNsYXNzQ29tcG9uZW50c1ttYWluQ2xhc3NDb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZTogZmFsc2UsXG4gICAgICBzYW1wbGVKYXZhUGFja2FnZTogbWFpblBhY2thZ2Uuam9pbignLicpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tYWluQ2xhc3MgPSBvcHRpb25zLm1haW5DbGFzcztcbiAgICB0aGlzLm1haW5QYWNrYWdlID0gbWFpblBhY2thZ2Uuam9pbignLicpO1xuICAgIHRoaXMubWFpbkNsYXNzTmFtZSA9IG1haW5DbGFzc05hbWU7XG4gICAgdGhpcy5jZGtWZXJzaW9uID0gb3B0aW9ucy5jZGtWZXJzaW9uO1xuXG4gICAgaWYgKCF0aGlzLmNka1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgZmllbGQgY2RrVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5taW5WZXJzaW9uKHRoaXMuY2RrVmVyc2lvbik/Lm1ham9yID8/IDE7XG4gICAgaWYgKGNka01ham9yVmVyc2lvbiA+PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NES3YyIGlzIHN0aWxsIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ2NvcmUnKTtcbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koLi4ub3B0aW9ucy5jZGtEZXBlbmRlbmNpZXMgPz8gW10pO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoKTtcblxuICAgIHRoaXMuY2RrQ29uZmlnID0gbmV3IENka0NvbmZpZyh0aGlzLCB7XG4gICAgICBhcHA6IGBtdm4gZXhlYzpqYXZhIC0tcXVpZXQgLURleGVjLm1haW5DbGFzcz0ke3RoaXMubWFpbkNsYXNzfWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQ2RrRGVwZW5kZW5jeSguLi5tb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgbSBvZiBtb2R1bGVzKSB7XG4gICAgICB0aGlzLmFkZERlcGVuZGVuY3koYHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsvJHttfUAke3RoaXMuY2RrVmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFNhbXBsZSgpIHtcbiAgICBjb25zdCBwa2cgPSB0aGlzLm1haW5QYWNrYWdlLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgamF2YUZpbGUgPSBgJHt0aGlzLm1haW5DbGFzc05hbWV9LmphdmFgO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgam9pbignc3JjJywgJ21haW4nLCAnamF2YScsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFtqYXZhRmlsZV06IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZy5qb2luKCcuJyl9O2AsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuQXBwOycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuU3RhY2s7JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgcHVibGljIGNsYXNzICR7dGhpcy5tYWluQ2xhc3NOYW1lfSB7YCxcbiAgICAgICAgICAnICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7JyxcbiAgICAgICAgICAnICAgIEFwcCBhcHAgPSBuZXcgQXBwKCk7JyxcbiAgICAgICAgICAnICAgIG5ldyBTdGFjayhhcHAsIFwiTXlTdGFja1wiKTsnLFxuICAgICAgICAgICcgICAgYXBwLnN5bnRoKCk7JyxcbiAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAnfScsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -114,7 +114,7 @@ class LambdaFunction extends component_1.Component {
114
114
  }
115
115
  exports.LambdaFunction = LambdaFunction;
116
116
  _a = JSII_RTTI_SYMBOL_1;
117
- LambdaFunction[_a] = { fqn: "projen.awscdk.LambdaFunction", version: "0.34.27" };
117
+ LambdaFunction[_a] = { fqn: "projen.awscdk.LambdaFunction", version: "0.35.2" };
118
118
  /**
119
119
  * (experimental) The runtime for the AWS Lambda function.
120
120
  *
@@ -140,7 +140,7 @@ class LambdaRuntime {
140
140
  }
141
141
  exports.LambdaRuntime = LambdaRuntime;
142
142
  _b = JSII_RTTI_SYMBOL_1;
143
- LambdaRuntime[_b] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.34.27" };
143
+ LambdaRuntime[_b] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.35.2" };
144
144
  /**
145
145
  * (experimental) Node.js 10.x.
146
146
  *