@sonicjs-cms/core 2.12.0 → 2.13.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.
Files changed (53) hide show
  1. package/dist/{chunk-RBXFXT7H.cjs → chunk-3QCEYJLK.cjs} +9 -9
  2. package/dist/{chunk-RBXFXT7H.cjs.map → chunk-3QCEYJLK.cjs.map} +1 -1
  3. package/dist/{chunk-U3ZMGBVC.js → chunk-3VAKUFNQ.js} +10 -3
  4. package/dist/chunk-3VAKUFNQ.js.map +1 -0
  5. package/dist/{chunk-BWZBKLOC.js → chunk-CB7ONLGB.js} +3 -3
  6. package/dist/{chunk-BWZBKLOC.js.map → chunk-CB7ONLGB.js.map} +1 -1
  7. package/dist/{chunk-6R6LAUR7.js → chunk-CO4B5EYF.js} +5 -5
  8. package/dist/{chunk-6R6LAUR7.js.map → chunk-CO4B5EYF.js.map} +1 -1
  9. package/dist/{chunk-HXIYYE57.js → chunk-DB2GJJTM.js} +3 -3
  10. package/dist/{chunk-HXIYYE57.js.map → chunk-DB2GJJTM.js.map} +1 -1
  11. package/dist/{chunk-VHNTCB2X.cjs → chunk-EGUDIX6Q.cjs} +4 -4
  12. package/dist/{chunk-VHNTCB2X.cjs.map → chunk-EGUDIX6Q.cjs.map} +1 -1
  13. package/dist/{chunk-ZV6ZCJ74.cjs → chunk-HVTSE2SF.cjs} +247 -210
  14. package/dist/chunk-HVTSE2SF.cjs.map +1 -0
  15. package/dist/{chunk-NDFHQOPP.js → chunk-IYFSNRZN.js} +84 -47
  16. package/dist/chunk-IYFSNRZN.js.map +1 -0
  17. package/dist/{chunk-76TX6XND.js → chunk-JTUCC6WZ.js} +18 -10
  18. package/dist/chunk-JTUCC6WZ.js.map +1 -0
  19. package/dist/{chunk-H4NHRZ6Y.cjs → chunk-QP3OHHON.cjs} +18 -10
  20. package/dist/chunk-QP3OHHON.cjs.map +1 -0
  21. package/dist/{chunk-AG3SIPP7.cjs → chunk-SER23XI4.cjs} +10 -3
  22. package/dist/chunk-SER23XI4.cjs.map +1 -0
  23. package/dist/{chunk-RXNLGINR.cjs → chunk-XCP5GCBE.cjs} +5 -5
  24. package/dist/{chunk-RXNLGINR.cjs.map → chunk-XCP5GCBE.cjs.map} +1 -1
  25. package/dist/index.cjs +131 -119
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.js +23 -11
  28. package/dist/index.js.map +1 -1
  29. package/dist/middleware.cjs +28 -28
  30. package/dist/middleware.js +2 -2
  31. package/dist/migrations-GMHTJI7D.cjs +13 -0
  32. package/dist/{migrations-ZE6IZNLB.cjs.map → migrations-GMHTJI7D.cjs.map} +1 -1
  33. package/dist/migrations-IVFIDOSO.js +4 -0
  34. package/dist/{migrations-USSEHJC7.js.map → migrations-IVFIDOSO.js.map} +1 -1
  35. package/dist/routes.cjs +28 -28
  36. package/dist/routes.js +5 -5
  37. package/dist/services.cjs +2 -2
  38. package/dist/services.js +1 -1
  39. package/dist/templates.cjs +19 -19
  40. package/dist/templates.js +2 -2
  41. package/dist/utils.cjs +11 -11
  42. package/dist/utils.js +1 -1
  43. package/migrations/032_user_profiles.sql +1 -0
  44. package/migrations/035_user_profiles_data_column.sql +17 -0
  45. package/package.json +3 -3
  46. package/dist/chunk-76TX6XND.js.map +0 -1
  47. package/dist/chunk-AG3SIPP7.cjs.map +0 -1
  48. package/dist/chunk-H4NHRZ6Y.cjs.map +0 -1
  49. package/dist/chunk-NDFHQOPP.js.map +0 -1
  50. package/dist/chunk-U3ZMGBVC.js.map +0 -1
  51. package/dist/chunk-ZV6ZCJ74.cjs.map +0 -1
  52. package/dist/migrations-USSEHJC7.js +0 -4
  53. package/dist/migrations-ZE6IZNLB.cjs +0 -13
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
- import { renderConfirmationDialog, getConfirmationDialogScript, api_default, api_media_default, api_system_default, admin_api_default, router, adminCollectionsRoutes, adminFormsRoutes, adminSettingsRoutes, public_forms_default, router2, admin_content_default, adminMediaRoutes, userProfilesPlugin, adminPluginRoutes, adminLogsRoutes, userRoutes, auth_default, test_cleanup_default } from './chunk-NDFHQOPP.js';
2
- export { ROUTES_INFO, admin_api_default as adminApiRoutes, adminCheckboxRoutes, admin_code_examples_default as adminCodeExamplesRoutes, adminCollectionsRoutes, admin_content_default as adminContentRoutes, router as adminDashboardRoutes, adminDesignRoutes, adminLogsRoutes, adminMediaRoutes, adminPluginRoutes, adminSettingsRoutes, admin_testimonials_default as adminTestimonialsRoutes, userRoutes as adminUsersRoutes, api_content_crud_default as apiContentCrudRoutes, api_media_default as apiMediaRoutes, api_default as apiRoutes, api_system_default as apiSystemRoutes, auth_default as authRoutes, createUserProfilesPlugin, defineUserProfile, getUserProfileConfig, userProfilesPlugin } from './chunk-NDFHQOPP.js';
1
+ import { renderConfirmationDialog, getConfirmationDialogScript, api_default, api_media_default, api_system_default, admin_api_default, router, adminCollectionsRoutes, adminFormsRoutes, adminSettingsRoutes, public_forms_default, router2, admin_content_default, adminMediaRoutes, userProfilesPlugin, adminPluginRoutes, adminLogsRoutes, userRoutes, auth_default, test_cleanup_default } from './chunk-IYFSNRZN.js';
2
+ export { ROUTES_INFO, admin_api_default as adminApiRoutes, adminCheckboxRoutes, admin_code_examples_default as adminCodeExamplesRoutes, adminCollectionsRoutes, admin_content_default as adminContentRoutes, router as adminDashboardRoutes, adminDesignRoutes, adminLogsRoutes, adminMediaRoutes, adminPluginRoutes, adminSettingsRoutes, admin_testimonials_default as adminTestimonialsRoutes, userRoutes as adminUsersRoutes, api_content_crud_default as apiContentCrudRoutes, api_media_default as apiMediaRoutes, api_default as apiRoutes, api_system_default as apiSystemRoutes, auth_default as authRoutes, createUserProfilesPlugin, defineUserProfile, getUserProfileConfig, userProfilesPlugin } from './chunk-IYFSNRZN.js';
3
3
  import { SettingsService, setAppInstance, schema_exports } from './chunk-TBJY2FF7.js';
