cdklabs-projen-project-types 0.3.36 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -165,4 +165,28 @@ The location the workspace is placed at. Defaults to `./packages`
165
165
  - `excludeDepsFromUpgrade: Array<string>`\
166
166
  List any dependencies that should not be updated in the workspace.
167
167
 
168
+ #### JsiiBuild
168
169
 
170
+ Use `WorkspaceJsiiBuild` to add jsii compilation and multi-language publishing to a workspace:
171
+
172
+ ```ts
173
+ const lib = new yarn.TypeScriptWorkspace({
174
+ parent: project,
175
+ name: '@cdklabs/my-lib',
176
+ disableTsconfig: true, // required for jsii
177
+ });
178
+
179
+ lib.with(new yarn.WorkspaceJsiiBuild({
180
+ publishToMaven: { ... },
181
+ publishToPypi: { ... },
182
+ publishToNuget: { ... },
183
+ publishToGo: { ... },
184
+ }));
185
+ ```
186
+
187
+ This is a mixin that wraps the upstream projen `JsiiBuild` and adds:
188
+
189
+ - Rosetta (strict mode by default)
190
+ - Composite project references (`composite: true`)
191
+ - PyPI classifiers (`pypiClassifiers`)
192
+ - Monorepo-appropriate packaging (only `package:js`, other targets in release workflow)
package/lib/cdk.js CHANGED
@@ -55,7 +55,7 @@ class CdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
55
55
  }
56
56
  exports.CdkConstructLibrary = CdkConstructLibrary;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.3.36" };
