Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 60 additions & 23 deletions packages/core/src/routes/admin-plugins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const AVAILABLE_PLUGINS = [
version: '2.0.0',
author: 'Community Developer',
category: 'content',
icon: '',
icon: '❓',
permissions: ['manage:faqs'],
dependencies: [],
is_core: false
Expand All @@ -36,7 +36,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0-beta.1',
author: 'SonicJS',
category: 'demo',
icon: '🎯',
icon: '🎯',
permissions: [],
dependencies: [],
is_core: false
Expand All @@ -49,7 +49,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'system',
icon: '🗄️',
icon: '🗄️',
permissions: ['manage:database', 'admin'],
dependencies: [],
is_core: false
Expand All @@ -62,7 +62,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'development',
icon: '🌱',
icon: '🌱',
permissions: ['admin'],
dependencies: [],
is_core: false
Expand All @@ -75,7 +75,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '✍️',
icon: '✍️',
permissions: [],
dependencies: [],
is_core: true
Expand All @@ -88,7 +88,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '📝',
icon: '📝',
permissions: [],
dependencies: [],
is_core: false
Expand All @@ -101,7 +101,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '📝',
icon: '📝',
permissions: [],
dependencies: [],
is_core: false
Expand All @@ -114,7 +114,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0',
author: 'SonicJS Team',
category: 'security',
icon: '🛡️',
icon: '🛡️',
permissions: [],
dependencies: [],
is_core: true
Expand All @@ -127,7 +127,7 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'security',
icon: '🛡️',
icon: '🛡️',
permissions: ['security-audit:view', 'security-audit:manage'],
dependencies: [],
is_core: false
Expand All @@ -140,10 +140,23 @@ const AVAILABLE_PLUGINS = [
version: '1.0.0',
author: 'SonicJS Team',
category: 'search',
icon: '🔍',
icon: '🔍',
permissions: [],
dependencies: [],
is_core: true
},
{
id: 'form-builder',
name: 'form-builder',
display_name: 'Form Builder',
description: 'Drag-and-drop form builder with conditional logic, file uploads, and email notifications. Create contact forms, surveys, and data collection forms.',
version: '1.0.0',
author: 'SonicJS Team',
category: 'content',
icon: '\u{1F4DD}',
permissions: ['forms:create', 'forms:manage', 'forms:submissions'],
dependencies: [],
is_core: false
}
]

Expand Down Expand Up @@ -418,7 +431,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '2.0.0',
author: 'Community Developer',
category: 'content',
icon: '',
icon: '❓',
permissions: ['manage:faqs'],
dependencies: [],
settings: {
Expand All @@ -441,7 +454,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS',
category: 'demo',
icon: '🎯',
icon: '🎯',
permissions: [],
dependencies: [],
settings: {
Expand All @@ -464,7 +477,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'security',
icon: '🔐',
icon: '🔐',
permissions: ['manage:users', 'manage:roles', 'manage:permissions'],
dependencies: [],
is_core: true,
Expand All @@ -484,7 +497,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'media',
icon: '📸',
icon: '📸',
permissions: ['manage:media', 'upload:files'],
dependencies: [],
is_core: true,
Expand All @@ -504,7 +517,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'content',
icon: '🔄',
icon: '🔄',
permissions: ['manage:workflows', 'approve:content'],
dependencies: [],
is_core: true,
Expand All @@ -524,7 +537,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'system',
icon: '🗄️',
icon: '🗄️',
permissions: ['manage:database', 'admin'],
dependencies: [],
is_core: false,
Expand All @@ -549,7 +562,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'development',
icon: '🌱',
icon: '🌱',
permissions: ['admin'],
dependencies: [],
is_core: false,
Expand All @@ -573,7 +586,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '✍️',
icon: '✍️',
permissions: [],
dependencies: [],
is_core: true,
Expand All @@ -598,7 +611,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '📝',
icon: '📝',
permissions: [],
dependencies: [],
is_core: false,
Expand All @@ -623,7 +636,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0',
author: 'SonicJS Team',
category: 'editor',
icon: '📝',
icon: '📝',
permissions: [],
dependencies: [],
is_core: false,
Expand All @@ -648,7 +661,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0-beta.1',
author: 'SonicJS Team',
category: 'security',
icon: '🛡️',
icon: '🛡️',
permissions: ['security-audit:view', 'security-audit:manage'],
dependencies: [],
is_core: false,
Expand Down Expand Up @@ -700,7 +713,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0',
author: 'SonicJS Team',
category: 'search',
icon: '🔍',
icon: '🔍',
permissions: [],
dependencies: [],
is_core: true,
Expand All @@ -720,7 +733,7 @@ adminPluginRoutes.post('/install', async (c) => {
version: '1.0.0',
author: 'SonicJS Team',
category: 'security',
icon: '🛡️',
icon: '🛡️',
permissions: [],
dependencies: [],
is_core: true,
Expand All @@ -740,6 +753,30 @@ adminPluginRoutes.post('/install', async (c) => {
return c.json({ success: true, plugin: turnstilePlugin })
}

// Handle Form Builder plugin installation
if (body.name === 'form-builder') {
const formBuilderPlugin = await pluginService.installPlugin({
id: 'form-builder',
name: 'form-builder',
display_name: 'Form Builder',
description: 'Drag-and-drop form builder with conditional logic, file uploads, and email notifications. Create contact forms, surveys, and data collection forms.',
version: '1.0.0',
author: 'SonicJS Team',
category: 'content',
icon: '\u{1F4DD}',
permissions: ['forms:create', 'forms:manage', 'forms:submissions'],
dependencies: [],
settings: {
enableNotifications: true,
enableFileUploads: true,
maxSubmissionsPerForm: 0,
submissionRetentionDays: 90
}
})

return c.json({ success: true, plugin: formBuilderPlugin })
}

return c.json({ error: 'Plugin not found in registry' }, 404)
} catch (error) {
console.error('Error installing plugin:', error)
Expand Down
Loading