dineway 0.1.9 → 0.1.11

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 (689) hide show
  1. package/README.md +63 -17
  2. package/dist/activity-events-BsMaXdJa.mjs +540 -0
  3. package/dist/allowed-origins-DG86sH8U.mjs +68 -0
  4. package/dist/api/route-utils.d.mts +41 -0
  5. package/dist/api/route-utils.mjs +26 -0
  6. package/dist/api/schemas/index.d.mts +3 -0
  7. package/dist/api/schemas/index.mjs +6 -0
  8. package/dist/api/schemas/setup.d.mts +42 -0
  9. package/dist/api/schemas/setup.mjs +39 -0
  10. package/dist/api-Cmy8Rjk5.mjs +2704 -0
  11. package/dist/api-tokens-Bu3ez1MO.mjs +153 -0
  12. package/dist/api-tokens-DzloJxuh.mjs +3 -0
  13. package/dist/{apply-iVSqz2qs.mjs → apply-Co5imxxT.mjs} +15 -689
  14. package/dist/astro/index.d.mts +10 -6
  15. package/dist/astro/index.mjs +86 -11
  16. package/dist/astro/middleware/auth.d.mts +10 -7
  17. package/dist/astro/middleware/auth.mjs +19 -104
  18. package/dist/astro/middleware/redirect.mjs +24 -14
  19. package/dist/astro/middleware/request-context.mjs +9 -6
  20. package/dist/astro/middleware/setup.mjs +1 -1
  21. package/dist/astro/middleware.mjs +86 -145
  22. package/dist/astro/routes/PluginRegistry.d.mts +14 -0
  23. package/dist/astro/routes/PluginRegistry.mjs +24 -0
  24. package/dist/astro/routes/api/admin/allowed-domains/_domain_.d.mts +14 -0
  25. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +65 -0
  26. package/dist/astro/routes/api/admin/allowed-domains/index.d.mts +14 -0
  27. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +65 -0
  28. package/dist/astro/routes/api/admin/api-tokens/_id_.d.mts +10 -0
  29. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +33 -0
  30. package/dist/astro/routes/api/admin/api-tokens/index.d.mts +16 -0
  31. package/dist/astro/routes/api/admin/api-tokens/index.mjs +59 -0
  32. package/dist/astro/routes/api/admin/briefing.d.mts +7 -0
  33. package/dist/astro/routes/api/admin/briefing.mjs +71 -0
  34. package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts +9 -0
  35. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +74 -0
  36. package/dist/astro/routes/api/admin/bylines/index.d.mts +8 -0
  37. package/dist/astro/routes/api/admin/bylines/index.mjs +61 -0
  38. package/dist/astro/routes/api/admin/comments/_id_/status.d.mts +7 -0
  39. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +80 -0
  40. package/dist/astro/routes/api/admin/comments/_id_.d.mts +14 -0
  41. package/dist/astro/routes/api/admin/comments/_id_.mjs +46 -0
  42. package/dist/astro/routes/api/admin/comments/bulk.d.mts +7 -0
  43. package/dist/astro/routes/api/admin/comments/bulk.mjs +36 -0
  44. package/dist/astro/routes/api/admin/comments/counts.d.mts +7 -0
  45. package/dist/astro/routes/api/admin/comments/counts.mjs +24 -0
  46. package/dist/astro/routes/api/admin/comments/index.d.mts +10 -0
  47. package/dist/astro/routes/api/admin/comments/index.mjs +40 -0
  48. package/dist/astro/routes/api/admin/context/_id_/history.d.mts +7 -0
  49. package/dist/astro/routes/api/admin/context/_id_/history.mjs +45 -0
  50. package/dist/astro/routes/api/admin/context/_id_/index.d.mts +7 -0
  51. package/dist/astro/routes/api/admin/context/_id_/index.mjs +45 -0
  52. package/dist/astro/routes/api/admin/context/_id_/review.d.mts +7 -0
  53. package/dist/astro/routes/api/admin/context/_id_/review.mjs +60 -0
  54. package/dist/astro/routes/api/admin/context/_id_/supersede.d.mts +7 -0
  55. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +63 -0
  56. package/dist/astro/routes/api/admin/context/diff.d.mts +7 -0
  57. package/dist/astro/routes/api/admin/context/diff.mjs +49 -0
  58. package/dist/astro/routes/api/admin/context/index.d.mts +8 -0
  59. package/dist/astro/routes/api/admin/context/index.mjs +71 -0
  60. package/dist/astro/routes/api/admin/context/stale.d.mts +7 -0
  61. package/dist/astro/routes/api/admin/context/stale.mjs +49 -0
  62. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.d.mts +7 -0
  63. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +51 -0
  64. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.d.mts +7 -0
  65. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +67 -0
  66. package/dist/astro/routes/api/admin/hitl-requests/index.d.mts +7 -0
  67. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +55 -0
  68. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts +7 -0
  69. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +98 -0
  70. package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts +7 -0
  71. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +33 -0
  72. package/dist/astro/routes/api/admin/oauth-clients/_id_.d.mts +18 -0
  73. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +79 -0
  74. package/dist/astro/routes/api/admin/oauth-clients/index.d.mts +14 -0
  75. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +58 -0
  76. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts +7 -0
  77. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +89 -0
  78. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts +7 -0
  79. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +89 -0
  80. package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts +7 -0
  81. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +54 -0
  82. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts +7 -0
  83. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +98 -0
  84. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts +7 -0
  85. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +131 -0
  86. package/dist/astro/routes/api/admin/plugins/index.d.mts +7 -0
  87. package/dist/astro/routes/api/admin/plugins/index.mjs +52 -0
  88. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts +7 -0
  89. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +36 -0
  90. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.d.mts +7 -0
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +54 -0
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts +7 -0
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +128 -0
  94. package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts +7 -0
  95. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +61 -0
  96. package/dist/astro/routes/api/admin/plugins/updates.d.mts +7 -0
  97. package/dist/astro/routes/api/admin/plugins/updates.mjs +52 -0
  98. package/dist/astro/routes/api/admin/review-requests/_id_/index.d.mts +7 -0
  99. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +26 -0
  100. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.d.mts +7 -0
  101. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +97 -0
  102. package/dist/astro/routes/api/admin/review-requests/index.d.mts +7 -0
  103. package/dist/astro/routes/api/admin/review-requests/index.mjs +31 -0
  104. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.d.mts +7 -0
  105. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +54 -0
  106. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts +7 -0
  107. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +36 -0
  108. package/dist/astro/routes/api/admin/themes/marketplace/index.d.mts +7 -0
  109. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +70 -0
  110. package/dist/astro/routes/api/admin/users/_id_/disable.d.mts +7 -0
  111. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +38 -0
  112. package/dist/astro/routes/api/admin/users/_id_/enable.d.mts +7 -0
  113. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +29 -0
  114. package/dist/astro/routes/api/admin/users/_id_/index.d.mts +8 -0
  115. package/dist/astro/routes/api/admin/users/_id_/index.mjs +104 -0
  116. package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts +7 -0
  117. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +43 -0
  118. package/dist/astro/routes/api/admin/users/index.d.mts +7 -0
  119. package/dist/astro/routes/api/admin/users/index.mjs +54 -0
  120. package/dist/astro/routes/api/auth/dev-bypass.d.mts +8 -0
  121. package/dist/astro/routes/api/auth/dev-bypass.mjs +81 -0
  122. package/dist/astro/routes/api/auth/invite/accept.d.mts +7 -0
  123. package/dist/astro/routes/api/auth/invite/accept.mjs +31 -0
  124. package/dist/astro/routes/api/auth/invite/complete.d.mts +7 -0
  125. package/dist/astro/routes/api/auth/invite/complete.mjs +54 -0
  126. package/dist/astro/routes/api/auth/invite/index.d.mts +7 -0
  127. package/dist/astro/routes/api/auth/invite/index.mjs +51 -0
  128. package/dist/astro/routes/api/auth/invite/register-options.d.mts +7 -0
  129. package/dist/astro/routes/api/auth/invite/register-options.mjs +44 -0
  130. package/dist/astro/routes/api/auth/logout.d.mts +7 -0
  131. package/dist/astro/routes/api/auth/logout.mjs +24 -0
  132. package/dist/astro/routes/api/auth/magic-link/send.d.mts +7 -0
  133. package/dist/astro/routes/api/auth/magic-link/send.mjs +48 -0
  134. package/dist/astro/routes/api/auth/magic-link/verify.d.mts +7 -0
  135. package/dist/astro/routes/api/auth/magic-link/verify.mjs +32 -0
  136. package/dist/astro/routes/api/auth/me.d.mts +13 -0
  137. package/dist/astro/routes/api/auth/me.mjs +41 -0
  138. package/dist/astro/routes/api/auth/mode.d.mts +7 -0
  139. package/dist/astro/routes/api/auth/mode.mjs +28 -0
  140. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts +7 -0
  141. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +114 -0
  142. package/dist/astro/routes/api/auth/oauth/_provider_.d.mts +7 -0
  143. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +58 -0
  144. package/dist/astro/routes/api/auth/passkey/_id_.d.mts +14 -0
  145. package/dist/astro/routes/api/auth/passkey/_id_.mjs +62 -0
  146. package/dist/astro/routes/api/auth/passkey/index.d.mts +7 -0
  147. package/dist/astro/routes/api/auth/passkey/index.mjs +25 -0
  148. package/dist/astro/routes/api/auth/passkey/options.d.mts +7 -0
  149. package/dist/astro/routes/api/auth/passkey/options.mjs +46 -0
  150. package/dist/astro/routes/api/auth/passkey/register/options.d.mts +7 -0
  151. package/dist/astro/routes/api/auth/passkey/register/options.mjs +44 -0
  152. package/dist/astro/routes/api/auth/passkey/register/verify.d.mts +7 -0
  153. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +59 -0
  154. package/dist/astro/routes/api/auth/passkey/verify.d.mts +7 -0
  155. package/dist/astro/routes/api/auth/passkey/verify.mjs +47 -0
  156. package/dist/astro/routes/api/auth/signup/complete.d.mts +7 -0
  157. package/dist/astro/routes/api/auth/signup/complete.mjs +55 -0
  158. package/dist/astro/routes/api/auth/signup/request.d.mts +7 -0
  159. package/dist/astro/routes/api/auth/signup/request.mjs +44 -0
  160. package/dist/astro/routes/api/auth/signup/verify.d.mts +7 -0
  161. package/dist/astro/routes/api/auth/signup/verify.mjs +32 -0
  162. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +14 -0
  163. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +193 -0
  164. package/dist/astro/routes/api/content/_collection_/_id_/compare.d.mts +7 -0
  165. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +17 -0
  166. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts +7 -0
  167. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +36 -0
  168. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.d.mts +7 -0
  169. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +39 -0
  170. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts +7 -0
  171. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +31 -0
  172. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts +7 -0
  173. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +78 -0
  174. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +7 -0
  175. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +92 -0
  176. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts +7 -0
  177. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +36 -0
  178. package/dist/astro/routes/api/content/_collection_/_id_/revisions.d.mts +7 -0
  179. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +19 -0
  180. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts +8 -0
  181. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +75 -0
  182. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts +14 -0
  183. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +85 -0
  184. package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts +7 -0
  185. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +40 -0
  186. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts +7 -0
  187. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +36 -0
  188. package/dist/astro/routes/api/content/_collection_/_id_.d.mts +9 -0
  189. package/dist/astro/routes/api/content/_collection_/_id_.mjs +114 -0
  190. package/dist/astro/routes/api/content/_collection_/index.d.mts +8 -0
  191. package/dist/astro/routes/api/content/_collection_/index.mjs +74 -0
  192. package/dist/astro/routes/api/content/_collection_/trash.d.mts +7 -0
  193. package/dist/astro/routes/api/content/_collection_/trash.mjs +23 -0
  194. package/dist/astro/routes/api/dashboard.d.mts +7 -0
  195. package/dist/astro/routes/api/dashboard.mjs +26 -0
  196. package/dist/astro/routes/api/dev/emails.d.mts +8 -0
  197. package/dist/astro/routes/api/dev/emails.mjs +17 -0
  198. package/dist/astro/routes/api/health.d.mts +7 -0
  199. package/dist/astro/routes/api/health.mjs +34 -0
  200. package/dist/astro/routes/api/import/probe.d.mts +17 -0
  201. package/dist/astro/routes/api/import/probe.mjs +33 -0
  202. package/dist/astro/routes/api/import/wordpress/analyze.d.mts +87 -0
  203. package/dist/astro/routes/api/import/wordpress/analyze.mjs +305 -0
  204. package/dist/astro/routes/api/import/wordpress/execute.d.mts +37 -0
  205. package/dist/astro/routes/api/import/wordpress/execute.mjs +197 -0
  206. package/dist/astro/routes/api/import/wordpress/media.d.mts +35 -0
  207. package/dist/astro/routes/api/import/wordpress/media.mjs +222 -0
  208. package/dist/astro/routes/api/import/wordpress/prepare.d.mts +19 -0
  209. package/dist/astro/routes/api/import/wordpress/prepare.mjs +155 -0
  210. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +21 -0
  211. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +289 -0
  212. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +15 -0
  213. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +69 -0
  214. package/dist/astro/routes/api/import/wordpress-plugin/callback.d.mts +7 -0
  215. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +28 -0
  216. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +19 -0
  217. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +268 -0
  218. package/dist/astro/routes/api/manifest.d.mts +7 -0
  219. package/dist/astro/routes/api/manifest.mjs +50 -0
  220. package/dist/astro/routes/api/mcp.d.mts +15 -0
  221. package/dist/astro/routes/api/mcp.mjs +2700 -0
  222. package/dist/astro/routes/api/media/_id_/confirm.d.mts +10 -0
  223. package/dist/astro/routes/api/media/_id_/confirm.mjs +59 -0
  224. package/dist/astro/routes/api/media/_id_.d.mts +22 -0
  225. package/dist/astro/routes/api/media/_id_.mjs +81 -0
  226. package/dist/astro/routes/api/media/file/_...key_.d.mts +7 -0
  227. package/dist/astro/routes/api/media/file/_...key_.mjs +49 -0
  228. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.d.mts +14 -0
  229. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +49 -0
  230. package/dist/astro/routes/api/media/providers/_providerId_/index.d.mts +14 -0
  231. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +72 -0
  232. package/dist/astro/routes/api/media/providers/index.d.mts +10 -0
  233. package/dist/astro/routes/api/media/providers/index.mjs +18 -0
  234. package/dist/astro/routes/api/media/upload-url.d.mts +10 -0
  235. package/dist/astro/routes/api/media/upload-url.mjs +82 -0
  236. package/dist/astro/routes/api/media.d.mts +16 -0
  237. package/dist/astro/routes/api/media.mjs +137 -0
  238. package/dist/astro/routes/api/menus/_name_/items.d.mts +9 -0
  239. package/{src/astro/routes/api/menus/[name]/items.ts → dist/astro/routes/api/menus/_name_/items.mjs} +63 -105
  240. package/dist/astro/routes/api/menus/_name_/reorder.d.mts +7 -0
  241. package/dist/astro/routes/api/menus/_name_/reorder.mjs +77 -0
  242. package/dist/astro/routes/api/menus/_name_.d.mts +9 -0
  243. package/dist/astro/routes/api/menus/_name_.mjs +123 -0
  244. package/dist/astro/routes/api/menus/index.d.mts +8 -0
  245. package/dist/astro/routes/api/menus/index.mjs +84 -0
  246. package/dist/astro/routes/api/oauth/authorize.d.mts +8 -0
  247. package/dist/astro/routes/api/oauth/authorize.mjs +265 -0
  248. package/dist/astro/routes/api/oauth/device/authorize.d.mts +7 -0
  249. package/dist/astro/routes/api/oauth/device/authorize.mjs +30 -0
  250. package/dist/astro/routes/api/oauth/device/code.d.mts +7 -0
  251. package/dist/astro/routes/api/oauth/device/code.mjs +34 -0
  252. package/dist/astro/routes/api/oauth/device/token.d.mts +7 -0
  253. package/dist/astro/routes/api/oauth/device/token.mjs +45 -0
  254. package/dist/astro/routes/api/oauth/register.d.mts +8 -0
  255. package/dist/astro/routes/api/oauth/register.mjs +115 -0
  256. package/dist/astro/routes/api/oauth/token/refresh.d.mts +7 -0
  257. package/dist/astro/routes/api/oauth/token/refresh.mjs +28 -0
  258. package/dist/astro/routes/api/oauth/token/revoke.d.mts +7 -0
  259. package/dist/astro/routes/api/oauth/token/revoke.mjs +25 -0
  260. package/dist/astro/routes/api/oauth/token.d.mts +8 -0
  261. package/dist/astro/routes/api/oauth/token.mjs +138 -0
  262. package/dist/astro/routes/api/openapi.json.d.mts +7 -0
  263. package/dist/astro/routes/api/openapi.json.mjs +2638 -0
  264. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +11 -0
  265. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +77 -0
  266. package/dist/astro/routes/api/redirects/404s/index.d.mts +9 -0
  267. package/dist/astro/routes/api/redirects/404s/index.mjs +62 -0
  268. package/dist/astro/routes/api/redirects/404s/summary.d.mts +7 -0
  269. package/dist/astro/routes/api/redirects/404s/summary.mjs +34 -0
  270. package/dist/astro/routes/api/redirects/_id_.d.mts +9 -0
  271. package/dist/astro/routes/api/redirects/_id_.mjs +152 -0
  272. package/dist/astro/routes/api/redirects/index.d.mts +8 -0
  273. package/dist/astro/routes/api/redirects/index.mjs +97 -0
  274. package/dist/astro/routes/api/revisions/_revisionId_/index.d.mts +7 -0
  275. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +16 -0
  276. package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts +7 -0
  277. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +23 -0
  278. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.d.mts +9 -0
  279. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +98 -0
  280. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.d.mts +8 -0
  281. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +80 -0
  282. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.d.mts +7 -0
  283. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +67 -0
  284. package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts +9 -0
  285. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +97 -0
  286. package/dist/astro/routes/api/schema/collections/index.d.mts +8 -0
  287. package/dist/astro/routes/api/schema/collections/index.mjs +77 -0
  288. package/dist/astro/routes/api/schema/index.d.mts +7 -0
  289. package/dist/astro/routes/api/schema/index.mjs +79 -0
  290. package/dist/astro/routes/api/schema/orphans/_slug_.d.mts +7 -0
  291. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +58 -0
  292. package/dist/astro/routes/api/schema/orphans/index.d.mts +7 -0
  293. package/dist/astro/routes/api/schema/orphans/index.mjs +53 -0
  294. package/dist/astro/routes/api/search/enable.d.mts +15 -0
  295. package/dist/astro/routes/api/search/enable.mjs +55 -0
  296. package/dist/astro/routes/api/search/index.d.mts +16 -0
  297. package/dist/astro/routes/api/search/index.mjs +52 -0
  298. package/dist/astro/routes/api/search/rebuild.d.mts +13 -0
  299. package/dist/astro/routes/api/search/rebuild.mjs +48 -0
  300. package/dist/astro/routes/api/search/stats.d.mts +10 -0
  301. package/dist/astro/routes/api/search/stats.mjs +28 -0
  302. package/dist/astro/routes/api/search/suggest.d.mts +15 -0
  303. package/dist/astro/routes/api/search/suggest.mjs +43 -0
  304. package/dist/astro/routes/api/sections/_slug_.d.mts +9 -0
  305. package/dist/astro/routes/api/sections/_slug_.mjs +156 -0
  306. package/dist/astro/routes/api/sections/index.d.mts +8 -0
  307. package/dist/astro/routes/api/sections/index.mjs +99 -0
  308. package/dist/astro/routes/api/settings/email.d.mts +17 -0
  309. package/dist/astro/routes/api/settings/email.mjs +102 -0
  310. package/dist/astro/routes/api/settings.d.mts +20 -0
  311. package/dist/astro/routes/api/settings.mjs +101 -0
  312. package/dist/astro/routes/api/setup/admin-verify.d.mts +7 -0
  313. package/dist/astro/routes/api/setup/admin-verify.mjs +67 -0
  314. package/dist/astro/routes/api/setup/admin.d.mts +7 -0
  315. package/dist/astro/routes/api/setup/admin.mjs +68 -0
  316. package/dist/astro/routes/api/setup/dev-bypass.d.mts +8 -0
  317. package/dist/astro/routes/api/setup/dev-bypass.mjs +137 -0
  318. package/dist/astro/routes/api/setup/dev-reset.d.mts +7 -0
  319. package/dist/astro/routes/api/setup/dev-reset.mjs +22 -0
  320. package/dist/astro/routes/api/setup/index.d.mts +7 -0
  321. package/dist/astro/routes/api/setup/index.mjs +93 -0
  322. package/dist/astro/routes/api/setup/status.d.mts +7 -0
  323. package/dist/astro/routes/api/setup/status.mjs +57 -0
  324. package/dist/astro/routes/api/snapshot.d.mts +7 -0
  325. package/dist/astro/routes/api/snapshot.mjs +227 -0
  326. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts +18 -0
  327. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +189 -0
  328. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts +14 -0
  329. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +113 -0
  330. package/dist/astro/routes/api/taxonomies/index.d.mts +14 -0
  331. package/dist/astro/routes/api/taxonomies/index.mjs +103 -0
  332. package/dist/astro/routes/api/themes/preview.d.mts +7 -0
  333. package/dist/astro/routes/api/themes/preview.mjs +47 -0
  334. package/dist/astro/routes/api/typegen.d.mts +17 -0
  335. package/dist/astro/routes/api/typegen.mjs +75 -0
  336. package/dist/astro/routes/api/well-known/auth.d.mts +7 -0
  337. package/dist/astro/routes/api/well-known/auth.mjs +42 -0
  338. package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts +7 -0
  339. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +33 -0
  340. package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts +7 -0
  341. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +21 -0
  342. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts +7 -0
  343. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +88 -0
  344. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts +8 -0
  345. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +158 -0
  346. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts +7 -0
  347. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +104 -0
  348. package/dist/astro/routes/api/widget-areas/_name_.d.mts +8 -0
  349. package/dist/astro/routes/api/widget-areas/_name_.mjs +99 -0
  350. package/dist/astro/routes/api/widget-areas/index.d.mts +8 -0
  351. package/dist/astro/routes/api/widget-areas/index.mjs +108 -0
  352. package/dist/astro/routes/api/widget-components.d.mts +7 -0
  353. package/dist/astro/routes/api/widget-components.mjs +15 -0
  354. package/dist/astro/routes/robots.txt.d.mts +7 -0
  355. package/dist/astro/routes/robots.txt.mjs +60 -0
  356. package/dist/astro/routes/sitemap-_collection_.xml.d.mts +7 -0
  357. package/dist/astro/routes/sitemap-_collection_.xml.mjs +70 -0
  358. package/dist/astro/routes/sitemap.xml.d.mts +7 -0
  359. package/dist/astro/routes/sitemap.xml.mjs +63 -0
  360. package/dist/astro/types.d.mts +41 -9
  361. package/dist/auth/providers/github-admin.d.mts +9 -0
  362. package/dist/auth/providers/github-admin.mjs +27 -0
  363. package/dist/auth/providers/github.d.mts +12 -0
  364. package/dist/auth/providers/github.mjs +17 -0
  365. package/dist/auth/providers/google-admin.d.mts +9 -0
  366. package/dist/auth/providers/google-admin.mjs +43 -0
  367. package/dist/auth/providers/google.d.mts +12 -0
  368. package/dist/auth/providers/google.mjs +17 -0
  369. package/dist/auth-control-guard-DKUe_1oa.mjs +13 -0
  370. package/dist/authorize-BBj8C6Y8.mjs +36 -0
  371. package/dist/briefing-BrXCuMEE.mjs +1294 -0
  372. package/dist/briefing-ClWw4mc9.mjs +29 -0
  373. package/dist/{byline-OhH2dlRu.mjs → byline-naZxOPSa.mjs} +3 -3
  374. package/dist/{bylines-BGpD9_hy.mjs → bylines-BcOPh6Ej.mjs} +20 -53
  375. package/dist/bylines-HfUKum_j.d.mts +2023 -0
  376. package/dist/{cache-BdSY-gQN.mjs → cache-DEbQ13c9.mjs} +21 -11
  377. package/dist/challenge-store-DHMgBGOq.mjs +48 -0
  378. package/dist/cli/index.mjs +142 -22
  379. package/dist/client/external-auth-headers.d.mts +1 -1
  380. package/dist/client/index.d.mts +1 -1
  381. package/dist/client/index.mjs +3 -3
  382. package/dist/comment-DFO-gWDH.mjs +246 -0
  383. package/dist/comments-Gy3zLBaP.mjs +186 -0
  384. package/dist/components-DND2rd3D.mjs +107 -0
  385. package/dist/{content-DWi4d0rT.mjs → content-CyLkb-qH.mjs} +33 -44
  386. package/dist/context-bE5Kyvcj.mjs +184 -0
  387. package/dist/context-nxMyOe3p.mjs +849 -0
  388. package/dist/context-route-helpers-D-6uCQ0S.mjs +45 -0
  389. package/dist/context-types-C-LwdAxx.mjs +23 -0
  390. package/dist/cron-DGzVTtJp.mjs +263 -0
  391. package/dist/dashboard-DqnYU8EU.mjs +120 -0
  392. package/dist/db/index.d.mts +3 -3
  393. package/dist/db/libsql.d.mts +1 -1
  394. package/dist/db/libsql.mjs +3 -3
  395. package/dist/db/postgres.d.mts +1 -1
  396. package/dist/db/sqlite.d.mts +1 -1
  397. package/dist/db/sqlite.mjs +1 -2
  398. package/dist/device-flow-7AhWNwCK.mjs +487 -0
  399. package/dist/email-console-CgLVZbcn.mjs +36 -0
  400. package/dist/entity-aliases-C0v-yNET.mjs +51 -0
  401. package/dist/error-DEGjx2Xw.mjs +435 -0
  402. package/dist/escape-mNZr4t2A.mjs +8 -0
  403. package/dist/experimental-workflows-DldxJlqV.mjs +38 -0
  404. package/dist/fts-manager-B1pTNEG_.mjs +297 -0
  405. package/dist/hash-CDX7M0ze.mjs +32 -0
  406. package/dist/hitl-requests-Bx3Bkk9l.mjs +118 -0
  407. package/dist/hitl-route-helpers-DMmJRS7B.mjs +96 -0
  408. package/dist/import-DD3f2jkc.mjs +243 -0
  409. package/dist/import-DVZcYlDp.mjs +1323 -0
  410. package/dist/index-CkljPf5F.d.mts +227 -0
  411. package/dist/index.d.mts +15 -11
  412. package/dist/index.mjs +60 -22
  413. package/dist/{loader-sMG4TZ-u.mjs → loader-PZnPxFLc.mjs} +42 -5
  414. package/dist/{manifest-schema-D1MSVnoI.mjs → manifest-schema-DYoCQ5np.mjs} +22 -10
  415. package/dist/media/index.d.mts +1 -1
  416. package/dist/media/index.mjs +2 -1
  417. package/dist/media/local-runtime.d.mts +11 -7
  418. package/dist/media/local-runtime.mjs +3 -3
  419. package/dist/{media-DMTr80Gv.mjs → media-_7Fxdu45.mjs} +1 -1
  420. package/dist/menus-BacxVCCo.mjs +312 -0
  421. package/dist/menus-CrzHokKj.mjs +3502 -0
  422. package/dist/normalize-C49G_o1k.mjs +126 -0
  423. package/dist/oauth-authorization-C1qiw4hd.mjs +283 -0
  424. package/dist/oauth-clients-CvWatf5p.mjs +298 -0
  425. package/dist/oauth-state-store-hSdzxsEe.mjs +48 -0
  426. package/dist/oauth-user-lookup-B4OcmsLV.mjs +25 -0
  427. package/dist/options-z8VVg1Ll.mjs +114 -0
  428. package/dist/page/index.d.mts +2 -2
  429. package/dist/parse-BeQXIt1U.mjs +88 -0
  430. package/dist/passkey-config-Daqs5fjq.mjs +42 -0
  431. package/dist/{patterns-CrCYkMBb.mjs → patterns-K0DLqWir.mjs} +53 -1
  432. package/dist/{placeholder-Cp8g5Emj.mjs → placeholder-C2P5fKa4.mjs} +1 -126
  433. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -5
  434. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  435. package/dist/preview-C_4DyVox.mjs +788 -0
  436. package/dist/public-url-BB_umF5G.mjs +71 -0
  437. package/dist/{query-kDmwCsHh.mjs → query-RiobVwB5.mjs} +93 -19
  438. package/dist/rate-limit-CbJoj_fT.mjs +112 -0
  439. package/dist/{redirect-DnEWAkVg.mjs → redirect-CGl64yOX.mjs} +9 -5
  440. package/dist/redirect-ClSmMOtC.mjs +16 -0
  441. package/dist/redirects-B69T59hK.mjs +499 -0
  442. package/dist/redirects-CqaxraTO.mjs +1070 -0
  443. package/dist/{registry-C0zjeB9P.mjs → registry-C-_hxLqa.mjs} +26 -294
  444. package/dist/request-meta-Bd0mQfiS.mjs +130 -0
  445. package/dist/review-requests-C2DIHwlJ.mjs +148 -0
  446. package/dist/review-requests-DIyjw-K_.mjs +79 -0
  447. package/dist/{runner-CFI6B6J2.d.mts → runner-9eIQXuc2.d.mts} +1 -1
  448. package/dist/{index-yvc6E_17.d.mts → runtime-C4-7y7xK.d.mts} +1539 -2007
  449. package/dist/runtime.d.mts +10 -6
  450. package/dist/runtime.mjs +3 -3
  451. package/dist/schema-BNpI53of.mjs +40 -0
  452. package/dist/search-DM6CVti3.mjs +337 -0
  453. package/dist/secrets-dI8zzTV7.mjs +160 -0
  454. package/dist/sections-DZFyAQXd.mjs +338 -0
  455. package/dist/seed/index.d.mts +2 -2
  456. package/dist/seed/index.mjs +18 -13
  457. package/dist/seo/index.d.mts +1 -1
  458. package/dist/seo-BBgTCOYU.mjs +85 -0
  459. package/dist/seo-CUQctrog.mjs +129 -0
  460. package/dist/service-CSfcQguB.mjs +194 -0
  461. package/dist/settings-4XnpVMOS.mjs +223 -0
  462. package/dist/settings-Bw93cLfe.mjs +50 -0
  463. package/dist/setup-complete-DidsDQ1e.mjs +21 -0
  464. package/dist/setup-nonce-pml1PMKo.mjs +17 -0
  465. package/dist/sidecar-client-vzwV98K4.mjs +66 -0
  466. package/dist/site-activity-B8FjLIVh.mjs +104 -0
  467. package/dist/site-context-Bpu_Paur.mjs +4122 -0
  468. package/dist/site-url-CYIcO0Tj.mjs +12 -0
  469. package/dist/slugify-PDTDtMXp.mjs +30 -0
  470. package/dist/ssrf-CmM76lLV.mjs +248 -0
  471. package/dist/storage/local.d.mts +1 -1
  472. package/dist/storage/local.mjs +1 -1
  473. package/dist/storage/s3.d.mts +1 -1
  474. package/dist/storage/s3.mjs +2 -2
  475. package/dist/{taxonomies-1s5PaS_8.mjs → taxonomies-BvBgfzn3.mjs} +11 -7
  476. package/dist/taxonomies-CpqGcIJD.mjs +355 -0
  477. package/dist/taxonomy-D5cbhc8u.mjs +165 -0
  478. package/dist/{tokens-CJz9ubV6.mjs → tokens-DLTo4dO2.mjs} +1 -1
  479. package/dist/{transport-DB5eDN4x.mjs → transport-C9e_h-BF.mjs} +5 -4
  480. package/dist/trusted-proxy-Bi0Cuk5n.mjs +30 -0
  481. package/dist/{types-BawVha09.mjs → types-Bs6lTBBW.mjs} +1 -1
  482. package/dist/types-C982qI5I.d.mts +344 -0
  483. package/dist/types-D4XVOt01.d.mts +165 -0
  484. package/dist/{types-Cj0KMIZV.d.mts → types-DgfUZqcd.d.mts} +54 -16
  485. package/dist/{types-BuMDPy5C.d.mts → types-IPACEM14.d.mts} +6 -0
  486. package/dist/user-CcXq-zoL.mjs +154 -0
  487. package/dist/utils-D2in-zwy.mjs +285 -0
  488. package/dist/{validate-BZ5wnLLp.mjs → validate-BJgA6TW_.mjs} +1 -1
  489. package/dist/{validate-IPf8n4Fj.d.mts → validate-JCZihRIa.d.mts} +3 -3
  490. package/dist/version-DH53KCQd.mjs +6 -0
  491. package/dist/widgets-B7Q_7bxN.mjs +104 -0
  492. package/dist/wordpress-slugs-BevajWrC.mjs +14 -0
  493. package/dist/zod-generator-DBVP8D0P.mjs +132 -0
  494. package/locals.d.ts +1 -6
  495. package/package.json +67 -11
  496. package/src/components/DinewayHead.astro +8 -4
  497. package/src/components/DinewayImage.astro +7 -5
  498. package/src/components/DinewayMedia.astro +9 -3
  499. package/src/components/Gallery.astro +5 -3
  500. package/src/components/Image.astro +5 -1
  501. package/src/components/InlinePortableTextEditor.tsx +68 -19
  502. package/dist/error-BmL6QipT.mjs +0 -30
  503. package/dist/search-DxopAWxs.mjs +0 -11200
  504. package/dist/version-BPz1imu2.mjs +0 -6
  505. package/src/astro/routes/PluginRegistry.tsx +0 -21
  506. package/src/astro/routes/api/admin/allowed-domains/[domain].ts +0 -112
  507. package/src/astro/routes/api/admin/allowed-domains/index.ts +0 -108
  508. package/src/astro/routes/api/admin/api-tokens/[id].ts +0 -44
  509. package/src/astro/routes/api/admin/api-tokens/index.ts +0 -90
  510. package/src/astro/routes/api/admin/briefing.ts +0 -76
  511. package/src/astro/routes/api/admin/bylines/[id]/index.ts +0 -90
  512. package/src/astro/routes/api/admin/bylines/index.ts +0 -74
  513. package/src/astro/routes/api/admin/comments/[id]/status.ts +0 -120
  514. package/src/astro/routes/api/admin/comments/[id].ts +0 -64
  515. package/src/astro/routes/api/admin/comments/bulk.ts +0 -42
  516. package/src/astro/routes/api/admin/comments/counts.ts +0 -30
  517. package/src/astro/routes/api/admin/comments/index.ts +0 -46
  518. package/src/astro/routes/api/admin/context/[id]/history.ts +0 -35
  519. package/src/astro/routes/api/admin/context/[id]/index.ts +0 -35
  520. package/src/astro/routes/api/admin/context/[id]/review.ts +0 -57
  521. package/src/astro/routes/api/admin/context/[id]/supersede.ts +0 -58
  522. package/src/astro/routes/api/admin/context/diff.ts +0 -35
  523. package/src/astro/routes/api/admin/context/index.ts +0 -69
  524. package/src/astro/routes/api/admin/context/stale.ts +0 -35
  525. package/src/astro/routes/api/admin/hitl-requests/[id]/index.ts +0 -38
  526. package/src/astro/routes/api/admin/hitl-requests/[id]/resolve.ts +0 -54
  527. package/src/astro/routes/api/admin/hitl-requests/index.ts +0 -38
  528. package/src/astro/routes/api/admin/hooks/exclusive/[hookName].ts +0 -132
  529. package/src/astro/routes/api/admin/hooks/exclusive/index.ts +0 -51
  530. package/src/astro/routes/api/admin/oauth-clients/[id].ts +0 -137
  531. package/src/astro/routes/api/admin/oauth-clients/index.ts +0 -95
  532. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +0 -91
  533. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +0 -91
  534. package/src/astro/routes/api/admin/plugins/[id]/index.ts +0 -38
  535. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +0 -98
  536. package/src/astro/routes/api/admin/plugins/[id]/update.ts +0 -154
  537. package/src/astro/routes/api/admin/plugins/index.ts +0 -32
  538. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +0 -62
  539. package/src/astro/routes/api/admin/plugins/marketplace/[id]/index.ts +0 -33
  540. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +0 -135
  541. package/src/astro/routes/api/admin/plugins/marketplace/index.ts +0 -38
  542. package/src/astro/routes/api/admin/plugins/updates.ts +0 -28
  543. package/src/astro/routes/api/admin/review-requests/[id]/index.ts +0 -35
  544. package/src/astro/routes/api/admin/review-requests/[id]/resolve.ts +0 -52
  545. package/src/astro/routes/api/admin/review-requests/index.ts +0 -35
  546. package/src/astro/routes/api/admin/themes/marketplace/[id]/index.ts +0 -33
  547. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +0 -62
  548. package/src/astro/routes/api/admin/themes/marketplace/index.ts +0 -45
  549. package/src/astro/routes/api/admin/users/[id]/disable.ts +0 -72
  550. package/src/astro/routes/api/admin/users/[id]/enable.ts +0 -48
  551. package/src/astro/routes/api/admin/users/[id]/index.ts +0 -166
  552. package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +0 -72
  553. package/src/astro/routes/api/admin/users/index.ts +0 -66
  554. package/src/astro/routes/api/auth/dev-bypass.ts +0 -139
  555. package/src/astro/routes/api/auth/invite/accept.ts +0 -52
  556. package/src/astro/routes/api/auth/invite/complete.ts +0 -86
  557. package/src/astro/routes/api/auth/invite/index.ts +0 -99
  558. package/src/astro/routes/api/auth/invite/register-options.ts +0 -73
  559. package/src/astro/routes/api/auth/logout.ts +0 -40
  560. package/src/astro/routes/api/auth/magic-link/send.ts +0 -90
  561. package/src/astro/routes/api/auth/magic-link/verify.ts +0 -71
  562. package/src/astro/routes/api/auth/me.ts +0 -60
  563. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +0 -221
  564. package/src/astro/routes/api/auth/oauth/[provider].ts +0 -120
  565. package/src/astro/routes/api/auth/passkey/[id].ts +0 -124
  566. package/src/astro/routes/api/auth/passkey/index.ts +0 -54
  567. package/src/astro/routes/api/auth/passkey/options.ts +0 -85
  568. package/src/astro/routes/api/auth/passkey/register/options.ts +0 -88
  569. package/src/astro/routes/api/auth/passkey/register/verify.ts +0 -119
  570. package/src/astro/routes/api/auth/passkey/verify.ts +0 -72
  571. package/src/astro/routes/api/auth/signup/complete.ts +0 -87
  572. package/src/astro/routes/api/auth/signup/request.ts +0 -89
  573. package/src/astro/routes/api/auth/signup/verify.ts +0 -53
  574. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +0 -310
  575. package/src/astro/routes/api/content/[collection]/[id]/compare.ts +0 -28
  576. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +0 -68
  577. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +0 -77
  578. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +0 -42
  579. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +0 -107
  580. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +0 -100
  581. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +0 -64
  582. package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +0 -31
  583. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +0 -129
  584. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +0 -143
  585. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +0 -50
  586. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +0 -69
  587. package/src/astro/routes/api/content/[collection]/[id].ts +0 -173
  588. package/src/astro/routes/api/content/[collection]/index.ts +0 -103
  589. package/src/astro/routes/api/content/[collection]/trash.ts +0 -33
  590. package/src/astro/routes/api/dashboard.ts +0 -32
  591. package/src/astro/routes/api/dev/emails.ts +0 -36
  592. package/src/astro/routes/api/health.ts +0 -54
  593. package/src/astro/routes/api/import/probe.ts +0 -47
  594. package/src/astro/routes/api/import/wordpress/analyze.ts +0 -523
  595. package/src/astro/routes/api/import/wordpress/execute.ts +0 -330
  596. package/src/astro/routes/api/import/wordpress/media.ts +0 -338
  597. package/src/astro/routes/api/import/wordpress/prepare.ts +0 -212
  598. package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +0 -425
  599. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +0 -111
  600. package/src/astro/routes/api/import/wordpress-plugin/callback.ts +0 -58
  601. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +0 -399
  602. package/src/astro/routes/api/manifest.ts +0 -75
  603. package/src/astro/routes/api/mcp.ts +0 -125
  604. package/src/astro/routes/api/media/[id]/confirm.ts +0 -93
  605. package/src/astro/routes/api/media/[id].ts +0 -145
  606. package/src/astro/routes/api/media/file/[...key].ts +0 -79
  607. package/src/astro/routes/api/media/providers/[providerId]/[itemId].ts +0 -91
  608. package/src/astro/routes/api/media/providers/[providerId]/index.ts +0 -111
  609. package/src/astro/routes/api/media/providers/index.ts +0 -30
  610. package/src/astro/routes/api/media/upload-url.ts +0 -146
  611. package/src/astro/routes/api/media.ts +0 -204
  612. package/src/astro/routes/api/menus/[name]/reorder.ts +0 -79
  613. package/src/astro/routes/api/menus/[name].ts +0 -145
  614. package/src/astro/routes/api/menus/index.ts +0 -91
  615. package/src/astro/routes/api/oauth/authorize.ts +0 -430
  616. package/src/astro/routes/api/oauth/device/authorize.ts +0 -45
  617. package/src/astro/routes/api/oauth/device/code.ts +0 -56
  618. package/src/astro/routes/api/oauth/device/token.ts +0 -70
  619. package/src/astro/routes/api/oauth/register.ts +0 -182
  620. package/src/astro/routes/api/oauth/token/refresh.ts +0 -38
  621. package/src/astro/routes/api/oauth/token/revoke.ts +0 -38
  622. package/src/astro/routes/api/oauth/token.ts +0 -195
  623. package/src/astro/routes/api/openapi.json.ts +0 -33
  624. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +0 -109
  625. package/src/astro/routes/api/redirects/404s/index.ts +0 -72
  626. package/src/astro/routes/api/redirects/404s/summary.ts +0 -33
  627. package/src/astro/routes/api/redirects/[id].ts +0 -183
  628. package/src/astro/routes/api/redirects/index.ts +0 -100
  629. package/src/astro/routes/api/revisions/[revisionId]/index.ts +0 -29
  630. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +0 -62
  631. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +0 -104
  632. package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +0 -67
  633. package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +0 -45
  634. package/src/astro/routes/api/schema/collections/[slug]/index.ts +0 -107
  635. package/src/astro/routes/api/schema/collections/index.ts +0 -61
  636. package/src/astro/routes/api/schema/index.ts +0 -109
  637. package/src/astro/routes/api/schema/orphans/[slug].ts +0 -36
  638. package/src/astro/routes/api/schema/orphans/index.ts +0 -26
  639. package/src/astro/routes/api/search/enable.ts +0 -64
  640. package/src/astro/routes/api/search/index.ts +0 -52
  641. package/src/astro/routes/api/search/rebuild.ts +0 -72
  642. package/src/astro/routes/api/search/stats.ts +0 -35
  643. package/src/astro/routes/api/search/suggest.ts +0 -50
  644. package/src/astro/routes/api/sections/[slug].ts +0 -203
  645. package/src/astro/routes/api/sections/index.ts +0 -107
  646. package/src/astro/routes/api/settings/email.ts +0 -150
  647. package/src/astro/routes/api/settings.ts +0 -116
  648. package/src/astro/routes/api/setup/admin-verify.ts +0 -122
  649. package/src/astro/routes/api/setup/admin.ts +0 -104
  650. package/src/astro/routes/api/setup/dev-bypass.ts +0 -200
  651. package/src/astro/routes/api/setup/dev-reset.ts +0 -40
  652. package/src/astro/routes/api/setup/index.ts +0 -128
  653. package/src/astro/routes/api/setup/status.ts +0 -122
  654. package/src/astro/routes/api/snapshot.ts +0 -76
  655. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +0 -232
  656. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +0 -131
  657. package/src/astro/routes/api/taxonomies/index.ts +0 -114
  658. package/src/astro/routes/api/themes/preview.ts +0 -78
  659. package/src/astro/routes/api/typegen.ts +0 -114
  660. package/src/astro/routes/api/well-known/auth.ts +0 -71
  661. package/src/astro/routes/api/well-known/oauth-authorization-server.ts +0 -48
  662. package/src/astro/routes/api/well-known/oauth-protected-resource.ts +0 -39
  663. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +0 -114
  664. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +0 -213
  665. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +0 -126
  666. package/src/astro/routes/api/widget-areas/[name].ts +0 -135
  667. package/src/astro/routes/api/widget-areas/index.ts +0 -149
  668. package/src/astro/routes/api/widget-components.ts +0 -22
  669. package/src/astro/routes/robots.txt.ts +0 -81
  670. package/src/astro/routes/sitemap-[collection].xml.ts +0 -104
  671. package/src/astro/routes/sitemap.xml.ts +0 -92
  672. /package/dist/{adapters-C2ypTrZZ.d.mts → adapters-BLDldpJg.d.mts} +0 -0
  673. /package/{src → dist}/astro/routes/admin.astro +0 -0
  674. /package/dist/{base64-F8-DUraK.mjs → base64-Cz-aU0X1.mjs} +0 -0
  675. /package/dist/{chunks--4F8ddV4.mjs → chunks-D_jVet6z.mjs} +0 -0
  676. /package/dist/{config-BXwuX8Bx.mjs → config-CAMFxGaV.mjs} +0 -0
  677. /package/dist/{db-errors-CEqD7qH9.mjs → db-errors-DKUg_NgF.mjs} +0 -0
  678. /package/dist/{default-VjJyuuG9.mjs → default-C3PZN-bz.mjs} +0 -0
  679. /package/dist/{load-Coc9HpHH.mjs → load-D-9NhLmF.mjs} +0 -0
  680. /package/dist/{mode-47goXBBK.mjs → mode-C80mAZQv.mjs} +0 -0
  681. /package/dist/{placeholder--wOi4TbO.d.mts → placeholder-CHkLckzK.d.mts} +0 -0
  682. /package/dist/{request-cache-Dk5qPSOx.mjs → request-cache-DHMRr2Lf.mjs} +0 -0
  683. /package/dist/{transaction-Cn2rjY78.mjs → transaction-x2tJQ-A1.mjs} +0 -0
  684. /package/dist/{transport-Wge_IzKl.d.mts → transport-6RefuBdV.d.mts} +0 -0
  685. /package/dist/{types-griIBQOQ.mjs → types-B9gKVOHk.mjs} +0 -0
  686. /package/dist/{types-CWbdtiux.d.mts → types-B9qVtiHb.d.mts} +0 -0
  687. /package/dist/{types-COeOq9nK.mjs → types-DL7Y8D_t.mjs} +0 -0
  688. /package/dist/{types-BzcUjoqg.d.mts → types-Djdp0cZO.d.mts} +0 -0
  689. /package/dist/{types-DOrVigru.d.mts → types-Du8jreyC.d.mts} +0 -0
