create-rudder-app 0.3.1 → 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/dist/index.js +98 -20
- package/dist/index.js.map +1 -1
- package/dist/templates/app/auth-controller.d.ts +2 -0
- package/dist/templates/app/auth-controller.d.ts.map +1 -0
- package/dist/templates/app/auth-controller.js +51 -0
- package/dist/templates/app/auth-controller.js.map +1 -0
- package/dist/templates/app/mcp-echo-server.d.ts +2 -0
- package/dist/templates/app/mcp-echo-server.d.ts.map +1 -0
- package/dist/templates/app/mcp-echo-server.js +13 -0
- package/dist/templates/app/mcp-echo-server.js.map +1 -0
- package/dist/templates/app/mcp-echo-tool.d.ts +2 -0
- package/dist/templates/app/mcp-echo-tool.d.ts.map +1 -0
- package/dist/templates/app/mcp-echo-tool.js +20 -0
- package/dist/templates/app/mcp-echo-tool.js.map +1 -0
- package/dist/templates/app/service-provider.d.ts +3 -0
- package/dist/templates/app/service-provider.d.ts.map +1 -0
- package/dist/templates/app/service-provider.js +48 -0
- package/dist/templates/app/service-provider.js.map +1 -0
- package/dist/templates/app/user-model.d.ts +2 -0
- package/dist/templates/app/user-model.d.ts.map +1 -0
- package/dist/templates/app/user-model.js +19 -0
- package/dist/templates/app/user-model.js.map +1 -0
- package/dist/templates/bootstrap/app.d.ts +3 -0
- package/dist/templates/bootstrap/app.d.ts.map +1 -0
- package/dist/templates/bootstrap/app.js +41 -0
- package/dist/templates/bootstrap/app.js.map +1 -0
- package/dist/templates/bootstrap/providers.d.ts +3 -0
- package/dist/templates/bootstrap/providers.d.ts.map +1 -0
- package/dist/templates/bootstrap/providers.js +27 -0
- package/dist/templates/bootstrap/providers.js.map +1 -0
- package/dist/templates/configs/ai.d.ts +2 -0
- package/dist/templates/configs/ai.d.ts.map +1 -0
- package/dist/templates/configs/ai.js +32 -0
- package/dist/templates/configs/ai.js.map +1 -0
- package/dist/templates/configs/app.d.ts +2 -0
- package/dist/templates/configs/app.d.ts.map +1 -0
- package/dist/templates/configs/app.js +12 -0
- package/dist/templates/configs/app.js.map +1 -0
- package/dist/templates/configs/auth.d.ts +3 -0
- package/dist/templates/configs/auth.d.ts.map +1 -0
- package/dist/templates/configs/auth.js +16 -0
- package/dist/templates/configs/auth.js.map +1 -0
- package/dist/templates/configs/cache.d.ts +2 -0
- package/dist/templates/configs/cache.d.ts.map +1 -0
- package/dist/templates/configs/cache.js +28 -0
- package/dist/templates/configs/cache.js.map +1 -0
- package/dist/templates/configs/crypt.d.ts +2 -0
- package/dist/templates/configs/crypt.d.ts.map +1 -0
- package/dist/templates/configs/crypt.js +16 -0
- package/dist/templates/configs/crypt.js.map +1 -0
- package/dist/templates/configs/database.d.ts +3 -0
- package/dist/templates/configs/database.d.ts.map +1 -0
- package/dist/templates/configs/database.js +28 -0
- package/dist/templates/configs/database.js.map +1 -0
- package/dist/templates/configs/hash.d.ts +2 -0
- package/dist/templates/configs/hash.d.ts.map +1 -0
- package/dist/templates/configs/hash.js +12 -0
- package/dist/templates/configs/hash.js.map +1 -0
- package/dist/templates/configs/horizon.d.ts +2 -0
- package/dist/templates/configs/horizon.d.ts.map +1 -0
- package/dist/templates/configs/horizon.js +30 -0
- package/dist/templates/configs/horizon.js.map +1 -0
- package/dist/templates/configs/index.d.ts +3 -0
- package/dist/templates/configs/index.d.ts.map +1 -0
- package/dist/templates/configs/index.js +92 -0
- package/dist/templates/configs/index.js.map +1 -0
- package/dist/templates/configs/localization.d.ts +2 -0
- package/dist/templates/configs/localization.d.ts.map +1 -0
- package/dist/templates/configs/localization.js +13 -0
- package/dist/templates/configs/localization.js.map +1 -0
- package/dist/templates/configs/log.d.ts +2 -0
- package/dist/templates/configs/log.d.ts.map +1 -0
- package/dist/templates/configs/log.js +40 -0
- package/dist/templates/configs/log.js.map +1 -0
- package/dist/templates/configs/mail.d.ts +2 -0
- package/dist/templates/configs/mail.d.ts.map +1 -0
- package/dist/templates/configs/mail.js +33 -0
- package/dist/templates/configs/mail.js.map +1 -0
- package/dist/templates/configs/passport.d.ts +2 -0
- package/dist/templates/configs/passport.d.ts.map +1 -0
- package/dist/templates/configs/passport.js +22 -0
- package/dist/templates/configs/passport.js.map +1 -0
- package/dist/templates/configs/pennant.d.ts +2 -0
- package/dist/templates/configs/pennant.d.ts.map +1 -0
- package/dist/templates/configs/pennant.js +16 -0
- package/dist/templates/configs/pennant.js.map +1 -0
- package/dist/templates/configs/pulse.d.ts +2 -0
- package/dist/templates/configs/pulse.d.ts.map +1 -0
- package/dist/templates/configs/pulse.js +21 -0
- package/dist/templates/configs/pulse.js.map +1 -0
- package/dist/templates/configs/queue.d.ts +2 -0
- package/dist/templates/configs/queue.d.ts.map +1 -0
- package/dist/templates/configs/queue.js +28 -0
- package/dist/templates/configs/queue.js.map +1 -0
- package/dist/templates/configs/sanctum.d.ts +2 -0
- package/dist/templates/configs/sanctum.d.ts.map +1 -0
- package/dist/templates/configs/sanctum.js +19 -0
- package/dist/templates/configs/sanctum.js.map +1 -0
- package/dist/templates/configs/server.d.ts +2 -0
- package/dist/templates/configs/server.d.ts.map +1 -0
- package/dist/templates/configs/server.js +15 -0
- package/dist/templates/configs/server.js.map +1 -0
- package/dist/templates/configs/session.d.ts +2 -0
- package/dist/templates/configs/session.d.ts.map +1 -0
- package/dist/templates/configs/session.js +26 -0
- package/dist/templates/configs/session.js.map +1 -0
- package/dist/templates/configs/socialite.d.ts +2 -0
- package/dist/templates/configs/socialite.d.ts.map +1 -0
- package/dist/templates/configs/socialite.js +27 -0
- package/dist/templates/configs/socialite.js.map +1 -0
- package/dist/templates/configs/storage.d.ts +2 -0
- package/dist/templates/configs/storage.d.ts.map +1 -0
- package/dist/templates/configs/storage.js +35 -0
- package/dist/templates/configs/storage.js.map +1 -0
- package/dist/templates/configs/sync.d.ts +3 -0
- package/dist/templates/configs/sync.d.ts.map +1 -0
- package/dist/templates/configs/sync.js +17 -0
- package/dist/templates/configs/sync.js.map +1 -0
- package/dist/templates/configs/telescope.d.ts +2 -0
- package/dist/templates/configs/telescope.d.ts.map +1 -0
- package/dist/templates/configs/telescope.js +25 -0
- package/dist/templates/configs/telescope.js.map +1 -0
- package/dist/templates/css/index.d.ts +3 -0
- package/dist/templates/css/index.d.ts.map +1 -0
- package/dist/templates/css/index.js +140 -0
- package/dist/templates/css/index.js.map +1 -0
- package/dist/templates/css/plain.d.ts +2 -0
- package/dist/templates/css/plain.d.ts.map +1 -0
- package/dist/templates/css/plain.js +373 -0
- package/dist/templates/css/plain.js.map +1 -0
- package/dist/templates/css/tailwind.d.ts +2 -0
- package/dist/templates/css/tailwind.d.ts.map +1 -0
- package/dist/templates/css/tailwind.js +176 -0
- package/dist/templates/css/tailwind.js.map +1 -0
- package/dist/templates/demos/avatar.d.ts +3 -0
- package/dist/templates/demos/avatar.d.ts.map +1 -0
- package/dist/templates/demos/avatar.js +182 -0
- package/dist/templates/demos/avatar.js.map +1 -0
- package/dist/templates/demos/cache.d.ts +3 -0
- package/dist/templates/demos/cache.d.ts.map +1 -0
- package/dist/templates/demos/cache.js +99 -0
- package/dist/templates/demos/cache.js.map +1 -0
- package/dist/templates/demos/contact.d.ts +3 -0
- package/dist/templates/demos/contact.d.ts.map +1 -0
- package/dist/templates/demos/contact.js +106 -0
- package/dist/templates/demos/contact.js.map +1 -0
- package/dist/templates/demos/fibonacci.d.ts +7 -0
- package/dist/templates/demos/fibonacci.d.ts.map +1 -0
- package/dist/templates/demos/fibonacci.js +172 -0
- package/dist/templates/demos/fibonacci.js.map +1 -0
- package/dist/templates/demos/http.d.ts +3 -0
- package/dist/templates/demos/http.d.ts.map +1 -0
- package/dist/templates/demos/http.js +117 -0
- package/dist/templates/demos/http.js.map +1 -0
- package/dist/templates/demos/index-view.d.ts +3 -0
- package/dist/templates/demos/index-view.d.ts.map +1 -0
- package/dist/templates/demos/index-view.js +144 -0
- package/dist/templates/demos/index-view.js.map +1 -0
- package/dist/templates/demos/localization.d.ts +4 -0
- package/dist/templates/demos/localization.d.ts.map +1 -0
- package/dist/templates/demos/localization.js +130 -0
- package/dist/templates/demos/localization.js.map +1 -0
- package/dist/templates/demos/mail.d.ts +4 -0
- package/dist/templates/demos/mail.d.ts.map +1 -0
- package/dist/templates/demos/mail.js +127 -0
- package/dist/templates/demos/mail.js.map +1 -0
- package/dist/templates/demos/notifications.d.ts +4 -0
- package/dist/templates/demos/notifications.d.ts.map +1 -0
- package/dist/templates/demos/notifications.js +133 -0
- package/dist/templates/demos/notifications.js.map +1 -0
- package/dist/templates/demos/pennant.d.ts +8 -0
- package/dist/templates/demos/pennant.d.ts.map +1 -0
- package/dist/templates/demos/pennant.js +138 -0
- package/dist/templates/demos/pennant.js.map +1 -0
- package/dist/templates/demos/queue.d.ts +4 -0
- package/dist/templates/demos/queue.d.ts.map +1 -0
- package/dist/templates/demos/queue.js +107 -0
- package/dist/templates/demos/queue.js.map +1 -0
- package/dist/templates/demos/registry.d.ts +13 -0
- package/dist/templates/demos/registry.d.ts.map +1 -0
- package/dist/templates/demos/registry.js +26 -0
- package/dist/templates/demos/registry.js.map +1 -0
- package/dist/templates/demos/rudder-socket.d.ts +2 -0
- package/dist/templates/demos/rudder-socket.d.ts.map +1 -0
- package/dist/templates/demos/rudder-socket.js +95 -0
- package/dist/templates/demos/rudder-socket.js.map +1 -0
- package/dist/templates/demos/sync.d.ts +2 -0
- package/dist/templates/demos/sync.d.ts.map +1 -0
- package/dist/templates/demos/sync.js +97 -0
- package/dist/templates/demos/sync.js.map +1 -0
- package/dist/templates/demos/system-info.d.ts +3 -0
- package/dist/templates/demos/system-info.d.ts.map +1 -0
- package/dist/templates/demos/system-info.js +142 -0
- package/dist/templates/demos/system-info.js.map +1 -0
- package/dist/templates/demos/todos.d.ts +6 -0
- package/dist/templates/demos/todos.d.ts.map +1 -0
- package/dist/templates/demos/todos.js +246 -0
- package/dist/templates/demos/todos.js.map +1 -0
- package/dist/templates/demos/ws.d.ts +2 -0
- package/dist/templates/demos/ws.d.ts.map +1 -0
- package/dist/templates/demos/ws.js +106 -0
- package/dist/templates/demos/ws.js.map +1 -0
- package/dist/templates/env.d.ts +7 -0
- package/dist/templates/env.d.ts.map +1 -0
- package/dist/templates/env.js +113 -0
- package/dist/templates/env.js.map +1 -0
- package/dist/templates/package-json.d.ts +3 -0
- package/dist/templates/package-json.d.ts.map +1 -0
- package/dist/templates/package-json.js +193 -0
- package/dist/templates/package-json.js.map +1 -0
- package/dist/templates/package-managers.d.ts +14 -0
- package/dist/templates/package-managers.d.ts.map +1 -0
- package/dist/templates/package-managers.js +49 -0
- package/dist/templates/package-managers.js.map +1 -0
- package/dist/templates/pages/ai-chat.d.ts +7 -0
- package/dist/templates/pages/ai-chat.d.ts.map +1 -0
- package/dist/templates/pages/ai-chat.js +285 -0
- package/dist/templates/pages/ai-chat.js.map +1 -0
- package/dist/templates/pages/demo.d.ts +4 -0
- package/dist/templates/pages/demo.d.ts.map +1 -0
- package/dist/templates/pages/demo.js +71 -0
- package/dist/templates/pages/demo.js.map +1 -0
- package/dist/templates/pages/error.d.ts +7 -0
- package/dist/templates/pages/error.d.ts.map +1 -0
- package/dist/templates/pages/error.js +148 -0
- package/dist/templates/pages/error.js.map +1 -0
- package/dist/templates/pages/index.d.ts +9 -0
- package/dist/templates/pages/index.d.ts.map +1 -0
- package/dist/templates/pages/index.js +311 -0
- package/dist/templates/pages/index.js.map +1 -0
- package/dist/templates/prisma/auth.d.ts +2 -0
- package/dist/templates/prisma/auth.d.ts.map +1 -0
- package/dist/templates/prisma/auth.js +22 -0
- package/dist/templates/prisma/auth.js.map +1 -0
- package/dist/templates/prisma/base.d.ts +3 -0
- package/dist/templates/prisma/base.d.ts.map +1 -0
- package/dist/templates/prisma/base.js +14 -0
- package/dist/templates/prisma/base.js.map +1 -0
- package/dist/templates/prisma/config.d.ts +3 -0
- package/dist/templates/prisma/config.d.ts.map +1 -0
- package/dist/templates/prisma/config.js +15 -0
- package/dist/templates/prisma/config.js.map +1 -0
- package/dist/templates/prisma/notification.d.ts +2 -0
- package/dist/templates/prisma/notification.d.ts.map +1 -0
- package/dist/templates/prisma/notification.js +16 -0
- package/dist/templates/prisma/notification.js.map +1 -0
- package/dist/templates/prisma/passport.d.ts +2 -0
- package/dist/templates/prisma/passport.d.ts.map +1 -0
- package/dist/templates/prisma/passport.js +69 -0
- package/dist/templates/prisma/passport.js.map +1 -0
- package/dist/templates/routes/api.d.ts +3 -0
- package/dist/templates/routes/api.d.ts.map +1 -0
- package/dist/templates/routes/api.js +166 -0
- package/dist/templates/routes/api.js.map +1 -0
- package/dist/templates/routes/console.d.ts +2 -0
- package/dist/templates/routes/console.d.ts.map +1 -0
- package/dist/templates/routes/console.js +22 -0
- package/dist/templates/routes/console.js.map +1 -0
- package/dist/templates/routes/web.d.ts +4 -0
- package/dist/templates/routes/web.d.ts.map +1 -0
- package/dist/templates/routes/web.js +155 -0
- package/dist/templates/routes/web.js.map +1 -0
- package/dist/templates/server.d.ts +2 -0
- package/dist/templates/server.d.ts.map +1 -0
- package/dist/templates/server.js +10 -0
- package/dist/templates/server.js.map +1 -0
- package/dist/templates/tsconfig.d.ts +3 -0
- package/dist/templates/tsconfig.d.ts.map +1 -0
- package/dist/templates/tsconfig.js +33 -0
- package/dist/templates/tsconfig.js.map +1 -0
- package/dist/templates/views/welcome.d.ts +6 -0
- package/dist/templates/views/welcome.d.ts.map +1 -0
- package/dist/templates/views/welcome.js +396 -0
- package/dist/templates/views/welcome.js.map +1 -0
- package/dist/templates/vite.d.ts +3 -0
- package/dist/templates/vite.d.ts.map +1 -0
- package/dist/templates/vite.js +61 -0
- package/dist/templates/vite.js.map +1 -0
- package/dist/templates.d.ts +27 -17
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +158 -3778
- package/dist/templates.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { intro, outro, text, select, multiselect, confirm, spinner, isCancel, cancel, } from '@clack/prompts';
|
|
2
|
+
import { intro, outro, text, select, multiselect, groupMultiselect, confirm, spinner, log, isCancel, cancel, } from '@clack/prompts';
|
|
3
3
|
import fs from 'node:fs/promises';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
6
|
import { randomBytes } from 'node:crypto';
|
|
7
7
|
import { createRequire } from 'node:module';
|
|
8
8
|
import { getTemplates, detectPackageManager, pmExec, pmRun, pmInstall } from './templates.js';
|
|
9
|
+
import { availableDemos } from './templates/demos/registry.js';
|
|
9
10
|
async function main() {
|
|
10
11
|
const argName = process.argv[2];
|
|
11
12
|
const pm = detectPackageManager();
|
|
@@ -61,28 +62,70 @@ async function main() {
|
|
|
61
62
|
db = dbAnswer;
|
|
62
63
|
}
|
|
63
64
|
// ── Package checklist ────────────────────────────────────
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
//
|
|
66
|
+
// Categorized via clack's groupMultiselect — one section per concern,
|
|
67
|
+
// group headers are non-selectable (selectableGroups: false).
|
|
68
|
+
// ORM=none filters out DB-dependent packages (auth/sanctum/passport)
|
|
69
|
+
// before the prompt renders, so the user never sees rows they can't use.
|
|
70
|
+
// Database-dependent packages — hidden when ORM=none.
|
|
71
|
+
const DB_GATED = new Set(['auth', 'sanctum', 'passport']);
|
|
72
|
+
const PACKAGE_GROUPS = {
|
|
73
|
+
'Auth & Users': [
|
|
67
74
|
{ value: 'auth', label: 'Authentication', hint: 'login, register, sessions' },
|
|
68
|
-
{ value: '
|
|
75
|
+
{ value: 'sanctum', label: 'Sanctum', hint: 'API tokens (SHA-256 + abilities)' },
|
|
76
|
+
{ value: 'passport', label: 'Passport', hint: 'OAuth2 server — requires Auth + Prisma' },
|
|
77
|
+
{ value: 'socialite', label: 'Socialite', hint: 'social login: GitHub, Google, Facebook, Apple' },
|
|
78
|
+
],
|
|
79
|
+
'Infrastructure': [
|
|
69
80
|
{ value: 'queue', label: 'Queue', hint: 'background jobs' },
|
|
70
81
|
{ value: 'storage', label: 'Storage', hint: 'file uploads (local + S3)' },
|
|
82
|
+
{ value: 'scheduler', label: 'Scheduler', hint: 'cron-like task scheduling' },
|
|
83
|
+
{ value: 'image', label: 'Image', hint: 'resize, crop, convert (sharp wrapper)' },
|
|
84
|
+
],
|
|
85
|
+
'Communication': [
|
|
71
86
|
{ value: 'mail', label: 'Mail', hint: 'SMTP + log driver' },
|
|
72
87
|
{ value: 'notifications', label: 'Notifications', hint: 'multi-channel notifications' },
|
|
73
|
-
{ value: '
|
|
74
|
-
{ value: '
|
|
75
|
-
|
|
88
|
+
{ value: 'broadcast', label: 'WebSocket / Broadcast', hint: 'real-time channels' },
|
|
89
|
+
{ value: 'sync', label: 'Sync (Yjs CRDT)', hint: 'collaborative documents' },
|
|
90
|
+
],
|
|
91
|
+
'AI': [
|
|
76
92
|
{ value: 'ai', label: 'AI', hint: 'LLM providers (Anthropic, OpenAI, Google, Ollama)' },
|
|
77
|
-
{ value: 'mcp', label: 'MCP', hint: 'Model Context Protocol
|
|
78
|
-
{ value: '
|
|
93
|
+
{ value: 'mcp', label: 'MCP', hint: 'Model Context Protocol — expose tools/resources to LLMs' },
|
|
94
|
+
{ value: 'boost', label: 'Boost', hint: 'AI coding DX (Claude Code/Cursor/Copilot)' },
|
|
95
|
+
],
|
|
96
|
+
'Internationalization': [
|
|
79
97
|
{ value: 'localization', label: 'Localization', hint: 'i18n — trans(), setLocale()' },
|
|
80
|
-
{ value: 'telescope', label: 'Telescope', hint: 'debug dashboard — requests, queries, jobs, exceptions, AI, mail, cache' },
|
|
81
|
-
{ value: 'boost', label: 'Boost (AI coding DX)', hint: 'expose project internals to Claude Code / Cursor / Copilot via MCP' },
|
|
82
|
-
{ value: 'demos', label: 'Demos', hint: 'sample views (contact, ws, live) under /demos — react primary only' },
|
|
83
98
|
],
|
|
84
|
-
|
|
99
|
+
'Product & Features': [
|
|
100
|
+
{ value: 'pennant', label: 'Pennant', hint: 'feature flags' },
|
|
101
|
+
],
|
|
102
|
+
'Observability': [
|
|
103
|
+
{ value: 'telescope', label: 'Telescope', hint: 'debug dashboard — requests, queries, jobs, exceptions' },
|
|
104
|
+
{ value: 'pulse', label: 'Pulse', hint: 'metrics dashboard — throughput, latency, hit rates' },
|
|
105
|
+
{ value: 'horizon', label: 'Horizon', hint: 'queue monitoring — lifecycle, workers, retry/delete' },
|
|
106
|
+
],
|
|
107
|
+
'Utilities': [
|
|
108
|
+
{ value: 'crypt', label: 'Crypt', hint: 'AES-256-CBC + HMAC encryption' },
|
|
109
|
+
{ value: 'http', label: 'HTTP', hint: 'fluent fetch client — retries, timeouts, pools' },
|
|
110
|
+
{ value: 'process', label: 'Process', hint: 'shell execution — run, pool, pipe' },
|
|
111
|
+
{ value: 'concurrency', label: 'Concurrency', hint: 'parallel execution via worker threads' },
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
if (orm === false) {
|
|
115
|
+
log.info('Database not selected — auth, sanctum, and passport options are hidden.');
|
|
116
|
+
}
|
|
117
|
+
const groupedOptions = {};
|
|
118
|
+
for (const [group, pkgs] of Object.entries(PACKAGE_GROUPS)) {
|
|
119
|
+
const visible = orm === false ? pkgs.filter(p => !DB_GATED.has(p.value)) : pkgs;
|
|
120
|
+
if (visible.length > 0)
|
|
121
|
+
groupedOptions[group] = visible;
|
|
122
|
+
}
|
|
123
|
+
const packageAnswer = await groupMultiselect({
|
|
124
|
+
message: 'Select packages',
|
|
125
|
+
options: groupedOptions,
|
|
126
|
+
initialValues: orm === false ? [] : ['auth'],
|
|
85
127
|
required: false,
|
|
128
|
+
selectableGroups: false,
|
|
86
129
|
});
|
|
87
130
|
if (isCancel(packageAnswer)) {
|
|
88
131
|
cancel('Cancelled.');
|
|
@@ -91,21 +134,29 @@ async function main() {
|
|
|
91
134
|
const selectedPackages = packageAnswer;
|
|
92
135
|
const packages = {
|
|
93
136
|
auth: selectedPackages.includes('auth'),
|
|
94
|
-
|
|
137
|
+
sanctum: selectedPackages.includes('sanctum'),
|
|
138
|
+
passport: selectedPackages.includes('passport'),
|
|
139
|
+
socialite: selectedPackages.includes('socialite'),
|
|
95
140
|
queue: selectedPackages.includes('queue'),
|
|
96
141
|
storage: selectedPackages.includes('storage'),
|
|
142
|
+
scheduler: selectedPackages.includes('scheduler'),
|
|
143
|
+
image: selectedPackages.includes('image'),
|
|
97
144
|
mail: selectedPackages.includes('mail'),
|
|
98
145
|
notifications: selectedPackages.includes('notifications'),
|
|
99
|
-
scheduler: selectedPackages.includes('scheduler'),
|
|
100
146
|
broadcast: selectedPackages.includes('broadcast'),
|
|
101
147
|
sync: selectedPackages.includes('sync'),
|
|
102
148
|
ai: selectedPackages.includes('ai'),
|
|
103
149
|
mcp: selectedPackages.includes('mcp'),
|
|
104
|
-
|
|
150
|
+
boost: selectedPackages.includes('boost'),
|
|
105
151
|
localization: selectedPackages.includes('localization'),
|
|
152
|
+
pennant: selectedPackages.includes('pennant'),
|
|
106
153
|
telescope: selectedPackages.includes('telescope'),
|
|
107
|
-
|
|
108
|
-
|
|
154
|
+
pulse: selectedPackages.includes('pulse'),
|
|
155
|
+
horizon: selectedPackages.includes('horizon'),
|
|
156
|
+
crypt: selectedPackages.includes('crypt'),
|
|
157
|
+
http: selectedPackages.includes('http'),
|
|
158
|
+
process: selectedPackages.includes('process'),
|
|
159
|
+
concurrency: selectedPackages.includes('concurrency'),
|
|
109
160
|
};
|
|
110
161
|
// Passport requires auth + prisma at runtime. Warn and drop silently if missing.
|
|
111
162
|
if (packages.passport && (!packages.auth || orm !== 'prisma')) {
|
|
@@ -170,6 +221,32 @@ async function main() {
|
|
|
170
221
|
}
|
|
171
222
|
shadcn = shadcnAnswer;
|
|
172
223
|
}
|
|
224
|
+
// ── Demos ──────────────────────────────────────────────
|
|
225
|
+
// Demos are only scaffolded when React is the primary framework — vue/solid
|
|
226
|
+
// variants aren't written yet. Each demo is gated by package selection
|
|
227
|
+
// (e.g. WebSocket chat needs Broadcast). Rows that fail their gate are
|
|
228
|
+
// filtered out before the prompt renders so the user only sees what's available.
|
|
229
|
+
let demos = [];
|
|
230
|
+
if (primary === 'react') {
|
|
231
|
+
const demoOptions = availableDemos(orm, packages);
|
|
232
|
+
if (demoOptions.length > 0) {
|
|
233
|
+
const demoAnswer = await multiselect({
|
|
234
|
+
message: 'Select demos to scaffold (under /demos)',
|
|
235
|
+
options: demoOptions.map(d => ({
|
|
236
|
+
value: d.value,
|
|
237
|
+
label: d.label,
|
|
238
|
+
...(d.hint !== undefined ? { hint: d.hint } : {}),
|
|
239
|
+
})),
|
|
240
|
+
initialValues: ['contact'],
|
|
241
|
+
required: false,
|
|
242
|
+
});
|
|
243
|
+
if (isCancel(demoAnswer)) {
|
|
244
|
+
cancel('Cancelled.');
|
|
245
|
+
process.exit(0);
|
|
246
|
+
}
|
|
247
|
+
demos = demoAnswer;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
173
250
|
// ── Install dependencies ───────────────────────────────
|
|
174
251
|
const installAnswer = await confirm({
|
|
175
252
|
message: `Install dependencies?`,
|
|
@@ -183,6 +260,7 @@ async function main() {
|
|
|
183
260
|
// ── Generate ───────────────────────────────────────────
|
|
184
261
|
const target = path.resolve(process.cwd(), name);
|
|
185
262
|
const authSecret = randomBytes(32).toString('hex');
|
|
263
|
+
const appKey = randomBytes(32).toString('base64');
|
|
186
264
|
// Make sure target directory doesn't exist
|
|
187
265
|
try {
|
|
188
266
|
await fs.access(target);
|
|
@@ -194,7 +272,7 @@ async function main() {
|
|
|
194
272
|
}
|
|
195
273
|
const s = spinner();
|
|
196
274
|
s.start('Scaffolding project files...');
|
|
197
|
-
const templates = getTemplates({ name, db, orm, authSecret, frameworks, primary, tailwind, shadcn, pm, packages });
|
|
275
|
+
const templates = getTemplates({ name, db, orm, authSecret, appKey, frameworks, primary, tailwind, shadcn, pm, packages, demos });
|
|
198
276
|
for (const [filePath, content] of Object.entries(templates)) {
|
|
199
277
|
const abs = path.join(target, filePath);
|
|
200
278
|
await fs.mkdir(path.dirname(abs), { recursive: true });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-controller.d.ts","sourceRoot":"","sources":["../../../src/templates/app/auth-controller.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,IAAI,MAAM,CAiDvC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function authController() {
|
|
2
|
+
return `import { Middleware } from '@rudderjs/router'
|
|
3
|
+
import { RateLimit } from '@rudderjs/middleware'
|
|
4
|
+
import {
|
|
5
|
+
BaseAuthController,
|
|
6
|
+
PasswordBroker,
|
|
7
|
+
MemoryTokenRepository,
|
|
8
|
+
EloquentUserProvider,
|
|
9
|
+
type AuthUserModelLike,
|
|
10
|
+
} from '@rudderjs/auth'
|
|
11
|
+
import { Hash } from '@rudderjs/hash'
|
|
12
|
+
import { User } from '../../Models/User.ts'
|
|
13
|
+
|
|
14
|
+
// Per-IP + per-path rate limit — sign-in attempts don't exhaust the sign-up
|
|
15
|
+
// or password-reset budget for the same client.
|
|
16
|
+
const authLimit = RateLimit.perMinute(10)
|
|
17
|
+
.by(req => {
|
|
18
|
+
const ip = (req as unknown as Record<string, unknown>)['ip'] as string ?? '127.0.0.1'
|
|
19
|
+
return \`\${ip}:\${req.path}\`
|
|
20
|
+
})
|
|
21
|
+
.message('Too many auth attempts. Try again later.')
|
|
22
|
+
|
|
23
|
+
// Swap MemoryTokenRepository for a persistent one (Prisma/Redis) in production.
|
|
24
|
+
const broker = new PasswordBroker(
|
|
25
|
+
new MemoryTokenRepository(),
|
|
26
|
+
new EloquentUserProvider(User as unknown as never, (plain, hashed) => Hash.check(plain, hashed)),
|
|
27
|
+
{ expire: 60, throttle: 60 },
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Auth POST handlers — Laravel Breeze-style.
|
|
32
|
+
*
|
|
33
|
+
* Extends \`BaseAuthController\` from @rudderjs/auth which provides the five
|
|
34
|
+
* standard endpoints (\`sign-in/email\`, \`sign-up/email\`, \`sign-out\`,
|
|
35
|
+
* \`request-password-reset\`, \`reset-password\`). Override any method to
|
|
36
|
+
* customize behavior — the base uses \`this.userModel\` / \`this.hash\` /
|
|
37
|
+
* \`this.passwordBroker\` for its defaults, so replacing those fields is
|
|
38
|
+
* usually all you need.
|
|
39
|
+
*
|
|
40
|
+
* Registered from \`routes/web.ts\` via \`Route.registerController(AuthController)\`
|
|
41
|
+
* so the handlers inherit SessionMiddleware + AuthMiddleware from the web group.
|
|
42
|
+
*/
|
|
43
|
+
@Middleware([authLimit])
|
|
44
|
+
export class AuthController extends BaseAuthController {
|
|
45
|
+
protected userModel = User as unknown as AuthUserModelLike
|
|
46
|
+
protected hash = Hash
|
|
47
|
+
protected passwordBroker = broker
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=auth-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-controller.js","sourceRoot":"","sources":["../../../src/templates/app/auth-controller.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CR,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-echo-server.d.ts","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-server.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,IAAI,MAAM,CAWtC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function mcpEchoServer() {
|
|
2
|
+
return `import { McpServer, Name, Version, Instructions } from '@rudderjs/mcp'
|
|
3
|
+
import { EchoTool } from './EchoTool.js'
|
|
4
|
+
|
|
5
|
+
@Name('echo-server')
|
|
6
|
+
@Version('1.0.0')
|
|
7
|
+
@Instructions('A demo MCP server that echoes messages back.')
|
|
8
|
+
export class EchoServer extends McpServer {
|
|
9
|
+
protected tools = [EchoTool]
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=mcp-echo-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-echo-server.js","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-server.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa;IAC3B,OAAO;;;;;;;;;CASR,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-echo-tool.d.ts","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-tool.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,IAAI,MAAM,CAkBpC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function mcpEchoTool() {
|
|
2
|
+
return `import { z } from 'zod'
|
|
3
|
+
import { McpTool, McpResponse, Description } from '@rudderjs/mcp'
|
|
4
|
+
import type { McpToolResult } from '@rudderjs/mcp'
|
|
5
|
+
|
|
6
|
+
@Description('Echoes the given message back to the caller')
|
|
7
|
+
export class EchoTool extends McpTool {
|
|
8
|
+
schema() {
|
|
9
|
+
return z.object({
|
|
10
|
+
message: z.string().describe('The message to echo'),
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async handle(input: Record<string, unknown>): Promise<McpToolResult> {
|
|
15
|
+
return McpResponse.text(\`Echo: \${String(input['message'])}\`)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=mcp-echo-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-echo-tool.js","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-tool.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;;;;;;;;;;CAgBR,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../../../src/templates/app/service-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAG7E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAiD/D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { shouldScaffoldDemo } from '../../templates.js';
|
|
2
|
+
import { pennantFeatureDefinitions } from '../demos/pennant.js';
|
|
3
|
+
export function appServiceProvider(ctx) {
|
|
4
|
+
const imports = ["import { ServiceProvider } from '@rudderjs/core'"];
|
|
5
|
+
const registerLines = [
|
|
6
|
+
'// Register your application-level services here:',
|
|
7
|
+
'// this.app.singleton(MyService, () => new MyService())',
|
|
8
|
+
];
|
|
9
|
+
const bootLines = [];
|
|
10
|
+
if (ctx.packages.mcp) {
|
|
11
|
+
imports.push("import { Mcp } from '@rudderjs/mcp'");
|
|
12
|
+
imports.push("import { EchoServer } from '../Mcp/EchoServer.js'");
|
|
13
|
+
registerLines.push('');
|
|
14
|
+
registerLines.push('// Expose the demo MCP server over HTTP at /mcp/echo');
|
|
15
|
+
registerLines.push("Mcp.web('/mcp/echo', EchoServer)");
|
|
16
|
+
}
|
|
17
|
+
// Demo modules that ship their own ServiceProvider need dynamic registration
|
|
18
|
+
// here so their boot() runs after framework providers (DB, router, etc.).
|
|
19
|
+
if (shouldScaffoldDemo(ctx, 'todos')) {
|
|
20
|
+
imports.push("import { TodoServiceProvider } from '../Modules/Todo/TodoServiceProvider.js'");
|
|
21
|
+
bootLines.push('await this.app.register(TodoServiceProvider)');
|
|
22
|
+
}
|
|
23
|
+
// Pennant demo seeds its four feature shapes (boolean/value/scoped/lottery)
|
|
24
|
+
// in boot() so the /demos/pennant view can resolve them.
|
|
25
|
+
if (shouldScaffoldDemo(ctx, 'pennant')) {
|
|
26
|
+
imports.push("import { Feature, Lottery } from '@rudderjs/pennant'");
|
|
27
|
+
bootLines.push('// Pennant demo features — see app/Views/Demos/Pennant.tsx');
|
|
28
|
+
bootLines.push(pennantFeatureDefinitions());
|
|
29
|
+
}
|
|
30
|
+
const isAsyncBoot = bootLines.some(l => l.includes('await '));
|
|
31
|
+
const bootBody = bootLines.length > 0
|
|
32
|
+
? `${bootLines.join('\n ')}\n console.log(\`[AppServiceProvider] booted — \${this.app.name}\`)`
|
|
33
|
+
: `console.log(\`[AppServiceProvider] booted — \${this.app.name}\`)`;
|
|
34
|
+
const bootSig = isAsyncBoot ? 'override async boot(): Promise<void>' : 'boot(): void';
|
|
35
|
+
return `${imports.join('\n')}
|
|
36
|
+
|
|
37
|
+
export class AppServiceProvider extends ServiceProvider {
|
|
38
|
+
register(): void {
|
|
39
|
+
${registerLines.join('\n ')}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
${bootSig} {
|
|
43
|
+
${bootBody}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=service-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../../../src/templates/app/service-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,MAAM,OAAO,GAAa,CAAC,kDAAkD,CAAC,CAAA;IAC9E,MAAM,aAAa,GAAa;QAC9B,mDAAmD;QACnD,yDAAyD;KAC1D,CAAA;IACD,MAAM,SAAS,GAAa,EAAE,CAAA;IAE9B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;QACnD,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;QACjE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,aAAa,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QAC1E,aAAa,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IACxD,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,IAAI,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAA;QAC5F,SAAS,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAChE,CAAC;IAED,4EAA4E;IAC5E,yDAAyD;IACzD,IAAI,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QACpE,SAAS,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;QAC5E,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,wEAAwE;QACrG,CAAC,CAAC,kEAAkE,CAAA;IACtE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,cAAc,CAAA;IAErF,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;MAIxB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAG9B,OAAO;MACL,QAAQ;;;CAGb,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-model.d.ts","sourceRoot":"","sources":["../../../src/templates/app/user-model.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAiBlC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function userModel() {
|
|
2
|
+
return `import { Model } from '@rudderjs/orm'
|
|
3
|
+
|
|
4
|
+
export class User extends Model {
|
|
5
|
+
// Prisma accessor is the model name lowercased
|
|
6
|
+
static table = 'user'
|
|
7
|
+
|
|
8
|
+
id!: string
|
|
9
|
+
name!: string
|
|
10
|
+
email!: string
|
|
11
|
+
password?: string | null
|
|
12
|
+
emailVerified!: boolean
|
|
13
|
+
role!: string
|
|
14
|
+
createdAt!: Date
|
|
15
|
+
updatedAt!: Date
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=user-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-model.js","sourceRoot":"","sources":["../../../src/templates/app/user-model.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;;;;CAeR,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/templates/bootstrap/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAyCzD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function bootstrapApp(ctx) {
|
|
2
|
+
const imports = [
|
|
3
|
+
"import 'reflect-metadata'",
|
|
4
|
+
"import 'dotenv/config'",
|
|
5
|
+
"import { Application } from '@rudderjs/core'",
|
|
6
|
+
"import { hono } from '@rudderjs/server-hono'",
|
|
7
|
+
"import { RateLimit } from '@rudderjs/middleware'",
|
|
8
|
+
"import configs from '../config/index.ts'",
|
|
9
|
+
"import providers from './providers.ts'",
|
|
10
|
+
];
|
|
11
|
+
void ctx;
|
|
12
|
+
// Note (middleware groups):
|
|
13
|
+
// - m.use(...) runs on every request regardless of route group
|
|
14
|
+
// - m.web(...) / m.api(...) run only on routes loaded via withRouting({ web }) / { api }
|
|
15
|
+
// - sessionMiddleware + AuthMiddleware are auto-installed on the web group
|
|
16
|
+
// by @rudderjs/session and @rudderjs/auth — no manual wiring needed
|
|
17
|
+
return `${imports.join('\n')}
|
|
18
|
+
|
|
19
|
+
export default Application.configure({
|
|
20
|
+
server: hono(configs.server),
|
|
21
|
+
config: configs,
|
|
22
|
+
providers,
|
|
23
|
+
})
|
|
24
|
+
.withRouting({
|
|
25
|
+
web: () => import('../routes/web.ts'),
|
|
26
|
+
api: () => import('../routes/api.ts'),
|
|
27
|
+
commands: () => import('../routes/console.ts'),
|
|
28
|
+
})
|
|
29
|
+
.withMiddleware((m) => {
|
|
30
|
+
// Per-group — separate rate-limit budgets for web pages and api calls
|
|
31
|
+
m.web(RateLimit.perMinute(120))
|
|
32
|
+
m.api(RateLimit.perMinute(60))
|
|
33
|
+
|
|
34
|
+
// sessionMiddleware + AuthMiddleware are auto-installed on the web group
|
|
35
|
+
// by @rudderjs/session and @rudderjs/auth. Api routes are stateless by
|
|
36
|
+
// default — opt into bearer auth with RequireBearer() from @rudderjs/passport.
|
|
37
|
+
})
|
|
38
|
+
.create()
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/templates/bootstrap/app.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,GAAoB;IAC/C,MAAM,OAAO,GAAa;QACxB,2BAA2B;QAC3B,wBAAwB;QACxB,8CAA8C;QAC9C,8CAA8C;QAC9C,kDAAkD;QAClD,0CAA0C;QAC1C,wCAAwC;KACzC,CAAA;IACD,KAAK,GAAG,CAAA;IAER,4BAA4B;IAC5B,iEAAiE;IACjE,2FAA2F;IAC3F,6EAA6E;IAC7E,wEAAwE;IAExE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/templates/bootstrap/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA2B/D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function bootstrapProviders(ctx) {
|
|
2
|
+
const imports = [
|
|
3
|
+
"import type { Application, ServiceProvider } from '@rudderjs/core'",
|
|
4
|
+
"import { defaultProviders, eventsProvider } from '@rudderjs/core'",
|
|
5
|
+
"import { AppServiceProvider } from '../app/Providers/AppServiceProvider.js'",
|
|
6
|
+
];
|
|
7
|
+
const providers = [
|
|
8
|
+
'...(await defaultProviders()),',
|
|
9
|
+
'eventsProvider({}),',
|
|
10
|
+
'AppServiceProvider,',
|
|
11
|
+
];
|
|
12
|
+
return `${imports.join('\n')}
|
|
13
|
+
|
|
14
|
+
// All framework providers are auto-discovered from package.json metadata.
|
|
15
|
+
// Run \`pnpm rudder providers:discover\` after installing or removing packages.
|
|
16
|
+
//
|
|
17
|
+
// To skip a specific framework provider:
|
|
18
|
+
// ...(await defaultProviders({ skip: ['@rudderjs/horizon'] })),
|
|
19
|
+
//
|
|
20
|
+
// To turn off auto-discovery entirely, replace \`...(await defaultProviders())\`
|
|
21
|
+
// with explicit class imports — see the framework docs.
|
|
22
|
+
export default [
|
|
23
|
+
${providers.join('\n ')}
|
|
24
|
+
] satisfies (new (app: Application) => ServiceProvider)[]
|
|
25
|
+
`;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/templates/bootstrap/providers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,MAAM,OAAO,GAAa;QACxB,oEAAoE;QACpE,mEAAmE;QACnE,6EAA6E;KAC9E,CAAA;IAED,MAAM,SAAS,GAAa;QAC1B,gCAAgC;QAChC,qBAAqB;QACrB,qBAAqB;KACtB,CAAA;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;IAW1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;CAEzB,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/templates/configs/ai.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,MAAM,CA8BjC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export function configAi() {
|
|
2
|
+
return `import { Env } from '@rudderjs/support'
|
|
3
|
+
import type { AiConfig } from '@rudderjs/ai'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
default: Env.get('AI_MODEL', 'anthropic/claude-sonnet-4-5'),
|
|
7
|
+
|
|
8
|
+
providers: {
|
|
9
|
+
anthropic: {
|
|
10
|
+
driver: 'anthropic',
|
|
11
|
+
apiKey: Env.get('ANTHROPIC_API_KEY', ''),
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
openai: {
|
|
15
|
+
driver: 'openai',
|
|
16
|
+
apiKey: Env.get('OPENAI_API_KEY', ''),
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
google: {
|
|
20
|
+
driver: 'google',
|
|
21
|
+
apiKey: Env.get('GOOGLE_AI_API_KEY', ''),
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
ollama: {
|
|
25
|
+
driver: 'ollama',
|
|
26
|
+
baseUrl: Env.get('OLLAMA_BASE_URL', 'http://localhost:11434'),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
} satisfies AiConfig
|
|
30
|
+
`;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/templates/configs/ai.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAA;AACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/templates/configs/app.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAUlC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function configApp() {
|
|
2
|
+
return `import { Env } from '@rudderjs/support'
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
name: Env.get('APP_NAME', 'RudderJS'),
|
|
6
|
+
env: Env.get('APP_ENV', 'development'),
|
|
7
|
+
debug: Env.getBool('APP_DEBUG', false),
|
|
8
|
+
url: Env.get('APP_URL', 'http://localhost:3000'),
|
|
9
|
+
}
|
|
10
|
+
`;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/templates/configs/app.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;CAQR,CAAA;AACD,CAAC"}
|