@voltro/cli 0.50.0 → 0.50.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 (105) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/apiBuild-BZ-plaQN.js +2 -0
  3. package/dist/{apiBuild-CFYXo06U.js → apiBuild-D3s7lx57.js} +2 -2
  4. package/dist/appGraph-CM9wvUmD.js +2 -0
  5. package/dist/appGraph-Cv2W_wO5.js +111 -0
  6. package/dist/bin.js +1 -1
  7. package/dist/{build-CnSH-zru.js → build-CFmqF39c.js} +7 -7
  8. package/dist/{checkCommand-OL41BMIb.js → checkCommand-DomvYDi1.js} +1 -1
  9. package/dist/{checkCommand-Do3SQbLx.js → checkCommand-DsKIjL6k.js} +54 -45
  10. package/dist/{codegenCommand-BJzaRz6q.js → codegenCommand-C0S27nbB.js} +2 -2
  11. package/dist/{codemodRunner-De3k0pRd.js → codemodRunner-DwY8Rjbl.js} +55 -0
  12. package/dist/{commands-By23Ljny.js → commands-Brp4DI8u.js} +21 -21
  13. package/dist/{dashboardCommand-DN1rAABE.js → dashboardCommand-bbLfc9FW.js} +3 -3
  14. package/dist/{dataCommand-B93TUBIx.js → dataCommand-k9mXTXin.js} +331 -303
  15. package/dist/{dev-1yu42ubu.js → dev-C0cbqysu.js} +3 -3
  16. package/dist/{dev-BWwE0QjK.js → dev-Dz9GqA6P.js} +1 -1
  17. package/dist/doctorCommand-BlciWUJb.js +2 -0
  18. package/dist/{doctorCommand-y-EbP8st.js → doctorCommand-DyViaaCP.js} +38 -22
  19. package/dist/{doctorSourceRelations-Dd48LPvO.js → doctorSourceRelations-c5mlN5HI.js} +66 -34
  20. package/dist/{dormancyCommand-Dc7KRNCG.js → dormancyCommand-DMZPA_HW.js} +1 -1
  21. package/dist/{embeddingsCommand-kPs132bB.js → embeddingsCommand-CMxRPkg6.js} +1 -1
  22. package/dist/{envCommand-E12zSt51.js → envCommand-CDLr-yD4.js} +2 -2
  23. package/dist/{evolveCommand-B3nagPVc.js → evolveCommand-Ct4NesL3.js} +2 -2
  24. package/dist/{generateCommand-CcyvH2ve.js → generateCommand-BDdOxhnv.js} +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/{infoCommand-Cq0Yz98u.js → infoCommand-orsKJKUy.js} +1 -1
  27. package/dist/{inspect-B7U7Cl_Z.js → inspect-CtL_xTbu.js} +1 -0
  28. package/dist/inspect-CuGDYES0.js +2 -0
  29. package/dist/manifestBuild-CPjhvM62.js +2 -0
  30. package/dist/{manifestBuild-BK42hu0k.js → manifestBuild-CuU1VrSm.js} +2 -2
  31. package/dist/{runtimeTrace-BpLUcrfy.js → runtimeTrace-Bo8jWsNe.js} +1 -1
  32. package/dist/{sdkgen-dl4-WKF6.js → sdkgen-OZhiT2vz.js} +1 -1
  33. package/dist/serveCommand-Bbgg7Paq.js +2 -0
  34. package/dist/{serveCommand-8CTzQCY0.js → serveCommand-YbD5VgfV.js} +4 -4
  35. package/dist/serveEntry.js +1 -1
  36. package/dist/{start-DvlYDyAr.js → start-7b_bL8Uc.js} +1 -1
  37. package/dist/{start-7HcSIKEp.js → start-B1nH9ahf.js} +2 -2
  38. package/dist/startEntry.js +1 -1
  39. package/dist/{updateCommand-i8JbrLAA.js → updateCommand-BgH6vTtq.js} +1 -1
  40. package/dist/updateCommand-BweY17z-.js +2 -0
  41. package/dist/{webDev-B4IEMB0n.js → webDev-BbdkzMbd.js} +1 -1
  42. package/dist/webDev-BcRFTsMA.js +2 -0
  43. package/dist/{webhooksCommand-B0bdyuQ4.js → webhooksCommand-DjE6u0r4.js} +1 -1
  44. package/package.json +23 -17
  45. package/templates/AGENTS.md +1 -1
  46. package/templates/agent-docs/_index.md +1 -1
  47. package/templates/agent-docs/cli.md +63 -3
  48. package/templates/agent-docs/data.md +36 -0
  49. package/templates/agent-docs/whats-new.md +30 -32
  50. package/templates/apps/api-ai/package.json +7 -7
  51. package/templates/apps/api-auth/package.json +8 -8
  52. package/templates/apps/api-backend/package.json +7 -7
  53. package/templates/apps/api-backend-deactivation/package.json +7 -7
  54. package/templates/apps/api-backend-mail/package.json +8 -8
  55. package/templates/apps/api-backend-mariadb/package.json +9 -9
  56. package/templates/apps/api-backend-sqlite/package.json +8 -8
  57. package/templates/apps/api-backend-storage/package.json +8 -8
  58. package/templates/apps/api-cms/package.json +10 -10
  59. package/templates/apps/api-collab/package.json +8 -8
  60. package/templates/apps/api-data-advanced/package.json +8 -8
  61. package/templates/apps/api-durable/package.json +8 -8
  62. package/templates/apps/api-feature-flags/package.json +9 -9
  63. package/templates/apps/api-governance/package.json +8 -8
  64. package/templates/apps/api-kv/package.json +8 -8
  65. package/templates/apps/api-moderation/package.json +8 -8
  66. package/templates/apps/api-observability/package.json +8 -8
  67. package/templates/apps/api-ratelimit/package.json +8 -8
  68. package/templates/apps/api-rbac/package.json +8 -8
  69. package/templates/apps/api-rest/package.json +7 -7
  70. package/templates/apps/api-saas/package.json +11 -11
  71. package/templates/apps/api-saas-starter/package.json +10 -10
  72. package/templates/apps/api-search/package.json +8 -8
  73. package/templates/apps/api-status/package.json +8 -8
  74. package/templates/apps/api-versioning/package.json +8 -8
  75. package/templates/apps/api-webhooks/package.json +9 -9
  76. package/templates/apps/changelog/package.json +6 -6
  77. package/templates/apps/edge-functions/package.json +2 -2
  78. package/templates/apps/frontend-admin/package.json +8 -8
  79. package/templates/apps/frontend-app/package.json +9 -9
  80. package/templates/apps/frontend-auth/package.json +8 -8
  81. package/templates/apps/frontend-blank/package.json +7 -7
  82. package/templates/apps/frontend-cms/package.json +9 -9
  83. package/templates/apps/frontend-collab/package.json +10 -10
  84. package/templates/apps/frontend-contact/package.json +7 -7
  85. package/templates/apps/frontend-dashboard/package.json +7 -7
  86. package/templates/apps/frontend-docs/package.json +7 -7
  87. package/templates/apps/frontend-i18n/package.json +6 -6
  88. package/templates/apps/frontend-landing/package.json +7 -7
  89. package/templates/apps/frontend-portal/package.json +8 -8
  90. package/templates/apps/frontend-saas/package.json +8 -8
  91. package/templates/apps/frontend-spa/package.json +7 -7
  92. package/templates/apps/frontend-ssr/package.json +7 -7
  93. package/templates/apps/frontend-ssr-api/package.json +8 -8
  94. package/templates/apps/frontend-static-blog/package.json +6 -6
  95. package/templates/apps/frontend-status/package.json +8 -8
  96. package/templates/apps/mobile-app/package.json +4 -4
  97. package/dist/apiBuild-BWo8KI6n.js +0 -2
  98. package/dist/appGraph-KGDPTuTy.js +0 -110
  99. package/dist/appGraph-zuMGKVYX.js +0 -2
  100. package/dist/doctorCommand-BmovAwb7.js +0 -2
  101. package/dist/inspect-DUze25t0.js +0 -2
  102. package/dist/manifestBuild-j0n109tt.js +0 -2
  103. package/dist/serveCommand-C_WI4TTG.js +0 -2
  104. package/dist/updateCommand-D91-TZ7E.js +0 -2
  105. package/dist/webDev-B79ji8M5.js +0 -2
