@nikovirtala/projen-constructs 0.5.2 → 0.5.4

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/.jsii CHANGED
@@ -4196,7 +4196,7 @@
4196
4196
  },
4197
4197
  "name": "@nikovirtala/projen-constructs",
4198
4198
  "readme": {
4199
- "markdown": "# @nikovirtala/projen-constructs\n\nOpinionated projen project types that scaffold TypeScript, JSII and AWS CDK repositories with one shared config.\n\n[![npm version badge, latest release on npm](https://img.shields.io/npm/v/@nikovirtala/projen-constructs?label=npm)](https://www.npmjs.com/package/@nikovirtala/projen-constructs)\n[![build status badge from the GitHub Actions build workflow](https://img.shields.io/github/actions/workflow/status/nikovirtala/projen-constructs/build.yml?branch=main&label=build)](https://github.com/nikovirtala/projen-constructs/actions/workflows/build.yml)\n[![license badge, Apache-2.0](https://img.shields.io/npm/l/@nikovirtala/projen-constructs?label=license)](./LICENSE)\n[![supported Node.js version badge, requires Node.js 26.13.0 or newer](https://img.shields.io/badge/node-%3E%3D26.13.0-informational?label=node)](https://nodejs.org)\n[![projen peer dependency version badge, requires projen 0.104.23 or newer](https://img.shields.io/badge/projen-%5E0.104.23-informational?label=projen)](https://projen.io)\n\n## Why this exists\n\nProjen gives you code-first project configuration, but wiring up a consistent setup across many\nTypeScript, JSII and AWS CDK repositories still means repeating the same choices. This library\npackages those choices into ready-made project types and reusable components, so every repository\nyou generate shares the same package manager, Node.js and TypeScript versions, testing, linting and\nrelease tooling.\n\nIt is for anyone in the projen and AWS CDK community who maintains more than one repository and wants\nthem to behave the same way without hand-copying configuration between them.\n\n## When not to use this\n\nReach for plain projen instead when:\n\n- you want unopinionated projen defaults and prefer to make each tooling choice yourself\n- your setup is not pnpm-based or cannot run Node.js 26\n- you build in languages beyond TypeScript, JSII and AWS CDK\n\n## Status and supported versions\n\nStability: **stable**. This library requires `projen` ^0.104.23, pnpm 12, and Node.js >= 26.13.0.\nThese values are maintained in `src/versions.json` and the project configuration; the numbers quoted\nacross this documentation track those sources.\n\n## Documentation\n\n| Guide | What it covers |\n| --- | --- |\n| [Configuration](./docs/configuration.md) | Standard defaults, pnpm settings, the TypeScript configs, native TypeScript, and how to customize any option |\n| [Components](./docs/components.md) | Reference for every component: Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack, LambdaFunctionConstructGenerator, Bundler, and ProjectGenerator |\n| [Migration](./docs/migration.md) | Moving from the deprecated standalone packages, including the name mapping and behaviour changes |\n| [Development](./docs/development.md) | Development commands and the build process diagram |\n| [API reference](./docs/api/index.html) | Generated TypeDoc API documentation |\n\nQuick links: [Quick start](#quick-start) · [Usage](#usage) · [Features](#features).\n\n## Quick start\n\nInstall the library alongside its `projen` and `constructs` peers:\n\n```bash\npnpm add -D @nikovirtala/projen-constructs projen constructs\n```\n\nCreate a `.projenrc.ts` that defines an AWS CDK construct library and synthesizes it:\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/your-org/my-cdk-construct.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\nThen run synthesis:\n\n```bash\npnpm dlx projen\n```\n\n**Expected output**: projen reads `.projenrc.ts` and writes the generated project files into the\nworking directory: `package.json`, `tsconfig.json`, `pnpm-workspace.yaml`, the GitHub Actions\nworkflows, the Vitest and Biome configuration, `mise.toml`, and the source and test scaffolding for\nyour construct library. Re-running the command after you edit `.projenrc.ts` updates those files in\nplace.\n\nTo start a project from scratch without writing `.projenrc.ts` yourself:\n\n```bash\npnpm dlx projen new --from @nikovirtala/projen-constructs aws_cdk_construct_library\n```\n\n## Features\n\n- **Standard configuration**: opinionated defaults for author, release branch, package manager,\n Node.js, TypeScript, and tooling\n- **Automatic project type discovery**: generates the `ProjectType` enum from projen's JSII manifest\n (<!-- generated:project-type-count-start -->21<!-- generated:project-type-count-end --> project types)\n- **Component system**: reusable components (Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack,\n Lambda bundling)\n- **Code generation**: `ProjectGenerator` creates project classes with standard configuration\n- **ES modules**: TypeScript and CDK app projects use ES modules (JSII uses CommonJS)\n- **Code quality**: Biome for formatting and linting\n- **Testing**: Vitest with coverage\n- **Auto-merge**: enabled with auto-approve\n- **VSCode**: recommended extensions and settings\n- **mise**: Node version management\n\n## Usage\n\nEach project type applies the standard configuration and the shared components. See\n[Configuration](./docs/configuration.md) for the defaults and how to override them, and\n[Components](./docs/components.md) for the component reference.\n\n### AWS CDK construct library project\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-construct.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\n### AWS CDK TypeScript app project\n\n```typescript\nimport { AwsCdkTypeScriptAppProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkTypeScriptAppProject({\n name: \"my-cdk-app\",\n repository: \"https://github.com/nikovirtala/my-cdk-app.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\n### JSII project\n\n```typescript\nimport { JsiiProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new JsiiProject({\n name: \"my-jsii-project\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/nikovirtala/my-jsii-project.git\",\n});\n\nproject.synth();\n```\n\n### TypeScript project\n\n```typescript\nimport { TypeScriptProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new TypeScriptProject({\n name: \"my-typescript-project\",\n repository: \"https://github.com/nikovirtala/my-typescript-project.git\",\n});\n\nproject.synth();\n```\n\n## Contributing\n\nSee [Development](./docs/development.md) for the commands and the build process. Configuration\nchanges belong in `.projenrc.ts`, never in the generated files.\n\n## License\n\nApache-2.0. See [LICENSE](./LICENSE).\n"
4199
+ "markdown": "# @nikovirtala/projen-constructs\n\nOpinionated projen project types that scaffold TypeScript, JSII and AWS CDK repositories with one shared config.\n\n[![npm version badge, latest release on npm](https://img.shields.io/npm/v/@nikovirtala/projen-constructs?label=npm)](https://www.npmjs.com/package/@nikovirtala/projen-constructs)\n[![build status badge from the GitHub Actions build workflow](https://img.shields.io/github/actions/workflow/status/nikovirtala/projen-constructs/build.yml?branch=main&label=build)](https://github.com/nikovirtala/projen-constructs/actions/workflows/build.yml)\n[![license badge, Apache-2.0](https://img.shields.io/npm/l/@nikovirtala/projen-constructs?label=license)](./LICENSE)\n[![supported Node.js version badge, requires Node.js 26.13.0 or newer](https://img.shields.io/badge/node-%3E%3D26.13.0-informational?label=node)](https://nodejs.org)\n[![projen peer dependency version badge, requires projen 0.104.23 or newer](https://img.shields.io/badge/projen-%5E0.104.23-informational?label=projen)](https://projen.io)\n\n## Why this exists\n\nProjen gives you code-first project configuration, but wiring up a consistent setup across many\nTypeScript, JSII and AWS CDK repositories still means repeating the same choices. This library\npackages those choices into ready-made project types and reusable components, so every repository\nyou generate shares the same package manager, Node.js and TypeScript versions, testing, linting and\nrelease tooling.\n\nIt is for anyone in the projen and AWS CDK community who maintains more than one repository and wants\nthem to behave the same way without hand-copying configuration between them.\n\n## When not to use this\n\nReach for plain projen instead when:\n\n- you want unopinionated projen defaults and prefer to make each tooling choice yourself\n- your setup is not pnpm-based or cannot run Node.js 26\n- you build in languages beyond TypeScript, JSII and AWS CDK\n\n## Status and supported versions\n\nStability: **stable**. This library requires `projen` ^0.104.23, pnpm 12, and Node.js >= 26.13.0.\nThese values are maintained in `src/versions.json` and the project configuration; the numbers quoted\nacross this documentation track those sources.\n\n## Documentation\n\n| Guide | What it covers |\n| --- | --- |\n| [Configuration](./docs/configuration.md) | Standard defaults, pnpm settings, the TypeScript configs, native TypeScript, and how to customize any option |\n| [Components](./docs/components.md) | Reference for every component: Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack, LambdaFunctionConstructGenerator, Bundler, and ProjectGenerator |\n| [Migration](./docs/migration.md) | Moving from the deprecated standalone packages, including the name mapping and behaviour changes |\n| [Development](./docs/development.md) | Development commands and the build process diagram |\n| [API reference](./docs/api/index.html) | Generated TypeDoc API documentation |\n\nQuick links: [Quick start](#quick-start) · [Usage](#usage) · [Features](#features).\n\n## Quick start\n\nTo start a new project from scratch, run `projen new --from` in an empty directory. It installs the\nlibrary and writes a ready-to-use `.projenrc.ts` and the full project for you, with no manual setup:\n\n```bash\npnpm dlx projen new --from @nikovirtala/projen-constructs aws_cdk_construct_library\n```\n\n**Expected output**: projen installs `@nikovirtala/projen-constructs` and its peers, writes a\n`.projenrc.ts` that defines the project, and synthesizes the generated files into the directory:\n`package.json`, `tsconfig.json`, `pnpm-workspace.yaml`, the GitHub Actions workflows, the Vitest and\nBiome configuration, `mise.toml`, and the source and test scaffolding for your construct library.\n\nPass a different project type to scaffold one of the others this library provides:\n\n| Project type | `projen new --from` argument |\n| --- | --- |\n| AWS CDK construct library | `aws_cdk_construct_library` |\n| AWS CDK TypeScript app | `aws_cdk_type_script_app` |\n| JSII | `jsii_project` |\n| TypeScript | `type_script_project` |\n\n### Adding it to an existing project\n\nIf you already have a `.projenrc.ts`, install the library alongside its `projen` and `constructs`\npeers instead:\n\n```bash\npnpm add -D @nikovirtala/projen-constructs projen constructs\n```\n\nThen define a project in `.projenrc.ts`:\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/your-org/my-cdk-construct.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\nRun synthesis to write or update the generated files:\n\n```bash\npnpm dlx projen\n```\n\nRe-running `projen` after you edit `.projenrc.ts` updates those files in place.\n\n## Features\n\n- **Standard configuration**: opinionated defaults for author, release branch, package manager,\n Node.js, TypeScript, and tooling\n- **Automatic project type discovery**: generates the `ProjectType` enum from projen's JSII manifest\n (<!-- generated:project-type-count-start -->21<!-- generated:project-type-count-end --> project types)\n- **Component system**: reusable components (Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack,\n Lambda bundling)\n- **Code generation**: `ProjectGenerator` creates project classes with standard configuration\n- **ES modules**: TypeScript and CDK app projects use ES modules (JSII uses CommonJS)\n- **Code quality**: Biome for formatting and linting\n- **Testing**: Vitest with coverage\n- **Auto-merge**: enabled with auto-approve\n- **VSCode**: recommended extensions and settings\n- **mise**: Node version management\n\n## Usage\n\nEach project type applies the standard configuration and the shared components. See\n[Configuration](./docs/configuration.md) for the defaults and how to override them, and\n[Components](./docs/components.md) for the component reference.\n\n### AWS CDK construct library project\n\n```typescript\nimport { AwsCdkConstructLibraryProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkConstructLibraryProject({\n name: \"my-cdk-construct\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/nikovirtala/my-cdk-construct.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\n### AWS CDK TypeScript app project\n\n```typescript\nimport { AwsCdkTypeScriptAppProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new AwsCdkTypeScriptAppProject({\n name: \"my-cdk-app\",\n repository: \"https://github.com/nikovirtala/my-cdk-app.git\",\n cdkVersion: \"2.275.0\",\n});\n\nproject.synth();\n```\n\n### JSII project\n\n```typescript\nimport { JsiiProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new JsiiProject({\n name: \"my-jsii-project\",\n author: \"Your Name\",\n authorAddress: \"you@example.com\",\n repositoryUrl: \"https://github.com/nikovirtala/my-jsii-project.git\",\n});\n\nproject.synth();\n```\n\n### TypeScript project\n\n```typescript\nimport { TypeScriptProject } from \"@nikovirtala/projen-constructs\";\n\nconst project = new TypeScriptProject({\n name: \"my-typescript-project\",\n repository: \"https://github.com/nikovirtala/my-typescript-project.git\",\n});\n\nproject.synth();\n```\n\n## Contributing\n\nSee [Development](./docs/development.md) for the commands and the build process. Configuration\nchanges belong in `.projenrc.ts`, never in the generated files.\n\n## License\n\nApache-2.0. See [LICENSE](./LICENSE).\n"
4200
4200
  },
