@sonicjs-cms/core 1.0.0-alpha.4 → 2.0.0-alpha.10

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 (90) hide show
  1. package/README.md +268 -166
  2. package/dist/chunk-3MNMOLSA.js +133 -0
  3. package/dist/chunk-3MNMOLSA.js.map +1 -0
  4. package/dist/chunk-4USDL3UP.cjs +15565 -0
  5. package/dist/chunk-4USDL3UP.cjs.map +1 -0
  6. package/dist/{chunk-CXZDAR6S.js → chunk-7N3HK7ZK.js} +3 -3
  7. package/dist/{chunk-CXZDAR6S.js.map → chunk-7N3HK7ZK.js.map} +1 -1
  8. package/dist/chunk-AGOE25LF.cjs +137 -0
  9. package/dist/chunk-AGOE25LF.cjs.map +1 -0
  10. package/dist/{chunk-NRSL6BQI.js → chunk-BITQ4MFX.js} +3 -3
  11. package/dist/{chunk-NRSL6BQI.js.map → chunk-BITQ4MFX.js.map} +1 -1
  12. package/dist/{chunk-24PWAFUT.cjs → chunk-BUKT6HP5.cjs} +13 -13
  13. package/dist/{chunk-24PWAFUT.cjs.map → chunk-BUKT6HP5.cjs.map} +1 -1
  14. package/dist/{chunk-L3NXO7Y4.cjs → chunk-FVMV5DKA.cjs} +49 -49
  15. package/dist/{chunk-L3NXO7Y4.cjs.map → chunk-FVMV5DKA.cjs.map} +1 -1
  16. package/dist/chunk-GGBHOIDD.js +15552 -0
  17. package/dist/chunk-GGBHOIDD.js.map +1 -0
  18. package/dist/{chunk-EMMSS5I5.cjs → chunk-IGJUBJBW.cjs} +8 -2
  19. package/dist/{chunk-ALTMI5Y2.cjs.map → chunk-IGJUBJBW.cjs.map} +1 -1
  20. package/dist/{chunk-WJ7QYVR2.cjs → chunk-RNR4HA23.cjs} +4 -4
  21. package/dist/{chunk-WJ7QYVR2.cjs.map → chunk-RNR4HA23.cjs.map} +1 -1
  22. package/dist/{chunk-G3PMV62Z.js → chunk-V4OQ3NZ2.js} +7 -3
  23. package/dist/{chunk-G3PMV62Z.js.map → chunk-V4OQ3NZ2.js.map} +1 -1
  24. package/dist/{chunk-PTQZ5FEI.js → chunk-WESS2U3K.js} +3 -3
  25. package/dist/{chunk-PTQZ5FEI.js.map → chunk-WESS2U3K.js.map} +1 -1
  26. package/dist/index.cjs +105 -92
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.js +22 -8
  29. package/dist/index.js.map +1 -1
  30. package/dist/middleware.cjs +23 -23
  31. package/dist/middleware.js +3 -3
  32. package/dist/plugins.cjs +8 -8
  33. package/dist/plugins.js +2 -2
  34. package/dist/routes.cjs +51 -3
  35. package/dist/routes.js +6 -2
  36. package/dist/services.cjs +31 -19
  37. package/dist/services.js +3 -3
  38. package/dist/templates.cjs +1 -1
  39. package/dist/templates.js +1 -1
  40. package/dist/types.cjs +1 -1
  41. package/dist/types.js +1 -1
  42. package/dist/utils.cjs +1 -1
  43. package/dist/utils.js +1 -1
  44. package/migrations/001_initial_schema.sql +198 -0
  45. package/migrations/002_faq_plugin.sql +86 -0
  46. package/migrations/003_stage5_enhancements.sql +121 -0
  47. package/migrations/004_stage6_user_management.sql +183 -0
  48. package/migrations/005_stage7_workflow_automation.sql +294 -0
  49. package/migrations/006_plugin_system.sql +155 -0
  50. package/migrations/007_demo_login_plugin.sql +23 -0
  51. package/migrations/008_fix_slug_validation.sql +22 -0
  52. package/migrations/009_system_logging.sql +57 -0
  53. package/migrations/011_config_managed_collections.sql +14 -0
  54. package/migrations/012_testimonials_plugin.sql +80 -0
  55. package/migrations/013_code_examples_plugin.sql +177 -0
  56. package/migrations/014_fix_plugin_registry.sql +88 -0
  57. package/migrations/015_add_remaining_plugins.sql +89 -0
  58. package/migrations/016_remove_duplicate_cache_plugin.sql +17 -0
  59. package/migrations/017_auth_configurable_fields.sql +49 -0
  60. package/package.json +24 -24
  61. package/dist/chunk-4URGXJP7.js +0 -3
  62. package/dist/chunk-4URGXJP7.js.map +0 -1
  63. package/dist/chunk-ALTMI5Y2.cjs +0 -4
  64. package/dist/chunk-BOLQHE4J.cjs +0 -11
  65. package/dist/chunk-BOLQHE4J.cjs.map +0 -1
  66. package/dist/chunk-EMMSS5I5.cjs.map +0 -1
  67. package/dist/chunk-HD7R6T6I.js +0 -9
  68. package/dist/chunk-HD7R6T6I.js.map +0 -1
  69. package/dist/collection-config-FLlGtsh9.d.cts +0 -107
  70. package/dist/collection-config-FLlGtsh9.d.ts +0 -107
  71. package/dist/index-BlsY5XNH.d.ts +0 -8333
  72. package/dist/index-D45jaIlr.d.cts +0 -8333
  73. package/dist/index.d.cts +0 -136
  74. package/dist/index.d.ts +0 -136
  75. package/dist/middleware.d.cts +0 -206
  76. package/dist/middleware.d.ts +0 -206
  77. package/dist/plugin-UzmDImQc.d.cts +0 -357
  78. package/dist/plugin-UzmDImQc.d.ts +0 -357
  79. package/dist/plugins.d.cts +0 -330
  80. package/dist/plugins.d.ts +0 -330
  81. package/dist/routes.d.cts +0 -17
  82. package/dist/routes.d.ts +0 -17
  83. package/dist/services.d.cts +0 -5
  84. package/dist/services.d.ts +0 -5
  85. package/dist/templates.d.cts +0 -140
  86. package/dist/templates.d.ts +0 -140
  87. package/dist/types.d.cts +0 -41
  88. package/dist/types.d.ts +0 -41
  89. package/dist/utils.d.cts +0 -184
  90. package/dist/utils.d.ts +0 -184