4
4
  export { Logger, apiTokens, collections, content, contentVersions, getLogger, initLogger, insertCollectionSchema, insertContentSchema, insertLogConfigSchema, insertMediaSchema, insertPluginActivityLogSchema, insertPluginAssetSchema, insertPluginHookSchema, insertPluginRouteSchema, insertPluginSchema, insertSystemLogSchema, insertUserSchema, insertWorkflowHistorySchema, logConfig, media, pluginActivityLog, pluginAssets, pluginHooks, pluginRoutes, plugins, selectCollectionSchema, selectContentSchema, selectLogConfigSchema, selectMediaSchema, selectPluginActivityLogSchema, selectPluginAssetSchema, selectPluginHookSchema, selectPluginRouteSchema, selectPluginSchema, selectSystemLogSchema, selectUserSchema, selectWorkflowHistorySchema, systemLogs, users, workflowHistory } from './chunk-TBJY2FF7.js';
5
- import { requireAuth, AuthManager, metricsMiddleware, bootstrapMiddleware, securityHeadersMiddleware, csrfProtection } from './chunk-HXIYYE57.js';
6
- export { AuthManager, PermissionManager, bootstrapMiddleware, cacheHeaders, compressionMiddleware, detailedLoggingMiddleware, getActivePlugins, isPluginActive, logActivity, loggingMiddleware, optionalAuth, performanceLoggingMiddleware, requireActivePlugin, requireActivePlugins, requireAnyPermission, requireAuth, requirePermission, requireRole, securityHeadersMiddleware as securityHeaders, securityLoggingMiddleware } from './chunk-HXIYYE57.js';
5
+ import { requireAuth, AuthManager, metricsMiddleware, bootstrapMiddleware, securityHeadersMiddleware, csrfProtection } from './chunk-DB2GJJTM.js';
6
+ export { AuthManager, PermissionManager, bootstrapMiddleware, cacheHeaders, compressionMiddleware, detailedLoggingMiddleware, getActivePlugins, isPluginActive, logActivity, loggingMiddleware, optionalAuth, performanceLoggingMiddleware, requireActivePlugin, requireActivePlugins, requireAnyPermission, requireAuth, requirePermission, requireRole, securityHeadersMiddleware as securityHeaders, securityLoggingMiddleware } from './chunk-DB2GJJTM.js';
7
7
  import { PluginService } from './chunk-H3XXBAMO.js';
