@msn-control/liftoff 0.9.0 → 0.9.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.
Files changed (40) hide show
  1. package/README.md +7 -4
  2. package/assets/locks/frontend/package-lock.json +51 -51
  3. package/assets/locks/frontend/package.json +1 -1
  4. package/assets/locks/node-backend/package-lock.json +353 -12
  5. package/assets/locks/node-backend/package.json +3 -3
  6. package/assets/supported-stack.json +9 -9
  7. package/dist/args.js +5 -5
  8. package/dist/args.js.map +1 -1
  9. package/dist/artifact-lifecycle.d.ts +4 -0
  10. package/dist/artifact-lifecycle.js +38 -0
  11. package/dist/artifact-lifecycle.js.map +1 -0
  12. package/dist/commands.js +327 -76
  13. package/dist/commands.js.map +1 -1
  14. package/dist/file-system.d.ts +1 -1
  15. package/dist/file-system.js +171 -29
  16. package/dist/file-system.js.map +1 -1
  17. package/dist/init-filesystem.js +2 -2
  18. package/dist/init-filesystem.js.map +1 -1
  19. package/dist/power-apps-templates.js +3 -1
  20. package/dist/power-apps-templates.js.map +1 -1
  21. package/dist/reconcile.js +4 -10
  22. package/dist/reconcile.js.map +1 -1
  23. package/dist/repository-governance.js +4 -0
  24. package/dist/repository-governance.js.map +1 -1
  25. package/dist/templates.d.ts +5 -1
  26. package/dist/templates.js +102 -56
  27. package/dist/templates.js.map +1 -1
  28. package/dist/types.d.ts +24 -4
  29. package/docs/cli-reference.md +39 -25
  30. package/docs/configuration-and-manifests.md +39 -24
  31. package/docs/existing-repositories.md +15 -15
  32. package/docs/getting-started.md +3 -2
  33. package/docs/project-structure.md +6 -1
  34. package/docs/repository-governance.md +2 -2
  35. package/docs/safety-and-consent.md +22 -17
  36. package/docs/spec-workflows-and-agents.md +5 -4
  37. package/docs/supported-stack.md +14 -17
  38. package/docs/troubleshooting.md +16 -8
  39. package/docs/workloads.md +9 -8
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -20,7 +20,8 @@ liftoff init
20
20
 
21
21
  After the first self-upgrade-capable release is installed globally through npm,
22
22
  later CLI releases use `liftoff upgrade --check` followed by `liftoff upgrade`.
23
- This replaces the CLI only; generated projects still use `liftoff update`.
23
+ This replaces the CLI only; generated projects use `liftoff update` separately
24
+ for Liftoff-managed core files.
24
25
 
25
26
  Liftoff asks you to choose a workload and spec workflow, select one or more coding
26
27
  agents with Space, review workstation readiness, and confirm the project plan before
@@ -38,9 +39,11 @@ liftoff upgrade --check
38
39
  liftoff update --check