@@ -15,18 +15,18 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@effect/platform": "^0.97.0",
18
- "@voltro/cli": "0.50.0",
19
- "@voltro/client": "0.50.0",
20
- "@voltro/env": "0.50.0",
21
- "@voltro/i18n": "0.50.0",
22
- "@voltro/serverless": "0.50.0",
23
- "@voltro/web": "0.50.0",
18
+ "@voltro/cli": "0.50.1",
19
+ "@voltro/client": "0.50.1",
20
+ "@voltro/env": "0.50.1",
21
+ "@voltro/i18n": "0.50.1",
22
+ "@voltro/serverless": "0.50.1",
23
+ "@voltro/web": "0.50.1",
24
24
  "effect": "^3.22.0",
25
25
  "react": "^19.0.0",
26
26
  "react-dom": "^19.0.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@voltro/devtools": "0.50.0",
29
+ "@voltro/devtools": "0.50.1",
30
30
  "@types/react": "^19.0.0",
31
31
  "@types/react-dom": "^19.0.0",
32
32
  "jsdom": "^30.0.0",
@@ -12,17 +12,17 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/ui-shadcn": "0.50.0",
20
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/ui-shadcn": "0.50.1",
20
+ "@voltro/web": "0.50.1",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.50.0",
25
+ "@voltro/devtools": "0.50.1",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "jsdom": "^30.0.0",
@@ -12,17 +12,17 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/ui-shadcn": "0.50.0",
20
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/ui-shadcn": "0.50.1",
20
+ "@voltro/web": "0.50.1",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.50.0",
25
+ "@voltro/devtools": "0.50.1",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "jsdom": "^30.0.0",
@@ -12,16 +12,16 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/web": "0.50.1",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/devtools": "0.50.0",
24
+ "@voltro/devtools": "0.50.1",
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "jsdom": "^30.0.0",
@@ -12,17 +12,17 @@
12
12
  "typecheck": "tsc --noEmit"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/ui-shadcn": "0.50.0",
