projen-modules 0.0.39 → 0.1.1

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 (41) hide show
  1. package/.jsii +7196 -168
  2. package/API.md +2709 -2438
  3. package/README.md +10 -3
  4. package/lib/circleci.d.ts +1 -1
  5. package/lib/circleci.js +1 -1
  6. package/lib/components/github/codeowners.js +17 -0
  7. package/lib/components/github/pull-request-template.js +17 -0
  8. package/lib/components/index.d.ts +2 -0
  9. package/lib/components/index.js +21 -0
  10. package/lib/components/readme/elements/index.d.ts +1 -0
  11. package/lib/components/readme/elements/index.js +18 -0
  12. package/lib/components/readme/elements/section.d.ts +9 -0
  13. package/lib/components/readme/elements/section.js +19 -0
  14. package/lib/components/readme/index.d.ts +8 -0
  15. package/lib/components/readme/index.js +24 -0
  16. package/lib/index.d.ts +2 -3
  17. package/lib/index.js +3 -4
  18. package/lib/projects/index.d.ts +3 -0
  19. package/lib/projects/index.js +20 -0
  20. package/lib/projects/jsii/index.d.ts +14 -0
  21. package/lib/projects/jsii/index.js +58 -0
  22. package/lib/projects/jsii/jsii-project-options.d.ts +1106 -0
  23. package/lib/projects/jsii/jsii-project-options.js +3 -0
  24. package/lib/{npm → projects/npm}/index.d.ts +2 -7
  25. package/lib/projects/npm/index.js +63 -0
  26. package/lib/projects/npm/npm-package-options.d.ts +1000 -0
  27. package/lib/projects/npm/npm-package-options.js +3 -0
  28. package/lib/projects/python/index.d.ts +12 -0
  29. package/lib/projects/python/index.js +58 -0
  30. package/lib/projects/python/python-package-options.d.ts +391 -0
  31. package/lib/projects/python/python-package-options.js +3 -0
  32. package/package.json +4 -3
  33. package/lib/github/codeowners.js +0 -17
  34. package/lib/github/pull-request-template.js +0 -17
  35. package/lib/jsii/index.d.ts +0 -17
  36. package/lib/jsii/index.js +0 -47
  37. package/lib/npm/index.js +0 -52
  38. package/lib/python/index.d.ts +0 -29
  39. package/lib/python/index.js +0 -47
  40. /package/lib/{github → components/github}/codeowners.d.ts +0 -0
  41. /package/lib/{github → components/github}/pull-request-template.d.ts +0 -0
package/README.md CHANGED
@@ -1,8 +1,15 @@
1
- # Projen Modules
1
+ # projen-modules
2
2
 
3
- ## Getting started
3
+ ## Getting Started
4
4
 
5
- ```
5
+ ```sh
6
6
  yarn install
7
7
  npx projen build
