@sonicjs-cms/core 2.17.2 → 2.18.1

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 (43) hide show
  1. package/dist/{chunk-ITGOUYVN.js → chunk-4R3NOOL3.js} +2 -2
  2. package/dist/{chunk-ITGOUYVN.js.map → chunk-4R3NOOL3.js.map} +1 -1
  3. package/dist/{chunk-LVGB5UU5.cjs → chunk-C54YUA23.cjs} +2 -2
  4. package/dist/{chunk-LVGB5UU5.cjs.map → chunk-C54YUA23.cjs.map} +1 -1
  5. package/dist/{chunk-P4RAIX7B.cjs → chunk-DSUJ5YQH.cjs} +8 -8
  6. package/dist/{chunk-P4RAIX7B.cjs.map → chunk-DSUJ5YQH.cjs.map} +1 -1
  7. package/dist/{chunk-NAYUXSNR.js → chunk-EW5NOBVU.js} +9 -3
  8. package/dist/chunk-EW5NOBVU.js.map +1 -0
  9. package/dist/{chunk-K6QVIOTA.js → chunk-I2H5NGJQ.js} +4 -4
  10. package/dist/{chunk-K6QVIOTA.js.map → chunk-I2H5NGJQ.js.map} +1 -1
  11. package/dist/{chunk-I2Z72YTD.js → chunk-MGFRZO24.js} +3 -3
  12. package/dist/{chunk-I2Z72YTD.js.map → chunk-MGFRZO24.js.map} +1 -1
  13. package/dist/{chunk-Q3W6LCEN.cjs → chunk-SQ6FNXU2.cjs} +3 -3
  14. package/dist/{chunk-Q3W6LCEN.cjs.map → chunk-SQ6FNXU2.cjs.map} +1 -1
  15. package/dist/{chunk-2VY2G7OR.cjs → chunk-SXXTQETM.cjs} +245 -125
  16. package/dist/chunk-SXXTQETM.cjs.map +1 -0
  17. package/dist/{chunk-FXWF5D5V.cjs → chunk-T3Q5V33G.cjs} +9 -3
  18. package/dist/chunk-T3Q5V33G.cjs.map +1 -0
  19. package/dist/{chunk-KJSZMIBF.js → chunk-XXDFQERJ.js} +131 -12
  20. package/dist/chunk-XXDFQERJ.js.map +1 -0
  21. package/dist/index.cjs +211 -158
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.js +80 -27
  24. package/dist/index.js.map +1 -1
  25. package/dist/middleware.cjs +32 -32
  26. package/dist/middleware.js +3 -3
  27. package/dist/migrations-IYNTWDC6.cjs +13 -0
  28. package/dist/{migrations-Q7C6F2RM.cjs.map → migrations-IYNTWDC6.cjs.map} +1 -1
  29. package/dist/migrations-R337UD46.js +4 -0
  30. package/dist/{migrations-IFZLGVV3.js.map → migrations-R337UD46.js.map} +1 -1
  31. package/dist/routes.cjs +28 -28
  32. package/dist/routes.js +5 -5
  33. package/dist/services.cjs +23 -23
  34. package/dist/services.js +2 -2
  35. package/dist/utils.cjs +11 -11
  36. package/dist/utils.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-2VY2G7OR.cjs.map +0 -1
  39. package/dist/chunk-FXWF5D5V.cjs.map +0 -1
  40. package/dist/chunk-KJSZMIBF.js.map +0 -1
  41. package/dist/chunk-NAYUXSNR.js.map +0 -1
  42. package/dist/migrations-IFZLGVV3.js +0 -4
  43. package/dist/migrations-Q7C6F2RM.cjs +0 -13
package/dist/index.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunk2VY2G7OR_cjs = require('./chunk-2VY2G7OR.cjs');
3
+ var chunkSXXTQETM_cjs = require('./chunk-SXXTQETM.cjs');
4
4
  var chunkWAEQXGCX_cjs = require('./chunk-WAEQXGCX.cjs');
5
- var chunkP4RAIX7B_cjs = require('./chunk-P4RAIX7B.cjs');
6
- var chunkFXWF5D5V_cjs = require('./chunk-FXWF5D5V.cjs');
7
- var chunkLVGB5UU5_cjs = require('./chunk-LVGB5UU5.cjs');
5
+ var chunkDSUJ5YQH_cjs = require('./chunk-DSUJ5YQH.cjs');
6
+ var chunkT3Q5V33G_cjs = require('./chunk-T3Q5V33G.cjs');
7
+ var chunkC54YUA23_cjs = require('./chunk-C54YUA23.cjs');
8
8
  var chunk4ZSNJDLS_cjs = require('./chunk-4ZSNJDLS.cjs');
9
9
  var chunkOHYBNCVL_cjs = require('./chunk-OHYBNCVL.cjs');
10
10
  var chunkUYJ6TJHX_cjs = require('./chunk-UYJ6TJHX.cjs');
11
11
  var chunkABB34XUS_cjs = require('./chunk-ABB34XUS.cjs');
12
12
  var chunk635JAMSE_cjs = require('./chunk-635JAMSE.cjs');
13
- var chunkQ3W6LCEN_cjs = require('./chunk-Q3W6LCEN.cjs');
13
+ var chunkSQ6FNXU2_cjs = require('./chunk-SQ6FNXU2.cjs');
14
14
  require('./chunk-P3XDZL6Q.cjs');
15
15
  var chunkRCQ2HIQD_cjs = require('./chunk-RCQ2HIQD.cjs');
16
16
  var chunkMNWKYY5E_cjs = require('./chunk-MNWKYY5E.cjs');