20
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/ui-shadcn": "0.50.1",
20
+ "@voltro/web": "0.50.1",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.50.0",
25
+ "@voltro/devtools": "0.50.1",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "jsdom": "^30.0.0",
@@ -12,18 +12,18 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@{{projectName}}/api": "0.50.0",
16
- "@voltro/cli": "0.50.0",
17
- "@voltro/client": "0.50.0",
18
- "@voltro/env": "0.50.0",
19
- "@voltro/i18n": "0.50.0",
20
- "@voltro/ui-shadcn": "0.50.0",
21
- "@voltro/web": "0.50.0",
15
+ "@{{projectName}}/api": "0.50.1",
16
+ "@voltro/cli": "0.50.1",
17
+ "@voltro/client": "0.50.1",
18
+ "@voltro/env": "0.50.1",
19
+ "@voltro/i18n": "0.50.1",
20
+ "@voltro/ui-shadcn": "0.50.1",
21
+ "@voltro/web": "0.50.1",
22
22
  "react": "^19.0.0",
23
23
  "react-dom": "^19.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/devtools": "0.50.0",
26
+ "@voltro/devtools": "0.50.1",
27
27
  "@types/react": "^19.0.0",
28
28
  "@types/react-dom": "^19.0.0",
29
29
  "jsdom": "^30.0.0",
@@ -12,18 +12,18 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@{{projectName}}/api": "0.50.0",
16
- "@voltro/cli": "0.50.0",
17
- "@voltro/client": "0.50.0",
18
- "@voltro/env": "0.50.0",
19
- "@voltro/i18n": "0.50.0",
20
- "@voltro/ui-shadcn": "0.50.0",
21
- "@voltro/web": "0.50.0",
15
+ "@{{projectName}}/api": "0.50.1",
16
+ "@voltro/cli": "0.50.1",
17
+ "@voltro/client": "0.50.1",
18
+ "@voltro/env": "0.50.1",
19
+ "@voltro/i18n": "0.50.1",
20
+ "@voltro/ui-shadcn": "0.50.1",
21
+ "@voltro/web": "0.50.1",
22
22
  "react": "^19.0.0",
23
23
  "react-dom": "^19.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/devtools": "0.50.0",
26
+ "@voltro/devtools": "0.50.1",
27
27
  "@types/react": "^19.0.0",
28
28
  "@types/react-dom": "^19.0.0",
29
29
  "jsdom": "^30.0.0",
@@ -12,17 +12,17 @@
12
12
  "typecheck": "tsc --noEmit"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/ui-shadcn": "0.50.0",
