@voltro/cli 0.4.0 → 0.5.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.
- package/CHANGELOG.md +21 -0
- package/dist/{apiBuild-CvtQeBMs.js → apiBuild-CZugTK46.js} +1 -1
- package/dist/apiBuild-D-iBYKa3.js +2 -0
- package/dist/bin.js +2 -2
- package/dist/{commands-DhyBIs1O.js → commands-CJheDVOr.js} +1600 -1376
- package/dist/{dev-CQxbrpDz.js → dev-B71ICpXJ.js} +1756 -1626
- package/dist/dev-DNUetyG2.js +2 -0
- package/dist/index.js +1 -1
- package/dist/serveCommand-C0WFA396.js +1084 -0
- package/dist/serveEntry.js +2 -2
- package/package.json +17 -17
- package/templates/AGENTS.core.md +84 -0
- package/templates/AGENTS.md +84 -0
- package/templates/agent-docs/_manifest.json +1 -1
- package/templates/agent-docs/ai.md +6 -2
- package/templates/agent-docs/authentication.md +69 -0
- package/templates/agent-docs/cli.md +76 -0
- package/templates/agent-docs/data.md +147 -3
- package/templates/agent-docs/database/advancedqueries.md +21 -0
- package/templates/agent-docs/database/querying.md +15 -5
- package/templates/agent-docs/database/schema.md +5 -2
- package/templates/agent-docs/reference.md +34 -0
- package/templates/agent-docs/workflows.md +11 -8
- package/templates/apps/api-ai/package.json +7 -7
- package/templates/apps/api-auth/package.json +8 -8
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -9
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -7
- package/templates/apps/api-saas/package.json +11 -11
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-versioning/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +8 -8
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-app/package.json +8 -8
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-docs/package.json +7 -7
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-static-blog/package.json +6 -6
- package/dist/apiBuild-DQBNqNZ8.js +0 -2
- package/dist/dev-DYjGqPGD.js +0 -2
- package/dist/serveCommand-BZzUJIyo.js +0 -1077
|
@@ -130,19 +130,29 @@ Each call adds ONE column + direction; chain for multi-column ordering:
|
|
|
130
130
|
.limit(20).offset(40)
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
-
For cursor pagination that avoids OFFSET's O(n) scan, use
|
|
133
|
+
For cursor pagination that avoids OFFSET's O(n) scan, use `paginateBy` over `ctx.store.query(...)`:
|
|
134
134
|
|
|
135
135
|
```ts
|
|
136
|
-
import {
|
|
136
|
+
import { paginateBy } from '@voltro/database'
|
|
137
137
|
|
|
138
138
|
const rows = await ctx.store.query(
|
|
139
|
-
|
|
139
|
+
paginateBy(database.notes.descriptor, 'createdAt', req.cursor, 20, 'desc'),
|
|
140
140
|
)
|
|
141
|
-
const nextCursor = rows.at(-1)?.
|
|
141
|
+
const nextCursor = rows.at(-1)?.createdAt ?? null
|
|
142
142
|
return { rows, nextCursor }
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
-
`
|
|
145
|
+
`paginateBy(descriptor, column, cursor, limit, direction?)` adds the keyset predicate, sets the ORDER BY, and preserves any existing `where`.
|
|
146
|
+
|
|
147
|
+
The `direction` argument controls **both** the comparison and the sort — a `desc` feed pages with `<`, not `>`. That pairing is the classic keyset bug: an ascending comparison under a descending sort returns the same first page forever.
|
|
148
|
+
|
|
149
|
+
The cursor column must be unique, or monotonic enough that ties don't straddle a page boundary. For a timestamp with collisions, order by a tie-breaker and paginate on that:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
paginateBy(database.notes.orderBy('createdAt', 'desc').descriptor, 'id', req.cursor, 20)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`paginateById(descriptor, cursor, limit)` is the `id`-column shorthand — literally `paginateBy(descriptor, 'id', cursor, limit)`. It works for any sortable id scheme (TypeID, ULID, Snowflake, Numeric). Note it sets the order to `id asc`, so passing a descriptor that already carries `.orderBy('createdAt', 'desc')` does **not** page by `createdAt` — use `paginateBy` when the sort column is the thing you want to page on.
|
|
146
156
|
|
|
147
157
|
## Aggregates
|
|
148
158
|
|
|
@@ -716,8 +716,11 @@ const row = await ctx.store.insert('todos', { title, done: false })
|
|
|
716
716
|
// Test — deterministic id.
|
|
717
717
|
await ctx.store.insert('todos', { id: 'todo_pinned_for_test', title, done: false })
|
|
718
718
|
|
|
719
|
-
// Signup self-stamping —
|
|
720
|
-
|
|
719
|
+
// Signup self-stamping — the actor IS the row. Generate the id up front
|
|
720
|
+
// so createdBy can point at the row being created, in the same insert.
|
|
721
|
+
import { typeid } from 'typeid-js'
|
|
722
|
+
const userId = typeid('user').toString()
|
|
723
|
+
await ctx.store.insert('users', { id: userId, email, createdBy: userId })
|
|
721
724
|
```
|
|
722
725
|
|
|
723
726
|
## Branded TypeScript types
|
|
@@ -811,8 +811,42 @@ await ctx.store.delete('notes', noteId)
|
|
|
811
811
|
const rows = await ctx.store.query(database.notes.descriptor)
|
|
812
812
|
```
|
|
813
813
|
|
|
814
|
+
`ctx.store.query` returns the row type the builder already knew — `database.notes`
|
|
815
|
+
resolves to that table's row, so `rows[0].title` is a `string` with no cast. A
|
|
816
|
+
hand-built descriptor still resolves to the untyped `Row`.
|
|
817
|
+
|
|
814
818
|
Mutations receive a transactional store view. Actions and streams receive a normal store view; writes from them are not automatically rolled back as one unit.
|
|
815
819
|
|
|
820
|
+
## `ctx.load` / `ctx.loadMany` — request-scoped batching
|
|
821
|
+
|
|
822
|
+
`relations()` + `.with()` is the right answer whenever the shape of the related
|
|
823
|
+
data is known statically: it compiles to ONE query. Reach for it first.
|
|
824
|
+
|
|
825
|
+
This is for the case it cannot express — assembly whose shape depends on the
|
|
826
|
+
DATA. A breadth-first walk over a tree is the canonical example: each level's
|
|
827
|
+
ids come from the level above, so no declarative relation spec covers it, and
|
|
828
|
+
the natural code is one query per node.
|
|
829
|
+
|
|
830
|
+
```ts
|
|
831
|
+
let level = [await ctx.load('nodes', rootId)]
|
|
832
|
+
while (level.length > 0) {
|
|
833
|
+
const childIds = level.flatMap((n) => n?.childIds ?? [])
|
|
834
|
+
if (childIds.length === 0) break
|
|
835
|
+
level = [...await ctx.loadMany('nodes', childIds)]
|
|
836
|
+
}
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
Every `load` issued in the same tick for the same table is coalesced into one
|
|
840
|
+
`WHERE id IN (...)`, so that walk costs one query per LEVEL, not per node.
|
|
841
|
+
Repeated ids — a diamond where two parents share a child — are fetched once.
|
|
842
|
+
A missing row is `null` rather than a throw, because a dangling edge in a graph
|
|
843
|
+
walk is usually data; use `.one()` when absence is an error.
|
|
844
|
+
|
|
845
|
+
The cache lives exactly as long as the request. That is a correctness
|
|
846
|
+
requirement, not a tuning choice: a longer-lived cache would serve one
|
|
847
|
+
subject's rows to another (a data-isolation bug on a tenant-scoped store) and
|
|
848
|
+
would go stale across a mutation in the same request.
|
|
849
|
+
|
|
816
850
|
## `ctx.cache`
|
|
817
851
|
|
|
818
852
|
Async cache facade for request handlers:
|
|
@@ -78,17 +78,18 @@ import { step } from '@voltro/workflow'
|
|
|
78
78
|
import { Effect, Schema } from 'effect'
|
|
79
79
|
import type { AppContext } from '@voltro/runtime'
|
|
80
80
|
|
|
81
|
+
const NoteRow = Schema.Struct({ id: Schema.String, body: Schema.String })
|
|
82
|
+
|
|
81
83
|
const buildExecute = (ctx: AppContext) =>
|
|
82
84
|
({ noteId }: { noteId: string }) =>
|
|
83
85
|
Effect.gen(function* () {
|
|
84
86
|
const note = yield* step({
|
|
85
87
|
name: 'load-note',
|
|
86
88
|
input: { noteId },
|
|
87
|
-
success:
|
|
88
|
-
execute: Effect.tryPromise(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
} as never).then((rows) => rows[0] as never)),
|
|
89
|
+
success: NoteRow,
|
|
90
|
+
execute: Effect.tryPromise(
|
|
91
|
+
() => ctx.store.select('notes').where('id', noteId).one(),
|
|
92
|
+
).pipe(Effect.flatMap(Schema.decodeUnknown(NoteRow)), Effect.orDie),
|
|
92
93
|
})
|
|
93
94
|
|
|
94
95
|
const summary = yield* step({
|
|
@@ -102,9 +103,9 @@ const buildExecute = (ctx: AppContext) =>
|
|
|
102
103
|
name: 'save-summary',
|
|
103
104
|
input: { noteId },
|
|
104
105
|
success: Schema.Void,
|
|
105
|
-
execute: Effect.tryPromise(
|
|
106
|
-
ctx.store.update('notes', noteId, { summary }
|
|
107
|
-
),
|
|
106
|
+
execute: Effect.tryPromise(
|
|
107
|
+
() => ctx.store.update('notes', noteId, { summary }),
|
|
108
|
+
).pipe(Effect.asVoid, Effect.orDie),
|
|
108
109
|
})
|
|
109
110
|
|
|
110
111
|
return { summary }
|
|
@@ -115,6 +116,8 @@ export default buildExecute
|
|
|
115
116
|
|
|
116
117
|
`step({...})` is the checkpoint boundary. A plain `yield* someEffect` composes Effect logic, but it is not automatically recorded as a workflow step. Put external I/O, database writes, and expensive work inside `step`.
|
|
117
118
|
|
|
119
|
+
Note what the store calls do NOT do: no `as never`. Reach for the fluent builder (`ctx.store.select(...)`) rather than hand-building a query descriptor, and decode the untyped `Row` into the step's `success` schema with `Schema.decodeUnknown` instead of asserting it. `.one()` fails with the typed `NoRowFound` when the note is missing (or when more than one matches), so there is no `rows[0]` to null-check.
|
|
120
|
+
|
|
118
121
|
## Starting a workflow
|
|
119
122
|
|
|
120
123
|
Every discovered `*.workflow.tsx` is emitted into `rpcGroup.generated.ts` as a unary RPC. The payload and error schemas come from the workflow, but the RPC success type is always a `WorkflowRunHandle`. Calling it starts durable work and returns that handle immediately:
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/ai": "0.
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
14
|
+
"@voltro/ai": "0.5.0",
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/protocol": "0.5.0",
|
|
19
|
+
"@voltro/runtime": "0.5.0",
|
|
20
20
|
"effect": "^3.21.2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@voltro/testing": "0.
|
|
23
|
+
"@voltro/testing": "0.5.0",
|
|
24
24
|
"typescript": "^5.7.0",
|
|
25
25
|
"vitest": "^3.0.0"
|
|
26
26
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-auth": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
21
|
-
"@voltro/sql-postgres": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-auth": "0.5.0",
|
|
19
|
+
"@voltro/protocol": "0.5.0",
|
|
20
|
+
"@voltro/runtime": "0.5.0",
|
|
21
|
+
"@voltro/sql-postgres": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/protocol": "0.5.0",
|
|
20
|
+
"@voltro/runtime": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-deactivation": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-deactivation": "0.5.0",
|
|
19
|
+
"@voltro/protocol": "0.5.0",
|
|
20
|
+
"@voltro/runtime": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@react-email/components": "^1.0.12",
|
|
14
14
|
"@react-email/render": "^1.4.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-mail": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-mail": "0.5.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2",
|
|
23
23
|
"react": "^19.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.5.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
28
|
"vitest": "^3.0.0"
|
|
29
29
|
}
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-storage": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
22
|
-
"@voltro/sql-mysql": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/plugin-storage": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
|
+
"@voltro/sql-mysql": "0.5.0",
|
|
23
23
|
"effect": "^3.21.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.5.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
28
|
"vitest": "^3.0.0"
|
|
29
29
|
}
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"test": "voltro test"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@voltro/cli": "0.
|
|
14
|
-
"@voltro/database": "0.
|
|
15
|
-
"@voltro/env": "0.
|
|
16
|
-
"@voltro/plugin-multitenancy": "0.
|
|
17
|
-
"@voltro/plugin-storage": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
13
|
+
"@voltro/cli": "0.5.0",
|
|
14
|
+
"@voltro/database": "0.5.0",
|
|
15
|
+
"@voltro/env": "0.5.0",
|
|
16
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
17
|
+
"@voltro/plugin-storage": "0.5.0",
|
|
18
|
+
"@voltro/protocol": "0.5.0",
|
|
19
|
+
"@voltro/runtime": "0.5.0",
|
|
20
20
|
"effect": "^3.21.2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@voltro/testing": "0.
|
|
23
|
+
"@voltro/testing": "0.5.0",
|
|
24
24
|
"typescript": "^5.7.0",
|
|
25
25
|
"vitest": "^3.0.0"
|
|
26
26
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/plugin-governance": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
14
|
+
"@voltro/cli": "0.5.0",
|
|
15
|
+
"@voltro/database": "0.5.0",
|
|
16
|
+
"@voltro/env": "0.5.0",
|
|
17
|
+
"@voltro/plugin-governance": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/protocol": "0.5.0",
|
|
20
|
+
"@voltro/runtime": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/plugin-multitenancy": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
20
|
-
"@voltro/workflow": "0.
|
|
14
|
+
"@voltro/cli": "0.5.0",
|
|
15
|
+
"@voltro/database": "0.5.0",
|
|
16
|
+
"@voltro/env": "0.5.0",
|
|
17
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
18
|
+
"@voltro/protocol": "0.5.0",
|
|
19
|
+
"@voltro/runtime": "0.5.0",
|
|
20
|
+
"@voltro/workflow": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-flags": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
22
|
-
"@voltro/sql-postgres": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-flags": "0.5.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
|
+
"@voltro/sql-postgres": "0.5.0",
|
|
23
23
|
"effect": "^3.21.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.5.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
28
|
"vitest": "^3.0.0"
|
|
29
29
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-audit": "0.
|
|
19
|
-
"@voltro/plugin-governance": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-audit": "0.5.0",
|
|
19
|
+
"@voltro/plugin-governance": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/kv": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
14
|
+
"@voltro/cli": "0.5.0",
|
|
15
|
+
"@voltro/database": "0.5.0",
|
|
16
|
+
"@voltro/env": "0.5.0",
|
|
17
|
+
"@voltro/kv": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/protocol": "0.5.0",
|
|
20
|
+
"@voltro/runtime": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-moderation": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-moderation": "0.5.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-multitenancy": "0.
|
|
18
|
-
"@voltro/plugin-prometheus": "0.
|
|
19
|
-
"@voltro/plugin-sentry": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
18
|
+
"@voltro/plugin-prometheus": "0.5.0",
|
|
19
|
+
"@voltro/plugin-sentry": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-ratelimit": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/plugin-ratelimit": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-rbac": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/env": "0.5.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
19
|
+
"@voltro/plugin-rbac": "0.5.0",
|
|
20
|
+
"@voltro/protocol": "0.5.0",
|
|
21
|
+
"@voltro/runtime": "0.5.0",
|
|
22
22
|
"effect": "^3.21.2"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.5.0",
|
|
26
26
|
"typescript": "^5.7.0",
|
|
27
27
|
"vitest": "^3.0.0"
|
|
28
28
|
}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-openapi": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
20
|
-
"@voltro/sql-postgres": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/plugin-openapi": "0.5.0",
|
|
18
|
+
"@voltro/protocol": "0.5.0",
|
|
19
|
+
"@voltro/runtime": "0.5.0",
|
|
20
|
+
"@voltro/sql-postgres": "0.5.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.5.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/plugin-analytics-postgres": "0.
|
|
18
|
-
"@voltro/plugin-billing": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/plugin-notifications": "0.
|
|
21
|
-
"@voltro/plugin-presence": "0.
|
|
22
|
-
"@voltro/protocol": "0.
|
|
23
|
-
"@voltro/runtime": "0.
|
|
24
|
-
"@voltro/sql-postgres": "0.
|
|
15
|
+
"@voltro/cli": "0.5.0",
|
|
16
|
+
"@voltro/database": "0.5.0",
|
|
17
|
+
"@voltro/plugin-analytics-postgres": "0.5.0",
|
|
18
|
+
"@voltro/plugin-billing": "0.5.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.5.0",
|
|
20
|
+
"@voltro/plugin-notifications": "0.5.0",
|
|
21
|
+
"@voltro/plugin-presence": "0.5.0",
|
|
22
|
+
"@voltro/protocol": "0.5.0",
|
|
23
|
+
"@voltro/runtime": "0.5.0",
|
|
24
|
+
"@voltro/sql-postgres": "0.5.0",
|
|
25
25
|
"effect": "^3.21.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@voltro/testing": "0.
|
|
28
|
+
"@voltro/testing": "0.5.0",
|
|
29
29
|
"typescript": "^5.7.0",
|
|
30
30
|
"vitest": "^3.0.0"
|
|
31
31
|
}
|