@@ -560,7 +560,7 @@ function formatCellValue(value) {
560
560
  // src/plugins/core-plugins/database-tools-plugin/admin-routes.ts
561
561
  function createDatabaseToolsAdminRoutes() {
562
562
  const router3 = new hono.Hono();
563
- router3.use("*", chunkP4RAIX7B_cjs.requireAuth());
563
+ router3.use("*", chunkDSUJ5YQH_cjs.requireAuth());
564
564
  router3.get("/api/stats", async (c) => {
565
565
  try {
566
566
  const user = c.get("user");
@@ -1608,7 +1608,27 @@ var OTPService = class {
1608
1608
  };
1609
1609
 
1610
1610
  // src/plugins/core-plugins/otp-login-plugin/email-templates.ts
1611
+ function sanitizeColor(value) {
1612
+ if (!value) return "";
1613
+ if (/^#[0-9a-fA-F]{3,8}$/.test(value)) return value;
1614
+ if (/^[a-zA-Z]+$/.test(value)) return value;
1615
+ if (/^(rgb|rgba|hsl|hsla)\([0-9.,\s%]+\)$/.test(value)) return value;
1616
+ return "";
1617
+ }
1618
+ function escapeHtml3(value) {
1619
+ return value.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
1620
+ }
1611
1621
  function renderOTPEmailHTML(data) {
1622
+ const logoUrl = data.logoUrl ? escapeHtml3(data.logoUrl) : "";
1623
+ const loginUrl = data.loginUrl ? escapeHtml3(data.loginUrl) : "";
1624
+ const appName = escapeHtml3(data.appName);
1625
+ const loginButtonText = escapeHtml3(
1626
+ data.loginButtonText && data.loginButtonText.trim() || `Sign in to ${data.appName}`
1627
+ );
1628
+ const logoWidth = Math.max(20, Math.min(600, Number(data.logoWidth) || 150));
1629
+ const logoBorderWidth = Math.max(0, Math.min(20, Number(data.logoBorderWidth) || 0));
1630
+ const logoBorderColor = sanitizeColor(data.logoBorderColor);
1631
+ const logoBorderStyle = logoBorderWidth > 0 && logoBorderColor ? `border: ${logoBorderWidth}px solid ${logoBorderColor}; border-radius: 8px;` : "";
1612
1632
  return `<!DOCTYPE html>
1613
1633
  <html>
1614
1634
  <head>
@@ -1620,15 +1640,15 @@ function renderOTPEmailHTML(data) {
1620
1640
 
1621
1641
  <div style="background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
1622
1642
 
1623
- ${data.logoUrl ? `
1643
+ ${logoUrl ? `
1624
1644
  <div style="text-align: center; padding: 30px 20px 20px;">
1625
- <img src="${data.logoUrl}" alt="Logo" style="max-width: 150px; height: auto;">
1645
+ <img src="${logoUrl}" alt="${appName}" style="max-width: ${logoWidth}px; width: 100%; height: auto; ${logoBorderStyle}">
1626
1646
  </div>
1627
1647
  ` : ""}
1628
1648
 
1629
1649
  <div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 40px 30px; text-align: center;">
1630
1650
  <h1 style="margin: 0 0 10px 0; font-size: 32px; font-weight: 600;">Your Login Code</h1>
1631
- <p style="margin: 0; opacity: 0.95; font-size: 16px;">Enter this code to sign in to ${data.appName}</p>
1651
+ <p style="margin: 0; opacity: 0.95; font-size: 16px;">Enter this code to sign in to ${appName}</p>
1632
1652
  </div>
1633
1653
 
1634
1654
  <div style="padding: 40px 30px;">
@@ -1638,6 +1658,14 @@ function renderOTPEmailHTML(data) {
1638
1658
  </div>
1639
1659
  </div>
1640
1660
 
1661
+ ${loginUrl ? `
1662
+ <div style="text-align: center; margin: 0 0 30px 0;">
1663
+ <a href="${loginUrl}" style="display: inline-block; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; text-decoration: none; padding: 14px 32px; border-radius: 8px; font-weight: 600; font-size: 16px;">
1664
+ ${loginButtonText}
1665
+ </a>
1666
+ </div>
1667
+ ` : ""}
1668
+
1641
1669
  <div style="background: #fff3cd; border-left: 4px solid #ffc107; padding: 16px 20px; margin: 0 0 30px 0; border-radius: 6px;">
1642
1670
  <p style="margin: 0; font-size: 14px; color: #856404;">
1643
1671
  <strong>\u26A0\uFE0F This code expires in ${data.expiryMinutes} minutes</strong>
@@ -1659,7 +1687,7 @@ function renderOTPEmailHTML(data) {
1659
1687
  \u{1F512} Security Notice
1660
1688
  </p>
1661
1689
  <p style="margin: 0; font-size: 13px; color: #004080; line-height: 1.6;">
1662
- Never share this code with anyone. ${data.appName} will never ask you for this code via phone, email, or social media.
1690
+ Never share this code with anyone. ${appName} will never ask you for this code via phone, email, or social media.
1663
1691
  </p>
1664
1692
  </div>
1665
1693
  </div>
@@ -1671,22 +1699,23 @@ function renderOTPEmailHTML(data) {
1671
1699
  </p>
1672
1700
 
1673
1701
  <div style="text-align: center; color: #999; font-size: 12px; line-height: 1.6;">
1674
- <p style="margin: 5px 0;">This email was sent to ${data.email}</p>
1675
- ${data.ipAddress ? `<p style="margin: 5px 0;">IP Address: ${data.ipAddress}</p>` : ""}
1676
- <p style="margin: 5px 0;">Time: ${data.timestamp}</p>
1702
+ <p style="margin: 5px 0;">This email was sent to ${escapeHtml3(data.email)}</p>
1703
+ ${data.ipAddress ? `<p style="margin: 5px 0;">IP Address: ${escapeHtml3(data.ipAddress)}</p>` : ""}
1704
+ <p style="margin: 5px 0;">Time: ${escapeHtml3(data.timestamp)}</p>
1677
1705
  </div>
1678
1706
  </div>
1679
1707
 
1680
1708
  </div>
1681
1709
 
1682
1710
  <div style="text-align: center; padding: 20px; color: #999; font-size: 12px;">
1683
- <p style="margin: 0;">&copy; ${(/* @__PURE__ */ new Date()).getFullYear()} ${data.appName}. All rights reserved.</p>
1711
+ <p style="margin: 0;">&copy; ${(/* @__PURE__ */ new Date()).getFullYear()} ${appName}. All rights reserved.</p>
1684
1712
  </div>
1685
1713
 
1686
1714
  </body>
1687
1715
  </html>`;
1688
1716
  }
1689
1717
  function renderOTPEmailText(data) {
1718
+ const ctaLabel = data.loginButtonText && data.loginButtonText.trim() || `Sign in to ${data.appName}`;
1690
1719
  return `Your Login Code for ${data.appName}
1691
1720
 
1692
1721
  Your one-time verification code is:
@@ -1694,6 +1723,9 @@ Your one-time verification code is:
1694
1723
  ${data.code}
1695
1724
 
1696
1725
  This code expires in ${data.expiryMinutes} minutes.
1726
+ ${data.loginUrl ? `
1727
+ ${ctaLabel}: ${data.loginUrl}
1728
+ ` : ""}
1697
1729
 
1698
1730
  Quick Tips:
1699
1731
  \u2022 Enter the code exactly as shown (${data.codeLength} digits)
@@ -1734,7 +1766,13 @@ var DEFAULT_SETTINGS = {
1734
1766
  codeExpiryMinutes: 10,
1735
1767
  maxAttempts: 3,
1736
1768
  rateLimitPerHour: 5,
1737
- allowNewUserRegistration: false
1769
+ allowNewUserRegistration: false,
1770
+ logoUrl: "",
1771
+ logoWidth: 150,
1772
+ logoBorderWidth: 0,
1773
+ logoBorderColor: "#ffffff",
1774
+ loginUrl: "",
1775
+ loginButtonText: ""
1738
1776
  };
1739
1777
  function createOTPLoginPlugin() {
1740
1778
  const builder = chunk635JAMSE_cjs.PluginBuilder.create({
@@ -1824,7 +1862,12 @@ function createOTPLoginPlugin() {
1824
1862
  ipAddress,
1825
1863
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1826
1864
  appName: siteName,
1827
- logoUrl: settings.logoUrl || ""
1865
+ logoUrl: settings.logoUrl || "",
1866
+ logoWidth: settings.logoWidth,
1867
+ logoBorderWidth: settings.logoBorderWidth,
1868
+ logoBorderColor: settings.logoBorderColor || "",
1869
+ loginUrl: settings.loginUrl || "",
1870
+ loginButtonText: settings.loginButtonText || ""
1828
1871
  });
1829
1872
  const emailPlugin2 = await db.prepare(`
1830
1873
  SELECT settings FROM plugins WHERE id = 'email'
@@ -1913,7 +1956,7 @@ function createOTPLoginPlugin() {
1913
1956
  }, 401);
1914
1957
  }
1915
1958
  let user = await db.prepare(`
1916
- SELECT id, email, role, is_active
1959
+ SELECT id, email, username, first_name, last_name, role, is_active, created_at
1917
1960
  FROM users
1918
1961
  WHERE email = ?
1919
1962
  `).bind(normalizedEmail).first();
@@ -1927,7 +1970,16 @@ function createOTPLoginPlugin() {
1927
1970
  password_hash, role, is_active, email_verified, created_at, updated_at
1928
1971
  ) VALUES (?, ?, ?, '', '', NULL, 'viewer', 1, 1, ?, ?)
1929
1972
  `).bind(userId, normalizedEmail, username, now, now).run();
1930
- user = { id: userId, email: normalizedEmail, role: "viewer", is_active: 1 };
1973
+ user = {
1974
+ id: userId,
1975
+ email: normalizedEmail,
1976
+ username,
1977
+ first_name: "",
1978
+ last_name: "",
1979
+ role: "viewer",
1980
+ is_active: 1,
1981
+ created_at: now
1982
+ };
1931
1983
  }
1932
1984
  if (!user) {
1933
1985
  return c.json({
@@ -1939,20 +1991,21 @@ function createOTPLoginPlugin() {
1939
1991
  error: "Account is deactivated"
1940
1992
  }, 403);
1941
1993
  }
1942
- const tokenTtl = await chunkP4RAIX7B_cjs.getJwtExpirySecondsFromDb(db, c.env);
1943
- const token = await chunkP4RAIX7B_cjs.AuthManager.generateToken(user.id, user.email, user.role, c.env.JWT_SECRET, tokenTtl);
1994
+ const tokenTtl = await chunkDSUJ5YQH_cjs.getJwtExpirySecondsFromDb(db, c.env);
1995
+ const token = await chunkDSUJ5YQH_cjs.AuthManager.generateToken(user.id, user.email, user.role, c.env.JWT_SECRET, tokenTtl);
1944
1996
  cookie.setCookie(c, "auth_token", token, {
1945
1997
  httpOnly: true,
1946
1998
  secure: true,
1947
1999
  sameSite: "Strict",
1948
2000
  maxAge: tokenTtl
1949
2001
  });
2002
+ const customData = await chunkSXXTQETM_cjs.getCustomData(db, user.id);
2003
+ const { is_active, ...publicUser } = user;
1950
2004
  return c.json({
1951
2005
  success: true,
1952
2006
  user: {
1953
- id: user.id,
1954
- email: user.email,
1955
- role: user.role
2007
+ ...publicUser,
2008
+ ...customData
1956
2009
  },
1957
2010
  token,
1958
2011
  message: "Authentication successful"
@@ -2409,15 +2462,15 @@ function createOAuthProvidersPlugin() {
2409
2462
  if (!user || !user.is_active) {
2410
2463
  return c.redirect("/auth/login?error=Account is deactivated");
2411
2464
  }
2412
- const tokenTtl2 = await chunkP4RAIX7B_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2413
- const jwt2 = await chunkP4RAIX7B_cjs.AuthManager.generateToken(
2465
+ const tokenTtl2 = await chunkDSUJ5YQH_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2466
+ const jwt2 = await chunkDSUJ5YQH_cjs.AuthManager.generateToken(
2414
2467
  user.id,
2415
2468
  user.email,
2416
2469
  user.role,
2417
2470
  c.env.JWT_SECRET,
2418
2471
  tokenTtl2
2419
2472
  );
2420
- chunkP4RAIX7B_cjs.AuthManager.setAuthCookie(c, jwt2, { sameSite: "Lax", maxAge: tokenTtl2 });
2473
+ chunkDSUJ5YQH_cjs.AuthManager.setAuthCookie(c, jwt2, { sameSite: "Lax", maxAge: tokenTtl2 });
2421
2474
  return c.redirect("/admin");
2422
2475
  }
2423
2476
  const existingUser = await oauthService.findUserByEmail(profile.email);
@@ -2434,15 +2487,15 @@ function createOAuthProvidersPlugin() {
2434
2487
  tokenExpiresAt: tokenExpiresAt ?? void 0,
2435
2488
  profileData: JSON.stringify(profile)
2436
2489
  });
2437
- const tokenTtl2 = await chunkP4RAIX7B_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2438
- const jwt2 = await chunkP4RAIX7B_cjs.AuthManager.generateToken(
2490
+ const tokenTtl2 = await chunkDSUJ5YQH_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2491
+ const jwt2 = await chunkDSUJ5YQH_cjs.AuthManager.generateToken(
2439
2492
  existingUser.id,
2440
2493
  existingUser.email,
2441
2494
  existingUser.role,
2442
2495
  c.env.JWT_SECRET,
2443
2496
  tokenTtl2
2444
2497
  );
2445
- chunkP4RAIX7B_cjs.AuthManager.setAuthCookie(c, jwt2, { sameSite: "Lax", maxAge: tokenTtl2 });
2498
+ chunkDSUJ5YQH_cjs.AuthManager.setAuthCookie(c, jwt2, { sameSite: "Lax", maxAge: tokenTtl2 });
2446
2499
  return c.redirect("/admin");
2447
2500
  }
2448
2501
  const newUserId = await oauthService.createUserFromOAuth(profile);
@@ -2455,15 +2508,15 @@ function createOAuthProvidersPlugin() {
2455
2508
  tokenExpiresAt: tokenExpiresAt ?? void 0,
2456
2509
  profileData: JSON.stringify(profile)
2457
2510
  });
2458
- const tokenTtl = await chunkP4RAIX7B_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2459
- const jwt = await chunkP4RAIX7B_cjs.AuthManager.generateToken(
2511
+ const tokenTtl = await chunkDSUJ5YQH_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
2512
+ const jwt = await chunkDSUJ5YQH_cjs.AuthManager.generateToken(
2460
2513
  newUserId,
2461
2514
  profile.email.toLowerCase(),
2462
2515
  "viewer",
2463
2516
  c.env.JWT_SECRET,
2464
2517
  tokenTtl
2465
2518
  );
2466
- chunkP4RAIX7B_cjs.AuthManager.setAuthCookie(c, jwt, { sameSite: "Lax", maxAge: tokenTtl });
2519
+ chunkDSUJ5YQH_cjs.AuthManager.setAuthCookie(c, jwt, { sameSite: "Lax", maxAge: tokenTtl });
2467
2520
  return c.redirect("/admin");
2468
2521
  } catch (error) {
2469
2522
  console.error("OAuth callback error:", error);
@@ -4156,7 +4209,7 @@ function renderSettingsPage(data) {
4156
4209
 
4157
4210
  // src/plugins/core-plugins/ai-search-plugin/routes/admin.ts
4158
4211
  var adminRoutes = new hono.Hono();
4159
- adminRoutes.use("*", chunkP4RAIX7B_cjs.requireAuth());
4212
+ adminRoutes.use("*", chunkDSUJ5YQH_cjs.requireAuth());
4160
4213
  adminRoutes.get("/", async (c) => {
4161
4214
  try {
4162
4215
  const user = c.get("user");
@@ -4557,15 +4610,15 @@ function createMagicLinkAuthPlugin() {
4557
4610
  SET used = 1, used_at = ?
4558
4611
  WHERE id = ?
4559
4612
  `).bind(Date.now(), magicLink.id).run();
4560
- const tokenTtl = await chunkP4RAIX7B_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
4561
- const jwtToken = await chunkP4RAIX7B_cjs.AuthManager.generateToken(
4613
+ const tokenTtl = await chunkDSUJ5YQH_cjs.getJwtExpirySecondsFromDb(c.env.DB, c.env);
4614
+ const jwtToken = await chunkDSUJ5YQH_cjs.AuthManager.generateToken(
4562
4615
  user.id,
4563
4616
  user.email,
4564
4617
  user.role,
4565
4618
  c.env.JWT_SECRET,
4566
4619
  tokenTtl
4567
4620
  );
4568
- chunkP4RAIX7B_cjs.AuthManager.setAuthCookie(c, jwtToken, { maxAge: tokenTtl });
4621
+ chunkDSUJ5YQH_cjs.AuthManager.setAuthCookie(c, jwtToken, { maxAge: tokenTtl });
4569
4622
  await db.prepare(`
4570
4623
  UPDATE users SET last_login_at = ? WHERE id = ?
4571
4624
  `).bind(Date.now(), user.id).run();
@@ -5575,7 +5628,7 @@ function renderSecuritySettingsPage(data) {
5575
5628
 
5576
5629
  // src/plugins/core-plugins/security-audit-plugin/routes/admin.ts
5577
5630
  var adminRoutes2 = new hono.Hono();
5578
- adminRoutes2.use("*", chunkP4RAIX7B_cjs.requireAuth());
5631
+ adminRoutes2.use("*", chunkDSUJ5YQH_cjs.requireAuth());
5579
5632
  adminRoutes2.use("*", async (c, next) => {
5580
5633
  const user = c.get("user");
5581
5634
  if (user?.role !== "admin") {
@@ -5585,7 +5638,7 @@ adminRoutes2.use("*", async (c, next) => {
5585
5638
  });
5586
5639
  async function getSettings(db) {
5587
5640
  try {
5588
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
5641
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
5589
5642
  const plugin2 = await pluginService.getPlugin("security-audit");
5590
5643
  if (plugin2?.settings) {
5591
5644
  const settings = typeof plugin2.settings === "string" ? JSON.parse(plugin2.settings) : plugin2.settings;
@@ -5690,7 +5743,7 @@ adminRoutes2.post("/settings", async (c) => {
5690
5743
  autoPurge: body["retention.autoPurge"] === "true"
5691
5744
  }
5692
5745
  };
5693
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
5746
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
5694
5747
  await pluginService.updatePluginSettings("security-audit", settings);
5695
5748
  if (c.req.header("HX-Request")) {
5696
5749
  return c.json({ success: true });
@@ -5851,7 +5904,7 @@ var BruteForceDetector = class {
5851
5904
 
5852
5905
  // src/plugins/core-plugins/security-audit-plugin/routes/api.ts
5853
5906
  var apiRoutes2 = new hono.Hono();
5854
- apiRoutes2.use("*", chunkP4RAIX7B_cjs.requireAuth());
5907
+ apiRoutes2.use("*", chunkDSUJ5YQH_cjs.requireAuth());
5855
5908
  apiRoutes2.use("*", async (c, next) => {
5856
5909
  const user = c.get("user");
5857
5910
  if (user?.role !== "admin") {
@@ -5861,7 +5914,7 @@ apiRoutes2.use("*", async (c, next) => {
5861
5914
  });
5862
5915
  async function getSettings2(db) {
5863
5916
  try {
5864
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
5917
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
5865
5918
  const plugin2 = await pluginService.getPlugin("security-audit");
5866
5919
  if (plugin2?.settings) {
5867
5920
  const settings = typeof plugin2.settings === "string" ? JSON.parse(plugin2.settings) : plugin2.settings;
@@ -6009,7 +6062,7 @@ function generateFingerprint(ip, userAgent) {
6009
6062
  }
6010
6063
  async function getPluginSettings(db) {
6011
6064
  try {
6012
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
6065
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
6013
6066
  const plugin2 = await pluginService.getPlugin("security-audit");
6014
6067
  if (plugin2?.settings) {
6015
6068
  const settings = typeof plugin2.settings === "string" ? JSON.parse(plugin2.settings) : plugin2.settings;
@@ -7019,7 +7072,7 @@ var DEFAULT_SETTINGS3 = {
7019
7072
 
7020
7073
  // src/plugins/core-plugins/stripe-plugin/routes/admin.ts
7021
7074
  var adminRoutes3 = new hono.Hono();
7022
- adminRoutes3.use("*", chunkP4RAIX7B_cjs.requireAuth());
7075
+ adminRoutes3.use("*", chunkDSUJ5YQH_cjs.requireAuth());
7023
7076
  adminRoutes3.use("*", async (c, next) => {
7024
7077
  const user = c.get("user");
7025
7078
  if (user?.role !== "admin") {
@@ -7029,7 +7082,7 @@ adminRoutes3.use("*", async (c, next) => {
7029
7082
  });
7030
7083
  async function getSettings3(db) {
7031
7084
  try {
7032
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
7085
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
7033
7086
  const plugin2 = await pluginService.getPlugin("stripe");
7034
7087
  if (plugin2?.settings) {
7035
7088
  const settings = typeof plugin2.settings === "string" ? JSON.parse(plugin2.settings) : plugin2.settings;
@@ -7351,7 +7404,7 @@ function timingSafeEqual(a, b) {
7351
7404
  var apiRoutes3 = new hono.Hono();
7352
7405
  async function getSettings4(db) {
7353
7406
  try {
7354
- const pluginService = new chunkFXWF5D5V_cjs.PluginService(db);
7407
+ const pluginService = new chunkT3Q5V33G_cjs.PluginService(db);
7355
7408
  const plugin2 = await pluginService.getPlugin("stripe");
7356
7409
  if (plugin2?.settings) {
7357
7410
  const settings = typeof plugin2.settings === "string" ? JSON.parse(plugin2.settings) : plugin2.settings;
@@ -7502,7 +7555,7 @@ apiRoutes3.post("/webhook", async (c) => {
7502
7555
  }
7503
7556
  return c.json({ received: true });
7504
7557
  });
7505
- apiRoutes3.post("/create-checkout-session", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7558
+ apiRoutes3.post("/create-checkout-session", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7506
7559
  const db = c.env.DB;
7507
7560
  const user = c.get("user");
7508
7561
  if (!user) return c.json({ error: "Unauthorized" }, 401);
@@ -7542,7 +7595,7 @@ apiRoutes3.post("/create-checkout-session", chunkP4RAIX7B_cjs.requireAuth(), asy
7542
7595
  });
7543
7596
  return c.json({ sessionId: session.id, url: session.url });
7544
7597
  });
7545
- apiRoutes3.get("/subscription", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7598
+ apiRoutes3.get("/subscription", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7546
7599
  const user = c.get("user");
7547
7600
  if (!user) return c.json({ error: "Unauthorized" }, 401);
7548
7601
  const db = c.env.DB;
@@ -7554,7 +7607,7 @@ apiRoutes3.get("/subscription", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7554
7607
  }
7555
7608
  return c.json({ subscription });
7556
7609
  });
7557
- apiRoutes3.get("/subscriptions", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7610
+ apiRoutes3.get("/subscriptions", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7558
7611
  const user = c.get("user");
7559
7612
  if (user?.role !== "admin") return c.json({ error: "Access denied" }, 403);
7560
7613
  const db = c.env.DB;
@@ -7570,7 +7623,7 @@ apiRoutes3.get("/subscriptions", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7570
7623
  const result = await subscriptionService.list(filters);
7571
7624
  return c.json(result);
7572
7625
  });
7573
- apiRoutes3.get("/stats", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7626
+ apiRoutes3.get("/stats", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7574
7627
  const user = c.get("user");
7575
7628
  if (user?.role !== "admin") return c.json({ error: "Access denied" }, 403);
7576
7629
  const db = c.env.DB;
@@ -7579,7 +7632,7 @@ apiRoutes3.get("/stats", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7579
7632
  const stats = await subscriptionService.getStats();
7580
7633
  return c.json(stats);
7581
7634
  });
7582
- apiRoutes3.post("/sync-subscriptions", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7635
+ apiRoutes3.post("/sync-subscriptions", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7583
7636
  const user = c.get("user");
7584
7637
  if (user?.role !== "admin") return c.json({ error: "Access denied" }, 403);
7585
7638
  const db = c.env.DB;
@@ -7627,7 +7680,7 @@ apiRoutes3.post("/sync-subscriptions", chunkP4RAIX7B_cjs.requireAuth(), async (c
7627
7680
  }, 500);
7628
7681
  }
7629
7682
  });
7630
- apiRoutes3.get("/events", chunkP4RAIX7B_cjs.requireAuth(), async (c) => {
7683
+ apiRoutes3.get("/events", chunkDSUJ5YQH_cjs.requireAuth(), async (c) => {
7631
7684
  const user = c.get("user");
7632
7685
  if (user?.role !== "admin") return c.json({ error: "Access denied" }, 403);
7633
7686
  const db = c.env.DB;
@@ -7693,7 +7746,7 @@ function createStripePlugin() {
7693
7746
  var stripePlugin = createStripePlugin();
7694
7747
 
7695
7748
  // src/middleware/plugin-menu.ts
7696
- var REGISTRY_MENU_PLUGINS = Object.values(chunkFXWF5D5V_cjs.PLUGIN_REGISTRY).filter((p) => p.adminMenu !== null).map((p) => ({
7749
+ var REGISTRY_MENU_PLUGINS = Object.values(chunkT3Q5V33G_cjs.PLUGIN_REGISTRY).filter((p) => p.adminMenu !== null).map((p) => ({
7697
7750
  codeName: p.codeName,
7698
7751
  label: p.adminMenu.label,
7699
7752
  path: p.adminMenu.path,
@@ -7792,7 +7845,7 @@ var HOOKS2 = {
7792
7845
  USER_LOGIN: "user:login"};
7793
7846
  chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template();
7794
7847
  var adminRoutes4 = new hono.Hono();
7795
- adminRoutes4.use("*", chunkP4RAIX7B_cjs.requireAuth());
7848
+ adminRoutes4.use("*", chunkDSUJ5YQH_cjs.requireAuth());
7796
7849
  adminRoutes4.use("*", async (c, next) => {
7797
7850
  const user = c.get("user");
7798
7851
  if (user?.role !== "admin") {
@@ -7863,7 +7916,7 @@ adminRoutes4.get("/", async (c) => {
7863
7916
  <div class="divide-y divide-zinc-950/5 dark:divide-white/10">
7864
7917
  ${topPages.length > 0 ? topPages.map((p) => `
7865
7918
  <div class="flex items-center justify-between px-6 py-3">
7866
- <span class="text-sm text-zinc-700 dark:text-zinc-300 font-mono truncate">${escapeHtml3(p.path)}</span>
7919
+ <span class="text-sm text-zinc-700 dark:text-zinc-300 font-mono truncate">${escapeHtml4(p.path)}</span>
7867
7920
  <span class="text-sm font-medium text-zinc-500 dark:text-zinc-400">${p.views}</span>
7868
7921
  </div>
7869
7922
  `).join("") : `
@@ -7892,7 +7945,7 @@ adminRoutes4.get("/", async (c) => {
7892
7945
  <tbody class="divide-y divide-zinc-950/5 dark:divide-white/10">
7893
7946
  ${recentActivity.length > 0 ? recentActivity.map((a) => `
7894
7947
  <tr>
7895
- <td class="px-6 py-2 font-mono text-zinc-700 dark:text-zinc-300 truncate max-w-xs">${escapeHtml3(a.url || "")}</td>
7948
+ <td class="px-6 py-2 font-mono text-zinc-700 dark:text-zinc-300 truncate max-w-xs">${escapeHtml4(a.url || "")}</td>
7896
7949
  <td class="px-6 py-2"><span class="inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium ${a.method === "GET" ? "bg-green-50 text-green-700 dark:bg-green-900/30 dark:text-green-400" : "bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"}">${a.method || ""}</span></td>
7897
7950
  <td class="px-6 py-2"><span class="inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium ${(a.status_code || 0) >= 400 ? "bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-400" : "bg-green-50 text-green-700 dark:bg-green-900/30 dark:text-green-400"}">${a.status_code || ""}</span></td>
7898
7951
  <td class="px-6 py-2 text-zinc-500 dark:text-zinc-400">${a.duration || 0}ms</td>
@@ -7922,7 +7975,7 @@ adminRoutes4.get("/", async (c) => {
7922
7975
  dynamicMenuItems: c.get("pluginMenuItems")
7923
7976
  }));
7924
7977
  });
7925
- function escapeHtml3(str) {
7978
+ function escapeHtml4(str) {
7926
7979
  return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
7927
7980
  }
7928
7981
 
@@ -9591,7 +9644,7 @@ function renderCacheDashboard(data) {
9591
9644
  </script>
9592
9645
 
9593
9646
  <!-- Confirmation Dialogs -->
9594
- ${chunk2VY2G7OR_cjs.renderConfirmationDialog({
9647
+ ${chunkSXXTQETM_cjs.renderConfirmationDialog({
9595
9648
  id: "clear-all-cache-confirm",
9596
9649
  title: "Clear All Cache",
9597
9650
  message: "Are you sure you want to clear all cache entries? This cannot be undone.",
@@ -9602,7 +9655,7 @@ function renderCacheDashboard(data) {
9602
9655
  onConfirm: "performClearAllCaches()"
9603
9656
  })}
9604
9657
 
9605
- ${chunk2VY2G7OR_cjs.renderConfirmationDialog({
9658
+ ${chunkSXXTQETM_cjs.renderConfirmationDialog({
9606
9659
  id: "clear-namespace-cache-confirm",
9607
9660
  title: "Clear Namespace Cache",
9608
9661
  message: "Clear cache for this namespace?",
@@ -9613,7 +9666,7 @@ function renderCacheDashboard(data) {
9613
9666
  onConfirm: "performClearNamespaceCache()"
9614
9667
  })}
9615
9668
 
9616
- ${chunk2VY2G7OR_cjs.getConfirmationDialogScript()}
9669
+ ${chunkSXXTQETM_cjs.getConfirmationDialogScript()}
9617
9670
  `;
9618
9671
  const layoutData = {
9619
9672
  title: "Cache System",
@@ -10299,14 +10352,14 @@ var faviconSvg = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
10299
10352
  // src/app.ts
10300
10353
  function createSonicJSApp(config = {}) {
10301
10354
  const app2 = new hono.Hono();
10302
- const appVersion = config.version || chunkQ3W6LCEN_cjs.getCoreVersion();
10355
+ const appVersion = config.version || chunkSQ6FNXU2_cjs.getCoreVersion();
10303
10356
  const appName = config.name || "SonicJS AI";
10304
10357
  app2.use("*", async (c, next) => {
10305
10358
  c.set("appVersion", appVersion);
10306
10359
  await next();
10307
10360
  });
10308
- app2.use("*", chunkP4RAIX7B_cjs.metricsMiddleware());
10309
- app2.use("*", chunkP4RAIX7B_cjs.bootstrapMiddleware(config));
10361
+ app2.use("*", chunkDSUJ5YQH_cjs.metricsMiddleware());
10362
+ app2.use("*", chunkDSUJ5YQH_cjs.bootstrapMiddleware(config));
10310
10363
  if (config.middleware?.beforeAuth) {
10311
10364
  for (const middleware of config.middleware.beforeAuth) {
10312
10365
  app2.use("*", middleware);
@@ -10315,32 +10368,32 @@ function createSonicJSApp(config = {}) {
10315
10368
  app2.use("*", async (_c, next) => {
10316
10369
  await next();
10317
10370
  });
10318
- app2.use("*", chunkP4RAIX7B_cjs.securityHeadersMiddleware());
10319
- app2.use("*", chunkP4RAIX7B_cjs.csrfProtection());
10371
+ app2.use("*", chunkDSUJ5YQH_cjs.securityHeadersMiddleware());
10372
+ app2.use("*", chunkDSUJ5YQH_cjs.csrfProtection());
10320
10373
  if (config.middleware?.afterAuth) {
10321
10374
  for (const middleware of config.middleware.afterAuth) {
10322
10375
  app2.use("*", middleware);
10323
10376
  }
10324
10377
  }
10325
10378
  const adminRoles = config.adminAccessRoles || ["admin"];
10326
- app2.use("/admin/*", chunkP4RAIX7B_cjs.requireAuth());
10327
- app2.use("/admin/*", chunkP4RAIX7B_cjs.requireRole(adminRoles));
10379
+ app2.use("/admin/*", chunkDSUJ5YQH_cjs.requireAuth());
10380
+ app2.use("/admin/*", chunkDSUJ5YQH_cjs.requireRole(adminRoles));
10328
10381
  app2.use("/admin/*", pluginMenuMiddleware());
10329
- app2.route("/api", chunk2VY2G7OR_cjs.api_default);
10330
- app2.route("/api/media", chunk2VY2G7OR_cjs.api_media_default);
10331
- app2.route("/api/system", chunk2VY2G7OR_cjs.api_system_default);
10332
- app2.route("/admin/api", chunk2VY2G7OR_cjs.admin_api_default);
10333
- app2.route("/admin/dashboard", chunk2VY2G7OR_cjs.router);
10334
- app2.route("/admin/collections", chunk2VY2G7OR_cjs.adminCollectionsRoutes);
10335
- app2.route("/admin/forms", chunk2VY2G7OR_cjs.adminFormsRoutes);
10336
- app2.route("/admin/settings", chunk2VY2G7OR_cjs.adminSettingsRoutes);
10337
- app2.route("/forms", chunk2VY2G7OR_cjs.public_forms_default);
10338
- app2.route("/api/forms", chunk2VY2G7OR_cjs.public_forms_default);
10339
- app2.route("/admin/api-reference", chunk2VY2G7OR_cjs.router2);
10382
+ app2.route("/api", chunkSXXTQETM_cjs.api_default);
10383
+ app2.route("/api/media", chunkSXXTQETM_cjs.api_media_default);
10384
+ app2.route("/api/system", chunkSXXTQETM_cjs.api_system_default);
10385
+ app2.route("/admin/api", chunkSXXTQETM_cjs.admin_api_default);
10386
+ app2.route("/admin/dashboard", chunkSXXTQETM_cjs.router);
10387
+ app2.route("/admin/collections", chunkSXXTQETM_cjs.adminCollectionsRoutes);
10388
+ app2.route("/admin/forms", chunkSXXTQETM_cjs.adminFormsRoutes);
10389
+ app2.route("/admin/settings", chunkSXXTQETM_cjs.adminSettingsRoutes);
10390
+ app2.route("/forms", chunkSXXTQETM_cjs.public_forms_default);
10391
+ app2.route("/api/forms", chunkSXXTQETM_cjs.public_forms_default);
10392
+ app2.route("/admin/api-reference", chunkSXXTQETM_cjs.router2);
10340
10393
  app2.route("/admin/database-tools", createDatabaseToolsAdminRoutes());
10341
10394
  app2.route("/admin/seed-data", createSeedDataAdminRoutes());
10342
- app2.route("/admin/content", chunk2VY2G7OR_cjs.admin_content_default);
10343
- app2.route("/admin/media", chunk2VY2G7OR_cjs.adminMediaRoutes);
10395
+ app2.route("/admin/content", chunkSXXTQETM_cjs.admin_content_default);
10396
+ app2.route("/admin/media", chunkSXXTQETM_cjs.adminMediaRoutes);
10344
10397
  app2.use("/auth/*", securityAuditMiddleware());
10345
10398
  if (securityAuditPlugin.routes && securityAuditPlugin.routes.length > 0) {
10346
10399
  for (const route of securityAuditPlugin.routes) {
@@ -10358,8 +10411,8 @@ function createSonicJSApp(config = {}) {
10358
10411
  app2.route(route.path, route.handler);
10359
10412
  }
10360
10413
  }
10361
- if (chunk2VY2G7OR_cjs.userProfilesPlugin.routes && chunk2VY2G7OR_cjs.userProfilesPlugin.routes.length > 0) {
10362
- for (const route of chunk2VY2G7OR_cjs.userProfilesPlugin.routes) {
10414
+ if (chunkSXXTQETM_cjs.userProfilesPlugin.routes && chunkSXXTQETM_cjs.userProfilesPlugin.routes.length > 0) {
10415
+ for (const route of chunkSXXTQETM_cjs.userProfilesPlugin.routes) {
10363
10416
  app2.route(route.path, route.handler);
10364
10417
  }
10365
10418
  }
@@ -10379,11 +10432,11 @@ function createSonicJSApp(config = {}) {
10379
10432
  app2.route(route.path, route.handler);
10380
10433
  }
10381
10434
  }
10382
- app2.route("/admin/plugins", chunk2VY2G7OR_cjs.adminPluginRoutes);
10383
- app2.route("/admin/logs", chunk2VY2G7OR_cjs.adminLogsRoutes);
10384
- app2.route("/admin", chunk2VY2G7OR_cjs.userRoutes);
10385
- app2.route("/auth", chunk2VY2G7OR_cjs.auth_default);
10386
- app2.route("/", chunk2VY2G7OR_cjs.test_cleanup_default);
10435
+ app2.route("/admin/plugins", chunkSXXTQETM_cjs.adminPluginRoutes);
10436
+ app2.route("/admin/logs", chunkSXXTQETM_cjs.adminLogsRoutes);
10437
+ app2.route("/admin", chunkSXXTQETM_cjs.userRoutes);
10438
+ app2.route("/auth", chunkSXXTQETM_cjs.auth_default);
10439
+ app2.route("/", chunkSXXTQETM_cjs.test_cleanup_default);
10387
10440
  if (emailPlugin.routes && emailPlugin.routes.length > 0) {
10388
10441
  for (const route of emailPlugin.routes) {
10389
10442
  app2.route(route.path, route.handler);
@@ -10467,99 +10520,99 @@ function createDb(d1$1) {
10467
10520
  }
10468
10521
 
10469
10522
  // src/index.ts
10470
- var VERSION = chunkQ3W6LCEN_cjs.package_default.version;
10523
+ var VERSION = chunkSQ6FNXU2_cjs.package_default.version;
10471
10524
 
10472
10525
  Object.defineProperty(exports, "ROUTES_INFO", {
10473
10526
  enumerable: true,
10474
- get: function () { return chunk2VY2G7OR_cjs.ROUTES_INFO; }
10527
+ get: function () { return chunkSXXTQETM_cjs.ROUTES_INFO; }
10475
10528
  });
10476
10529
  Object.defineProperty(exports, "adminApiRoutes", {
10477
10530
  enumerable: true,
10478
- get: function () { return chunk2VY2G7OR_cjs.admin_api_default; }
10531
+ get: function () { return chunkSXXTQETM_cjs.admin_api_default; }
10479
10532
  });
10480
10533
  Object.defineProperty(exports, "adminCheckboxRoutes", {
10481
10534
  enumerable: true,
10482
- get: function () { return chunk2VY2G7OR_cjs.adminCheckboxRoutes; }
10535
+ get: function () { return chunkSXXTQETM_cjs.adminCheckboxRoutes; }
10483
10536
  });
10484
10537
  Object.defineProperty(exports, "adminCodeExamplesRoutes", {
10485
10538
  enumerable: true,
10486
- get: function () { return chunk2VY2G7OR_cjs.admin_code_examples_default; }
10539
+ get: function () { return chunkSXXTQETM_cjs.admin_code_examples_default; }
10487
10540
  });
10488
10541
  Object.defineProperty(exports, "adminCollectionsRoutes", {
10489
10542
  enumerable: true,
10490
- get: function () { return chunk2VY2G7OR_cjs.adminCollectionsRoutes; }
10543
+ get: function () { return chunkSXXTQETM_cjs.adminCollectionsRoutes; }
10491
10544
  });
10492
10545
  Object.defineProperty(exports, "adminContentRoutes", {
10493
10546
  enumerable: true,
10494
- get: function () { return chunk2VY2G7OR_cjs.admin_content_default; }
10547
+ get: function () { return chunkSXXTQETM_cjs.admin_content_default; }
10495
10548
  });
10496
10549
  Object.defineProperty(exports, "adminDashboardRoutes", {
10497
10550
  enumerable: true,
10498
- get: function () { return chunk2VY2G7OR_cjs.router; }
10551
+ get: function () { return chunkSXXTQETM_cjs.router; }
10499
10552
  });
10500
10553
  Object.defineProperty(exports, "adminDesignRoutes", {
10501
10554
  enumerable: true,
10502
- get: function () { return chunk2VY2G7OR_cjs.adminDesignRoutes; }
10555
+ get: function () { return chunkSXXTQETM_cjs.adminDesignRoutes; }
10503
10556
  });
10504
10557
  Object.defineProperty(exports, "adminLogsRoutes", {
10505
10558
  enumerable: true,
10506
- get: function () { return chunk2VY2G7OR_cjs.adminLogsRoutes; }
10559
+ get: function () { return chunkSXXTQETM_cjs.adminLogsRoutes; }
10507
10560
  });
10508
10561
  Object.defineProperty(exports, "adminMediaRoutes", {
10509
10562
  enumerable: true,
10510
- get: function () { return chunk2VY2G7OR_cjs.adminMediaRoutes; }
10563
+ get: function () { return chunkSXXTQETM_cjs.adminMediaRoutes; }
10511
10564
  });
10512
10565
  Object.defineProperty(exports, "adminPluginRoutes", {
10513
10566
  enumerable: true,
10514
- get: function () { return chunk2VY2G7OR_cjs.adminPluginRoutes; }
10567
+ get: function () { return chunkSXXTQETM_cjs.adminPluginRoutes; }
10515
10568
  });
10516
10569
  Object.defineProperty(exports, "adminSettingsRoutes", {
10517
10570
  enumerable: true,
10518
- get: function () { return chunk2VY2G7OR_cjs.adminSettingsRoutes; }
10571
+ get: function () { return chunkSXXTQETM_cjs.adminSettingsRoutes; }
10519
10572
  });
10520
10573
  Object.defineProperty(exports, "adminTestimonialsRoutes", {
10521
10574
  enumerable: true,
10522
- get: function () { return chunk2VY2G7OR_cjs.admin_testimonials_default; }
10575
+ get: function () { return chunkSXXTQETM_cjs.admin_testimonials_default; }
10523
10576
  });
10524
10577
  Object.defineProperty(exports, "adminUsersRoutes", {
10525
10578
  enumerable: true,
10526
- get: function () { return chunk2VY2G7OR_cjs.userRoutes; }
10579
+ get: function () { return chunkSXXTQETM_cjs.userRoutes; }
10527
10580
  });
10528
10581
  Object.defineProperty(exports, "apiContentCrudRoutes", {
10529
10582
  enumerable: true,
10530
- get: function () { return chunk2VY2G7OR_cjs.api_content_crud_default; }
10583
+ get: function () { return chunkSXXTQETM_cjs.api_content_crud_default; }
10531
10584
  });
10532
10585
  Object.defineProperty(exports, "apiMediaRoutes", {
10533
10586
  enumerable: true,
10534
- get: function () { return chunk2VY2G7OR_cjs.api_media_default; }
10587
+ get: function () { return chunkSXXTQETM_cjs.api_media_default; }
10535
10588
  });
10536
10589
  Object.defineProperty(exports, "apiRoutes", {
10537
10590
  enumerable: true,
10538
- get: function () { return chunk2VY2G7OR_cjs.api_default; }
10591
+ get: function () { return chunkSXXTQETM_cjs.api_default; }
10539
10592
  });
10540
10593
  Object.defineProperty(exports, "apiSystemRoutes", {
10541
10594
  enumerable: true,
10542
- get: function () { return chunk2VY2G7OR_cjs.api_system_default; }
10595
+ get: function () { return chunkSXXTQETM_cjs.api_system_default; }
10543
10596
  });
10544
10597
  Object.defineProperty(exports, "authRoutes", {
10545
10598
  enumerable: true,
10546
- get: function () { return chunk2VY2G7OR_cjs.auth_default; }
10599
+ get: function () { return chunkSXXTQETM_cjs.auth_default; }
10547
10600
  });
10548
10601
  Object.defineProperty(exports, "createUserProfilesPlugin", {
10549
10602
  enumerable: true,
10550
- get: function () { return chunk2VY2G7OR_cjs.createUserProfilesPlugin; }
10603
+ get: function () { return chunkSXXTQETM_cjs.createUserProfilesPlugin; }
10551
10604
  });
10552
10605
  Object.defineProperty(exports, "defineUserProfile", {
10553
10606
  enumerable: true,
10554
- get: function () { return chunk2VY2G7OR_cjs.defineUserProfile; }
10607
+ get: function () { return chunkSXXTQETM_cjs.defineUserProfile; }
10555
10608
  });
10556
10609
  Object.defineProperty(exports, "getUserProfileConfig", {
10557
10610
  enumerable: true,
10558
- get: function () { return chunk2VY2G7OR_cjs.getUserProfileConfig; }
10611
+ get: function () { return chunkSXXTQETM_cjs.getUserProfileConfig; }
10559
10612
  });
10560
10613
  Object.defineProperty(exports, "userProfilesPlugin", {
10561
10614
  enumerable: true,
10562
- get: function () { return chunk2VY2G7OR_cjs.userProfilesPlugin; }
10615
+ get: function () { return chunkSXXTQETM_cjs.userProfilesPlugin; }
10563
10616
  });
10564
10617
  Object.defineProperty(exports, "Logger", {
10565
10618
  enumerable: true,
@@ -10727,167 +10780,167 @@ Object.defineProperty(exports, "workflowHistory", {
10727
10780
  });
10728
10781
  Object.defineProperty(exports, "AuthManager", {
10729
10782
  enumerable: true,
10730
- get: function () { return chunkP4RAIX7B_cjs.AuthManager; }
10783
+ get: function () { return chunkDSUJ5YQH_cjs.AuthManager; }
10731
10784
  });
10732
10785
  Object.defineProperty(exports, "PermissionManager", {
10733
10786
  enumerable: true,
10734
- get: function () { return chunkP4RAIX7B_cjs.PermissionManager; }
10787
+ get: function () { return chunkDSUJ5YQH_cjs.PermissionManager; }
10735
10788
  });
10736
10789
  Object.defineProperty(exports, "bootstrapMiddleware", {
10737
10790
  enumerable: true,
10738
- get: function () { return chunkP4RAIX7B_cjs.bootstrapMiddleware; }
10791
+ get: function () { return chunkDSUJ5YQH_cjs.bootstrapMiddleware; }
10739
10792
  });
10740
10793
  Object.defineProperty(exports, "cacheHeaders", {
10741
10794
  enumerable: true,
10742
- get: function () { return chunkP4RAIX7B_cjs.cacheHeaders; }
10795
+ get: function () { return chunkDSUJ5YQH_cjs.cacheHeaders; }
10743
10796
  });
10744
10797
  Object.defineProperty(exports, "compressionMiddleware", {
10745
10798
  enumerable: true,
10746
- get: function () { return chunkP4RAIX7B_cjs.compressionMiddleware; }
10799
+ get: function () { return chunkDSUJ5YQH_cjs.compressionMiddleware; }
10747
10800
  });
10748
10801
  Object.defineProperty(exports, "detailedLoggingMiddleware", {
10749
10802
  enumerable: true,
10750
- get: function () { return chunkP4RAIX7B_cjs.detailedLoggingMiddleware; }
10803
+ get: function () { return chunkDSUJ5YQH_cjs.detailedLoggingMiddleware; }
10751
10804
  });
10752
10805
  Object.defineProperty(exports, "getActivePlugins", {
10753
10806
  enumerable: true,
10754
- get: function () { return chunkP4RAIX7B_cjs.getActivePlugins; }
10807
+ get: function () { return chunkDSUJ5YQH_cjs.getActivePlugins; }
10755
10808
  });
10756
10809
  Object.defineProperty(exports, "isPluginActive", {
10757
10810
  enumerable: true,
10758
- get: function () { return chunkP4RAIX7B_cjs.isPluginActive; }
10811
+ get: function () { return chunkDSUJ5YQH_cjs.isPluginActive; }
10759
10812
  });
10760
10813
  Object.defineProperty(exports, "logActivity", {
10761
10814
  enumerable: true,
10762
- get: function () { return chunkP4RAIX7B_cjs.logActivity; }
10815
+ get: function () { return chunkDSUJ5YQH_cjs.logActivity; }
10763
10816
  });
10764
10817
  Object.defineProperty(exports, "loggingMiddleware", {
10765
10818
  enumerable: true,
10766
- get: function () { return chunkP4RAIX7B_cjs.loggingMiddleware; }
10819
+ get: function () { return chunkDSUJ5YQH_cjs.loggingMiddleware; }
10767
10820
  });
10768
10821
  Object.defineProperty(exports, "optionalAuth", {
10769
10822
  enumerable: true,
10770
- get: function () { return chunkP4RAIX7B_cjs.optionalAuth; }
10823
+ get: function () { return chunkDSUJ5YQH_cjs.optionalAuth; }
10771
10824
  });
10772
10825
  Object.defineProperty(exports, "performanceLoggingMiddleware", {
10773
10826
  enumerable: true,
10774
- get: function () { return chunkP4RAIX7B_cjs.performanceLoggingMiddleware; }
10827
+ get: function () { return chunkDSUJ5YQH_cjs.performanceLoggingMiddleware; }
10775
10828
  });
10776
10829
  Object.defineProperty(exports, "requireActivePlugin", {
10777
10830
  enumerable: true,
10778
- get: function () { return chunkP4RAIX7B_cjs.requireActivePlugin; }
10831
+ get: function () { return chunkDSUJ5YQH_cjs.requireActivePlugin; }
10779
10832
  });
10780
10833
  Object.defineProperty(exports, "requireActivePlugins", {
10781
10834
  enumerable: true,
10782
- get: function () { return chunkP4RAIX7B_cjs.requireActivePlugins; }
10835
+ get: function () { return chunkDSUJ5YQH_cjs.requireActivePlugins; }
10783
10836
  });
10784
10837
  Object.defineProperty(exports, "requireAnyPermission", {
10785
10838
  enumerable: true,
10786
- get: function () { return chunkP4RAIX7B_cjs.requireAnyPermission; }
10839
+ get: function () { return chunkDSUJ5YQH_cjs.requireAnyPermission; }
10787
10840
  });
10788
10841
  Object.defineProperty(exports, "requireAuth", {
10789
10842
  enumerable: true,
10790
- get: function () { return chunkP4RAIX7B_cjs.requireAuth; }
10843
+ get: function () { return chunkDSUJ5YQH_cjs.requireAuth; }
10791
10844
  });
10792
10845
  Object.defineProperty(exports, "requirePermission", {
10793
10846
  enumerable: true,
10794
- get: function () { return chunkP4RAIX7B_cjs.requirePermission; }
10847
+ get: function () { return chunkDSUJ5YQH_cjs.requirePermission; }
10795
10848
  });
10796
10849
  Object.defineProperty(exports, "requireRole", {
10797
10850
  enumerable: true,
10798
- get: function () { return chunkP4RAIX7B_cjs.requireRole; }
10851
+ get: function () { return chunkDSUJ5YQH_cjs.requireRole; }
10799
10852
  });
10800
10853
  Object.defineProperty(exports, "securityHeaders", {
10801
10854
  enumerable: true,
10802
- get: function () { return chunkP4RAIX7B_cjs.securityHeadersMiddleware; }
10855
+ get: function () { return chunkDSUJ5YQH_cjs.securityHeadersMiddleware; }
10803
10856
  });
10804
10857
  Object.defineProperty(exports, "securityLoggingMiddleware", {
10805
10858
  enumerable: true,
10806
- get: function () { return chunkP4RAIX7B_cjs.securityLoggingMiddleware; }
10859
+ get: function () { return chunkDSUJ5YQH_cjs.securityLoggingMiddleware; }
10807
10860
  });
10808
10861
  Object.defineProperty(exports, "PluginBootstrapService", {
10809
10862
  enumerable: true,
10810
- get: function () { return chunkFXWF5D5V_cjs.PluginBootstrapService; }
10863
+ get: function () { return chunkT3Q5V33G_cjs.PluginBootstrapService; }
10811
10864
  });
10812
10865
  Object.defineProperty(exports, "PluginServiceClass", {
10813
10866
  enumerable: true,
10814
- get: function () { return chunkFXWF5D5V_cjs.PluginService; }
10867
+ get: function () { return chunkT3Q5V33G_cjs.PluginService; }
10815
10868
  });
10816
10869
  Object.defineProperty(exports, "backfillFormSubmissions", {
10817
10870
  enumerable: true,
10818
- get: function () { return chunkFXWF5D5V_cjs.backfillFormSubmissions; }
10871
+ get: function () { return chunkT3Q5V33G_cjs.backfillFormSubmissions; }
10819
10872
  });
10820
10873
  Object.defineProperty(exports, "cleanupRemovedCollections", {
10821
10874
  enumerable: true,
10822
- get: function () { return chunkFXWF5D5V_cjs.cleanupRemovedCollections; }
10875
+ get: function () { return chunkT3Q5V33G_cjs.cleanupRemovedCollections; }
10823
10876
  });
10824
10877
  Object.defineProperty(exports, "createContentFromSubmission", {
10825
10878
  enumerable: true,
10826
- get: function () { return chunkFXWF5D5V_cjs.createContentFromSubmission; }
10879
+ get: function () { return chunkT3Q5V33G_cjs.createContentFromSubmission; }
10827
10880
  });
10828
10881
  Object.defineProperty(exports, "deriveCollectionSchemaFromFormio", {
10829
10882
  enumerable: true,
10830
- get: function () { return chunkFXWF5D5V_cjs.deriveCollectionSchemaFromFormio; }
10883
+ get: function () { return chunkT3Q5V33G_cjs.deriveCollectionSchemaFromFormio; }
10831
10884
  });
10832
10885
  Object.defineProperty(exports, "deriveSubmissionTitle", {
10833
10886
  enumerable: true,
10834
- get: function () { return chunkFXWF5D5V_cjs.deriveSubmissionTitle; }
10887
+ get: function () { return chunkT3Q5V33G_cjs.deriveSubmissionTitle; }
10835
10888
  });
10836
10889
  Object.defineProperty(exports, "fullCollectionSync", {
10837
10890
  enumerable: true,
10838
- get: function () { return chunkFXWF5D5V_cjs.fullCollectionSync; }
10891
+ get: function () { return chunkT3Q5V33G_cjs.fullCollectionSync; }
10839
10892
  });
10840
10893
  Object.defineProperty(exports, "getAvailableCollectionNames", {
10841
10894
  enumerable: true,
10842
- get: function () { return chunkFXWF5D5V_cjs.getAvailableCollectionNames; }
10895
+ get: function () { return chunkT3Q5V33G_cjs.getAvailableCollectionNames; }
10843
10896
  });
10844
10897
  Object.defineProperty(exports, "getManagedCollections", {
10845
10898
  enumerable: true,
10846
- get: function () { return chunkFXWF5D5V_cjs.getManagedCollections; }
10899
+ get: function () { return chunkT3Q5V33G_cjs.getManagedCollections; }
10847
10900
  });
10848
10901
  Object.defineProperty(exports, "isCollectionManaged", {
10849
10902
  enumerable: true,
10850
- get: function () { return chunkFXWF5D5V_cjs.isCollectionManaged; }
10903
+ get: function () { return chunkT3Q5V33G_cjs.isCollectionManaged; }
10851
10904
  });
10852
10905
  Object.defineProperty(exports, "loadCollectionConfig", {
10853
10906
  enumerable: true,
10854
- get: function () { return chunkFXWF5D5V_cjs.loadCollectionConfig; }
10907
+ get: function () { return chunkT3Q5V33G_cjs.loadCollectionConfig; }
10855
10908
  });
10856
10909
  Object.defineProperty(exports, "loadCollectionConfigs", {
10857
10910
  enumerable: true,
10858
- get: function () { return chunkFXWF5D5V_cjs.loadCollectionConfigs; }
10911
+ get: function () { return chunkT3Q5V33G_cjs.loadCollectionConfigs; }
10859
10912
  });
10860
10913
  Object.defineProperty(exports, "mapFormStatusToContentStatus", {
10861
10914
  enumerable: true,
10862
- get: function () { return chunkFXWF5D5V_cjs.mapFormStatusToContentStatus; }
10915
+ get: function () { return chunkT3Q5V33G_cjs.mapFormStatusToContentStatus; }
10863
10916
  });
10864
10917
  Object.defineProperty(exports, "registerCollections", {
10865
10918
  enumerable: true,
10866
- get: function () { return chunkFXWF5D5V_cjs.registerCollections; }
10919
+ get: function () { return chunkT3Q5V33G_cjs.registerCollections; }
10867
10920
  });
10868
10921
  Object.defineProperty(exports, "syncAllFormCollections", {
10869
10922
  enumerable: true,
10870
- get: function () { return chunkFXWF5D5V_cjs.syncAllFormCollections; }
10923
+ get: function () { return chunkT3Q5V33G_cjs.syncAllFormCollections; }
10871
10924
  });
10872
10925
  Object.defineProperty(exports, "syncCollection", {
10873
10926
  enumerable: true,
10874
- get: function () { return chunkFXWF5D5V_cjs.syncCollection; }
10927
+ get: function () { return chunkT3Q5V33G_cjs.syncCollection; }
10875
10928
  });
10876
10929
  Object.defineProperty(exports, "syncCollections", {
10877
10930
  enumerable: true,
10878
- get: function () { return chunkFXWF5D5V_cjs.syncCollections; }
10931
+ get: function () { return chunkT3Q5V33G_cjs.syncCollections; }
10879
10932
  });
10880
10933
  Object.defineProperty(exports, "syncFormCollection", {
10881
10934
  enumerable: true,
10882
- get: function () { return chunkFXWF5D5V_cjs.syncFormCollection; }
10935
+ get: function () { return chunkT3Q5V33G_cjs.syncFormCollection; }
10883
10936
  });
10884
10937
  Object.defineProperty(exports, "validateCollectionConfig", {
10885
10938
  enumerable: true,
10886
- get: function () { return chunkFXWF5D5V_cjs.validateCollectionConfig; }
10939
+ get: function () { return chunkT3Q5V33G_cjs.validateCollectionConfig; }
10887
10940
  });
10888
10941
  Object.defineProperty(exports, "MigrationService", {
10889
10942
  enumerable: true,
10890
- get: function () { return chunkLVGB5UU5_cjs.MigrationService; }
10943
+ get: function () { return chunkC54YUA23_cjs.MigrationService; }
10891
10944
  });
10892
10945
  Object.defineProperty(exports, "renderFilterBar", {
10893
10946
  enumerable: true,
@@ -10955,31 +11008,31 @@ Object.defineProperty(exports, "PluginHelpers", {
10955
11008
  });
10956
11009
  Object.defineProperty(exports, "QueryFilterBuilder", {
10957
11010
  enumerable: true,
10958
- get: function () { return chunkQ3W6LCEN_cjs.QueryFilterBuilder; }
11011
+ get: function () { return chunkSQ6FNXU2_cjs.QueryFilterBuilder; }
10959
11012
  });
10960
11013
  Object.defineProperty(exports, "SONICJS_VERSION", {
10961
11014
  enumerable: true,
10962
- get: function () { return chunkQ3W6LCEN_cjs.SONICJS_VERSION; }
11015
+ get: function () { return chunkSQ6FNXU2_cjs.SONICJS_VERSION; }
10963
11016
  });
10964
11017
  Object.defineProperty(exports, "TemplateRenderer", {
10965
11018
  enumerable: true,
10966
- get: function () { return chunkQ3W6LCEN_cjs.TemplateRenderer; }
11019
+ get: function () { return chunkSQ6FNXU2_cjs.TemplateRenderer; }
10967
11020
  });
10968
11021
  Object.defineProperty(exports, "buildQuery", {
10969
11022
  enumerable: true,
10970
- get: function () { return chunkQ3W6LCEN_cjs.buildQuery; }
11023
+ get: function () { return chunkSQ6FNXU2_cjs.buildQuery; }
10971
11024
  });
10972
11025
  Object.defineProperty(exports, "getCoreVersion", {
10973
11026
  enumerable: true,
10974
- get: function () { return chunkQ3W6LCEN_cjs.getCoreVersion; }
11027
+ get: function () { return chunkSQ6FNXU2_cjs.getCoreVersion; }
10975
11028
  });
10976
11029
  Object.defineProperty(exports, "renderTemplate", {
10977
11030
  enumerable: true,
10978
- get: function () { return chunkQ3W6LCEN_cjs.renderTemplate; }
11031
+ get: function () { return chunkSQ6FNXU2_cjs.renderTemplate; }
10979
11032
  });
10980
11033
  Object.defineProperty(exports, "templateRenderer", {
10981
11034
  enumerable: true,
10982
- get: function () { return chunkQ3W6LCEN_cjs.templateRenderer; }
11035
+ get: function () { return chunkSQ6FNXU2_cjs.templateRenderer; }
10983
11036
  });
10984
11037
  Object.defineProperty(exports, "metricsTracker", {
10985
11038
  enumerable: true,