@beeblock/svelar 0.4.0 → 0.4.2
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/cli/bin.js +2 -2
- package/package.json +1 -1
package/dist/cli/bin.js
CHANGED
|
@@ -5846,11 +5846,11 @@ export class EventServiceProvider extends BaseProvider {
|
|
|
5846
5846
|
</div>
|
|
5847
5847
|
</div>
|
|
5848
5848
|
`}};var ts=class extends h{name="new";description="Create a new SvelteKit project with Svelar pre-configured";arguments=["name"];flags=[{name:"no-install",alias:"n",description:"Skip npm install",type:"boolean",default:!1}];async handle(e,t){let{join:s,resolve:r}=await import("path"),{existsSync:n,mkdirSync:i,writeFileSync:a}=await import("fs"),{execSync:o}=await import("child_process"),c=e[0];c||(this.error("Please provide a project name: npx svelar new my-app"),process.exit(1));let u=r(process.cwd(),c);n(u)&&(this.error(`Directory "${c}" already exists.`),process.exit(1)),this.log(""),this.log(` \x1B[1m\x1B[38;5;208m</> Svelar\x1B[0m \u2014 Creating new project
|
|
5849
|
-
`);let d=(M,Ar)=>{let K=s(u,M);i(s(K,".."),{recursive:!0}),a(K,Ar)};this.info("Creating project structure...");let p=["","src","src/lib","src/lib/models","src/lib/repositories","src/lib/services","src/lib/controllers","src/lib/dtos","src/lib/actions","src/lib/auth","src/lib/schemas","src/lib/shared/jobs","src/lib/shared/scheduler","src/lib/events","src/lib/listeners","src/lib/resources","src/lib/notifications","src/lib/shared/middleware","src/lib/shared/components","src/lib/shared/stores","src/lib/shared/plugins","src/lib/shared/channels","src/lib/shared/commands","src/lib/shared/providers","src/lib/database/migrations","src/lib/database/seeders","src/routes","src/routes/api","static","storage/logs","storage/cache","storage/uploads","storage/sessions"];for(let M of p)i(s(u,M),{recursive:!0});this.info("Writing config files...");let{dirname:f}=await import("path"),{fileURLToPath:y}=await import("url"),S=s(f(f(y(import.meta.url))),"package.json"),ls=JSON.parse((await import("fs")).readFileSync(S,"utf-8")).version??"0.4.0";d("package.json",m.packageJson(c,ls)),d("svelte.config.js",m.svelteConfig()),d("vite.config.ts",m.viteConfig()),d("tsconfig.json",m.tsConfig()),d("src/app.html",m.appHtml()),d("src/app.css",m.appCss()),d("src/app.ts",m.appTs()),d("src/hooks.server.ts",m.hooksServerTs()),d(".env.example",m.envExample());let{randomBytes:ve}=await import("crypto"),Be=ve(32).toString("hex"),be=ve(16).toString("hex"),we=m.envExample().replace("APP_KEY=change-me-to-a-random-string",`APP_KEY=${Be}`).replace("INTERNAL_SECRET=change-me-to-a-random-string",`INTERNAL_SECRET=${be}`);d(".env",we),d(".gitignore",m.gitignore()),d("svelar.database.json",m.svelarDatabaseJson());for(let M of["storage/logs","storage/cache","storage/uploads","storage/sessions"])d(`${M}/.gitkeep`,"");if(this.info("Scaffolding domain layer..."),d("src/lib/models/User.ts",m.userModel()),d("src/lib/models/Post.ts",m.postModel()),d("src/lib/repositories/UserRepository.ts",m.userRepository()),d("src/lib/repositories/PostRepository.ts",m.postRepository()),d("src/lib/services/AuthService.ts",m.authService()),d("src/lib/services/PostService.ts",m.postService()),d("src/lib/controllers/AuthController.ts",m.authController()),d("src/lib/controllers/PostController.ts",m.postController()),d("src/lib/controllers/AdminController.ts",m.adminController()),d("src/lib/dtos/RegisterRequest.ts",m.registerRequest()),d("src/lib/dtos/LoginRequest.ts",m.loginRequest()),d("src/lib/dtos/CreatePostRequest.ts",m.createPostRequest()),d("src/lib/dtos/UpdatePostRequest.ts",m.updatePostRequest()),d("src/lib/dtos/UpdateUserRoleRequest.ts",m.updateUserRoleRequest()),d("src/lib/dtos/DeleteUserRequest.ts",m.deleteUserRequest()),d("src/lib/dtos/CreateRoleRequest.ts",m.createRoleRequest()),d("src/lib/dtos/DeleteRoleRequest.ts",m.deleteRoleRequest()),d("src/lib/dtos/CreatePermissionRequest.ts",m.createPermissionRequest()),d("src/lib/dtos/DeletePermissionRequest.ts",m.deletePermissionRequest()),d("src/lib/dtos/RolePermissionRequest.ts",m.rolePermissionRequest()),d("src/lib/dtos/UserRoleRequest.ts",m.userRoleRequest()),d("src/lib/dtos/UserPermissionRequest.ts",m.userPermissionRequest()),d("src/lib/dtos/ExportDataRequest.ts",m.exportDataRequest()),d("src/lib/actions/RegisterUserAction.ts",m.registerUserAction()),d("src/lib/actions/CreatePostAction.ts",m.createPostAction()),d("src/lib/auth/gates.ts",m.gates()),d("src/lib/schemas/auth.ts",m.authSchema()),d("src/lib/schemas/post.ts",m.postSchema()),d("src/lib/schemas/admin.ts",m.adminSchema()),d("src/lib/services/AdminService.ts",m.adminService()),d("src/lib/resources/RoleResource.ts",m.roleResource()),d("src/lib/resources/PermissionResource.ts",m.permissionResource()),d("src/lib/shared/providers/EventServiceProvider.ts",m.eventServiceProvider()),d("src/lib/resources/UserResource.ts",m.userResource()),d("src/lib/resources/PostResource.ts",m.postResource()),d("src/lib/events/UserRegistered.ts",m.userRegisteredEvent()),d("src/lib/listeners/SendWelcomeEmailListener.ts",m.sendWelcomeEmailListener()),d("src/lib/notifications/WelcomeNotification.ts",m.welcomeNotification()),this.info("Creating migrations..."),d("src/lib/database/migrations/00000001_create_users_table.ts",m.createUsersTable()),d("src/lib/database/migrations/00000002_create_posts_table.ts",m.createPostsTable()),d("src/lib/database/migrations/00000003_create_permissions_tables.ts",m.createPermissionsTables()),d("src/lib/database/migrations/00000004_add_role_to_users.ts",m.addRoleToUsers()),d("src/lib/database/migrations/00000005_create_sessions_table.ts",m.createSessionsTable()),d("src/lib/database/migrations/00000006_create_audit_logs_table.ts",m.createAuditLogsTable()),d("src/lib/database/migrations/00000007_create_notifications_table.ts",m.createNotificationsTable()),d("src/lib/database/migrations/00000008_create_failed_jobs_table.ts",m.createFailedJobsTable()),d("src/lib/database/seeders/DatabaseSeeder.ts",m.databaseSeeder()),this.info("Creating auth pages..."),d("src/routes/login/+page.server.ts",m.loginPageServer()),d("src/routes/login/+page.svelte",m.loginPageSvelte()),d("src/routes/register/+page.server.ts",m.registerPageServer()),d("src/routes/register/+page.svelte",m.registerPageSvelte()),d("src/routes/logout/+page.server.ts",m.logoutPageServer()),d("src/routes/forgot-password/+page.server.ts",m.forgotPasswordPageServer()),d("src/routes/forgot-password/+page.svelte",m.forgotPasswordPageSvelte()),d("src/routes/reset-password/+page.server.ts",m.resetPasswordPageServer()),d("src/routes/reset-password/+page.svelte",m.resetPasswordPageSvelte()),d("src/routes/otp-login/+page.server.ts",m.otpLoginPageServer()),d("src/routes/otp-login/+page.svelte",m.otpLoginPageSvelte()),d("src/routes/verify-email/+page.server.ts",m.verifyEmailPageServer()),d("src/routes/verify-email/+page.svelte",m.verifyEmailPageSvelte()),this.info("Creating dashboard..."),d("src/routes/dashboard/+layout.server.ts",m.dashboardLayoutServer()),d("src/routes/dashboard/+page.server.ts",m.dashboardPageServer()),d("src/routes/dashboard/+page.svelte",m.dashboardPageSvelte()),d("src/routes/dashboard/api-keys/+page.server.ts",m.apiKeysPageServer()),d("src/routes/dashboard/api-keys/+page.svelte",m.apiKeysPageSvelte()),d("src/routes/dashboard/team/+page.server.ts",m.teamPageServer()),d("src/routes/dashboard/team/+page.svelte",m.teamPageSvelte()),this.info("Creating admin panel..."),d("src/routes/admin/+layout.server.ts",m.adminLayoutServer()),d("src/routes/admin/+page.server.ts",m.adminPageServer()),d("src/routes/admin/+page.svelte",m.adminPageSvelte()),this.info("Creating API routes..."),d("src/routes/api/health/+server.ts",m.apiHealth()),d("src/routes/api/auth/register/+server.ts",m.apiAuthRegister()),d("src/routes/api/auth/login/+server.ts",m.apiAuthLogin()),d("src/routes/api/auth/logout/+server.ts",m.apiAuthLogout()),d("src/routes/api/auth/me/+server.ts",m.apiAuthMe()),d("src/routes/api/auth/forgot-password/+server.ts",m.apiAuthForgotPassword()),d("src/routes/api/auth/reset-password/+server.ts",m.apiAuthResetPassword()),d("src/routes/api/auth/otp/send/+server.ts",m.apiAuthOtpSend()),d("src/routes/api/auth/otp/verify/+server.ts",m.apiAuthOtpVerify()),d("src/routes/api/auth/verify-email/+server.ts",m.apiAuthVerifyEmail()),d("src/routes/api/posts/+server.ts",m.apiPosts()),d("src/routes/api/posts/[id]/+server.ts",m.apiPostsSingle()),d("src/routes/api/posts/mine/+server.ts",m.apiPostsMine()),d("src/routes/api/broadcasting/[channel]/+server.ts",m.apiBroadcasting()),d("src/routes/api/internal/broadcast/+server.ts",m.apiInternalBroadcast()),d("src/routes/api/admin/users/+server.ts",m.apiAdminUsers()),d("src/routes/api/admin/roles/+server.ts",m.apiAdminRoles()),d("src/routes/api/admin/permissions/+server.ts",m.apiAdminPermissions()),d("src/routes/api/admin/role-permissions/+server.ts",m.apiAdminRolePermissions()),d("src/routes/api/admin/user-roles/+server.ts",m.apiAdminUserRoles()),d("src/routes/api/admin/user-permissions/+server.ts",m.apiAdminUserPermissions()),d("src/routes/api/admin/export/+server.ts",m.apiAdminExport()),this.info("Creating background jobs..."),d("src/lib/shared/jobs/SendWelcomeEmail.ts",m.sendWelcomeEmail()),d("src/lib/shared/jobs/DailyDigestJob.ts",m.dailyDigestJob()),d("src/lib/shared/jobs/ExportDataJob.ts",m.exportDataJob()),this.info("Creating scheduled tasks..."),d("src/lib/shared/scheduler/CleanupExpiredTokens.ts",m.cleanupExpiredTokens()),d("src/lib/shared/scheduler/CleanExpiredSessions.ts",m.cleanExpiredSessions()),d("src/lib/shared/scheduler/DailyDigestEmail.ts",m.dailyDigestEmail()),d("src/lib/shared/scheduler/PruneAuditLogs.ts",m.pruneAuditLogs()),d("src/lib/shared/scheduler/QueueHealthCheck.ts",m.queueHealthCheck()),this.info("Creating layouts..."),d("src/routes/+layout.svelte",m.rootLayoutSvelte(c)),d("src/routes/+layout.server.ts",m.rootLayoutServer()),d("src/routes/+error.svelte",m.errorSvelte()),d("src/routes/+page.svelte",m.homePage(c)),this.success("Project structure created"),!t["no-install"]){this.info("Installing dependencies...");try{o("npm install",{cwd:u,stdio:"inherit"}),this.success("Dependencies installed")}catch{this.warn("npm install failed \u2014 run it manually with: cd "+c+" && npm install")}this.info("Running migrations...");try{o("npx svelar migrate",{cwd:u,stdio:"inherit"}),this.success("Migrations complete")}catch{this.warn("Migrations failed \u2014 run manually: cd "+c+" && npx svelar migrate")}this.info("Seeding database...");try{o("npx svelar seed:run",{cwd:u,stdio:"inherit"}),this.success("Database seeded")}catch{this.warn("Seeding failed \u2014 run manually: cd "+c+" && npx svelar seed:run")}}this.log(""),this.log(` \x1B[32m+\x1B[0m Project \x1B[1m${c}\x1B[0m created successfully!
|
|
5849
|
+
`);let d=(M,Ar)=>{let K=s(u,M);i(s(K,".."),{recursive:!0}),a(K,Ar)};this.info("Creating project structure...");let p=["","src","src/lib","src/lib/models","src/lib/repositories","src/lib/services","src/lib/controllers","src/lib/dtos","src/lib/actions","src/lib/auth","src/lib/schemas","src/lib/shared/jobs","src/lib/shared/scheduler","src/lib/events","src/lib/listeners","src/lib/resources","src/lib/notifications","src/lib/shared/middleware","src/lib/shared/components","src/lib/shared/stores","src/lib/shared/plugins","src/lib/shared/channels","src/lib/shared/commands","src/lib/shared/providers","src/lib/database/migrations","src/lib/database/seeders","src/routes","src/routes/api","static","storage/logs","storage/cache","storage/uploads","storage/sessions"];for(let M of p)i(s(u,M),{recursive:!0});this.info("Writing config files...");let{dirname:f}=await import("path"),{fileURLToPath:y}=await import("url"),S=s(f(f(f(y(import.meta.url)))),"package.json"),ls=JSON.parse((await import("fs")).readFileSync(S,"utf-8")).version??"0.4.0";d("package.json",m.packageJson(c,ls)),d("svelte.config.js",m.svelteConfig()),d("vite.config.ts",m.viteConfig()),d("tsconfig.json",m.tsConfig()),d("src/app.html",m.appHtml()),d("src/app.css",m.appCss()),d("src/app.ts",m.appTs()),d("src/hooks.server.ts",m.hooksServerTs()),d(".env.example",m.envExample());let{randomBytes:ve}=await import("crypto"),Be=ve(32).toString("hex"),be=ve(16).toString("hex"),we=m.envExample().replace("APP_KEY=change-me-to-a-random-string",`APP_KEY=${Be}`).replace("INTERNAL_SECRET=change-me-to-a-random-string",`INTERNAL_SECRET=${be}`);d(".env",we),d(".gitignore",m.gitignore()),d("svelar.database.json",m.svelarDatabaseJson());for(let M of["storage/logs","storage/cache","storage/uploads","storage/sessions"])d(`${M}/.gitkeep`,"");if(this.info("Scaffolding domain layer..."),d("src/lib/models/User.ts",m.userModel()),d("src/lib/models/Post.ts",m.postModel()),d("src/lib/repositories/UserRepository.ts",m.userRepository()),d("src/lib/repositories/PostRepository.ts",m.postRepository()),d("src/lib/services/AuthService.ts",m.authService()),d("src/lib/services/PostService.ts",m.postService()),d("src/lib/controllers/AuthController.ts",m.authController()),d("src/lib/controllers/PostController.ts",m.postController()),d("src/lib/controllers/AdminController.ts",m.adminController()),d("src/lib/dtos/RegisterRequest.ts",m.registerRequest()),d("src/lib/dtos/LoginRequest.ts",m.loginRequest()),d("src/lib/dtos/CreatePostRequest.ts",m.createPostRequest()),d("src/lib/dtos/UpdatePostRequest.ts",m.updatePostRequest()),d("src/lib/dtos/UpdateUserRoleRequest.ts",m.updateUserRoleRequest()),d("src/lib/dtos/DeleteUserRequest.ts",m.deleteUserRequest()),d("src/lib/dtos/CreateRoleRequest.ts",m.createRoleRequest()),d("src/lib/dtos/DeleteRoleRequest.ts",m.deleteRoleRequest()),d("src/lib/dtos/CreatePermissionRequest.ts",m.createPermissionRequest()),d("src/lib/dtos/DeletePermissionRequest.ts",m.deletePermissionRequest()),d("src/lib/dtos/RolePermissionRequest.ts",m.rolePermissionRequest()),d("src/lib/dtos/UserRoleRequest.ts",m.userRoleRequest()),d("src/lib/dtos/UserPermissionRequest.ts",m.userPermissionRequest()),d("src/lib/dtos/ExportDataRequest.ts",m.exportDataRequest()),d("src/lib/actions/RegisterUserAction.ts",m.registerUserAction()),d("src/lib/actions/CreatePostAction.ts",m.createPostAction()),d("src/lib/auth/gates.ts",m.gates()),d("src/lib/schemas/auth.ts",m.authSchema()),d("src/lib/schemas/post.ts",m.postSchema()),d("src/lib/schemas/admin.ts",m.adminSchema()),d("src/lib/services/AdminService.ts",m.adminService()),d("src/lib/resources/RoleResource.ts",m.roleResource()),d("src/lib/resources/PermissionResource.ts",m.permissionResource()),d("src/lib/shared/providers/EventServiceProvider.ts",m.eventServiceProvider()),d("src/lib/resources/UserResource.ts",m.userResource()),d("src/lib/resources/PostResource.ts",m.postResource()),d("src/lib/events/UserRegistered.ts",m.userRegisteredEvent()),d("src/lib/listeners/SendWelcomeEmailListener.ts",m.sendWelcomeEmailListener()),d("src/lib/notifications/WelcomeNotification.ts",m.welcomeNotification()),this.info("Creating migrations..."),d("src/lib/database/migrations/00000001_create_users_table.ts",m.createUsersTable()),d("src/lib/database/migrations/00000002_create_posts_table.ts",m.createPostsTable()),d("src/lib/database/migrations/00000003_create_permissions_tables.ts",m.createPermissionsTables()),d("src/lib/database/migrations/00000004_add_role_to_users.ts",m.addRoleToUsers()),d("src/lib/database/migrations/00000005_create_sessions_table.ts",m.createSessionsTable()),d("src/lib/database/migrations/00000006_create_audit_logs_table.ts",m.createAuditLogsTable()),d("src/lib/database/migrations/00000007_create_notifications_table.ts",m.createNotificationsTable()),d("src/lib/database/migrations/00000008_create_failed_jobs_table.ts",m.createFailedJobsTable()),d("src/lib/database/seeders/DatabaseSeeder.ts",m.databaseSeeder()),this.info("Creating auth pages..."),d("src/routes/login/+page.server.ts",m.loginPageServer()),d("src/routes/login/+page.svelte",m.loginPageSvelte()),d("src/routes/register/+page.server.ts",m.registerPageServer()),d("src/routes/register/+page.svelte",m.registerPageSvelte()),d("src/routes/logout/+page.server.ts",m.logoutPageServer()),d("src/routes/forgot-password/+page.server.ts",m.forgotPasswordPageServer()),d("src/routes/forgot-password/+page.svelte",m.forgotPasswordPageSvelte()),d("src/routes/reset-password/+page.server.ts",m.resetPasswordPageServer()),d("src/routes/reset-password/+page.svelte",m.resetPasswordPageSvelte()),d("src/routes/otp-login/+page.server.ts",m.otpLoginPageServer()),d("src/routes/otp-login/+page.svelte",m.otpLoginPageSvelte()),d("src/routes/verify-email/+page.server.ts",m.verifyEmailPageServer()),d("src/routes/verify-email/+page.svelte",m.verifyEmailPageSvelte()),this.info("Creating dashboard..."),d("src/routes/dashboard/+layout.server.ts",m.dashboardLayoutServer()),d("src/routes/dashboard/+page.server.ts",m.dashboardPageServer()),d("src/routes/dashboard/+page.svelte",m.dashboardPageSvelte()),d("src/routes/dashboard/api-keys/+page.server.ts",m.apiKeysPageServer()),d("src/routes/dashboard/api-keys/+page.svelte",m.apiKeysPageSvelte()),d("src/routes/dashboard/team/+page.server.ts",m.teamPageServer()),d("src/routes/dashboard/team/+page.svelte",m.teamPageSvelte()),this.info("Creating admin panel..."),d("src/routes/admin/+layout.server.ts",m.adminLayoutServer()),d("src/routes/admin/+page.server.ts",m.adminPageServer()),d("src/routes/admin/+page.svelte",m.adminPageSvelte()),this.info("Creating API routes..."),d("src/routes/api/health/+server.ts",m.apiHealth()),d("src/routes/api/auth/register/+server.ts",m.apiAuthRegister()),d("src/routes/api/auth/login/+server.ts",m.apiAuthLogin()),d("src/routes/api/auth/logout/+server.ts",m.apiAuthLogout()),d("src/routes/api/auth/me/+server.ts",m.apiAuthMe()),d("src/routes/api/auth/forgot-password/+server.ts",m.apiAuthForgotPassword()),d("src/routes/api/auth/reset-password/+server.ts",m.apiAuthResetPassword()),d("src/routes/api/auth/otp/send/+server.ts",m.apiAuthOtpSend()),d("src/routes/api/auth/otp/verify/+server.ts",m.apiAuthOtpVerify()),d("src/routes/api/auth/verify-email/+server.ts",m.apiAuthVerifyEmail()),d("src/routes/api/posts/+server.ts",m.apiPosts()),d("src/routes/api/posts/[id]/+server.ts",m.apiPostsSingle()),d("src/routes/api/posts/mine/+server.ts",m.apiPostsMine()),d("src/routes/api/broadcasting/[channel]/+server.ts",m.apiBroadcasting()),d("src/routes/api/internal/broadcast/+server.ts",m.apiInternalBroadcast()),d("src/routes/api/admin/users/+server.ts",m.apiAdminUsers()),d("src/routes/api/admin/roles/+server.ts",m.apiAdminRoles()),d("src/routes/api/admin/permissions/+server.ts",m.apiAdminPermissions()),d("src/routes/api/admin/role-permissions/+server.ts",m.apiAdminRolePermissions()),d("src/routes/api/admin/user-roles/+server.ts",m.apiAdminUserRoles()),d("src/routes/api/admin/user-permissions/+server.ts",m.apiAdminUserPermissions()),d("src/routes/api/admin/export/+server.ts",m.apiAdminExport()),this.info("Creating background jobs..."),d("src/lib/shared/jobs/SendWelcomeEmail.ts",m.sendWelcomeEmail()),d("src/lib/shared/jobs/DailyDigestJob.ts",m.dailyDigestJob()),d("src/lib/shared/jobs/ExportDataJob.ts",m.exportDataJob()),this.info("Creating scheduled tasks..."),d("src/lib/shared/scheduler/CleanupExpiredTokens.ts",m.cleanupExpiredTokens()),d("src/lib/shared/scheduler/CleanExpiredSessions.ts",m.cleanExpiredSessions()),d("src/lib/shared/scheduler/DailyDigestEmail.ts",m.dailyDigestEmail()),d("src/lib/shared/scheduler/PruneAuditLogs.ts",m.pruneAuditLogs()),d("src/lib/shared/scheduler/QueueHealthCheck.ts",m.queueHealthCheck()),this.info("Creating layouts..."),d("src/routes/+layout.svelte",m.rootLayoutSvelte(c)),d("src/routes/+layout.server.ts",m.rootLayoutServer()),d("src/routes/+error.svelte",m.errorSvelte()),d("src/routes/+page.svelte",m.homePage(c)),this.success("Project structure created"),!t["no-install"]){this.info("Installing dependencies...");try{o("npm install",{cwd:u,stdio:"inherit"}),this.success("Dependencies installed")}catch{this.warn("npm install failed \u2014 run it manually with: cd "+c+" && npm install")}this.info("Running migrations...");try{o("npx svelar migrate",{cwd:u,stdio:"inherit"}),this.success("Migrations complete")}catch{this.warn("Migrations failed \u2014 run manually: cd "+c+" && npx svelar migrate")}this.info("Seeding database...");try{o("npx svelar seed:run",{cwd:u,stdio:"inherit"}),this.success("Database seeded")}catch{this.warn("Seeding failed \u2014 run manually: cd "+c+" && npx svelar seed:run")}}this.log(""),this.log(` \x1B[32m+\x1B[0m Project \x1B[1m${c}\x1B[0m created successfully!
|
|
5850
5850
|
`),this.log(` Next steps:
|
|
5851
5851
|
`),this.log(` cd ${c}`),t["no-install"]&&(this.log(" npm install"),this.log(" npx svelar migrate"),this.log(" npx svelar seed:run")),this.log(" npm run dev"),this.log(""),this.log(" Default accounts:"),this.log(" Admin: admin@svelar.dev / admin123"),this.log(" Demo: demo@svelar.dev / password"),this.log("")}};var ss=class extends h{name="key:generate";description="Generate a new APP_KEY and set it in .env";flags=[{name:"show",alias:"s",description:"Only display the key, do not write to .env",type:"boolean",default:!1},{name:"force",alias:"f",description:"Overwrite existing APP_KEY",type:"boolean",default:!1}];async handle(e,t){let{randomBytes:s}=await import("crypto"),{join:r}=await import("path"),{existsSync:n,readFileSync:i,writeFileSync:a}=await import("fs"),o=s(32).toString("hex");if(t.show){this.log(`
|
|
5852
5852
|
APP_KEY=${o}
|
|
5853
5853
|
`);return}let c=r(process.cwd(),".env");if(!n(c)){let p=r(process.cwd(),".env.example");if(n(p)){let f=i(p,"utf-8");f=f.replace(/^APP_KEY=.*$/m,`APP_KEY=${o}`),a(c,f),this.success("Application key set (created .env from .env.example).")}else a(c,`APP_KEY=${o}
|
|
5854
5854
|
`),this.success("Application key set (created .env).");return}let u=i(c,"utf-8"),d=u.match(/^APP_KEY=(.*)$/m);if(d&&d[1]&&d[1]!=="change-me-to-a-random-string"&&!t.force){this.warn("APP_KEY already set. Use --force to overwrite.");return}if(d){let p=u.replace(/^APP_KEY=.*$/m,`APP_KEY=${o}`);a(c,p)}else a(c,`APP_KEY=${o}
|
|
5855
5855
|
${u}`);this.success("Application key set.")}};var ns=class extends h{name="plugin:list";description="List all discovered and enabled plugins";arguments=[];flags=[];async handle(e,t){try{let{PluginRegistry:s}=await Promise.resolve().then(()=>(is(),Sr)),r=s;await r.discover();let n=r.list();if(n.length===0){this.info("No plugins discovered.");return}let i=["Name","Version","Description","Status","Config","Migrations"],a=n.map(o=>[o.name,o.version,o.description||"-",o.enabled?"\u2713 Enabled":" Disabled",o.hasConfig?"\u2713":"-",o.hasMigrations?"\u2713":"-"]);this.newLine(),this.table(i,a),this.newLine(),this.info(`Total: ${n.length} plugin(s)`)}catch(s){this.error(`Failed to list plugins: ${s?.message??String(s)}`)}}};var as=class extends h{name="plugin:publish";description="Publish a plugin's config and migration files";arguments=["name"];flags=[{name:"force",alias:"f",description:"Overwrite existing files",type:"boolean"},{name:"only",alias:"o",description:"Publish only config|migrations|assets",type:"string"}];async handle(e,t){let s=e[0];if(!s){this.error("Please provide a plugin name.");return}try{let{PluginRegistry:r}=await Promise.resolve().then(()=>(is(),Sr)),{PluginPublisher:n}=await Promise.resolve().then(()=>(Er(),dn)),i=r,a=n;await i.discover();let o=i.get(s);if(!o){this.error(`Plugin "${s}" not found.`);return}let c=await this.loadPluginClass(o.packageName);if(!c){this.error(`Failed to load plugin class for "${s}".`);return}let u=new c,d={force:t.force||!1,only:t.only};this.info(`Publishing plugin: ${s}`);let p=await a.publish(u,d);this.newLine(),p.configs.length>0&&(this.success(`${p.configs.length} config file(s) published:`),p.configs.forEach(f=>this.log(` - ${f}`))),p.migrations.length>0&&(this.success(`${p.migrations.length} migration file(s) published:`),p.migrations.forEach(f=>this.log(` - ${f}`))),p.assets.length>0&&(this.success(`${p.assets.length} asset file(s) published:`),p.assets.forEach(f=>this.log(` - ${f}`))),p.configs.length===0&&p.migrations.length===0&&p.assets.length===0&&this.warn("No publishable files found for this plugin."),this.newLine()}catch(r){this.error(`Failed to publish plugin: ${r?.message??String(r)}`)}}async loadPluginClass(e){try{let t=await import(e);return t.default||Object.values(t)[0]}catch{return null}}};var os=class extends h{name="plugin:install";description="Install a plugin from npm";arguments=["package"];flags=[{name:"no-publish",alias:"n",description:"Skip auto-publishing plugin assets",type:"boolean"}];async handle(e,t){let s=e[0];if(!s){this.error("Please provide a package name.");return}try{let{PluginInstaller:r}=await Promise.resolve().then(()=>(mn(),un)),n=r;this.info(`Installing plugin package: ${s}`),this.newLine();let i=await n.install(s,{publish:!t["no-publish"]});this.newLine(),i.success?(this.success(`Plugin installed: ${i.pluginName} (v${i.version})`),i.published&&(i.published.configs.length>0&&this.info(`${i.published.configs.length} config file(s) published`),i.published.migrations.length>0&&this.info(`${i.published.migrations.length} migration file(s) published`),i.published.assets.length>0&&this.info(`${i.published.assets.length} asset file(s) published`)),this.newLine(),this.log("You can now use the plugin in your application by registering it in your app bootstrap code.")):this.error(`Failed to install plugin: ${i.error}`),this.newLine()}catch(r){this.error(`Installation error: ${r?.message??String(r)}`)}}};var pn=$r(process.cwd(),".env");if(wo(pn))for(let l of fn(pn,"utf-8").split(`
|
|
5856
|
-
`)){let e=l.trim();if(!e||e.startsWith("#"))continue;let t=e.indexOf("=");if(t===-1)continue;let s=e.slice(0,t).trim(),r=e.slice(t+1).trim();(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))&&(r=r.slice(1,-1)),s in process.env||(process.env[s]=r)}var xo=hn(gn(import.meta.url));bo(vo($r(xo,"ts-resolve-hook.mjs")).href,import.meta.url);var Co=hn(gn(import.meta.url)),Po=$r(Co,"..","package.json"),So=JSON.parse(fn(Po,"utf-8")),b=new ze(So.version);b.register(ts);b.register(ss);b.register(Ke);b.register(We);b.register(Je);b.register(Ve);b.register(Qe);b.register(Ge);b.register(Ye);b.register(Xe);b.register(Ze);b.register(et);b.register(dt);b.register(ut);b.register(tt);b.register(st);b.register(rt);b.register(it);b.register(nt);b.register(at);b.register(ot);b.register(lt);b.register(ct);b.register(mt);b.register(pt);b.register(ht);b.register(gt);b.register(ft);b.register(yt);b.register(vt);b.register(xt);b.register(St);b.register(Tt);b.register(Rt);b.register(Et);b.register(es);b.register(ns);b.register(as);b.register(os);async function To(){let{join:l}=await import("path"),{existsSync:e,readdirSync:t}=await import("fs"),{pathToFileURL:s}=await import("url"),r=l(process.cwd(),"src","lib","shared","commands");if(!e(r))return;let n=t(r).filter(i=>(i.endsWith(".ts")||i.endsWith(".js"))&&!i.startsWith("."));for(let i of n)try{let a=l(r,i),c=await import(s(a).href),u=c.default??Object.values(c).find(d=>typeof d=="function"&&d.prototype&&"handle"in d.prototype);u&&typeof u=="function"&&b.add(new u)}catch{}}To().then(()=>b.run());
|
|
5856
|
+
`)){let e=l.trim();if(!e||e.startsWith("#"))continue;let t=e.indexOf("=");if(t===-1)continue;let s=e.slice(0,t).trim(),r=e.slice(t+1).trim();(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))&&(r=r.slice(1,-1)),s in process.env||(process.env[s]=r)}var xo=hn(gn(import.meta.url));bo(vo($r(xo,"ts-resolve-hook.mjs")).href,import.meta.url);var Co=hn(gn(import.meta.url)),Po=$r(Co,"..","..","package.json"),So=JSON.parse(fn(Po,"utf-8")),b=new ze(So.version);b.register(ts);b.register(ss);b.register(Ke);b.register(We);b.register(Je);b.register(Ve);b.register(Qe);b.register(Ge);b.register(Ye);b.register(Xe);b.register(Ze);b.register(et);b.register(dt);b.register(ut);b.register(tt);b.register(st);b.register(rt);b.register(it);b.register(nt);b.register(at);b.register(ot);b.register(lt);b.register(ct);b.register(mt);b.register(pt);b.register(ht);b.register(gt);b.register(ft);b.register(yt);b.register(vt);b.register(xt);b.register(St);b.register(Tt);b.register(Rt);b.register(Et);b.register(es);b.register(ns);b.register(as);b.register(os);async function To(){let{join:l}=await import("path"),{existsSync:e,readdirSync:t}=await import("fs"),{pathToFileURL:s}=await import("url"),r=l(process.cwd(),"src","lib","shared","commands");if(!e(r))return;let n=t(r).filter(i=>(i.endsWith(".ts")||i.endsWith(".js"))&&!i.startsWith("."));for(let i of n)try{let a=l(r,i),c=await import(s(a).href),u=c.default??Object.values(c).find(d=>typeof d=="function"&&d.prototype&&"handle"in d.prototype);u&&typeof u=="function"&&b.add(new u)}catch{}}To().then(()=>b.run());
|