@@ -0,0 +1,177 @@
1
+ -- Code Examples Plugin Migration
2
+ -- Creates code_examples table for the code examples plugin
3
+ -- This demonstrates a code-based collection for storing and managing code snippets
4
+
5
+ CREATE TABLE IF NOT EXISTS code_examples (
6
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
7
+ title TEXT NOT NULL,
8
+ description TEXT,
9
+ code TEXT NOT NULL,
10
+ language TEXT NOT NULL,
11
+ category TEXT,
12
+ tags TEXT,
13
+ isPublished INTEGER NOT NULL DEFAULT 1,
14
+ sortOrder INTEGER NOT NULL DEFAULT 0,
15
+ created_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
16
+ updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
17
+ );
18
+
19
+ -- Create indexes for better performance
20
+ CREATE INDEX IF NOT EXISTS idx_code_examples_published ON code_examples(isPublished);
21
+ CREATE INDEX IF NOT EXISTS idx_code_examples_sort_order ON code_examples(sortOrder);
22
+ CREATE INDEX IF NOT EXISTS idx_code_examples_language ON code_examples(language);
23
+ CREATE INDEX IF NOT EXISTS idx_code_examples_category ON code_examples(category);
24
+
25
+ -- Create trigger to update updated_at timestamp
26
+ CREATE TRIGGER IF NOT EXISTS code_examples_updated_at
27
+ AFTER UPDATE ON code_examples
28
+ BEGIN
29
+ UPDATE code_examples SET updated_at = strftime('%s', 'now') WHERE id = NEW.id;
30
+ END;
31
+
32
+ -- Insert plugin record
33
+ INSERT OR IGNORE INTO plugins (name, display_name, description, version, status, category, settings) VALUES
34
+ ('code-examples',
35
+ 'Code Examples',
36
+ 'Manage code snippets and examples with syntax highlighting support. Perfect for documentation and tutorials.',
37
+ '1.0.0',
38
+ 'active',
39
+ 'content',
40
+ '{"defaultPublished": true, "supportedLanguages": ["javascript", "typescript", "python", "go", "rust", "java", "php", "ruby", "sql"]}');
41
+
42
+ -- Insert sample code examples
43
+ INSERT OR IGNORE INTO code_examples (title, description, code, language, category, tags, isPublished, sortOrder) VALUES
44
+ ('React useState Hook',
45
+ 'Basic example of using the useState hook in React for managing component state.',
46
+ 'import { useState } from ''react'';
47
+
48
+ function Counter() {
49
+ const [count, setCount] = useState(0);
50
+
51
+ return (
52
+ <div>
53
+ <p>Count: {count}</p>
54
+ <button onClick={() => setCount(count + 1)}>
55
+ Increment
56
+ </button>
57
+ </div>
58
+ );
59
+ }
60
+
61
+ export default Counter;',
62
+ 'javascript',
63
+ 'frontend',
64
+ 'react,hooks,state',
65
+ 1,
66
+ 1),
67
+
68
+ ('TypeScript Interface Example',
69
+ 'Defining a TypeScript interface for type-safe objects.',
70
+ 'interface User {
71
+ id: string;
72
+ email: string;
73
+ name: string;
74
+ role: ''admin'' | ''editor'' | ''viewer'';
75
+ createdAt: Date;
76
+ }
77
+
78
+ function greetUser(user: User): string {
79
+ return `Hello, ${user.name}!`;
80
+ }
81
+
82
+ const user: User = {
83
+ id: ''123'',
84
+ email: ''user@example.com'',
85
+ name: ''John Doe'',
86
+ role: ''admin'',
87
+ createdAt: new Date()
88
+ };
89
+
90
+ console.log(greetUser(user));',
91
+ 'typescript',
92
+ 'backend',
93
+ 'typescript,types,interface',
94
+ 1,
95
+ 2),
96
+
97
+ ('Python List Comprehension',
98
+ 'Elegant way to create lists in Python using list comprehensions.',
99
+ '# Basic list comprehension
100
+ squares = [x**2 for x in range(10)]
101
+ print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
102
+
103
+ # With condition
104
+ even_squares = [x**2 for x in range(10) if x % 2 == 0]
105
+ print(even_squares) # [0, 4, 16, 36, 64]
106
+
107
+ # Nested list comprehension
108
+ matrix = [[i+j for j in range(3)] for i in range(3)]
109
+ print(matrix) # [[0, 1, 2], [1, 2, 3], [2, 3, 4]]',
110
+ 'python',
111
+ 'general',
112
+ 'python,lists,comprehension',
113
+ 1,
114
+ 3),
115
+
116
+ ('SQL Join Example',
117
+ 'Common SQL JOIN patterns for combining data from multiple tables.',
118
+ '-- INNER JOIN: Returns only matching rows
119
+ SELECT users.name, orders.total
120
+ FROM users
121
+ INNER JOIN orders ON users.id = orders.user_id;
122
+
123
+ -- LEFT JOIN: Returns all users, even without orders
124
+ SELECT users.name, orders.total
125
+ FROM users
126
+ LEFT JOIN orders ON users.id = orders.user_id;
127
+
128
+ -- Multiple JOINs
129
+ SELECT
130
+ users.name,
131
+ orders.order_date,
132
+ products.name AS product_name
133
+ FROM users
134
+ INNER JOIN orders ON users.id = orders.user_id
135
+ INNER JOIN order_items ON orders.id = order_items.order_id
136
+ INNER JOIN products ON order_items.product_id = products.id;',
137
+ 'sql',
138
+ 'database',
139
+ 'sql,joins,queries',
140
+ 1,
141
+ 4),
142
+
143
+ ('Go Error Handling',
144
+ 'Idiomatic error handling pattern in Go.',
145
+ 'package main
146
+
147
+ import (
148
+ "errors"
149
+ "fmt"
150
+ )
151
+
152
+ func divide(a, b float64) (float64, error) {
153
+ if b == 0 {
154
+ return 0, errors.New("division by zero")
155
+ }
156
+ return a / b, nil
157
+ }
158
+
159
+ func main() {
160
+ result, err := divide(10, 2)
161
+ if err != nil {
162
+ fmt.Println("Error:", err)
163
+ return
164
+ }
165
+ fmt.Printf("Result: %.2f\n", result)
166
+
167
+ // This will error
168
+ _, err = divide(10, 0)
169
+ if err != nil {
170
+ fmt.Println("Error:", err)
171
+ }
172
+ }',
173
+ 'go',
174
+ 'backend',
175
+ 'go,error-handling,functions',
176
+ 1,
177
+ 5);
@@ -0,0 +1,88 @@
1
+ -- Fix Plugin Registry
2
+ -- Migration: 014_fix_plugin_registry
3
+ -- Description: Add missing plugins and fix plugin name mismatches
4
+
5
+ -- Note: Cannot easily update plugin names as they may be referenced elsewhere
6
+ -- Instead we'll add the missing plugins with correct names
7
+
8
+ -- Insert missing plugins
9
+
10
+ -- Core Analytics Plugin
11
+ INSERT OR IGNORE INTO plugins (
12
+ id, name, display_name, description, version, author, category, icon,
13
+ status, is_core, permissions, installed_at, last_updated
14
+ ) VALUES (
15
+ 'core-analytics',
16
+ 'core-analytics',
17
+ 'Analytics & Tracking',
18
+ 'Core analytics tracking and reporting plugin with page views and event tracking',
19
+ '1.0.0',
20
+ 'SonicJS Team',
21
+ 'analytics',
22
+ '📊',
23
+ 'active',
24
+ TRUE,
25
+ '["view:analytics", "manage:tracking"]',
26
+ unixepoch(),
27
+ unixepoch()
28
+ );
29
+
30
+ -- FAQ Plugin
31
+ INSERT OR IGNORE INTO plugins (
32
+ id, name, display_name, description, version, author, category, icon,
33
+ status, is_core, permissions, installed_at, last_updated
34
+ ) VALUES (
35
+ 'faq-plugin',
36
+ 'faq-plugin',
37
+ 'FAQ Management',
38
+ 'Frequently Asked Questions management plugin with categories, search, and custom styling',
39
+ '1.0.0',
40
+ 'SonicJS',
41
+ 'content',
42
+ '❓',
43
+ 'active',
44
+ FALSE,
45
+ '["manage:faqs"]',
46
+ unixepoch(),
47
+ unixepoch()
48
+ );
49
+
50
+ -- Seed Data Plugin
51
+ INSERT OR IGNORE INTO plugins (
52
+ id, name, display_name, description, version, author, category, icon,
53
+ status, is_core, permissions, installed_at, last_updated
54
+ ) VALUES (
55
+ 'seed-data',
56
+ 'seed-data',
57
+ 'Seed Data Generator',
58
+ 'Generate realistic example users and content for testing and development',
59
+ '1.0.0',
60
+ 'SonicJS Team',
61
+ 'development',
62
+ '🌱',
63
+ 'inactive',
64
+ FALSE,
65
+ '["admin"]',
66
+ unixepoch(),
67
+ unixepoch()
68
+ );
69
+
70
+ -- Database Tools Plugin
71
+ INSERT OR IGNORE INTO plugins (
72
+ id, name, display_name, description, version, author, category, icon,
73
+ status, is_core, permissions, installed_at, last_updated
74
+ ) VALUES (
75
+ 'database-tools',
76
+ 'database-tools',
77
+ 'Database Tools',
78
+ 'Database management tools including truncate, backup, and validation',
79
+ '1.0.0',
80
+ 'SonicJS Team',
81
+ 'system',
82
+ '🗄️',
83
+ 'active',
84
+ FALSE,
85
+ '["manage:database", "admin"]',
86
+ unixepoch(),
87
+ unixepoch()
88
+ );
@@ -0,0 +1,89 @@
1
+ -- Add Remaining Plugins
2
+ -- Migration: 015_add_remaining_plugins
3
+ -- Description: Add all remaining core plugins that were missing from the registry
4
+
5
+ -- Testimonials Plugin (with correct name)
6
+ INSERT OR IGNORE INTO plugins (
7
+ id, name, display_name, description, version, author, category, icon,
8
+ status, is_core, permissions, dependencies, settings, installed_at, last_updated
9
+ ) VALUES (
10
+ 'testimonials-plugin',
11
+ 'testimonials-plugin',
12
+ 'Customer Testimonials',
13
+ 'Manage customer testimonials and reviews with rating support',
14
+ '1.0.0',
15
+ 'SonicJS',
16
+ 'content',
17
+ '⭐',
18
+ 'active',
19
+ FALSE,
20
+ '["manage:testimonials"]',
21
+ '[]',
22
+ '{"defaultPublished": true, "requireRating": false}',
23
+ unixepoch(),
24
+ unixepoch()
25
+ );
26
+
27
+ -- Code Examples Plugin (with correct name)
28
+ INSERT OR IGNORE INTO plugins (
29
+ id, name, display_name, description, version, author, category, icon,
30
+ status, is_core, permissions, dependencies, settings, installed_at, last_updated
31
+ ) VALUES (
32
+ 'code-examples-plugin',
33
+ 'code-examples-plugin',
34
+ 'Code Examples',
35
+ 'Manage code snippets and examples with syntax highlighting support',
36
+ '1.0.0',
37
+ 'SonicJS',
38
+ 'content',
39
+ '💻',
40
+ 'active',
41
+ FALSE,
42
+ '["manage:code-examples"]',
43
+ '[]',
44
+ '{"defaultPublished": true, "supportedLanguages": ["javascript", "typescript", "python", "go", "rust", "java", "php", "ruby", "sql"]}',
45
+ unixepoch(),
46
+ unixepoch()
47
+ );
48
+
49
+ -- Workflow Plugin (with correct name)
50
+ INSERT OR IGNORE INTO plugins (
51
+ id, name, display_name, description, version, author, category, icon,
52
+ status, is_core, permissions, dependencies, installed_at, last_updated
53
+ ) VALUES (
54
+ 'workflow-plugin',
55
+ 'workflow-plugin',
56
+ 'Workflow Engine',
57
+ 'Content workflow management with approval chains, scheduling, and automation',
58
+ '1.0.0',
59
+ 'SonicJS Team',
60
+ 'content',
61
+ '🔄',
62
+ 'active',
63
+ TRUE,
64
+ '["manage:workflows", "approve:content"]',
65
+ '[]',
66
+ unixepoch(),
67
+ unixepoch()
68
+ );
69
+
70
+ -- Demo Login Plugin (already exists with correct name from migration 007, but let's ensure it's there)
71
+ INSERT OR IGNORE INTO plugins (
72
+ id, name, display_name, description, version, author, category, icon,
73
+ status, is_core, permissions, dependencies, installed_at, last_updated
74
+ ) VALUES (
75
+ 'demo-login-plugin',
76
+ 'demo-login-plugin',
77
+ 'Demo Login Prefill',
78
+ 'Prefills login form with demo credentials for easy site demonstration',
79
+ '1.0.0',
80
+ 'SonicJS',
81
+ 'demo',
82
+ '🎯',
83
+ 'active',
84
+ FALSE,
85
+ '[]',
86
+ '[]',
87
+ unixepoch(),
88
+ unixepoch()
89
+ );
@@ -0,0 +1,17 @@
1
+ -- Migration: Remove duplicate cache plugin entry
2
+ -- Description: Removes the old 'cache' plugin (id: 'cache') that is a duplicate of 'core-cache'
3
+ -- This fixes the issue where Cache System appears twice in the plugins list
4
+ -- Created: 2025-10-14
5
+
6
+ -- Remove the old 'cache' plugin entry if it exists
7
+ -- The correct plugin is 'core-cache' which is managed by plugin-bootstrap.ts
8
+ DELETE FROM plugins WHERE id = 'cache' AND name = 'cache';
9
+
10
+ -- Clean up any related entries in plugin activity log
11
+ DELETE FROM plugin_activity_log WHERE plugin_id = 'cache';
12
+
13
+ -- Clean up any related entries in plugin hooks
14
+ DELETE FROM plugin_hooks WHERE plugin_id = 'cache';
15
+
16
+ -- Clean up any related entries in plugin routes
17
+ DELETE FROM plugin_routes WHERE plugin_id = 'cache';
@@ -0,0 +1,49 @@
1
+ -- Migration: Make authentication fields configurable
2
+ -- This migration updates the core-auth plugin to support configurable required fields
3
+
4
+ -- The settings will be stored in the plugins table as JSON
5
+ -- Default settings for core-auth plugin include:
6
+ -- {
7
+ -- "requiredFields": {
8
+ -- "email": { "required": true, "minLength": 5 },
9
+ -- "password": { "required": true, "minLength": 8 },
10
+ -- "username": { "required": true, "minLength": 3 },
11
+ -- "firstName": { "required": true, "minLength": 1 },
12
+ -- "lastName": { "required": true, "minLength": 1 }
13
+ -- },
14
+ -- "validation": {
15
+ -- "emailFormat": true,
16
+ -- "allowDuplicateUsernames": false
17
+ -- }
18
+ -- }
19
+
20
+ -- Update core-auth plugin settings with configurable field requirements
21
+ UPDATE plugins
22
+ SET settings = json_object(
23
+ 'requiredFields', json_object(
24
+ 'email', json_object('required', 1, 'minLength', 5, 'label', 'Email', 'type', 'email'),
25
+ 'password', json_object('required', 1, 'minLength', 8, 'label', 'Password', 'type', 'password'),
26
+ 'username', json_object('required', 1, 'minLength', 3, 'label', 'Username', 'type', 'text'),
27
+ 'firstName', json_object('required', 1, 'minLength', 1, 'label', 'First Name', 'type', 'text'),
28
+ 'lastName', json_object('required', 1, 'minLength', 1, 'label', 'Last Name', 'type', 'text')
29
+ ),
30
+ 'validation', json_object(
31
+ 'emailFormat', 1,
32
+ 'allowDuplicateUsernames', 0,
33
+ 'passwordRequirements', json_object(
34
+ 'requireUppercase', 0,
35
+ 'requireLowercase', 0,
36
+ 'requireNumbers', 0,
37
+ 'requireSpecialChars', 0
38
+ )
39
+ ),
40
+ 'registration', json_object(
41
+ 'enabled', 1,
42
+ 'requireEmailVerification', 0,
43
+ 'defaultRole', 'viewer'
44
+ )
45
+ )
46
+ WHERE id = 'core-auth';
47
+
48
+ -- If core-auth plugin doesn't exist, this migration will be handled by bootstrap
49
+ -- No need to insert here as plugin bootstrap handles initial plugin creation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonicjs-cms/core",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "2.0.0-alpha.10",
4
4
  "description": "Core framework for SonicJS headless CMS - Edge-first, TypeScript-native CMS built for Cloudflare Workers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -8,44 +8,44 @@