20
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/ui-shadcn": "0.50.1",
20
+ "@voltro/web": "0.50.1",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.50.0",
25
+ "@voltro/devtools": "0.50.1",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "jsdom": "^30.0.0",
@@ -12,17 +12,17 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/ui-shadcn": "0.50.0",
20
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/ui-shadcn": "0.50.1",
20
+ "@voltro/web": "0.50.1",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/devtools": "0.50.0",
25
+ "@voltro/devtools": "0.50.1",
26
26
  "@types/react": "^19.0.0",
27
27
  "@types/react-dom": "^19.0.0",
28
28
  "jsdom": "^30.0.0",
@@ -12,18 +12,18 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@{{projectName}}/api": "0.50.0",
16
- "@voltro/cli": "0.50.0",
17
- "@voltro/client": "0.50.0",
18
- "@voltro/env": "0.50.0",
19
- "@voltro/i18n": "0.50.0",
20
- "@voltro/ui-shadcn": "0.50.0",
21
- "@voltro/web": "0.50.0",
15
+ "@{{projectName}}/api": "0.50.1",
16
+ "@voltro/cli": "0.50.1",
17
+ "@voltro/client": "0.50.1",
18
+ "@voltro/env": "0.50.1",
19
+ "@voltro/i18n": "0.50.1",
20
+ "@voltro/ui-shadcn": "0.50.1",
21
+ "@voltro/web": "0.50.1",
22
22
  "react": "^19.0.0",
23
23
  "react-dom": "^19.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/devtools": "0.50.0",
26
+ "@voltro/devtools": "0.50.1",
27
27
  "@types/react": "^19.0.0",
28
28
  "@types/react-dom": "^19.0.0",
29
29
  "jsdom": "^30.0.0",
@@ -12,16 +12,16 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/cli": "0.50.0",
16
- "@voltro/client": "0.50.0",
17
- "@voltro/env": "0.50.0",
18
- "@voltro/i18n": "0.50.0",
19
- "@voltro/web": "0.50.0",
15
+ "@voltro/cli": "0.50.1",
16
+ "@voltro/client": "0.50.1",
17
+ "@voltro/env": "0.50.1",
18
+ "@voltro/i18n": "0.50.1",
19
+ "@voltro/web": "0.50.1",
20
20
  "react": "^19.0.0",
21
21
  "react-dom": "^19.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/devtools": "0.50.0",
24
+ "@voltro/devtools": "0.50.1",
25
25
  "@types/react": "^19.0.0",
26
26
  "@types/react-dom": "^19.0.0",
27
27
  "jsdom": "^30.0.0",
@@ -12,18 +12,18 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@{{projectName}}/api": "0.50.0",
16
- "@voltro/cli": "0.50.0",
17
- "@voltro/client": "0.50.0",
18
- "@voltro/env": "0.50.0",
19
- "@voltro/i18n": "0.50.0",
20
- "@voltro/ui-shadcn": "0.50.0",
21
- "@voltro/web": "0.50.0",
15
+ "@{{projectName}}/api": "0.50.1",
16
+ "@voltro/cli": "0.50.1",
17
+ "@voltro/client": "0.50.1",
18
+ "@voltro/env": "0.50.1",
19
+ "@voltro/i18n": "0.50.1",
20
+ "@voltro/ui-shadcn": "0.50.1",
21
+ "@voltro/web": "0.50.1",
22
22
  "react": "^19.0.0",
23
23
  "react-dom": "^19.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/devtools": "0.50.0",
26
+ "@voltro/devtools": "0.50.1",
27
27
  "@types/react": "^19.0.0",
28
28
  "@types/react-dom": "^19.0.0",
29
29
  "jsdom": "^30.0.0",
@@ -15,9 +15,9 @@
15
15
  "dependencies": {
16
16
  "@react-native-async-storage/async-storage": "1.23.1",
17
17
  "@react-native-community/netinfo": "11.4.1",
18
- "@voltro/client": "0.50.0",
19
- "@voltro/react-native": "0.50.0",
20
- "@{{projectName}}/api": "0.50.0",
18
+ "@voltro/client": "0.50.1",
19
+ "@voltro/react-native": "0.50.1",
20
+ "@{{projectName}}/api": "0.50.1",
21
21
  "expo": "^52.0.0",
22
22
  "expo-constants": "~17.0.0",
23
23
  "expo-linking": "~7.0.0",
@@ -32,7 +32,7 @@
32
32
  "@types/node": "^22.0.0",
33
33
  "@types/react": "^19.0.0",
34
34
  "@vitest/coverage-v8": "^4.1.10",
35
- "@voltro/cli": "0.50.0",
35
+ "@voltro/cli": "0.50.1",
36
36
  "typescript": "^6.0.3",
37
37
  "vitest": "^4.1.10"
38
38
  }
