@sonicjs-cms/core 3.0.0-beta.24 → 3.0.0-beta.26

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 (163) hide show
  1. package/bin/db-reset.js +39 -22
  2. package/dist/admin-documents-form.template-JWV5GITD.js +6 -0
  3. package/dist/{admin-documents-form.template-55V2ZGWT.js.map → admin-documents-form.template-JWV5GITD.js.map} +1 -1
  4. package/dist/admin-documents-form.template-UWKGVAMW.cjs +19 -0
  5. package/dist/{admin-layout-catalyst.template-6UQGLCKI.js.map → admin-documents-form.template-UWKGVAMW.cjs.map} +1 -1
  6. package/dist/admin-layout-catalyst.template-MOQ3BBXA.cjs +21 -0
  7. package/dist/{admin-layout-catalyst.template-3XZXDGF7.cjs.map → admin-layout-catalyst.template-MOQ3BBXA.cjs.map} +1 -1
  8. package/dist/admin-layout-catalyst.template-WCYMQVTZ.js +7 -0
  9. package/dist/{admin-documents-form.template-YNAVMJCV.cjs.map → admin-layout-catalyst.template-WCYMQVTZ.js.map} +1 -1
  10. package/dist/{app-01M0dIwt.d.ts → app-BP5IlK94.d.ts} +7 -7
  11. package/dist/{app-aj39TGHB.d.cts → app-fdq4K3vw.d.cts} +7 -7
  12. package/dist/catalog-56DR6OXI.cjs +41 -0
  13. package/dist/catalog-56DR6OXI.cjs.map +1 -0
  14. package/dist/catalog-6MB37KY7.js +4 -0
  15. package/dist/catalog-6MB37KY7.js.map +1 -0
  16. package/dist/{chunk-QCJHCSOK.cjs → chunk-4DHPR7KR.cjs} +77 -17
  17. package/dist/chunk-4DHPR7KR.cjs.map +1 -0
  18. package/dist/{chunk-UIHIXTIS.js → chunk-5YSFQO7X.js} +40 -13
  19. package/dist/chunk-5YSFQO7X.js.map +1 -0
  20. package/dist/{chunk-GMMCCIQO.cjs → chunk-6UAI4SGN.cjs} +3 -3
  21. package/dist/{chunk-GMMCCIQO.cjs.map → chunk-6UAI4SGN.cjs.map} +1 -1
  22. package/dist/{chunk-2XAQTPAE.js → chunk-6X22VFEV.js} +8 -2
  23. package/dist/chunk-6X22VFEV.js.map +1 -0
  24. package/dist/{chunk-URIBTX27.js → chunk-73RTFFMX.js} +3 -3
  25. package/dist/{chunk-URIBTX27.js.map → chunk-73RTFFMX.js.map} +1 -1
  26. package/dist/{chunk-QJUJNTIU.cjs → chunk-A22RBHO7.cjs} +43 -12
  27. package/dist/chunk-A22RBHO7.cjs.map +1 -0
  28. package/dist/{chunk-QZGABF2M.js → chunk-AMP4BSJE.js} +18 -7
  29. package/dist/chunk-AMP4BSJE.js.map +1 -0
  30. package/dist/{chunk-37V3RET3.cjs → chunk-BRKXMRMB.cjs} +99 -98
  31. package/dist/chunk-BRKXMRMB.cjs.map +1 -0
  32. package/dist/{chunk-36Z3AKX3.cjs → chunk-C5LDQ3SH.cjs} +8 -2
  33. package/dist/chunk-C5LDQ3SH.cjs.map +1 -0
  34. package/dist/{chunk-BBEKHLTW.cjs → chunk-CN3T3TDI.cjs} +9 -9
  35. package/dist/{chunk-BBEKHLTW.cjs.map → chunk-CN3T3TDI.cjs.map} +1 -1
  36. package/dist/{chunk-BHND5PEV.js → chunk-E3TQG7AA.js} +3 -3
  37. package/dist/{chunk-BHND5PEV.js.map → chunk-E3TQG7AA.js.map} +1 -1
  38. package/dist/{chunk-FHPEM77Y.js → chunk-EEA476CJ.js} +88 -83
  39. package/dist/chunk-EEA476CJ.js.map +1 -0
  40. package/dist/chunk-F6BTBE4S.js +119 -0
  41. package/dist/chunk-F6BTBE4S.js.map +1 -0
  42. package/dist/chunk-FZGIU5AZ.cjs +128 -0
  43. package/dist/chunk-FZGIU5AZ.cjs.map +1 -0
  44. package/dist/{chunk-BJROXF4N.js → chunk-HSDJDWLV.js} +19 -4
  45. package/dist/chunk-HSDJDWLV.js.map +1 -0
  46. package/dist/{chunk-VGEZNFWH.js → chunk-JD7BZU3A.js} +5 -4
  47. package/dist/chunk-JD7BZU3A.js.map +1 -0
  48. package/dist/{chunk-SOZUG52O.js → chunk-JG5J434C.js} +3 -3
  49. package/dist/{chunk-SOZUG52O.js.map → chunk-JG5J434C.js.map} +1 -1
  50. package/dist/{chunk-BP52BFIV.cjs → chunk-KWQNB6UM.cjs} +6 -5
  51. package/dist/chunk-KWQNB6UM.cjs.map +1 -0
  52. package/dist/{chunk-UYJQDDEE.cjs → chunk-MI2YXCK4.cjs} +14 -8
  53. package/dist/chunk-MI2YXCK4.cjs.map +1 -0
  54. package/dist/{chunk-VC5XVPLM.js → chunk-OJFIQGZB.js} +512 -148
  55. package/dist/chunk-OJFIQGZB.js.map +1 -0
  56. package/dist/{chunk-LTZ5WYOK.cjs → chunk-OLEOKHDX.cjs} +25 -2
  57. package/dist/chunk-OLEOKHDX.cjs.map +1 -0
  58. package/dist/{chunk-E66UVONV.cjs → chunk-OUBUS74I.cjs} +24 -9
  59. package/dist/chunk-OUBUS74I.cjs.map +1 -0
  60. package/dist/{chunk-A2SN3RVL.cjs → chunk-PAS7GZBS.cjs} +40 -13
  61. package/dist/chunk-PAS7GZBS.cjs.map +1 -0
  62. package/dist/{chunk-RJ2O5IIE.js → chunk-RVOX2WH2.js} +74 -18
  63. package/dist/chunk-RVOX2WH2.js.map +1 -0
  64. package/dist/{chunk-3TMTYJAJ.js → chunk-RXLI3ADU.js} +25 -2
  65. package/dist/chunk-RXLI3ADU.js.map +1 -0
  66. package/dist/{chunk-I767LVN7.cjs → chunk-S2QN4LFD.cjs} +881 -515
  67. package/dist/chunk-S2QN4LFD.cjs.map +1 -0
  68. package/dist/{chunk-IXUHXTHW.cjs → chunk-SFGYZUWU.cjs} +18 -7
  69. package/dist/chunk-SFGYZUWU.cjs.map +1 -0
  70. package/dist/{chunk-THFZSDIU.js → chunk-SXC4HPK6.js} +14 -8
  71. package/dist/chunk-SXC4HPK6.js.map +1 -0
  72. package/dist/{chunk-JMJM7DMM.cjs → chunk-TT3TQSCZ.cjs} +5 -5
  73. package/dist/{chunk-JMJM7DMM.cjs.map → chunk-TT3TQSCZ.cjs.map} +1 -1
  74. package/dist/{chunk-LNI3FYSI.js → chunk-UB5QSRO7.js} +9 -14
  75. package/dist/chunk-UB5QSRO7.js.map +1 -0
  76. package/dist/{chunk-VYQVDL2M.js → chunk-UKIDWRA3.js} +36 -5
  77. package/dist/chunk-UKIDWRA3.js.map +1 -0
  78. package/dist/{chunk-KKNEYIZJ.cjs → chunk-XZUEGFXE.cjs} +9 -14
  79. package/dist/chunk-XZUEGFXE.cjs.map +1 -0
  80. package/dist/{collection-config-BTzAvKt2.d.cts → collection-config-U2dydD_O.d.cts} +14 -0
  81. package/dist/{collection-config-BTzAvKt2.d.ts → collection-config-U2dydD_O.d.ts} +14 -0
  82. package/dist/config-DOAWXZBG.js +6 -0
  83. package/dist/{config-6FB2BXMP.js.map → config-DOAWXZBG.js.map} +1 -1
  84. package/dist/{config-OCH7S4WK.cjs → config-VLU73ZW7.cjs} +5 -5
  85. package/dist/{config-OCH7S4WK.cjs.map → config-VLU73ZW7.cjs.map} +1 -1
  86. package/dist/{define-plugin-D_6D9vVZ.d.ts → define-plugin-DDe8a_bh.d.ts} +3 -0
  87. package/dist/{define-plugin-DMcvEy_C.d.cts → define-plugin-rjXmGOgu.d.cts} +3 -0
  88. package/dist/index.cjs +698 -392
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.d.cts +27 -12
  91. package/dist/index.d.ts +27 -12
  92. package/dist/index.js +340 -35
  93. package/dist/index.js.map +1 -1
  94. package/dist/middleware.cjs +47 -47
  95. package/dist/middleware.d.cts +10 -10
  96. package/dist/middleware.d.ts +10 -10
  97. package/dist/middleware.js +6 -6
  98. package/dist/migrations-6M6772UC.cjs +13 -0
  99. package/dist/{migrations-FGXZPKDC.cjs.map → migrations-6M6772UC.cjs.map} +1 -1
  100. package/dist/migrations-GZ2HIB4I.js +4 -0
  101. package/dist/{migrations-Z6D27NAW.js.map → migrations-GZ2HIB4I.js.map} +1 -1
  102. package/dist/{plugin-bootstrap-BHWQ2df8.d.cts → plugin-bootstrap-CfVILQeP.d.ts} +1 -1
  103. package/dist/{plugin-bootstrap-Bj4fxX1q.d.ts → plugin-bootstrap-RY5pkoOT.d.cts} +1 -1
  104. package/dist/plugins.cjs +40 -40
  105. package/dist/plugins.d.cts +1 -1
  106. package/dist/plugins.d.ts +1 -1
  107. package/dist/plugins.js +3 -3
  108. package/dist/rbac-TFUOYIVN.cjs +14 -0
  109. package/dist/{rbac-7QZ4JZ2E.cjs.map → rbac-TFUOYIVN.cjs.map} +1 -1
  110. package/dist/rbac-XSNP76CV.js +5 -0
  111. package/dist/{rbac-Y43IEQOP.js.map → rbac-XSNP76CV.js.map} +1 -1
  112. package/dist/routes.cjs +33 -32
  113. package/dist/routes.d.cts +3 -5
  114. package/dist/routes.d.ts +3 -5
  115. package/dist/routes.js +13 -12
  116. package/dist/services.cjs +30 -30
  117. package/dist/services.d.cts +10 -3
  118. package/dist/services.d.ts +10 -3
  119. package/dist/services.js +3 -3
  120. package/dist/{telemetry-Cku1ax74.d.cts → telemetry-QFlTv9f8.d.cts} +1 -1
  121. package/dist/{telemetry-Cku1ax74.d.ts → telemetry-QFlTv9f8.d.ts} +1 -1
  122. package/dist/templates.cjs +17 -17
  123. package/dist/templates.js +3 -3
  124. package/dist/types.d.cts +2 -2
  125. package/dist/types.d.ts +2 -2
  126. package/dist/utils.cjs +12 -12
  127. package/dist/utils.d.cts +2 -2
  128. package/dist/utils.d.ts +2 -2
  129. package/dist/utils.js +2 -2
  130. package/package.json +7 -12
  131. package/dist/admin-documents-form.template-55V2ZGWT.js +0 -6
  132. package/dist/admin-documents-form.template-YNAVMJCV.cjs +0 -19
  133. package/dist/admin-layout-catalyst.template-3XZXDGF7.cjs +0 -21
  134. package/dist/admin-layout-catalyst.template-6UQGLCKI.js +0 -7
  135. package/dist/chunk-2XAQTPAE.js.map +0 -1
  136. package/dist/chunk-36Z3AKX3.cjs.map +0 -1
  137. package/dist/chunk-37V3RET3.cjs.map +0 -1
  138. package/dist/chunk-3TMTYJAJ.js.map +0 -1
  139. package/dist/chunk-A2SN3RVL.cjs.map +0 -1
  140. package/dist/chunk-BJROXF4N.js.map +0 -1
  141. package/dist/chunk-BP52BFIV.cjs.map +0 -1
  142. package/dist/chunk-E66UVONV.cjs.map +0 -1
  143. package/dist/chunk-FHPEM77Y.js.map +0 -1
  144. package/dist/chunk-I767LVN7.cjs.map +0 -1
  145. package/dist/chunk-IXUHXTHW.cjs.map +0 -1
  146. package/dist/chunk-KKNEYIZJ.cjs.map +0 -1
  147. package/dist/chunk-LNI3FYSI.js.map +0 -1
  148. package/dist/chunk-LTZ5WYOK.cjs.map +0 -1
  149. package/dist/chunk-QCJHCSOK.cjs.map +0 -1
  150. package/dist/chunk-QJUJNTIU.cjs.map +0 -1
  151. package/dist/chunk-QZGABF2M.js.map +0 -1
  152. package/dist/chunk-RJ2O5IIE.js.map +0 -1
  153. package/dist/chunk-THFZSDIU.js.map +0 -1
  154. package/dist/chunk-UIHIXTIS.js.map +0 -1
  155. package/dist/chunk-UYJQDDEE.cjs.map +0 -1
  156. package/dist/chunk-VC5XVPLM.js.map +0 -1
  157. package/dist/chunk-VGEZNFWH.js.map +0 -1
  158. package/dist/chunk-VYQVDL2M.js.map +0 -1
  159. package/dist/config-6FB2BXMP.js +0 -6
  160. package/dist/migrations-FGXZPKDC.cjs +0 -13
  161. package/dist/migrations-Z6D27NAW.js +0 -4
  162. package/dist/rbac-7QZ4JZ2E.cjs +0 -14
  163. package/dist/rbac-Y43IEQOP.js +0 -5