4201
4201
  "repository": {
4202
4202
  "type": "git",
@@ -21397,6 +21397,6 @@
21397
21397
  "symbolId": "src/components/vitest:VitestOptions"
21398
21398
  }
21399
21399
  },
21400
- "version": "0.5.2",
21401
- "fingerprint": "Zs1B/0V0AWhD5AN9jjP0rl9qfvscewpzv+4IJGrk4n8="
21400
+ "version": "0.5.4",
21401
+ "fingerprint": "ROAu4+ylUBT9amh6hkJ6bKWyrFJhJdHIFJo2M1SStXs="
21402
21402
  }
package/AGENTS.md ADDED
@@ -0,0 +1,41 @@
1
+ # AGENTS.md
2
+
3
+ This file orients AI and code agents working in this repository. It is intentionally short and points to the authoritative docs rather than restating them.
4
+
5
+ ## What this project is
6
+
7
+ `@nikovirtala/projen-constructs` is a JSII library of opinionated [projen](https://projen.io) project types (TypeScript, JSII, and AWS CDK) that scaffold repositories with one shared configuration. It is written in TypeScript, compiled with JSII, and published to npm.
8
+
9
+ ## The single most important rule
10
+
11
+ **This project generates itself with projen. Never hand-edit generated files.** Make configuration changes in `.projenrc.ts` (or the helpers in `src/` it uses), then run `pnpm projen` to regenerate everything else.
12
+
13
+ Generated files carry a `~~ Generated by projen` header or are listed in `.projen/files.json`. That set includes `package.json`, `tsconfig*.json`, `vitest.config.ts`, `biome.jsonc`, `mise.toml`, the GitHub workflows, `src/project-type.ts`, and `src/projects/*.generated.ts`. Any manual edit to those is overwritten on the next synth.
14
+
15
+ ## Where things live
16
+
17
+ - `.projenrc.ts` — the project definition and the only place to make config-level changes.
18
+ - `src/components/` — reusable projen components (Vitest, TypeDoc, Mise, Homebrew, Colima, LocalStack, Lambda helpers). Edit directly.
19
+ - `src/config.ts`, `src/errors.ts`, `src/utils.ts`, `src/versions.json` — editable core sources.
20
+ - `src/projects/` — **generated** project classes. Do not edit.
21
+ - `src/project-generator.ts` and `src/project-type.ts` — code generation (`project-type.ts` is generated).
22
+ - `test/` — mirrors `src/`; unit tests in `test/**`, integration tests in `test/integration/`.
23
+ - `docs/` — hand-written guides plus `docs/api/` (generated TypeDoc output).
24
+
25
+ ## Build and test
26
+
27
+ - Runtime: Node.js `>= 26.13.0` (managed via mise) and pnpm 12.
28
+ - `pnpm install` — install dependencies.
29
+ - `pnpm projen` — regenerate projen-managed files after editing `.projenrc.ts`.
30
+ - `pnpm build` — full synth, JSII compile, tests, and docs.
31
+ - `pnpm test` — Vitest unit tests with tsc type checking.
32
+ - `pnpm biome` — format and lint.
33
+
34
+ Note on older Node: the engines require Node `>= 26.13.0`, but the build and unit tests also run on Node 24 (npm prints a harmless `EBADENGINE` warning). If you are in an environment where Homebrew cannot be installed, the projen `default` task and `pnpm build`/`pnpm projen` abort at the `install:homebrew` step; synthesize directly instead with `pnpm exec tsx --tsconfig test/tsconfig.json .projenrc.ts`, then compile with `pnpm exec jsii --silence-warnings=reserved-word`.
35
+
36
+ ## Read these for depth (do not duplicate them)
37
+
38
+ - `.kiro/steering/product.md` — product overview and purpose.
39
+ - `.kiro/steering/tech.md` — technology stack, tooling, and conventions.
40
+ - `.kiro/steering/structure.md` — directory layout and file ownership.
41
+ - `CONTRIBUTING.md` — setup, key commands, Conventional Commits, PR-title linting, and how to propose changes.
package/CHANGELOG.md ADDED
@@ -0,0 +1,43 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ Releases are published automatically with [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from Conventional Commit history. GitHub also hosts auto-generated release notes for every tag at [the releases page](https://github.com/nikovirtala/projen-constructs/releases); the entries below summarize the breaking and otherwise notable changes.
9
+
10
+ ## [Unreleased]
11
+
12
+ Nothing yet.
13
+
14
+ ## [0.5.0] - 2026-11-03
15
+
16
+ ### Changed
17
+
18
+ - **BREAKING:** Generated TypeScript and AWS CDK app projects now run `.projenrc.ts` and the app itself with `node` using native type stripping instead of `tsx`. Project code must use only erasable TypeScript syntax, mark type-only imports with `import type`, import relative files with their `.ts` extension, and can no longer rely on `tsconfig` path aliases (#248).
19
+
20
+ ### Removed
21
+
22
+ - **BREAKING:** Dropped the `tsx` fallback for Node.js versions that lack native type stripping. Running these projects now requires a Node.js version with type-stripping support (#248).
23
+
24
+ ## [0.4.1] - 2026-11-03
25
+
26
+ Maintenance release. No notable changes.
27
+
28
+ ## [0.4.0] - 2026-11-02
29
+
30
+ ### Changed
31
+
32
+ - **BREAKING:** Default to Node.js 26 LTS. Generated projects now require Node.js `>= 26.13.0` and receive `@types/node ^26` unless `minNodeVersion` is set explicitly (#242).
33
+ - **BREAKING:** Default to pnpm 12. Generated projects pin pnpm `12.16.1` unless `pnpmVersion` is set. A globally installed pnpm older than 11 cannot switch to this version, and `--frozen-lockfile false` and `--resolution-only` are no longer accepted flags (#243).
34
+ - **BREAKING:** Default to Vitest 5. It requires Node.js `>= 22.12` and Vite `>= 6.4`, enables `clearMocks` by default, and throws when `vi.mock` is called outside the top level of a module. Set `vitestVersion: '^4'` to stay on Vitest 4 (#241).
35
+
36
+ ## Earlier releases
37
+
38
+ Releases before `0.4.0` (the `0.3.x` line and earlier) are not detailed here. See the [automated GitHub release notes](https://github.com/nikovirtala/projen-constructs/releases) for the full history of older tags.
39
+
40
+ [Unreleased]: https://github.com/nikovirtala/projen-constructs/compare/v0.5.0...HEAD
41
+ [0.5.0]: https://github.com/nikovirtala/projen-constructs/compare/v0.4.1...v0.5.0
42
+ [0.4.1]: https://github.com/nikovirtala/projen-constructs/compare/v0.4.0...v0.4.1
43
+ [0.4.0]: https://github.com/nikovirtala/projen-constructs/compare/v0.3.0...v0.4.0
@@ -0,0 +1,66 @@
1
+ # Contributing
2
+
3
+ Thanks for your interest in improving `@nikovirtala/projen-constructs`. This guide covers how the repository is built, how to set it up locally, and how to propose changes.
4
+
5
+ ## This project generates itself with projen
6
+
7
+ The repository is managed by [projen](https://projen.io). `.projenrc.ts` is the single source of truth: it defines the project using the `JsiiProject` type from this very library, and running projen regenerates the rest of the configuration (`package.json`, `tsconfig*.json`, `vitest.config.ts`, `biome.jsonc`, `mise.toml`, the GitHub workflows, and more).
8
+
9
+ Because of this, there is one rule that matters more than any other:
10
+
11
+ > **Never hand-edit generated files.** Change `.projenrc.ts` (or the helpers in `src/` it uses) and run `pnpm projen` to regenerate.
12
+
13
+ Generated and linguist-generated files carry a `~~ Generated by projen` header or are listed in `.projen/files.json`. This also includes `src/project-type.ts` and everything under `src/projects/*.generated.ts`, which are produced by the `ProjectGenerator` component during synthesis. Editing any of these by hand is pointless: the next synth overwrites your change.
14
+
15
+ Files you *can* edit directly include `.projenrc.ts`, the non-generated sources under `src/` (`src/components/*.ts`, `src/config.ts`, `src/errors.ts`, `src/utils.ts`, `src/versions.json`), the tests under `test/`, and the hand-written docs (`README.md`, `docs/*.md`, `.kiro/steering/*.md`, and the root markdown files like this one).
16
+
17
+ ## Local setup
18
+
19
+ - **Node.js** `>= 26.13.0`. The version is managed with [mise](https://mise.jdx.dev) via `mise.toml`; run `mise install` to get the pinned toolchain.
20
+ - **pnpm 12** is the package manager (pinned to `12.16.1`). `corepack enable` will resolve it automatically from `package.json`.
21
+
22
+ Install dependencies:
23
+
24
+ ```bash
25
+ pnpm install
26
+ ```
27
+
28
+ ## Key commands
29
+
30
+ | Command | What it does |
31
+ | --- | --- |
32
+ | `pnpm projen` | Regenerate all projen-managed files from `.projenrc.ts`. Run this after any config change. |
33
+ | `pnpm build` | Full build: synth, compile with JSII, run tests, and generate docs. |
34
+ | `pnpm test` | Run the Vitest unit tests (with tsc type checking). |
35
+ | `pnpm biome` | Format and lint with Biome. |
36
+ | `pnpm docgen` | Regenerate `API.md` with jsii-docgen. |
37
+ | `pnpm update-versions` | Refresh `src/versions.json` with the latest AWS CDK, Node.js, and TypeScript versions. |
38
+
39
+ ## Running tests
40
+
41
+ Unit tests live in `test/**` and run with [Vitest](https://vitest.dev):
42
+
43
+ ```bash
44
+ pnpm test
45
+ ```
46
+
47
+ Integration tests under `test/integration/` build and pack the package into a temporary directory and exercise the generated projects. They are heavier and environment-sensitive, so run the unit suite for day-to-day work and rely on CI for the full matrix.
48
+
49
+ ## Commits, PR titles, and releases
50
+
51
+ - Follow [Conventional Commits](https://www.conventionalcommits.org). The commit type drives the changelog and the next version number.
52
+ - **Pull request titles are linted** by the `pull-request-lint` workflow and must also follow Conventional Commits. Use `feat!:` / `fix!:` (or a `BREAKING CHANGE:` footer) for breaking changes.
53
+ - Releases are automated with [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) from the merged commit history. You do not bump versions or edit `CHANGELOG.md` by hand for a release.
54
+
55
+ ## Proposing a change
56
+
57
+ 1. Fork the repository and create a feature branch off `main`.
58
+ 2. Make your change in `.projenrc.ts` and/or the editable sources, then run `pnpm projen` so the generated files are in sync.
59
+ 3. Run `pnpm build` (or at least `pnpm test` and `pnpm biome`) and commit every file the workflow touched, including regenerated output.
60
+ 4. Open a pull request with a Conventional Commit style title and a clear description of the change.
61
+
62
+ ## Where to learn more
63
+
64
+ - `.kiro/steering/product.md`, `.kiro/steering/tech.md`, and `.kiro/steering/structure.md` describe the product, tech stack, and directory layout in depth.
65
+ - `docs/*.md` holds the longer-form reference material and guides.
66
+ - `AGENTS.md` is a short orientation for AI/code agents working in the repository.
package/README.md CHANGED
@@ -47,13 +47,37 @@ Quick links: [Quick start](#quick-start) · [Usage](#usage) · [Features](#featu
47
47
 
48
48
  ## Quick start
49
49
 
50
- Install the library alongside its `projen` and `constructs` peers:
50
+ To start a new project from scratch, run `projen new --from` in an empty directory. It installs the
51
+ library and writes a ready-to-use `.projenrc.ts` and the full project for you, with no manual setup:
52
+
53
+ ```bash
54
+ pnpm dlx projen new --from @nikovirtala/projen-constructs aws_cdk_construct_library
55
+ ```
56
+
57
+ **Expected output**: projen installs `@nikovirtala/projen-constructs` and its peers, writes a
58
+ `.projenrc.ts` that defines the project, and synthesizes the generated files into the directory:
59
+ `package.json`, `tsconfig.json`, `pnpm-workspace.yaml`, the GitHub Actions workflows, the Vitest and
60
+ Biome configuration, `mise.toml`, and the source and test scaffolding for your construct library.
61
+
62
+ Pass a different project type to scaffold one of the others this library provides:
63
+
64
+ | Project type | `projen new --from` argument |
65
+ | --- | --- |
66
+ | AWS CDK construct library | `aws_cdk_construct_library` |
67
+ | AWS CDK TypeScript app | `aws_cdk_type_script_app` |
68
+ | JSII | `jsii_project` |
69
+ | TypeScript | `type_script_project` |
70
+
71
+ ### Adding it to an existing project
72
+
73
+ If you already have a `.projenrc.ts`, install the library alongside its `projen` and `constructs`
74
+ peers instead:
51
75
 
52
76
  ```bash
53
77
  pnpm add -D @nikovirtala/projen-constructs projen constructs
54
78
  ```
55
79
 
56
- Create a `.projenrc.ts` that defines an AWS CDK construct library and synthesizes it:
80
+ Then define a project in `.projenrc.ts`:
57
81
 
58
82
  ```typescript
59
83
  import { AwsCdkConstructLibraryProject } from "@nikovirtala/projen-constructs";
@@ -69,23 +93,13 @@ const project = new AwsCdkConstructLibraryProject({
69
93
  project.synth();
70
94
  ```
71
95
 
72
- Then run synthesis:
96
+ Run synthesis to write or update the generated files:
73
97
 
74
98
  ```bash
75
99
  pnpm dlx projen
76
100
  ```
77
101
 
78
- **Expected output**: projen reads `.projenrc.ts` and writes the generated project files into the
79
- working directory: `package.json`, `tsconfig.json`, `pnpm-workspace.yaml`, the GitHub Actions
80
- workflows, the Vitest and Biome configuration, `mise.toml`, and the source and test scaffolding for
81
- your construct library. Re-running the command after you edit `.projenrc.ts` updates those files in
82
- place.
83
-
84
- To start a project from scratch without writing `.projenrc.ts` yourself:
85
-
86
- ```bash
87
- pnpm dlx projen new --from @nikovirtala/projen-constructs aws_cdk_construct_library
88
- ```
102
+ Re-running `projen` after you edit `.projenrc.ts` updates those files in place.
89
103
 
90
104
  ## Features
91
105
 
package/SECURITY.md ADDED
@@ -0,0 +1,29 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ Security fixes are provided for the latest published release line of `@nikovirtala/projen-constructs`. Older versions are not maintained; please upgrade to the most recent release to receive fixes.
6
+
7
+ | Version | Supported |
8
+ | --- | --- |
9
+ | Latest release line | ✅ |
10
+ | Older releases | ❌ |
11
+
12
+ ## Reporting a vulnerability
13
+
14
+ Please report security vulnerabilities privately rather than opening a public issue.
15
+
16
+ - **Preferred:** open a [private security advisory](https://github.com/nikovirtala/projen-constructs/security/advisories/new) on GitHub.
17
+ - **Alternatively:** email the maintainer at [niko.virtala@hey.com](mailto:niko.virtala@hey.com).
18
+
19
+ Please include enough detail to reproduce the issue (affected version, steps, and impact).
20
+
21
+ ## Response expectations
22
+
23
+ - You can expect an acknowledgement of your report within a few business days.
24
+ - Once triaged, the maintainer will work on a fix and coordinate a disclosure timeline with you.
25
+ - You will be credited for the report unless you prefer to remain anonymous.
26
+
27
+ ## License
28
+
29
+ This project is licensed under the [Apache License 2.0](./LICENSE).
@@ -67,27 +67,57 @@ across this documentation track those sources.</p>
67
67
  </table>
68
68
  <p>Quick links: <a href="#quick-start">Quick start</a> · <a href="#usage">Usage</a> · <a href="#features">Features</a>.</p>
69
69
  <h2 id="quick-start" class="tsd-anchor-link">Quick start<a href="#quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
70
- <p>Install the library alongside its <code>projen</code> and <code>constructs</code> peers:</p>
70
+ <p>To start a new project from scratch, run <code>projen new --from</code> in an empty directory. It installs the
71
+ library and writes a ready-to-use <code>.projenrc.ts</code> and the full project for you, with no manual setup:</p>
72
+ <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-3">--from</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">aws_cdk_construct_library</span>
73
+ </code><button type="button">Copy</button></pre>
74
+
75
+ <p><strong>Expected output</strong>: projen installs <code>@nikovirtala/projen-constructs</code> and its peers, writes a
76
+ <code>.projenrc.ts</code> that defines the project, and synthesizes the generated files into the directory:
77
+ <code>package.json</code>, <code>tsconfig.json</code>, <code>pnpm-workspace.yaml</code>, the GitHub Actions workflows, the Vitest and
78
+ Biome configuration, <code>mise.toml</code>, and the source and test scaffolding for your construct library.</p>
79
+ <p>Pass a different project type to scaffold one of the others this library provides:</p>
80
+ <table>
81
+ <thead>
82
+ <tr>
83
+ <th>Project type</th>
84
+ <th><code>projen new --from</code> argument</th>
85
+ </tr>
86
+ </thead>
87
+ <tbody>
88
+ <tr>
89
+ <td>AWS CDK construct library</td>
90
+ <td><code>aws_cdk_construct_library</code></td>
91
+ </tr>
92
+ <tr>
93
+ <td>AWS CDK TypeScript app</td>
94
+ <td><code>aws_cdk_type_script_app</code></td>
95
+ </tr>
96
+ <tr>
97
+ <td>JSII</td>
98
+ <td><code>jsii_project</code></td>
99
+ </tr>
100
+ <tr>
101
+ <td>TypeScript</td>
102
+ <td><code>type_script_project</code></td>
103
+ </tr>
104
+ </tbody>
105
+ </table>
106
+ <h3 id="adding-it-to-an-existing-project" class="tsd-anchor-link">Adding it to an existing project<a href="#adding-it-to-an-existing-project" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
107
+ <p>If you already have a <code>.projenrc.ts</code>, install the library alongside its <code>projen</code> and <code>constructs</code>
108
+ peers instead:</p>
71
109
  <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-3">-D</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">constructs</span>
72
110
  </code><button type="button">Copy</button></pre>
73
111
 
74
- <p>Create a <code>.projenrc.ts</code> that defines an AWS CDK construct library and synthesizes it:</p>
112
+ <p>Then define a project in <code>.projenrc.ts</code>:</p>
75
113
  <pre><code class="typescript"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">AwsCdkConstructLibraryProject</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&quot;@nikovirtala/projen-constructs&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-6">project</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AwsCdkConstructLibraryProject</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">name:</span><span class="hl-1"> </span><span class="hl-2">&quot;my-cdk-construct&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">author:</span><span class="hl-1"> </span><span class="hl-2">&quot;Your Name&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">authorAddress:</span><span class="hl-1"> </span><span class="hl-2">&quot;you@example.com&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">repositoryUrl:</span><span class="hl-1"> </span><span class="hl-2">&quot;https://github.com/your-org/my-cdk-construct.git&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">cdkVersion:</span><span class="hl-1"> </span><span class="hl-2">&quot;2.275.0&quot;</span><span class="hl-1">,</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-5">project</span><span class="hl-1">.</span><span class="hl-0">synth</span><span class="hl-1">();</span>
76
114
  </code><button type="button">Copy</button></pre>
77
115
 
78
- <p>Then run synthesis:</p>
116
+ <p>Run synthesis to write or update the generated files:</p>
79
117
  <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span>
80
118
  </code><button type="button">Copy</button></pre>
81
119
 
82
- <p><strong>Expected output</strong>: projen reads <code>.projenrc.ts</code> and writes the generated project files into the
83
- working directory: <code>package.json</code>, <code>tsconfig.json</code>, <code>pnpm-workspace.yaml</code>, the GitHub Actions
84
- workflows, the Vitest and Biome configuration, <code>mise.toml</code>, and the source and test scaffolding for
85
- your construct library. Re-running the command after you edit <code>.projenrc.ts</code> updates those files in
86
- place.</p>
87
- <p>To start a project from scratch without writing <code>.projenrc.ts</code> yourself:</p>
88
- <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-3">--from</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">aws_cdk_construct_library</span>
89
- </code><button type="button">Copy</button></pre>
90
-
120
+ <p>Re-running <code>projen</code> after you edit <code>.projenrc.ts</code> updates those files in place.</p>
91
121
  <h2 id="features" class="tsd-anchor-link">Features<a href="#features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
92
122
  <ul>
93
123
  <li><strong>Standard configuration</strong>: opinionated defaults for author, release branch, package manager,
@@ -151,6 +181,9 @@ changes belong in <code>.projenrc.ts</code>, never in the generated files.</p>
151
181
  <li><a href="#status-and-supported-versions"><span>Status and supported versions</span></a></li>
152
182
  <li><a href="#documentation"><span>Documentation</span></a></li>
153
183
  <li><a href="#quick-start"><span>Quick start</span></a></li>
184
+ <li>
185
+ <ul>
186
+ <li><a href="#adding-it-to-an-existing-project"><span>Adding it to an existing project</span></a></li></ul></li>
154
187
  <li><a href="#features"><span>Features</span></a></li>
155
188
  <li><a href="#usage"><span>Usage</span></a></li>
156
189
  <li>
@@ -67,27 +67,57 @@ across this documentation track those sources.</p>
67
67
  </table>
68
68
  <p>Quick links: <a href="#quick-start">Quick start</a> · <a href="#usage">Usage</a> · <a href="#features">Features</a>.</p>
69
69
  <h2 id="quick-start" class="tsd-anchor-link">Quick start<a href="#quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
70
- <p>Install the library alongside its <code>projen</code> and <code>constructs</code> peers:</p>
70
+ <p>To start a new project from scratch, run <code>projen new --from</code> in an empty directory. It installs the
71
+ library and writes a ready-to-use <code>.projenrc.ts</code> and the full project for you, with no manual setup:</p>
72
+ <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-3">--from</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">aws_cdk_construct_library</span>
73
+ </code><button type="button">Copy</button></pre>
74
+
75
+ <p><strong>Expected output</strong>: projen installs <code>@nikovirtala/projen-constructs</code> and its peers, writes a
76
+ <code>.projenrc.ts</code> that defines the project, and synthesizes the generated files into the directory:
77
+ <code>package.json</code>, <code>tsconfig.json</code>, <code>pnpm-workspace.yaml</code>, the GitHub Actions workflows, the Vitest and
78
+ Biome configuration, <code>mise.toml</code>, and the source and test scaffolding for your construct library.</p>
79
+ <p>Pass a different project type to scaffold one of the others this library provides:</p>
80
+ <table>
81
+ <thead>
82
+ <tr>
83
+ <th>Project type</th>
84
+ <th><code>projen new --from</code> argument</th>
85
+ </tr>
86
+ </thead>
87
+ <tbody>
88
+ <tr>
89
+ <td>AWS CDK construct library</td>
90
+ <td><code>aws_cdk_construct_library</code></td>
91
+ </tr>
92
+ <tr>
93
+ <td>AWS CDK TypeScript app</td>
94
+ <td><code>aws_cdk_type_script_app</code></td>
95
+ </tr>
96
+ <tr>
97
+ <td>JSII</td>
98
+ <td><code>jsii_project</code></td>
99
+ </tr>
100
+ <tr>
101
+ <td>TypeScript</td>
102
+ <td><code>type_script_project</code></td>
103
+ </tr>
104
+ </tbody>
105
+ </table>
106
+ <h3 id="adding-it-to-an-existing-project" class="tsd-anchor-link">Adding it to an existing project<a href="#adding-it-to-an-existing-project" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
107
+ <p>If you already have a <code>.projenrc.ts</code>, install the library alongside its <code>projen</code> and <code>constructs</code>
108
+ peers instead:</p>
71
109
  <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-3">-D</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">constructs</span>
72
110
  </code><button type="button">Copy</button></pre>
73
111
 
74
- <p>Create a <code>.projenrc.ts</code> that defines an AWS CDK construct library and synthesizes it:</p>
112
+ <p>Then define a project in <code>.projenrc.ts</code>:</p>
75
113
  <pre><code class="typescript"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">AwsCdkConstructLibraryProject</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&quot;@nikovirtala/projen-constructs&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-6">project</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AwsCdkConstructLibraryProject</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-5">name:</span><span class="hl-1"> </span><span class="hl-2">&quot;my-cdk-construct&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">author:</span><span class="hl-1"> </span><span class="hl-2">&quot;Your Name&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">authorAddress:</span><span class="hl-1"> </span><span class="hl-2">&quot;you@example.com&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">repositoryUrl:</span><span class="hl-1"> </span><span class="hl-2">&quot;https://github.com/your-org/my-cdk-construct.git&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">cdkVersion:</span><span class="hl-1"> </span><span class="hl-2">&quot;2.275.0&quot;</span><span class="hl-1">,</span><br/><span class="hl-1">});</span><br/><br/><span class="hl-5">project</span><span class="hl-1">.</span><span class="hl-0">synth</span><span class="hl-1">();</span>
76
114
  </code><button type="button">Copy</button></pre>
77
115
 
78
- <p>Then run synthesis:</p>
116
+ <p>Run synthesis to write or update the generated files:</p>
79
117
  <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span>
80
118
  </code><button type="button">Copy</button></pre>
81
119
 
82
- <p><strong>Expected output</strong>: projen reads <code>.projenrc.ts</code> and writes the generated project files into the
83
- working directory: <code>package.json</code>, <code>tsconfig.json</code>, <code>pnpm-workspace.yaml</code>, the GitHub Actions
84
- workflows, the Vitest and Biome configuration, <code>mise.toml</code>, and the source and test scaffolding for
85
- your construct library. Re-running the command after you edit <code>.projenrc.ts</code> updates those files in
86
- place.</p>
87
- <p>To start a project from scratch without writing <code>.projenrc.ts</code> yourself:</p>
88
- <pre><code class="bash"><span class="hl-0">pnpm</span><span class="hl-1"> </span><span class="hl-2">dlx</span><span class="hl-1"> </span><span class="hl-2">projen</span><span class="hl-1"> </span><span class="hl-2">new</span><span class="hl-1"> </span><span class="hl-3">--from</span><span class="hl-1"> </span><span class="hl-2">@nikovirtala/projen-constructs</span><span class="hl-1"> </span><span class="hl-2">aws_cdk_construct_library</span>
89
- </code><button type="button">Copy</button></pre>
90
-
120
+ <p>Re-running <code>projen</code> after you edit <code>.projenrc.ts</code> updates those files in place.</p>
91
121
  <h2 id="features" class="tsd-anchor-link">Features<a href="#features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
92
122
  <ul>
93
123
  <li><strong>Standard configuration</strong>: opinionated defaults for author, release branch, package manager,
@@ -151,6 +181,9 @@ changes belong in <code>.projenrc.ts</code>, never in the generated files.</p>
151
181
  <li><a href="#status-and-supported-versions"><span>Status and supported versions</span></a></li>
152
182
  <li><a href="#documentation"><span>Documentation</span></a></li>
153
183
  <li><a href="#quick-start"><span>Quick start</span></a></li>
184
+ <li>
185
+ <ul>
186
+ <li><a href="#adding-it-to-an-existing-project"><span>Adding it to an existing project</span></a></li></ul></li>
154
187
  <li><a href="#features"><span>Features</span></a></li>
155
188
  <li><a href="#usage"><span>Usage</span></a></li>
156
189
  <li>
@@ -67,7 +67,7 @@ function convertToPosixPath(p) {
67
67
  * single file.
68
68
  */
69
69
  class Bundler extends projen_1.Component {
70
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Bundler", version: "0.5.2" };
70
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Bundler", version: "0.5.4" };
71
71
  /**
72
72
  * Returns the `Bundler` instance associated with a project or `undefined` if
73
73
  * there is no Bundler.
@@ -221,7 +221,7 @@ exports.Bundler = Bundler;
221
221
  * });
222
222
  */
223
223
  class LambdaFunctionCodeBundle extends projen_1.Component {
224
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundle", version: "0.5.2" };
224
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundle", version: "0.5.4" };
225
225
  /**
226
226
  * Defines a pre-bundled AWS Lambda Function code asset from handler code.
227
227
  *
@@ -273,7 +273,7 @@ exports.LambdaFunctionCodeBundle = LambdaFunctionCodeBundle;
273
273
  * Creates Lambda Function code bundles from entrypoints discovered in the project's source tree.
274
274
  */
275
275
  class LambdaFunctionCodeBundler extends projen_1.cdk.AutoDiscoverBase {
276
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundler", version: "0.5.2" };
276
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundler", version: "0.5.4" };
277
277
  constructor(project, options) {
278
278
  super(project, {
279
279
  projectdir: options.srcdir,
@@ -11,7 +11,7 @@ const homebrew_1 = require("./homebrew");
11
11
  * Adds Colima support to your project with automatic installation and startup.
12
12
  */
13
13
  class Colima extends component_1.Component {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Colima", version: "0.5.2" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Colima", version: "0.5.4" };
15
15
  constructor(scope) {
16
16
  super(scope);
17
17
  const project = this.project;
@@ -14,7 +14,7 @@ function tapOf(packageName) {
14
14
  return parts.length === 3 ? `${parts[0]}/${parts[1]}` : undefined;
15
15
  }
16
16
  class Homebrew extends component_1.Component {
17
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Homebrew", version: "0.5.2" };
17
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Homebrew", version: "0.5.4" };
18
18
  static of(project) {
19
19
  const isHomebrew = (c) => c instanceof Homebrew;
20
20
  return project.components.find(isHomebrew);
@@ -44,7 +44,7 @@ const utils_1 = require("../utils");
44
44
  * The bundling happens during projen execution, not during CDK synth, enabling a "build once, deploy many" pattern.
45
45
  */
46
46
  class LambdaFunctionConstructGenerator extends projen_1.Component {
47
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.5.2" };
47
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.5.4" };
48
48
  sourceDir;
49
49
  outputDir;
50
50
  filePattern;
@@ -12,7 +12,7 @@ const homebrew_1 = require("./homebrew");
12
12
  * Adds LocalStack support to your project with automatic Docker/Colima setup.
13
13
  */
14
14
  class LocalStack extends component_1.Component {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.5.2" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.5.4" };
16
16
  constructor(scope, options = {}) {
17
17
  super(scope);
18
18
  const project = javascript_1.NodeProject.of(this);
@@ -7,7 +7,7 @@ const component_1 = require("projen/lib/component");
7
7
  const textfile_1 = require("projen/lib/textfile");
8
8
  const homebrew_1 = require("./homebrew");
9
9
  class Mise extends component_1.Component {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.5.2" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.5.4" };
11
11
  static of(project) {
12
12
  const isMise = (c) => c instanceof Mise;
13
13
  return project.components.find(isMise);
@@ -34,7 +34,7 @@ const DEFAULT_CONFIG = {
34
34
  * TypeDoc component for projen projects
35
35
  */
36
36
  class TypeDoc extends component_1.Component {
37
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.5.2" };
37
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.5.4" };
38
38
  static of(project) {
39
39
  const isTypeDoc = (c) => c instanceof TypeDoc;
40
40
  return project.components.find(isTypeDoc);
@@ -141,7 +141,7 @@ var CoverageReporter;
141
141
  CoverageReporter["TEXT"] = "text";
142
142
  })(CoverageReporter || (exports.CoverageReporter = CoverageReporter = {}));
143
143
  class Vitest extends component_1.Component {
144
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.5.2" };
144
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.5.4" };
145
145
  static of(project) {
146
146
  const isVitest = (c) => c instanceof Vitest;
147
147
  return project.components.find(isVitest);
@@ -428,7 +428,7 @@ class TypeScriptClassRenderer {
428
428
  */
429
429
  class ProjectGenerator extends projen.Component {
430
430
  options;
431
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.5.2" };
431
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.5.4" };
432
432
  renderer;
433
433
  static enumGenerated = false;
434
434
  /**
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
15
15
  * Extends Projen's base class with opinionated defaults and automatic component setup.
16
16
  */
17
17
  class AwsCdkConstructLibraryProject extends projen_1.awscdk.AwsCdkConstructLibrary {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.5.2" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.5.4" };
19
19
  /**
20
20
  * @param options - Project configuration
21
21
  */
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
15
15
  * Extends Projen's base class with opinionated defaults and automatic component setup.
16
16
  */
17
17
  class AwsCdkTypeScriptAppProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.5.2" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.5.4" };
19
19
  /**
20
20
  * @param options - Project configuration
21
21
  */
@@ -16,7 +16,7 @@ const utils_1 = require("../utils");
16
16
  * Extends Projen's base class with opinionated defaults and automatic component setup.
17
17
  */
18
18
  class JsiiProject extends projen_1.cdk.JsiiProject {
19
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.5.2" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.5.4" };
20
20
  /**
21
21
  * @param options - Project configuration
22
22
  */
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
15
15
  * Extends Projen's base class with opinionated defaults and automatic component setup.
16
16
  */
17
17
  class TypeScriptProject extends projen_1.typescript.TypeScriptProject {
18
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.5.2" };
18
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.5.4" };
19
19
  /**
20
20
  * @param options - Project configuration
21
21
  */
package/package.json CHANGED
@@ -60,7 +60,7 @@
60
60
  "publishConfig": {
61
61
  "access": "public"
62
62
  },
63
- "version": "0.5.2",
63
+ "version": "0.5.4",
64
64
  "types": "lib/index.d.ts",
65
65
  "jsii": {
66
66
  "outdir": "dist",