8
8
  ```
9
+
10
+ ## Creating a New Project
11
+
12
+
13
+ ```
14
+ npx projen new NpmPackage --from projen-project
15
+ ```
package/lib/circleci.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { circleci } from 'projen';
2
- import { NpmPackage } from './npm';
2
+ import { NpmPackage } from './projects/npm';
3
3
  export declare class NpmCircleCi extends circleci.Circleci {
4
4
  constructor(project: NpmPackage);
5
5
  }
package/lib/circleci.js CHANGED
@@ -49,4 +49,4 @@ git diff --staged --patch --exit-code > .repo.patch || echo "export SELF_MUTATIO
49
49
  }
50
50
  }
51
51
  exports.NpmCircleCi = NpmCircleCi;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlY2kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2lyY2xlY2kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsV0FBWSxTQUFRLGlCQUFRLENBQUMsUUFBUTtJQUNoRCxZQUFZLE9BQW1CO1FBQzdCLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDYixJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsVUFBVSxFQUFFLE9BQU87b0JBQ25CLGFBQWEsRUFBRSxpQkFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLO29CQUMzQyxNQUFNLEVBQUU7d0JBQ047NEJBQ0UsS0FBSyxFQUFFLGVBQWU7eUJBQ3ZCO3FCQUNGO29CQUNELEtBQUssRUFBRTt3QkFDTCxVQUFVO3dCQUNWOzRCQUNFLEdBQUcsRUFBRTtnQ0FDSCxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixPQUFPLEVBQUUsNEJBQTRCOzZCQUN0Qzt5QkFDRjt3QkFDRDs0QkFDRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTt5QkFDcEQ7d0JBQ0Q7NEJBQ0UsR0FBRyxFQUFFO2dDQUNILElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLE9BQU8sRUFBRTs4R0FDcUY7NkJBQy9GO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLE9BQU87b0JBQ25CLElBQUksRUFBRTt3QkFDSjs0QkFDRSxVQUFVLEVBQUUsT0FBTzt5QkFDcEI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdDRCxrQ0E2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaXJjbGVjaSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOcG1QYWNrYWdlIH0gZnJvbSAnLi9ucG0nO1xuXG5leHBvcnQgY2xhc3MgTnBtQ2lyY2xlQ2kgZXh0ZW5kcyBjaXJjbGVjaS5DaXJjbGVjaSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5wbVBhY2thZ2UpIHtcbiAgICBzdXBlcihwcm9qZWN0LCB7XG4gICAgICBqb2JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZGVudGlmaWVyOiAnYnVpbGQnLFxuICAgICAgICAgIHJlc291cmNlQ2xhc3M6IGNpcmNsZWNpLlJlc291cmNlQ2xhc3MuU01BTEwsXG4gICAgICAgICAgZG9ja2VyOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGltYWdlOiAnY2ltZy9ub2RlOmx0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICAgICdjaGVja291dCcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjogeyBuYW1lOiAnYnVpbGQnLCBjb21tYW5kOiAnbnB4IHByb2plbiBidWlsZCcgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdGaW5kIG11dGF0aW9ucycsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogYGdpdCBhZGQgLlxuZ2l0IGRpZmYgLS1zdGFnZWQgLS1wYXRjaCAtLWV4aXQtY29kZSA+IC5yZXBvLnBhdGNoIHx8IGVjaG8gXCJleHBvcnQgU0VMRl9NVVRBVElPTl9IQVBQRU5FRD10cnVlXCIgPj4gJEJBU0hfRU5WYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3b3JrZmxvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkZW50aWZpZXI6ICdidWlsZCcsXG4gICAgICAgICAgam9iczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnYnVpbGQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlY2kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2lyY2xlY2kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsV0FBWSxTQUFRLGlCQUFRLENBQUMsUUFBUTtJQUNoRCxZQUFZLE9BQW1CO1FBQzdCLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDYixJQUFJLEVBQUU7Z0JBQ0o7b0JBQ0UsVUFBVSxFQUFFLE9BQU87b0JBQ25CLGFBQWEsRUFBRSxpQkFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLO29CQUMzQyxNQUFNLEVBQUU7d0JBQ047NEJBQ0UsS0FBSyxFQUFFLGVBQWU7eUJBQ3ZCO3FCQUNGO29CQUNELEtBQUssRUFBRTt3QkFDTCxVQUFVO3dCQUNWOzRCQUNFLEdBQUcsRUFBRTtnQ0FDSCxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixPQUFPLEVBQUUsNEJBQTRCOzZCQUN0Qzt5QkFDRjt3QkFDRDs0QkFDRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTt5QkFDcEQ7d0JBQ0Q7NEJBQ0UsR0FBRyxFQUFFO2dDQUNILElBQUksRUFBRSxnQkFBZ0I7Z0NBQ3RCLE9BQU8sRUFBRTs4R0FDcUY7NkJBQy9GO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLE9BQU87b0JBQ25CLElBQUksRUFBRTt3QkFDSjs0QkFDRSxVQUFVLEVBQUUsT0FBTzt5QkFDcEI7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdDRCxrQ0E2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjaXJjbGVjaSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOcG1QYWNrYWdlIH0gZnJvbSAnLi9wcm9qZWN0cy9ucG0nO1xuXG5leHBvcnQgY2xhc3MgTnBtQ2lyY2xlQ2kgZXh0ZW5kcyBjaXJjbGVjaS5DaXJjbGVjaSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5wbVBhY2thZ2UpIHtcbiAgICBzdXBlcihwcm9qZWN0LCB7XG4gICAgICBqb2JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZGVudGlmaWVyOiAnYnVpbGQnLFxuICAgICAgICAgIHJlc291cmNlQ2xhc3M6IGNpcmNsZWNpLlJlc291cmNlQ2xhc3MuU01BTEwsXG4gICAgICAgICAgZG9ja2VyOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGltYWdlOiAnY2ltZy9ub2RlOmx0cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICAgICdjaGVja291dCcsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjogeyBuYW1lOiAnYnVpbGQnLCBjb21tYW5kOiAnbnB4IHByb2plbiBidWlsZCcgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJ1bjoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdGaW5kIG11dGF0aW9ucycsXG4gICAgICAgICAgICAgICAgY29tbWFuZDogYGdpdCBhZGQgLlxuZ2l0IGRpZmYgLS1zdGFnZWQgLS1wYXRjaCAtLWV4aXQtY29kZSA+IC5yZXBvLnBhdGNoIHx8IGVjaG8gXCJleHBvcnQgU0VMRl9NVVRBVElPTl9IQVBQRU5FRD10cnVlXCIgPj4gJEJBU0hfRU5WYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3b3JrZmxvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkZW50aWZpZXI6ICdidWlsZCcsXG4gICAgICAgICAgam9iczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnYnVpbGQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeOwners = void 0;
4
+ const projen_1 = require("projen");
5
+ const javascript_1 = require("projen/lib/javascript");
6
+ class CodeOwners {
7
+ constructor(project, codeOwners) {
8
+ if (project instanceof javascript_1.NodeProject) {
9
+ project.npmignore?.addPatterns('CODEOWNERS');
10
+ }
11
+ new projen_1.TextFile(project, 'CODEOWNERS', {
12
+ lines: codeOwners.map((owner) => `* @unibuddy/${owner}`),
13
+ });
14
+ }
15
+ }
16
+ exports.CodeOwners = CodeOwners;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW93bmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dpdGh1Yi9jb2Rlb3duZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1DQUFrQztBQUNsQyxzREFBb0Q7QUFFcEQsTUFBYSxVQUFVO0lBQ3JCLFlBQVksT0FBbUIsRUFBRSxVQUF5QjtRQUN4RCxJQUFJLE9BQU8sWUFBWSx3QkFBVyxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksaUJBQVEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFO1lBQ2xDLEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFDO1NBQ3pELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVZELGdDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgVGV4dEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTm9kZVByb2plY3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuXG5leHBvcnQgY2xhc3MgQ29kZU93bmVycyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IElDb25zdHJ1Y3QsIGNvZGVPd25lcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBpZiAocHJvamVjdCBpbnN0YW5jZW9mIE5vZGVQcm9qZWN0KSB7XG4gICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uYWRkUGF0dGVybnMoJ0NPREVPV05FUlMnKTtcbiAgICB9XG5cbiAgICBuZXcgVGV4dEZpbGUocHJvamVjdCwgJ0NPREVPV05FUlMnLCB7XG4gICAgICBsaW5lczogY29kZU93bmVycy5tYXAoKG93bmVyKSA9PiBgKiBAdW5pYnVkZHkvJHtvd25lcn1gKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PULL_REQUEST_TEMPLATE = void 0;
4
+ exports.DEFAULT_PULL_REQUEST_TEMPLATE = [
5
+ '### Background',
6
+ '_Short description of issue being resolved or a feature being added._',
7
+ '',
8
+ '**JIRA TICKET**: [SAB-](https://unibuddy.atlassian.net/browse/SAB-)',
9
+ '',
10
+ '### Problems Encountered / Decisions Made / Potential Solutions Abandoned',
11
+ '_Any problems you had when working on the PR and what decisions or trade-offs you had to make._',
12
+ '',
13
+ '### Check List',
14
+ '* [ ] Added tests for all new code.',
15
+ '* [ ] Added comments and documentation for new code.',
16
+ ];
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC1yZXF1ZXN0LXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZ2l0aHViL3B1bGwtcmVxdWVzdC10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDZCQUE2QixHQUFHO0lBQzNDLGdCQUFnQjtJQUNoQix1RUFBdUU7SUFDdkUsRUFBRTtJQUNGLHFFQUFxRTtJQUNyRSxFQUFFO0lBQ0YsMkVBQTJFO0lBQzNFLGlHQUFpRztJQUNqRyxFQUFFO0lBQ0YsZ0JBQWdCO0lBQ2hCLHFDQUFxQztJQUNyQyxzREFBc0Q7Q0FDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBERUZBVUxUX1BVTExfUkVRVUVTVF9URU1QTEFURSA9IFtcbiAgJyMjIyBCYWNrZ3JvdW5kJyxcbiAgJ19TaG9ydCBkZXNjcmlwdGlvbiBvZiBpc3N1ZSBiZWluZyByZXNvbHZlZCBvciBhIGZlYXR1cmUgYmVpbmcgYWRkZWQuXycsXG4gICcnLFxuICAnKipKSVJBIFRJQ0tFVCoqOiBbU0FCLV0oaHR0cHM6Ly91bmlidWRkeS5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9TQUItKScsXG4gICcnLFxuICAnIyMjIFByb2JsZW1zIEVuY291bnRlcmVkIC8gRGVjaXNpb25zIE1hZGUgLyBQb3RlbnRpYWwgU29sdXRpb25zIEFiYW5kb25lZCcsXG4gICdfQW55IHByb2JsZW1zIHlvdSBoYWQgd2hlbiB3b3JraW5nIG9uIHRoZSBQUiBhbmQgd2hhdCBkZWNpc2lvbnMgb3IgdHJhZGUtb2ZmcyB5b3UgaGFkIHRvIG1ha2UuXycsXG4gICcnLFxuICAnIyMjIENoZWNrIExpc3QnLFxuICAnKiBbIF0gQWRkZWQgdGVzdHMgZm9yIGFsbCBuZXcgY29kZS4nLFxuICAnKiBbIF0gQWRkZWQgY29tbWVudHMgYW5kIGRvY3VtZW50YXRpb24gZm9yIG5ldyBjb2RlLicsXG5dO1xuIl19
@@ -0,0 +1,2 @@
1
+ export { Readme } from './readme';
2
+ export * from './readme/elements';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Readme = void 0;
18
+ var readme_1 = require("./readme");
19
+ Object.defineProperty(exports, "Readme", { enumerable: true, get: function () { return readme_1.Readme; } });
20
+ __exportStar(require("./readme/elements"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFrQztBQUF6QixnR0FBQSxNQUFNLE9BQUE7QUFDZixvREFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZWFkbWUgfSBmcm9tICcuL3JlYWRtZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWRtZS9lbGVtZW50cyc7XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from './section';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./section"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZWFkbWUvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbic7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ export interface ISectionOptions {
2
+ title: string;
3
+ body: string;
4
+ }
5
+ export declare class Section {
6
+ readonly options: ISectionOptions;
7
+ constructor(options: ISectionOptions);
8
+ synth(): string;
9
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Section = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ class Section {
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ synth() {
11
+ return `## ${this.options.title}
12
+
13
+ ${this.options.body}`;
14
+ }
15
+ }
16
+ exports.Section = Section;
17
+ _a = JSII_RTTI_SYMBOL_1;
18
+ Section[_a] = { fqn: "projen-modules.Section", version: "0.1.1" };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlYWRtZS9lbGVtZW50cy9zZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsTUFBYSxPQUFPO0lBRWxCLFlBQVksT0FBd0I7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUNELEtBQUs7UUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLOztFQUVqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7O0FBVEgsMEJBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElTZWN0aW9uT3B0aW9ucyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3Rpb24ge1xuICByZWFkb25seSBvcHRpb25zOiBJU2VjdGlvbk9wdGlvbnM7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IElTZWN0aW9uT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cbiAgc3ludGgoKSB7XG4gICAgcmV0dXJuIGAjIyAke3RoaXMub3B0aW9ucy50aXRsZX1cblxuJHt0aGlzLm9wdGlvbnMuYm9keX1gO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { FileBase, IResolver, Project } from 'projen';
2
+ import { Section } from './elements/section';
3
+ export declare class Readme extends FileBase {
4
+ sections: Array<Section>;
5
+ constructor(project: Project);
6
+ addSection(title: string, body: string): void;
7
+ protected synthesizeContent(_: IResolver): string | undefined;
8
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Readme = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const projen_1 = require("projen");
7
+ const section_1 = require("./elements/section");
8
+ class Readme extends projen_1.FileBase {
9
+ constructor(project) {
10
+ super(project, 'README.md', {});
11
+ this.sections = [];
12
+ }
13
+ addSection(title, body) {
14
+ this.sections.push(new section_1.Section({ title, body }));
15
+ }
16
+ synthesizeContent(_) {
17
+ const content = `# ${this.project.name}\n\n`;
18
+ return content.concat(this.sections.map((s) => s.synth()).join('\n\n'));
19
+ }
20
+ }
21
+ exports.Readme = Readme;
22
+ _a = JSII_RTTI_SYMBOL_1;
23
+ Readme[_a] = { fqn: "projen-modules.Readme", version: "0.1.1" };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZWFkbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBc0Q7QUFDdEQsZ0RBQTZDO0FBRTdDLE1BQWEsTUFBTyxTQUFRLGlCQUFRO0lBRWxDLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFGbEMsYUFBUSxHQUFtQixFQUFFLENBQUM7SUFHOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7O0FBYkgsd0JBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlQmFzZSwgSVJlc29sdmVyLCBQcm9qZWN0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICcuL2VsZW1lbnRzL3NlY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgUmVhZG1lIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBzZWN0aW9uczogQXJyYXk8U2VjdGlvbj4gPSBbXTtcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCkge1xuICAgIHN1cGVyKHByb2plY3QsICdSRUFETUUubWQnLCB7fSk7XG4gIH1cblxuICBhZGRTZWN0aW9uKHRpdGxlOiBzdHJpbmcsIGJvZHk6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbnMucHVzaChuZXcgU2VjdGlvbih7IHRpdGxlLCBib2R5IH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBgIyAke3RoaXMucHJvamVjdC5uYW1lfVxcblxcbmA7XG4gICAgcmV0dXJuIGNvbnRlbnQuY29uY2F0KHRoaXMuc2VjdGlvbnMubWFwKChzKSA9PiBzLnN5bnRoKCkpLmpvaW4oJ1xcblxcbicpKTtcbiAgfVxufVxuIl19
package/lib/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export * from './jsii';
2
- export * from './npm';
3
- export * from './python';
1
+ export * from './components';
2
+ export * from './projects';
package/lib/index.js CHANGED
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./jsii"), exports);
18
- __exportStar(require("./npm"), exports);
19
- __exportStar(require("./python"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9qc2lpJztcbmV4cG9ydCAqIGZyb20gJy4vbnBtJztcbmV4cG9ydCAqIGZyb20gJy4vcHl0aG9uJztcbiJdfQ==
17
+ __exportStar(require("./components"), exports);
18
+ __exportStar(require("./projects"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QjtBQUM3Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9qZWN0cyc7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './jsii';
2
+ export * from './npm';
3
+ export * from './python';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./jsii"), exports);
18
+ __exportStar(require("./npm"), exports);
19
+ __exportStar(require("./python"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9qc2lpJztcbmV4cG9ydCAqIGZyb20gJy4vbnBtJztcbmV4cG9ydCAqIGZyb20gJy4vcHl0aG9uJzsiXX0=
@@ -0,0 +1,14 @@
1
+ import { cdk } from 'projen';
2
+ import { JsiiProjectOptions } from './jsii-project-options';
3
+ import { Readme } from '../../components/readme';
4
+ /**
5
+ * A JSII project in TypeScript
6
+ *
7
+ *
8
+ * @pjid jsii-project
9
+ */
10
+ export declare class JsiiProject extends cdk.JsiiProject {
11
+ readme: Readme;
12
+ constructor(options: JsiiProjectOptions);
13
+ }
14
+ export * from './jsii-project-options';
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var _a;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.JsiiProject = void 0;
19
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
20
+ const projen_1 = require("projen");
21
+ const codeowners_1 = require("../../components/github/codeowners");
22
+ const pull_request_template_1 = require("../../components/github/pull-request-template");
23
+ const readme_1 = require("../../components/readme");
24
+ const merge_options_1 = require("../../utils/merge-options");
25
+ function getOptions(options) {
26
+ const { name } = options;
27
+ const defaults = {
28
+ name,
29
+ autoMerge: false,
30
+ defaultReleaseBranch: 'main',
31
+ gitignore: ['.npmrc', '.vscode'],
32
+ pullRequestTemplateContents: pull_request_template_1.DEFAULT_PULL_REQUEST_TEMPLATE,
33
+ projenrcTs: true,
34
+ };
35
+ return (0, merge_options_1.mergeOptions)(defaults, options);
36
+ }
37
+ /**
38
+ * A JSII project in TypeScript
39
+ *
40
+ *
41
+ * @pjid jsii-project
42
+ */
43
+ class JsiiProject extends projen_1.cdk.JsiiProject {
44
+ constructor(options) {
45
+ const mergedOptions = getOptions(options);
46
+ super({
47
+ ...mergedOptions,
48
+ });
49
+ new codeowners_1.CodeOwners(this, mergedOptions.codeOwners);
50
+ this.readme = new readme_1.Readme(this);
51
+ this.readme.addSection('Getting Started', '```sh\nyarn install\nnpx projen build\n```');
52
+ }
53
+ }
54
+ exports.JsiiProject = JsiiProject;
55
+ _a = JSII_RTTI_SYMBOL_1;
56
+ JsiiProject[_a] = { fqn: "projen-modules.JsiiProject", version: "0.1.1" };
57
+ __exportStar(require("./jsii-project-options"), exports);
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHMvanNpaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQTZCO0FBRTdCLG1FQUFnRTtBQUNoRSx5RkFBOEY7QUFDOUYsb0RBQWlEO0FBQ2pELDZEQUF5RDtBQUV6RCxTQUFTLFVBQVUsQ0FBQyxPQUEyQjtJQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXpCLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSTtRQUNKLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLG9CQUFvQixFQUFFLE1BQU07UUFDNUIsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztRQUNoQywyQkFBMkIsRUFBRSxxREFBNkI7UUFDMUQsVUFBVSxFQUFFLElBQUk7S0FDcUIsQ0FBQztJQUV4QyxPQUFPLElBQUEsNEJBQVksRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHOUMsWUFBWSxPQUEyQjtRQUNyQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsS0FBSyxDQUFDO1lBQ0osR0FBRyxhQUFhO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksdUJBQVUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ3BCLGlCQUFpQixFQUNqQiw0Q0FBNEMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7O0FBaEJILGtDQWlCQzs7O0FBRUQseURBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEpzaWlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vanNpaS1wcm9qZWN0LW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29kZU93bmVycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZ2l0aHViL2NvZGVvd25lcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9QVUxMX1JFUVVFU1RfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2dpdGh1Yi9wdWxsLXJlcXVlc3QtdGVtcGxhdGUnO1xuaW1wb3J0IHsgUmVhZG1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZWFkbWUnO1xuaW1wb3J0IHsgbWVyZ2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWVyZ2Utb3B0aW9ucyc7XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnMob3B0aW9uczogSnNpaVByb2plY3RPcHRpb25zKSB7XG4gIGNvbnN0IHsgbmFtZSB9ID0gb3B0aW9ucztcblxuICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICBuYW1lLFxuICAgIGF1dG9NZXJnZTogZmFsc2UsXG4gICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICBnaXRpZ25vcmU6IFsnLm5wbXJjJywgJy52c2NvZGUnXSxcbiAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IERFRkFVTFRfUFVMTF9SRVFVRVNUX1RFTVBMQVRFLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gIH0gc2F0aXNmaWVzIFBhcnRpYWw8SnNpaVByb2plY3RPcHRpb25zPjtcblxuICByZXR1cm4gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBBIEpTSUkgcHJvamVjdCBpbiBUeXBlU2NyaXB0XG4gKlxuICpcbiAqIEBwamlkIGpzaWktcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgSnNpaVByb2plY3QgZXh0ZW5kcyBjZGsuSnNpaVByb2plY3Qge1xuICByZWFkbWU6IFJlYWRtZTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKc2lpUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZ2V0T3B0aW9ucyhvcHRpb25zKTtcblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm1lcmdlZE9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgQ29kZU93bmVycyh0aGlzLCBtZXJnZWRPcHRpb25zLmNvZGVPd25lcnMpO1xuICAgIHRoaXMucmVhZG1lID0gbmV3IFJlYWRtZSh0aGlzKTtcbiAgICB0aGlzLnJlYWRtZS5hZGRTZWN0aW9uKFxuICAgICAgJ0dldHRpbmcgU3RhcnRlZCcsXG4gICAgICAnYGBgc2hcXG55YXJuIGluc3RhbGxcXG5ucHggcHJvamVuIGJ1aWxkXFxuYGBgJyxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vanNpaS1wcm9qZWN0LW9wdGlvbnMnO1xuIl19