package/bin/db-reset.js CHANGED
@@ -49,13 +49,16 @@ async function prompt(question) {
49
49
  });
50
50
  }
51
51
 
52
- function findWranglerToml() {
53
- // Look for wrangler.toml in current directory or parent directories
52
+ function findWranglerConfig() {
53
+ // Prefer wrangler.toml, then wrangler.jsonc, then wrangler.json
54
+ const candidates = ['wrangler.toml', 'wrangler.jsonc', 'wrangler.json'];
54
55
  let dir = process.cwd();
55
56
  for (let i = 0; i < 5; i++) {
56
- const tomlPath = join(dir, 'wrangler.toml');
57
- if (existsSync(tomlPath)) {
58
- return { path: tomlPath, dir };
57
+ for (const filename of candidates) {
58
+ const configPath = join(dir, filename);
59
+ if (existsSync(configPath)) {
60
+ return { path: configPath, dir, format: filename.endsWith('.toml') ? 'toml' : 'json' };
61
+ }
59
62
  }
60
63
  dir = dirname(dir);
61
64
  }
@@ -66,16 +69,16 @@ async function main() {
66
69
  log('\n🔧 SonicJS Database Reset Tool', colors.cyan + colors.bold);
67
70
  log('================================\n', colors.cyan);
68
71
 
69
- // Find wrangler.toml
70
- const wranglerInfo = findWranglerToml();
72
+ // Find wrangler config (toml, jsonc, or json)
73
+ const wranglerInfo = findWranglerConfig();
71
74
  if (!wranglerInfo) {
72
- log('Error: Could not find wrangler.toml in current or parent directories', colors.red);
75
+ log('Error: Could not find wrangler.toml / wrangler.jsonc / wrangler.json in current or parent directories', colors.red);
73
76
  log('Please run this command from your SonicJS project directory.', colors.yellow);
74
77
  process.exit(1);
75
78
  }
76
79
 
77
- const { path: wranglerPath, dir: projectDir } = wranglerInfo;
78
- log(`Found wrangler.toml at: ${wranglerPath}`, colors.green);
80
+ const { path: wranglerPath, dir: projectDir, format: wranglerFormat } = wranglerInfo;
81
+ log(`Found wrangler config at: ${wranglerPath}`, colors.green);
79
82
 
80
83
  // Change to project directory
81
84
  process.chdir(projectDir);
@@ -176,22 +179,36 @@ async function main() {
176
179
 
177
180
  log(`\nDatabase ID: ${dbId}`, colors.green);
178
181
 
179
- // Update wrangler.toml with the new database ID
180
- log('\nUpdating wrangler.toml...', colors.yellow);
182
+ // Update wrangler config with the new database ID
183
+ const configBasename = wranglerPath.split('/').pop();
184
+ log(`\nUpdating ${configBasename}...`, colors.yellow);
181
185
  try {
182
186
  let wranglerContent = readFileSync(wranglerPath, 'utf-8');
183
- wranglerContent = wranglerContent.replace(
184
- /database_id\s*=\s*"[^"]*"/,
185
- `database_id = "${dbId}"`
186
- );
187
- wranglerContent = wranglerContent.replace(
188
- /database_name\s*=\s*"[^"]*"/,
189
- `database_name = "${dbName}"`
190
- );
187
+ if (wranglerFormat === 'toml') {
188
+ // TOML syntax: database_id = "value"
189
+ wranglerContent = wranglerContent.replace(
190
+ /database_id\s*=\s*"[^"]*"/,
191
+ `database_id = "${dbId}"`
192
+ );
193
+ wranglerContent = wranglerContent.replace(
194
+ /database_name\s*=\s*"[^"]*"/,
195
+ `database_name = "${dbName}"`
196
+ );
197
+ } else {
198
+ // JSON/JSONC syntax: "database_id": "value"
199
+ wranglerContent = wranglerContent.replace(
200
+ /"database_id"\s*:\s*"[^"]*"/,
201
+ `"database_id": "${dbId}"`
202
+ );
203
+ wranglerContent = wranglerContent.replace(
204
+ /"database_name"\s*:\s*"[^"]*"/,
205
+ `"database_name": "${dbName}"`
206
+ );
207
+ }
191
208
  writeFileSync(wranglerPath, wranglerContent);
