@donkeylabs/cli 2.0.14 → 2.0.16
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/package.json +1 -1
- package/src/commands/config.ts +610 -0
- package/src/commands/deploy-enhanced.ts +354 -0
- package/src/commands/deploy.ts +204 -0
- package/src/commands/generate.ts +11 -13
- package/src/commands/init-enhanced.ts +1994 -0
- package/src/deployment/manager.ts +356 -0
- package/src/index.ts +47 -19
- package/templates/starter/.env.example +0 -44
- package/templates/starter/.gitignore.template +0 -4
- package/templates/starter/donkeylabs.config.ts +0 -6
- package/templates/starter/package.json +0 -21
- package/templates/starter/src/index.ts +0 -54
- package/templates/starter/src/plugins/stats/index.ts +0 -105
- package/templates/starter/src/routes/health/handlers/ping.ts +0 -22
- package/templates/starter/src/routes/health/index.ts +0 -19
- package/templates/starter/tsconfig.json +0 -27
- package/templates/sveltekit-app/.env.example +0 -59
- package/templates/sveltekit-app/README.md +0 -103
- package/templates/sveltekit-app/bun.lock +0 -683
- package/templates/sveltekit-app/donkeylabs.config.ts +0 -12
- package/templates/sveltekit-app/package.json +0 -38
- package/templates/sveltekit-app/src/app.css +0 -40
- package/templates/sveltekit-app/src/app.html +0 -12
- package/templates/sveltekit-app/src/hooks.server.ts +0 -4
- package/templates/sveltekit-app/src/lib/components/ui/badge/badge.svelte +0 -30
- package/templates/sveltekit-app/src/lib/components/ui/badge/index.ts +0 -3
- package/templates/sveltekit-app/src/lib/components/ui/button/button.svelte +0 -48
- package/templates/sveltekit-app/src/lib/components/ui/button/index.ts +0 -9
- package/templates/sveltekit-app/src/lib/components/ui/card/card-content.svelte +0 -18
- package/templates/sveltekit-app/src/lib/components/ui/card/card-description.svelte +0 -18
- package/templates/sveltekit-app/src/lib/components/ui/card/card-footer.svelte +0 -18
- package/templates/sveltekit-app/src/lib/components/ui/card/card-header.svelte +0 -18
- package/templates/sveltekit-app/src/lib/components/ui/card/card-title.svelte +0 -18
- package/templates/sveltekit-app/src/lib/components/ui/card/card.svelte +0 -21
- package/templates/sveltekit-app/src/lib/components/ui/card/index.ts +0 -21
- package/templates/sveltekit-app/src/lib/components/ui/index.ts +0 -4
- package/templates/sveltekit-app/src/lib/components/ui/input/index.ts +0 -2
- package/templates/sveltekit-app/src/lib/components/ui/input/input.svelte +0 -20
- package/templates/sveltekit-app/src/lib/permissions.ts +0 -213
- package/templates/sveltekit-app/src/lib/utils/index.ts +0 -6
- package/templates/sveltekit-app/src/routes/+layout.svelte +0 -8
- package/templates/sveltekit-app/src/routes/+page.server.ts +0 -25
- package/templates/sveltekit-app/src/routes/+page.svelte +0 -680
- package/templates/sveltekit-app/src/routes/workflows/+page.server.ts +0 -23
- package/templates/sveltekit-app/src/routes/workflows/+page.svelte +0 -522
- package/templates/sveltekit-app/src/server/events.ts +0 -28
- package/templates/sveltekit-app/src/server/index.ts +0 -124
- package/templates/sveltekit-app/src/server/plugins/auth/auth.test.ts +0 -377
- package/templates/sveltekit-app/src/server/plugins/auth/index.ts +0 -815
- package/templates/sveltekit-app/src/server/plugins/auth/migrations/001_create_users.ts +0 -25
- package/templates/sveltekit-app/src/server/plugins/auth/migrations/002_create_sessions.ts +0 -32
- package/templates/sveltekit-app/src/server/plugins/auth/migrations/003_create_refresh_tokens.ts +0 -33
- package/templates/sveltekit-app/src/server/plugins/auth/migrations/004_create_passkeys.ts +0 -60
- package/templates/sveltekit-app/src/server/plugins/auth/schema.ts +0 -65
- package/templates/sveltekit-app/src/server/plugins/demo/index.ts +0 -262
- package/templates/sveltekit-app/src/server/plugins/email/email.test.ts +0 -369
- package/templates/sveltekit-app/src/server/plugins/email/index.ts +0 -411
- package/templates/sveltekit-app/src/server/plugins/email/migrations/001_create_email_tokens.ts +0 -33
- package/templates/sveltekit-app/src/server/plugins/email/schema.ts +0 -24
- package/templates/sveltekit-app/src/server/plugins/permissions/index.ts +0 -1048
- package/templates/sveltekit-app/src/server/plugins/permissions/migrations/001_create_tenants.ts +0 -63
- package/templates/sveltekit-app/src/server/plugins/permissions/migrations/002_create_roles.ts +0 -90
- package/templates/sveltekit-app/src/server/plugins/permissions/migrations/003_create_resource_grants.ts +0 -50
- package/templates/sveltekit-app/src/server/plugins/permissions/permissions.test.ts +0 -566
- package/templates/sveltekit-app/src/server/plugins/permissions/schema.ts +0 -67
- package/templates/sveltekit-app/src/server/plugins/workflow-demo/index.ts +0 -198
- package/templates/sveltekit-app/src/server/routes/auth/auth.schemas.ts +0 -66
- package/templates/sveltekit-app/src/server/routes/auth/handlers/login.handler.ts +0 -18
- package/templates/sveltekit-app/src/server/routes/auth/handlers/logout.handler.ts +0 -16
- package/templates/sveltekit-app/src/server/routes/auth/handlers/me.handler.ts +0 -20
- package/templates/sveltekit-app/src/server/routes/auth/handlers/refresh.handler.ts +0 -17
- package/templates/sveltekit-app/src/server/routes/auth/handlers/register.handler.ts +0 -19
- package/templates/sveltekit-app/src/server/routes/auth/handlers/update-profile.handler.ts +0 -21
- package/templates/sveltekit-app/src/server/routes/auth/index.ts +0 -73
- package/templates/sveltekit-app/src/server/routes/demo.ts +0 -464
- package/templates/sveltekit-app/src/server/routes/example/example.schemas.ts +0 -22
- package/templates/sveltekit-app/src/server/routes/example/handlers/greet.handler.ts +0 -21
- package/templates/sveltekit-app/src/server/routes/example/index.ts +0 -28
- package/templates/sveltekit-app/src/server/routes/permissions/index.ts +0 -248
- package/templates/sveltekit-app/src/server/routes/tenants/index.ts +0 -339
- package/templates/sveltekit-app/static/robots.txt +0 -3
- package/templates/sveltekit-app/svelte.config.ts +0 -17
- package/templates/sveltekit-app/tsconfig.json +0 -20
- package/templates/sveltekit-app/vite.config.ts +0 -12
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
// Types from generated api.ts (run server once to generate)
|
|
3
|
-
import type { Handler, Routes, AppContext } from "$server/api";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Ping Handler
|
|
7
|
-
*/
|
|
8
|
-
export class PingHandler implements Handler<Routes.Api.Health.Ping> {
|
|
9
|
-
ctx: AppContext;
|
|
10
|
-
|
|
11
|
-
constructor(ctx: AppContext) {
|
|
12
|
-
this.ctx = ctx;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
handle(input: Routes.Api.Health.Ping.Input): Routes.Api.Health.Ping.Output {
|
|
16
|
-
return {
|
|
17
|
-
status: "ok",
|
|
18
|
-
timestamp: new Date().toISOString(),
|
|
19
|
-
echo: input.echo,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { createRouter } from "@donkeylabs/server";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { PingHandler } from "./handlers/ping";
|
|
5
|
-
|
|
6
|
-
export const healthRouter = createRouter("health")
|
|
7
|
-
.route("ping").typed({
|
|
8
|
-
input: z.object({
|
|
9
|
-
name: z.string(),
|
|
10
|
-
cool: z.number(),
|
|
11
|
-
echo: z.string().optional(),
|
|
12
|
-
}),
|
|
13
|
-
output: z.object({
|
|
14
|
-
status: z.literal("ok"),
|
|
15
|
-
timestamp: z.string(),
|
|
16
|
-
echo: z.string().optional(),
|
|
17
|
-
}),
|
|
18
|
-
handle: PingHandler,
|
|
19
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": [
|
|
4
|
-
"ESNext"
|
|
5
|
-
],
|
|
6
|
-
"target": "ESNext",
|
|
7
|
-
"module": "Preserve",
|
|
8
|
-
"moduleResolution": "bundler",
|
|
9
|
-
"allowImportingTsExtensions": true,
|
|
10
|
-
"noEmit": true,
|
|
11
|
-
"strict": true,
|
|
12
|
-
"skipLibCheck": true,
|
|
13
|
-
"preserveSymlinks": true,
|
|
14
|
-
"baseUrl": ".",
|
|
15
|
-
"paths": {
|
|
16
|
-
"$server/*": [".@donkeylabs/server/*"],
|
|
17
|
-
"$api": [".@donkeylabs/server/client"]
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"include": [
|
|
21
|
-
"src",
|
|
22
|
-
".@donkeylabs/server"
|
|
23
|
-
],
|
|
24
|
-
"exclude": [
|
|
25
|
-
"node_modules"
|
|
26
|
-
]
|
|
27
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# =============================================================================
|
|
2
|
-
# DATABASE
|
|
3
|
-
# =============================================================================
|
|
4
|
-
|
|
5
|
-
# SQLite database path (relative to project root)
|
|
6
|
-
# Use ":memory:" for in-memory database during development
|
|
7
|
-
DATABASE_URL=":memory:"
|
|
8
|
-
|
|
9
|
-
# For production, use a file path:
|
|
10
|
-
# DATABASE_URL="./data/app.db"
|
|
11
|
-
|
|
12
|
-
# =============================================================================
|
|
13
|
-
# SERVER
|
|
14
|
-
# =============================================================================
|
|
15
|
-
|
|
16
|
-
# Port for the API server (optional, defaults to 3000)
|
|
17
|
-
# PORT=3000
|
|
18
|
-
|
|
19
|
-
# Node environment
|
|
20
|
-
NODE_ENV=development
|
|
21
|
-
|
|
22
|
-
# =============================================================================
|
|
23
|
-
# AUTHENTICATION (if using auth plugin)
|
|
24
|
-
# =============================================================================
|
|
25
|
-
|
|
26
|
-
# JWT secret for signing tokens (generate with: openssl rand -base64 32)
|
|
27
|
-
# JWT_SECRET=your-secret-key-here
|
|
28
|
-
|
|
29
|
-
# Session duration in seconds (default: 7 days)
|
|
30
|
-
# SESSION_DURATION=604800
|
|
31
|
-
|
|
32
|
-
# =============================================================================
|
|
33
|
-
# EXTERNAL SERVICES (examples)
|
|
34
|
-
# =============================================================================
|
|
35
|
-
|
|
36
|
-
# Email service (Resend)
|
|
37
|
-
# RESEND_API_KEY=re_xxxxxxxxxxxx
|
|
38
|
-
# EMAIL_FROM=noreply@yourdomain.com
|
|
39
|
-
# PUBLIC_BASE_URL=https://yourdomain.com
|
|
40
|
-
|
|
41
|
-
# Payment processing (e.g., Stripe)
|
|
42
|
-
# STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxx
|
|
43
|
-
# STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxx
|
|
44
|
-
|
|
45
|
-
# File storage (e.g., S3, Cloudflare R2)
|
|
46
|
-
# S3_BUCKET=my-bucket
|
|
47
|
-
# S3_REGION=us-east-1
|
|
48
|
-
# S3_ACCESS_KEY=xxxxxxxxxxxx
|
|
49
|
-
# S3_SECRET_KEY=xxxxxxxxxxxx
|
|
50
|
-
|
|
51
|
-
# =============================================================================
|
|
52
|
-
# FEATURE FLAGS
|
|
53
|
-
# =============================================================================
|
|
54
|
-
|
|
55
|
-
# Enable debug logging
|
|
56
|
-
# DEBUG=true
|
|
57
|
-
|
|
58
|
-
# Enable SSE real-time updates
|
|
59
|
-
# ENABLE_SSE=true
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
# SvelteKit App Example
|
|
2
|
-
|
|
3
|
-
A complete example of using `@donkeylabs/adapter-sveltekit` to integrate @donkeylabs/server with SvelteKit.
|
|
4
|
-
|
|
5
|
-
## Features Demonstrated
|
|
6
|
-
|
|
7
|
-
- **SSR Direct Calls** - API calls in `+page.server.ts` use direct function calls (no HTTP)
|
|
8
|
-
- **Browser HTTP Calls** - API calls in `+page.svelte` use fetch
|
|
9
|
-
- **Unified API Client** - Same interface for both SSR and browser
|
|
10
|
-
- **SSE (Server-Sent Events)** - Real-time updates from server to browser
|
|
11
|
-
- **All Core Services** - Cache, Jobs, Cron, Rate Limiter, Events, SSE
|
|
12
|
-
|
|
13
|
-
## Project Structure
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
src/
|
|
17
|
-
├── server/
|
|
18
|
-
│ └── index.ts # @donkeylabs/server setup (plugins, routes)
|
|
19
|
-
├── lib/
|
|
20
|
-
│ ├── api.ts # Typed API client
|
|
21
|
-
│ └── components/ui/ # UI components (shadcn-svelte)
|
|
22
|
-
├── routes/
|
|
23
|
-
│ ├── +page.server.ts # SSR data loading (direct calls)
|
|
24
|
-
│ └── +page.svelte # Client-side UI
|
|
25
|
-
└── hooks.server.ts # SvelteKit hooks
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Setup
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Install dependencies
|
|
32
|
-
bun install
|
|
33
|
-
|
|
34
|
-
# Development
|
|
35
|
-
bun run dev
|
|
36
|
-
|
|
37
|
-
# Build
|
|
38
|
-
bun run build
|
|
39
|
-
|
|
40
|
-
# Production
|
|
41
|
-
PORT=3000 bun build/server/entry.js
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Key Files
|
|
45
|
-
|
|
46
|
-
### svelte.config.js
|
|
47
|
-
|
|
48
|
-
```js
|
|
49
|
-
import adapter from '@donkeylabs/adapter-sveltekit';
|
|
50
|
-
|
|
51
|
-
export default {
|
|
52
|
-
kit: {
|
|
53
|
-
adapter: adapter({
|
|
54
|
-
serverEntry: './src/server/index.ts',
|
|
55
|
-
})
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### src/server/index.ts
|
|
61
|
-
|
|
62
|
-
Defines the @donkeylabs/server with plugins and routes.
|
|
63
|
-
|
|
64
|
-
### src/lib/api.ts
|
|
65
|
-
|
|
66
|
-
Typed API client extending `UnifiedApiClientBase`.
|
|
67
|
-
|
|
68
|
-
### src/hooks.server.ts
|
|
69
|
-
|
|
70
|
-
```ts
|
|
71
|
-
import { createHandle } from "@donkeylabs/adapter-sveltekit/hooks";
|
|
72
|
-
export const handle = createHandle();
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### src/routes/+page.server.ts
|
|
76
|
-
|
|
77
|
-
```ts
|
|
78
|
-
import { createApi } from '$lib/api';
|
|
79
|
-
|
|
80
|
-
export const load = async ({ locals }) => {
|
|
81
|
-
const api = createApi({ locals }); // Direct calls
|
|
82
|
-
const data = await api.counter.get();
|
|
83
|
-
return { count: data.count };
|
|
84
|
-
};
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### src/routes/+page.svelte
|
|
88
|
-
|
|
89
|
-
```svelte
|
|
90
|
-
<script>
|
|
91
|
-
import { createApi } from '$lib/api';
|
|
92
|
-
const api = createApi(); // HTTP calls
|
|
93
|
-
|
|
94
|
-
// SSE subscription
|
|
95
|
-
api.sse.subscribe(['events'], (event, data) => {
|
|
96
|
-
// Handle real-time updates
|
|
97
|
-
});
|
|
98
|
-
</script>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Documentation
|
|
102
|
-
|
|
103
|
-
See [docs/sveltekit-adapter.md](../../docs/sveltekit-adapter.md) for complete documentation.
|