8
8
  export { PluginBootstrapService, PluginService as PluginServiceClass, backfillFormSubmissions, cleanupRemovedCollections, createContentFromSubmission, deriveCollectionSchemaFromFormio, deriveSubmissionTitle, fullCollectionSync, getAvailableCollectionNames, getManagedCollections, isCollectionManaged, loadCollectionConfig, loadCollectionConfigs, mapFormStatusToContentStatus, registerCollections, syncAllFormCollections, syncCollection, syncCollections, syncFormCollection, validateCollectionConfig } from './chunk-H3XXBAMO.js';
9
- export { MigrationService } from './chunk-U3ZMGBVC.js';
10
- export { renderFilterBar } from './chunk-BWZBKLOC.js';
11
- import { init_admin_layout_catalyst_template, renderAdminLayout, renderAdminLayoutCatalyst } from './chunk-76TX6XND.js';
12
- export { getConfirmationDialogScript, renderAlert, renderConfirmationDialog, renderForm, renderFormField, renderPagination, renderTable } from './chunk-76TX6XND.js';
9
+ export { MigrationService } from './chunk-3VAKUFNQ.js';
10
+ export { renderFilterBar } from './chunk-CB7ONLGB.js';
11
+ import { init_admin_layout_catalyst_template, renderAdminLayout, renderAdminLayoutCatalyst } from './chunk-JTUCC6WZ.js';
12
+ export { getConfirmationDialogScript, renderAlert, renderConfirmationDialog, renderForm, renderFormField, renderPagination, renderTable } from './chunk-JTUCC6WZ.js';
13
13
  export { HookSystemImpl, HookUtils, PluginManager as PluginManagerClass, PluginRegistryImpl, PluginValidator as PluginValidatorClass, ScopedHookSystem as ScopedHookSystemClass } from './chunk-2MXF4RYZ.js';
14
14
  import { PluginBuilder } from './chunk-J5WGMRSU.js';
15
15
  export { PluginBuilder, PluginHelpers } from './chunk-J5WGMRSU.js';
16
- import { package_default, getCoreVersion } from './chunk-6R6LAUR7.js';
17
- export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, getCoreVersion, renderTemplate, templateRenderer } from './chunk-6R6LAUR7.js';
16
+ import { package_default, getCoreVersion } from './chunk-CO4B5EYF.js';
17
+ export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, getCoreVersion, renderTemplate, templateRenderer } from './chunk-CO4B5EYF.js';
18
18
  import './chunk-X7ZAEI5S.js';
19
19
  export { metricsTracker } from './chunk-FICTAGD4.js';
20
20
  export { escapeHtml, sanitizeInput, sanitizeObject } from './chunk-TQABQWOP.js';
@@ -1916,11 +1916,23 @@ function createOTPLoginPlugin() {
1916
1916
  attemptsRemaining: verification.attemptsRemaining
1917
1917
  }, 401);
1918
1918
  }
1919
- const user = await db.prepare(`
1919
+ let user = await db.prepare(`
1920
1920
  SELECT id, email, role, is_active
1921
1921
  FROM users
1922
1922
  WHERE email = ?
1923
1923
  `).bind(normalizedEmail).first();
1924
+ if (!user && settings.allowNewUserRegistration) {
1925
+ const userId = crypto.randomUUID();
1926
+ const now = Date.now();
1927
+ const username = normalizedEmail.split("@")[0] + "_" + userId.slice(0, 6);
1928
+ await db.prepare(`
1929
+ INSERT INTO users (
1930
+ id, email, username, first_name, last_name,
1931
+ password_hash, role, is_active, email_verified, created_at, updated_at
1932
+ ) VALUES (?, ?, ?, '', '', NULL, 'viewer', 1, 1, ?, ?)
1933
+ `).bind(userId, normalizedEmail, username, now, now).run();
1934
+ user = { id: userId, email: normalizedEmail, role: "viewer", is_active: 1 };
1935
+ }
1924
1936
  if (!user) {
1925
1937
  return c.json({
1926
1938
  error: "User not found"