@docouno/devkit 0.3.0 → 0.3.1

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/README.md CHANGED
@@ -9,13 +9,13 @@ Requires Linux x86_64, a local Docker Engine with Docker Compose 5.0.0 or newer,
9
9
  Start the interactive CLI:
10
10
 
11
11
  ```sh
12
- npx @docouno/devkit@0.3.0
12
+ npx @docouno/devkit@0.3.1
13
13
  ```
14
14
 
15
15
  Or provide the choices explicitly:
16
16
 
17
17
  ```sh
18
- npx @docouno/devkit@0.3.0 init my-product --app web=react-web
18
+ npx @docouno/devkit@0.3.1 init my-product --app web=react-web
19
19
  cd my-product
20
20
  make setup
21
21
  make check
@@ -25,7 +25,7 @@ make dev app=web
25
25
  Without host Node.js:
26
26
 
27
27
  ```sh
28
- curl -fsSL https://github.com/docouno/devkit/releases/download/v0.3.0/install.sh | sh -s -- init my-product --app web=react-web
28
+ curl -fsSL https://github.com/docouno/devkit/releases/download/v0.3.1/install.sh | sh -s -- init my-product --app web=react-web
29
29
  ```
30
30
 
31
31
  Both entry points use the same native CLI. Projects record an exact release and its integrity; ordinary development commands use the verified local cache.
@@ -35,7 +35,7 @@ Both entry points use the same native CLI. Projects record an exact release and
35
35
  Templates include `node-api`, `rust-api`, `react-web`, `electron-react`, and the shared `react-client` package. The `fullstack-desktop` preset combines a Rust API with web and Electron applications using one React client:
36
36
 
37
37
  ```sh
38
- npx @docouno/devkit@0.3.0 init fullstack-product --preset fullstack-desktop
38
+ npx @docouno/devkit@0.3.1 init fullstack-product --preset fullstack-desktop
39
39
  ```
40
40
 
41
41
  ```text
@@ -55,9 +55,9 @@ Applications are runnable product entry points. Packages hold code reused by app
55
55
  Add components as the product grows:
56
56
 
57
57
  ```sh
58
- npx @docouno/devkit@0.3.0 add-app . --name api --template rust-api
59
- npx @docouno/devkit@0.3.0 add-package . --name client --template react-client
60
- npx @docouno/devkit@0.3.0 add-app . --name desktop --template electron-react --use client
58
+ npx @docouno/devkit@0.3.1 add-app . --name api --template rust-api
59
+ npx @docouno/devkit@0.3.1 add-package . --name client --template react-client
60
+ npx @docouno/devkit@0.3.1 add-app . --name desktop --template electron-react --use client
61
61
  make setup
62
62
  ```
63
63
 
@@ -80,7 +80,7 @@ Use `app=NAME` or `package=NAME` for setup, check, fix, test and build. `make do
80
80
  Checks and builds keep source, configuration and lockfiles read-only. `make fix` explicitly permits formatting changes. To edit dependencies with the accepted toolchain:
81
81
 
82
82
  ```sh
83
- npx @docouno/devkit@0.3.0 exec --component apps/web --write --network bridge -- npm install zod
83
+ npx @docouno/devkit@0.3.1 exec --component apps/web --write --network bridge -- npm install zod
84
84
  make setup
85
85
  make check
86
86
  ```
@@ -92,16 +92,16 @@ make check
92
92
  Choose the target release, inspect the proposed changes, then apply them on a branch:
93
93
 
94
94
  ```sh
95
- git switch -c chore/devkit-0.3.0
96
- npx @docouno/devkit@0.3.0 update . --to 0.3.0 --preview
97
- npx @docouno/devkit@0.3.0 update . --to 0.3.0
95
+ git switch -c chore/devkit-0.3.1
96
+ npx @docouno/devkit@0.3.1 update . --to 0.3.1 --preview
97
+ npx @docouno/devkit@0.3.1 update . --to 0.3.1
98
98
  make setup
99
99
  make check