58
+ CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.5.0" };
59
59
  /**
60
60
  * Create a Cdk TypeScript Project
61
61
  *
@@ -71,5 +71,5 @@ class CdkTypeScriptProject extends projen_1.typescript.TypeScriptProject {
71
71
  }
72
72
  exports.CdkTypeScriptProject = CdkTypeScriptProject;
73
73
  _b = JSII_RTTI_SYMBOL_1;
74
- CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.3.36" };
74
+ CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.5.0" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFpRDtBQUdqRCxxREFBd0Y7QUFDeEYsaURBQTZDO0FBQzdDLHVDQUFvQztBQUdwQzs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxlQUFNLENBQUMsc0JBQXNCO0lBQzVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFtQztRQUN0RSxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsOERBQThELENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJRCxZQUFZLE9BQW1DO1FBQzdDLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9DLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRkFBb0YsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsWUFBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3JDLHNEQUFzRDtZQUN0RCxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDOUIsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTVCLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQTlDSCxrREErQ0M7OztBQUlEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBR3BFLFlBQVksT0FBb0M7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQ0FBeUIsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFNUIsSUFBQSwwQ0FBeUIsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFUSCxvREFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgY2RrLCB0eXBlc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENka0NvbW1vbk9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMnO1xuaW1wb3J0IHsgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cywgd2l0aENvbW1vbk9wdGlvbnNEZWZhdWx0cyB9IGZyb20gJy4vY29tbW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXIgfSBmcm9tICcuL2ludGVnLXJ1bm5lcic7XG5pbXBvcnQgeyBSb3NldHRhIH0gZnJvbSAnLi9yb3NldHRhJztcblxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIHByaXZhdGUgc3RhdGljIHN0YWJpbGl0eVJlcXVpcmVtZW50cyhvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb1B5cGkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gUHl0aG9uJyk7XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5wdWJsaXNoVG9NYXZlbikge1xuICAgICAgZXJyb3JzLnB1c2goJ1B1Ymxpc2hpbmcgRXJyb3I6IHByb2plY3Qgbm90IGNvbmZpZ3VyZWQgdG8gcHVibGlzaCB0byBNYXZlbicpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMucHVibGlzaFRvTnVnZXQpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gTnVnZXQnKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb0dvKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUHVibGlzaGluZyBFcnJvcjogcHJvamVjdCBub3QgY29uZmlndXJlZCB0byBwdWJsaXNoIHRvIEdvJyk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnN0YWJpbGl0eSA9PT0gY2RrLlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IENka0NvbnN0cnVjdExpYnJhcnkuc3RhYmlsaXR5UmVxdWlyZW1lbnRzKG9wdGlvbnMpO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHByb2plY3QgZG9lcyBub3QgcGFzcyBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JzLmpvaW4oJ1xcbiAgJyl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIGFsc28gYWNjZXB0IHRoZSBkZXByZWNhdGVkIHJlcG9zaXRvcnlVcmwgb3B0aW9uXG4gICAgICByZXBvc2l0b3J5OiBvcHRpb25zLnJlcG9zaXRvcnkgPz8gb3B0aW9ucy5yZXBvc2l0b3J5VXJsLFxuICAgIH0pO1xuXG4gICAgc3VwZXIoe1xuICAgICAgc3RhYmlsaXR5OiBjZGsuU3RhYmlsaXR5LkVYUEVSSU1FTlRBTCxcbiAgICAgIC8vIHVwc3RyZWFtIEpzaWlQcm9qZWN0IHVzZXMgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhpc1xuICAgICAgcmVwb3NpdG9yeVVybDogb3B0cy5yZXBvc2l0b3J5LFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgICB0aGlzLnByaXZhdGUgPSBvcHRzLnByaXZhdGU7XG5cbiAgICBuZXcgUm9zZXR0YSh0aGlzLCBvcHRpb25zLnJvc2V0dGFPcHRpb25zKTtcbiAgICBuZXcgSW50ZWdSdW5uZXIodGhpcyk7XG5cbiAgICBjb25maWd1cmVDb21tb25Db21wb25lbnRzKHRoaXMsIG9wdHMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIENka0NvbW1vbk9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrIFR5cGVTY3JpcHQgUHJvamVjdFxuICpcbiAqIEBwamlkIGNkay10cy1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtUeXBlU2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBvcHRzID0gd2l0aENvbW1vbk9wdGlvbnNEZWZhdWx0cyhvcHRpb25zKTtcbiAgICBzdXBlcihvcHRzKTtcbiAgICB0aGlzLnByaXZhdGUgPSBvcHRzLnByaXZhdGU7XG5cbiAgICBjb25maWd1cmVDb21tb25Db21wb25lbnRzKHRoaXMsIG9wdHMpO1xuICB9XG59XG4iXX0=
package/lib/cdklabs.js CHANGED
@@ -129,7 +129,7 @@ class CdklabsConstructLibrary extends cdk_1.CdkConstructLibrary {
129
129
  }
130
130
  exports.CdklabsConstructLibrary = CdklabsConstructLibrary;
131
131
  _a = JSII_RTTI_SYMBOL_1;
132
- CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.3.36" };
132
+ CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.5.0" };
133
133
  /**
134
134
  * Create a Cdklabs TypeScript Project
135
135
  *
@@ -150,7 +150,7 @@ class CdklabsTypeScriptProject extends cdk_1.CdkTypeScriptProject {
150
150
  }
151
151
  exports.CdklabsTypeScriptProject = CdklabsTypeScriptProject;
152
152
  _b = JSII_RTTI_SYMBOL_1;
153
- CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.3.36" };
153
+ CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.5.0" };
154
154
  /**
155
155
  * Create a Cdklabs Jsii Project
156
156
  *
@@ -173,5 +173,5 @@ class CdklabsJsiiProject extends jsii_1.CdkJsiiProject {
173
173
  }
174
174
  exports.CdklabsJsiiProject = CdklabsJsiiProject;
175
175
  _c = JSII_RTTI_SYMBOL_1;
176
- CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.3.36" };
176
+ CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.5.0" };
177
177
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUllO0FBR2YsaUNBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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QWtDO1FBQzVDLE1BQU0sNkJBQTZCLEdBQXdCLENBQUMsT0FBTyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEcsK0JBQStCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xGLDJEQUEyRDtRQUMzRCxNQUFNLGFBQWEsR0FBRyxJQUFBLGdCQUFTLEVBQUM7WUFDOUIsRUFBRTtZQUNGLG1CQUFtQjtZQUNuQiw2QkFBNkI7WUFDN0IsT0FBTztZQUNQLGtCQUFrQjtTQUNuQixDQUE4QixDQUFDO1FBRWhDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QixDQUFDOztBQWRILGdEQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFVwZGF0ZVNuYXBzaG90IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ3Byb2plbi9saWIvdXRpbCc7XG5cbmV4cG9ydCBlbnVtIEpzaWlMYW5ndWFnZSB7XG4gIFBZVEhPTixcbiAgSkFWQSxcbiAgRE9UTkVULFxuICBHTyxcbn07XG5cbmltcG9ydCB7XG4gIENka0NvbnN0cnVjdExpYnJhcnksXG4gIENka1R5cGVTY3JpcHRQcm9qZWN0LFxuICBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG59IGZyb20gJy4vY2RrJztcbmltcG9ydCB7IENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSAnLi9jZGstY29uc3RydWN0LWxpYnJhcnktb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL2Nkay1qc2lpLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3QgfSBmcm9tICcuL2pzaWknO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgUmVsZWFzYWJsZUNvbW1pdHMgfSBmcm9tICdwcm9qZW4nO1xuXG4vLyBvdmVycmlkZSB0aGVzZSBwcm9wZXJ0aWVzIG5vIG1hdHRlciB3aGF0IHZhbHVlcyBhcmUgZ2l2ZW4gY2xpZW50LXNpZGVcbmNvbnN0IGNka2xhYnNGb3JjZWRQcm9wcyA9IHtcbiAgYXV0aG9yOiAnQW1hem9uIFdlYiBTZXJ2aWNlcycsXG4gIGF1dGhvck5hbWU6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgYXV0aG9yQWRkcmVzczogJ2F3cy1jZGstZGV2QGFtYXpvbi5jb20nLFxuICBhdXRob3JFbWFpbDogJ2F3cy1jZGstZGV2QGFtYXpvbi5jb20nLFxuICBhdXRob3JPcmdhbml6YXRpb246IHRydWUsXG59O1xuXG5jb25zdCBjZGtsYWJzRGVmYXVsdFByb3BzOiBQYXJ0aWFsPENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucz4gPSB7XG4gIGF1dG9BcHByb3ZlVXBncmFkZXM6IHRydWUsXG4gIG1pbk5vZGVWZXJzaW9uOiAnMTguMTIuMCcsXG4gIHdvcmtmbG93Tm9kZVZlcnNpb246ICdsdHMvKicsXG4gIGplc3RPcHRpb25zOiB7XG4gICAgdXBkYXRlU25hcHNob3Q6IFVwZGF0ZVNuYXBzaG90LkFMV0FZUyxcbiAgfSxcbiAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgLy8gRGVmYXVsdCBpcyB0byByZWxlYXNlIG9ubHkgZmVhdHVyZXMgYW5kIGZpeGVzLiBJZiB3ZSBkb24ndCBkbyB0aGlzLCBldmVyeSBwcm9qZW5cbiAgLy8gcHJvamVjdCB3aWxsIGJhc2ljYWxseSByZWxlYXNlIGV2ZXJ5IGRheSwgYmVjYXVzZSBpdCB3aWxsIHNlZSBkZXZEZXBlbmRlbmNpZXMgdXBkYXRlc1xuICAvLyBldmVyeSBkYXksIGV2ZW4gdGhvdWdoIHRob3NlIGFyZSBub3QgaW50ZXJlc3RpbmcuXG4gIHJlbGVhc2FibGVDb21taXRzOiBSZWxlYXNhYmxlQ29tbWl0cy5mZWF0dXJlc0FuZEZpeGVzKCksXG4gIGpzaWlWZXJzaW9uOiAnfjUuOScsXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG5wbVBhY2thZ2VOYW1lOiBzdHJpbmcsIGxhbmdzPzogSnNpaUxhbmd1YWdlW10pIHtcbiAgY29uc3QgcGFja2FnZUJhc2VuYW1lID0gYmFzZW5hbWUobnBtUGFja2FnZU5hbWUpO1xuXG4gIHJldHVybiBjcmVhdGVQdWJsaXNoaW5nRGVmYXVsdHMoJ2Nka2xhYnMnLCBwYWNrYWdlQmFzZW5hbWUsIEJvb2xlYW4ocGFja2FnZUJhc2VuYW1lICE9PSBucG1QYWNrYWdlTmFtZSksIGxhbmdzKTtcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVB1Ymxpc2hpbmdEZWZhdWx0cyhuYW1lc3BhY2U6IHN0cmluZywgcGFja2FnZUJhc2VuYW1lOiBzdHJpbmcsIGFsd2F5c1VzZU5hbWVzcGFjZSA9IHRydWUsIGxhbmdzPzogSnNpaUxhbmd1YWdlW10pIHtcbiAgY29uc3QgcGlQeVByZWZpeCA9IGFsd2F5c1VzZU5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6ICcnO1xuICBjb25zdCBudWdldFByZWZpeCA9IGFsd2F5c1VzZU5hbWVzcGFjZSA/IGAke3VwcGVyQ2FzZU5hbWUobmFtZXNwYWNlKX0uYCA6IGAke3VwcGVyQ2FzZU5hbWUobmFtZXNwYWNlKX1gO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY3JlYXRlTnBtUHVibGlzaGluZ0RlZmF1bHRzKCksXG4gICAgLi4ucHVibGlzaExhbmd1YWdlV3JhcHBlcihKc2lpTGFuZ3VhZ2UuUFlUSE9OLCB7XG4gICAgICBwdWJsaXNoVG9QeXBpOiB7XG4gICAgICAgIHRydXN0ZWRQdWJsaXNoaW5nOiAxLFxuICAgICAgICBkaXN0TmFtZTogYCR7cGlQeVByZWZpeH0ke3BhY2thZ2VCYXNlbmFtZX1gLFxuICAgICAgICBtb2R1bGU6IGAke3BpUHlQcmVmaXh9JHtjaGFuZ2VEZWxpbWl0ZXIocGFja2FnZUJhc2VuYW1lLCAnXycpfWAsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLkpBVkEsIHtcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBgaW8uZ2l0aHViLiR7bmFtZXNwYWNlfS4ke2NoYW5nZURlbGltaXRlcihwYWNrYWdlQmFzZW5hbWUsICcuJyl9YCxcbiAgICAgICAgbWF2ZW5Hcm91cElkOiBgaW8uZ2l0aHViLiR7bmFtZXNwYWNlfWAsXG4gICAgICAgIG1hdmVuQXJ0aWZhY3RJZDogcGFja2FnZUJhc2VuYW1lLFxuICAgICAgICBtYXZlblNlcnZlcklkOiAnY2VudHJhbC1vc3NyaCcsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLkRPVE5FVCwge1xuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgdHJ1c3RlZFB1Ymxpc2hpbmc6IDEsXG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogYCR7bnVnZXRQcmVmaXh9JHt1cHBlckNhc2VOYW1lKHBhY2thZ2VCYXNlbmFtZSl9YCxcbiAgICAgICAgcGFja2FnZUlkOiBgJHtudWdldFByZWZpeH0ke3VwcGVyQ2FzZU5hbWUocGFja2FnZUJhc2VuYW1lKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5HTywge1xuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYGdpdGh1Yi5jb20vJHtuYW1lc3BhY2V9LyR7cGFja2FnZUJhc2VuYW1lfS1nb2AsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIGZ1bmN0aW9uIHB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIobGFuZzogSnNpaUxhbmd1YWdlLCBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gcHVibGlzaExhbmd1YWdlKGxhbmcpID8gb2JqIDoge307XG4gIH1cblxuICBmdW5jdGlvbiBwdWJsaXNoTGFuZ3VhZ2UobGFuZzogSnNpaUxhbmd1YWdlKTogYm9vbGVhbiB7XG4gICAgLy8gbGFuZ3Mgbm90IHNwZWNpZmllZCA9PT0gYWxsIGxhbmd1YWdlcyBwdWJsaXNoZWRcbiAgICBpZiAoIWxhbmdzKSB7IHJldHVybiB0cnVlOyB9XG4gICAgaWYgKGxhbmdzLmluY2x1ZGVzKGxhbmcpKSB7IHJldHVybiB0cnVlOyB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBwZXJDYXNlTmFtZShzdHI6IHN0cmluZykge1xuICAgIGxldCB3b3JkcyA9IHN0ci5zcGxpdCgnLScpO1xuICAgIHdvcmRzID0gd29yZHMubWFwKCh3KSA9PiB3WzBdLnRvVXBwZXJDYXNlKCkgKyB3LnN1YnN0cmluZygxKSk7XG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2hhbmdlRGVsaW1pdGVyKHN0cjogc3RyaW5nLCBkZWxpbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLScpLmpvaW4oZGVsaW0pO1xuICB9XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVOcG1QdWJsaXNoaW5nRGVmYXVsdHMoKSB7XG4gIHJldHVybiB7XG4gICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IHRydWUsXG4gICAgcmVsZWFzZUVudmlyb25tZW50OiAncmVsZWFzZScsXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic1B1Ymxpc2hpbmdQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZXQgZGVmYXVsdCBwdWJsaXNoaW5nIHByb3BlcnRpZXMuIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSBndWFyYW50ZWVzXG4gICAqIHRoYXQgeW91ciBwcm9qZWN0IHdpbGwgaGF2ZSByZWFzb25hYmxlIHB1Ymxpc2hpbmcgbmFtZXMuIFlvdSBjYW4gY2hvb3NlXG4gICAqIHRvIG1vZGlmeSB0aGVtIGhvd2V2ZXIgeW91IHdpc2ggd2l0aCB0aGUgdHJhZGl0aW9uYWwgYHB1Ymxpc2hUb1B5cGlgLFxuICAgKiBgcHVibGlzaFRvTWF2ZW5gLCBgcHVibGlzaFRvTnVnZXRgLCBhbmQgYHB1Ymxpc2hUb0dvYCBwcm9wZXJ0aWVzLCBhbmRcbiAgICogeW91ciBjb25maWd1cmF0aW9uIHdpbGwgYmUgcmVzcGVjdGVkLlxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBiZSBzZXQgdG8gZmFsc2Ugb25seSBpZiB5b3UgZG8gbm90IHBsYW4gb24gcmVsZWFzaW5nIHRoZSBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBzcGVjaWZpYyBsYW5ndWFnZXMgdG8gcHVibGlzaCB0by4gVGhpcyBjYW4gYmUgdXNlZCB3aGVuIHRoZSBsaWJyYXJ5XG4gICAqIGlzIGV4cGVyaW1lbnRhbCBvbmx5LCBiZWNhdXNlIHN0YWJsZSBsaWJyYXJpZXMgbXVzdCBwdWJsaXNoIHRvIGFsbCBqc2lpIGxhbmd1YWdlcy5cbiAgICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzOiB0cnVlYDsgb3RoZXJ3aXNlXG4gICAqIGl0IGlzIGEgbm8tb3AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIGpzaWkgdGFyZ2V0IGxhbmd1YWdlc1xuICAgKi9cbiAgcmVhZG9ubHkganNpaVRhcmdldExhbmd1YWdlcz86IEpzaWlMYW5ndWFnZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyBleHRlbmRzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENka2xhYnMgQ29uc3RydWN0IExpYnJhcnkgUHJvamVjdFxuICpcbiAqIEBwamlkIGNka2xhYnMtY29uc3RydWN0LWxpYlxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrbGFic0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSAob3B0aW9ucy5jZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzID8/IHRydWUpID9cbiAgICAgIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmpzaWlUYXJnZXRMYW5ndWFnZXMpIDoge307XG5cbiAgICAvLyB0aGUgbGVmdG1vc3Qgb2JqZWN0IGlzIG11dGF0ZWQgYW5kIHJldHVybmVkIGJ5IGRlZXBNZXJnZVxuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBkZWVwTWVyZ2UoW1xuICAgICAge30sXG4gICAgICBjZGtsYWJzRGVmYXVsdFByb3BzLFxuICAgICAgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHMsXG4gICAgICBvcHRpb25zLFxuICAgICAgY2RrbGFic0ZvcmNlZFByb3BzLFxuICAgIF0pIGFzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrVHlwZVNjcmlwdFByb2plY3RPcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENka2xhYnMgVHlwZVNjcmlwdCBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrbGFicy10cy1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtsYWJzVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyBDZGtUeXBlU2NyaXB0UHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka2xhYnNUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICAvLyB0aGUgbGVmdG1vc3Qgb2JqZWN0IGlzIG11dGF0ZWQgYW5kIHJldHVybmVkIGJ5IGRlZXBNZXJnZVxuICAgIGNvbnN0IG1lcmdlZE9wdGlvbnMgPSBkZWVwTWVyZ2UoW1xuICAgICAge30sXG4gICAgICBjZGtsYWJzRGVmYXVsdFByb3BzLFxuICAgICAgY3JlYXRlTnBtUHVibGlzaGluZ0RlZmF1bHRzKCksXG4gICAgICBvcHRpb25zLFxuICAgICAgY2RrbGFic0ZvcmNlZFByb3BzLFxuICAgIF0pIGFzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrSnNpaVByb2plY3RPcHRpb25zLCBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENka2xhYnMgSnNpaSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrbGFicy1qc2lpLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNKc2lpUHJvamVjdCBleHRlbmRzIENka0pzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrbGFic0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gKG9wdGlvbnMuY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyA/PyB0cnVlKSA/XG4gICAgICBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5qc2lpVGFyZ2V0TGFuZ3VhZ2VzKSA6IHt9O1xuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrbGFic0pzaWlQcm9qZWN0T3B0aW9ucztcblxuICAgIHN1cGVyKG1lcmdlZE9wdGlvbnMpO1xuICB9XG59XG4iXX0=
package/lib/jsii.js CHANGED
@@ -28,5 +28,5 @@ class CdkJsiiProject extends projen_1.cdk.JsiiProject {
28
28
  }
29
29
  exports.CdkJsiiProject = CdkJsiiProject;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.3.36" };
31
+ CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.5.0" };
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZCO0FBRTdCLHFEQUF3RjtBQUV4Rjs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHakQsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7WUFDUCxzREFBc0Q7WUFDdEQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQWpCSCx3Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9jZGstanNpaS1vcHRpb25zJztcbmltcG9ydCB7IGNvbmZpZ3VyZUNvbW1vbkNvbXBvbmVudHMsIHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMgfSBmcm9tICcuL2NvbW1vbi1vcHRpb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYSBDZGsgSnNpaSBKc2lpIHByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstanNpaS1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtKc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcml2YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBhbHNvIGFjY2VwdCB0aGUgZGVwcmVjYXRlZCByZXBvc2l0b3J5VXJsIG9wdGlvblxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucmVwb3NpdG9yeVVybCxcbiAgICB9KTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRzLFxuICAgICAgLy8gdXBzdHJlYW0gSnNpaVByb2plY3QgdXNlcyBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGlzXG4gICAgICByZXBvc2l0b3J5VXJsOiBvcHRzLnJlcG9zaXRvcnksXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/rosetta.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component, cdk } from 'projen';
1
+ import { Component, typescript } from 'projen';
2
2
  export interface RosettaOptions {
3
3
  /**
4
4
  * Enable or disable strict mode.
@@ -20,5 +20,5 @@ export interface RosettaOptions {
20
20
  * ensure that rosetta will run successfully
21
21
  */