8
8
  "types": "./dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
+ "types": "./dist/index.d.ts",
11
12
  "import": "./dist/index.js",
12
- "require": "./dist/index.cjs",
13
- "types": "./dist/index.d.ts"
13
+ "require": "./dist/index.cjs"
14
14
  },
15
15
  "./services": {
16
- "import": "./dist/services/index.js",
17
- "require": "./dist/services/index.cjs",
18
- "types": "./dist/services/index.d.ts"
16
+ "types": "./dist/services.d.ts",
17
+ "import": "./dist/services.js",
18
+ "require": "./dist/services.cjs"
19
19
  },
20
20
  "./middleware": {
21
- "import": "./dist/middleware/index.js",
22
- "require": "./dist/middleware/index.cjs",
23
- "types": "./dist/middleware/index.d.ts"
21
+ "types": "./dist/middleware.d.ts",
22
+ "import": "./dist/middleware.js",
23
+ "require": "./dist/middleware.cjs"
24
24
  },
25
25
  "./routes": {
26
- "import": "./dist/routes/index.js",
27
- "require": "./dist/routes/index.cjs",
28
- "types": "./dist/routes/index.d.ts"
26
+ "types": "./dist/routes.d.ts",
27
+ "import": "./dist/routes.js",
28
+ "require": "./dist/routes.cjs"
29
29
  },