192
- log('Updated wrangler.toml successfully', colors.green);
209
+ log(`Updated ${configBasename} successfully`, colors.green);
193
210
  } catch (error) {
194
- log(`Error updating wrangler.toml: ${error.message}`, colors.red);
211
+ log(`Error updating ${configBasename}: ${error.message}`, colors.red);
195
212
  process.exit(1);
196
213
  }
197
214
 
@@ -0,0 +1,6 @@
1
+ export { renderDocumentFormPage, renderVersionHistoryFragment } from './chunk-E3TQG7AA.js';
2
+ import './chunk-SXC4HPK6.js';
3
+ import './chunk-TQABQWOP.js';
4
+ import './chunk-V4OQ3NZ2.js';
5
+ //# sourceMappingURL=admin-documents-form.template-JWV5GITD.js.map
6
+ //# sourceMappingURL=admin-documents-form.template-JWV5GITD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-documents-form.template-55V2ZGWT.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-documents-form.template-JWV5GITD.js"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var chunkTT3TQSCZ_cjs = require('./chunk-TT3TQSCZ.cjs');
4
+ require('./chunk-MI2YXCK4.cjs');
5
+ require('./chunk-MNWKYY5E.cjs');
6
+ require('./chunk-IGJUBJBW.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "renderDocumentFormPage", {
11
+ enumerable: true,
12
+ get: function () { return chunkTT3TQSCZ_cjs.renderDocumentFormPage; }
13
+ });
14
+ Object.defineProperty(exports, "renderVersionHistoryFragment", {
15
+ enumerable: true,
16
+ get: function () { return chunkTT3TQSCZ_cjs.renderVersionHistoryFragment; }
17
+ });
18
+ //# sourceMappingURL=admin-documents-form.template-UWKGVAMW.cjs.map
19
+ //# sourceMappingURL=admin-documents-form.template-UWKGVAMW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-layout-catalyst.template-6UQGLCKI.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-documents-form.template-UWKGVAMW.cjs"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkMI2YXCK4_cjs = require('./chunk-MI2YXCK4.cjs');
4
+ require('./chunk-IGJUBJBW.cjs');
5
+
6
+ chunkMI2YXCK4_cjs.init_admin_layout_catalyst_template();
7
+
8
+ Object.defineProperty(exports, "renderAdminLayoutCatalyst", {
9
+ enumerable: true,
10
+ get: function () { return chunkMI2YXCK4_cjs.renderAdminLayoutCatalyst; }
11
+ });
12
+ Object.defineProperty(exports, "renderCatalystCheckbox", {
13
+ enumerable: true,
14
+ get: function () { return chunkMI2YXCK4_cjs.renderCatalystCheckbox; }
15
+ });
16
+ Object.defineProperty(exports, "setBranchLabel", {
17
+ enumerable: true,
18
+ get: function () { return chunkMI2YXCK4_cjs.setBranchLabel; }
19
+ });
20
+ //# sourceMappingURL=admin-layout-catalyst.template-MOQ3BBXA.cjs.map
21
+ //# sourceMappingURL=admin-layout-catalyst.template-MOQ3BBXA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-layout-catalyst.template-3XZXDGF7.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-layout-catalyst.template-MOQ3BBXA.cjs"}
@@ -0,0 +1,7 @@
1
+ import { init_admin_layout_catalyst_template } from './chunk-SXC4HPK6.js';
2
+ export { renderAdminLayoutCatalyst, renderCatalystCheckbox, setBranchLabel } from './chunk-SXC4HPK6.js';
3
+ import './chunk-V4OQ3NZ2.js';
4
+
5
+ init_admin_layout_catalyst_template();
6
+ //# sourceMappingURL=admin-layout-catalyst.template-WCYMQVTZ.js.map
7
+ //# sourceMappingURL=admin-layout-catalyst.template-WCYMQVTZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-documents-form.template-YNAVMJCV.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"admin-layout-catalyst.template-WCYMQVTZ.js"}
@@ -1,11 +1,9 @@
1
- import * as better_auth_client from 'better-auth/client';
2
- import * as better_auth_plugins_email_otp from 'better-auth/plugins/email-otp';
3
1
  import * as better_auth from 'better-auth';