22
22
  export declare class Rosetta extends Component {
23
- constructor(project: cdk.JsiiProject, options?: RosettaOptions);
23
+ constructor(project: typescript.TypeScriptProject, options?: RosettaOptions);
24
24
  }
package/lib/rosetta.js CHANGED
@@ -49,5 +49,5 @@ class Rosetta extends projen_1.Component {
49
49
  }
50
50
  exports.Rosetta = Rosetta;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.3.36" };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBa0JwRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBd0IsRUFBRSxVQUEwQixFQUFFO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLG9HQUFvRztZQUNwRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1R0FBdUcsQ0FBQyxDQUFDO1FBQy9ILENBQUM7UUFFRCxhQUFhO1FBQ2IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ3hGLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUNyRCxXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLElBQUksRUFBRSx3QkFBd0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtTQUNoRSxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRTtZQUNwRCxRQUFRLEVBQUU7Z0JBQ1IscURBQXFEO2dCQUNyRCx5Q0FBeUM7Z0JBQ3pDLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVix1QkFBdUI7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsK0JBQStCO2dCQUMvQiwrQ0FBK0M7Z0JBQy9DLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRixjQUFjO2dCQUNkLEtBQUs7Z0JBQ0wsR0FBRzthQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNiLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN2RCxDQUFDOztBQXZDSCwwQkF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFNhbXBsZUZpbGUsIGNkayB9IGZyb20gJ3Byb2plbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9zZXR0YU9wdGlvbnMge1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc3RyaWN0IG1vZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHN0cmljdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldCBhbiBleHBsaWNpdCB2ZXJzaW9uIG9mIHJvc2V0dGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdmVyc2lvbiBpcyBzZXQsIHVzZSBhdXRvbWF0aWMgZGV0ZWN0aW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBSb3NldHRhIGNvbXBvbmVudCBhZGRzIGJ1aWx0aW4gcm9zZXR0YSBzdXBwb3J0XG4gKiBmb3IgYSBjb25zdHJ1Y3QgbGlicmFyeS4gU2luY2UgQ29uc3RydWN0SHViIHdpbGwgcnVuXG4gKiByb3NldHRhIGZvciByZWFsLCB0aGlzIGp1c3QgYWRkcyBhIGNoZWNrIHRvIHRoZSBidWlsZCB0b1xuICogZW5zdXJlIHRoYXQgcm9zZXR0YSB3aWxsIHJ1biBzdWNjZXNzZnVsbHlcbiAqL1xuZXhwb3J0IGNsYXNzIFJvc2V0dGEgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBjZGsuSnNpaVByb2plY3QsIG9wdGlvbnM6IFJvc2V0dGFPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IHN0cmljdCA9IG9wdGlvbnMuc3RyaWN0ID8/IHRydWU7XG5cbiAgICBpZiAoIXN0cmljdCkge1xuICAgICAgLy8gYmVmb3JlIHJlbW92aW5nIHRoaXMsIGNvbnNpZGVyIGh0dHBzOi8vZ2l0aHViLmNvbS9jZGtsYWJzL2Nka2xhYnMtcHJvamVuLXByb2plY3QtdHlwZXMvaXNzdWVzLzkwNFxuICAgICAgcHJvamVjdC5sb2dnZXIud2FybignUm9zZXR0YSBpcyBOT1Qgb3BlcmF0aW5nIGluIHN0cmljdCBtb2RlLiBXZSBhcmUgZ29pbmcgdG8gZW5mb3JjZSB0aGlzIHNvb24uXFxuUGxlYXNlIGZpeCBhbnkgZXhhbXBsZXMuJyk7XG4gICAgfVxuXG4gICAgLy8gQWRkIERldkRlcFxuICAgIGNvbnN0IHJvc2V0dGFEZXAgPSBvcHRpb25zLnZlcnNpb24gPyBganNpaS1yb3NldHRhQCR7b3B0aW9ucy52ZXJzaW9ufWAgOiAnanNpaS1yb3NldHRhJztcbiAgICBwcm9qZWN0LmFkZERldkRlcHMocm9zZXR0YURlcCk7XG5cbiAgICBjb25zdCByb3NldHRhVGFzayA9IHByb2plY3QuYWRkVGFzaygncm9zZXR0YTpleHRyYWN0Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdUZXN0IHJvc2V0dGEgZXh0cmFjdCcsXG4gICAgICBleGVjOiBganNpaS1yb3NldHRhIGV4dHJhY3QgJHtzdHJpY3QgPyAnLS1zdHJpY3QnIDogJyd9YC50cmltKCksXG4gICAgfSk7XG4gICAgcHJvamVjdC5wb3N0Q29tcGlsZVRhc2suc3Bhd24ocm9zZXR0YVRhc2spO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuanNpaS50YWJsLmpzb24nKTtcbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAncm9zZXR0YS9kZWZhdWx0LnRzLWZpeHR1cmUnLCB7XG4gICAgICBjb250ZW50czogW1xuICAgICAgICAnLy8gRml4dHVyZSB3aXRoIHBhY2thZ2VzIGltcG9ydGVkLCBidXQgbm90aGluZyBlbHNlJyxcbiAgICAgICAgXCJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcIixcbiAgICAgICAgJ2ltcG9ydCB7JyxcbiAgICAgICAgJyAgU3RhY2ssJyxcbiAgICAgICAgXCJ9IGZyb20gJ2F3cy1jZGstbGliJztcIixcbiAgICAgICAgJycsXG4gICAgICAgICdjbGFzcyBGaXh0dXJlIGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHsnLFxuICAgICAgICAnICAgIHN1cGVyKHNjb3BlLCBpZCk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLy8vIGhlcmUnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJ30nLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICB9KTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnIS9yb3NldHRhL2RlZmF1bHQudHMtZml4dHVyZScpO1xuICB9XG59XG4iXX0=
