@baseplate-dev/core-generators 0.6.4 → 0.6.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,107 @@
1
1
  # @baseplate-dev/core-generators
2
2
 
3
+ ## 0.6.6
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @baseplate-dev/sync@0.6.6
9
+ - @baseplate-dev/utils@0.6.6
10
+
11
+ ## 0.6.5
12
+
13
+ ### Patch Changes
14
+
15
+ - [#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
16
+
17
+ - [#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
18
+
19
+ ## Breaking: Volume mount path changed
20
+
21
+ 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:
22
+
23
+ ```
24
+ error mounting "..." to rootfs at "/var/lib/postgresql/data": no such file or directory
25
+ ```
26
+
27
+ 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.
28
+
29
+ ## Upgrading your dev database
30
+
31
+ After syncing, your `docker-compose.yml` will reference `postgres:18.3-alpine` with the new volume mount path. You have three options:
32
+
33
+ ### Option 1: Auto-upgrade with pgautoupgrade (in-place upgrade)
34
+
35
+ Use the [`pgautoupgrade`](https://github.com/pgautoupgrade/docker-pgautoupgrade) Docker image to upgrade the data directory in-place:
36
+ 1. Stop your containers:
37
+
38
+ ```bash
39
+ cd docker && docker compose down
40
+ ```
41
+
42
+ 2. Temporarily swap the image in `docker-compose.yml`:
43
+
44
+ ```yaml
45
+ image: pgautoupgrade/pgautoupgrade:18-alpine
46
+ ```
47
+
48
+ 3. Start the container and watch for the upgrade:
49
+
50
+ ```bash
51
+ docker compose up # wait for "Upgrade to PostgreSQL 18.3 complete." message
52
+ ```
53
+
54
+ 4. Once complete, stop and revert the image:
55
+ ```bash
56
+ docker compose down
57
+ ```
58
+ Change the image back in `docker-compose.yml`:
59
+ ```yaml
60
+ image: postgres:18.3-alpine
61
+ ```
62
+ ```bash
63
+ docker compose up
64
+ ```
65
+
66
+ ### Option 2: Fresh start (for dev databases with no important data)
67
+
68
+ Delete the old volume and start fresh:
69
+
70
+ ```bash
71
+ cd docker
72
+ docker compose down -v # removes containers AND volumes
73
+ docker compose up # starts fresh with Postgres 18
74
+ cd ../apps/backend
75
+ pnpm db:migrate # re-apply all migrations
76
+ pnpm db:seed # re-seed if applicable
77
+ ```
78
+
79
+ ### Option 3: Dump and restore (preserves data)
80
+
81
+ If you need to keep your data but don't want to use pgautoupgrade:
82
+
83
+ ```bash
84
+ cd docker
85
+
86
+ # 1. While still on the OLD docker-compose.yml, dump your data
87
+ docker compose exec db pg_dumpall -U postgres > backup.sql
88
+
89
+ # 2. Now sync your project to get the new docker-compose.yml
90
+ # ... run baseplate sync ...
91
+
92
+ # 3. Remove old volume and start with new config
93
+ docker compose down -v
94
+ docker compose up -d
95
+
96
+ # 4. Restore your data
97
+ docker compose exec -T db psql -U postgres < backup.sql
98
+ rm backup.sql
99
+ ```
100
+
101
+ - Updated dependencies [[`8dcf7b3`](https://github.com/halfdomelabs/baseplate/commit/8dcf7b3c909672487bad61b7a4465d1860092363)]:
102
+ - @baseplate-dev/utils@0.6.5
103
+ - @baseplate-dev/sync@0.6.5
104
+
3
105
  ## 0.6.4
4
106
 
5
107
  ### Patch Changes
@@ -1,3 +1,3 @@
1
- export declare const NODE_VERSION = "22.18.0";
2
- export declare const PNPM_VERSION = "10.27.0";
1
+ export declare const NODE_VERSION = "24.14.0";
2
+ export declare const PNPM_VERSION = "10.32.1";
3
3
  //# sourceMappingURL=node.d.ts.map
@@ -1,3 +1,3 @@
1
- export const NODE_VERSION = '22.18.0';
2
- export const PNPM_VERSION = '10.27.0';
1
+ export const NODE_VERSION = '24.14.0';
2
+ export const PNPM_VERSION = '10.32.1';
3
3
  //# sourceMappingURL=node.js.map
@@ -2,7 +2,7 @@ export function generatePostgresDockerCompose(config) {
2
2
  return {
3
3
  services: [
4
4
  ` db:
5
- image: postgres:17.5-alpine
5
+ image: postgres:18.3-alpine
6
6
  container_name: \${COMPOSE_PROJECT_NAME:-${config.projectName}}-db
7
7
  restart: on-failure
8
8
  security_opt:
@@ -14,7 +14,7 @@ export function generatePostgresDockerCompose(config) {
14
14
  ports:
15
15
  - "\${POSTGRES_PORT:-${config.port}}:5432"
16
16
  volumes:
17
- - db-data:/var/lib/postgresql/data
17
+ - db-data:/var/lib/postgresql
18
18
  networks:
19
19
  - backend
20
20
  logging:
@@ -2,7 +2,7 @@ export function generateRedisDockerCompose(config) {
2
2
  return {
3
3
  services: [
4
4
  ` redis:
5
- image: redis:8.0-alpine
5
+ image: redis:8.6-alpine
6
6
  container_name: \${COMPOSE_PROJECT_NAME:-${config.projectName}}-redis
7
7
  restart: on-failure
8
8
  security_opt:
@@ -18,6 +18,13 @@ export declare function tsHoistedFragment(key: string, fragment: TsCodeFragment
18
18
  * @returns The positioned hoisted fragment.
19
19
  */
20
20
  export declare function tsPositionedHoistedFragment(key: string, fragment: TsCodeFragment | string, position: TsHoistedFragmentPosition, imports?: TsImportDeclaration[] | TsImportDeclaration): TsPositionedHoistedFragment;
21
+ /**
22
+ * Returns a new fragment with additional hoisted fragments appended.
23
+ * @param fragment - The base fragment to extend.
24
+ * @param hoistedFragments - The hoisted fragments to append.
25
+ * @returns A new fragment with the hoisted fragments added.
26
+ */
27
+ export declare function withHoistedFragments(fragment: TsCodeFragment, hoistedFragments: TsHoistedFragment[]): TsCodeFragment;
21
28
  /**
22
29
  * Create a code fragment.
23
30
  * @param contents - The contents of the code fragment.
@@ -1 +1 @@
1
- {"version":3,"file":"creators.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/creators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,GAAG,MAAM,EACjC,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EACrD,EAAE,gBAAgB,EAAE,GAAE,qBAA0B,GAC/C,iBAAiB,CAanB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,GAAG,MAAM,EACjC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,GACpD,2BAA2B,CAa7B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EACrD,EAAE,gBAAgB,EAAE,GAAE,qBAA0B,GAC/C,cAAc,CAMhB"}
1
+ {"version":3,"file":"creators.d.ts","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/creators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,GAAG,MAAM,EACjC,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EACrD,EAAE,gBAAgB,EAAE,GAAE,qBAA0B,GAC/C,iBAAiB,CAanB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,GAAG,MAAM,EACjC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,GACpD,2BAA2B,CAa7B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,iBAAiB,EAAE,GACpC,cAAc,CAQhB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EACrD,EAAE,gBAAgB,EAAE,GAAE,qBAA0B,GAC/C,cAAc,CAMhB"}
@@ -36,6 +36,21 @@ export function tsPositionedHoistedFragment(key, fragment, position, imports) {
36
36
  position,
37
37
  };
38
38
  }
39
+ /**
40
+ * Returns a new fragment with additional hoisted fragments appended.
41
+ * @param fragment - The base fragment to extend.
42
+ * @param hoistedFragments - The hoisted fragments to append.
43
+ * @returns A new fragment with the hoisted fragments added.
44
+ */
45
+ export function withHoistedFragments(fragment, hoistedFragments) {
46
+ return {
47
+ ...fragment,
48
+ hoistedFragments: [
49
+ ...(fragment.hoistedFragments ?? []),
50
+ ...hoistedFragments,
51
+ ],
52
+ };
53
+ }
39
54
  /**
40
55
  * Create a code fragment.
41
56
  * @param contents - The contents of the code fragment.
@@ -1 +1 @@
1
- {"version":3,"file":"creators.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/creators.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,QAAiC,EACjC,OAAqD,EACrD,EAAE,gBAAgB,KAA4B,EAAE;IAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,WAAW,GACf,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACvD,gBAAgB,EAAE;YAChB,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC;SACxC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,QAAiC,EACjC,QAAmC,EACnC,OAAqD;IAErD,iGAAiG;IACjG,gGAAgG;IAChG,WAAW;IACX,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC5C,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,OAAqD,EACrD,EAAE,gBAAgB,KAA4B,EAAE;IAEhD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QACpE,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"creators.js","sourceRoot":"","sources":["../../../../src/renderers/typescript/fragments/creators.ts"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,QAAiC,EACjC,OAAqD,EACrD,EAAE,gBAAgB,KAA4B,EAAE;IAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,WAAW,GACf,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,OAAO;QACL,GAAG;QACH,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACvD,gBAAgB,EAAE;YAChB,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,WAAW,CAAC,gBAAgB,IAAI,EAAE,CAAC;SACxC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,QAAiC,EACjC,QAAmC,EACnC,OAAqD;IAErD,iGAAiG;IACjG,gGAAgG;IAChG,WAAW;IACX,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QAC5C,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAwB,EACxB,gBAAqC;IAErC,OAAO;QACL,GAAG,QAAQ;QACX,gBAAgB,EAAE;YAChB,GAAG,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACpC,GAAG,gBAAgB;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,OAAqD,EACrD,EAAE,gBAAgB,KAA4B,EAAE;IAEhD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QACpE,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baseplate-dev/core-generators",
3
- "version": "0.6.4",
3
+ "version": "0.6.6",
4
4
  "description": "Core generators for Baseplate",
5
5
  "keywords": [
6
6
  "baseplate",
@@ -62,25 +62,25 @@
62
62
  "semver": "^7.5.4",
63
63
  "sort-package-json": "2.10.1",
64
64
  "ts-morph": "27.0.2",
65
- "yaml": "2.8.1",
65
+ "yaml": "2.8.2",
66
66
  "zod": "^4.3.6",
67
- "@baseplate-dev/sync": "0.6.4",
68
- "@baseplate-dev/utils": "0.6.4"
67
+ "@baseplate-dev/sync": "0.6.6",
68
+ "@baseplate-dev/utils": "0.6.6"
69
69
  },
70
70
  "devDependencies": {
71
- "@types/node": "^22.17.2",
71
+ "@types/node": "^24.12.0",
72
72
  "@types/prettier": "^2.7.3",
73
73
  "@types/semver": "^7.5.0",
74
74
  "concurrently": "9.2.1",
75
75
  "cpx2": "8.0.0",
76
76
  "eslint": "9.39.2",
77
- "oxlint": "1.55.0",
77
+ "oxlint": "1.56.0",
78
78
  "typescript": "5.9.3",
79
79
  "vitest": "4.0.16",
80
- "@baseplate-dev/tools": "0.6.4"
80
+ "@baseplate-dev/tools": "0.6.6"
81
81
  },
82
82
  "engines": {
83
- "node": "^22.0.0"
83
+ "node": "^24.0.0"
84
84
  },
85
85
  "volta": {
86
86
  "extends": "../../package.json"