@jttc/projen-project-types 1.0.0-beta.0 → 1.0.0-beta.10
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/.cz-config.js +83 -43
- package/.czrc +1 -1
- package/.jsii +4637 -14
- package/AGENTS.md +132 -0
- package/API.md +31146 -7
- package/README.md +197 -29
- package/docs/components/cdk8s.md +724 -0
- package/docs/components/commitzent.md +261 -0
- package/docs/components/k3d.md +456 -0
- package/docs/default-configurations.md +267 -0
- package/docs/index.md +86 -1
- package/docs/project-types/cdk-app.md +481 -0
- package/docs/project-types/cdk-library.md +321 -0
- package/docs/project-types/cdk8s-app.md +353 -0
- package/docs/project-types/cdk8s-library.md +442 -0
- package/docs/project-types/nx-monorepo.md +382 -0
- package/lib/cdk/cdk-app-project.d.ts +12 -0
- package/lib/cdk/cdk-app-project.js +28 -0
- package/lib/cdk/cdk-library-project.d.ts +12 -0
- package/lib/cdk/cdk-library-project.js +28 -0
- package/lib/cdk/cdk8s-app-project.d.ts +14 -0
- package/lib/cdk/cdk8s-app-project.js +54 -0
- package/lib/cdk/cdk8s-library-project.d.ts +14 -0
- package/lib/cdk/cdk8s-library-project.js +50 -0
- package/lib/cdk/index.d.ts +5 -0
- package/lib/cdk/index.js +22 -0
- package/lib/cdk/interfaces/cdk-app-options.d.ts +7 -0
- package/lib/cdk/interfaces/cdk-app-options.js +3 -0
- package/lib/cdk/interfaces/cdk-library-options.d.ts +7 -0
- package/lib/cdk/interfaces/cdk-library-options.js +3 -0
- package/lib/cdk/interfaces/cdk8s-app-options.d.ts +18 -0
- package/lib/cdk/interfaces/cdk8s-app-options.js +3 -0
- package/lib/cdk/interfaces/cdk8s-library-options.d.ts +8 -0
- package/lib/cdk/interfaces/cdk8s-library-options.js +3 -0
- package/lib/cdk/interfaces/index.d.ts +5 -0
- package/lib/cdk/interfaces/index.js +22 -0
- package/lib/cdk/interfaces/jsii-options.d.ts +7 -0
- package/lib/cdk/interfaces/jsii-options.js +3 -0
- package/lib/cdk/interfaces/project-global-options.d.ts +15 -0
- package/lib/cdk/interfaces/project-global-options.js +3 -0
- package/lib/cdk/jsii-project.d.ts +12 -0
- package/lib/cdk/jsii-project.js +24 -0
- package/lib/common/common-options.d.ts +40 -0
- package/lib/common/common-options.js +110 -0
- package/lib/components/agents/agents.d.ts +21 -0
- package/lib/components/agents/agents.js +476 -0
- package/lib/components/agents/index.d.ts +1 -0
- package/lib/components/agents/index.js +18 -0
- package/lib/components/cdk8s/cdk8s.d.ts +11 -0
- package/lib/components/cdk8s/cdk8s.js +124 -0
- package/lib/components/cdk8s/index.d.ts +2 -0
- package/lib/components/cdk8s/index.js +19 -0
- package/lib/components/cdk8s/interfaces/Cdk8s.d.ts +34 -0
- package/lib/components/cdk8s/interfaces/Cdk8s.js +12 -0
- package/lib/components/cdk8s/main-library.ts.template +35 -0
- package/lib/components/cdk8s/main.test.ts.template +3 -0
- package/lib/components/cdk8s/main.ts.template +38 -0
- package/lib/components/commitzent/commitzent.d.ts +8 -0
- package/lib/components/commitzent/commitzent.js +100 -0
- package/lib/components/commitzent/index.d.ts +2 -0
- package/lib/components/commitzent/index.js +19 -0
- package/lib/components/commitzent/interfaces/Icommitzent.d.ts +34 -0
- package/lib/components/commitzent/interfaces/Icommitzent.js +3 -0
- package/lib/components/index.d.ts +4 -0
- package/lib/components/index.js +21 -0
- package/lib/components/k3d/index.d.ts +3 -0
- package/lib/components/k3d/index.js +20 -0
- package/lib/components/k3d/k3d.d.ts +33 -0
- package/lib/components/k3d/k3d.js +109 -0
- package/lib/components/k3d/k3dBase.d.ts +4 -0
- package/lib/components/k3d/k3dBase.js +23 -0
- package/lib/components/k3d/types.d.ts +64 -0
- package/lib/components/k3d/types.js +8 -0
- package/lib/index.d.ts +5 -3
- package/lib/index.js +20 -12
- package/lib/monorepo/components/NxConfiguration.d.ts +17 -0
- package/lib/monorepo/components/NxConfiguration.js +105 -0
- package/lib/monorepo/components/index.d.ts +2 -0
- package/lib/monorepo/components/index.js +19 -0
- package/lib/monorepo/components/publish-release.d.ts +5 -0
- package/lib/monorepo/components/publish-release.js +80 -0
- package/lib/monorepo/index.d.ts +3 -0
- package/lib/monorepo/index.js +20 -0
- package/lib/monorepo/interfaces/Nx.d.ts +130 -0
- package/lib/monorepo/interfaces/Nx.js +3 -0
- package/lib/monorepo/interfaces/NxMonorepo.d.ts +3 -0
- package/lib/monorepo/interfaces/NxMonorepo.js +3 -0
- package/lib/monorepo/interfaces/index.d.ts +2 -0
- package/lib/monorepo/interfaces/index.js +19 -0
- package/lib/monorepo/monorepo.d.ts +16 -0
- package/lib/monorepo/monorepo.js +131 -0
- package/lib/terraform/components/index.d.ts +2 -0
- package/lib/terraform/components/index.js +19 -0
- package/lib/terraform/components/terraform-deploy-github-workflow.d.ts +26 -0
- package/lib/terraform/components/terraform-deploy-github-workflow.js +92 -0
- package/lib/terraform/components/terraform-plan-github-workflow.d.ts +31 -0
- package/lib/terraform/components/terraform-plan-github-workflow.js +155 -0
- package/lib/terraform/index.d.ts +5 -0
- package/lib/terraform/index.js +22 -0
- package/lib/terraform/providers/hetzner-provider.d.ts +105 -0
- package/lib/terraform/providers/hetzner-provider.js +83 -0
- package/lib/terraform/providers/index.d.ts +2 -0
- package/lib/terraform/providers/index.js +19 -0
- package/lib/terraform/providers/provider-strategy.d.ts +44 -0
- package/lib/terraform/providers/provider-strategy.js +38 -0
- package/lib/terraform/terraform-base-project.d.ts +38 -0
- package/lib/terraform/terraform-base-project.js +97 -0
- package/lib/terraform/terraform-module-project.d.ts +24 -0
- package/lib/terraform/terraform-module-project.js +77 -0
- package/lib/terraform/terraform-stack-project.d.ts +28 -0
- package/lib/terraform/terraform-stack-project.js +83 -0
- package/mkdocs.yml +12 -0
- package/package.json +14 -7
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TypeScriptProjectOptions } from 'projen/lib/typescript';
|
|
2
|
+
import { ProjectGlobalOptions } from './project-global-options';
|
|
3
|
+
import { K3dOptions } from '../../components';
|
|
4
|
+
import { Cdk8sBaseOptions } from '../../components/cdk8s/interfaces/Cdk8s';
|
|
5
|
+
/**
|
|
6
|
+
* CDK8s Application Project options
|
|
7
|
+
*/
|
|
8
|
+
export interface Cdk8sAppOptions extends Cdk8sBaseOptions, TypeScriptProjectOptions, ProjectGlobalOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Enable K3d component integration
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
readonly k3d?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* K3d component configuration options
|
|
16
|
+
*/
|
|
17
|
+
readonly k3dOptions?: K3dOptions;
|
|
18
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtYXBwLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2RrL2ludGVyZmFjZXMvY2RrOHMtYXBwLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBQcm9qZWN0R2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdC1nbG9iYWwtb3B0aW9ucyc7XG5pbXBvcnQgeyBLM2RPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDZGs4c0Jhc2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jZGs4cy9pbnRlcmZhY2VzL0NkazhzJztcblxuLyoqXG4gKiBDREs4cyBBcHBsaWNhdGlvbiBQcm9qZWN0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGs4c0FwcE9wdGlvbnNcbiAgZXh0ZW5kcyBDZGs4c0Jhc2VPcHRpb25zLCBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIFByb2plY3RHbG9iYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBLM2QgY29tcG9uZW50IGludGVncmF0aW9uXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGszZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBLM2QgY29tcG9uZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgazNkT3B0aW9ucz86IEszZE9wdGlvbnM7XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AwsCdkConstructLibraryOptions } from 'projen/lib/awscdk';
|
|
2
|
+
import { ProjectGlobalOptions } from './project-global-options';
|
|
3
|
+
import { Cdk8sBaseOptions } from '../../components/cdk8s/interfaces/Cdk8s';
|
|
4
|
+
/**
|
|
5
|
+
* CDK8s Construct Library Project options
|
|
6
|
+
*/
|
|
7
|
+
export interface Cdk8sLibraryOptions extends Cdk8sBaseOptions, AwsCdkConstructLibraryOptions, ProjectGlobalOptions {
|
|
8
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtbGlicmFyeS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nkay9pbnRlcmZhY2VzL2NkazhzLWxpYnJhcnktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5pbXBvcnQgeyBQcm9qZWN0R2xvYmFsT3B0aW9ucyB9IGZyb20gJy4vcHJvamVjdC1nbG9iYWwtb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGs4c0Jhc2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jZGs4cy9pbnRlcmZhY2VzL0NkazhzJztcblxuLyoqXG4gKiBDREs4cyBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGs4c0xpYnJhcnlPcHRpb25zXG4gIGV4dGVuZHNcbiAgICBDZGs4c0Jhc2VPcHRpb25zLFxuICAgIEF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxuICAgIFByb2plY3RHbG9iYWxPcHRpb25zIHtcbiAgLy8gRnV0dXJlIENESzhzIExpYnJhcnkgc3BlY2lmaWMgb3B0aW9ucyBjYW4gYmUgYWRkZWQgaGVyZVxufVxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./project-global-options"), exports);
|
|
18
|
+
__exportStar(require("./cdk-app-options"), exports);
|
|
19
|
+
__exportStar(require("./cdk-library-options"), exports);
|
|
20
|
+
__exportStar(require("./cdk8s-app-options"), exports);
|
|
21
|
+
__exportStar(require("./cdk8s-library-options"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2RrL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QztBQUN6QyxvREFBa0M7QUFDbEMsd0RBQXNDO0FBQ3RDLHNEQUFvQztBQUNwQywwREFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2plY3QtZ2xvYmFsLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGstYXBwLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGstbGlicmFyeS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrOHMtYXBwLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGs4cy1saWJyYXJ5LW9wdGlvbnMnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nkay9pbnRlcmZhY2VzL2pzaWktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAncHJvamVuL2xpYi9jZGsnO1xuaW1wb3J0IHsgUHJvamVjdEdsb2JhbE9wdGlvbnMgfSBmcm9tICcuL3Byb2plY3QtZ2xvYmFsLW9wdGlvbnMnO1xuXG4vKipcbiAqIENESyBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKc2lpT3B0aW9ucyBleHRlbmRzIEpzaWlQcm9qZWN0T3B0aW9ucywgUHJvamVjdEdsb2JhbE9wdGlvbnMge1xuICAvLyBGdXR1cmUgQ0RLIExpYnJhcnkgc3BlY2lmaWMgb3B0aW9ucyBjYW4gYmUgYWRkZWQgaGVyZVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global configuration options that apply to all projects
|
|
3
|
+
*/
|
|
4
|
+
export interface ProjectGlobalOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Whether to include Agents component for coding agent documentation
|
|
7
|
+
* @default true
|
|
8
|
+
*/
|
|
9
|
+
readonly agents?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether to include Commitzent component for conventional commits
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
readonly commitzent?: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1nbG9iYWwtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZGsvaW50ZXJmYWNlcy9wcm9qZWN0LWdsb2JhbC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBhcHBseSB0byBhbGwgcHJvamVjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0R2xvYmFsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgQWdlbnRzIGNvbXBvbmVudCBmb3IgY29kaW5nIGFnZW50IGRvY3VtZW50YXRpb25cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIENvbW1pdHplbnQgY29tcG9uZW50IGZvciBjb252ZW50aW9uYWwgY29tbWl0c1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjb21taXR6ZW50PzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { JsiiProject as Jsii } from 'projen/lib/cdk';
|
|
2
|
+
import { Commitzent } from '../components';
|
|
3
|
+
import { JsiiOptions } from './interfaces/jsii-options';
|
|
4
|
+
/**
|
|
5
|
+
* JSII Project
|
|
6
|
+
*
|
|
7
|
+
* @pjid jsii-project
|
|
8
|
+
*/
|
|
9
|
+
export declare class JsiiProject extends Jsii {
|
|
10
|
+
readonly commitzent?: Commitzent;
|
|
11
|
+
constructor(options: JsiiOptions);
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsiiProject = void 0;
|
|
4
|
+
const cdk_1 = require("projen/lib/cdk");
|
|
5
|
+
const common_options_1 = require("../common/common-options");
|
|
6
|
+
/**
|
|
7
|
+
* JSII Project
|
|
8
|
+
*
|
|
9
|
+
* @pjid jsii-project
|
|
10
|
+
*/
|
|
11
|
+
class JsiiProject extends cdk_1.JsiiProject {
|
|
12
|
+
constructor(options) {
|
|
13
|
+
const opts = common_options_1.CommonOptionsConfig.withCommonOptionsDefaults({
|
|
14
|
+
...options,
|
|
15
|
+
});
|
|
16
|
+
super({
|
|
17
|
+
...opts,
|
|
18
|
+
});
|
|
19
|
+
const components = common_options_1.CommonOptionsConfig.withCommonComponents(this, opts);
|
|
20
|
+
this.commitzent = components.commitzent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.JsiiProject = JsiiProject;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay9qc2lpLXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQXFEO0FBQ3JELDZEQUErRDtBQUkvRDs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsaUJBQUk7SUFFbkMsWUFBWSxPQUFvQjtRQUM5QixNQUFNLElBQUksR0FBRyxvQ0FBbUIsQ0FBQyx5QkFBeUIsQ0FBQztZQUN6RCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7U0FDUixDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxvQ0FBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQVpELGtDQVlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNpaVByb2plY3QgYXMgSnNpaSB9IGZyb20gJ3Byb2plbi9saWIvY2RrJztcbmltcG9ydCB7IENvbW1vbk9wdGlvbnNDb25maWcgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ29tbWl0emVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSnNpaU9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvanNpaS1vcHRpb25zJztcblxuLyoqXG4gKiBKU0lJIFByb2plY3RcbiAqXG4gKiBAcGppZCBqc2lpLXByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlQcm9qZWN0IGV4dGVuZHMgSnNpaSB7XG4gIHJlYWRvbmx5IGNvbW1pdHplbnQ/OiBDb21taXR6ZW50O1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKc2lpT3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSBDb21tb25PcHRpb25zQ29uZmlnLndpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRzLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBDb21tb25PcHRpb25zQ29uZmlnLndpdGhDb21tb25Db21wb25lbnRzKHRoaXMsIG9wdHMpO1xuICAgIHRoaXMuY29tbWl0emVudCA9IGNvbXBvbmVudHMuY29tbWl0emVudDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Project } from 'projen';
|
|
2
|
+
import { TypeScriptProjectOptions } from 'projen/lib/typescript';
|
|
3
|
+
import { ProjectGlobalOptions } from '../cdk/interfaces/project-global-options';
|
|
4
|
+
import { Agents } from '../components/agents/agents';
|
|
5
|
+
import { Commitzent } from '../components/commitzent/commitzent';
|
|
6
|
+
/**
|
|
7
|
+
* TypeScript project options that include global project options
|
|
8
|
+
*/
|
|
9
|
+
export interface TypeScriptProjectWithGlobalOptions extends TypeScriptProjectOptions, ProjectGlobalOptions {
|
|
10
|
+
}
|
|
11
|
+
export interface CommonsComponents {
|
|
12
|
+
readonly agents?: Agents;
|
|
13
|
+
readonly commitzent?: Commitzent;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Utility class for configuring common project options with default values
|
|
17
|
+
*/
|
|
18
|
+
export declare class CommonOptionsConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Configures default options only if they are not already defined in the projen options
|
|
21
|
+
* Prettier and ESLint are only enabled for root projects (not subprojects)
|
|
22
|
+
* @param options - Project options that may include existing configurations
|
|
23
|
+
* @returns Final options with default values applied where no previous configuration existed
|
|
24
|
+
*/
|
|
25
|
+
static withCommonOptionsDefaults<T extends TypeScriptProjectOptions>(options: T): T;
|
|
26
|
+
/**
|
|
27
|
+
* Configures common components like VSCode settings and extensions
|
|
28
|
+
* If project has parent, configures VSCode in parent project instead of subproject
|
|
29
|
+
* Commitzent is only added to root projects (not subprojects) unless explicitly requested
|
|
30
|
+
* @param project - The project instance to configure
|
|
31
|
+
* @param options - Project options (any type that has vscode and commitzent properties)
|
|
32
|
+
*/
|
|
33
|
+
static withCommonComponents(project: Project, options: TypeScriptProjectWithGlobalOptions): CommonsComponents;
|
|
34
|
+
/**
|
|
35
|
+
* Default prettier configurations that will always be applied
|
|
36
|
+
*/
|
|
37
|
+
private static readonly DEFAULT_PRETTIER_OPTIONS;
|
|
38
|
+
private static readonly VSCODE_SETTINGS;
|
|
39
|
+
private static readonly VSCODE_EXTENSIONS;
|
|
40
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CommonOptionsConfig = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const javascript_1 = require("projen/lib/javascript");
|
|
7
|
+
const util_1 = require("projen/lib/util");
|
|
8
|
+
const vscode_1 = require("projen/lib/vscode");
|
|
9
|
+
const agents_1 = require("../components/agents/agents");
|
|
10
|
+
const commitzent_1 = require("../components/commitzent/commitzent");
|
|
11
|
+
/**
|
|
12
|
+
* Utility class for configuring common project options with default values
|
|
13
|
+
*/
|
|
14
|
+
class CommonOptionsConfig {
|
|
15
|
+
/**
|
|
16
|
+
* Configures default options only if they are not already defined in the projen options
|
|
17
|
+
* Prettier and ESLint are only enabled for root projects (not subprojects)
|
|
18
|
+
* @param options - Project options that may include existing configurations
|
|
19
|
+
* @returns Final options with default values applied where no previous configuration existed
|
|
20
|
+
*/
|
|
21
|
+
static withCommonOptionsDefaults(options) {
|
|
22
|
+
// Only enable prettier and eslint for root projects (not subprojects) unless explicitly set
|
|
23
|
+
const isSubproject = options.parent != null;
|
|
24
|
+
const prettierDefault = isSubproject ? false : true;
|
|
25
|
+
const eslintDefault = isSubproject ? false : true;
|
|
26
|
+
const commonDefaults = {
|
|
27
|
+
prettier: options.prettier ?? prettierDefault,
|
|
28
|
+
prettierOptions: options.prettierOptions ?? this.DEFAULT_PRETTIER_OPTIONS,
|
|
29
|
+
eslint: options.eslint ?? eslintDefault,
|
|
30
|
+
};
|
|
31
|
+
return (0, util_1.deepMerge)([{}, options, commonDefaults]);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configures common components like VSCode settings and extensions
|
|
35
|
+
* If project has parent, configures VSCode in parent project instead of subproject
|
|
36
|
+
* Commitzent is only added to root projects (not subprojects) unless explicitly requested
|
|
37
|
+
* @param project - The project instance to configure
|
|
38
|
+
* @param options - Project options (any type that has vscode and commitzent properties)
|
|
39
|
+
*/
|
|
40
|
+
static withCommonComponents(project, options) {
|
|
41
|
+
const isSubproject = project.parent != null;
|
|
42
|
+
// Determine target project: use parent if it's a subproject, otherwise use current project
|
|
43
|
+
const targetProject = project.parent ?? project;
|
|
44
|
+
if (options.vscode !== false) {
|
|
45
|
+
// Try to find existing VsCode component by type in target project
|
|
46
|
+
let vscode = targetProject.node.children.find((child) => child instanceof vscode_1.VsCode);
|
|
47
|
+
if (!vscode) {
|
|
48
|
+
vscode = new vscode_1.VsCode(targetProject);
|
|
49
|
+
}
|
|
50
|
+
vscode.settings.addSettings(this.VSCODE_SETTINGS);
|
|
51
|
+
vscode.extensions.addRecommendations(...this.VSCODE_EXTENSIONS);
|
|
52
|
+
}
|
|
53
|
+
// Add Agents component (enabled by default for all projects)
|
|
54
|
+
let agents;
|
|
55
|
+
if (options.agents !== false) {
|
|
56
|
+
agents = targetProject.node.children.find((child) => child instanceof agents_1.Agents);
|
|
57
|
+
if (!agents || !isSubproject) {
|
|
58
|
+
agents = new agents_1.Agents(targetProject, 'agents');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
let commitzent;
|
|
62
|
+
if (options.commitzent !== false) {
|
|
63
|
+
commitzent = targetProject.node.children.find((child) => child instanceof commitzent_1.Commitzent);
|
|
64
|
+
if (!commitzent) {
|
|
65
|
+
commitzent = new commitzent_1.Commitzent(targetProject, 'commitzent');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (isSubproject && options.commitzent !== false) {
|
|
69
|
+
commitzent?.addScope({ name: project.name });
|
|
70
|
+
}
|
|
71
|
+
return { agents, commitzent };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.CommonOptionsConfig = CommonOptionsConfig;
|
|
75
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
76
|
+
CommonOptionsConfig[_a] = { fqn: "@jttc/projen-project-types.CommonOptionsConfig", version: "1.0.0-beta.10" };
|
|
77
|
+
/**
|
|
78
|
+
* Default prettier configurations that will always be applied
|
|
79
|
+
*/
|
|
80
|
+
CommonOptionsConfig.DEFAULT_PRETTIER_OPTIONS = {
|
|
81
|
+
settings: {
|
|
82
|
+
trailingComma: javascript_1.TrailingComma.ALL,
|
|
83
|
+
singleQuote: true,
|
|
84
|
+
bracketSpacing: true,
|
|
85
|
+
semi: true,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
CommonOptionsConfig.VSCODE_SETTINGS = {
|
|
89
|
+
'editor.formatOnSave': true,
|
|
90
|
+
'editor.indentSize': 2,
|
|
91
|
+
'editor.defaultFormatter': 'esbenp.prettier-vscode',
|
|
92
|
+
'eslint.nodePath': './node_modules',
|
|
93
|
+
'eslint.useFlatConfig': false,
|
|
94
|
+
};
|
|
95
|
+
CommonOptionsConfig.VSCODE_EXTENSIONS = [
|
|
96
|
+
'amazonwebservices.aws-toolkit-vscode',
|
|
97
|
+
'DanielThielking.aws-cloudformation-yaml',
|
|
98
|
+
'ms-azuretools.vscode-containers',
|
|
99
|
+
'dbaeumer.vscode-eslint',
|
|
100
|
+
'mhutchie.git-graph',
|
|
101
|
+
'github.vscode-github-actions',
|
|
102
|
+
'GitHub.vscode-pull-request-github',
|
|
103
|
+
'eamodio.gitlens',
|
|
104
|
+
'esbenp.prettier-vscode',
|
|
105
|
+
'spmeesseman.vscode-taskexplorer',
|
|
106
|
+
'wayou.vscode-todo-highlight',
|
|
107
|
+
'vscode-icons-team.vscode-icons',
|
|
108
|
+
'ms-vscode-remote.vscode-remote-extensionpack',
|
|
109
|
+
];
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL2NvbW1vbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esc0RBQXVFO0FBRXZFLDBDQUE0QztBQUM1Qyw4Q0FBMkM7QUFFM0Msd0RBQXFEO0FBQ3JELG9FQUFpRTtBQVlqRTs7R0FFRztBQUNILE1BQWEsbUJBQW1CO0lBQzlCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLHlCQUF5QixDQUM5QixPQUFVO1FBRVYsNEZBQTRGO1FBQzVGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVsRCxNQUFNLGNBQWMsR0FBRztZQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxlQUFlO1lBQzdDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyx3QkFBd0I7WUFDekUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksYUFBYTtTQUN4QyxDQUFDO1FBRUYsT0FBTyxJQUFBLGdCQUFTLEVBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsT0FBZ0IsRUFDaEIsT0FBMkM7UUFFM0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFFNUMsMkZBQTJGO1FBQzNGLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO1FBRWhELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM3QixrRUFBa0U7WUFDbEUsSUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMzQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGVBQU0sQ0FDekIsQ0FBQztZQUVaLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCxJQUFJLE1BQTBCLENBQUM7UUFDL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBTSxDQUN6QixDQUFDO1lBRVosSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM3QixNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxVQUFrQyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUMzQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLHVCQUFVLENBQ3pCLENBQUM7WUFFaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoQixVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksWUFBWSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNoQyxDQUFDOztBQWxGSCxrREF1SEM7OztBQW5DQzs7R0FFRztBQUNxQiw0Q0FBd0IsR0FBb0I7SUFDbEUsUUFBUSxFQUFFO1FBQ1IsYUFBYSxFQUFFLDBCQUFhLENBQUMsR0FBRztRQUNoQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixjQUFjLEVBQUUsSUFBSTtRQUNwQixJQUFJLEVBQUUsSUFBSTtLQUNYO0NBQ0YsQ0FBQztBQUVzQixtQ0FBZSxHQUFHO0lBQ3hDLHFCQUFxQixFQUFFLElBQUk7SUFDM0IsbUJBQW1CLEVBQUUsQ0FBQztJQUN0Qix5QkFBeUIsRUFBRSx3QkFBd0I7SUFDbkQsaUJBQWlCLEVBQUUsZ0JBQWdCO0lBQ25DLHNCQUFzQixFQUFFLEtBQUs7Q0FDOUIsQ0FBQztBQUVzQixxQ0FBaUIsR0FBRztJQUMxQyxzQ0FBc0M7SUFDdEMseUNBQXlDO0lBQ3pDLGlDQUFpQztJQUNqQyx3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLDhCQUE4QjtJQUM5QixtQ0FBbUM7SUFDbkMsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QixpQ0FBaUM7SUFDakMsNkJBQTZCO0lBQzdCLGdDQUFnQztJQUNoQyw4Q0FBOEM7Q0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgUHJldHRpZXJPcHRpb25zLCBUcmFpbGluZ0NvbW1hIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICdwcm9qZW4vbGliL3V0aWwnO1xuaW1wb3J0IHsgVnNDb2RlIH0gZnJvbSAncHJvamVuL2xpYi92c2NvZGUnO1xuaW1wb3J0IHsgUHJvamVjdEdsb2JhbE9wdGlvbnMgfSBmcm9tICcuLi9jZGsvaW50ZXJmYWNlcy9wcm9qZWN0LWdsb2JhbC1vcHRpb25zJztcbmltcG9ydCB7IEFnZW50cyB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWdlbnRzL2FnZW50cyc7XG5pbXBvcnQgeyBDb21taXR6ZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21taXR6ZW50L2NvbW1pdHplbnQnO1xuXG4vKipcbiAqIFR5cGVTY3JpcHQgcHJvamVjdCBvcHRpb25zIHRoYXQgaW5jbHVkZSBnbG9iYWwgcHJvamVjdCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdFByb2plY3RXaXRoR2xvYmFsT3B0aW9uc1xuICBleHRlbmRzIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucywgUHJvamVjdEdsb2JhbE9wdGlvbnMge31cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25zQ29tcG9uZW50cyB7XG4gIHJlYWRvbmx5IGFnZW50cz86IEFnZW50cztcbiAgcmVhZG9ubHkgY29tbWl0emVudD86IENvbW1pdHplbnQ7XG59XG4vKipcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGNvbmZpZ3VyaW5nIGNvbW1vbiBwcm9qZWN0IG9wdGlvbnMgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICovXG5leHBvcnQgY2xhc3MgQ29tbW9uT3B0aW9uc0NvbmZpZyB7XG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGRlZmF1bHQgb3B0aW9ucyBvbmx5IGlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IGRlZmluZWQgaW4gdGhlIHByb2plbiBvcHRpb25zXG4gICAqIFByZXR0aWVyIGFuZCBFU0xpbnQgYXJlIG9ubHkgZW5hYmxlZCBmb3Igcm9vdCBwcm9qZWN0cyAobm90IHN1YnByb2plY3RzKVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFByb2plY3Qgb3B0aW9ucyB0aGF0IG1heSBpbmNsdWRlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zXG4gICAqIEByZXR1cm5zIEZpbmFsIG9wdGlvbnMgd2l0aCBkZWZhdWx0IHZhbHVlcyBhcHBsaWVkIHdoZXJlIG5vIHByZXZpb3VzIGNvbmZpZ3VyYXRpb24gZXhpc3RlZFxuICAgKi9cbiAgc3RhdGljIHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHM8VCBleHRlbmRzIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucz4oXG4gICAgb3B0aW9uczogVCxcbiAgKTogVCB7XG4gICAgLy8gT25seSBlbmFibGUgcHJldHRpZXIgYW5kIGVzbGludCBmb3Igcm9vdCBwcm9qZWN0cyAobm90IHN1YnByb2plY3RzKSB1bmxlc3MgZXhwbGljaXRseSBzZXRcbiAgICBjb25zdCBpc1N1YnByb2plY3QgPSBvcHRpb25zLnBhcmVudCAhPSBudWxsO1xuICAgIGNvbnN0IHByZXR0aWVyRGVmYXVsdCA9IGlzU3VicHJvamVjdCA/IGZhbHNlIDogdHJ1ZTtcbiAgICBjb25zdCBlc2xpbnREZWZhdWx0ID0gaXNTdWJwcm9qZWN0ID8gZmFsc2UgOiB0cnVlO1xuXG4gICAgY29uc3QgY29tbW9uRGVmYXVsdHMgPSB7XG4gICAgICBwcmV0dGllcjogb3B0aW9ucy5wcmV0dGllciA/PyBwcmV0dGllckRlZmF1bHQsXG4gICAgICBwcmV0dGllck9wdGlvbnM6IG9wdGlvbnMucHJldHRpZXJPcHRpb25zID8/IHRoaXMuREVGQVVMVF9QUkVUVElFUl9PUFRJT05TLFxuICAgICAgZXNsaW50OiBvcHRpb25zLmVzbGludCA/PyBlc2xpbnREZWZhdWx0LFxuICAgIH07XG5cbiAgICByZXR1cm4gZGVlcE1lcmdlKFt7fSwgb3B0aW9ucywgY29tbW9uRGVmYXVsdHNdKSBhcyBUO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgY29tbW9uIGNvbXBvbmVudHMgbGlrZSBWU0NvZGUgc2V0dGluZ3MgYW5kIGV4dGVuc2lvbnNcbiAgICogSWYgcHJvamVjdCBoYXMgcGFyZW50LCBjb25maWd1cmVzIFZTQ29kZSBpbiBwYXJlbnQgcHJvamVjdCBpbnN0ZWFkIG9mIHN1YnByb2plY3RcbiAgICogQ29tbWl0emVudCBpcyBvbmx5IGFkZGVkIHRvIHJvb3QgcHJvamVjdHMgKG5vdCBzdWJwcm9qZWN0cykgdW5sZXNzIGV4cGxpY2l0bHkgcmVxdWVzdGVkXG4gICAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIHByb2plY3QgaW5zdGFuY2UgdG8gY29uZmlndXJlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gUHJvamVjdCBvcHRpb25zIChhbnkgdHlwZSB0aGF0IGhhcyB2c2NvZGUgYW5kIGNvbW1pdHplbnQgcHJvcGVydGllcylcbiAgICovXG4gIHN0YXRpYyB3aXRoQ29tbW9uQ29tcG9uZW50cyhcbiAgICBwcm9qZWN0OiBQcm9qZWN0LFxuICAgIG9wdGlvbnM6IFR5cGVTY3JpcHRQcm9qZWN0V2l0aEdsb2JhbE9wdGlvbnMsXG4gICk6IENvbW1vbnNDb21wb25lbnRzIHtcbiAgICBjb25zdCBpc1N1YnByb2plY3QgPSBwcm9qZWN0LnBhcmVudCAhPSBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHRhcmdldCBwcm9qZWN0OiB1c2UgcGFyZW50IGlmIGl0J3MgYSBzdWJwcm9qZWN0LCBvdGhlcndpc2UgdXNlIGN1cnJlbnQgcHJvamVjdFxuICAgIGNvbnN0IHRhcmdldFByb2plY3QgPSBwcm9qZWN0LnBhcmVudCA/PyBwcm9qZWN0O1xuXG4gICAgaWYgKG9wdGlvbnMudnNjb2RlICE9PSBmYWxzZSkge1xuICAgICAgLy8gVHJ5IHRvIGZpbmQgZXhpc3RpbmcgVnNDb2RlIGNvbXBvbmVudCBieSB0eXBlIGluIHRhcmdldCBwcm9qZWN0XG4gICAgICBsZXQgdnNjb2RlID0gdGFyZ2V0UHJvamVjdC5ub2RlLmNoaWxkcmVuLmZpbmQoXG4gICAgICAgIChjaGlsZCkgPT4gY2hpbGQgaW5zdGFuY2VvZiBWc0NvZGUsXG4gICAgICApIGFzIFZzQ29kZTtcblxuICAgICAgaWYgKCF2c2NvZGUpIHtcbiAgICAgICAgdnNjb2RlID0gbmV3IFZzQ29kZSh0YXJnZXRQcm9qZWN0KTtcbiAgICAgIH1cblxuICAgICAgdnNjb2RlLnNldHRpbmdzLmFkZFNldHRpbmdzKHRoaXMuVlNDT0RFX1NFVFRJTkdTKTtcbiAgICAgIHZzY29kZS5leHRlbnNpb25zLmFkZFJlY29tbWVuZGF0aW9ucyguLi50aGlzLlZTQ09ERV9FWFRFTlNJT05TKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgQWdlbnRzIGNvbXBvbmVudCAoZW5hYmxlZCBieSBkZWZhdWx0IGZvciBhbGwgcHJvamVjdHMpXG4gICAgbGV0IGFnZW50czogQWdlbnRzIHwgdW5kZWZpbmVkO1xuICAgIGlmIChvcHRpb25zLmFnZW50cyAhPT0gZmFsc2UpIHtcbiAgICAgIGFnZW50cyA9IHRhcmdldFByb2plY3Qubm9kZS5jaGlsZHJlbi5maW5kKFxuICAgICAgICAoY2hpbGQpID0+IGNoaWxkIGluc3RhbmNlb2YgQWdlbnRzLFxuICAgICAgKSBhcyBBZ2VudHM7XG5cbiAgICAgIGlmICghYWdlbnRzIHx8ICFpc1N1YnByb2plY3QpIHtcbiAgICAgICAgYWdlbnRzID0gbmV3IEFnZW50cyh0YXJnZXRQcm9qZWN0LCAnYWdlbnRzJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGNvbW1pdHplbnQ6IENvbW1pdHplbnQgfCB1bmRlZmluZWQ7XG4gICAgaWYgKG9wdGlvbnMuY29tbWl0emVudCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbW1pdHplbnQgPSB0YXJnZXRQcm9qZWN0Lm5vZGUuY2hpbGRyZW4uZmluZChcbiAgICAgICAgKGNoaWxkKSA9PiBjaGlsZCBpbnN0YW5jZW9mIENvbW1pdHplbnQsXG4gICAgICApIGFzIENvbW1pdHplbnQ7XG5cbiAgICAgIGlmICghY29tbWl0emVudCkge1xuICAgICAgICBjb21taXR6ZW50ID0gbmV3IENvbW1pdHplbnQodGFyZ2V0UHJvamVjdCwgJ2NvbW1pdHplbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNTdWJwcm9qZWN0ICYmIG9wdGlvbnMuY29tbWl0emVudCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbW1pdHplbnQ/LmFkZFNjb3BlKHsgbmFtZTogcHJvamVjdC5uYW1lIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7IGFnZW50cywgY29tbWl0emVudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcHJldHRpZXIgY29uZmlndXJhdGlvbnMgdGhhdCB3aWxsIGFsd2F5cyBiZSBhcHBsaWVkXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1BSRVRUSUVSX09QVElPTlM6IFByZXR0aWVyT3B0aW9ucyA9IHtcbiAgICBzZXR0aW5nczoge1xuICAgICAgdHJhaWxpbmdDb21tYTogVHJhaWxpbmdDb21tYS5BTEwsXG4gICAgICBzaW5nbGVRdW90ZTogdHJ1ZSxcbiAgICAgIGJyYWNrZXRTcGFjaW5nOiB0cnVlLFxuICAgICAgc2VtaTogdHJ1ZSxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFZTQ09ERV9TRVRUSU5HUyA9IHtcbiAgICAnZWRpdG9yLmZvcm1hdE9uU2F2ZSc6IHRydWUsXG4gICAgJ2VkaXRvci5pbmRlbnRTaXplJzogMixcbiAgICAnZWRpdG9yLmRlZmF1bHRGb3JtYXR0ZXInOiAnZXNiZW5wLnByZXR0aWVyLXZzY29kZScsXG4gICAgJ2VzbGludC5ub2RlUGF0aCc6ICcuL25vZGVfbW9kdWxlcycsXG4gICAgJ2VzbGludC51c2VGbGF0Q29uZmlnJzogZmFsc2UsXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVlNDT0RFX0VYVEVOU0lPTlMgPSBbXG4gICAgJ2FtYXpvbndlYnNlcnZpY2VzLmF3cy10b29sa2l0LXZzY29kZScsXG4gICAgJ0RhbmllbFRoaWVsa2luZy5hd3MtY2xvdWRmb3JtYXRpb24teWFtbCcsXG4gICAgJ21zLWF6dXJldG9vbHMudnNjb2RlLWNvbnRhaW5lcnMnLFxuICAgICdkYmFldW1lci52c2NvZGUtZXNsaW50JyxcbiAgICAnbWh1dGNoaWUuZ2l0LWdyYXBoJyxcbiAgICAnZ2l0aHViLnZzY29kZS1naXRodWItYWN0aW9ucycsXG4gICAgJ0dpdEh1Yi52c2NvZGUtcHVsbC1yZXF1ZXN0LWdpdGh1YicsXG4gICAgJ2VhbW9kaW8uZ2l0bGVucycsXG4gICAgJ2VzYmVucC5wcmV0dGllci12c2NvZGUnLFxuICAgICdzcG1lZXNzZW1hbi52c2NvZGUtdGFza2V4cGxvcmVyJyxcbiAgICAnd2F5b3UudnNjb2RlLXRvZG8taGlnaGxpZ2h0JyxcbiAgICAndnNjb2RlLWljb25zLXRlYW0udnNjb2RlLWljb25zJyxcbiAgICAnbXMtdnNjb2RlLXJlbW90ZS52c2NvZGUtcmVtb3RlLWV4dGVuc2lvbnBhY2snLFxuICBdO1xufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component, Project } from 'projen';
|
|
2
|
+
export interface AgentsOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Custom content to include in the AGENTS.md file
|
|
5
|
+
*/
|
|
6
|
+
readonly customContent?: string[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Component that adds an AGENTS.md file to explain how the repository works
|
|
10
|
+
* for coding agents like GitHub Copilot
|
|
11
|
+
*/
|
|
12
|
+
export declare class Agents extends Component {
|
|
13
|
+
constructor(project: Project, id: string, options?: AgentsOptions);
|
|
14
|
+
private detectProjectType;
|
|
15
|
+
private generateAgentsContent;
|
|
16
|
+
private getProjectSpecificContent;
|
|
17
|
+
private getProjectCommands;
|
|
18
|
+
private getProjectStructure;
|
|
19
|
+
private getProjectTypeSpecificSections;
|
|
20
|
+
private getProjectSpecificResources;
|
|
21
|
+
}
|