52
+ Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.5.0" };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTJEO0FBa0IzRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBcUMsRUFBRSxVQUEwQixFQUFFO1FBQzdFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLG9HQUFvRztZQUNwRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1R0FBdUcsQ0FBQyxDQUFDO1FBQy9ILENBQUM7UUFFRCxhQUFhO1FBQ2IsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ3hGLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUNyRCxXQUFXLEVBQUUsc0JBQXNCO1lBQ25DLElBQUksRUFBRSx3QkFBd0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRTtTQUNoRSxDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRTtZQUNwRCxRQUFRLEVBQUU7Z0JBQ1IscURBQXFEO2dCQUNyRCx5Q0FBeUM7Z0JBQ3pDLFVBQVU7Z0JBQ1YsVUFBVTtnQkFDVix1QkFBdUI7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsK0JBQStCO2dCQUMvQiwrQ0FBK0M7Z0JBQy9DLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRixjQUFjO2dCQUNkLEtBQUs7Z0JBQ0wsR0FBRzthQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNiLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN2RCxDQUFDOztBQXZDSCwwQkF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFNhbXBsZUZpbGUsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvc2V0dGFPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHN0cmljdCBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgYW4gZXhwbGljaXQgdmVyc2lvbiBvZiByb3NldHRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZlcnNpb24gaXMgc2V0LCB1c2UgYXV0b21hdGljIGRldGVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgUm9zZXR0YSBjb21wb25lbnQgYWRkcyBidWlsdGluIHJvc2V0dGEgc3VwcG9ydFxuICogZm9yIGEgY29uc3RydWN0IGxpYnJhcnkuIFNpbmNlIENvbnN0cnVjdEh1YiB3aWxsIHJ1blxuICogcm9zZXR0YSBmb3IgcmVhbCwgdGhpcyBqdXN0IGFkZHMgYSBjaGVjayB0byB0aGUgYnVpbGQgdG9cbiAqIGVuc3VyZSB0aGF0IHJvc2V0dGEgd2lsbCBydW4gc3VjY2Vzc2Z1bGx5XG4gKi9cbmV4cG9ydCBjbGFzcyBSb3NldHRhIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCwgb3B0aW9uczogUm9zZXR0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3Qgc3RyaWN0ID0gb3B0aW9ucy5zdHJpY3QgPz8gdHJ1ZTtcblxuICAgIGlmICghc3RyaWN0KSB7XG4gICAgICAvLyBiZWZvcmUgcmVtb3ZpbmcgdGhpcywgY29uc2lkZXIgaHR0cHM6Ly9naXRodWIuY29tL2Nka2xhYnMvY2RrbGFicy1wcm9qZW4tcHJvamVjdC10eXBlcy9pc3N1ZXMvOTA0XG4gICAgICBwcm9qZWN0LmxvZ2dlci53YXJuKCdSb3NldHRhIGlzIE5PVCBvcGVyYXRpbmcgaW4gc3RyaWN0IG1vZGUuIFdlIGFyZSBnb2luZyB0byBlbmZvcmNlIHRoaXMgc29vbi5cXG5QbGVhc2UgZml4IGFueSBleGFtcGxlcy4nKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgRGV2RGVwXG4gICAgY29uc3Qgcm9zZXR0YURlcCA9IG9wdGlvbnMudmVyc2lvbiA/IGBqc2lpLXJvc2V0dGFAJHtvcHRpb25zLnZlcnNpb259YCA6ICdqc2lpLXJvc2V0dGEnO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhyb3NldHRhRGVwKTtcblxuICAgIGNvbnN0IHJvc2V0dGFUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdyb3NldHRhOmV4dHJhY3QnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Rlc3Qgcm9zZXR0YSBleHRyYWN0JyxcbiAgICAgIGV4ZWM6IGBqc2lpLXJvc2V0dGEgZXh0cmFjdCAke3N0cmljdCA/ICctLXN0cmljdCcgOiAnJ31gLnRyaW0oKSxcbiAgICB9KTtcbiAgICBwcm9qZWN0LnBvc3RDb21waWxlVGFzay5zcGF3bihyb3NldHRhVGFzayk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJy5qc2lpLnRhYmwuanNvbicpO1xuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsICdyb3NldHRhL2RlZmF1bHQudHMtZml4dHVyZScsIHtcbiAgICAgIGNvbnRlbnRzOiBbXG4gICAgICAgICcvLyBGaXh0dXJlIHdpdGggcGFja2FnZXMgaW1wb3J0ZWQsIGJ1dCBub3RoaW5nIGVsc2UnLFxuICAgICAgICBcImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1wiLFxuICAgICAgICAnaW1wb3J0IHsnLFxuICAgICAgICAnICBTdGFjaywnLFxuICAgICAgICBcIn0gZnJvbSAnYXdzLWNkay1saWInO1wiLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2NsYXNzIEZpeHR1cmUgZXh0ZW5kcyBTdGFjayB7JyxcbiAgICAgICAgJyAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgc3VwZXIoc2NvcGUsIGlkKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvLy8gaGVyZScsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnfScsXG4gICAgICBdLmpvaW4oJ1xcbicpLFxuICAgIH0pO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCchL3Jvc2V0dGEvZGVmYXVsdC50cy1maXh0dXJlJyk7XG4gIH1cbn1cbiJdfQ==
@@ -34,7 +34,7 @@ class Constraints extends projen_1.Component {
34
34
  }
