@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
package/AGENTS.md
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Coding Agents Guide
|
|
2
|
+
|
|
3
|
+
This file contains essential information about how this repository works for coding agents like GitHub Copilot.
|
|
4
|
+
|
|
5
|
+
## Repository Overview
|
|
6
|
+
|
|
7
|
+
This is the **projen-project-types** project, which uses [Projen](https://projen.io/) for project configuration management.
|
|
8
|
+
|
|
9
|
+
## What is Projen?
|
|
10
|
+
|
|
11
|
+
Projen is a tool that allows managing project configuration through TypeScript code instead of static configuration files.
|
|
12
|
+
|
|
13
|
+
### Key Features:
|
|
14
|
+
- **Configuration as Code**: Everything is defined in `.projenrc.ts`
|
|
15
|
+
- **Automatic Management**: Automatically regenerates configuration files
|
|
16
|
+
- **Extensible**: Allows creating reusable components
|
|
17
|
+
- **Consistency**: Keeps configuration synchronized
|
|
18
|
+
|
|
19
|
+
## TypeScript Project
|
|
20
|
+
|
|
21
|
+
This is a TypeScript project managed by Projen.
|
|
22
|
+
|
|
23
|
+
### TypeScript Features:
|
|
24
|
+
- **Type Safety**: Compile-time type checking
|
|
25
|
+
- **Modern JavaScript**: Latest ECMAScript features
|
|
26
|
+
- **Build Tools**: Automated compilation and bundling
|
|
27
|
+
- **Testing**: Comprehensive test framework integration
|
|
28
|
+
|
|
29
|
+
## Important Commands
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Regenerate configuration files from .projenrc.ts
|
|
33
|
+
npx projen
|
|
34
|
+
|
|
35
|
+
# Build the project
|
|
36
|
+
npx projen build
|
|
37
|
+
|
|
38
|
+
# Run tests
|
|
39
|
+
npx projen test
|
|
40
|
+
|
|
41
|
+
# Run tests in watch mode
|
|
42
|
+
npx projen test:watch
|
|
43
|
+
|
|
44
|
+
# Lint the code
|
|
45
|
+
npx projen eslint
|
|
46
|
+
|
|
47
|
+
# Package the project
|
|
48
|
+
npx projen package
|
|
49
|
+
|
|
50
|
+
# Clean generated files
|
|
51
|
+
npx projen clobber
|
|
52
|
+
|
|
53
|
+
# Upgrade dependencies
|
|
54
|
+
npx projen upgrade
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Dependency Management
|
|
59
|
+
|
|
60
|
+
### Adding Dependencies:
|
|
61
|
+
```typescript
|
|
62
|
+
// In the project or component constructor
|
|
63
|
+
project.deps.addDependency("package-name", DependencyType.BUILD);
|
|
64
|
+
project.deps.addDependency("package-name", DependencyType.RUNTIME);
|
|
65
|
+
project.deps.addDependency("package-name", DependencyType.PEER);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Dependency Types:
|
|
69
|
+
- `RUNTIME`: Runtime dependencies (dependencies)
|
|
70
|
+
- `BUILD`: Build dependencies (devDependencies)
|
|
71
|
+
- `PEER`: Peer dependencies (peerDependencies)
|
|
72
|
+
|
|
73
|
+
## Project Structure
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
src/ # Source code
|
|
77
|
+
├── index.ts # Main entry point
|
|
78
|
+
└── lib/ # Library code
|
|
79
|
+
|
|
80
|
+
test/ # Unit tests
|
|
81
|
+
lib/ # Compiled TypeScript (generated)
|
|
82
|
+
dist/ # Distribution files (generated)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## Common Configuration
|
|
87
|
+
|
|
88
|
+
- **CommonOptionsConfig**: Manages default configurations
|
|
89
|
+
- **Prettier**: Automatic code formatting
|
|
90
|
+
- **ESLint**: Automatic linting
|
|
91
|
+
- **VSCode**: Configuration and recommended extensions
|
|
92
|
+
- **Commitzent**: Conventional commits
|
|
93
|
+
- **Agents**: This documentation for coding agents
|
|
94
|
+
|
|
95
|
+
## Important Files
|
|
96
|
+
|
|
97
|
+
- `.projenrc.ts`: Main project configuration
|
|
98
|
+
- `package.json`: Generated automatically by Projen
|
|
99
|
+
- `tsconfig.json`: TypeScript configuration
|
|
100
|
+
- `.gitignore`: Files ignored by Git
|
|
101
|
+
|
|
102
|
+
## Best Practices
|
|
103
|
+
|
|
104
|
+
1. **Never edit generated files**: Always modify the source in `.projenrc.ts`
|
|
105
|
+
2. **Run `npx projen`** after configuration changes
|
|
106
|
+
3. **Use components** for reusable functionality
|
|
107
|
+
4. **Follow naming conventions** established in the project
|
|
108
|
+
5. **Document changes** in tests and README
|
|
109
|
+
|
|
110
|
+
## Troubleshooting
|
|
111
|
+
|
|
112
|
+
### Error: "File is read-only"
|
|
113
|
+
- Files generated by Projen are read-only
|
|
114
|
+
- Modify the configuration in `.projenrc.ts` instead
|
|
115
|
+
|
|
116
|
+
### Dependencies not found
|
|
117
|
+
- Run `npx projen` to install dependencies
|
|
118
|
+
- Verify dependencies are in `.projenrc.ts`
|
|
119
|
+
|
|
120
|
+
### Tests fail
|
|
121
|
+
- Run `npx projen build` to compile changes
|
|
122
|
+
- Verify snapshots are updated
|
|
123
|
+
|
|
124
|
+
## Useful Resources
|
|
125
|
+
|
|
126
|
+
- [Projen Documentation](https://projen.io/)
|
|
127
|
+
- [Projen API Reference](https://github.com/projen/projen/blob/main/API.md)
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
> This file is automatically generated by the `Agents` component.
|
|
132
|
+
> To modify it, edit the component in `src/components/agents/agents.ts`.
|