4
- import * as better_auth_plugins_magic_link from 'better-auth/plugins/magic-link';
5
- import * as better_call from 'better-call';
2
+ import * as better_auth_plugins from 'better-auth/plugins';
6
3
  import * as zod_v4_core from 'zod/v4/core';
7
4
  import * as zod from 'zod';
8
5
  import { z } from 'zod';
6
+ import * as better_call from 'better-call';
9
7
  import { i as HookSystemLike, E as EmailProvider } from './types-DT7XN5TX.js';
10
8
  import { Hono, MiddlewareHandler, Context } from 'hono';
11
9
  import { D1Database, KVNamespace, R2Bucket } from '@cloudflare/workers-types';
@@ -22,6 +20,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
22
20
  signInMagicLink: better_call.StrictEndpoint<"/sign-in/magic-link", {
23
21
  method: "POST";
24
22
  requireHeaders: true;
23
+ use: ((inputContext: better_call.MiddlewareInputContext<better_call.MiddlewareOptions>) => Promise<void>)[];
25
24
  body: zod.ZodObject<{
26
25
  email: zod.ZodEmail;
27
26
  name: zod.ZodOptional<zod.ZodString>;
@@ -120,7 +119,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
120
119
  window: number;
121
120
  max: number;
122
121
  }[];
123
- options: better_auth_plugins_magic_link.MagicLinkOptions;
122
+ options: better_auth_plugins.MagicLinkOptions;
124
123
  } | {
125
124
  id: "email-otp";
126
125
  version: string;
@@ -138,6 +137,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
138
137
  endpoints: {
139
138
  sendVerificationOTP: better_call.StrictEndpoint<"/email-otp/send-verification-otp", {
140
139
  method: "POST";
140
+ use: ((inputContext: better_call.MiddlewareInputContext<better_call.MiddlewareOptions>) => Promise<void>)[];
141
141
  body: zod.ZodObject<{
142
142
  email: zod.ZodString;
143
143
  type: zod.ZodEnum<{
@@ -646,13 +646,13 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
646
646
  window: number;
647
647
  max: number;
648
648
  })[];
649
- options: better_auth_plugins_email_otp.EmailOTPOptions;
649
+ options: better_auth_plugins.EmailOTPOptions;
650
650
  $ERROR_CODES: {
651
651
  OTP_EXPIRED: better_auth.RawError<"OTP_EXPIRED">;
652
652
  INVALID_OTP: better_auth.RawError<"INVALID_OTP">;
653
653
  TOO_MANY_ATTEMPTS: better_auth.RawError<"TOO_MANY_ATTEMPTS">;
654
654
  };
655
- } | better_auth_client.DefaultOrganizationPlugin<{
655
+ } | better_auth_plugins.DefaultOrganizationPlugin<{
656
656
  schema: {
657
657
  organization: {
658
658
  modelName: string;
@@ -1,11 +1,9 @@
1
- import * as better_auth_client from 'better-auth/client';
2
- import * as better_auth_plugins_email_otp from 'better-auth/plugins/email-otp';
3
1
  import * as better_auth from 'better-auth';
4
- import * as better_auth_plugins_magic_link from 'better-auth/plugins/magic-link';
5
- import * as better_call from 'better-call';
2
+ import * as better_auth_plugins from 'better-auth/plugins';
6
3
  import * as zod_v4_core from 'zod/v4/core';
7
4
  import * as zod from 'zod';
8
5
  import { z } from 'zod';
6
+ import * as better_call from 'better-call';
9
7
  import { i as HookSystemLike, E as EmailProvider } from './types-DT7XN5TX.cjs';
10
8
  import { Hono, MiddlewareHandler, Context } from 'hono';
11
9
  import { D1Database, KVNamespace, R2Bucket } from '@cloudflare/workers-types';
@@ -22,6 +20,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
22
20
  signInMagicLink: better_call.StrictEndpoint<"/sign-in/magic-link", {
23
21
  method: "POST";
24
22
  requireHeaders: true;
23
+ use: ((inputContext: better_call.MiddlewareInputContext<better_call.MiddlewareOptions>) => Promise<void>)[];
25
24
  body: zod.ZodObject<{
26
25
  email: zod.ZodEmail;
27
26
  name: zod.ZodOptional<zod.ZodString>;
@@ -120,7 +119,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
120
119
  window: number;
121
120
  max: number;
122
121
  }[];
123
- options: better_auth_plugins_magic_link.MagicLinkOptions;
122
+ options: better_auth_plugins.MagicLinkOptions;
124
123
  } | {
125
124
  id: "email-otp";
126
125
  version: string;
@@ -138,6 +137,7 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
138
137
  endpoints: {
139
138
  sendVerificationOTP: better_call.StrictEndpoint<"/email-otp/send-verification-otp", {
140
139
  method: "POST";
140
+ use: ((inputContext: better_call.MiddlewareInputContext<better_call.MiddlewareOptions>) => Promise<void>)[];
141
141
  body: zod.ZodObject<{
142
142
  email: zod.ZodString;
143
143
  type: zod.ZodEnum<{
@@ -646,13 +646,13 @@ declare function getDefaultAuthOptions(env: Bindings, requestBaseURL?: string):
646
646
  window: number;
647
647
  max: number;
648
648
  })[];
649
- options: better_auth_plugins_email_otp.EmailOTPOptions;
649
+ options: better_auth_plugins.EmailOTPOptions;
650
650
  $ERROR_CODES: {
651
651
  OTP_EXPIRED: better_auth.RawError<"OTP_EXPIRED">;
652
652
  INVALID_OTP: better_auth.RawError<"INVALID_OTP">;
653
653
  TOO_MANY_ATTEMPTS: better_auth.RawError<"TOO_MANY_ATTEMPTS">;
654
654
  };
655
- } | better_auth_client.DefaultOrganizationPlugin<{
655
+ } | better_auth_plugins.DefaultOrganizationPlugin<{
656
656
  schema: {
657
657
  organization: {
658
658
  modelName: string;
@@ -0,0 +1,41 @@
1
+ 'use strict';
2
+
3
+ var chunkFZGIU5AZ_cjs = require('./chunk-FZGIU5AZ.cjs');
4
+ require('./chunk-IGJUBJBW.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "clearCatalog", {
9
+ enumerable: true,
10
+ get: function () { return chunkFZGIU5AZ_cjs.clearCatalog; }
11
+ });
12
+ Object.defineProperty(exports, "clearKvCatalog", {
13
+ enumerable: true,
14
+ get: function () { return chunkFZGIU5AZ_cjs.clearKvCatalog; }
15
+ });
16
+ Object.defineProperty(exports, "getCatalog", {
17
+ enumerable: true,
18
+ get: function () { return chunkFZGIU5AZ_cjs.getCatalog; }
19
+ });
20
+ Object.defineProperty(exports, "getCatalogStats", {
21
+ enumerable: true,
22
+ get: function () { return chunkFZGIU5AZ_cjs.getCatalogStats; }
23
+ });
24
+ Object.defineProperty(exports, "loadKvCatalog", {
25
+ enumerable: true,
26
+ get: function () { return chunkFZGIU5AZ_cjs.loadKvCatalog; }
27
+ });
28
+ Object.defineProperty(exports, "recordCatalogRequest", {
29
+ enumerable: true,
30
+ get: function () { return chunkFZGIU5AZ_cjs.recordCatalogRequest; }
31
+ });
32
+ Object.defineProperty(exports, "scheduleKvWrite", {
33
+ enumerable: true,
34
+ get: function () { return chunkFZGIU5AZ_cjs.scheduleKvWrite; }
35
+ });
36
+ Object.defineProperty(exports, "setGlobalCatalogKv", {
37
+ enumerable: true,
38
+ get: function () { return chunkFZGIU5AZ_cjs.setGlobalCatalogKv; }
39
+ });
40
+ //# sourceMappingURL=catalog-56DR6OXI.cjs.map
41
+ //# sourceMappingURL=catalog-56DR6OXI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"catalog-56DR6OXI.cjs"}
@@ -0,0 +1,4 @@
1
+ export { clearCatalog, clearKvCatalog, getCatalog, getCatalogStats, loadKvCatalog, recordCatalogRequest, scheduleKvWrite, setGlobalCatalogKv } from './chunk-F6BTBE4S.js';
2
+ import './chunk-V4OQ3NZ2.js';
3
+ //# sourceMappingURL=catalog-6MB37KY7.js.map
4
+ //# sourceMappingURL=catalog-6MB37KY7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"catalog-6MB37KY7.js"}
@@ -249,6 +249,58 @@ function validateCollectionConfig(config) {
249
249
  errors
250
250
  };
251
251
  }
252
+
253
+ // src/middleware/plugin-middleware.ts
254
+ var _pluginStatusCache = /* @__PURE__ */ new Map();
255
+ function invalidatePluginStatusCache(pluginId) {
256
+ if (pluginId) {
257
+ _pluginStatusCache.delete(pluginId);
258
+ } else {
259
+ _pluginStatusCache.clear();
260
+ }
261
+ }
262
+ async function isPluginActive(db, pluginId) {
263
+ if (_pluginStatusCache.has(pluginId)) {
264
+ return _pluginStatusCache.get(pluginId);
265
+ }
266
+ try {
267
+ const docResult = await db.prepare(
268
+ `SELECT json_extract(data, '$.status') as status FROM documents
269
+ WHERE slug = ? AND type_id = 'plugin' AND tenant_id = 'default'
270
+ AND is_current_draft = 1 AND deleted_at IS NULL`
271
+ ).bind(pluginId).first();
272
+ const active = docResult?.status === "active";
273
+ _pluginStatusCache.set(pluginId, active);
274
+ return active;
275
+ } catch (error) {
276
+ console.error(`[isPluginActive] Error checking plugin status for ${pluginId}:`, error);
277
+ return false;
278
+ }
279
+ }
280
+ async function requireActivePlugin(db, pluginId) {
281
+ const isActive = await isPluginActive(db, pluginId);
282
+ if (!isActive) {
283
+ throw new Error(`Plugin '${pluginId}' is required but is not active`);
284
+ }
285
+ }
286
+ async function requireActivePlugins(db, pluginIds) {
287
+ for (const pluginId of pluginIds) {
288
+ await requireActivePlugin(db, pluginId);
289
+ }
290
+ }
291
+ async function getActivePlugins(db) {
292
+ try {
293
+ const { results } = await db.prepare(
294
+ `SELECT slug as id, json_extract(data, '$.status') as status, data FROM documents
295
+ WHERE type_id = 'plugin' AND tenant_id = 'default'
296
+ AND q_plugin_status = 'active' AND is_current_draft = 1 AND deleted_at IS NULL`
297
+ ).all();
298
+ return results || [];
299
+ } catch (error) {
300
+ console.error("[getActivePlugins] Error fetching active plugins:", error);
301
+ return [];
302
+ }
303
+ }
252
304
  var TENANT_COOKIE = "sonicjs-tenant";
253
305
  var TENANT_SWITCHER_MARKER = "<!-- TENANT_SWITCHER -->";
254
306
  var MULTI_TENANT_PLUGIN_ID = "multi-tenant";
@@ -557,6 +609,7 @@ var PluginService = class {
557
609
  await this.db.prepare(`UPDATE plugins SET status = 'active' WHERE id = ?`).bind(pluginId).run().catch(() => {
558
610
  });
559
611
  invalidateTenantCache();
612
+ invalidatePluginStatusCache(pluginId);
560
613
  await this.logActivity(pluginId, "activated", null);
561
614
  }
562
615
  async deactivatePlugin(pluginId) {
@@ -573,6 +626,7 @@ var PluginService = class {
573
626
  await this.db.prepare(`UPDATE plugins SET status = 'inactive' WHERE id = ?`).bind(pluginId).run().catch(() => {
574
627
  });
575
628
  invalidateTenantCache();
629
+ invalidatePluginStatusCache(pluginId);
576
630
  await this.logActivity(pluginId, "deactivated", null);
577
631
  }
578
632
  async updatePluginSettings(pluginId, settings) {
@@ -1574,9 +1628,9 @@ var PluginBootstrapService = class {
1574
1628
  );
1575
1629
  await this.updatePlugin(plugin);
1576
1630
  }
1577
- if (plugin.id === "core-auth" && existingPlugin.status !== "active") {
1631
+ if (existingPlugin.status !== "active") {
1578
1632
  console.log(
1579
- `[PluginBootstrap] Core-auth plugin is inactive, activating it now...`
1633
+ `[PluginBootstrap] Activating bootstrapped plugin: ${plugin.display_name}`
1580
1634
  );
1581
1635
  await this.pluginService.activatePlugin(plugin.id);
1582
1636
  }
@@ -1616,20 +1670,22 @@ var PluginBootstrapService = class {
1616
1670
  */
1617
1671
  async isBootstrapNeeded() {
1618
1672
  try {
1619
- for (const corePlugin of this.CORE_PLUGINS.filter(
1620
- (p) => p.name.startsWith("core-")
1621
- )) {
1622
- const exists = await this.pluginService.getPlugin(corePlugin.id);
1623
- if (!exists) {
1624
- return true;
1625
- }
1626
- }
1627
- return false;
1673
+ const corePlugins = this.CORE_PLUGINS.filter((p) => p.name.startsWith("core-"));
1674
+ if (!corePlugins.length) return false;
1675
+ const slugs = corePlugins.map((p) => `'${p.id.replace(/'/g, "''")}'`).join(",");
1676
+ const res = await this.db.prepare(
1677
+ `SELECT
1678
+ COUNT(DISTINCT slug) AS installed,
1679
+ COUNT(DISTINCT CASE WHEN json_extract(data, '$.status') = 'active' THEN slug END) AS active
1680
+ FROM documents
1681
+ WHERE slug IN (${slugs}) AND type_id = 'plugin'
1682
+ AND tenant_id = 'default' AND is_current_draft = 1 AND deleted_at IS NULL`
1683
+ ).first();
1684
+ const installed = res?.installed ?? 0;
1685
+ const active = res?.active ?? 0;
1686
+ return installed < corePlugins.length || active < installed;
1628
1687
  } catch (error) {
1629
- console.error(
1630
- "[PluginBootstrap] Error checking bootstrap status:",
1631
- error
1632
- );
1688
+ console.error("[PluginBootstrap] Error checking bootstrap status:", error);
1633
1689
  return true;
1634
1690
  }
1635
1691
  }
@@ -1896,6 +1952,7 @@ exports.TelemetryService = TelemetryService;
1896
1952
  exports.collectionRecordToRow = collectionRecordToRow;
1897
1953
  exports.createInstallationIdentity = createInstallationIdentity;
1898
1954
  exports.findPluginByCodeName = findPluginByCodeName;
1955
+ exports.getActivePlugins = getActivePlugins;
1899
1956
  exports.getAvailableCollectionNames = getAvailableCollectionNames;
1900
1957
  exports.getCollectionRegistry = getCollectionRegistry;
1901
1958
  exports.getTelemetryService = getTelemetryService;
@@ -1904,11 +1961,14 @@ exports.initTelemetry = initTelemetry;
1904
1961
  exports.invalidateTenantCache = invalidateTenantCache;
1905
1962
  exports.isCodeCollectionInternal = isCodeCollectionInternal;
1906
1963
  exports.isDbDocTypeInternal = isDbDocTypeInternal;
1964
+ exports.isPluginActive = isPluginActive;
1907
1965
  exports.loadCollectionConfig = loadCollectionConfig;
1908
1966
  exports.loadCollectionConfigs = loadCollectionConfigs;
1909
1967
  exports.registerCollections = registerCollections;
1968
+ exports.requireActivePlugin = requireActivePlugin;
1969
+ exports.requireActivePlugins = requireActivePlugins;
1910
1970
  exports.resetCollectionRegistry = resetCollectionRegistry;
1911
1971
  exports.tenantMiddleware = tenantMiddleware;
1912
1972
  exports.validateCollectionConfig = validateCollectionConfig;
1913
- //# sourceMappingURL=chunk-QCJHCSOK.cjs.map
1914
- //# sourceMappingURL=chunk-QCJHCSOK.cjs.map
1973
+ //# sourceMappingURL=chunk-4DHPR7KR.cjs.map
1974
+ //# sourceMappingURL=chunk-4DHPR7KR.cjs.map