30
30
  "./templates": {
31
- "import": "./dist/templates/index.js",
32
- "require": "./dist/templates/index.cjs",
33
- "types": "./dist/templates/index.d.ts"
31
+ "types": "./dist/templates.d.ts",
32
+ "import": "./dist/templates.js",
33
+ "require": "./dist/templates.cjs"
34
34
  },
35
35
  "./plugins": {
36
- "import": "./dist/plugins/index.js",
37
- "require": "./dist/plugins/index.cjs",
38
- "types": "./dist/plugins/index.d.ts"
36
+ "types": "./dist/plugins.d.ts",
37
+ "import": "./dist/plugins.js",
38
+ "require": "./dist/plugins.cjs"
39
39
  },
40
40
  "./utils": {
41
- "import": "./dist/utils/index.js",
42
- "require": "./dist/utils/index.cjs",
43
- "types": "./dist/utils/index.d.ts"
41
+ "types": "./dist/utils.d.ts",
42
+ "import": "./dist/utils.js",
43
+ "require": "./dist/utils.cjs"
44
44
  },
45
45
  "./types": {
46
- "import": "./dist/types/index.js",
47
- "require": "./dist/types/index.cjs",
48
- "types": "./dist/types/index.d.ts"
46
+ "types": "./dist/types.d.ts",
47
+ "import": "./dist/types.js",
48
+ "require": "./dist/types.cjs"
49
49
  }
