@voltro/cli 0.39.1 → 0.40.0

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 (102) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/dist/agentsMd-Bu_XQgVf.js +2 -0
  3. package/dist/{agentsMd-7zI2h5l9.js → agentsMd-D6yD7IQv.js} +31 -14
  4. package/dist/apiBuild-BIyGkym8.js +2 -0
  5. package/dist/{apiBuild-D9FB13_2.js → apiBuild-C8xBEYbL.js} +2 -2
  6. package/dist/bin.js +1 -1
  7. package/dist/{build-DORV5mLM.js → build-CkhFGnKA.js} +168 -165
  8. package/dist/{checkCommand-Bf6oMao4.js → checkCommand-BcXJa2IS.js} +2 -2
  9. package/dist/{checkCommand-D9qK_gtA.js → checkCommand-QbHshOac.js} +1 -1
  10. package/dist/{cloudCmd-C42gaO8s.js → cloudCmd-F4YJeqM3.js} +1 -1
  11. package/dist/{codegenCommand-CxOyKmc1.js → codegenCommand-DF2OJh3O.js} +2 -2
  12. package/dist/{codemodRunner-D-jTyvWo.js → codemodRunner-BcOvi4A2.js} +103 -0
  13. package/dist/{commands-D6aW_6AR.js → commands-7Z7-HOE3.js} +30 -30
  14. package/dist/{dashboardCommand-CwTZh-XZ.js → dashboardCommand-CUycH6dR.js} +5 -5
  15. package/dist/{dataCommand-Cc9RiLQZ.js → dataCommand-By78lscK.js} +1 -1
  16. package/dist/{dev-CjJAasDs.js → dev-D8JSKlBM.js} +1 -1
  17. package/dist/{dev-3mgc8c-H.js → dev-Dh1NuYx1.js} +1569 -1569
  18. package/dist/{doctorCommand-oLuzc-aC.js → doctorCommand-C-8-Z9D6.js} +36 -36
  19. package/dist/doctorCommand-FhQ7EVYL.js +2 -0
  20. package/dist/{dormancyCommand-Bxe4WtHU.js → dormancyCommand-A79Odglm.js} +1 -1
  21. package/dist/{embeddingsCommand-CyNQkFIc.js → embeddingsCommand-CoiyHfkY.js} +1 -1
  22. package/dist/{envCommand-CAkSgBbh.js → envCommand-B6d0s-jZ.js} +8 -8
  23. package/dist/{evolveCommand-CWhBoe_P.js → evolveCommand-BC5a9lxX.js} +2 -2
  24. package/dist/index.js +1 -1
  25. package/dist/{infoCommand-CTo8Jnhq.js → infoCommand-ZqSVzJZ4.js} +1 -1
  26. package/dist/{metaCommands-DUYR--Ts.js → metaCommands-CfRLra0s.js} +1 -1
  27. package/dist/{projectScaffold-BEhhHjPr.js → projectScaffold-BIl97_E6.js} +1 -1
  28. package/dist/{projectScaffold-BvhLOrLq.js → projectScaffold-mIX_DpSe.js} +1 -1
  29. package/dist/{runtimeTrace-gNXeLf6H.js → runtimeTrace-BslKJjDY.js} +1 -1
  30. package/dist/{sdkgen-C8zz10-X.js → sdkgen-DQ8uEmmn.js} +1 -1
  31. package/dist/serveCommand-BmvEQCMS.js +2 -0
  32. package/dist/{serveCommand-BpK8-m1N.js → serveCommand-Dqb9Ku1-.js} +656 -656
  33. package/dist/serveEntry.js +1 -1
  34. package/dist/{start-BNuTWdRd.js → start-BA7txHhY.js} +1 -1
  35. package/dist/{start-ft_KzFTd.js → start-dkNYKtgQ.js} +342 -318
  36. package/dist/startEntry.js +1 -1
  37. package/dist/updateCommand-BauSVxPp.js +2 -0
  38. package/dist/{updateCommand-CHBmCB17.js → updateCommand-eoGpZr3E.js} +1 -1
  39. package/dist/webDev-CBbKs4dZ.js +2 -0
  40. package/dist/{webDev-CTpSY-e_.js → webDev-bybjZA0o.js} +240 -186
  41. package/dist/{webhooksCommand-EccPZQZ4.js → webhooksCommand-DubZWNOx.js} +1 -1
  42. package/package.json +29 -17
  43. package/templates/AGENTS.md +1 -1
  44. package/templates/agent-docs/_index.md +1 -1
  45. package/templates/agent-docs/data.md +43 -0
  46. package/templates/agent-docs/routing.md +40 -0
  47. package/templates/agent-docs/whats-new.md +132 -26
  48. package/templates/apps/api-ai/package.json +7 -7
  49. package/templates/apps/api-auth/package.json +8 -8
  50. package/templates/apps/api-backend/package.json +7 -7
  51. package/templates/apps/api-backend-deactivation/package.json +7 -7
  52. package/templates/apps/api-backend-mail/package.json +8 -8
  53. package/templates/apps/api-backend-mariadb/package.json +9 -9
  54. package/templates/apps/api-backend-sqlite/package.json +8 -8
  55. package/templates/apps/api-backend-storage/package.json +8 -8
  56. package/templates/apps/api-cms/package.json +10 -10
  57. package/templates/apps/api-collab/package.json +8 -8
  58. package/templates/apps/api-data-advanced/package.json +8 -8
  59. package/templates/apps/api-durable/package.json +8 -8
  60. package/templates/apps/api-durable/tests/orders.place.test.ts +17 -4
  61. package/templates/apps/api-feature-flags/package.json +9 -9
  62. package/templates/apps/api-governance/package.json +8 -8
  63. package/templates/apps/api-kv/package.json +8 -8
  64. package/templates/apps/api-moderation/package.json +8 -8
  65. package/templates/apps/api-observability/package.json +8 -8
  66. package/templates/apps/api-ratelimit/package.json +8 -8
  67. package/templates/apps/api-rbac/package.json +8 -8
  68. package/templates/apps/api-rest/package.json +7 -7
  69. package/templates/apps/api-saas/package.json +11 -11
  70. package/templates/apps/api-saas-starter/package.json +10 -10
  71. package/templates/apps/api-search/package.json +8 -8
  72. package/templates/apps/api-status/package.json +8 -8
  73. package/templates/apps/api-versioning/package.json +8 -8
  74. package/templates/apps/api-webhooks/package.json +9 -9
  75. package/templates/apps/changelog/package.json +6 -6
  76. package/templates/apps/changelog/src/pages/[slug]/page.test.tsx +8 -1
  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/agentsMd-BFCXh2gl.js +0 -2
  98. package/dist/apiBuild-BmR_bIxN.js +0 -2
  99. package/dist/doctorCommand-Cghssndo.js +0 -2
  100. package/dist/serveCommand-CW-goXvh.js +0 -2
  101. package/dist/updateCommand-6FMU2klq.js +0 -2
  102. package/dist/webDev-id3I5PvG.js +0 -2