35
35
  exports.Constraints = Constraints;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- Constraints[_a] = { fqn: "cdklabs-projen-project-types.yarn.Constraints", version: "0.3.36" };
37
+ Constraints[_a] = { fqn: "cdklabs-projen-project-types.yarn.Constraints", version: "0.5.0" };
38
38
  class ConstraintsFile extends projen_1.FileBase {
39
39
  constructor(project, packages) {
40
40
  super(project, 'yarn.config.cjs', { editGitignore: true });
@@ -1,4 +1,5 @@
1
1
  export * from './constraints';
2
+ export * from './jsii-build';
2
3
  export * from './monorepo';
3
4
  export * from './monorepo-options';
4
5
  export * from './monorepo-release';
package/lib/yarn/index.js CHANGED
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./constraints"), exports);
18
+ __exportStar(require("./jsii-build"), exports);
18
19
  __exportStar(require("./monorepo"), exports);
19
20
  __exportStar(require("./monorepo-options"), exports);
20
21
  __exportStar(require("./monorepo-release"), exports);
@@ -23,4 +24,4 @@ __exportStar(require("./typescript-workspace"), exports);
23
24
  __exportStar(require("./typescript-workspace-options"), exports);
24
25
  __exportStar(require("./typescript-workspace-release"), exports);
25
26
  __exportStar(require("./vscode-workspace-options"), exports);
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLDZDQUEyQjtBQUMzQixxREFBbUM7QUFDbkMscURBQW1DO0FBQ25DLDZEQUEyQztBQUMzQyx5REFBdUM7QUFDdkMsaUVBQStDO0FBQy9DLGlFQUErQztBQUMvQyw2REFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0cmFpbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ub3JlcG8nO1xuZXhwb3J0ICogZnJvbSAnLi9tb25vcmVwby1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ub3JlcG8tcmVsZWFzZSc7XG5leHBvcnQgKiBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2Utb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2Utb3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi92c2NvZGUtd29ya3NwYWNlLW9wdGlvbnMnO1xuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLCtDQUE2QjtBQUM3Qiw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLHFEQUFtQztBQUNuQyw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLGlFQUErQztBQUMvQyxpRUFBK0M7QUFDL0MsNkRBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb25zdHJhaW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2pzaWktYnVpbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25vcmVwbyc7XG5leHBvcnQgKiBmcm9tICcuL21vbm9yZXBvLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb25vcmVwby1yZWxlYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9ub3JlcG8tcmVsZWFzZS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZzY29kZS13b3Jrc3BhY2Utb3B0aW9ucyc7XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { IConstruct, IMixin } from 'constructs';
2
+ import { JsiiBuildOptions } from 'projen/lib/cdk';
3
+ import { TypeScriptWorkspace } from './typescript-workspace';
4
+ export { JsiiBuildOptions } from 'projen/lib/cdk';
5
+ export interface WorkspaceJsiiBuildOptions extends JsiiBuildOptions {
6
+ /**
7
+ * Whether to turn on 'strict' mode for Rosetta
8
+ * @default true
9
+ */
10
+ readonly rosettaStrict?: boolean;
11
+ /**
12
+ * Additional example dependencies for Rosetta
13
+ *
14
+ * @see https://github.com/aws/jsii-rosetta?tab=readme-ov-file#dependencies
15
+ * @default []
16
+ */
17
+ readonly rosettaDependencies?: string[];
18
+ /**
19
+ * Whether to turn on composite mode for the TypeScript project
20
+ * @default false
21
+ */
22
+ readonly composite?: boolean;
23
+ /**
24
+ * PyPI classifiers to add to `package.json`.
25
+ * @default none
26
+ */
27
+ readonly pypiClassifiers?: string[];
28
+ }
29
+ /**
30
+ * A mixin that applies the upstream projen JsiiBuild to a TypeScriptWorkspace,
31
+ * adding monorepo-appropriate defaults (Rosetta, composite, pypiClassifiers).
32
+ */
33
+ export declare class WorkspaceJsiiBuild implements IMixin {
34
+ private readonly options;
35
+ constructor(options?: WorkspaceJsiiBuildOptions);
36
+ supports(construct: IConstruct): construct is TypeScriptWorkspace;
37
+ applyTo(construct: IConstruct): void;
38
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.WorkspaceJsiiBuild = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const projen_1 = require("projen");
7
+ const cdk_1 = require("projen/lib/cdk");
8
+ const typescript_workspace_1 = require("./typescript-workspace");
9
+ const rosetta_1 = require("../rosetta");
10
+ /**
11
+ * A mixin that applies the upstream projen JsiiBuild to a TypeScriptWorkspace,
12
+ * adding monorepo-appropriate defaults (Rosetta, composite, pypiClassifiers).
13
+ */
14
+ class WorkspaceJsiiBuild {
15
+ constructor(options = {}) {
16
+ this.options = options;
17
+ }
18
+ supports(construct) {
19
+ return construct instanceof typescript_workspace_1.TypeScriptWorkspace;
20
+ }
21
+ applyTo(construct) {
22
+ if (!this.supports(construct)) {
23
+ return;
24
+ }
25
+ // Apply upstream JsiiBuild with the workspace's directory
26
+ new cdk_1.JsiiBuild({
27
+ ...this.options,
28
+ workspaceDirectory: this.options.workspaceDirectory ?? construct.workspaceDirectory,
29
+ workflowNodeVersion: this.options.workflowNodeVersion ?? construct.nodeVersion ?? 'lts/*',
30
+ npmTrustedPublishing: this.options.npmTrustedPublishing ?? true,
31
+ }).applyTo(construct);
32
+ // In a monorepo, only package js (the npm tarball). Other language targets
33
+ // are packaged in separate release workflow jobs, not locally.
34
+ construct.packageTask.reset();
35
+ construct.packageTask.spawn(construct.tasks.tryFind('package:js'));
36
+ // Composite project references for monorepo
37
+ if (this.options.composite) {
38
+ construct.package.file.addOverride('jsii.projectReferences', true);
39
+ }
40
+ // Rosetta
41
+ const jsiiVersion = (this.options.jsiiVersion === '*' ? undefined : this.options.jsiiVersion) ?? '~5.9.0';
42
+ new rosetta_1.Rosetta(construct, {
43
+ strict: this.options.rosettaStrict ?? true,
44
+ version: jsiiVersion,
45
+ });
46
+ // Rosetta example dependencies
47
+ if (this.options.rosettaDependencies?.length) {
48
+ const deps = Object.fromEntries(this.options.rosettaDependencies.map(d => projen_1.Dependencies.parseDependency(d)).map(d => [d.name, d.version ?? '*']));
49
+ construct.package.file.addOverride('jsiiRosetta.exampleDependencies', deps);
50
+ }
51
+ // PyPI classifiers
52
+ if ((this.options.pypiClassifiers ?? []).length > 0) {
53
+ construct.package.file.patch(projen_1.JsonPatch.add('/jsii/targets/python/classifiers', this.options.pypiClassifiers));
54
+ }
55
+ }
56
+ }
57
+ exports.WorkspaceJsiiBuild = WorkspaceJsiiBuild;
58
+ _a = JSII_RTTI_SYMBOL_1;
59
+ WorkspaceJsiiBuild[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceJsiiBuild", version: "0.5.0" };
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL2pzaWktYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxtQ0FBaUQ7QUFDakQsd0NBQTZEO0FBQzdELGlFQUE2RDtBQUM3RCx3Q0FBcUM7QUFnQ3JDOzs7R0FHRztBQUNILE1BQWEsa0JBQWtCO0lBRzdCLFlBQVksVUFBcUMsRUFBRTtRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQXFCO1FBQ25DLE9BQU8sU0FBUyxZQUFZLDBDQUFtQixDQUFDO0lBQ2xELENBQUM7SUFFTSxPQUFPLENBQUMsU0FBcUI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUVELDBEQUEwRDtRQUMxRCxJQUFJLGVBQVMsQ0FBQztZQUNaLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixrQkFBa0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLFNBQVMsQ0FBQyxrQkFBa0I7WUFDbkYsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSyxTQUFpQixDQUFDLFdBQVcsSUFBSSxPQUFPO1lBQ2xHLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLElBQUksSUFBSTtTQUNoRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRCLDJFQUEyRTtRQUMzRSwrREFBK0Q7UUFDL0QsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUUsQ0FBQyxDQUFDO1FBRXBFLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxVQUFVO1FBQ1YsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUM7UUFDMUcsSUFBSSxpQkFBTyxDQUFDLFNBQVMsRUFBRTtZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSTtZQUMxQyxPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDLENBQUM7UUFFSCwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUNoSCxDQUFDO1lBQ0YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFFRCxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQzFCLGtCQUFTLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQ2hGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzs7QUF2REgsZ0RBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbnN0cnVjdCwgSU1peGluIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEZXBlbmRlbmNpZXMsIEpzb25QYXRjaCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKc2lpQnVpbGQsIEpzaWlCdWlsZE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2Nkayc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0V29ya3NwYWNlIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZSc7XG5pbXBvcnQgeyBSb3NldHRhIH0gZnJvbSAnLi4vcm9zZXR0YSc7XG5cbmV4cG9ydCB7IEpzaWlCdWlsZE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlSnNpaUJ1aWxkT3B0aW9ucyBleHRlbmRzIEpzaWlCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byB0dXJuIG9uICdzdHJpY3QnIG1vZGUgZm9yIFJvc2V0dGFcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9zZXR0YVN0cmljdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZXhhbXBsZSBkZXBlbmRlbmNpZXMgZm9yIFJvc2V0dGFcbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWktcm9zZXR0YT90YWI9cmVhZG1lLW92LWZpbGUjZGVwZW5kZW5jaWVzXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSByb3NldHRhRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHVybiBvbiBjb21wb3NpdGUgbW9kZSBmb3IgdGhlIFR5cGVTY3JpcHQgcHJvamVjdFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9zaXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUHlQSSBjbGFzc2lmaWVycyB0byBhZGQgdG8gYHBhY2thZ2UuanNvbmAuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHB5cGlDbGFzc2lmaWVycz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgbWl4aW4gdGhhdCBhcHBsaWVzIHRoZSB1cHN0cmVhbSBwcm9qZW4gSnNpaUJ1aWxkIHRvIGEgVHlwZVNjcmlwdFdvcmtzcGFjZSxcbiAqIGFkZGluZyBtb25vcmVwby1hcHByb3ByaWF0ZSBkZWZhdWx0cyAoUm9zZXR0YSwgY29tcG9zaXRlLCBweXBpQ2xhc3NpZmllcnMpLlxuICovXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlSnNpaUJ1aWxkIGltcGxlbWVudHMgSU1peGluIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBXb3Jrc3BhY2VKc2lpQnVpbGRPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdvcmtzcGFjZUpzaWlCdWlsZE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc3VwcG9ydHMoY29uc3RydWN0OiBJQ29uc3RydWN0KTogY29uc3RydWN0IGlzIFR5cGVTY3JpcHRXb3Jrc3BhY2Uge1xuICAgIHJldHVybiBjb25zdHJ1Y3QgaW5zdGFuY2VvZiBUeXBlU2NyaXB0V29ya3NwYWNlO1xuICB9XG5cbiAgcHVibGljIGFwcGx5VG8oY29uc3RydWN0OiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzKGNvbnN0cnVjdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBcHBseSB1cHN0cmVhbSBKc2lpQnVpbGQgd2l0aCB0aGUgd29ya3NwYWNlJ3MgZGlyZWN0b3J5XG4gICAgbmV3IEpzaWlCdWlsZCh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB3b3Jrc3BhY2VEaXJlY3Rvcnk6IHRoaXMub3B0aW9ucy53b3Jrc3BhY2VEaXJlY3RvcnkgPz8gY29uc3RydWN0LndvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IHRoaXMub3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uID8/IChjb25zdHJ1Y3QgYXMgYW55KS5ub2RlVmVyc2lvbiA/PyAnbHRzLyonLFxuICAgICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IHRoaXMub3B0aW9ucy5ucG1UcnVzdGVkUHVibGlzaGluZyA/PyB0cnVlLFxuICAgIH0pLmFwcGx5VG8oY29uc3RydWN0KTtcblxuICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgcGFja2FnZSBqcyAodGhlIG5wbSB0YXJiYWxsKS4gT3RoZXIgbGFuZ3VhZ2UgdGFyZ2V0c1xuICAgIC8vIGFyZSBwYWNrYWdlZCBpbiBzZXBhcmF0ZSByZWxlYXNlIHdvcmtmbG93IGpvYnMsIG5vdCBsb2NhbGx5LlxuICAgIGNvbnN0cnVjdC5wYWNrYWdlVGFzay5yZXNldCgpO1xuICAgIGNvbnN0cnVjdC5wYWNrYWdlVGFzay5zcGF3bihjb25zdHJ1Y3QudGFza3MudHJ5RmluZCgncGFja2FnZTpqcycpISk7XG5cbiAgICAvLyBDb21wb3NpdGUgcHJvamVjdCByZWZlcmVuY2VzIGZvciBtb25vcmVwb1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29tcG9zaXRlKSB7XG4gICAgICBjb25zdHJ1Y3QucGFja2FnZS5maWxlLmFkZE92ZXJyaWRlKCdqc2lpLnByb2plY3RSZWZlcmVuY2VzJywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gUm9zZXR0YVxuICAgIGNvbnN0IGpzaWlWZXJzaW9uID0gKHRoaXMub3B0aW9ucy5qc2lpVmVyc2lvbiA9PT0gJyonID8gdW5kZWZpbmVkIDogdGhpcy5vcHRpb25zLmpzaWlWZXJzaW9uKSA/PyAnfjUuOS4wJztcbiAgICBuZXcgUm9zZXR0YShjb25zdHJ1Y3QsIHtcbiAgICAgIHN0cmljdDogdGhpcy5vcHRpb25zLnJvc2V0dGFTdHJpY3QgPz8gdHJ1ZSxcbiAgICAgIHZlcnNpb246IGpzaWlWZXJzaW9uLFxuICAgIH0pO1xuXG4gICAgLy8gUm9zZXR0YSBleGFtcGxlIGRlcGVuZGVuY2llc1xuICAgIGlmICh0aGlzLm9wdGlvbnMucm9zZXR0YURlcGVuZGVuY2llcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCBkZXBzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICB0aGlzLm9wdGlvbnMucm9zZXR0YURlcGVuZGVuY2llcy5tYXAoZCA9PiBEZXBlbmRlbmNpZXMucGFyc2VEZXBlbmRlbmN5KGQpKS5tYXAoZCA9PiBbZC5uYW1lLCBkLnZlcnNpb24gPz8gJyonXSksXG4gICAgICApO1xuICAgICAgY29uc3RydWN0LnBhY2thZ2UuZmlsZS5hZGRPdmVycmlkZSgnanNpaVJvc2V0dGEuZXhhbXBsZURlcGVuZGVuY2llcycsIGRlcHMpO1xuICAgIH1cblxuICAgIC8vIFB5UEkgY2xhc3NpZmllcnNcbiAgICBpZiAoKHRoaXMub3B0aW9ucy5weXBpQ2xhc3NpZmllcnMgPz8gW10pLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0cnVjdC5wYWNrYWdlLmZpbGUucGF0Y2goXG4gICAgICAgIEpzb25QYXRjaC5hZGQoJy9qc2lpL3RhcmdldHMvcHl0aG9uL2NsYXNzaWZpZXJzJywgdGhpcy5vcHRpb25zLnB5cGlDbGFzc2lmaWVycyksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19