50
50
  },
51
51
  "files": [
@@ -1,3 +0,0 @@
1
-
2
- //# sourceMappingURL=chunk-4URGXJP7.js.map
3
- //# sourceMappingURL=chunk-4URGXJP7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-4URGXJP7.js"}
@@ -1,4 +0,0 @@
1
- 'use strict';
2
-
3
- //# sourceMappingURL=chunk-ALTMI5Y2.cjs.map
4
- //# sourceMappingURL=chunk-ALTMI5Y2.cjs.map
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- // src/routes/index.ts
4
- var ROUTES_INFO = {
5
- message: "Routes are application-specific - implement in your application",
6
- reference: "https://github.com/sonicjs/sonicjs"
7
- };
8
-
9
- exports.ROUTES_INFO = ROUTES_INFO;
10
- //# sourceMappingURL=chunk-BOLQHE4J.cjs.map
11
- //# sourceMappingURL=chunk-BOLQHE4J.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routes/index.ts"],"names":[],"mappings":";;;AAYO,IAAM,WAAA,GAAc;AAAA,EACzB,OAAA,EAAS,iEAAA;AAAA,EACT,SAAA,EAAW;AACb","file":"chunk-BOLQHE4J.cjs","sourcesContent":["/**\n * Routes Module Exports\n *\n * Note: HTTP routes are application-specific and should be implemented\n * in the consuming application rather than in the core package.\n *\n * The core package provides the building blocks (middleware, services, types)\n * but each application should define its own routes based on its specific needs.\n *\n * For reference implementations, see the main SonicJS repository.\n */\n\nexport const ROUTES_INFO = {\n message: 'Routes are application-specific - implement in your application',\n reference: 'https://github.com/sonicjs/sonicjs'\n} as const\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-EMMSS5I5.cjs"}
@@ -1,9 +0,0 @@
1
- // src/routes/index.ts
2
- var ROUTES_INFO = {
3
- message: "Routes are application-specific - implement in your application",
4
- reference: "https://github.com/sonicjs/sonicjs"
5
- };
6
-
7
- export { ROUTES_INFO };
8
- //# sourceMappingURL=chunk-HD7R6T6I.js.map
9
- //# sourceMappingURL=chunk-HD7R6T6I.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routes/index.ts"],"names":[],"mappings":";AAYO,IAAM,WAAA,GAAc;AAAA,EACzB,OAAA,EAAS,iEAAA;AAAA,EACT,SAAA,EAAW;AACb","file":"chunk-HD7R6T6I.js","sourcesContent":["/**\n * Routes Module Exports\n *\n * Note: HTTP routes are application-specific and should be implemented\n * in the consuming application rather than in the core package.\n *\n * The core package provides the building blocks (middleware, services, types)\n * but each application should define its own routes based on its specific needs.\n *\n * For reference implementations, see the main SonicJS repository.\n */\n\nexport const ROUTES_INFO = {\n message: 'Routes are application-specific - implement in your application',\n reference: 'https://github.com/sonicjs/sonicjs'\n} as const\n"]}
@@ -1,107 +0,0 @@
1
- /**
2
- * Collection Configuration Types
3
- *
4
- * These types define the structure for collection configuration files.
5
- * Collections can be defined in TypeScript/JSON files and synced to the database.
6
- */
7
- type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'email' | 'url' | 'richtext' | 'markdown' | 'json' | 'array' | 'object' | 'reference' | 'media' | 'select' | 'multiselect' | 'checkbox' | 'radio' | 'textarea' | 'slug' | 'color' | 'file';
8
- interface FieldConfig {
9
- type: FieldType;
10
- title?: string;
11
- description?: string;
12
- required?: boolean;
13
- default?: any;
14
- placeholder?: string;
15
- helpText?: string;
16
- min?: number;
17
- max?: number;
18
- minLength?: number;
19
- maxLength?: number;
20
- pattern?: string;
21
- enum?: string[];
22
- enumLabels?: string[];
23
- collection?: string;
24
- items?: FieldConfig;
25
- properties?: Record<string, FieldConfig>;
26
- format?: string;
27
- widget?: string;
28
- dependsOn?: string;
29
- showWhen?: any;
30
- }
31
- interface CollectionSchema {
32
- type: 'object';
33
- properties: Record<string, FieldConfig>;
34
- required?: string[];
35
- }
36
- interface CollectionConfig {
37
- /**
38
- * Unique machine name for the collection (lowercase, underscores)
39
- * e.g., 'blog_posts', 'products', 'team_members'
40
- */
41
- name: string;
42
- /**
43
- * Human-readable display name
44
- * e.g., 'Blog Posts', 'Products', 'Team Members'
45
- */
46
- displayName: string;
47
- /**
48
- * Optional description of the collection
49
- */
50
- description?: string;
51
- /**
52
- * JSON schema definition for the collection's content structure
53
- */
54
- schema: CollectionSchema;
55
- /**
56
- * If true, this collection is managed by config files and cannot be edited in the UI
57
- * Default: true for config-based collections
58
- */
59
- managed?: boolean;
60
- /**
61
- * If true, the collection is active and available for use
62
- * Default: true
63
- */
64
- isActive?: boolean;
65
- /**
66
- * Optional icon name for the collection (used in admin UI)
67
- */
68
- icon?: string;
69
- /**
70
- * Optional color for the collection (hex code)
71
- */
72
- color?: string;
73
- /**
74
- * Optional default sort field
75
- */
76
- defaultSort?: string;
77
- /**
78
- * Optional default sort order
79
- */
80
- defaultSortOrder?: 'asc' | 'desc';
81
- /**
82
- * Optional fields to show in list view
83
- */
84
- listFields?: string[];
85
- /**
86
- * Optional search fields
87
- */
88
- searchFields?: string[];
89
- /**
90
- * Optional metadata
91
- */
92
- metadata?: Record<string, any>;
93
- }
94
- interface CollectionConfigModule {
95
- default: CollectionConfig;
96
- }
97
- /**
98
- * Result of syncing a collection
99
- */
100
- interface CollectionSyncResult {
101
- name: string;
102
- status: 'created' | 'updated' | 'unchanged' | 'error';
103
- message?: string;
104
- error?: string;
105
- }
106
-
107
- export type { CollectionSchema as C, FieldType as F, FieldConfig as a, CollectionConfig as b, CollectionConfigModule as c, CollectionSyncResult as d };