covara 0.7.0 โ 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -46
- package/dist/cli/templates/package-json.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
<h1 align="center">Covara</h1>
|
|
6
6
|
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>๐ <a href="https://kahveciderin.github.io/covara">Documentation</a></strong>
|
|
9
|
+
ยท
|
|
10
|
+
<a href="https://kahveciderin.github.io/covara/quick-start">Quick Start</a>
|
|
11
|
+
ยท
|
|
12
|
+
<a href="https://kahveciderin.github.io/covara/tutorial">Tutorial</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
7
15
|
**Your Drizzle schema is already a backend.** Covara turns it into a complete, production-ready API โ REST endpoints, real-time subscriptions, auth, file uploads, billing, email, and background jobs โ with a type-safe, offline-first TypeScript client on the other end. Built on [Hono](https://hono.dev), it runs standalone on Node or at the edge on Cloudflare Workers.
|
|
8
16
|
|
|
9
17
|
## The Goal
|
|
@@ -214,7 +222,7 @@ database_name = "my-app"
|
|
|
214
222
|
|
|
215
223
|
Workers bill CPU time, not wall-clock time โ long-lived idle SSE subscriptions cost almost nothing, since heartbeats and event pushes use negligible CPU.
|
|
216
224
|
|
|
217
|
-
For production Workers deployments, bind the bundled `CovaraKVDurableObject` as Covara's KV store so subscriptions, rate limits, and sessions are shared across isolates โ see [
|
|
225
|
+
For production Workers deployments, bind the bundled `CovaraKVDurableObject` as Covara's KV store so subscriptions, rate limits, and sessions are shared across isolates โ see the [Durable Object KV guide](https://kahveciderin.github.io/covara/deployment/durable-object-kv). Projects scaffolded with `covara create --template cloudflare` have it wired up already.
|
|
218
226
|
|
|
219
227
|
### Using a plain Hono app
|
|
220
228
|
|
|
@@ -318,7 +326,7 @@ app.resource("/posts", postsTable, {
|
|
|
318
326
|
});
|
|
319
327
|
```
|
|
320
328
|
|
|
321
|
-
See [
|
|
329
|
+
See the [Resources reference](https://kahveciderin.github.io/covara/core/resources-and-app) for the full option reference (soft delete, computed fields, field allowlists, search, custom filter operators, and more).
|
|
322
330
|
|
|
323
331
|
## Client Library
|
|
324
332
|
|
|
@@ -475,7 +483,7 @@ function Uploader() {
|
|
|
475
483
|
}
|
|
476
484
|
```
|
|
477
485
|
|
|
478
|
-
See [
|
|
486
|
+
See [Storage](https://kahveciderin.github.io/covara/platform/storage).
|
|
479
487
|
|
|
480
488
|
## Server-side Authentication
|
|
481
489
|
|
|
@@ -494,7 +502,7 @@ app.route("/api/auth", router); // /me, /login, /signup, /logout
|
|
|
494
502
|
app.use("*", middleware); // populates c.get("user")
|
|
495
503
|
```
|
|
496
504
|
|
|
497
|
-
Opt-in extras: TOTP MFA with backup codes, magic links, email verification, password reset, login throttling, CSRF protection, and API key management. See [
|
|
505
|
+
Opt-in extras: TOTP MFA with backup codes, magic links, email verification, password reset, login throttling, CSRF protection, and API key management. See [Authentication](https://kahveciderin.github.io/covara/auth/overview).
|
|
498
506
|
|
|
499
507
|
### OIDC Provider
|
|
500
508
|
|
|
@@ -572,7 +580,7 @@ await getTaskScheduler().scheduleRecurring(dailyReportTask, {}, {
|
|
|
572
580
|
});
|
|
573
581
|
```
|
|
574
582
|
|
|
575
|
-
On Workers, swap the poller for the Cloudflare Queues adapter. See [
|
|
583
|
+
On Workers, swap the poller for the Cloudflare Queues adapter. See [Background tasks](https://kahveciderin.github.io/covara/platform/tasks).
|
|
576
584
|
|
|
577
585
|
## Email
|
|
578
586
|
|
|
@@ -592,7 +600,7 @@ const { html, text } = createEmail({ brandColor: "#4f46e5" })
|
|
|
592
600
|
await sendEmail({ from: "noreply@acme.com", to: email, subject: "Verify your email", html, text });
|
|
593
601
|
```
|
|
594
602
|
|
|
595
|
-
The builder renders responsive, escaped HTML plus a plaintext fallback. A Cloudflare Email Service adapter is included for Workers. See [
|
|
603
|
+
The builder renders responsive, escaped HTML plus a plaintext fallback. A Cloudflare Email Service adapter is included for Workers. See [Email](https://kahveciderin.github.io/covara/platform/email).
|
|
596
604
|
|
|
597
605
|
## Billing
|
|
598
606
|
|
|
@@ -634,7 +642,7 @@ function Account() {
|
|
|
634
642
|
}
|
|
635
643
|
```
|
|
636
644
|
|
|
637
|
-
Webhooks are signature-verified, deduplicated, and grant credits automatically on `payment.succeeded`. See [
|
|
645
|
+
Webhooks are signature-verified, deduplicated, and grant credits automatically on `payment.succeeded`. See [Billing](https://kahveciderin.github.io/covara/platform/billing).
|
|
638
646
|
|
|
639
647
|
## Mutation Tracking
|
|
640
648
|
|
|
@@ -697,7 +705,7 @@ const env = createEnv({
|
|
|
697
705
|
app.route("/api/env", usePublicEnv(env)); // serves public vars (with ETag)
|
|
698
706
|
```
|
|
699
707
|
|
|
700
|
-
Clients read public vars with `fetchPublicEnv`/`createEnvClient` or the `usePublicEnv` React hook. See [
|
|
708
|
+
Clients read public vars with `fetchPublicEnv`/`createEnvClient` or the `usePublicEnv` React hook. See [Environment variables](https://kahveciderin.github.io/covara/deployment/environment-variables).
|
|
701
709
|
|
|
702
710
|
## Query Parameters
|
|
703
711
|
|
|
@@ -739,7 +747,7 @@ age=between=[18,65] # Range (inclusive)
|
|
|
739
747
|
deletedAt=isnull=true # Is null
|
|
740
748
|
bio=isempty=false # Has non-empty value
|
|
741
749
|
|
|
742
|
-
# See
|
|
750
|
+
# See https://kahveciderin.github.io/covara/core/filtering for all 30+ operators
|
|
743
751
|
```
|
|
744
752
|
|
|
745
753
|
The same expression filters database queries, subscription scopes, and auth scopes โ parsed once, executed as SQL or in-memory as needed.
|
|
@@ -794,47 +802,27 @@ expect(res.status).toBe(201);
|
|
|
794
802
|
|
|
795
803
|
## Documentation
|
|
796
804
|
|
|
797
|
-
|
|
805
|
+
๐ **Full documentation: [kahveciderin.github.io/covara](https://kahveciderin.github.io/covara)**
|
|
798
806
|
|
|
799
|
-
|
|
800
|
-
- [Getting Started Guide](./wiki/getting-started.md) - Installation and quick start
|
|
801
|
-
- [Deployment](./wiki/deployment.md) - Node, Cloudflare Workers, database matrix
|
|
802
|
-
- [Migrating from Express](./wiki/migrating-from-express.md) - Upgrading from Covara โค 0.5
|
|
807
|
+
The docs site is built with Docusaurus from the [`website/`](./website) folder and published to GitHub Pages automatically (`.github/workflows/docs.yml`). Highlights:
|
|
803
808
|
|
|
804
|
-
|
|
805
|
-
- [Resources](
|
|
806
|
-
- [
|
|
807
|
-
- [
|
|
808
|
-
- [
|
|
809
|
-
- [
|
|
810
|
-
- [
|
|
811
|
-
- [
|
|
809
|
+
- **Get started** โ [Introduction](https://kahveciderin.github.io/covara/), [Quick Start](https://kahveciderin.github.io/covara/quick-start), [Tutorial](https://kahveciderin.github.io/covara/tutorial)
|
|
810
|
+
- **Core** โ [Resources](https://kahveciderin.github.io/covara/core/resources-and-app), [Filtering](https://kahveciderin.github.io/covara/core/filtering), [Pagination](https://kahveciderin.github.io/covara/core/pagination), [Aggregations](https://kahveciderin.github.io/covara/core/aggregations), [Relations](https://kahveciderin.github.io/covara/core/relations), [Search](https://kahveciderin.github.io/covara/core/search)
|
|
811
|
+
- **Real-time** โ [Subscriptions](https://kahveciderin.github.io/covara/realtime/subscriptions), [Aggregate subscriptions](https://kahveciderin.github.io/covara/realtime/aggregate-subscriptions), [Mutation tracking](https://kahveciderin.github.io/covara/realtime/mutation-tracking)
|
|
812
|
+
- **Auth & security** โ [Overview](https://kahveciderin.github.io/covara/auth/overview), [OIDC provider](https://kahveciderin.github.io/covara/auth/oidc-provider), [JWT](https://kahveciderin.github.io/covara/auth/jwt), [Scopes](https://kahveciderin.github.io/covara/auth/scopes)
|
|
813
|
+
- **Platform** โ [Storage](https://kahveciderin.github.io/covara/platform/storage), [Email](https://kahveciderin.github.io/covara/platform/email), [Billing](https://kahveciderin.github.io/covara/platform/billing), [Tasks](https://kahveciderin.github.io/covara/platform/tasks), [KV](https://kahveciderin.github.io/covara/platform/kv)
|
|
814
|
+
- **Client** โ [Overview](https://kahveciderin.github.io/covara/client/overview), [React hooks](https://kahveciderin.github.io/covara/client/react-hooks), [Offline](https://kahveciderin.github.io/covara/client/offline), [Type generation](https://kahveciderin.github.io/covara/client/typegen)
|
|
815
|
+
- **Deploy** โ [Node](https://kahveciderin.github.io/covara/deployment/node), [Cloudflare Workers](https://kahveciderin.github.io/covara/deployment/workers), [Databases](https://kahveciderin.github.io/covara/deployment/databases)
|
|
816
|
+
- **Reference** โ [Contracts (invariants)](https://kahveciderin.github.io/covara/contracts/overview), [Error handling](https://kahveciderin.github.io/covara/tooling/error-handling), [Migrating from Express](https://kahveciderin.github.io/covara/migration/from-express)
|
|
812
817
|
|
|
813
|
-
|
|
814
|
-
- [Subscriptions](./wiki/subscriptions.md) - SSE subscriptions and changelog
|
|
818
|
+
Run the docs locally:
|
|
815
819
|
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
- [Email](./wiki/email.md) - Email adapters and template builder
|
|
823
|
-
- [Billing](./wiki/billing.md) - Payment providers, plans, credits, webhooks
|
|
824
|
-
- [Tasks](./wiki/tasks.md) - Background job queue, scheduling, retries
|
|
825
|
-
- [Environment Variables](./wiki/environment-variables.md) - Typed env config
|
|
826
|
-
|
|
827
|
-
### Client
|
|
828
|
-
- [Client Library](./wiki/client-library.md) - TypeScript client with React hooks
|
|
829
|
-
- [Offline Support](./wiki/offline-support.md) - Offline-first capabilities
|
|
830
|
-
|
|
831
|
-
### Advanced
|
|
832
|
-
- [Procedures & Hooks](./wiki/procedures.md) - RPC and lifecycle hooks
|
|
833
|
-
- [Mutation Tracking](./wiki/track-mutations.md) - Automatic changelog and cache invalidation
|
|
834
|
-
- [Middleware](./wiki/middleware.md) - Observability, versioning, idempotency
|
|
835
|
-
- [OpenAPI](./wiki/openapi.md) - OpenAPI spec generation
|
|
836
|
-
- [Admin UI](./wiki/admin-ui.md) - Built-in dashboard
|
|
837
|
-
- [Error Handling](./wiki/error-handling.md) - Error types and handling
|
|
820
|
+
```bash
|
|
821
|
+
cd website
|
|
822
|
+
pnpm install
|
|
823
|
+
pnpm start # dev server with hot reload
|
|
824
|
+
pnpm build # production build (validates all internal links)
|
|
825
|
+
```
|
|
838
826
|
|
|
839
827
|
## Requirements
|
|
840
828
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "covara",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Real-time resource API framework built on Hono โ runs standalone (Node) and on Cloudflare Workers, with a TypeScript client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"type": "git",
|
|
160
160
|
"url": "git+https://github.com/kahveciderin/covara.git"
|
|
161
161
|
},
|
|
162
|
-
"homepage": "https://github.
|
|
162
|
+
"homepage": "https://kahveciderin.github.io/covara",
|
|
163
163
|
"bugs": {
|
|
164
164
|
"url": "https://github.com/kahveciderin/covara/issues"
|
|
165
165
|
},
|