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 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
+ &nbsp;ยท&nbsp;
10
+ <a href="https://kahveciderin.github.io/covara/quick-start">Quick Start</a>
11
+ &nbsp;ยท&nbsp;
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 [wiki/deployment.md](./wiki/deployment.md). Projects scaffolded with `covara create --template cloudflare` have it wired up already.
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 [wiki/resources.md](./wiki/resources.md) for the full option reference (soft delete, computed fields, field allowlists, search, custom filter operators, and more).
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 [wiki/storage.md](./wiki/storage.md).
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 [wiki/authentication.md](./wiki/authentication.md).
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 [wiki/tasks.md](./wiki/tasks.md).
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 [wiki/email.md](./wiki/email.md).
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 [wiki/billing.md](./wiki/billing.md).
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 [wiki/environment-variables.md](./wiki/environment-variables.md).
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 wiki/filtering.md for all 30+ operators
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
- Comprehensive documentation is available in the [wiki](./wiki):
805
+ ๐Ÿ“š **Full documentation: [kahveciderin.github.io/covara](https://kahveciderin.github.io/covara)**
798
806
 
799
- ### Getting Started
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
- ### Core Concepts
805
- - [Resources](./wiki/resources.md) - Resource configuration and endpoints
806
- - [Filtering](./wiki/filtering.md) - RSQL filter syntax (30+ operators)
807
- - [Pagination](./wiki/pagination.md) - Cursor-based pagination
808
- - [Aggregations](./wiki/aggregations.md) - Group by and statistical queries
809
- - [Relations](./wiki/relations.md) - Relationships and efficient batch loading
810
- - [Search](./wiki/search.md) - Full-text search adapters and transactional outbox
811
- - [Database](./wiki/database.md) - Internal tables, framework migrations, seeding, pooling
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
- ### Real-time
814
- - [Subscriptions](./wiki/subscriptions.md) - SSE subscriptions and changelog
818
+ Run the docs locally:
815
819
 
816
- ### Authentication & Security
817
- - [Authentication](./wiki/authentication.md) - OIDC Provider, federated login, JWT, session auth
818
- - [Secure Queries](./wiki/secure-queries.md) - Scope-enforced query builder
819
-
820
- ### Platform Services
821
- - [Storage](./wiki/storage.md) - File uploads, S3/R2/local adapters, presigned URLs
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
 
@@ -1,5 +1,5 @@
1
1
  const VERSIONS = {
2
- covara: "^0.5.7",
2
+ covara: "^0.7.0",
3
3
  hono: "^4.12.25",
4
4
  drizzleOrm: "^0.45.1",
5
5
  zod: "^4.3.5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "covara",
3
- "version": "0.7.0",
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.com/kahveciderin/covara#readme",
162
+ "homepage": "https://kahveciderin.github.io/covara",
163
163
  "bugs": {
164
164
  "url": "https://github.com/kahveciderin/covara/issues"
165
165
  },