@@ -0,0 +1,194 @@
1
+ import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
+ import { t as CommentRepository } from "./comment-DFO-gWDH.mjs";
3
+ import { t as escapeHtml } from "./escape-mNZr4t2A.mjs";
4
+
5
+ //#region src/comments/notifications.ts
6
+ const NOTIFICATION_SOURCE = "dineway-comments";
7
+ const MAX_EXCERPT_LENGTH = 500;
8
+ const CRLF_RE = /[\r\n]/g;
9
+ /**
10
+ * Build an email notification for a new comment.
11
+ */
12
+ function buildCommentNotificationEmail(to, data) {
13
+ const title = data.contentTitle || `${data.collection} item`;
14
+ const subject = `New comment on "${title}"`.replace(CRLF_RE, " ");
15
+ const excerpt = data.commentBody.length > MAX_EXCERPT_LENGTH ? data.commentBody.slice(0, MAX_EXCERPT_LENGTH) + "..." : data.commentBody;
16
+ const adminUrl = `${data.adminBaseUrl}/admin/comments`;
17
+ return {
18
+ to,
19
+ subject,
20
+ text: [
21
+ `${data.commentAuthorName} commented on "${title}":`,
22
+ "",
23
+ excerpt,
24
+ "",
25
+ `View in admin: ${adminUrl}`
26
+ ].join("\n"),
27
+ html: [
28
+ `<p><strong>${escapeHtml(data.commentAuthorName)}</strong> commented on &ldquo;${escapeHtml(title)}&rdquo;:</p>`,
29
+ `<blockquote style="border-left:3px solid #ccc;padding-left:12px;margin:12px 0;color:#555">${escapeHtml(excerpt)}</blockquote>`,
30
+ `<p><a href="${escapeHtml(adminUrl)}">View in admin</a></p>`
31
+ ].join("\n")
32
+ };
33
+ }
34
+ /**
35
+ * Send a comment notification to the content author if all conditions are met:
36
+ * 1. Comment status is "approved"
37
+ * 2. Content author exists and has an email
38
+ * 3. Email provider is configured
39
+ * 4. Commenter is not the content author (no self-notifications)
40
+ *
41
+ * Returns true if the email was sent, false if skipped.
42
+ */
43
+ async function sendCommentNotification(params) {
44
+ const { email, comment, contentAuthor, adminBaseUrl } = params;
45
+ if (comment.status !== "approved") return false;
46
+ if (!contentAuthor?.email) return false;
47
+ if (!email.isAvailable()) return false;
48
+ if (comment.authorEmail.toLowerCase() === contentAuthor.email.toLowerCase()) return false;
49
+ const message = buildCommentNotificationEmail(contentAuthor.email, {
50
+ commentAuthorName: comment.authorName,
51
+ commentBody: comment.body,
52
+ contentTitle: params.contentTitle || "",
53
+ collection: comment.collection,
54
+ adminBaseUrl
55
+ });
56
+ await email.send(message, NOTIFICATION_SOURCE);
57
+ return true;
58
+ }
59
+ /**
60
+ * Look up a content item's author from the database.
61
+ *
62
+ * Used by the admin moderation route where content info isn't
63
+ * readily available (only the comment record is at hand).
64
+ */
65
+ async function lookupContentAuthor(db, collection, contentId) {
66
+ validateIdentifier(collection, "collection");
67
+ const contentRow = await db.selectFrom(`ec_${collection}`).select(["slug", "author_id"]).where("id", "=", contentId).executeTakeFirst();
68
+ if (!contentRow) return null;
69
+ const typed = contentRow;
70
+ let author;
71
+ if (typed.author_id) {
72
+ const userRow = await db.selectFrom("users").select([
73
+ "id",
74
+ "name",
75
+ "email",
76
+ "email_verified"
77
+ ]).where("id", "=", typed.author_id).executeTakeFirst();
78
+ if (userRow && userRow.email_verified) author = {
79
+ id: userRow.id,
80
+ email: userRow.email,
81
+ name: userRow.name
82
+ };
83
+ }
84
+ return {
85
+ slug: typed.slug,
86
+ author
87
+ };
88
+ }
89
+
90
+ //#endregion
91
+ //#region src/comments/service.ts
92
+ /**
93
+ * Create a comment through the full hook pipeline.
94
+ *
95
+ * Returns null if the comment was rejected by a beforeCreate handler.
96
+ */
97
+ async function createComment(db, input, collectionSettings, hooks, contentInfo) {
98
+ const repo = new CommentRepository(db);
99
+ const beforeCreateEvent = {
100
+ comment: {
101
+ collection: input.collection,
102
+ contentId: input.contentId,
103
+ parentId: input.parentId ?? null,
104
+ authorName: input.authorName,
105
+ authorEmail: input.authorEmail,
106
+ authorUserId: input.authorUserId ?? null,
107
+ body: input.body,
108
+ ipHash: input.ipHash ?? null,
109
+ userAgent: input.userAgent ?? null
110
+ },
111
+ metadata: {}
112
+ };
113
+ const result = await hooks.runBeforeCreate(beforeCreateEvent);
114
+ if (result === false) return null;
115
+ const event = result;
116
+ const priorApprovedCount = await repo.countApprovedByEmail(event.comment.authorEmail);
117
+ const moderateEvent = {
118
+ comment: event.comment,
119
+ metadata: event.metadata,
120
+ collectionSettings,
121
+ priorApprovedCount
122
+ };
123
+ const decision = await hooks.runModerate(moderateEvent);
124
+ const comment = await repo.create({
125
+ collection: event.comment.collection,
126
+ contentId: event.comment.contentId,
127
+ parentId: event.comment.parentId,
128
+ authorName: event.comment.authorName,
129
+ authorEmail: event.comment.authorEmail,
130
+ authorUserId: event.comment.authorUserId,
131
+ body: event.comment.body,
132
+ status: decision.status,
133
+ ipHash: event.comment.ipHash,
134
+ userAgent: event.comment.userAgent,
135
+ moderationMetadata: Object.keys(event.metadata).length > 0 ? event.metadata : null
136
+ });
137
+ if (contentInfo) {
138
+ const afterEvent = {
139
+ comment: commentToStored(comment),
140
+ metadata: event.metadata,
141
+ content: {
142
+ id: contentInfo.id,
143
+ collection: contentInfo.collection,
144
+ slug: contentInfo.slug,
145
+ title: contentInfo.title
146
+ },
147
+ contentAuthor: contentInfo.author
148
+ };
149
+ hooks.fireAfterCreate(afterEvent);
150
+ }
151
+ return {
152
+ comment,
153
+ decision
154
+ };
155
+ }
156
+ /**
157
+ * Admin moderation — change a comment's status.
158
+ * Fires comment:afterModerate hook.
159
+ */
160
+ async function moderateComment(db, id, newStatus, moderator, hooks) {
161
+ const repo = new CommentRepository(db);
162
+ const existing = await repo.findById(id);
163
+ if (!existing) return null;
164
+ const previousStatus = existing.status;
165
+ const updated = await repo.updateStatus(id, newStatus);
166
+ if (!updated) return null;
167
+ const afterEvent = {
168
+ comment: commentToStored(updated),
169
+ previousStatus,
170
+ newStatus,
171
+ moderator
172
+ };
173
+ hooks.fireAfterModerate(afterEvent);
174
+ return updated;
175
+ }
176
+ function commentToStored(comment) {
177
+ return {
178
+ id: comment.id,
179
+ collection: comment.collection,
180
+ contentId: comment.contentId,
181
+ parentId: comment.parentId,
182
+ authorName: comment.authorName,
183
+ authorEmail: comment.authorEmail,
184
+ authorUserId: comment.authorUserId,
185
+ body: comment.body,
186
+ status: comment.status,
187
+ moderationMetadata: comment.moderationMetadata,
188
+ createdAt: comment.createdAt,
189
+ updatedAt: comment.updatedAt
190
+ };
191
+ }
192
+
193
+ //#endregion
194
+ export { sendCommentNotification as i, moderateComment as n, lookupContentAuthor as r, createComment as t };
@@ -0,0 +1,223 @@
1
+ import { t as MediaRepository } from "./media-_7Fxdu45.mjs";
2
+ import { t as OptionsRepository } from "./options-z8VVg1Ll.mjs";
3
+ import { r as getDb } from "./loader-PZnPxFLc.mjs";
4
+ import { n as requestCached, t as peekRequestCache } from "./request-cache-DHMRr2Lf.mjs";
5
+
6
+ //#region src/media/url.ts
7
+ const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
8
+ function resolvePublicMediaUrl(storage, storageKey) {
9
+ if (!storageKey) return "";
10
+ if (storage) return storage.getPublicUrl(storageKey);
11
+ return `${INTERNAL_MEDIA_PREFIX}${storageKey}`;
12
+ }
13
+ function createPublicMediaUrlResolver(storage) {
14
+ return (key) => resolvePublicMediaUrl(storage, key);
15
+ }
16
+
17
+ //#endregion
18
+ //#region src/settings/index.ts
19
+ /** Prefix for site settings in the options table */
20
+ const SETTINGS_PREFIX = "site:";
21
+ const SITE_SETTINGS_CACHE_KEY = Symbol.for("dineway:site-settings");
22
+ const globalCache = globalThis;
23
+ const siteSettingsCache = globalCache[SITE_SETTINGS_CACHE_KEY] ?? (() => {
24
+ const holder = {
25
+ version: 0,
26
+ cached: null,
27
+ cachedVersion: -1
28
+ };
29
+ globalCache[SITE_SETTINGS_CACHE_KEY] = holder;
30
+ return holder;
31
+ })();
32
+ function invalidateSiteSettingsCache() {
33
+ siteSettingsCache.version++;
34
+ siteSettingsCache.cached = null;
35
+ siteSettingsCache.cachedVersion = -1;
36
+ }
37
+ /**
38
+ * Type guard for MediaReference values
39
+ */
40
+ function isMediaReference(value) {
41
+ return typeof value === "object" && value !== null && "mediaId" in value;
42
+ }
43
+ /**
44
+ * Resolve a media reference to include the full URL and content metadata.
45
+ */
46
+ async function resolveMediaReference(mediaRef, db, storage) {
47
+ if (!mediaRef?.mediaId) return mediaRef;
48
+ try {
49
+ const media = await new MediaRepository(db).findById(mediaRef.mediaId);
50
+ if (media) return {
51
+ ...mediaRef,
52
+ url: resolvePublicMediaUrl(storage, media.storageKey),
53
+ contentType: media.mimeType,
54
+ ...media.width !== null ? { width: media.width } : {},
55
+ ...media.height !== null ? { height: media.height } : {}
56
+ };
57
+ } catch {}
58
+ return mediaRef;
59
+ }
60
+ /**
61
+ * Get a single site setting by key
62
+ *
63
+ * Returns `undefined` if the setting has not been configured.
64
+ * For media settings (logo, favicon), the URL is resolved automatically.
65
+ *
66
+ * @param key - The setting key (e.g., "title", "logo", "social")
67
+ * @returns The setting value, or undefined if not set
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * import { getSiteSetting } from "dineway";
72
+ *
73
+ * const title = await getSiteSetting("title");
74
+ * const logo = await getSiteSetting("logo");
75
+ * console.log(logo?.url); // Resolved URL
76
+ * ```
77
+ */
78
+ async function getSiteSetting(key) {
79
+ const primed = peekRequestCache("siteSettings");
80
+ if (primed) return (await primed)[key];
81
+ return requestCached(`siteSetting:${key}`, async () => {
82
+ return getSiteSettingWithDb(key, await getDb());
83
+ });
84
+ }
85
+ /**
86
+ * Get a single site setting by key (with explicit db)
87
+ *
88
+ * @internal Use `getSiteSetting()` in templates. This variant is for admin routes
89
+ * that already have a database handle.
90
+ */
91
+ async function getSiteSettingWithDb(key, db, storage = null) {
92
+ const value = await new OptionsRepository(db).get(`${SETTINGS_PREFIX}${key}`);
93
+ if (!value) return;
94
+ if ((key === "logo" || key === "favicon") && isMediaReference(value)) return await resolveMediaReference(value, db, storage);
95
+ return value;
96
+ }
97
+ /**
98
+ * Get all site settings
99
+ *
100
+ * Returns all configured settings. Unset values are undefined.
101
+ * Media references (logo/favicon) are resolved to include URLs.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * import { getSiteSettings } from "dineway";
106
+ *
107
+ * const settings = await getSiteSettings();
108
+ * console.log(settings.title); // "My Site"
109
+ * console.log(settings.logo?.url); // "/_dineway/api/media/file/abc123"
110
+ * ```
111
+ */
112
+ async function getSiteSettings() {
113
+ return requestCached("siteSettings", () => {
114
+ const versionAtCall = siteSettingsCache.version;
115
+ if (siteSettingsCache.cached && siteSettingsCache.cachedVersion === versionAtCall) return siteSettingsCache.cached;
116
+ const fetchPromise = (async () => {
117
+ return getSiteSettingsWithDb(await getDb());
118
+ })().catch((error) => {
119
+ if (siteSettingsCache.cached === fetchPromise) {
120
+ siteSettingsCache.cached = null;
121
+ siteSettingsCache.cachedVersion = -1;
122
+ }
123
+ throw error;
124
+ });
125
+ siteSettingsCache.cached = fetchPromise;
126
+ siteSettingsCache.cachedVersion = versionAtCall;
127
+ return fetchPromise;
128
+ });
129
+ }
130
+ /**
131
+ * Get all site settings (with explicit db)
132
+ *
133
+ * @internal Use `getSiteSettings()` in templates. This variant is for admin routes
134
+ * that already have a database handle.
135
+ */
136
+ async function getSiteSettingsWithDb(db, storage = null) {
137
+ const allOptions = await new OptionsRepository(db).getByPrefix(SETTINGS_PREFIX);
138
+ const settings = {};
139
+ for (const [key, value] of allOptions) {
140
+ const settingKey = key.replace(SETTINGS_PREFIX, "");
141
+ settings[settingKey] = value;
142
+ }
143
+ const typedSettings = settings;
144
+ if (typedSettings.logo) typedSettings.logo = await resolveMediaReference(typedSettings.logo, db, storage);
145
+ if (typedSettings.favicon) typedSettings.favicon = await resolveMediaReference(typedSettings.favicon, db, storage);
146
+ return typedSettings;
147
+ }
148
+ /**
149
+ * Set site settings (internal function used by admin API)
150
+ *
151
+ * Merges provided settings with existing ones. Only provided fields are updated.
152
+ * Media references should include just the mediaId; URLs are resolved on read.
153
+ *
154
+ * @param settings - Partial settings object with values to update
155
+ * @param db - Kysely database instance
156
+ * @returns Promise that resolves when settings are saved
157
+ *
158
+ * @internal
159
+ *
160
+ * @example
161
+ * ```ts
162
+ * // Update multiple settings at once
163
+ * await setSiteSettings({
164
+ * title: "My Site",
165
+ * tagline: "Welcome",
166
+ * logo: { mediaId: "med_123", alt: "Logo" }
167
+ * }, db);
168
+ * ```
169
+ */
170
+ async function setSiteSettings(settings, db) {
171
+ const options = new OptionsRepository(db);
172
+ const updates = {};
173
+ for (const [key, value] of Object.entries(settings)) if (value !== void 0) updates[`${SETTINGS_PREFIX}${key}`] = value;
174
+ try {
175
+ await options.setMany(updates);
176
+ } finally {
177
+ invalidateSiteSettingsCache();
178
+ }
179
+ }
180
+ /**
181
+ * Get a single plugin setting by key.
182
+ *
183
+ * Plugin settings are stored in the options table under
184
+ * `plugin:<pluginId>:settings:<key>`.
185
+ */
186
+ async function getPluginSetting(pluginId, key) {
187
+ return getPluginSettingWithDb(pluginId, key, await getDb());
188
+ }
189
+ /**
190
+ * Get a single plugin setting by key (with explicit db).
191
+ *
192
+ * @internal Use `getPluginSetting()` in templates and plugin rendering code.
193
+ */
194
+ async function getPluginSettingWithDb(pluginId, key, db) {
195
+ return await new OptionsRepository(db).get(`plugin:${pluginId}:settings:${key}`) ?? void 0;
196
+ }
197
+ /**
198
+ * Get all persisted plugin settings for a plugin.
199
+ *
200
+ * Defaults declared in `admin.settingsSchema` are not materialized
201
+ * automatically; callers should apply their own fallback defaults.
202
+ */
203
+ async function getPluginSettings(pluginId) {
204
+ return getPluginSettingsWithDb(pluginId, await getDb());
205
+ }
206
+ /**
207
+ * Get all persisted plugin settings for a plugin (with explicit db).
208
+ *
209
+ * @internal Use `getPluginSettings()` in templates and plugin rendering code.
210
+ */
211
+ async function getPluginSettingsWithDb(pluginId, db) {
212
+ const prefix = `plugin:${pluginId}:settings:`;
213
+ const allOptions = await new OptionsRepository(db).getByPrefix(prefix);
214
+ const settings = {};
215
+ for (const [key, value] of allOptions) {
216
+ if (!key.startsWith(prefix)) continue;
217
+ settings[key.slice(prefix.length)] = value;
218
+ }
219
+ return settings;
220
+ }
221
+
222
+ //#endregion
223
+ export { getSiteSettingsWithDb as a, getSiteSettings as i, getPluginSettings as n, setSiteSettings as o, getSiteSetting as r, createPublicMediaUrlResolver as s, getPluginSetting as t };
@@ -0,0 +1,50 @@
1
+ import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
+ import { a as getSiteSettingsWithDb, o as setSiteSettings } from "./settings-4XnpVMOS.mjs";
3
+
4
+ //#region src/api/handlers/settings.ts
5
+ var settings_exports = /* @__PURE__ */ __exportAll({
6
+ handleSettingsGet: () => handleSettingsGet,
7
+ handleSettingsUpdate: () => handleSettingsUpdate
8
+ });
9
+ /**
10
+ * Get all site settings
11
+ */
12
+ async function handleSettingsGet(db, storage) {
13
+ try {
14
+ return {
15
+ success: true,
16
+ data: await getSiteSettingsWithDb(db, storage)
17
+ };
18
+ } catch {
19
+ return {
20
+ success: false,
21
+ error: {
22
+ code: "SETTINGS_READ_ERROR",
23
+ message: "Failed to get settings"
24
+ }
25
+ };
26
+ }
27
+ }
28
+ /**
29
+ * Update site settings
30
+ */
31
+ async function handleSettingsUpdate(db, storage, input) {
32
+ try {
33
+ await setSiteSettings(input, db);
34
+ return {
35
+ success: true,
36
+ data: await getSiteSettingsWithDb(db, storage)
37
+ };
38
+ } catch {
39
+ return {
40
+ success: false,
41
+ error: {
42
+ code: "SETTINGS_UPDATE_ERROR",
43
+ message: "Failed to update settings"
44
+ }
45
+ };
46
+ }
47
+ }
48
+
49
+ //#endregion
50
+ export { handleSettingsUpdate as n, settings_exports as r, handleSettingsGet as t };
@@ -0,0 +1,21 @@
1
+ import { t as OptionsRepository } from "./options-z8VVg1Ll.mjs";
2
+
3
+ //#region src/api/setup-complete.ts
4
+ /**
5
+ * Finalize setup after the first admin user is created.
6
+ *
7
+ * Safe to call multiple times: if setup is already complete, this no-ops.
8
+ */
9
+ async function finalizeSetup(db) {
10
+ const options = new OptionsRepository(db);
11
+ const setupComplete = await options.get("dineway:setup_complete");
12
+ if (setupComplete === true || setupComplete === "true") return;
13
+ const setupState = await options.get("dineway:setup_state");
14
+ if (typeof setupState?.title === "string") await options.set("dineway:site_title", setupState.title);
15
+ if (typeof setupState?.tagline === "string") await options.set("dineway:site_tagline", setupState.tagline);
16
+ await options.set("dineway:setup_complete", true);
17
+ await options.delete("dineway:setup_state");
18
+ }
19
+
20
+ //#endregion
21
+ export { finalizeSetup as t };
@@ -0,0 +1,17 @@
1
+ //#region src/auth/setup-nonce.ts
2
+ /**
3
+ * Session binding for the first-setup admin-creation flow.
4
+ *
5
+ * Shared constants for the nonce cookie that ties /_dineway/api/setup/admin
6
+ * and /_dineway/api/setup/admin/verify to the same browser.
7
+ */
8
+ /** Cookie name carrying the setup-admin session nonce. */
9
+ const SETUP_NONCE_COOKIE = "dineway_setup_nonce";
10
+ /**
11
+ * Cookie max-age in seconds. One hour is enough time to complete a passkey
12
+ * registration; if the user lingers longer the admin step can be retried.
13
+ */
14
+ const SETUP_NONCE_MAX_AGE_SECONDS = 3600;
15
+
16
+ //#endregion
17
+ export { SETUP_NONCE_MAX_AGE_SECONDS as n, SETUP_NONCE_COOKIE as t };
@@ -0,0 +1,66 @@
1
+ //#region src/preview/sidecar-client.ts
2
+ /**
3
+ * Preview sidecar protocol helpers.
4
+ *
5
+ * These utilities define the signed URL and snapshot-auth contract shared
6
+ * by preview sidecars and the source site serving snapshot exports.
7
+ */
8
+ /** Matches a lowercase hex string */
9
+ const HEX_PATTERN = /^[0-9a-f]+$/;
10
+ async function hmacSign(message, secret) {
11
+ const encoder = new TextEncoder();
12
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
13
+ name: "HMAC",
14
+ hash: "SHA-256"
15
+ }, false, ["sign"]);
16
+ const buffer = await crypto.subtle.sign("HMAC", key, encoder.encode(message));
17
+ return Array.from(new Uint8Array(buffer), (byte) => byte.toString(16).padStart(2, "0")).join("");
18
+ }
19
+ async function signPreviewUrl(previewBase, source, secret, ttl = 3600) {
20
+ const exp = Math.floor(Date.now() / 1e3) + ttl;
21
+ const sig = await hmacSign(`${source}:${exp}`, secret);
22
+ const url = new URL(previewBase);
23
+ url.searchParams.set("source", source);
24
+ url.searchParams.set("exp", String(exp));
25
+ url.searchParams.set("sig", sig);
26
+ return url.toString();
27
+ }
28
+ function buildPreviewSignatureHeader(signature) {
29
+ return `${signature.source}:${signature.exp}:${signature.sig}`;
30
+ }
31
+ function parsePreviewSignatureHeader(header) {
32
+ const lastColon = header.lastIndexOf(":");
33
+ if (lastColon <= 0) return null;
34
+ const sig = header.substring(lastColon + 1);
35
+ if (sig.length !== 64 || !HEX_PATTERN.test(sig)) return null;
36
+ const rest = header.substring(0, lastColon);
37
+ const secondLastColon = rest.lastIndexOf(":");
38
+ if (secondLastColon <= 0) return null;
39
+ const source = rest.substring(0, secondLastColon);
40
+ const exp = parseInt(rest.substring(secondLastColon + 1), 10);
41
+ if (isNaN(exp) || source.length === 0) return null;
42
+ return {
43
+ source,
44
+ exp,
45
+ sig
46
+ };
47
+ }
48
+ async function verifyPreviewSignature(source, exp, sig, secret) {
49
+ if (exp < Date.now() / 1e3) return false;
50
+ if (sig.length !== 64 || !HEX_PATTERN.test(sig)) return false;
51
+ const sigBytes = new Uint8Array(32);
52
+ for (let i = 0; i < 64; i += 2) sigBytes[i / 2] = parseInt(sig.substring(i, i + 2), 16);
53
+ const encoder = new TextEncoder();
54
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), {
55
+ name: "HMAC",
56
+ hash: "SHA-256"
57
+ }, false, ["verify"]);
58
+ return crypto.subtle.verify("HMAC", key, sigBytes, encoder.encode(`${source}:${exp}`));
59
+ }
60
+ const defaultPreviewSidecarClient = {
61
+ signPreviewUrl,
62
+ buildSnapshotSignatureHeader: buildPreviewSignatureHeader
63
+ };
64
+
65
+ //#endregion
66
+ export { verifyPreviewSignature as a, signPreviewUrl as i, defaultPreviewSidecarClient as n, parsePreviewSignatureHeader as r, buildPreviewSignatureHeader as t };
@@ -0,0 +1,104 @@
1
+ import { n as decodeCursor, r as encodeCursor } from "./types-Bs6lTBBW.mjs";
2
+ import { ulid } from "ulidx";
3
+
4
+ //#region src/database/repositories/site-activity.ts
5
+ var SiteActivityRepository = class {
6
+ constructor(db) {
7
+ this.db = db;
8
+ }
9
+ async create(input) {
10
+ const id = ulid();
11
+ const values = {
12
+ id,
13
+ actor_type: input.actorType,
14
+ actor_id: input.actorId,
15
+ auth_metadata: input.authMetadata ? JSON.stringify(input.authMetadata) : null,
16
+ action_type: input.actionType,
17
+ subject_type: input.subjectType,
18
+ subject_id: input.subjectId ?? null,
19
+ related_subject_type: input.relatedSubjectType ?? null,
20
+ related_subject_id: input.relatedSubjectId ?? null,
21
+ source_type: input.sourceType ?? null,
22
+ source_name: input.sourceName ?? null,
23
+ result_status: input.resultStatus ?? "succeeded",
24
+ scope: input.scope,
25
+ summary: input.summary,
26
+ detail: input.detail ? JSON.stringify(input.detail) : null,
27
+ created_at: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
28
+ };
29
+ await this.db.insertInto("_dineway_activity_log").values(values).execute();
30
+ const activity = await this.findById(id);
31
+ if (!activity) throw new Error("Failed to create site activity");
32
+ return activity;
33
+ }
34
+ async findById(id) {
35
+ const row = await this.db.selectFrom("_dineway_activity_log").selectAll().where("id", "=", id).executeTakeFirst();
36
+ return row ? rowToSiteActivity(row) : null;
37
+ }
38
+ async findTimeline(query = {}) {
39
+ if (query.scopes && query.scopes.length === 0) return { items: [] };
40
+ const limit = Math.min(Math.max(1, query.limit ?? 50), 100);
41
+ let q = this.db.selectFrom("_dineway_activity_log").selectAll().orderBy("created_at", "desc").orderBy("id", "desc").limit(limit + 1);
42
+ if (query.scopes) q = q.where("scope", "in", query.scopes);
43
+ if (query.actorType) q = q.where("actor_type", "=", query.actorType);
44
+ if (query.actorId) q = q.where("actor_id", "=", query.actorId);
45
+ if (query.actionType) q = q.where("action_type", "=", query.actionType);
46
+ if (query.subjectType) q = q.where("subject_type", "=", query.subjectType);
47
+ if (query.subjectId) q = q.where("subject_id", "=", query.subjectId);
48
+ if (query.relatedSubjectType) q = q.where("related_subject_type", "=", query.relatedSubjectType);
49
+ if (query.relatedSubjectId) q = q.where("related_subject_id", "=", query.relatedSubjectId);
50
+ if (query.sourceType) q = q.where("source_type", "=", query.sourceType);
51
+ if (query.sourceName) q = q.where("source_name", "=", query.sourceName);
52
+ if (query.resultStatus) q = q.where("result_status", "=", query.resultStatus);
53
+ if (query.since) q = q.where("created_at", ">=", query.since);
54
+ if (query.until) q = q.where("created_at", "<=", query.until);
55
+ if (query.cursor) {
56
+ const decoded = decodeCursor(query.cursor);
57
+ if (decoded) q = q.where((eb) => eb.or([eb("created_at", "<", decoded.orderValue), eb.and([eb("created_at", "=", decoded.orderValue), eb("id", "<", decoded.id)])]));
58
+ }
59
+ const rows = await q.execute();
60
+ const items = rows.slice(0, limit).map((row) => rowToSiteActivity(row));
61
+ const result = { items };
62
+ if (rows.length > limit && items.length > 0) {
63
+ const last = items.at(-1);
64
+ result.nextCursor = encodeCursor(last.createdAt, last.id);
65
+ }
66
+ return result;
67
+ }
68
+ };
69
+ function rowToSiteActivity(row) {
70
+ return {
71
+ id: row.id,
72
+ actorType: row.actor_type,
73
+ actorId: row.actor_id,
74
+ authMetadata: parseRecord(row.auth_metadata),
75
+ actionType: row.action_type,
76
+ subjectType: row.subject_type,
77
+ subjectId: row.subject_id,
78
+ relatedSubjectType: row.related_subject_type,
79
+ relatedSubjectId: row.related_subject_id,
80
+ sourceType: row.source_type,
81
+ sourceName: row.source_name,
82
+ resultStatus: row.result_status,
83
+ scope: row.scope,
84
+ summary: row.summary,
85
+ detail: parseRecord(row.detail),
86
+ createdAt: row.created_at
87
+ };
88
+ }
89
+ function parseRecord(value) {
90
+ if (!value) return null;
91
+ try {
92
+ const parsed = JSON.parse(value);
93
+ if (isRecord(parsed)) return parsed;
94
+ return null;
95
+ } catch {
96
+ return null;
97
+ }
98
+ }
99
+ function isRecord(value) {
100
+ return typeof value === "object" && value !== null && !Array.isArray(value);
101
+ }
102
+
103
+ //#endregion
104
+ export { SiteActivityRepository as t };