@@ -11,17 +11,17 @@
11
11
  "test": "voltro test"
12
12
  },
13
13
  "dependencies": {
14
- "@voltro/cli": "0.39.1",
15
- "@voltro/database": "0.39.1",
16
- "@voltro/env": "0.39.1",
17
- "@voltro/plugin-multitenancy": "0.39.1",
18
- "@voltro/plugin-storage": "0.39.1",
19
- "@voltro/protocol": "0.39.1",
20
- "@voltro/runtime": "0.39.1",
14
+ "@voltro/cli": "0.40.0",
15
+ "@voltro/database": "0.40.0",
16
+ "@voltro/env": "0.40.0",
17
+ "@voltro/plugin-multitenancy": "0.40.0",
18
+ "@voltro/plugin-storage": "0.40.0",
19
+ "@voltro/protocol": "0.40.0",
20
+ "@voltro/runtime": "0.40.0",
21
21
  "effect": "^3.22.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@voltro/testing": "0.39.1",
24
+ "@voltro/testing": "0.40.0",
25
25
  "typescript": "^6.0.3",
26
26
  "@vitest/coverage-v8": "^4.1.10",
27
27
  "vitest": "^4.1.10"
@@ -13,19 +13,19 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/cms": "0.39.1",
18
- "@voltro/database": "0.39.1",
19
- "@voltro/env": "0.39.1",
20
- "@voltro/plugin-auth": "0.39.1",
21
- "@voltro/plugin-multitenancy": "0.39.1",
22
- "@voltro/protocol": "0.39.1",
23
- "@voltro/runtime": "0.39.1",
24
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/cms": "0.40.0",
18
+ "@voltro/database": "0.40.0",
19
+ "@voltro/env": "0.40.0",
20
+ "@voltro/plugin-auth": "0.40.0",
21
+ "@voltro/plugin-multitenancy": "0.40.0",
22
+ "@voltro/protocol": "0.40.0",
23
+ "@voltro/runtime": "0.40.0",
24
+ "@voltro/sql-postgres": "0.40.0",
25
25
  "effect": "^3.22.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@voltro/testing": "0.39.1",
28
+ "@voltro/testing": "0.40.0",
29
29
  "typescript": "^6.0.3",
30
30
  "@vitest/coverage-v8": "^4.1.10",
31
31
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/local-first": "0.39.1",
20
- "@voltro/plugin-multitenancy": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/local-first": "0.40.0",
20
+ "@voltro/plugin-multitenancy": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.97.0",
14
14
  "@effect/rpc": "^0.76.0",
15
- "@voltro/cli": "0.39.1",
16
- "@voltro/database": "0.39.1",
17
- "@voltro/env": "0.39.1",
18
- "@voltro/plugin-governance": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/protocol": "0.39.1",
21
- "@voltro/runtime": "0.39.1",
15
+ "@voltro/cli": "0.40.0",
16
+ "@voltro/database": "0.40.0",
17
+ "@voltro/env": "0.40.0",
18
+ "@voltro/plugin-governance": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/protocol": "0.40.0",
21
+ "@voltro/runtime": "0.40.0",
22
22
  "effect": "^3.22.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.39.1",
25
+ "@voltro/testing": "0.40.0",
26
26
  "typescript": "^6.0.3",
27
27
  "@vitest/coverage-v8": "^4.1.10",
28
28
  "vitest": "^4.1.10"
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.97.0",
14
14
  "@effect/rpc": "^0.76.0",
15
- "@voltro/cli": "0.39.1",
16
- "@voltro/database": "0.39.1",
17
- "@voltro/env": "0.39.1",
18
- "@voltro/plugin-multitenancy": "0.39.1",
19
- "@voltro/protocol": "0.39.1",
20
- "@voltro/runtime": "0.39.1",
21
- "@voltro/workflow": "0.39.1",
15
+ "@voltro/cli": "0.40.0",
16
+ "@voltro/database": "0.40.0",
17
+ "@voltro/env": "0.40.0",
18
+ "@voltro/plugin-multitenancy": "0.40.0",
19
+ "@voltro/protocol": "0.40.0",
20
+ "@voltro/runtime": "0.40.0",
21
+ "@voltro/workflow": "0.40.0",
22
22
  "effect": "^3.22.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.39.1",
25
+ "@voltro/testing": "0.40.0",
26
26
  "typescript": "^6.0.3",
27
27
  "@vitest/coverage-v8": "^4.1.10",
28
28
  "vitest": "^4.1.10"
@@ -15,9 +15,10 @@
15
15
 
16
16
  import { describe, it, expect } from 'vitest'
17
17
  import { Schema } from 'effect'
18
- import { makeTestContext, mockStore } from '@voltro/testing'
18
+ import { invoke, makeTestContext, mockStore } from '@voltro/testing'
19
19
  import { database } from '../database/schema' // registers orders / actors / tenants
20
- import placeOrder from '../mutations/orders.place.mutation.server'
20
+ import { placeOrder } from '../mutations/orders.place.mutation'
21
+ import placeOrderExecutor from '../mutations/orders.place.mutation.server'
21
22
  import { FulfillOrder } from '../workflows/order.fulfill.workflow'
22
23
  import buildExecute from '../workflows/order.fulfill.workflow.server'
23
24
 
@@ -27,7 +28,19 @@ describe('orders.place', () => {
27
28
  subject: { type: 'user', id: 'user_1', tenantId: 'acme' },
28
29
  store: mockStore({ orders: [] }),
29
30
  })
30
- const row = await placeOrder(
31
+ // `invoke`, NOT `await placeOrderExecutor(...)`. An executor written in the
32
+ // Effect style RETURNS an Effect, and awaiting a non-thenable hands the
33
+ // Effect object straight back — unrun. `row.status` then reads `undefined`
34
+ // and the test fails pointing at the assertion rather than at the call.
35
+ //
36
+ // `invoke` is what production does: it decodes the input against the
37
+ // descriptor's schema, runs the guards, and runs an Effect handler through
38
+ // the same path the dispatcher uses (so a typed error stays typed instead of
39
+ // arriving as a FiberFailure). Passing the DESCRIPTOR is what makes those
40
+ // hops possible.
41
+ const row = await invoke(
42
+ placeOrder,
43
+ placeOrderExecutor,
31
44
  { tenantId: 'acme', customerName: 'Ada Lovelace', amountCents: 4200 },
32
45
  ctx,
33
46
  )
@@ -44,7 +57,7 @@ describe('orders.place', () => {
44
57
  subject: { type: 'user', id: 'u1', tenantId: 't1' },
45
58
  store: mockStore({ orders: [] }),
46
59
  })
47
- await placeOrder({ tenantId: 't1', customerName: 'Grace', amountCents: 100 }, ctx)
60
+ await invoke(placeOrder, placeOrderExecutor, { tenantId: 't1', customerName: 'Grace', amountCents: 100 }, ctx)
48
61
 
49
62
  // Re-scope the SAME store to a different tenant — the real WHERE filter
50
63
  // hides t1's row from t2.
@@ -13,18 +13,18 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-flags": "0.39.1",
20
- "@voltro/plugin-multitenancy": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
23
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-flags": "0.40.0",
20
+ "@voltro/plugin-multitenancy": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
+ "@voltro/sql-postgres": "0.40.0",
24
24
  "effect": "^3.22.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@voltro/testing": "0.39.1",
27
+ "@voltro/testing": "0.40.0",
28
28
  "typescript": "^6.0.3",
29
29
  "@vitest/coverage-v8": "^4.1.10",
30
30
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-audit": "0.39.1",
20
- "@voltro/plugin-governance": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-audit": "0.40.0",
20
+ "@voltro/plugin-governance": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -12,17 +12,17 @@
12
12
  "dependencies": {
13
13
  "@effect/platform": "^0.97.0",
14
14
  "@effect/rpc": "^0.76.0",
15
- "@voltro/cli": "0.39.1",
16
- "@voltro/database": "0.39.1",
17
- "@voltro/env": "0.39.1",
18
- "@voltro/kv": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/protocol": "0.39.1",
21
- "@voltro/runtime": "0.39.1",
15
+ "@voltro/cli": "0.40.0",
16
+ "@voltro/database": "0.40.0",
17
+ "@voltro/env": "0.40.0",
18
+ "@voltro/kv": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/protocol": "0.40.0",
21
+ "@voltro/runtime": "0.40.0",
22
22
  "effect": "^3.22.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.39.1",
25
+ "@voltro/testing": "0.40.0",
26
26
  "typescript": "^6.0.3",
27
27
  "@vitest/coverage-v8": "^4.1.10",
28
28
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-moderation": "0.39.1",
20
- "@voltro/plugin-multitenancy": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-moderation": "0.40.0",
20
+ "@voltro/plugin-multitenancy": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/plugin-multitenancy": "0.39.1",
19
- "@voltro/plugin-prometheus": "0.39.1",
20
- "@voltro/plugin-sentry": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/plugin-multitenancy": "0.40.0",
19
+ "@voltro/plugin-prometheus": "0.40.0",
20
+ "@voltro/plugin-sentry": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/plugin-ratelimit": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/plugin-ratelimit": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/plugin-rbac": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/plugin-rbac": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,16 +13,16 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/plugin-openapi": "0.39.1",
19
- "@voltro/protocol": "0.39.1",
20
- "@voltro/runtime": "0.39.1",
21
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/plugin-openapi": "0.40.0",
19
+ "@voltro/protocol": "0.40.0",
20
+ "@voltro/runtime": "0.40.0",
21
+ "@voltro/sql-postgres": "0.40.0",
22
22
  "effect": "^3.22.0"
23
23
  },
24
24
  "devDependencies": {
25
- "@voltro/testing": "0.39.1",
25
+ "@voltro/testing": "0.40.0",
26
26
  "typescript": "^6.0.3",
27
27
  "@vitest/coverage-v8": "^4.1.10",
28
28
  "vitest": "^4.1.10"
@@ -13,20 +13,20 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/plugin-analytics-postgres": "0.39.1",
19
- "@voltro/plugin-billing": "0.39.1",
20
- "@voltro/plugin-multitenancy": "0.39.1",
21
- "@voltro/plugin-notifications": "0.39.1",
22
- "@voltro/plugin-presence": "0.39.1",
23
- "@voltro/protocol": "0.39.1",
24
- "@voltro/runtime": "0.39.1",
25
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/plugin-analytics-postgres": "0.40.0",
19
+ "@voltro/plugin-billing": "0.40.0",
20
+ "@voltro/plugin-multitenancy": "0.40.0",
21
+ "@voltro/plugin-notifications": "0.40.0",
22
+ "@voltro/plugin-presence": "0.40.0",
23
+ "@voltro/protocol": "0.40.0",
24
+ "@voltro/runtime": "0.40.0",
25
+ "@voltro/sql-postgres": "0.40.0",
26
26
  "effect": "^3.22.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@voltro/testing": "0.39.1",
29
+ "@voltro/testing": "0.40.0",
30
30
  "typescript": "^6.0.3",
31
31
  "@vitest/coverage-v8": "^4.1.10",
32
32
  "vitest": "^4.1.10"
@@ -16,19 +16,19 @@
16
16
  "dependencies": {
17
17
  "@effect/platform": "^0.97.0",
18
18
  "@effect/rpc": "^0.76.0",
19
- "@voltro/cli": "0.39.1",
20
- "@voltro/database": "0.39.1",
21
- "@voltro/env": "0.39.1",
22
- "@voltro/plugin-auth": "0.39.1",
23
- "@voltro/plugin-billing": "0.39.1",
24
- "@voltro/plugin-multitenancy": "0.39.1",
25
- "@voltro/protocol": "0.39.1",
26
- "@voltro/runtime": "0.39.1",
27
- "@voltro/sql-postgres": "0.39.1",
19
+ "@voltro/cli": "0.40.0",
20
+ "@voltro/database": "0.40.0",
21
+ "@voltro/env": "0.40.0",
22
+ "@voltro/plugin-auth": "0.40.0",
23
+ "@voltro/plugin-billing": "0.40.0",
24
+ "@voltro/plugin-multitenancy": "0.40.0",
25
+ "@voltro/protocol": "0.40.0",
26
+ "@voltro/runtime": "0.40.0",
27
+ "@voltro/sql-postgres": "0.40.0",
28
28
  "effect": "^3.22.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@voltro/testing": "0.39.1",
31
+ "@voltro/testing": "0.40.0",
32
32
  "typescript": "^6.0.3",
33
33
  "@vitest/coverage-v8": "^4.1.10",
34
34
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/plugin-search": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/plugin-search": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-rbac": "0.39.1",
20
- "@voltro/protocol": "0.39.1",
21
- "@voltro/runtime": "0.39.1",
22
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-rbac": "0.40.0",
20
+ "@voltro/protocol": "0.40.0",
21
+ "@voltro/runtime": "0.40.0",
22
+ "@voltro/sql-postgres": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,17 +13,17 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/plugin-versioning": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/plugin-versioning": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
23
  "effect": "^3.22.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@voltro/testing": "0.39.1",
26
+ "@voltro/testing": "0.40.0",
27
27
  "typescript": "^6.0.3",
28
28
  "@vitest/coverage-v8": "^4.1.10",
29
29
  "vitest": "^4.1.10"
@@ -13,18 +13,18 @@
13
13
  "dependencies": {
14
14
  "@effect/platform": "^0.97.0",
15
15
  "@effect/rpc": "^0.76.0",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/database": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/plugin-multitenancy": "0.39.1",
20
- "@voltro/plugin-webhooks": "0.39.1",
21
- "@voltro/protocol": "0.39.1",
22
- "@voltro/runtime": "0.39.1",
23
- "@voltro/sql-postgres": "0.39.1",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/database": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/plugin-multitenancy": "0.40.0",
20
+ "@voltro/plugin-webhooks": "0.40.0",
21
+ "@voltro/protocol": "0.40.0",
22
+ "@voltro/runtime": "0.40.0",
23
+ "@voltro/sql-postgres": "0.40.0",
24
24
  "effect": "^3.22.0"
25
25
  },
26
26
  "devDependencies": {
27
- "@voltro/testing": "0.39.1",
27
+ "@voltro/testing": "0.40.0",
28
28
  "typescript": "^6.0.3",
29
29
  "@vitest/coverage-v8": "^4.1.10",
30
30
  "vitest": "^4.1.10"
@@ -12,12 +12,12 @@
12
12
  "test": "voltro test"
13
13
  },
14
14
  "dependencies": {
15
- "@voltro/changelog": "0.39.1",
16
- "@voltro/cli": "0.39.1",
17
- "@voltro/client": "0.39.1",
18
- "@voltro/env": "0.39.1",
19
- "@voltro/i18n": "0.39.1",
20
- "@voltro/web": "0.39.1",
15
+ "@voltro/changelog": "0.40.0",
16
+ "@voltro/cli": "0.40.0",
17
+ "@voltro/client": "0.40.0",
18
+ "@voltro/env": "0.40.0",
19
+ "@voltro/i18n": "0.40.0",
20
+ "@voltro/web": "0.40.0",
21
21
  "react": "^19.0.0",
22
22
  "react-dom": "^19.0.0"
23
23
  },
@@ -31,7 +31,14 @@ const releases: ReadonlyArray<Release> = [
31
31
 
32
32
  const releaseBySlug = (slug: string): Release | undefined => releases.find((r) => r.slug === slug)
33
33
 
34
- vi.mock('../lib/releases', () => ({ releases, releaseBySlug }))
34
+ // `../../lib/releases` the path the PAGE imports. This read `../lib/releases`,
35
+ // which from `src/pages/[slug]/` resolves to `src/pages/lib/releases`: a module
36
+ // that does not exist, so the mock registered against nothing and the REAL
37
+ // `src/lib/releases.ts` loaded. A wrong `vi.mock` specifier is silent in vitest
38
+ // — it fails later and elsewhere, here as "No `loadReleases` export is defined
39
+ // on the `@voltro/changelog` mock", because the real module calls it at import
40
+ // time. The sibling `[locale]/mirrors.test.tsx`, at the same depth, had it right.
41
+ vi.mock('../../lib/releases', () => ({ releases, releaseBySlug }))
35
42
  // `highlightRelease` runs shiki in node; the page only needs it to return a
36
43
  // (possibly re-rendered) release — the identity, tagged so we can assert it ran.
37
44
  vi.mock('@voltro/changelog', () => ({