100
100
  ```
101
101
 
102
102
  Review and merge the resulting diff. Updating the CLI alone does not update a project's accepted environment. Application source, product dependencies and product-owned Make/Compose files retain their ownership; conflicting edits to managed files stop the update.
103
103
 
104
- After an interrupted update, `npx @docouno/devkit@0.3.0 recover .` restores the known transaction state. Unrecognized conflicting edits require resolution before recovery can proceed.
104
+ After an interrupted update, `npx @docouno/devkit@0.3.1 recover .` restores the known transaction state. Unrecognized conflicting edits require resolution before recovery can proceed.
105
105
 
106
106
  The native npm/curl entry points also upgrade public 0.2.0 and 0.2.1 projects. Use the new entry point for this migration.
107
107
 
package/devkit CHANGED
Binary file
@@ -2,15 +2,15 @@
2
2
  "schemaVersion": 1,
3
3
  "target": "x86_64-unknown-linux-musl",
4
4
  "rustVersion": "1.99.1",
5
- "sourceCargoLockSha256": "efc8a71d71845b72e3a3996b3854c2737b16609949ac7f217841b66b40daff07",
5
+ "sourceCargoLockSha256": "02470c7535a9ad35454fce2a5847edca138af001a2da56a4a8b489f8bfe9154b",
6
6
  "generator": {
7
7
  "schemaVersion": 1,
8
- "version": "0.3.0",
8
+ "version": "0.3.1",
9
9
  "target": "x86_64-unknown-linux-musl",
10
- "sourceCommit": "9216882f46683232e767d3c820ceab8cff85b542",
11
- "sourceTree": "21ee0f7e608ef57a6773a44938097e67b126bdd0"
10
+ "sourceCommit": "5684e5c60d35348fdca9e5708231f115eab74102",
11
+ "sourceTree": "f2582ffa7717bdbf91fecbbeebb1b1cc7217e649"
12
12
  },
13
- "cargoMetadataSha256": "2ef80b41617ffd6ae3bcff618328e48a4103e024ab787dd77492097ccafe502a",
13
+ "cargoMetadataSha256": "178e27cca7ef915e7592e21e789d9cbf2f881193d8922be5014f8f6ce6afa0f2",
14
14
  "resolvedIds": [
15
15
  "registry+https://github.com/rust-lang/crates.io-index#adler2@2.0.1",
16
16
  "registry+https://github.com/rust-lang/crates.io-index#aho-corasick@1.1.5",
@@ -107,10 +107,10 @@
107
107
  "registry+https://github.com/rust-lang/crates.io-index#winnow@1.0.4",
108
108
  "registry+https://github.com/rust-lang/crates.io-index#zeroize@1.9.1",
109
109
  "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23",
110
- "workspace+crates/devkit/Cargo.toml#devkit@0.3.0"
110
+ "workspace+crates/devkit/Cargo.toml#devkit@0.3.1"
111
111
  ],
112
112
  "roots": [
113
- "workspace+crates/devkit/Cargo.toml#devkit@0.3.0"
113
+ "workspace+crates/devkit/Cargo.toml#devkit@0.3.1"
114
114
  ],
115
115
  "packages": [
116
116
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docouno/devkit",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Pinned development environments and modular project templates for TypeScript and Rust",
5
5
  "license": "MIT",
6
6
  "os": [
package/release.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "files": {
5
5
  "LICENSE": {
6
6
  "sha256": "da39312b3c1fd7a483ccb2ef16bf02836ac84ac9ef3b8f9511dc87b7dda929c1",
7
7
  "mode": 420
8
8
  },
9
9
  "README.md": {
10
- "sha256": "a3460794c9c859691c95f7f8df42db62bbdf00810a6ef47b4ddbaddbed4eb8b0",
10
+ "sha256": "4f5fc96e1abbdee9fabecef62d6a0066082b073a3ba1ab3aa852b66a274bba9b",
11
11
  "mode": 420
12
12
  },
13
13
  "devkit": {
14
- "sha256": "27f3b8894a356df1e7f5b9dbfc9d5a2d6e60996e62e656c858aa888821c92bd4",
14
+ "sha256": "87bb1bbf8617aa8b3d8c1ddbb3973aaac56e67ef437d2eb9d9a60062c4b6ca15",
15
15
  "mode": 493
16
16
  },
17
17
  "notices/NOTICE.txt": {
@@ -819,7 +819,7 @@
819
819
  "mode": 420
820
820
  },
821
821
  "notices/notice-set.json": {
822
- "sha256": "03a78b1b276ca89430c66f7fa22c782cd4d2404404821f447c14b451ea29ea60",
822
+ "sha256": "7117f82038ee5aa37ba8aa7eea017de9cc0525bb352d563742573ac53bc24deb",
823
823
  "mode": 420
824
824
  },
825
825
  "notices/rust/COPYRIGHT-library.html": {
@@ -874,12 +874,12 @@
874
874
  "sha256": "f5062c9a188d81dfe66b56db4182dcf9e4b17c0d9b0d311a8e20b3a1b075c443",
875
875
  "mode": 420
876
876
  },
877
- "npm/docouno-env-0.3.0.tgz": {
878
- "sha256": "2220125d7c4ef62e92a3c9c471d249c70a9ad6c43884660bef7a78b882ec4a4d",
877
+ "npm/docouno-env-0.3.1.tgz": {
878
+ "sha256": "a89faa70bc136844d09109dae15e5bdbaf839f8793b68d9ddea1a957c6ac4ea3",
879
879
  "mode": 420
880
880
  },
881
881
  "package.json": {
882
- "sha256": "dd6a30349f1afab497a0f8cd842366f966d2ee007175cff6e780f8e687ea9215",
882
+ "sha256": "402b5b6ea947bf97d6a79694da23d9ab2292514169c6dedd322f58facf4501e6",
883
883
  "mode": 420
884
884
  },
885
885
  "runtime/LICENSE": {
@@ -903,7 +903,7 @@
903
903
  "mode": 420
904
904
  },
905
905
  "runtime/devkit.sh": {
906
- "sha256": "d97f9e73191e2574dd5087825b202e40b51a95395a86b96b619caf86fb1ba48f",
906
+ "sha256": "c83713f5ff43753fa6e9d494f580d99eb83c8ac57fda2288ddf7be5350feccfe",
907
907
  "mode": 493
908
908
  },
909
909
  "runtime/licenses/Apache-2.0.txt": {
@@ -919,7 +919,7 @@
919
919
  "mode": 420
920
920
  },
921
921
  "runtime/toolchains.env": {
922
- "sha256": "2409dbf1faff0ba1ed9c5cb31172c88f3dc41eb064d4daf7231d3bbab999ef20",
922
+ "sha256": "7b0b8cc98237a8a35e014539abb6b8d553acf79095d250d69c676908d614dc61",
923
923
  "mode": 420
924
924
  },
925
925
  "templates/electron-react/LICENSE": {
@@ -939,11 +939,11 @@
939
939
  "mode": 420
940
940
  },
941
941
  "templates/electron-react/package-lock.json": {
942
- "sha256": "ddaca482741b5028da479530324608ac57387e1f501c9f3ba57eda0970e63a1b",
942
+ "sha256": "587b0142ff6d0d44cff6e751a8cbdf43ff5bec06f6376ac19ddf15a7bfce645c",
943
943
  "mode": 420
944
944
  },
945
945
  "templates/electron-react/package.json": {
946
- "sha256": "57d949649db23c6935bf78228279247fc285fef06f1886a795d00dfba11e4a83",
946
+ "sha256": "43a63606b949910cec8432a2a505820a5a7774014a557fcd4566578cea1593ad",
947
947
  "mode": 420
948
948
  },
949
949
  "templates/electron-react/prettier.config.mjs": {
@@ -1043,11 +1043,11 @@
1043
1043
  "mode": 420
1044
1044
  },
1045
1045
  "templates/node-api/package-lock.json": {
1046
- "sha256": "85993ad6f583a225d3a4f802ae9d39eaf54539e602bb80fcd1f3a4ed7529a015",
1046
+ "sha256": "0561b4ca0dbbcd908fc9f2ee4caa623a1182d0a1e3f24a648f2bd2970953fb24",
1047
1047
  "mode": 420
1048
1048
  },
1049
1049
  "templates/node-api/package.json": {
1050
- "sha256": "e7bbf7f42d9dabf229d1471008ba22343d782be5af40adf0315d15f83fe94b68",
1050
+ "sha256": "478f28625a57a8b9c84f4d3431a62b54f3cb9254d39a52b4557595943f48dae7",
1051
1051
  "mode": 420
1052
1052
  },
1053
1053
  "templates/node-api/prettier.config.mjs": {
@@ -1091,11 +1091,11 @@
1091
1091
  "mode": 420
1092
1092
  },
1093
1093
  "templates/react-client/package-lock.json": {
1094
- "sha256": "f492bd390475ae0cc4aa36b90b484b96aa9620ca0be9f909944a99227dbf3ed0",
1094
+ "sha256": "42f076244882b0819c8fad764a4ca91548dbc815ffc00a2c92ef59ff51493f0f",
1095
1095
  "mode": 420
1096
1096
  },
1097
1097
  "templates/react-client/package.json": {
1098
- "sha256": "44d2ab56519b0c74ef25673c2b902465e5e15e11a875ee02cb2ea5f4226d2bd9",
1098
+ "sha256": "52241fd8f70dc980b9ba6fad29c072039bca95d5eab3184f803f92d512e41ef6",
1099
1099
  "mode": 420
1100
1100
  },
1101
1101
  "templates/react-client/prettier.config.mjs": {
@@ -1147,11 +1147,11 @@
1147
1147
  "mode": 420
1148
1148
  },
1149
1149
  "templates/react-web/package-lock.json": {
1150
- "sha256": "ef99770f9953b3b464697ff0a2bf956c3761b5430dee5c82c2149560535ae020",
1150
+ "sha256": "81d10c780bd97df1d676d8792f9ba7edc1cc2e033d85646d8a737590f861db92",
1151
1151
  "mode": 420
1152
1152
  },
1153
1153
  "templates/react-web/package.json": {
1154
- "sha256": "961802367bf99600154c05b53f6be3e0743714bba4d179c0a5e44e5bef866fed",
1154
+ "sha256": "ae8b0e5221ab750e77c183c1ae7fdaa4cf8896bfe4ef3333865fddcc045202cb",
1155
1155
  "mode": 420
1156
1156
  },
1157
1157
  "templates/react-web/prettier.config.mjs": {
@@ -1241,9 +1241,9 @@
1241
1241
  },
1242
1242
  "environment": {
1243
1243
  "name": "@docouno/env",
1244
- "version": "0.3.0",
1245
- "archive": "npm/docouno-env-0.3.0.tgz",
1246
- "integrity": "sha512-raarhOoQuF3Mkp8sp8oj4XrprMB3ltvcSs97dUmd+MdHrLpL4/GwD7QKhBGN7riQ351R6Ech3lqfwmydYxU91A=="
1244
+ "version": "0.3.1",
1245
+ "archive": "npm/docouno-env-0.3.1.tgz",
1246
+ "integrity": "sha512-M7bE6xL0TxvN6g7uJASN+0aee/1dvq2BBhEJ7sqRUUDzSTYH3pOfR37Gobu3GtwEJwATZTS4JmtMwfLFZ1/rXw=="
1247
1247
  },
1248
1248
  "rustVersion": "1.99.1"
1249
1249
  }
package/runtime/devkit.sh CHANGED
@@ -2,8 +2,8 @@
2
2
  # Initial transfer and delegation only; all project operations run in the ELF.
3
3
  set -eu
4
4
  mode=project
5
- version=0.3.0
6
- expected=27f3b8894a356df1e7f5b9dbfc9d5a2d6e60996e62e656c858aa888821c92bd4
5
+ version=0.3.1
6
+ expected=87bb1bbf8617aa8b3d8c1ddbb3973aaac56e67ef437d2eb9d9a60062c4b6ca15
7
7
  target=x86_64-unknown-linux-musl
8
8
  asset=devkit-x86_64-unknown-linux-musl
9
9
  fail() { printf 'devkit: %s\n' "$*" >&2; exit 1; }
@@ -1,8 +1,8 @@
1
1
  DEVKIT_DESKTOP_RECIPE_HASH=52f3561339b0fb7d8154b307bda086c9b5cac8ddffaae422e1ad330380f39429
2
- DEVKIT_ENGINE_SHA256=27f3b8894a356df1e7f5b9dbfc9d5a2d6e60996e62e656c858aa888821c92bd4
2
+ DEVKIT_ENGINE_SHA256=87bb1bbf8617aa8b3d8c1ddbb3973aaac56e67ef437d2eb9d9a60062c4b6ca15
3
3
  DEVKIT_ENGINE_TARGET=x86_64-unknown-linux-musl
4
4
  DEVKIT_NODE_IMAGE=node:24.22.1-bookworm-slim@sha256:55fb5f5a527ea2c5c4a95f963e48ef90aa38c7b346054fdc8ee9957a2b55d205
5
5
  DEVKIT_NODE_VERSION=24.22.1
6
6
  DEVKIT_RUST_RECIPE_HASH=88b4dfb67f04eb6639988453a62e3489bc2492aade0e811e32983ceca5abab94
7
7
  DEVKIT_RUST_VERSION=1.99.1
8
- DEVKIT_VERSION=0.3.0
8
+ DEVKIT_VERSION=0.3.1
@@ -9,7 +9,7 @@
9
9
  "version": "0.1.0",
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
- "@docouno/env": "0.3.0",
12
+ "@docouno/env": "0.3.1",
13
13
  "@testing-library/dom": "10.4.2",
14
14
  "@testing-library/react": "16.3.3",
15
15
  "@types/node": "24.19.2",
@@ -559,9 +559,9 @@
559
559
  }
560
560
  },
561
561
  "node_modules/@docouno/env": {
562
- "version": "0.3.0",
563
- "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.0.tgz",
564
- "integrity": "sha512-raarhOoQuF3Mkp8sp8oj4XrprMB3ltvcSs97dUmd+MdHrLpL4/GwD7QKhBGN7riQ351R6Ech3lqfwmydYxU91A==",
562
+ "version": "0.3.1",
563
+ "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.1.tgz",
564
+ "integrity": "sha512-M7bE6xL0TxvN6g7uJASN+0aee/1dvq2BBhEJ7sqRUUDzSTYH3pOfR37Gobu3GtwEJwATZTS4JmtMwfLFZ1/rXw==",
565
565
  "dev": true,
566
566
  "license": "MIT",
567
567
  "dependencies": {
@@ -18,7 +18,7 @@
18
18
  "package": "electron-builder --config electron-builder.config.cjs --linux dir --publish never && tar -czf release/app-linux.tar.gz -C release/linux-unpacked ."
19
19
  },
20
20
  "devDependencies": {
21
- "@docouno/env": "0.3.0",
21
+ "@docouno/env": "0.3.1",
22
22
  "@testing-library/dom": "10.4.2",
23
23
  "@testing-library/react": "16.3.3",
24
24
  "@types/node": "24.19.2",
@@ -11,7 +11,7 @@
11
11
  "zod": "4.6.7"
12
12
  },
13
13
  "devDependencies": {
14
- "@docouno/env": "0.3.0",
14
+ "@docouno/env": "0.3.1",
15
15
  "@types/node": "24.19.2",
16
16
  "eslint": "10.13.0",
17
17
  "prettier": "3.9.10",
@@ -286,9 +286,9 @@
286
286
  }
287
287
  },
288
288
  "node_modules/@docouno/env": {
289
- "version": "0.3.0",
290
- "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.0.tgz",
291
- "integrity": "sha512-raarhOoQuF3Mkp8sp8oj4XrprMB3ltvcSs97dUmd+MdHrLpL4/GwD7QKhBGN7riQ351R6Ech3lqfwmydYxU91A==",
289
+ "version": "0.3.1",
290
+ "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.1.tgz",
291
+ "integrity": "sha512-M7bE6xL0TxvN6g7uJASN+0aee/1dvq2BBhEJ7sqRUUDzSTYH3pOfR37Gobu3GtwEJwATZTS4JmtMwfLFZ1/rXw==",
292
292
  "dev": true,
293
293
  "license": "MIT",
294
294
  "dependencies": {
@@ -21,7 +21,7 @@
21
21
  "zod": "4.6.7"
22
22
  },
23
23
  "devDependencies": {
24
- "@docouno/env": "0.3.0",
24
+ "@docouno/env": "0.3.1",
25
25
  "@types/node": "24.19.2",
26
26
  "eslint": "10.13.0",
27
27
  "prettier": "3.9.10",
@@ -8,7 +8,7 @@
8
8
  "name": "devkit-react-client",
9
9
  "version": "0.1.0",
10
10
  "devDependencies": {
11
- "@docouno/env": "0.3.0",
11
+ "@docouno/env": "0.3.1",
12
12
  "@testing-library/dom": "10.4.2",
13
13
  "@testing-library/react": "16.3.3",
14
14
  "@types/node": "24.19.2",
@@ -512,9 +512,9 @@
512
512
  }
513
513
  },
514
514
  "node_modules/@docouno/env": {
515
- "version": "0.3.0",
516
- "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.0.tgz",
517
- "integrity": "sha512-raarhOoQuF3Mkp8sp8oj4XrprMB3ltvcSs97dUmd+MdHrLpL4/GwD7QKhBGN7riQ351R6Ech3lqfwmydYxU91A==",
515
+ "version": "0.3.1",
516
+ "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.1.tgz",
517
+ "integrity": "sha512-M7bE6xL0TxvN6g7uJASN+0aee/1dvq2BBhEJ7sqRUUDzSTYH3pOfR37Gobu3GtwEJwATZTS4JmtMwfLFZ1/rXw==",
518
518
  "dev": true,
519
519
  "license": "MIT",
520
520
  "dependencies": {
@@ -16,7 +16,7 @@
16
16
  "build": "tsc -p tsconfig.build.json && cp src/style.css dist/style.css"
17
17
  },
18
18
  "devDependencies": {
19
- "@docouno/env": "0.3.0",
19
+ "@docouno/env": "0.3.1",
20
20
  "@testing-library/dom": "10.4.2",
21
21
  "@testing-library/react": "16.3.3",
22
22
  "@types/node": "24.19.2",
@@ -12,7 +12,7 @@
12
12
  "react-dom": "19.3.1"
13
13
  },
14
14
  "devDependencies": {
15
- "@docouno/env": "0.3.0",
15
+ "@docouno/env": "0.3.1",
16
16
  "@testing-library/dom": "10.4.2",
17
17
  "@testing-library/react": "16.3.3",
18
18
  "@types/node": "24.19.2",
@@ -511,9 +511,9 @@
511
511
  }
512
512
  },
513
513
  "node_modules/@docouno/env": {
514
- "version": "0.3.0",
515
- "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.0.tgz",
516
- "integrity": "sha512-raarhOoQuF3Mkp8sp8oj4XrprMB3ltvcSs97dUmd+MdHrLpL4/GwD7QKhBGN7riQ351R6Ech3lqfwmydYxU91A==",
514
+ "version": "0.3.1",
515
+ "resolved": "https://registry.npmjs.org/@docouno/env/-/env-0.3.1.tgz",
516
+ "integrity": "sha512-M7bE6xL0TxvN6g7uJASN+0aee/1dvq2BBhEJ7sqRUUDzSTYH3pOfR37Gobu3GtwEJwATZTS4JmtMwfLFZ1/rXw==",
517
517
  "dev": true,
518
518
  "license": "MIT",
519
519
  "dependencies": {
@@ -17,7 +17,7 @@
17
17
  "dev": "vite --host 0.0.0.0 --port 5173 --strictPort"
18
18
  },
19
19
  "devDependencies": {
20
- "@docouno/env": "0.3.0",
20
+ "@docouno/env": "0.3.1",
21
21
  "@testing-library/dom": "10.4.2",
22
22
  "@testing-library/react": "16.3.3",
23
23
  "@types/node": "24.19.2",