@sonicjs-cms/core 2.3.14 → 2.3.16
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/{chunk-CAJOP354.js → chunk-33Q6ETMQ.js} +2 -2
- package/dist/{chunk-CAJOP354.js.map → chunk-33Q6ETMQ.js.map} +1 -1
- package/dist/{chunk-ETS5XSAG.cjs → chunk-4CLJPURJ.cjs} +2 -2
- package/dist/{chunk-ETS5XSAG.cjs.map → chunk-4CLJPURJ.cjs.map} +1 -1
- package/dist/{chunk-XWPGIFS7.cjs → chunk-AE27GPMY.cjs} +4 -4
- package/dist/{chunk-XWPGIFS7.cjs.map → chunk-AE27GPMY.cjs.map} +1 -1
- package/dist/{chunk-H34L445M.js → chunk-ATNWDVAD.js} +3 -3
- package/dist/{chunk-H34L445M.js.map → chunk-ATNWDVAD.js.map} +1 -1
- package/dist/{chunk-SZE3XVET.cjs → chunk-EUQDJQHJ.cjs} +3 -3
- package/dist/{chunk-SZE3XVET.cjs.map → chunk-EUQDJQHJ.cjs.map} +1 -1
- package/dist/{chunk-D4PJFFOV.cjs → chunk-ICDJ7KPP.cjs} +90 -90
- package/dist/{chunk-D4PJFFOV.cjs.map → chunk-ICDJ7KPP.cjs.map} +1 -1
- package/dist/{chunk-SKPETEM5.js → chunk-LRFDZHLM.js} +3 -3
- package/dist/{chunk-SKPETEM5.js.map → chunk-LRFDZHLM.js.map} +1 -1
- package/dist/{chunk-T4XRPNX2.js → chunk-QUBMTYRI.js} +8 -8
- package/dist/{chunk-T4XRPNX2.js.map → chunk-QUBMTYRI.js.map} +1 -1
- package/dist/index.cjs +118 -77
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +48 -7
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +23 -23
- package/dist/middleware.js +2 -2
- package/dist/migrations-7TWFJVNT.js +4 -0
- package/dist/{migrations-WF6VIVU2.js.map → migrations-7TWFJVNT.js.map} +1 -1
- package/dist/migrations-QCBN4TLD.cjs +13 -0
- package/dist/{migrations-3A53GREK.cjs.map → migrations-QCBN4TLD.cjs.map} +1 -1
- package/dist/{plugin-manifest-BCMx9CAq.d.cts → plugin-manifest-Dpy8wxIB.d.cts} +2 -2
- package/dist/{plugin-manifest-BCMx9CAq.d.ts → plugin-manifest-Dpy8wxIB.d.ts} +2 -2
- package/dist/routes.cjs +24 -24
- package/dist/routes.js +4 -4
- package/dist/services.cjs +2 -2
- package/dist/services.js +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.cjs +11 -11
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/migrations-3A53GREK.cjs +0 -13
- package/dist/migrations-WF6VIVU2.js +0 -4
package/dist/index.d.cts
CHANGED
|
@@ -7,7 +7,7 @@ export { ROUTES_INFO, adminApiRoutes, adminCheckboxRoutes, adminCodeExamplesRout
|
|
|
7
7
|
export { A as AlertData, C as ConfirmationDialogOptions, k as Filter, j as FilterBarData, l as FilterOption, h as FormData, F as FormField, P as PaginationData, T as TableColumn, i as TableData, g as getConfirmationDialogScript, d as renderAlert, e as renderConfirmationDialog, f as renderFilterBar, r as renderForm, a as renderFormField, c as renderPagination, b as renderTable } from './filter-bar.template-By4jeiw_.cjs';
|
|
8
8
|
export { b as CollectionConfig, c as CollectionConfigModule, C as CollectionSchema, d as CollectionSyncResult, a as FieldConfig, F as FieldType } from './collection-config-FLlGtsh9.cjs';
|
|
9
9
|
export { A as AuthService, C as ContentService, v as HOOKS, k as HookContext, H as HookHandler, u as HookName, l as HookSystem, p as MediaService, P as Plugin, g as PluginAdminPage, r as PluginBuilderOptions, h as PluginComponent, b as PluginConfig, a as PluginContext, j as PluginHook, q as PluginLogger, n as PluginManager, i as PluginMenuItem, d as PluginMiddleware, e as PluginModel, m as PluginRegistry, c as PluginRoutes, f as PluginService, o as PluginStatus, t as PluginValidationResult, s as PluginValidator, S as ScopedHookSystem } from './plugin-zvZpaiP5.cjs';
|
|
10
|
-
export { P as PluginManifest } from './plugin-manifest-
|
|
10
|
+
export { P as PluginManifest } from './plugin-manifest-Dpy8wxIB.cjs';
|
|
11
11
|
export { c as FilterCondition, d as FilterGroup, F as FilterOperator, f as QueryFilter, Q as QueryFilterBuilder, h as QueryResult, S as SONICJS_VERSION, T as TemplateRenderer, b as buildQuery, e as escapeHtml, g as getCoreVersion, m as metricsTracker, r as renderTemplate, s as sanitizeInput, a as sanitizeObject, t as templateRenderer } from './version-vktVAxhe.cjs';
|
|
12
12
|
import * as drizzle_orm_d1 from 'drizzle-orm/d1';
|
|
13
13
|
import 'hono';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { ROUTES_INFO, adminApiRoutes, adminCheckboxRoutes, adminCodeExamplesRout
|
|
|
7
7
|
export { A as AlertData, C as ConfirmationDialogOptions, k as Filter, j as FilterBarData, l as FilterOption, h as FormData, F as FormField, P as PaginationData, T as TableColumn, i as TableData, g as getConfirmationDialogScript, d as renderAlert, e as renderConfirmationDialog, f as renderFilterBar, r as renderForm, a as renderFormField, c as renderPagination, b as renderTable } from './filter-bar.template-By4jeiw_.js';
|
|
8
8
|
export { b as CollectionConfig, c as CollectionConfigModule, C as CollectionSchema, d as CollectionSyncResult, a as FieldConfig, F as FieldType } from './collection-config-FLlGtsh9.js';
|
|
9
9
|
export { A as AuthService, C as ContentService, v as HOOKS, k as HookContext, H as HookHandler, u as HookName, l as HookSystem, p as MediaService, P as Plugin, g as PluginAdminPage, r as PluginBuilderOptions, h as PluginComponent, b as PluginConfig, a as PluginContext, j as PluginHook, q as PluginLogger, n as PluginManager, i as PluginMenuItem, d as PluginMiddleware, e as PluginModel, m as PluginRegistry, c as PluginRoutes, f as PluginService, o as PluginStatus, t as PluginValidationResult, s as PluginValidator, S as ScopedHookSystem } from './plugin-zvZpaiP5.js';
|
|
10
|
-
export { P as PluginManifest } from './plugin-manifest-
|
|
10
|
+
export { P as PluginManifest } from './plugin-manifest-Dpy8wxIB.js';
|
|
11
11
|
export { c as FilterCondition, d as FilterGroup, F as FilterOperator, f as QueryFilter, Q as QueryFilterBuilder, h as QueryResult, S as SONICJS_VERSION, T as TemplateRenderer, b as buildQuery, e as escapeHtml, g as getCoreVersion, m as metricsTracker, r as renderTemplate, s as sanitizeInput, a as sanitizeObject, t as templateRenderer } from './version-vktVAxhe.js';
|
|
12
12
|
import * as drizzle_orm_d1 from 'drizzle-orm/d1';
|
|
13
13
|
import 'hono';
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { PluginBuilder, api_default, api_media_default, api_system_default, admin_api_default, router, adminCollectionsRoutes, adminSettingsRoutes, admin_content_default, adminMediaRoutes, adminPluginRoutes, adminLogsRoutes, userRoutes, auth_default, test_cleanup_default } from './chunk-
|
|
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 } from './chunk-
|
|
1
|
+
import { PluginBuilder, api_default, api_media_default, api_system_default, admin_api_default, router, adminCollectionsRoutes, adminSettingsRoutes, admin_content_default, adminMediaRoutes, adminPluginRoutes, adminLogsRoutes, userRoutes, auth_default, test_cleanup_default } from './chunk-QUBMTYRI.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 } from './chunk-QUBMTYRI.js';
|
|
3
3
|
import { schema_exports } from './chunk-3YNNVSMC.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-3YNNVSMC.js';
|
|
5
|
-
import { AuthManager, metricsMiddleware, bootstrapMiddleware, requireAuth } from './chunk-
|
|
6
|
-
export { AuthManager, PermissionManager, bootstrapMiddleware, cacheHeaders, compressionMiddleware, detailedLoggingMiddleware, getActivePlugins, isPluginActive, logActivity, loggingMiddleware, optionalAuth, performanceLoggingMiddleware, requireActivePlugin, requireActivePlugins, requireAnyPermission, requireAuth, requirePermission, requireRole, securityHeaders, securityLoggingMiddleware } from './chunk-
|
|
5
|
+
import { AuthManager, metricsMiddleware, bootstrapMiddleware, requireAuth } from './chunk-ATNWDVAD.js';
|
|
6
|
+
export { AuthManager, PermissionManager, bootstrapMiddleware, cacheHeaders, compressionMiddleware, detailedLoggingMiddleware, getActivePlugins, isPluginActive, logActivity, loggingMiddleware, optionalAuth, performanceLoggingMiddleware, requireActivePlugin, requireActivePlugins, requireAnyPermission, requireAuth, requirePermission, requireRole, securityHeaders, securityLoggingMiddleware } from './chunk-ATNWDVAD.js';
|
|
7
7
|
export { PluginBootstrapService, PluginService as PluginServiceClass, cleanupRemovedCollections, fullCollectionSync, getAvailableCollectionNames, getManagedCollections, isCollectionManaged, loadCollectionConfig, loadCollectionConfigs, registerCollections, syncCollection, syncCollections, validateCollectionConfig } from './chunk-SGAG6FD3.js';
|
|
8
|
-
export { MigrationService } from './chunk-
|
|
8
|
+
export { MigrationService } from './chunk-33Q6ETMQ.js';
|
|
9
9
|
export { renderFilterBar } from './chunk-AVPUX57O.js';
|
|
10
10
|
import { init_admin_layout_catalyst_template, renderAdminLayout, adminLayoutV2, renderAdminLayoutCatalyst } from './chunk-V5LBQN3I.js';
|
|
11
11
|
export { getConfirmationDialogScript, renderAlert, renderConfirmationDialog, renderForm, renderFormField, renderPagination, renderTable } from './chunk-V5LBQN3I.js';
|
|
12
12
|
export { HookSystemImpl, HookUtils, PluginManager as PluginManagerClass, PluginRegistryImpl, PluginValidator as PluginValidatorClass, ScopedHookSystem as ScopedHookSystemClass } from './chunk-CPXAVWCU.js';
|
|
13
|
-
import { package_default, getCoreVersion } from './chunk-
|
|
14
|
-
export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, escapeHtml, getCoreVersion, renderTemplate, sanitizeInput, sanitizeObject, templateRenderer } from './chunk-
|
|
13
|
+
import { package_default, getCoreVersion } from './chunk-LRFDZHLM.js';
|
|
14
|
+
export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, escapeHtml, getCoreVersion, renderTemplate, sanitizeInput, sanitizeObject, templateRenderer } from './chunk-LRFDZHLM.js';
|
|
15
15
|
import './chunk-X7ZAEI5S.js';
|
|
16
16
|
export { metricsTracker } from './chunk-FICTAGD4.js';
|
|
17
17
|
export { HOOKS } from './chunk-LOUJRBXV.js';
|
|
18
18
|
import './chunk-V4OQ3NZ2.js';
|
|
19
19
|
import { Hono } from 'hono';
|
|
20
20
|
import { html } from 'hono/html';
|
|
21
|
+
import { setCookie } from 'hono/cookie';
|
|
21
22
|
import { z } from 'zod';
|
|
22
23
|
import { drizzle } from 'drizzle-orm/d1';
|
|
23
24
|
|
|
@@ -1492,6 +1493,37 @@ function createOTPLoginPlugin() {
|
|
|
1492
1493
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1493
1494
|
appName: settings.appName
|
|
1494
1495
|
});
|
|
1496
|
+
const emailPlugin2 = await db.prepare(`
|
|
1497
|
+
SELECT settings FROM plugins WHERE id = 'email'
|
|
1498
|
+
`).first();
|
|
1499
|
+
if (emailPlugin2?.settings) {
|
|
1500
|
+
const emailSettings = JSON.parse(emailPlugin2.settings);
|
|
1501
|
+
if (emailSettings.apiKey && emailSettings.fromEmail && emailSettings.fromName) {
|
|
1502
|
+
const emailResponse = await fetch("https://api.resend.com/emails", {
|
|
1503
|
+
method: "POST",
|
|
1504
|
+
headers: {
|
|
1505
|
+
"Authorization": `Bearer ${emailSettings.apiKey}`,
|
|
1506
|
+
"Content-Type": "application/json"
|
|
1507
|
+
},
|
|
1508
|
+
body: JSON.stringify({
|
|
1509
|
+
from: `${emailSettings.fromName} <${emailSettings.fromEmail}>`,
|
|
1510
|
+
to: [normalizedEmail],
|
|
1511
|
+
subject: `Your login code for ${settings.appName}`,
|
|
1512
|
+
html: emailContent.html,
|
|
1513
|
+
text: emailContent.text,
|
|
1514
|
+
reply_to: emailSettings.replyTo || emailSettings.fromEmail
|
|
1515
|
+
})
|
|
1516
|
+
});
|
|
1517
|
+
if (!emailResponse.ok) {
|
|
1518
|
+
const errorData = await emailResponse.json();
|
|
1519
|
+
console.error("Failed to send OTP email via Resend:", errorData);
|
|
1520
|
+
}
|
|
1521
|
+
} else {
|
|
1522
|
+
console.warn("Email plugin is not fully configured (missing apiKey, fromEmail, or fromName)");
|
|
1523
|
+
}
|
|
1524
|
+
} else {
|
|
1525
|
+
console.warn("Email plugin is not active or has no settings configured");
|
|
1526
|
+
}
|
|
1495
1527
|
const response = {
|
|
1496
1528
|
message: "If an account exists for this email, you will receive a verification code shortly.",
|
|
1497
1529
|
expiresIn: settings.codeExpiryMinutes * 60
|
|
@@ -1551,6 +1583,14 @@ function createOTPLoginPlugin() {
|
|
|
1551
1583
|
error: "Account is deactivated"
|
|
1552
1584
|
}, 403);
|
|
1553
1585
|
}
|
|
1586
|
+
const token = await AuthManager.generateToken(user.id, user.email, user.role);
|
|
1587
|
+
setCookie(c, "auth_token", token, {
|
|
1588
|
+
httpOnly: true,
|
|
1589
|
+
secure: true,
|
|
1590
|
+
sameSite: "Strict",
|
|
1591
|
+
maxAge: 60 * 60 * 24
|
|
1592
|
+
// 24 hours
|
|
1593
|
+
});
|
|
1554
1594
|
return c.json({
|
|
1555
1595
|
success: true,
|
|
1556
1596
|
user: {
|
|
@@ -1558,6 +1598,7 @@ function createOTPLoginPlugin() {
|
|
|
1558
1598
|
email: user.email,
|
|
1559
1599
|
role: user.role
|
|
1560
1600
|
},
|
|
1601
|
+
token,
|
|
1561
1602
|
message: "Authentication successful"
|
|
1562
1603
|
});
|
|
1563
1604
|
} catch (error) {
|