@@ -1,2 +0,0 @@
1
- import { c as e, l as t } from "./apiBuild-CFYXo06U.js";
2
- export { e as runApiBuild, t as runServeBundleBuild };
@@ -1,110 +0,0 @@
1
- //#region src/appGraph.ts
2
- var e = (e) => e.source === void 0 ? [] : typeof e.source == "string" ? [e.source] : e.source, t = (e) => ({
3
- tables: new Set(e.tables),
4
- procedures: new Map(e.procedures.map((e) => [e.tag, e])),
5
- scopes: new Set(e.scopes ?? []),
6
- input: e
7
- }), n = (t) => {
8
- let n = [], r = /* @__PURE__ */ new Set();
9
- for (let i of t.input.procedures) {
10
- for (let a of e(i)) r.add(a), t.tables.has(a) || n.push({
11
- rule: "reference/dangling-source",
12
- node: `${i.kind}(${i.tag})`,
13
- ...i.file === void 0 ? {} : { file: i.file },
14
- breaks: [`reads table '${a}' which does not exist`],
15
- fix: `declare a '${a}.entity.ts' table or fix the query's source`,
16
- severity: "error"
17
- });
18
- for (let e of i.targets ?? []) r.add(e.table), t.tables.has(e.table) || n.push({
19
- rule: "reference/dangling-target",
20
- node: `${i.kind}(${i.tag})`,
21
- ...i.file === void 0 ? {} : { file: i.file },
22
- breaks: [`targets table '${e.table}' (op '${e.op}') which does not exist`],
23
- fix: `declare a '${e.table}.entity.ts' table or fix the mutation's target`,
24
- severity: "error"
25
- });
26
- for (let e of i.requiresScopes ?? []) t.scopes.size > 0 && !t.scopes.has(e) && n.push({
27
- rule: "rbac/unknown-scope",
28
- node: `${i.kind}(${i.tag})`,
29
- ...i.file === void 0 ? {} : { file: i.file },
30
- breaks: [`requires scope '${e}' which is not declared`],
31
- fix: `declare the scope '${e}' or fix the requireScope(...) call`,
32
- severity: "error"
33
- });
34
- i.kind === "mutation" && i.hasGuards === !1 && i.openAccess === void 0 && n.push({
35
- rule: "rbac/unguarded-mutation",
36
- node: `${i.kind}(${i.tag})`,
37
- ...i.file === void 0 ? {} : { file: i.file },
38
- breaks: [`'${i.tag}' changes state but declares no guard — any caller who can reach the rpc surface can invoke it`],
39
- fix: "add a guard (e.g. `.guard(requireScope('…'))`), or confirm it is intentionally public",
40
- severity: "warn"
41
- });
42
- }
43
- for (let e of t.input.routes ?? []) for (let r of e.binds) t.procedures.has(r) || n.push({
44
- rule: "binding/unknown-tag",
45
- node: `route(${e.pattern})`,
46
- ...e.file === void 0 ? {} : { file: e.file },
47
- breaks: [`binds rpc tag '${r}' which does not exist`],
48
- fix: `bind an existing tag, or restore '${r}' (it may have been renamed/removed)`,
49
- severity: "error"
50
- });
51
- for (let e of t.input.procedures) for (let t of e.targets ?? []) r.add(t.table);
52
- let i = new Set(t.input.frameworkOwnedTables ?? []), a = t.input.procedures.filter((t) => t.kind === "action" && e(t).length === 0 && (t.targets ?? []).length === 0).length;
53
- for (let e of t.tables) i.has(e) || r.has(e) || n.push({
54
- rule: "orphan/unread-table",
55
- node: `table(${e})`,
56
- breaks: a > 0 ? [`no query reads and no mutation writes '${e}'`, `${a} action(s) declare neither source nor target, so one of them may still use it`] : [`no query reads and no mutation writes '${e}'`],
57
- fix: a > 0 ? "declare `source`/`target` on your actions so this can be answered, then re-run" : `add a query/mutation for '${e}', or remove the table if it's dead`,
58
- severity: "warn"
59
- });
60
- if (t.scopes.size > 0) {
61
- let e = /* @__PURE__ */ new Set();
62
- for (let n of t.input.procedures) for (let t of n.requiresScopes ?? []) e.add(t);
63
- for (let r of [...t.scopes].sort()) r === "admin:full" || e.has(r) || n.push({
64
- rule: "rbac/unenforced-scope",
65
- node: `scope(${r})`,
66
- breaks: [`'${r}' is granted by a role but NO query/mutation/action/stream guards on it`, "a scope nobody checks grants nothing and withholds nothing — the role map reads stricter than the app is"],
67
- fix: `add \`.guard(requireScope('${r}'))\` to the handlers it is meant to protect — or, if a plugin route, a REST route, or a UI-only affordance enforces it, say so where the role is declared`,
68
- severity: "warn"
69
- });
70
- }
71
- return n;
72
- }, r = (t, n) => {
73
- let r = [];
74
- if (n.kind === "removeTable") for (let i of t.input.procedures) {
75
- let t = e(i).includes(n.name), a = (i.targets ?? []).some((e) => e.table === n.name);
76
- (t || a) && r.push({
77
- rule: "blast/table-removed",
78
- node: `${i.kind}(${i.tag})`,
79
- ...i.file === void 0 ? {} : { file: i.file },
80
- breaks: [`${t ? "reads" : "writes"} table '${n.name}' — would break if removed`],
81
- fix: `migrate or remove ${i.tag} before dropping '${n.name}'`,
82
- severity: "error"
83
- });
84
- }
85
- else if (n.kind === "removeProcedure") for (let e of t.input.routes ?? []) e.binds.includes(n.tag) && r.push({
86
- rule: "blast/procedure-removed",
87
- node: `route(${e.pattern})`,
88
- ...e.file === void 0 ? {} : { file: e.file },
89
- breaks: [`binds '${n.tag}' — would break if removed`],
90
- fix: `rebind ${e.pattern} to another tag before removing '${n.tag}'`,
91
- severity: "error"
92
- });
93
- else for (let e of t.input.procedures) (e.requiresScopes ?? []).includes(n.name) && r.push({
94
- rule: "blast/scope-removed",
95
- node: `${e.kind}(${e.tag})`,
96
- ...e.file === void 0 ? {} : { file: e.file },
97
- breaks: [`requires scope '${n.name}' — would become unguarded/dangling if removed`],
98
- fix: `remove the requireScope('${n.name}') call or keep the scope`,
99
- severity: "error"
100
- });
101
- return r;
102
- }, i = (e, i) => {
103
- let a = t(e), o = [...n(a), ...i === void 0 ? [] : r(a, i)];
104
- return {
105
- ok: !o.some((e) => e.severity === "error"),
106
- diagnostics: o
107
- };
108
- };
109
- //#endregion
110
- export { r as i, n, i as r, t };
@@ -1,2 +0,0 @@
1
- import { n as e, t } from "./appGraph-KGDPTuTy.js";
2
- export { t as buildAppGraph, e as checkAppGraph };
@@ -1,2 +0,0 @@
1
- import { b as e, y as t } from "./doctorCommand-y-EbP8st.js";
2
- export { t as runDoctorCommand, e as runServePreflight };
@@ -1,2 +0,0 @@
1
- import { r as e } from "./inspect-B7U7Cl_Z.js";
2
- export { e as buildCapabilityManifest };
@@ -1,2 +0,0 @@
1
- import { t as e } from "./manifestBuild-BK42hu0k.js";
2
- export { e as buildRpcEntry };
@@ -1,2 +0,0 @@
1
- import { n as e } from "./serveCommand-8CTzQCY0.js";
2
- export { e as runServeDispatch };
@@ -1,2 +0,0 @@
1
- import { f as e, p as t } from "./updateCommand-i8JbrLAA.js";
2
- export { e as runApplyCodemods, t as runUpdateCommand };
@@ -1,2 +0,0 @@
1
- import { _ as e, y as t } from "./webDev-B4IEMB0n.js";
2
- export { e as tryRunWebServe, t as walkPagesTree };