39
40
  ```
40
41
 
41
- Plain `liftoff update` applies safe managed changes immediately and skips
42
- conflicts. Use `liftoff update --check --json` for a read-only CI drift gate,
43
- and review every reported path before choosing `liftoff update --force`.
42
+ Plain `liftoff update` applies safe managed-core changes immediately and skips
43
+ core conflicts. Application source, dependencies, schemas, containers,
44
+ environments, documentation, and infrastructure are project-owned after
45
+ generation and remain outside every update mode, including `--force`. Use
46
+ `liftoff update --check --json` for a read-only core-maintenance gate.
44
47
 
45
48
  ![Liftoff terminal showing interactive workload, workflow, multi-agent, readiness, and safe completion steps](docs/assets/liftoff-terminal.svg)
46
49
 
@@ -12,12 +12,12 @@
12
12
  "@vitejs/plugin-vue": "^6.0.8",
13
13
  "tailwindcss": "^4.3.3",
14
14
  "vite": "^8.2.2",
15
- "vue": "^3.5.41"
15
+ "vue": "^3.5.42"
16
16
  }
17
17
  },
18
18
  "node_modules/@babel/helper-string-parser": {
19
19
  "version": "7.29.7",
20
- "integrity": "sha1-fwhx2Zgk0jE31g+G/PYTD9WhtR8=",
20
+ "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
21
21
  "license": "MIT",
22
22
  "engines": {
23
23
  "node": ">=6.9.0"
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "node_modules/@babel/helper-validator-identifier": {
27
27
  "version": "7.29.7",
28
- "integrity": "sha1-vYcITO0MeW7Ea9pJLeboPSnon8I=",
28
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
29
29
  "license": "MIT",
30
30
  "engines": {
31
31
  "node": ">=6.9.0"
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "node_modules/@babel/parser": {
35
35
  "version": "7.29.8",
36
- "integrity": "sha1-llNxai8Qxne5j7xj1L+wAMMCzxc=",
36
+ "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==",
37
37
  "license": "MIT",
38
38
  "dependencies": {
39
39
  "@babel/types": "^7.29.8"
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "node_modules/@babel/types": {
49
49
  "version": "7.29.8",
50
- "integrity": "sha1-Einu8x2FFW1w+j9M2Fk3bQ6vaGM=",
50
+ "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
51
51
  "license": "MIT",
52
52
  "dependencies": {
53
53
  "@babel/helper-string-parser": "^7.29.7",
@@ -683,36 +683,36 @@
683
683
  }
684
684
  },
685
685
  "node_modules/@vue/compiler-core": {
686
- "version": "3.5.41",
687
- "integrity": "sha1-gqQBLYtCD1piwWWKctFvfR7fEao=",
686
+ "version": "3.5.42",
687
+ "integrity": "sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==",
688
688
  "license": "MIT",
689
689
  "dependencies": {
690
690
  "@babel/parser": "^7.29.8",
691
- "@vue/shared": "3.5.41",
691
+ "@vue/shared": "3.5.42",
692
692
  "entities": "^7.0.1",
693
693
  "estree-walker": "^2.0.2",
694
694
  "source-map-js": "^1.2.1"
695
695
  }
696
696
  },
697
697
  "node_modules/@vue/compiler-dom": {
698
- "version": "3.5.41",
699
- "integrity": "sha1-ECn3XeCcZloKksYVZGN1QZKss2E=",
698
+ "version": "3.5.42",
699
+ "integrity": "sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==",
700
700
  "license": "MIT",
701
701
  "dependencies": {
702
- "@vue/compiler-core": "3.5.41",
703
- "@vue/shared": "3.5.41"
702
+ "@vue/compiler-core": "3.5.42",
703
+ "@vue/shared": "3.5.42"
704
704
  }
705
705
  },
706
706
  "node_modules/@vue/compiler-sfc": {
707
- "version": "3.5.41",
708
- "integrity": "sha1-+cfCFwrW7kvzXBeLXfAmSF2KY9s=",
707
+ "version": "3.5.42",
708
+ "integrity": "sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==",
709
709
  "license": "MIT",
710
710
  "dependencies": {
711
711
  "@babel/parser": "^7.29.8",
712
- "@vue/compiler-core": "3.5.41",
713
- "@vue/compiler-dom": "3.5.41",
714
- "@vue/compiler-ssr": "3.5.41",
715
- "@vue/shared": "3.5.41",
712
+ "@vue/compiler-core": "3.5.42",
713
+ "@vue/compiler-dom": "3.5.42",
714
+ "@vue/compiler-ssr": "3.5.42",
715
+ "@vue/shared": "3.5.42",
716
716
  "estree-walker": "^2.0.2",
717
717
  "magic-string": "^0.30.21",
718
718
  "postcss": "^8.5.19",
@@ -720,60 +720,60 @@
720
720
  }
721
721
  },
722
722
  "node_modules/@vue/compiler-ssr": {
723
- "version": "3.5.41",
724
- "integrity": "sha1-jl+fao0huAL85zc4B92TXtRUEIM=",
723
+ "version": "3.5.42",
724
+ "integrity": "sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==",
725
725
  "license": "MIT",
726
726
  "dependencies": {
727
- "@vue/compiler-dom": "3.5.41",
728
- "@vue/shared": "3.5.41"
727
+ "@vue/compiler-dom": "3.5.42",
728
+ "@vue/shared": "3.5.42"
729
729
  }
730
730
  },
731
731
  "node_modules/@vue/reactivity": {
732
- "version": "3.5.41",
733
- "integrity": "sha1-g75huIsZjyHBV9OqbcuEOiWhGHI=",
732
+ "version": "3.5.42",
733
+ "integrity": "sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==",
734
734
  "license": "MIT",
735
735
  "dependencies": {
736
- "@vue/shared": "3.5.41"
736
+ "@vue/shared": "3.5.42"
737
737
  }
738
738
  },
739
739
  "node_modules/@vue/runtime-core": {
740
- "version": "3.5.41",
741
- "integrity": "sha1-o+AjyfIYCcgfJIE9rLf/oYouQWE=",
740
+ "version": "3.5.42",
741
+ "integrity": "sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==",
742
742
  "license": "MIT",
743
743
  "dependencies": {
744
- "@vue/reactivity": "3.5.41",
745
- "@vue/shared": "3.5.41"
744
+ "@vue/reactivity": "3.5.42",
745
+ "@vue/shared": "3.5.42"
746
746
  }
747
747
  },
748
748
  "node_modules/@vue/runtime-dom": {
749
- "version": "3.5.41",
750
- "integrity": "sha1-Qo96BCBAI4X64X1BPSUWn5j2QgU=",
749
+ "version": "3.5.42",
750
+ "integrity": "sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==",
751
751
  "license": "MIT",
752
752
  "dependencies": {
753
- "@vue/reactivity": "3.5.41",
754
- "@vue/runtime-core": "3.5.41",
755
- "@vue/shared": "3.5.41",
753
+ "@vue/reactivity": "3.5.42",
754
+ "@vue/runtime-core": "3.5.42",
755
+ "@vue/shared": "3.5.42",
756
756
  "csstype": "^3.2.3"
757
757
  }
758
758
  },
759
759
  "node_modules/@vue/server-renderer": {
760
- "version": "3.5.41",
761
- "integrity": "sha1-A1o4x5GC8VRJUjjqg6y6JCZqwgA=",
760
+ "version": "3.5.42",
761
+ "integrity": "sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==",
762
762
  "license": "MIT",
763
763
  "dependencies": {
764
- "@vue/compiler-ssr": "3.5.41",
765
- "@vue/runtime-dom": "3.5.41",
766
- "@vue/shared": "3.5.41"
764
+ "@vue/compiler-ssr": "3.5.42",
765
+ "@vue/runtime-dom": "3.5.42",
766
+ "@vue/shared": "3.5.42"
767
767
  }
768
768
  },
769
769
  "node_modules/@vue/shared": {
770
- "version": "3.5.41",
771
- "integrity": "sha1-rEdkl/dElfdSUIcnCEmEF1ZVXPI=",
770
+ "version": "3.5.42",
771
+ "integrity": "sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==",
772
772
  "license": "MIT"
773
773
  },
774
774
  "node_modules/csstype": {
775
775
  "version": "3.2.3",
776
- "integrity": "sha1-7EjA8+mT5QZIyG2lWeJhCZXPmJo=",
776
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
777
777
  "license": "MIT"
778
778
  },
779
779
  "node_modules/detect-libc": {
@@ -798,7 +798,7 @@
798
798
  },
799
799
  "node_modules/entities": {
800
800
  "version": "7.0.1",
801
- "integrity": "sha1-JuioiInbY0F9y5oeeaPxvJK1l2s=",
801
+ "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
802
802
  "license": "BSD-2-Clause",
803
803
  "engines": {
804
804
  "node": ">=0.12"
@@ -809,7 +809,7 @@
809
809
  },
810
810
  "node_modules/estree-walker": {
811
811
  "version": "2.0.2",
812
- "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=",
812
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
813
813
  "license": "MIT"
814
814
  },
815
815
  "node_modules/fsevents": {
@@ -1568,15 +1568,15 @@
1568
1568
  }
1569
1569
  },
1570
1570
  "node_modules/vue": {
1571
- "version": "3.5.41",
1572
- "integrity": "sha1-iGS93+Wc4SiijJutIZzZJIkWr3M=",
1571
+ "version": "3.5.42",
1572
+ "integrity": "sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==",
1573
1573
  "license": "MIT",
1574
1574
  "dependencies": {
1575
- "@vue/compiler-dom": "3.5.41",
1576
- "@vue/compiler-sfc": "3.5.41",
1577
- "@vue/runtime-dom": "3.5.41",
1578
- "@vue/server-renderer": "3.5.41",
1579
- "@vue/shared": "3.5.41"
1575
+ "@vue/compiler-dom": "3.5.42",
1576
+ "@vue/compiler-sfc": "3.5.42",
1577
+ "@vue/runtime-dom": "3.5.42",
1578
+ "@vue/server-renderer": "3.5.42",
1579
+ "@vue/shared": "3.5.42"
1580
1580
  },
1581
1581
  "peerDependencies": {
1582
1582
  "typescript": "*"
@@ -13,6 +13,6 @@
13
13
  "@vitejs/plugin-vue": "^6.0.8",
14
14
  "tailwindcss": "^4.3.3",
15
15
  "vite": "^8.2.2",
16
- "vue": "^3.5.41"
16
+ "vue": "^3.5.42"
17
17
  }
18
18
  }
@@ -16,10 +16,10 @@
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/node": "^24.6.0",
19
- "@types/pg": "^8.15.0",
19
+ "@types/pg": "^8.23.1",
20
20
  "drizzle-kit": "^0.31.0",
21
- "tsx": "^4.20.0",
22
- "typescript": "^5.5.4",
21
+ "tsx": "^4.23.13",
22
+ "typescript": "^7.0.2",
23
23
  "vite": "8.2.2",
24
24
  "vitest": "4.1.11"
25
25
  },
@@ -1328,8 +1328,8 @@
1328
1328
  }
1329
1329
  },
1330
1330
  "node_modules/@types/pg": {
1331
- "version": "8.20.0",
1332
- "integrity": "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==",
1331
+ "version": "8.23.1",
1332
+ "integrity": "sha512-fKVHpikPdg4GKks3JuLEhvwSyvwzF23hnabPy6DD8ljVbC7+6J5dQzdv4arV6jqq57djnMgs1HKBxX4P8aBI3A==",
1333
1333
  "devOptional": true,
1334
1334
  "license": "MIT",
1335
1335
  "dependencies": {
@@ -1338,6 +1338,326 @@
1338
1338
  "pg-types": "^2.2.0"
1339
1339
  }
1340
1340
  },
1341
+ "node_modules/@typescript/typescript-aix-ppc64": {
1342
+ "version": "7.0.2",
1343
+ "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==",
1344
+ "cpu": [
1345
+ "ppc64"
1346
+ ],
1347
+ "dev": true,
1348
+ "license": "Apache-2.0",
1349
+ "optional": true,
1350
+ "os": [
1351
+ "aix"
1352
+ ],
1353
+ "engines": {
1354
+ "node": ">=16.20.0"
1355
+ }
1356
+ },
1357
+ "node_modules/@typescript/typescript-darwin-arm64": {
1358
+ "version": "7.0.2",
1359
+ "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==",
1360
+ "cpu": [
1361
+ "arm64"
1362
+ ],
1363
+ "dev": true,
1364
+ "license": "Apache-2.0",
1365
+ "optional": true,
1366
+ "os": [
1367
+ "darwin"
1368
+ ],
1369
+ "engines": {
1370
+ "node": ">=16.20.0"
1371
+ }
1372
+ },
1373
+ "node_modules/@typescript/typescript-darwin-x64": {
1374
+ "version": "7.0.2",
1375
+ "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==",
1376
+ "cpu": [
1377
+ "x64"
1378
+ ],
1379
+ "dev": true,
1380
+ "license": "Apache-2.0",
1381
+ "optional": true,
1382
+ "os": [
1383
+ "darwin"
1384
+ ],
1385
+ "engines": {
1386
+ "node": ">=16.20.0"
1387
+ }
1388
+ },
1389
+ "node_modules/@typescript/typescript-freebsd-arm64": {
1390
+ "version": "7.0.2",
1391
+ "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==",
1392
+ "cpu": [
1393
+ "arm64"
1394
+ ],
1395
+ "dev": true,
1396
+ "license": "Apache-2.0",
1397
+ "optional": true,
1398
+ "os": [
1399
+ "freebsd"
1400
+ ],
1401
+ "engines": {
1402
+ "node": ">=16.20.0"
1403
+ }
1404
+ },
1405
+ "node_modules/@typescript/typescript-freebsd-x64": {
1406
+ "version": "7.0.2",
1407
+ "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==",
1408
+ "cpu": [
1409
+ "x64"
1410
+ ],
1411
+ "dev": true,
1412
+ "license": "Apache-2.0",
1413
+ "optional": true,
1414
+ "os": [
1415
+ "freebsd"
1416
+ ],
1417
+ "engines": {
1418
+ "node": ">=16.20.0"
1419
+ }
1420
+ },
1421
+ "node_modules/@typescript/typescript-linux-arm": {
1422
+ "version": "7.0.2",
1423
+ "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==",
1424
+ "cpu": [
1425
+ "arm"
1426
+ ],
1427
+ "dev": true,
1428
+ "license": "Apache-2.0",
1429
+ "optional": true,
1430
+ "os": [
1431
+ "linux"
1432
+ ],
1433
+ "engines": {
1434
+ "node": ">=16.20.0"
1435
+ }
1436
+ },
1437
+ "node_modules/@typescript/typescript-linux-arm64": {
1438
+ "version": "7.0.2",
1439
+ "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==",
1440
+ "cpu": [
1441
+ "arm64"
1442
+ ],
1443
+ "dev": true,
1444
+ "license": "Apache-2.0",
1445
+ "optional": true,
1446
+ "os": [
1447
+ "linux"
1448
+ ],
1449
+ "engines": {
1450
+ "node": ">=16.20.0"
1451
+ }
1452
+ },
1453
+ "node_modules/@typescript/typescript-linux-loong64": {
1454
+ "version": "7.0.2",
1455
+ "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==",
1456
+ "cpu": [
1457
+ "loong64"
1458
+ ],
1459
+ "dev": true,
1460
+ "license": "Apache-2.0",
1461
+ "optional": true,
1462
+ "os": [
1463
+ "linux"
1464
+ ],
1465
+ "engines": {
1466
+ "node": ">=16.20.0"
1467
+ }
1468
+ },
1469
+ "node_modules/@typescript/typescript-linux-mips64el": {
1470
+ "version": "7.0.2",
1471
+ "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==",
1472
+ "cpu": [
1473
+ "mips64el"
1474
+ ],
1475
+ "dev": true,
1476
+ "license": "Apache-2.0",
1477
+ "optional": true,
1478
+ "os": [
1479
+ "linux"
1480
+ ],
1481
+ "engines": {
1482
+ "node": ">=16.20.0"
1483
+ }
1484
+ },
1485
+ "node_modules/@typescript/typescript-linux-ppc64": {
1486
+ "version": "7.0.2",
1487
+ "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==",
1488
+ "cpu": [
1489
+ "ppc64"
1490
+ ],
1491
+ "dev": true,
1492
+ "license": "Apache-2.0",
1493
+ "optional": true,
1494
+ "os": [
1495
+ "linux"
1496
+ ],
1497
+ "engines": {
1498
+ "node": ">=16.20.0"
1499
+ }
1500
+ },
1501
+ "node_modules/@typescript/typescript-linux-riscv64": {
1502
+ "version": "7.0.2",
1503
+ "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==",
1504
+ "cpu": [
1505
+ "riscv64"
1506
+ ],
1507
+ "dev": true,
1508
+ "license": "Apache-2.0",
1509
+ "optional": true,
1510
+ "os": [
1511
+ "linux"
1512
+ ],
1513
+ "engines": {
1514
+ "node": ">=16.20.0"
1515
+ }
1516
+ },
1517
+ "node_modules/@typescript/typescript-linux-s390x": {
1518
+ "version": "7.0.2",
1519
+ "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==",
1520
+ "cpu": [
1521
+ "s390x"
1522
+ ],
1523
+ "dev": true,
1524
+ "license": "Apache-2.0",
1525
+ "optional": true,
1526
+ "os": [
1527
+ "linux"
1528
+ ],
1529
+ "engines": {
1530
+ "node": ">=16.20.0"
1531
+ }
1532
+ },
1533
+ "node_modules/@typescript/typescript-linux-x64": {
1534
+ "version": "7.0.2",
1535
+ "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==",
1536
+ "cpu": [
1537
+ "x64"
1538
+ ],
1539
+ "dev": true,
1540
+ "license": "Apache-2.0",
1541
+ "optional": true,
1542
+ "os": [
1543
+ "linux"
1544
+ ],
1545
+ "engines": {
1546
+ "node": ">=16.20.0"
1547
+ }
1548
+ },
1549
+ "node_modules/@typescript/typescript-netbsd-arm64": {
1550
+ "version": "7.0.2",
1551
+ "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==",
1552
+ "cpu": [
1553
+ "arm64"
1554
+ ],
1555
+ "dev": true,
1556
+ "license": "Apache-2.0",
1557
+ "optional": true,
1558
+ "os": [
1559
+ "netbsd"
1560
+ ],
1561
+ "engines": {
1562
+ "node": ">=16.20.0"
1563
+ }
1564
+ },
1565
+ "node_modules/@typescript/typescript-netbsd-x64": {
1566
+ "version": "7.0.2",
1567
+ "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==",
1568
+ "cpu": [
1569
+ "x64"
1570
+ ],
1571
+ "dev": true,
1572
+ "license": "Apache-2.0",
1573
+ "optional": true,
1574
+ "os": [
1575
+ "netbsd"
1576
+ ],
1577
+ "engines": {
1578
+ "node": ">=16.20.0"
1579
+ }
1580
+ },
1581
+ "node_modules/@typescript/typescript-openbsd-arm64": {
1582
+ "version": "7.0.2",
1583
+ "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==",
1584
+ "cpu": [
1585
+ "arm64"
1586
+ ],
1587
+ "dev": true,
1588
+ "license": "Apache-2.0",
1589
+ "optional": true,
1590
+ "os": [
1591
+ "openbsd"
1592
+ ],
1593
+ "engines": {
1594
+ "node": ">=16.20.0"
1595
+ }
1596
+ },
1597
+ "node_modules/@typescript/typescript-openbsd-x64": {
1598
+ "version": "7.0.2",
1599
+ "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==",
1600
+ "cpu": [
1601
+ "x64"
1602
+ ],
1603
+ "dev": true,
1604
+ "license": "Apache-2.0",
1605
+ "optional": true,
1606
+ "os": [
1607
+ "openbsd"
1608
+ ],
1609
+ "engines": {
1610
+ "node": ">=16.20.0"
1611
+ }
1612
+ },
1613
+ "node_modules/@typescript/typescript-sunos-x64": {
1614
+ "version": "7.0.2",
1615
+ "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==",
1616
+ "cpu": [
1617
+ "x64"
1618
+ ],
1619
+ "dev": true,
1620
+ "license": "Apache-2.0",
1621
+ "optional": true,
1622
+ "os": [
1623
+ "sunos"
1624
+ ],
1625
+ "engines": {
1626
+ "node": ">=16.20.0"
1627
+ }
1628
+ },
1629
+ "node_modules/@typescript/typescript-win32-arm64": {
1630
+ "version": "7.0.2",
1631
+ "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==",
1632
+ "cpu": [
1633
+ "arm64"
1634
+ ],
1635
+ "dev": true,
1636
+ "license": "Apache-2.0",
1637
+ "optional": true,
1638
+ "os": [
1639
+ "win32"
1640
+ ],
1641
+ "engines": {
1642
+ "node": ">=16.20.0"
1643
+ }
1644
+ },
1645
+ "node_modules/@typescript/typescript-win32-x64": {
1646
+ "version": "7.0.2",
1647
+ "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==",
1648
+ "cpu": [
1649
+ "x64"
1650
+ ],
1651
+ "dev": true,
1652
+ "license": "Apache-2.0",
1653
+ "optional": true,
1654
+ "os": [
1655
+ "win32"
1656
+ ],
1657
+ "engines": {
1658
+ "node": ">=16.20.0"
1659
+ }
1660
+ },
1341
1661
  "node_modules/@vitest/expect": {
1342
1662
  "version": "4.1.11",
1343
1663
  "integrity": "sha1-X1gNH5zbujFNvyOy2RH46yOHj18=",
@@ -3315,8 +3635,8 @@
3315
3635
  }
3316
3636
  },
3317
3637
  "node_modules/tsx": {
3318
- "version": "4.23.1",
3319
- "integrity": "sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==",
3638
+ "version": "4.23.13",
3639
+ "integrity": "sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==",
3320
3640
  "dev": true,
3321
3641
  "license": "MIT",
3322
3642
  "dependencies": {
@@ -3333,16 +3653,37 @@
3333
3653
  }
3334
3654
  },
3335
3655
  "node_modules/typescript": {
3336
- "version": "5.9.3",
3337
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
3656
+ "version": "7.0.2",
3657
+ "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==",
3338
3658
  "dev": true,
3339
3659
  "license": "Apache-2.0",
3340
3660
  "bin": {
3341
- "tsc": "bin/tsc",
3342
- "tsserver": "bin/tsserver"
3661
+ "tsc": "bin/tsc"
3343
3662
  },
3344
3663
  "engines": {
3345
- "node": ">=14.17"
3664
+ "node": ">=16.20.0"
3665
+ },
3666
+ "optionalDependencies": {
3667
+ "@typescript/typescript-aix-ppc64": "7.0.2",
3668
+ "@typescript/typescript-darwin-arm64": "7.0.2",
3669
+ "@typescript/typescript-darwin-x64": "7.0.2",
3670
+ "@typescript/typescript-freebsd-arm64": "7.0.2",
3671
+ "@typescript/typescript-freebsd-x64": "7.0.2",
3672
+ "@typescript/typescript-linux-arm": "7.0.2",
3673
+ "@typescript/typescript-linux-arm64": "7.0.2",
3674
+ "@typescript/typescript-linux-loong64": "7.0.2",
3675
+ "@typescript/typescript-linux-mips64el": "7.0.2",
3676
+ "@typescript/typescript-linux-ppc64": "7.0.2",
3677
+ "@typescript/typescript-linux-riscv64": "7.0.2",
3678
+ "@typescript/typescript-linux-s390x": "7.0.2",
3679
+ "@typescript/typescript-linux-x64": "7.0.2",
3680
+ "@typescript/typescript-netbsd-arm64": "7.0.2",
3681
+ "@typescript/typescript-netbsd-x64": "7.0.2",
3682
+ "@typescript/typescript-openbsd-arm64": "7.0.2",
3683
+ "@typescript/typescript-openbsd-x64": "7.0.2",
3684
+ "@typescript/typescript-sunos-x64": "7.0.2",
3685
+ "@typescript/typescript-win32-arm64": "7.0.2",
3686
+ "@typescript/typescript-win32-x64": "7.0.2"
3346
3687
  }
3347
3688
  },
3348
3689
  "node_modules/undici-types": {
@@ -23,10 +23,10 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^24.6.0",
26
- "@types/pg": "^8.15.0",
26
+ "@types/pg": "^8.23.1",
27
27
  "drizzle-kit": "^0.31.0",
28
- "tsx": "^4.20.0",
29
- "typescript": "^5.5.4",
28
+ "tsx": "^4.23.13",
29
+ "typescript": "^7.0.2",
30
30
  "vite": "8.2.2",
31
31
  "vitest": "4.1.11"
32
32
  }