@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.
Files changed (85) hide show
  1. package/package.json +1 -1
  2. package/src/commands/config.ts +610 -0
  3. package/src/commands/deploy-enhanced.ts +354 -0
  4. package/src/commands/deploy.ts +204 -0
  5. package/src/commands/generate.ts +11 -13
  6. package/src/commands/init-enhanced.ts +1994 -0
  7. package/src/deployment/manager.ts +356 -0
  8. package/src/index.ts +47 -19
  9. package/templates/starter/.env.example +0 -44
  10. package/templates/starter/.gitignore.template +0 -4
  11. package/templates/starter/donkeylabs.config.ts +0 -6
  12. package/templates/starter/package.json +0 -21
  13. package/templates/starter/src/index.ts +0 -54
  14. package/templates/starter/src/plugins/stats/index.ts +0 -105
  15. package/templates/starter/src/routes/health/handlers/ping.ts +0 -22
  16. package/templates/starter/src/routes/health/index.ts +0 -19
  17. package/templates/starter/tsconfig.json +0 -27
  18. package/templates/sveltekit-app/.env.example +0 -59
  19. package/templates/sveltekit-app/README.md +0 -103
  20. package/templates/sveltekit-app/bun.lock +0 -683
  21. package/templates/sveltekit-app/donkeylabs.config.ts +0 -12
  22. package/templates/sveltekit-app/package.json +0 -38
  23. package/templates/sveltekit-app/src/app.css +0 -40
  24. package/templates/sveltekit-app/src/app.html +0 -12
  25. package/templates/sveltekit-app/src/hooks.server.ts +0 -4
  26. package/templates/sveltekit-app/src/lib/components/ui/badge/badge.svelte +0 -30
  27. package/templates/sveltekit-app/src/lib/components/ui/badge/index.ts +0 -3
  28. package/templates/sveltekit-app/src/lib/components/ui/button/button.svelte +0 -48
  29. package/templates/sveltekit-app/src/lib/components/ui/button/index.ts +0 -9
  30. package/templates/sveltekit-app/src/lib/components/ui/card/card-content.svelte +0 -18
  31. package/templates/sveltekit-app/src/lib/components/ui/card/card-description.svelte +0 -18
  32. package/templates/sveltekit-app/src/lib/components/ui/card/card-footer.svelte +0 -18
  33. package/templates/sveltekit-app/src/lib/components/ui/card/card-header.svelte +0 -18
  34. package/templates/sveltekit-app/src/lib/components/ui/card/card-title.svelte +0 -18
  35. package/templates/sveltekit-app/src/lib/components/ui/card/card.svelte +0 -21
  36. package/templates/sveltekit-app/src/lib/components/ui/card/index.ts +0 -21
  37. package/templates/sveltekit-app/src/lib/components/ui/index.ts +0 -4
  38. package/templates/sveltekit-app/src/lib/components/ui/input/index.ts +0 -2
  39. package/templates/sveltekit-app/src/lib/components/ui/input/input.svelte +0 -20
  40. package/templates/sveltekit-app/src/lib/permissions.ts +0 -213
  41. package/templates/sveltekit-app/src/lib/utils/index.ts +0 -6
  42. package/templates/sveltekit-app/src/routes/+layout.svelte +0 -8
  43. package/templates/sveltekit-app/src/routes/+page.server.ts +0 -25
  44. package/templates/sveltekit-app/src/routes/+page.svelte +0 -680
  45. package/templates/sveltekit-app/src/routes/workflows/+page.server.ts +0 -23
  46. package/templates/sveltekit-app/src/routes/workflows/+page.svelte +0 -522
  47. package/templates/sveltekit-app/src/server/events.ts +0 -28
  48. package/templates/sveltekit-app/src/server/index.ts +0 -124
  49. package/templates/sveltekit-app/src/server/plugins/auth/auth.test.ts +0 -377
  50. package/templates/sveltekit-app/src/server/plugins/auth/index.ts +0 -815
  51. package/templates/sveltekit-app/src/server/plugins/auth/migrations/001_create_users.ts +0 -25
  52. package/templates/sveltekit-app/src/server/plugins/auth/migrations/002_create_sessions.ts +0 -32
  53. package/templates/sveltekit-app/src/server/plugins/auth/migrations/003_create_refresh_tokens.ts +0 -33
  54. package/templates/sveltekit-app/src/server/plugins/auth/migrations/004_create_passkeys.ts +0 -60
  55. package/templates/sveltekit-app/src/server/plugins/auth/schema.ts +0 -65
  56. package/templates/sveltekit-app/src/server/plugins/demo/index.ts +0 -262
  57. package/templates/sveltekit-app/src/server/plugins/email/email.test.ts +0 -369
  58. package/templates/sveltekit-app/src/server/plugins/email/index.ts +0 -411
  59. package/templates/sveltekit-app/src/server/plugins/email/migrations/001_create_email_tokens.ts +0 -33
  60. package/templates/sveltekit-app/src/server/plugins/email/schema.ts +0 -24
  61. package/templates/sveltekit-app/src/server/plugins/permissions/index.ts +0 -1048
  62. package/templates/sveltekit-app/src/server/plugins/permissions/migrations/001_create_tenants.ts +0 -63
  63. package/templates/sveltekit-app/src/server/plugins/permissions/migrations/002_create_roles.ts +0 -90
  64. package/templates/sveltekit-app/src/server/plugins/permissions/migrations/003_create_resource_grants.ts +0 -50
  65. package/templates/sveltekit-app/src/server/plugins/permissions/permissions.test.ts +0 -566
  66. package/templates/sveltekit-app/src/server/plugins/permissions/schema.ts +0 -67
  67. package/templates/sveltekit-app/src/server/plugins/workflow-demo/index.ts +0 -198
  68. package/templates/sveltekit-app/src/server/routes/auth/auth.schemas.ts +0 -66
  69. package/templates/sveltekit-app/src/server/routes/auth/handlers/login.handler.ts +0 -18
  70. package/templates/sveltekit-app/src/server/routes/auth/handlers/logout.handler.ts +0 -16
  71. package/templates/sveltekit-app/src/server/routes/auth/handlers/me.handler.ts +0 -20
  72. package/templates/sveltekit-app/src/server/routes/auth/handlers/refresh.handler.ts +0 -17
  73. package/templates/sveltekit-app/src/server/routes/auth/handlers/register.handler.ts +0 -19
  74. package/templates/sveltekit-app/src/server/routes/auth/handlers/update-profile.handler.ts +0 -21
  75. package/templates/sveltekit-app/src/server/routes/auth/index.ts +0 -73
  76. package/templates/sveltekit-app/src/server/routes/demo.ts +0 -464
  77. package/templates/sveltekit-app/src/server/routes/example/example.schemas.ts +0 -22
  78. package/templates/sveltekit-app/src/server/routes/example/handlers/greet.handler.ts +0 -21
  79. package/templates/sveltekit-app/src/server/routes/example/index.ts +0 -28
  80. package/templates/sveltekit-app/src/server/routes/permissions/index.ts +0 -248
  81. package/templates/sveltekit-app/src/server/routes/tenants/index.ts +0 -339
  82. package/templates/sveltekit-app/static/robots.txt +0 -3
  83. package/templates/sveltekit-app/svelte.config.ts +0 -17
  84. package/templates/sveltekit-app/tsconfig.json +0 -20
  85. 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.