# @baseplate-dev/core-generators

## 0.6.18

### Patch Changes

- [#1024](https://github.com/halfdomelabs/baseplate/pull/1024) [`ce52092`](https://github.com/halfdomelabs/baseplate/commit/ce5209240d4163966967f60cc9fa6286c4f8dcbb) Thanks [@kingston](https://github.com/kingston)! - Template extraction now rejects a raw template that hardcodes a literal import from any workspace package in the source project, not just the app being extracted, so a copy-pasted import from another example's package can no longer slip into a shared generator unnoticed.

- [#1025](https://github.com/halfdomelabs/baseplate/pull/1025) [`8285b67`](https://github.com/halfdomelabs/baseplate/commit/8285b67d1627e0b4200d716ebdce6accc7fd67a1) Thanks [@kingston](https://github.com/kingston)! - Generated projects now target ES2024 with the latest Node 24 and Vite React tsconfig presets, including stricter linting options like unused-syntax and erasable-syntax checks for the frontend.

- Updated dependencies [[`eeff7b5`](https://github.com/halfdomelabs/baseplate/commit/eeff7b5895155dc252720d70ced0eca64272ad6a), [`ce52092`](https://github.com/halfdomelabs/baseplate/commit/ce5209240d4163966967f60cc9fa6286c4f8dcbb), [`6f6e083`](https://github.com/halfdomelabs/baseplate/commit/6f6e0834b3963046e91e509fc6638130f290428e)]:
  - @baseplate-dev/utils@0.6.18
  - @baseplate-dev/sync@0.6.18

## 0.6.17

### Patch Changes

- [#999](https://github.com/halfdomelabs/baseplate/pull/999) [`b202a97`](https://github.com/halfdomelabs/baseplate/commit/b202a9772434de41a2abcc73c4c96e6f1ddab7c0) Thanks [@kingston](https://github.com/kingston)! - Generated projects now pin newer versions of their dependencies, including React 19.2, Vite 8.2, Fastify 5.11, Tailwind 4.3.3, TanStack Router 1.168, Turborepo 2.10 and Prettier 3.9.6. Run an install after your next sync to pick them up; no code changes are needed.

- [#1008](https://github.com/halfdomelabs/baseplate/pull/1008) [`ae275d0`](https://github.com/halfdomelabs/baseplate/commit/ae275d0d5d58c0b3d0cee41786938b8069d5e4bc) Thanks [@kingston](https://github.com/kingston)! - Template extraction now fails with a clear error when a side-effect import points at project-specific code, instead of silently copying it into a shared template, and side-effect imports between templates in the same generator are now tracked as references. Extracting a template whose templated expression Prettier wrapped in parentheses also no longer drops the closing parenthesis, which previously produced an unparseable template.

- [#1009](https://github.com/halfdomelabs/baseplate/pull/1009) [`f5c5282`](https://github.com/halfdomelabs/baseplate/commit/f5c528261e829967951d19c6b2f9fa59ae686c21) Thanks [@kingston](https://github.com/kingston)! - Generated `tsconfig.json` files now set `compilerOptions.rootDir` to `src` by default, so TypeScript no longer needs to infer it and package builds get a consistent output layout.

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.17
  - @baseplate-dev/utils@0.6.17

## 0.6.16

### Patch Changes

- [#994](https://github.com/halfdomelabs/baseplate/pull/994) [`261d933`](https://github.com/halfdomelabs/baseplate/commit/261d9331ec09c4b60ee17057cbd57feb36827552) Thanks [@kingston](https://github.com/kingston)! - Generated web apps and React library packages now ship a working component test environment (jsdom plus Testing Library), so you can write React component tests without any tooling setup.

- [#994](https://github.com/halfdomelabs/baseplate/pull/994) [`261d933`](https://github.com/halfdomelabs/baseplate/commit/261d9331ec09c4b60ee17057cbd57feb36827552) Thanks [@kingston](https://github.com/kingston)! - You can now create `react-library` packages for sharing JSX components and hooks across a monorepo, with Tailwind and lint/prettier tooling configured for you. Pick libraries to import from a web app's settings page and the app sources its shared UI components from them instead of generating a local copy.

- [#994](https://github.com/halfdomelabs/baseplate/pull/994) [`261d933`](https://github.com/halfdomelabs/baseplate/commit/261d9331ec09c4b60ee17057cbd57feb36827552) Thanks [@kingston](https://github.com/kingston)! - Generated projects now pin pnpm 11.18.0 and use current versions of their runtime dependencies, including major upgrades to bullmq, Stripe, pino, mime-types, react-dropzone and react-day-picker, so a synced project needs a fresh install and may need changes where it calls those libraries directly. File uploads also accept legacy JPEG extensions such as `.jfif` that were previously rejected, and an unrecognized Stripe subscription status now fails the webhook instead of writing a bad value.

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.16
  - @baseplate-dev/utils@0.6.16

## 0.6.15

### Patch Changes

- [#962](https://github.com/halfdomelabs/baseplate/pull/962) [`615c8e1`](https://github.com/halfdomelabs/baseplate/commit/615c8e173cede3cfa0298b92d5b84999ffedce5b) Thanks [@kingston](https://github.com/kingston)! - Tightened handling of indexed access across the codebase, fixing latent cases where a missing array element or record entry could surface as an undefined value in a field typed as required, such as unmatched regular expression capture groups and parsed command strings.

- [#962](https://github.com/halfdomelabs/baseplate/pull/962) [`615c8e1`](https://github.com/halfdomelabs/baseplate/commit/615c8e173cede3cfa0298b92d5b84999ffedce5b) Thanks [@kingston](https://github.com/kingston)! - Generated projects now enable the `noUncheckedIndexedAccess` TypeScript compiler option, so indexed access such as `array[0]` or `record[key]` is typed as possibly undefined and must be handled explicitly. Existing projects will see new type errors on their next sync and should add the appropriate guards, defaults, or narrowing.

- [#971](https://github.com/halfdomelabs/baseplate/pull/971) [`e12d469`](https://github.com/halfdomelabs/baseplate/commit/e12d4699363b6d8c24c060929bec7b117933c8c2) Thanks [@kingston](https://github.com/kingston)! - Upgrade ESLint to 9.39.5 in generated projects (`eslint` and `@eslint/js` from 9.39.2 → 9.39.5).

- Updated dependencies [[`615c8e1`](https://github.com/halfdomelabs/baseplate/commit/615c8e173cede3cfa0298b92d5b84999ffedce5b)]:
  - @baseplate-dev/sync@0.6.15
  - @baseplate-dev/utils@0.6.15

## 0.6.14

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.14
  - @baseplate-dev/utils@0.6.14

## 0.6.13

### Patch Changes

- [#926](https://github.com/halfdomelabs/baseplate/pull/926) [`45886a6`](https://github.com/halfdomelabs/baseplate/commit/45886a6fc3ac02f37bf19a3dae45d38186c9ad8a) Thanks [@kingston](https://github.com/kingston)! - Removed the `preinstall: npx only-allow pnpm` script from generated `package.json` files. Package manager enforcement is already handled via the `packageManager` field, making this script redundant.

- [#950](https://github.com/halfdomelabs/baseplate/pull/950) [`9619580`](https://github.com/halfdomelabs/baseplate/commit/9619580e79c50556f649801bd9f04e4f7b221cc3) Thanks [@kingston](https://github.com/kingston)! - Refined the ESLint config for generated apps, and brought the internal monorepo configs in line with it. `eslint-plugin-unicorn` now uses its `unopinionated` preset while retaining `consistent-function-scoping`, `filename-case`, and `no-for-loop`, with `filename-case` applying to all generated apps rather than only React ones; `@typescript-eslint/switch-exhaustiveness-check` catches new union members silently falling into a generic `default` case; `react/prop-types` is disabled as redundant with TypeScript prop typing; `@typescript-eslint/explicit-function-return-type` no longer applies to React components (it remains load-bearing elsewhere) and `@typescript-eslint/prefer-destructuring` was removed. Unused ESLint disable directives and inline configs are now reported.

- [#945](https://github.com/halfdomelabs/baseplate/pull/945) [`4819cfa`](https://github.com/halfdomelabs/baseplate/commit/4819cfad49158dec8eec05fc9d9b0025e7a81434) Thanks [@kingston](https://github.com/kingston)! - Generated backend test suites now run in parallel across Vitest workers instead of being pinned to a single worker: each worker migrates a shared template database once then clones its own per-worker database from it, and Redis keys are namespaced per worker, so concurrent test files no longer clobber each other's data. The generated `vitest.config.ts` takes an optional `maxWorkers` value, which DB-backed runs cap at 8 to avoid exhausting Postgres connections or clone locks on high-core CI runners, while unit-only runs (`TEST_MODE=unit`) stay uncapped.

- [#919](https://github.com/halfdomelabs/baseplate/pull/919) [`9548f2d`](https://github.com/halfdomelabs/baseplate/commit/9548f2d12af830e28187efed4b5a27d42020b289) Thanks [@kingston](https://github.com/kingston)! - Upgrade insecure dependencies flagged by pnpm audit. Generated projects now use axios 1.18.1 (was 1.16.1) and better-auth 1.6.23 (was 1.6.11), addressing multiple axios advisories (prototype pollution, DoS, proxy handling) and a stored XSS advisory in better-auth. Transitive dependencies (js-yaml, brace-expansion, protobufjs, esbuild, body-parser) were also updated to patched versions in the monorepo and example lockfiles.

- [#927](https://github.com/halfdomelabs/baseplate/pull/927) [`0d3cd21`](https://github.com/halfdomelabs/baseplate/commit/0d3cd21bec022599977539f65fb2431d28574c83) Thanks [@kingston](https://github.com/kingston)! - Upgraded generated projects to TypeScript 6.0.3 (from 5.9.3), with typescript-eslint 8.65.0, `@vitest/eslint-plugin` 1.6.23, `eslint-plugin-perfectionist` 5.10.0, and `vitest-mock-extended` 3.1.1 for compatibility. Generated React apps now set `"types": ["node"]` in `tsconfig.app.json` and generated backends set `rootDir`/`types` in their `tsconfig.json`, since TypeScript 6 no longer implicitly includes `@types/node` globals for composite builds. Note that `@module-federation/vite` is pinned at exactly 1.17.0 — 1.17.1+ breaks the module federation shared-scope singleton for `zod`/`@baseplate-dev/project-builder-lib`, which left entity IDs unassigned when plugin-seeded models were merged into a new project during setup.

- Updated dependencies [[`80c1474`](https://github.com/halfdomelabs/baseplate/commit/80c1474f8903f0609f8d7484b0d0be8b59d4f6c0)]:
  - @baseplate-dev/utils@0.6.13
  - @baseplate-dev/sync@0.6.13

## 0.6.12

### Patch Changes

- [#912](https://github.com/halfdomelabs/baseplate/pull/912) [`0620a2b`](https://github.com/halfdomelabs/baseplate/commit/0620a2b2a59a4b401a9d9268f596776f4da09a9b) Thanks [@kingston](https://github.com/kingston)! - Fix create-project being blocked by pnpm 11 approve-builds by removing @prisma/engines from generator dependencies and setting strictDepBuilds/allowBuilds in generated pnpm-workspace.yaml.

- [#914](https://github.com/halfdomelabs/baseplate/pull/914) [`65a1b96`](https://github.com/halfdomelabs/baseplate/commit/65a1b969e7900b935800d111c23b3af70a660514) Thanks [@kingston](https://github.com/kingston)! - Upgrade the Node version pinned in generated projects from 24.17.0 to 24.18.0.

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.12
  - @baseplate-dev/utils@0.6.12

## 0.6.11

### Patch Changes

- [#902](https://github.com/halfdomelabs/baseplate/pull/902) [`cc296f4`](https://github.com/halfdomelabs/baseplate/commit/cc296f4737d0462f3536dda27ae9eb297f799b8b) Thanks [@kingston](https://github.com/kingston)! - Upgrade oxc tooling to latest and clean up lint rules (ENG-1164)

- [#901](https://github.com/halfdomelabs/baseplate/pull/901) [`05e7b98`](https://github.com/halfdomelabs/baseplate/commit/05e7b98c84069284976b33dfc3426a71a5b9bc64) Thanks [@kingston](https://github.com/kingston)! - Upgrade Vite and Module Federation packages

  Monorepo catalog and generator constants:
  - vite: 8.0.16 → 8.1.0
  - @vitejs/plugin-react: 6.0.2 → 6.0.3
  - vite-plugin-svgr: 4.5.0 → 5.2.0
  - @tailwindcss/vite: 4.3.0 → 4.3.1
  - tailwindcss: 4.3.0 → 4.3.1

  Module Federation (Baseplate web app only):
  - @module-federation/enhanced: 2.3.3 → 2.6.0
  - @module-federation/vite: 1.15.4 → 1.16.11

  Generated projects now resolve the `@src/*` path alias via Vite's built-in
  `resolve.tsconfigPaths` option (in both the Vite and Vitest configs) instead of
  the `vite-tsconfig-paths` plugin, which has been dropped as a dependency.

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.11
  - @baseplate-dev/utils@0.6.11

## 0.6.10

### Patch Changes

- [#897](https://github.com/halfdomelabs/baseplate/pull/897) [`db93095`](https://github.com/halfdomelabs/baseplate/commit/db93095c6a9846d1e583832b70b85898ae785b10) Thanks [@kingston](https://github.com/kingston)! - Fix Prettier formatting issues on first code generation by adding a post-write command that re-formats files after dependencies are installed

- [#893](https://github.com/halfdomelabs/baseplate/pull/893) [`62df439`](https://github.com/halfdomelabs/baseplate/commit/62df43917263034e621f29fb261d2b93ca9edf23) Thanks [@kingston](https://github.com/kingston)! - Upgrade axios to 1.16.1
  - axios: 1.15.2 → 1.16.1

- [#888](https://github.com/halfdomelabs/baseplate/pull/888) [`f9fe0c2`](https://github.com/halfdomelabs/baseplate/commit/f9fe0c20f16bf3495129aa859340dd689500cc1e) Thanks [@kingston](https://github.com/kingston)! - Upgrade better-auth and turbo to their latest versions
  - better-auth: 1.4.19 → 1.6.11 (injected into generated projects)
  - turbo: 2.9.0 → 2.9.15 (monorepo dev dependency and generated project version)

- [#896](https://github.com/halfdomelabs/baseplate/pull/896) [`f5ad6d2`](https://github.com/halfdomelabs/baseplate/commit/f5ad6d2ff994ecdd03f790b7e5c0915ddc7660c5) Thanks [@kingston](https://github.com/kingston)! - Upgrade Node.js from 24.14.0 to 24.16.0 and pnpm from 10.33.0 to 11.5.0

- [#893](https://github.com/halfdomelabs/baseplate/pull/893) [`62df439`](https://github.com/halfdomelabs/baseplate/commit/62df43917263034e621f29fb261d2b93ca9edf23) Thanks [@kingston](https://github.com/kingston)! - Upgrade Vite to v8, vitest to 4.1.7, @vitejs/plugin-react to 6.x, @tailwindcss/vite to 4.3.0, and Storybook to 10.4.1. Keep `vite-tsconfig-paths` in generated projects as Vite 8's native `resolve.tsconfigPaths` does not follow tsconfig project references (vitejs/vite#21889).

- [#900](https://github.com/halfdomelabs/baseplate/pull/900) [`c1e8765`](https://github.com/halfdomelabs/baseplate/commit/c1e8765fb3b59f56db4bc393e7469a54332c94b8) Thanks [@kingston](https://github.com/kingston)! - Upgrade Vite to 8.0.16, Node to 24.17.0, and pnpm to 11.7.0
  - vite: 8.0.14 → 8.0.16
  - Node.js: 24.16.0 → 24.17.0
  - pnpm: 11.5.0 → 11.7.0

- Updated dependencies [[`f5ad6d2`](https://github.com/halfdomelabs/baseplate/commit/f5ad6d2ff994ecdd03f790b7e5c0915ddc7660c5), [`db93095`](https://github.com/halfdomelabs/baseplate/commit/db93095c6a9846d1e583832b70b85898ae785b10)]:
  - @baseplate-dev/sync@0.6.10
  - @baseplate-dev/utils@0.6.10

## 0.6.9

### Patch Changes

- [#884](https://github.com/halfdomelabs/baseplate/pull/884) [`7677630`](https://github.com/halfdomelabs/baseplate/commit/7677630f1e445e2c8c8c56b70435d12b0242affb) Thanks [@kingston](https://github.com/kingston)! - Upgrade fastify to 5.8.5, @fastify/static to 9.1.3, and axios to 1.15.2

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.9
  - @baseplate-dev/utils@0.6.9

## 0.6.8

### Patch Changes

- [#883](https://github.com/halfdomelabs/baseplate/pull/883) [`b231bca`](https://github.com/halfdomelabs/baseplate/commit/b231bcace5bd8395fe1cc92b2cb319302023342b) Thanks [@kingston](https://github.com/kingston)! - Upgrade vite version from 7.1.12 to 7.3.2

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.8
  - @baseplate-dev/utils@0.6.8

## 0.6.7

### Patch Changes

- [#872](https://github.com/halfdomelabs/baseplate/pull/872) [`2d39358`](https://github.com/halfdomelabs/baseplate/commit/2d39358510f73073a80ac78c3c7433a3aac2f0cd) Thanks [@kingston](https://github.com/kingston)! - Update pnpm version to 10.33.0

- [#875](https://github.com/halfdomelabs/baseplate/pull/875) [`c3a6719`](https://github.com/halfdomelabs/baseplate/commit/c3a67191d9a456d7440728f43f34cd02d28ffd12) Thanks [@kingston](https://github.com/kingston)! - Restrict docker compose port bindings to 127.0.0.1 to prevent exposing development services to the local network

- [#874](https://github.com/halfdomelabs/baseplate/pull/874) [`7031c74`](https://github.com/halfdomelabs/baseplate/commit/7031c74af6a0ee74007a2b3cce30c738cff36e6a) Thanks [@kingston](https://github.com/kingston)! - Upgrade Turborepo from 2.5.0 to 2.9.0

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.7
  - @baseplate-dev/utils@0.6.7

## 0.6.6

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.6
  - @baseplate-dev/utils@0.6.6

## 0.6.5

### Patch Changes

- [#855](https://github.com/halfdomelabs/baseplate/pull/855) [`87a2218`](https://github.com/halfdomelabs/baseplate/commit/87a2218266f957bb4beacd6b13cb3d610fd15a41) Thanks [@kingston](https://github.com/kingston)! - Upgrade Node.js from 22.18.0 to 24.14.0 and pnpm from 10.27.0 to 10.32.1

- [#865](https://github.com/halfdomelabs/baseplate/pull/865) [`c7131f5`](https://github.com/halfdomelabs/baseplate/commit/c7131f5caebda203ece99d30fcf2d58ead3abdb8) Thanks [@kingston](https://github.com/kingston)! - Upgrade PostgreSQL from 17.5 to 18.3 and Redis from 8.0 to 8.6 in Docker Compose generators

  ## Breaking: Volume mount path changed

  PostgreSQL 18 changed its default data directory from `/var/lib/postgresql/data` to `/var/lib/postgresql/<major>/docker` and placed a symlink at the old path. Mounting a volume directly to `/var/lib/postgresql/data` on Postgres 18+ will cause a container startup error:

  ```
  error mounting "..." to rootfs at "/var/lib/postgresql/data": no such file or directory
  ```

  To align with this change, the Docker Compose volume mount has been updated from `db-data:/var/lib/postgresql/data` to `db-data:/var/lib/postgresql`. This means **existing dev databases will not be found** after upgrading and you must re-create or migrate your database.

  ## Upgrading your dev database

  After syncing, your `docker-compose.yml` will reference `postgres:18.3-alpine` with the new volume mount path. You have three options:

  ### Option 1: Auto-upgrade with pgautoupgrade (in-place upgrade)

  Use the [`pgautoupgrade`](https://github.com/pgautoupgrade/docker-pgautoupgrade) Docker image to upgrade the data directory in-place:
  1. Stop your containers:

     ```bash
     cd docker && docker compose down
     ```

  2. Temporarily swap the image in `docker-compose.yml`:

     ```yaml
     image: pgautoupgrade/pgautoupgrade:18-alpine
     ```

  3. Start the container and watch for the upgrade:

     ```bash
     docker compose up               # wait for "Upgrade to PostgreSQL 18.3 complete." message
     ```

  4. Once complete, stop and revert the image:
     ```bash
     docker compose down
     ```
     Change the image back in `docker-compose.yml`:
     ```yaml
     image: postgres:18.3-alpine
     ```
     ```bash
     docker compose up
     ```

  ### Option 2: Fresh start (for dev databases with no important data)

  Delete the old volume and start fresh:

  ```bash
  cd docker
  docker compose down -v           # removes containers AND volumes
  docker compose up                # starts fresh with Postgres 18
  cd ../apps/backend
  pnpm db:migrate                  # re-apply all migrations
  pnpm db:seed                     # re-seed if applicable
  ```

  ### Option 3: Dump and restore (preserves data)

  If you need to keep your data but don't want to use pgautoupgrade:

  ```bash
  cd docker

  # 1. While still on the OLD docker-compose.yml, dump your data
  docker compose exec db pg_dumpall -U postgres > backup.sql

  # 2. Now sync your project to get the new docker-compose.yml
  # ... run baseplate sync ...

  # 3. Remove old volume and start with new config
  docker compose down -v
  docker compose up -d

  # 4. Restore your data
  docker compose exec -T db psql -U postgres < backup.sql
  rm backup.sql
  ```

- Updated dependencies [[`8dcf7b3`](https://github.com/halfdomelabs/baseplate/commit/8dcf7b3c909672487bad61b7a4465d1860092363)]:
  - @baseplate-dev/utils@0.6.5
  - @baseplate-dev/sync@0.6.5

## 0.6.4

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.4
  - @baseplate-dev/utils@0.6.4

## 0.6.3

### Patch Changes

- Updated dependencies [[`8072019`](https://github.com/halfdomelabs/baseplate/commit/8072019942287ee35720520d08f517272510c931)]:
  - @baseplate-dev/sync@0.6.3
  - @baseplate-dev/utils@0.6.3

## 0.6.2

### Patch Changes

- Reset version to 0.6.2 to fix accidental major version bumps caused by missing changeset fixed-group configuration.

## 0.6.1

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.6.1
  - @baseplate-dev/utils@0.6.1

## 0.6.0

### Patch Changes

- [#802](https://github.com/halfdomelabs/baseplate/pull/802) [`801c706`](https://github.com/halfdomelabs/baseplate/commit/801c7066f7e943c026f03e71b8d39242036e0cad) Thanks [@kingston](https://github.com/kingston)! - Update prettier to ignore unchanged files in output

- Updated dependencies [[`ee7ee0e`](https://github.com/halfdomelabs/baseplate/commit/ee7ee0e552090612190eb4446a52c30f4eefce6a), [`801c706`](https://github.com/halfdomelabs/baseplate/commit/801c7066f7e943c026f03e71b8d39242036e0cad), [`cad5352`](https://github.com/halfdomelabs/baseplate/commit/cad535239b47080e30f894383cc330e37213a76c), [`cad5352`](https://github.com/halfdomelabs/baseplate/commit/cad535239b47080e30f894383cc330e37213a76c)]:
  - @baseplate-dev/utils@0.6.0
  - @baseplate-dev/sync@0.6.0

## 0.5.3

### Patch Changes

- [#769](https://github.com/halfdomelabs/baseplate/pull/769) [`cb2446e`](https://github.com/halfdomelabs/baseplate/commit/cb2446e235794bf5d45a1671ae320ccce12eb504) Thanks [@kingston](https://github.com/kingston)! - Fix hard-coded email template imports in auth plugin

- [#771](https://github.com/halfdomelabs/baseplate/pull/771) [`6c190fe`](https://github.com/halfdomelabs/baseplate/commit/6c190fe50240f0ddc984af757b7900d053433bb1) Thanks [@kingston](https://github.com/kingston)! - Add eslint-plugin-better-tailwindcss for Tailwind correctness linting and improve ESLint config API

  **Monorepo packages:**
  - Add `eslint-plugin-better-tailwindcss` with `correctness` preset for linting Tailwind class conflicts, duplicates, and invalid classes
  - Keep `prettier-plugin-tailwindcss` for formatting (class ordering, line breaks)
  - Create `defineReactEslintConfig()` high-level API with `dirname`, `includeStorybook`, `tailwindEntryPoint`, and `ignores` options
  - Create `defineNodeEslintConfig()` high-level API with `dirname`, `extraDefaultProjectFiles`, and `ignores` options
  - Update `generateTypescriptEslintConfig()` to accept single options object with `rootDir` for `tsconfigRootDir` support
  - Rename `storybookTypescriptEslintOptions` to `storybookTypescriptExtraDevDependencies` for clarity
  - Remove all default exports from ESLint configs to require explicit `dirname` parameter

  **Generated projects:**
  - Add `eslint-plugin-better-tailwindcss` and `tailwindcss` as dev dependencies for React apps
  - Add Tailwind correctness linting to generated React ESLint configs
  - Add `tsconfigRootDir: import.meta.dirname` to all generated ESLint configs for better TypeScript support

- [#766](https://github.com/halfdomelabs/baseplate/pull/766) [`254d675`](https://github.com/halfdomelabs/baseplate/commit/254d675079930e5b569bf1c0c4576f1459d23a03) Thanks [@kingston](https://github.com/kingston)! - Add TypeScript outDir to gitignore when noEmit is false or unset

- [#768](https://github.com/halfdomelabs/baseplate/pull/768) [`9129381`](https://github.com/halfdomelabs/baseplate/commit/9129381e17504136837d07deb9958708791da43e) Thanks [@kingston](https://github.com/kingston)! - Upgrade @vitest/eslint-plugin to 1.6.9
  - @vitest/eslint-plugin: 1.6.6 → 1.6.9

- Updated dependencies []:
  - @baseplate-dev/sync@0.5.3
  - @baseplate-dev/utils@0.5.3

## 0.5.2

### Patch Changes

- [#755](https://github.com/halfdomelabs/baseplate/pull/755) [`02740a6`](https://github.com/halfdomelabs/baseplate/commit/02740a6e230c7fbf28fc768543353e847671c51b) Thanks [@kingston](https://github.com/kingston)! - Upgrade linting packages

  **Major version bumps:**
  - eslint: 9.32.0 → 9.39.2
  - @eslint/js: 9.32.0 → 9.39.2
  - eslint-plugin-perfectionist: 4.15.0 → 5.4.0
  - eslint-plugin-react-hooks: 5.2.0 → 7.0.1
  - eslint-plugin-unicorn: 60.0.0 → 62.0.0
  - globals: 16.4.0 → 17.3.0
  - prettier-plugin-packagejson: 2.5.19 → 3.0.0
  - storybook: 10.1.10 → 10.2.8

  **Minor/patch bumps:**
  - @vitest/eslint-plugin: 1.3.4 → 1.6.6 (tools), 1.6.5 → 1.6.6 (core-generators)
  - eslint-plugin-storybook: 10.1.10 → 10.2.3
  - prettier-plugin-tailwindcss: 0.6.14 → 0.7.2
  - typescript-eslint: 8.38.0 → 8.54.0
  - @types/eslint-plugin-jsx-a11y: 6.10.0 → 6.10.1

  **Config changes:**
  - Updated eslint-plugin-react-hooks v7 API: `configs['recommended-latest']` → `configs.flat['recommended-latest']`
  - Disabled new strict rules from react-hooks v7 (refs, set-state-in-effect, preserve-manual-memoization, incompatible-library)

- [#756](https://github.com/halfdomelabs/baseplate/pull/756) [`dd40bcd`](https://github.com/halfdomelabs/baseplate/commit/dd40bcd219c79f0cd7b66c0427c77deda0664072) Thanks [@kingston](https://github.com/kingston)! - Upgrade packages to fix security vulnerabilities and update to latest versions

  **Security fixes:**
  - @modelcontextprotocol/sdk: 1.25.1 → 1.26.0 (fixes CVE-2026-25536 - cross-client data leak)
  - fastify: 5.6.2 → 5.7.4 (security patches)
  - diff: 8.0.2 → 8.0.3 (fixes CVE-2026-24001 - DoS vulnerability)
  - testcontainers: 11.10.0 → 11.11.0 (fixes undici vulnerability)

  **Package updates (monorepo):**
  - @tailwindcss/vite: 4.1.13 → 4.1.18
  - tailwindcss: 4.1.13 → 4.1.18
  - @tanstack/react-router: 1.139.7 → 1.159.5
  - @tanstack/router-plugin: 1.139.7 → 1.159.5
  - @testing-library/jest-dom: 6.6.3 → 6.9.1
  - concurrently: 9.0.1 → 9.2.1
  - ts-morph: 26.0.0 → 27.0.2

  **Package updates (generated projects):**
  - prisma/@prisma/client/@prisma/adapter-pg: 7.2.0 → 7.4.0
  - postmark: 4.0.2 → 4.0.5
  - axios: 1.12.0 → 1.13.5

- [#758](https://github.com/halfdomelabs/baseplate/pull/758) [`7d1a9d6`](https://github.com/halfdomelabs/baseplate/commit/7d1a9d6d381279434f2ac632e9f8accde34dda25) Thanks [@kingston](https://github.com/kingston)! - Upgrade prettier to 3.8.1
  - prettier: 3.6.2 → 3.8.1
  - Updated test fixtures to match new formatting behavior

- [#757](https://github.com/halfdomelabs/baseplate/pull/757) [`63bd074`](https://github.com/halfdomelabs/baseplate/commit/63bd074b3b24b0978d4271a5bc76a8531b0f60c2) Thanks [@kingston](https://github.com/kingston)! - Upgrade TypeScript to 5.9.3
  - typescript: 5.8.3 → 5.9.3

- Updated dependencies [[`dd40bcd`](https://github.com/halfdomelabs/baseplate/commit/dd40bcd219c79f0cd7b66c0427c77deda0664072)]:
  - @baseplate-dev/sync@0.5.2
  - @baseplate-dev/utils@0.5.2

## 0.5.1

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.5.1
  - @baseplate-dev/utils@0.5.1

## 0.5.0

### Patch Changes

- [#732](https://github.com/halfdomelabs/baseplate/pull/732) [`fbabdec`](https://github.com/halfdomelabs/baseplate/commit/fbabdecf6715c21799d1c224b3a2162ef1f49797) Thanks [@kingston](https://github.com/kingston)! - Remove root: 'src/' from vitest.config.ts

- [#735](https://github.com/halfdomelabs/baseplate/pull/735) [`9b31726`](https://github.com/halfdomelabs/baseplate/commit/9b31726ee0dce77dc7b16fa334eb597d86349599) Thanks [@kingston](https://github.com/kingston)! - Support ES2023 in Vite tsconfig generators and re-enable replaceAll ESLint rule for React apps

- [#731](https://github.com/halfdomelabs/baseplate/pull/731) [`97bd14e`](https://github.com/halfdomelabs/baseplate/commit/97bd14e381206b54e55c22264d1d406e83146146) Thanks [@kingston](https://github.com/kingston)! - Add support for library packages in addition to apps
  - Add `packages` array to ProjectDefinition schema with node-library type
  - Add `packagesFolder` to MonorepoSettings (default: "packages")
  - Create node-library generator with tsc build configuration
  - Add library package compiler for code generation
  - Update workspace patterns to include packages/\* folder
  - Add UI for creating and managing library packages in the Apps section

- [#733](https://github.com/halfdomelabs/baseplate/pull/733) [`2d5abd5`](https://github.com/halfdomelabs/baseplate/commit/2d5abd53fccfc2b15f8142fc796c5e4ea4c2f92a) Thanks [@kingston](https://github.com/kingston)! - Upgrade pnpm to 10.27.0 and add `blockExoticSubdeps: true` to generated pnpm-workspace.yaml

- [#734](https://github.com/halfdomelabs/baseplate/pull/734) [`8bfc742`](https://github.com/halfdomelabs/baseplate/commit/8bfc742b8a93393a5539babfd11b97a88ee9c39e) Thanks [@kingston](https://github.com/kingston)! - Upgrade vitest to 4.0.16
  - vitest: 3.2.4 → 4.0.16
  - @vitest/eslint-plugin: 1.3.4 → 1.6.5

  Breaking changes addressed:
  - Updated `UserConfig` type to `ViteUserConfig` in vitest config files
  - Fixed mock type annotations for vitest 4.0 compatibility

- Updated dependencies [[`c7d373e`](https://github.com/halfdomelabs/baseplate/commit/c7d373ebaaeda2522515fdaeae0d37d0cd9ce7fe), [`8bfc742`](https://github.com/halfdomelabs/baseplate/commit/8bfc742b8a93393a5539babfd11b97a88ee9c39e)]:
  - @baseplate-dev/sync@0.5.0
  - @baseplate-dev/utils@0.5.0

## 0.4.4

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.4.4
  - @baseplate-dev/utils@0.4.4

## 0.4.3

### Patch Changes

- [#717](https://github.com/halfdomelabs/baseplate/pull/717) [`83e4e7f`](https://github.com/halfdomelabs/baseplate/commit/83e4e7f60adf67480cebb4ff419c015ff282010d) Thanks [@kingston](https://github.com/kingston)! - Add support for generating vitest on web apps

- [#722](https://github.com/halfdomelabs/baseplate/pull/722) [`8622c4e`](https://github.com/halfdomelabs/baseplate/commit/8622c4e2b91788ad4a368c9f06f82a17ee1a29ed) Thanks [@kingston](https://github.com/kingston)! - Add support for generating files in package.json

- Updated dependencies []:
  - @baseplate-dev/sync@0.4.3
  - @baseplate-dev/utils@0.4.3

## 0.4.2

### Patch Changes

- [#701](https://github.com/halfdomelabs/baseplate/pull/701) [`e8576b9`](https://github.com/halfdomelabs/baseplate/commit/e8576b9ba5912acf9d81bcc1b18a0fbc8df91220) Thanks [@kingston](https://github.com/kingston)! - Upgrade to Zod v4

- [#697](https://github.com/halfdomelabs/baseplate/pull/697) [`11fa86f`](https://github.com/halfdomelabs/baseplate/commit/11fa86fb8e7a209175f132b1b3d59cd24cf13d54) Thanks [@kingston](https://github.com/kingston)! - Ignore \*.map files from built output in package.json

- [#713](https://github.com/halfdomelabs/baseplate/pull/713) [`74529e7`](https://github.com/halfdomelabs/baseplate/commit/74529e7fffae8a70f8cfe801a1897204d010e291) Thanks [@kingston](https://github.com/kingston)! - Migrate Vitest global setup from single merged file to individual files per generator
  - Replace `globalSetupOperations` Map with `globalSetupFiles` array in vitest config provider
  - Vitest generator now always renders `global-setup-env.ts` for environment loading
  - Each generator (Redis, Prisma) now creates its own global setup file
  - Vitest config outputs `globalSetup` as an array with env file first, then sorted additional files

- [#694](https://github.com/halfdomelabs/baseplate/pull/694) [`4be6c7d`](https://github.com/halfdomelabs/baseplate/commit/4be6c7dc7d900c37585b93cf5bb7198de6a41f1f) Thanks [@kingston](https://github.com/kingston)! - Add test:affected command to monorepo

- Updated dependencies [[`795ee4c`](https://github.com/halfdomelabs/baseplate/commit/795ee4c18e7b393fb9247ced23a12de5e219ab15), [`11fa86f`](https://github.com/halfdomelabs/baseplate/commit/11fa86fb8e7a209175f132b1b3d59cd24cf13d54), [`4be6c7d`](https://github.com/halfdomelabs/baseplate/commit/4be6c7dc7d900c37585b93cf5bb7198de6a41f1f)]:
  - @baseplate-dev/sync@0.4.2
  - @baseplate-dev/utils@0.4.2

## 0.4.1

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.4.1
  - @baseplate-dev/utils@0.4.1

## 0.4.0

### Patch Changes

- [#692](https://github.com/halfdomelabs/baseplate/pull/692) [`c3c2a00`](https://github.com/halfdomelabs/baseplate/commit/c3c2a001d57a21f76e064af55941a43bedf26f18) Thanks [@kingston](https://github.com/kingston)! - Set maxWorkers to 1 to allow for integration tests to work properly. Note: This is a temporary solution until we implement parallel db tests.

- [#677](https://github.com/halfdomelabs/baseplate/pull/677) [`6daff18`](https://github.com/halfdomelabs/baseplate/commit/6daff18a033d2d78746984edebba4d8c6fe957a5) Thanks [@kingston](https://github.com/kingston)! - Fix improper name for declaration() and typeDeclaration() when name is default

- Updated dependencies [[`839cbdf`](https://github.com/halfdomelabs/baseplate/commit/839cbdfc6ddc059aa86d24bf6ec5d8e95cce9042), [`c3c2a00`](https://github.com/halfdomelabs/baseplate/commit/c3c2a001d57a21f76e064af55941a43bedf26f18)]:
  - @baseplate-dev/sync@0.4.0
  - @baseplate-dev/utils@0.4.0

## 0.3.8

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.8
  - @baseplate-dev/utils@0.3.8

## 0.3.7

### Patch Changes

- [#666](https://github.com/halfdomelabs/baseplate/pull/666) [`9508a8e`](https://github.com/halfdomelabs/baseplate/commit/9508a8ee75e33ea0c0632f3f5ef5621b020f530d) Thanks [@kingston](https://github.com/kingston)! - Add node/browser globals to the eslint configuration with 'globals' package dependency

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.7
  - @baseplate-dev/utils@0.3.7

## 0.3.6

### Patch Changes

- [#663](https://github.com/halfdomelabs/baseplate/pull/663) [`1186a21`](https://github.com/halfdomelabs/baseplate/commit/1186a21df267d112a84a42ff1d3c87b495452ce0) Thanks [@kingston](https://github.com/kingston)! - Upgrade axios to 1.12.0
  - axios: 1.8.3 → 1.12.0

  This upgrade brings the latest axios features and security improvements for generated projects that use axios functionality.

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.6
  - @baseplate-dev/utils@0.3.6

## 0.3.5

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.5
  - @baseplate-dev/utils@0.3.5

## 0.3.4

### Patch Changes

- [#643](https://github.com/halfdomelabs/baseplate/pull/643) [`7d9e6d0`](https://github.com/halfdomelabs/baseplate/commit/7d9e6d01e0a9920cee4c4d499beeffc1c663494a) Thanks [@kingston](https://github.com/kingston)! - Upgrade to TypeScript 5.8 with erasable syntax only mode

  This upgrade modernizes the codebase with TypeScript 5.8, enables erasable syntax only mode for better performance, and updates runtime dependencies.

  **Key Changes:**
  - Upgraded TypeScript to version 5.8
  - Enabled `erasableSyntaxOnly` compiler option for improved build performance
  - Updated Node.js requirement to 22.18
  - Updated PNPM requirement to 10.15
  - Fixed parameter property syntax to be compatible with erasable syntax only mode

- Updated dependencies [[`67dba69`](https://github.com/halfdomelabs/baseplate/commit/67dba697439e6bc76b81522c133d920af4dbdbb1), [`7d9e6d0`](https://github.com/halfdomelabs/baseplate/commit/7d9e6d01e0a9920cee4c4d499beeffc1c663494a)]:
  - @baseplate-dev/sync@0.3.4
  - @baseplate-dev/utils@0.3.4

## 0.3.3

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.3
  - @baseplate-dev/utils@0.3.3

## 0.3.2

### Patch Changes

- [#631](https://github.com/halfdomelabs/baseplate/pull/631) [`b4c15b9`](https://github.com/halfdomelabs/baseplate/commit/b4c15b98a518c53828f81624764ba693def85faf) Thanks [@kingston](https://github.com/kingston)! - Add template replacements support for TypeScript templates to enable dynamic value substitution in generated code

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.2
  - @baseplate-dev/utils@0.3.2

## 0.3.1

### Patch Changes

- [#629](https://github.com/halfdomelabs/baseplate/pull/629) [`d79b0cf`](https://github.com/halfdomelabs/baseplate/commit/d79b0cfb9061dbeccc976a2f018b264849bef788) Thanks [@kingston](https://github.com/kingston)! - Add queue plugin with pg-boss implementation

  Introduces a new queue plugin that provides background job processing capabilities for Baseplate projects. The initial implementation uses pg-boss as the queue backend, providing:
  - **Queue Plugin Architecture**: Modular queue system with provider-based implementation pattern
  - **pg-boss Integration**: PostgreSQL-based queue system with robust job processing features
  - **Type-Safe Queue Definitions**: Full TypeScript support for queue job payloads and handlers
  - **Job Management Features**:
    - Delayed job execution
    - Retry logic with configurable backoff strategies (fixed or exponential)
    - Priority-based job processing
    - Repeatable/cron jobs with schedule patterns
  - **Worker Script Generation**: Automatic generation of worker scripts for processing background jobs
  - **Queue Registry Pattern**: Centralized queue management with automatic discovery
  - **Maintenance Operations**: Configurable job retention and cleanup policies
  - **Graceful Shutdown**: Proper cleanup and job completion on worker termination

  The plugin follows Baseplate's spec-implementation pattern, allowing for future queue backends while maintaining a consistent API.

- Updated dependencies []:
  - @baseplate-dev/sync@0.3.1
  - @baseplate-dev/utils@0.3.1

## 0.3.0

### Patch Changes

- [#626](https://github.com/halfdomelabs/baseplate/pull/626) [`8ec33fc`](https://github.com/halfdomelabs/baseplate/commit/8ec33fcdc8fea9cb20e79586b854bf075270ab53) Thanks [@kingston](https://github.com/kingston)! - Remove dotenv references and replace with native node --env-file option

- [#621](https://github.com/halfdomelabs/baseplate/pull/621) [`fbde70f`](https://github.com/halfdomelabs/baseplate/commit/fbde70ffbcae025318480e9607924978847fba2b) Thanks [@kingston](https://github.com/kingston)! - Update package versions to match latest dependencies from main repo
  - Update ESLint and related plugins to latest versions
  - Update TypeScript ESLint to 8.38.0
  - Update Prettier plugins to latest versions
  - Update Tailwind CSS Prettier plugin to 0.6.14

- Updated dependencies [[`687a47e`](https://github.com/halfdomelabs/baseplate/commit/687a47e5e39abc5138ba3fc2d0db9cfee6e4dbfe)]:
  - @baseplate-dev/sync@0.3.0
  - @baseplate-dev/utils@0.3.0

## 0.2.6

### Patch Changes

- Updated dependencies []:
  - @baseplate-dev/sync@0.2.6
  - @baseplate-dev/utils@0.2.6

## 0.2.5

### Patch Changes

- [#613](https://github.com/halfdomelabs/baseplate/pull/613) [`2aae451`](https://github.com/halfdomelabs/baseplate/commit/2aae45107cb6331234d14d8a6491b55e7f6d9f33) Thanks [@kingston](https://github.com/kingston)! - Add $templateName syntax for intra-generator template references

  Templates can now reference other templates within the same generator using the `$templateName` syntax. This enables templates to access file paths of other templates in the same generator during generation.

  Key features:
  - Use `$templateName` in template files to reference other generator templates
  - Kebab-case template names are automatically converted to camelCase (e.g., `session-constants` → `sessionConstants`)
  - Configure referenced templates using the `referencedGeneratorTemplates` field in extractor.json
  - Works seamlessly with existing variable replacement and import maps
  - Provides clear error messages for missing template references

  Example usage:

  ```typescript
  // In template file
  import { Constants } from '$sessionConstants';
  import { Utils } from '$authUtils';

  // In extractor.json
  {
    "user-service": {
      "sourceFile": "services/user.service.ts",
      "referencedGeneratorTemplates": ["session-constants", "auth-utils"]
    }
  }
  ```

  This feature is designed for intra-generator template references only. For cross-generator references, continue using import map providers.

- Updated dependencies [[`e0d690c`](https://github.com/halfdomelabs/baseplate/commit/e0d690c1e139f93a8ff60c9e0c90bc72cdf705a4)]:
  - @baseplate-dev/sync@0.2.5
  - @baseplate-dev/utils@0.2.5

## 0.2.4

### Patch Changes

- Updated dependencies [[`ffe791f`](https://github.com/halfdomelabs/baseplate/commit/ffe791f6ab44e82c8481f3a18df9262dec71cff6)]:
  - @baseplate-dev/utils@0.2.4
  - @baseplate-dev/sync@0.2.4

## 0.2.3

### Patch Changes

- [#601](https://github.com/halfdomelabs/baseplate/pull/601) [`f3bd169`](https://github.com/halfdomelabs/baseplate/commit/f3bd169b8debc52628179ca6ebd93c20b8a6f841) Thanks [@kingston](https://github.com/kingston)! - Add template renderers for text and raw templates

  This adds corresponding template renderers for text and raw templates, following the same pattern as TypeScript template renderers. The new renderers provide consistent APIs for generating template rendering functions that can be used in generator code.

  Key features:
  - Text template renderers support both individual templates and template groups
  - Raw template renderers support individual templates (no groups needed)
  - Full TypeScript type safety with proper action input types
  - Integration with the template renderers plugin system
  - Consistent API design across all template types (TypeScript, text, raw)

  The renderers are automatically integrated with their respective file extractors and will be available for use in generated code.

- [#602](https://github.com/halfdomelabs/baseplate/pull/602) [`f0cb763`](https://github.com/halfdomelabs/baseplate/commit/f0cb7632f04bfb487722785fac7218d76d3b7e3b) Thanks [@kingston](https://github.com/kingston)! - Improve Docker Compose generation with security, resource management, and developer experience enhancements

  ## Version Upgrades
  - Upgrade PostgreSQL from 16.2 to 17.5-alpine
  - Upgrade Redis from 7.2.4 to 8.0-alpine
  - For existing projects, follow the upgrade guide at https://docs.baseplate.dev/guides/upgrading-postgres/

  ## Security Improvements
  - Use environment variables for all sensitive data (passwords, usernames)
  - Add `security_opt: no-new-privileges:true` to prevent privilege escalation
  - Fix Redis healthcheck to include authentication

  ## Networking
  - Create custom bridge network for better isolation
  - All services communicate over internal network

  ## Database Configuration
  - Add PostgreSQL environment variables: `POSTGRES_DB`, `POSTGRES_INITDB_ARGS`
  - Use default `postgres` user for simplicity in local development
  - Add container names for easier management
  - Improve volume configuration

  ## Redis Configuration
  - Add Redis memory limits (256MB) and eviction policy (no-eviction for BullMQ)
  - Configure maxmemory and maxmemory-policy

  ## Developer Experience
  - Add logging configuration to prevent disk filling (10MB max, 3 files)
  - Generate `.env.example` file with all available variables
  - Improve health checks with start periods
  - Better default values using project name
  - Fix interface bug in redis.ts (PostgresConfig → RedisConfig)

  ## Breaking Changes
  - PostgreSQL generator now requires additional config parameters (database, projectName)
  - Redis generator now requires projectName parameter
  - Generated Docker Compose files now use custom bridge network

- [#596](https://github.com/halfdomelabs/baseplate/pull/596) [`059edf7`](https://github.com/halfdomelabs/baseplate/commit/059edf771755f1ff846494f238d777a9d1f7f5d7) Thanks [@kingston](https://github.com/kingston)! - Simplify template metadata system by consolidating template definitions in extractor.json
  - Consolidate template definitions in extractor.json using template names as keys instead of file paths
  - Rename .template-metadata.json to .templates-info.json with simplified instance tracking
  - Remove file-id-map.json dependency and related file ID mapping logic
  - Update TemplateExtractorConfigLookup to work without file ID mapping
  - Update all template extractors and tests to use new metadata format
  - Add migration script to convert existing extractor.json files to new format

- Updated dependencies [[`a506e88`](https://github.com/halfdomelabs/baseplate/commit/a506e88893bf395916ef3fbf6dd9dd7c0ff17acb), [`059edf7`](https://github.com/halfdomelabs/baseplate/commit/059edf771755f1ff846494f238d777a9d1f7f5d7), [`059edf7`](https://github.com/halfdomelabs/baseplate/commit/059edf771755f1ff846494f238d777a9d1f7f5d7), [`de9e1b4`](https://github.com/halfdomelabs/baseplate/commit/de9e1b4f3a8a7dcf6b962781a0aa589eb970c7a8)]:
  - @baseplate-dev/sync@0.2.3
  - @baseplate-dev/utils@0.2.3

## 0.2.2

### Patch Changes

- [#589](https://github.com/halfdomelabs/baseplate/pull/589) [`dce88ac`](https://github.com/halfdomelabs/baseplate/commit/dce88ac8d1f951f7336c12c5e004107de3a23e97) Thanks [@kingston](https://github.com/kingston)! - Add Template Renderers plugin for auto-generated simplified template rendering APIs

  This new plugin reduces template rendering boilerplate by 70-80% by automatically generating pre-configured rendering functions. It follows the same architectural pattern as the typed templates system, with a TypeScript-specific renderer function (`renderTsTemplateRenderers`) that generates generic definitions consumed by the plugin.

  **Key Features:**
  - **Simplified API**: Reduces complex `renderTemplate`/`renderTemplateGroup` calls to simple `renderers.templateName.render()` calls
  - **Automatic Dependency Resolution**: Import map providers and task dependencies are automatically resolved
  - **Type Safety**: Generated interfaces provide full TypeScript type safety
  - **Generic Architecture**: Extensible to support future template types (text, raw, etc.)
  - **Backward Compatibility**: Existing generators continue working unchanged

  **Before:**

  ```typescript
  await builder.apply(
    typescriptFile.renderTemplateGroup({
      group: templates.hooksGroup,
      paths,
      variables: { useCurrentUser: { TPL_USER: userQueryName } },
      importMapProviders: { generatedGraphqlImports, reactErrorImports },
    }),
  );
  ```

  **After:**

  ```typescript
  await builder.apply(
    renderers.hooksGroup.render({
      variables: { useCurrentUser: { TPL_USER: userQueryName } },
    }),
  );
  ```

  The plugin automatically generates TypeScript interfaces, tasks with resolved dependencies, and exports that integrate seamlessly with the existing generator system.

- Updated dependencies [[`f8c9284`](https://github.com/halfdomelabs/baseplate/commit/f8c9284752c12c6aab70481bf98e6fa402e61075), [`f8c9284`](https://github.com/halfdomelabs/baseplate/commit/f8c9284752c12c6aab70481bf98e6fa402e61075)]:
  - @baseplate-dev/utils@0.2.2
  - @baseplate-dev/sync@0.2.2

## 0.2.1

### Patch Changes

- [#581](https://github.com/halfdomelabs/baseplate/pull/581) [`d7d9985`](https://github.com/halfdomelabs/baseplate/commit/d7d998540ca5886259f93b5020c4d8939c5cdf5f) Thanks [@kingston](https://github.com/kingston)! - Fix settings for prettier with Tailwind v4

- Updated dependencies []:
  - @baseplate-dev/sync@0.2.1
  - @baseplate-dev/utils@0.2.1

## 0.2.0

### Patch Changes

- [#568](https://github.com/halfdomelabs/baseplate/pull/568) [`06b4faf`](https://github.com/halfdomelabs/baseplate/commit/06b4fafaf3d2ed848d959a9911b9bfa26702d4a3) Thanks [@kingston](https://github.com/kingston)! - Enable the import-x/consistent-type-specifier-style rule to clean up type imports

- [#574](https://github.com/halfdomelabs/baseplate/pull/574) [`f5d7a6f`](https://github.com/halfdomelabs/baseplate/commit/f5d7a6f781b1799bb8ad197973e5cec04f869264) Thanks [@kingston](https://github.com/kingston)! - Refactored naming of project paths to output paths to be clearer about their meaning

- [#570](https://github.com/halfdomelabs/baseplate/pull/570) [`56a3a89`](https://github.com/halfdomelabs/baseplate/commit/56a3a8944b9a557cca0484d78851fca10122e5f9) Thanks [@kingston](https://github.com/kingston)! - Implement phase 1 of reverse template generator v2

- Updated dependencies [[`06b4faf`](https://github.com/halfdomelabs/baseplate/commit/06b4fafaf3d2ed848d959a9911b9bfa26702d4a3), [`f5d7a6f`](https://github.com/halfdomelabs/baseplate/commit/f5d7a6f781b1799bb8ad197973e5cec04f869264), [`fd63554`](https://github.com/halfdomelabs/baseplate/commit/fd635544eb6df0385501f61f3e51bce554633458), [`a94eed9`](https://github.com/halfdomelabs/baseplate/commit/a94eed9c12236c5fb772d998b9c34ca876c10c13), [`56a3a89`](https://github.com/halfdomelabs/baseplate/commit/56a3a8944b9a557cca0484d78851fca10122e5f9), [`a94eed9`](https://github.com/halfdomelabs/baseplate/commit/a94eed9c12236c5fb772d998b9c34ca876c10c13), [`56a3a89`](https://github.com/halfdomelabs/baseplate/commit/56a3a8944b9a557cca0484d78851fca10122e5f9)]:
  - @baseplate-dev/utils@0.2.0
  - @baseplate-dev/sync@0.2.0

## 0.1.3

### Patch Changes

- [#562](https://github.com/halfdomelabs/baseplate/pull/562) [`30fdf49`](https://github.com/halfdomelabs/baseplate/commit/30fdf4988de244c30d13c93b7761587d4c1413ad) Thanks [@kingston](https://github.com/kingston)! - Switch to Typescript project references for building/watching project

- Updated dependencies [[`30fdf49`](https://github.com/halfdomelabs/baseplate/commit/30fdf4988de244c30d13c93b7761587d4c1413ad)]:
  - @baseplate-dev/utils@0.1.3
  - @baseplate-dev/sync@0.1.3

## 0.1.2

### Patch Changes

- [#560](https://github.com/halfdomelabs/baseplate/pull/560) [`7e38ae9`](https://github.com/halfdomelabs/baseplate/commit/7e38ae9102c7c8ea958d2dab94e76be848d1c1a8) Thanks [@kingston](https://github.com/kingston)! - Add README files to all packages and plugins explaining their purpose within the Baseplate monorepo.

- Updated dependencies [[`7e38ae9`](https://github.com/halfdomelabs/baseplate/commit/7e38ae9102c7c8ea958d2dab94e76be848d1c1a8)]:
  - @baseplate-dev/sync@0.1.2
  - @baseplate-dev/utils@0.1.2

## 0.1.1

### Patch Changes

- [#559](https://github.com/halfdomelabs/baseplate/pull/559) [`17dd71e`](https://github.com/halfdomelabs/baseplate/commit/17dd71e3b9f83e3359eb007f8eab1c4792bdbb8b) Thanks [@kingston](https://github.com/kingston)! - Rename workspace to @baseplate-dev/\* and reset versions to 0.1.0

- [#557](https://github.com/halfdomelabs/baseplate/pull/557) [`9caaa0a`](https://github.com/halfdomelabs/baseplate/commit/9caaa0aed05677a75fed79601dcfd24ec85ab5ad) Thanks [@kingston](https://github.com/kingston)! - Update LICENSE to modified MPL-2.0 license

- Updated dependencies [[`17dd71e`](https://github.com/halfdomelabs/baseplate/commit/17dd71e3b9f83e3359eb007f8eab1c4792bdbb8b), [`9caaa0a`](https://github.com/halfdomelabs/baseplate/commit/9caaa0aed05677a75fed79601dcfd24ec85ab5ad)]:
  - @baseplate-dev/utils@0.1.1
  - @baseplate-dev/sync@0.1.1
