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
@@ -1,203 +0,0 @@
1
- /**
2
- * Section by slug endpoints
3
- *
4
- * GET /_dineway/api/sections/:slug - Get section
5
- * PUT /_dineway/api/sections/:slug - Update section
6
- * DELETE /_dineway/api/sections/:slug - Delete section
7
- */
8
-
9
- import type { APIRoute } from "astro";
10
- import { z } from "zod";
11
-
12
- import { requirePerm } from "#api/authorize.js";
13
- import { apiError, handleError, unwrapResult } from "#api/error.js";
14
- import {
15
- handleSectionDelete,
16
- handleSectionGet,
17
- handleSectionUpdate,
18
- } from "#api/handlers/sections.js";
19
- import {
20
- ensureWorkflowHitlRouteRequest,
21
- hitlRequiredRouteError,
22
- resolveHitlRouteActor,
23
- } from "#api/hitl-route-helpers.js";
24
- import { isParseError, parseBody, parseQuery } from "#api/parse.js";
25
- import { updateSectionBody } from "#api/schemas.js";
26
- import {
27
- activityChangedKeys,
28
- logSectionActivity,
29
- RiskPolicyEvaluator,
30
- sectionApiRouteSource,
31
- SectionHitlPayloadBuilder,
32
- } from "#site-context/index.js";
33
-
34
- export const prerender = false;
35
-
36
- const updateSectionHitlBody = updateSectionBody.extend({
37
- hitlRequestId: z.string().min(1).optional(),
38
- });
39
-
40
- const deleteSectionQuery = z.object({
41
- hitlRequestId: z.string().min(1).optional(),
42
- });
43
-
44
- export const GET: APIRoute = async ({ params, locals }) => {
45
- const { dineway, user } = locals;
46
- const db = dineway.db;
47
- const { slug } = params;
48
-
49
- const denied = requirePerm(user, "sections:read");
50
- if (denied) return denied;
51
-
52
- if (!slug) {
53
- return apiError("VALIDATION_ERROR", "slug is required", 400);
54
- }
55
-
56
- try {
57
- const result = await handleSectionGet(db, slug);
58
- return unwrapResult(result);
59
- } catch (error) {
60
- return handleError(error, "Failed to fetch section", "SECTION_GET_ERROR");
61
- }
62
- };
63
-
64
- export const PUT: APIRoute = async ({ params, request, locals }) => {
65
- const { dineway, user } = locals;
66
- const db = dineway.db;
67
- const { slug } = params;
68
-
69
- const denied = requirePerm(user, "sections:manage");
70
- if (denied) return denied;
71
-
72
- if (!slug) {
73
- return apiError("VALIDATION_ERROR", "slug is required", 400);
74
- }
75
-
76
- try {
77
- const body = await parseBody(request, updateSectionHitlBody);
78
- if (isParseError(body)) return body;
79
-
80
- const current = await new SectionHitlPayloadBuilder(db).loadSectionSnapshot(slug);
81
- if (!current) {
82
- return apiError("NOT_FOUND", `Section "${slug}" not found`, 404);
83
- }
84
-
85
- const { hitlRequestId, ...sectionInput } = body;
86
- const actor = resolveHitlRouteActor(locals);
87
- const evaluator = new RiskPolicyEvaluator({
88
- db,
89
- handlers: dineway,
90
- });
91
- let approvedHitlRequestId: string | null = null;
92
-
93
- if (evaluator.requiresWorkflowHitl(actor.identity)) {
94
- const action = await new SectionHitlPayloadBuilder(db).buildUpdateSectionRequest({
95
- section: current,
96
- ...sectionInput,
97
- });
98
- const decision = await evaluator.evaluateWorkflowHitl({
99
- actor: actor.identity,
100
- hitlRequestId,
101
- action,
102
- });
103
- if (!decision.allowed) {
104
- const ensured = await ensureWorkflowHitlRouteRequest(db, locals, decision.action);
105
- return hitlRequiredRouteError(decision, ensured);
106
- }
107
- approvedHitlRequestId = decision.hitlRequest.id;
108
- }
109
-
110
- const result = await handleSectionUpdate(db, slug, sectionInput);
111
- if (result.success) {
112
- await logSectionActivity(db, locals, {
113
- action: "updated",
114
- sectionId: result.data.id,
115
- sectionSlug: result.data.slug,
116
- ...sectionApiRouteSource("updated"),
117
- detail: {
118
- changedKeys: activityChangedKeys(sectionInput),
119
- source: current.source,
120
- themeId: current.themeId,
121
- previewMediaId:
122
- sectionInput.previewMediaId !== undefined
123
- ? sectionInput.previewMediaId
124
- : current.previewMediaId,
125
- hitlRequestId: approvedHitlRequestId,
126
- },
127
- });
128
- }
129
- return unwrapResult(result);
130
- } catch (error) {
131
- return handleError(error, "Failed to update section", "SECTION_UPDATE_ERROR");
132
- }
133
- };
134
-
135
- export const DELETE: APIRoute = async ({ params, request, locals }) => {
136
- const { dineway, user } = locals;
137
- const db = dineway.db;
138
- const { slug } = params;
139
-
140
- const denied = requirePerm(user, "sections:manage");
141
- if (denied) return denied;
142
-
143
- if (!slug) {
144
- return apiError("VALIDATION_ERROR", "slug is required", 400);
145
- }
146
-
147
- const query = parseQuery(new URL(request.url), deleteSectionQuery);
148
- if (isParseError(query)) return query;
149
-
150
- try {
151
- const current = await new SectionHitlPayloadBuilder(db).loadSectionSnapshot(slug);
152
- if (!current) {
153
- return apiError("NOT_FOUND", `Section "${slug}" not found`, 404);
154
- }
155
-
156
- if (current.source === "theme") {
157
- const result = await handleSectionDelete(db, slug);
158
- return unwrapResult(result);
159
- }
160
-
161
- const actor = resolveHitlRouteActor(locals);
162
- const evaluator = new RiskPolicyEvaluator({
163
- db,
164
- handlers: dineway,
165
- });
166
- let approvedHitlRequestId: string | null = null;
167
-
168
- if (evaluator.requiresWorkflowHitl(actor.identity)) {
169
- const action = await new SectionHitlPayloadBuilder(db).buildDeleteSectionRequest({
170
- section: current,
171
- });
172
- const decision = await evaluator.evaluateWorkflowHitl({
173
- actor: actor.identity,
174
- hitlRequestId: query.hitlRequestId,
175
- action,
176
- });
177
- if (!decision.allowed) {
178
- const ensured = await ensureWorkflowHitlRouteRequest(db, locals, decision.action);
179
- return hitlRequiredRouteError(decision, ensured);
180
- }
181
- approvedHitlRequestId = decision.hitlRequest.id;
182
- }
183
-
184
- const result = await handleSectionDelete(db, slug);
185
- if (result.success) {
186
- await logSectionActivity(db, locals, {
187
- action: "deleted",
188
- sectionId: current.id,
189
- sectionSlug: current.slug,
190
- ...sectionApiRouteSource("deleted"),
191
- detail: {
192
- source: current.source,
193
- themeId: current.themeId,
194
- previewMediaId: current.previewMediaId,
195
- hitlRequestId: approvedHitlRequestId,
196
- },
197
- });
198
- }
199
- return unwrapResult(result);
200
- } catch (error) {
201
- return handleError(error, "Failed to delete section", "SECTION_DELETE_ERROR");
202
- }
203
- };
@@ -1,107 +0,0 @@
1
- /**
2
- * Sections list and create endpoints
3
- *
4
- * GET /_dineway/api/sections - List all sections (with filters)
5
- * POST /_dineway/api/sections - Create section
6
- */
7
-
8
- import type { APIRoute } from "astro";
9
- import { z } from "zod";
10
-
11
- import { requirePerm } from "#api/authorize.js";
12
- import { handleError, unwrapResult } from "#api/error.js";
13
- import { handleSectionCreate, handleSectionList } from "#api/handlers/sections.js";
14
- import {
15
- ensureWorkflowHitlRouteRequest,
16
- hitlRequiredRouteError,
17
- resolveHitlRouteActor,
18
- } from "#api/hitl-route-helpers.js";
19
- import { isParseError, parseBody, parseQuery } from "#api/parse.js";
20
- import { createSectionBody, sectionsListQuery } from "#api/schemas.js";
21
- import {
22
- logSectionActivity,
23
- RiskPolicyEvaluator,
24
- sectionApiRouteSource,
25
- SectionHitlPayloadBuilder,
26
- } from "#site-context/index.js";
27
-
28
- export const prerender = false;
29
-
30
- const createSectionHitlBody = createSectionBody.extend({
31
- hitlRequestId: z.string().min(1).optional(),
32
- });
33
-
34
- export const GET: APIRoute = async ({ url, locals }) => {
35
- const { dineway, user } = locals;
36
- const db = dineway.db;
37
-
38
- const denied = requirePerm(user, "sections:read");
39
- if (denied) return denied;
40
-
41
- try {
42
- const query = parseQuery(url, sectionsListQuery);
43
- if (isParseError(query)) return query;
44
-
45
- const result = await handleSectionList(db, query);
46
- return unwrapResult(result);
47
- } catch (error) {
48
- return handleError(error, "Failed to fetch sections", "SECTION_LIST_ERROR");
49
- }
50
- };
51
-
52
- export const POST: APIRoute = async ({ request, locals }) => {
53
- const { dineway, user } = locals;
54
- const db = dineway.db;
55
-
56
- const denied = requirePerm(user, "sections:manage");
57
- if (denied) return denied;
58
-
59
- try {
60
- const body = await parseBody(request, createSectionHitlBody);
61
- if (isParseError(body)) return body;
62
-
63
- const { hitlRequestId, ...sectionInput } = body;
64
- const actor = resolveHitlRouteActor(locals);
65
- const evaluator = new RiskPolicyEvaluator({
66
- db,
67
- handlers: dineway,
68
- });
69
- let approvedHitlRequestId: string | null = null;
70
-
71
- if (evaluator.requiresWorkflowHitl(actor.identity)) {
72
- const action = await new SectionHitlPayloadBuilder(db).buildCreateSectionRequest(
73
- sectionInput,
74
- );
75
- const decision = await evaluator.evaluateWorkflowHitl({
76
- actor: actor.identity,
77
- hitlRequestId,
78
- action,
79
- });
80
- if (!decision.allowed) {
81
- const ensured = await ensureWorkflowHitlRouteRequest(db, locals, decision.action);
82
- return hitlRequiredRouteError(decision, ensured);
83
- }
84
- approvedHitlRequestId = decision.hitlRequest.id;
85
- }
86
-
87
- const result = await handleSectionCreate(db, sectionInput);
88
- if (result.success) {
89
- await logSectionActivity(db, locals, {
90
- action: "created",
91
- sectionId: result.data.id,
92
- sectionSlug: result.data.slug,
93
- ...sectionApiRouteSource("created"),
94
- detail: {
95
- title: result.data.title,
96
- source: result.data.source,
97
- themeId: result.data.themeId ?? null,
98
- previewMediaId: sectionInput.previewMediaId ?? null,
99
- hitlRequestId: approvedHitlRequestId,
100
- },
101
- });
102
- }
103
- return unwrapResult(result, 201);
104
- } catch (error) {
105
- return handleError(error, "Failed to create section", "SECTION_CREATE_ERROR");
106
- }
107
- };
@@ -1,150 +0,0 @@
1
- /**
2
- * Email Settings API endpoint
3
- *
4
- * GET /_dineway/api/settings/email — current provider, available providers, middleware
5
- * POST /_dineway/api/settings/email/test — send a test email through the full pipeline
6
- */
7
-
8
- import { escapeHtml } from "@dineway-ai/auth";
9
- import type { APIRoute } from "astro";
10
- import { z } from "zod";
11
-
12
- import { requirePerm } from "#api/authorize.js";
13
- import { apiError, apiSuccess, handleError } from "#api/error.js";
14
- import { isParseError, parseBody } from "#api/parse.js";
15
- import { OptionsRepository } from "#db/repositories/options.js";
16
-
17
- export const prerender = false;
18
-
19
- const EMAIL_DELIVER_HOOK = "email:deliver";
20
- const EMAIL_BEFORE_SEND_HOOK = "email:beforeSend";
21
- const EMAIL_AFTER_SEND_HOOK = "email:afterSend";
22
-
23
- /**
24
- * GET /_dineway/api/settings/email
25
- *
26
- * Returns the email configuration state:
27
- * - Current provider selection
28
- * - Available providers (plugins with email:deliver)
29
- * - Active middleware (email:beforeSend / email:afterSend plugins)
30
- * - Whether email is available
31
- */
32
- export const GET: APIRoute = async ({ locals }) => {
33
- const { dineway, user } = locals;
34
-
35
- if (!dineway?.db) {
36
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
37
- }
38
-
39
- const denied = requirePerm(user, "settings:manage");
40
- if (denied) return denied;
41
-
42
- try {
43
- const pipeline = dineway.hooks;
44
- const optionsRepo = new OptionsRepository(dineway.db);
45
-
46
- // Get email:deliver providers and current selection
47
- const providers = pipeline.getExclusiveHookProviders(EMAIL_DELIVER_HOOK);
48
- const selectedProviderId = await optionsRepo.get<string>(
49
- `dineway:exclusive_hook:${EMAIL_DELIVER_HOOK}`,
50
- );
51
-
52
- // Get middleware hooks (beforeSend / afterSend)
53
- const beforeSendPlugins = pipeline
54
- .getExclusiveHookProviders(EMAIL_BEFORE_SEND_HOOK)
55
- .map((p) => p.pluginId);
56
- const afterSendPlugins = pipeline
57
- .getExclusiveHookProviders(EMAIL_AFTER_SEND_HOOK)
58
- .map((p) => p.pluginId);
59
-
60
- // Note: beforeSend/afterSend are NOT exclusive hooks, but getExclusiveHookProviders
61
- // only finds exclusive ones. We need all hooks for those names.
62
- // For now, report what we can from the exclusive hook system.
63
- // Middleware is non-exclusive so we'd need a different query.
64
- // TODO: Add getHookProviders() for non-exclusive hooks to the pipeline.
65
-
66
- return apiSuccess({
67
- available: dineway.email?.isAvailable() ?? false,
68
- providers: providers.map((p) => ({
69
- pluginId: p.pluginId,
70
- })),
71
- selectedProviderId: selectedProviderId ?? null,
72
- middleware: {
73
- beforeSend: beforeSendPlugins,
74
- afterSend: afterSendPlugins,
75
- },
76
- });
77
- } catch (error) {
78
- return handleError(error, "Failed to get email settings", "EMAIL_SETTINGS_READ_ERROR");
79
- }
80
- };
81
-
82
- /**
83
- * POST /_dineway/api/settings/email/test
84
- *
85
- * Send a test email through the full pipeline.
86
- * Validates the pipeline is configured and the provider works.
87
- */
88
- const testEmailBody = z.object({
89
- to: z.string().email(),
90
- });
91
-
92
- export const POST: APIRoute = async ({ request, locals }) => {
93
- const { dineway, user } = locals;
94
-
95
- if (!dineway?.db) {
96
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
97
- }
98
-
99
- const denied = requirePerm(user, "settings:manage");
100
- if (denied) return denied;
101
-
102
- if (!dineway.email?.isAvailable()) {
103
- return apiError(
104
- "EMAIL_NOT_CONFIGURED",
105
- "No email provider is configured. Install and activate an email provider plugin.",
106
- 503,
107
- );
108
- }
109
-
110
- try {
111
- const body = await parseBody(request, testEmailBody);
112
- if (isParseError(body)) return body;
113
-
114
- const optionsRepo = new OptionsRepository(dineway.db);
115
- const siteName = (await optionsRepo.get<string>("dineway:site_title")) ?? "Dineway";
116
- const safeName = escapeHtml(siteName);
117
-
118
- await dineway.email.send(
119
- {
120
- to: body.to,
121
- subject: `Test email from ${siteName}`,
122
- text: `This is a test email from ${siteName}.\n\nIf you received this, your email provider is working correctly.`,
123
- html: `
124
- <!DOCTYPE html>
125
- <html>
126
- <head>
127
- <meta charset="utf-8">
128
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
129
- </head>
130
- <body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.5; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
131
- <h1 style="font-size: 24px; margin-bottom: 20px;">Test Email</h1>
132
- <p>This is a test email from <strong>${safeName}</strong>.</p>
133
- <p>If you received this, your email provider is working correctly.</p>
134
- <p style="color: #666; font-size: 14px; margin-top: 30px;">
135
- Sent via the Dineway email pipeline.
136
- </p>
137
- </body>
138
- </html>`,
139
- },
140
- "admin",
141
- );
142
-
143
- return apiSuccess({
144
- success: true,
145
- message: `Test email sent to ${body.to}`,
146
- });
147
- } catch (error) {
148
- return handleError(error, "Failed to send test email", "EMAIL_TEST_ERROR");
149
- }
150
- };
@@ -1,116 +0,0 @@
1
- /**
2
- * Site Settings API endpoint
3
- *
4
- * GET /_dineway/api/settings - Get all site settings
5
- * POST /_dineway/api/settings - Update site settings
6
- */
7
-
8
- import type { APIRoute } from "astro";
9
- import { z } from "zod";
10
-
11
- import { requirePerm } from "#api/authorize.js";
12
- import { apiError, handleError, unwrapResult } from "#api/error.js";
13
- import { handleSettingsGet, handleSettingsUpdate } from "#api/handlers/settings.js";
14
- import {
15
- ensureWorkflowHitlRouteRequest,
16
- hitlRequiredRouteError,
17
- resolveHitlRouteActor,
18
- } from "#api/hitl-route-helpers.js";
19
- import { isParseError, parseBody } from "#api/parse.js";
20
- import { settingsUpdateBody } from "#api/schemas.js";
21
- import {
22
- logSiteActivitySafely,
23
- RiskPolicyEvaluator,
24
- settingsApiRouteSource,
25
- SettingsHitlPayloadBuilder,
26
- } from "#site-context/index.js";
27
-
28
- export const prerender = false;
29
-
30
- const settingsHitlBody = settingsUpdateBody.extend({
31
- hitlRequestId: z.string().min(1).optional(),
32
- });
33
-
34
- /**
35
- * GET /_dineway/api/settings
36
- *
37
- * Returns all site settings as a JSON object.
38
- * Unset values are undefined. Media references include resolved URLs.
39
- */
40
- export const GET: APIRoute = async ({ locals }) => {
41
- const { dineway, user } = locals;
42
-
43
- if (!dineway?.db) {
44
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
45
- }
46
-
47
- const denied = requirePerm(user, "settings:read");
48
- if (denied) return denied;
49
-
50
- try {
51
- const result = await handleSettingsGet(dineway.db, dineway.storage);
52
- return unwrapResult(result);
53
- } catch (error) {
54
- return handleError(error, "Failed to get settings", "SETTINGS_READ_ERROR");
55
- }
56
- };
57
-
58
- /**
59
- * POST /_dineway/api/settings
60
- *
61
- * Updates site settings. Accepts a partial settings object.
62
- * Merges with existing settings and returns the updated settings.
63
- */
64
- export const POST: APIRoute = async ({ request, locals }) => {
65
- const { dineway, user } = locals;
66
-
67
- if (!dineway?.db) {
68
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
69
- }
70
-
71
- const denied = requirePerm(user, "settings:manage");
72
- if (denied) return denied;
73
-
74
- try {
75
- const body = await parseBody(request, settingsHitlBody);
76
- if (isParseError(body)) return body;
77
-
78
- const { hitlRequestId, ...settingsInput } = body;
79
- const actor = resolveHitlRouteActor(locals);
80
- const action = await new SettingsHitlPayloadBuilder(dineway.db).buildUpdateSettingsRequest(
81
- settingsInput,
82
- );
83
- const decision = await new RiskPolicyEvaluator({
84
- db: dineway.db,
85
- handlers: dineway,
86
- }).evaluateWorkflowHitl({
87
- actor: actor.identity,
88
- hitlRequestId,
89
- action,
90
- });
91
- if (!decision.allowed) {
92
- const ensured = await ensureWorkflowHitlRouteRequest(dineway.db, locals, decision.action);
93
- return hitlRequiredRouteError(decision, ensured);
94
- }
95
-
96
- const result = await handleSettingsUpdate(dineway.db, dineway.storage, settingsInput);
97
- if (!result.success) return unwrapResult(result);
98
-
99
- await logSiteActivitySafely(dineway.db, locals, {
100
- actionType: "settings.updated",
101
- subjectType: "site_settings",
102
- subjectId: "site",
103
- scope: "site",
104
- ...settingsApiRouteSource("updated"),
105
- summary: action.summary ?? "Updated site settings",
106
- detail: {
107
- changedKeys: Object.keys(settingsInput).toSorted(),
108
- touchesSeo: Object.hasOwn(settingsInput, "seo"),
109
- hitlRequestId: decision.required ? decision.hitlRequest.id : null,
110
- },
111
- });
112
- return unwrapResult(result);
113
- } catch (error) {
114
- return handleError(error, "Failed to update settings", "SETTINGS_UPDATE_ERROR");
115
- }
116
- };
@@ -1,122 +0,0 @@
1
- /**
2
- * POST /_dineway/api/setup/admin/verify
3
- *
4
- * Complete admin creation by verifying the passkey registration
5
- */
6
-
7
- import type { APIRoute } from "astro";
8
-
9
- export const prerender = false;
10
-
11
- import { Role, secureCompare } from "@dineway-ai/auth";
12
- import { createKyselyAdapter } from "@dineway-ai/auth/adapters/kysely";
13
- import { verifyRegistrationResponse, registerPasskey } from "@dineway-ai/auth/passkey";
14
-
15
- import { apiError, apiSuccess, handleError } from "#api/error.js";
16
- import { isParseError, parseBody } from "#api/parse.js";
17
- import { getPublicOrigin } from "#api/public-url.js";
18
- import { setupAdminVerifyBody } from "#api/schemas.js";
19
- import { createChallengeStore } from "#auth/challenge-store.js";
20
- import { getPasskeyConfig } from "#auth/passkey-config.js";
21
- import { SETUP_NONCE_COOKIE } from "#auth/setup-nonce.js";
22
- import { OptionsRepository } from "#db/repositories/options.js";
23
-
24
- export const POST: APIRoute = async ({ cookies, request, locals }) => {
25
- const { dineway } = locals;
26
-
27
- if (!dineway?.db) {
28
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
29
- }
30
-
31
- try {
32
- // Check if setup is already complete
33
- const options = new OptionsRepository(dineway.db);
34
- const setupComplete = await options.get("dineway:setup_complete");
35
-
36
- if (setupComplete === true || setupComplete === "true") {
37
- return apiError("SETUP_COMPLETE", "Setup already complete", 400);
38
- }
39
-
40
- // Check if any users exist
41
- const adapter = createKyselyAdapter(dineway.db);
42
- const userCount = await adapter.countUsers();
43
-
44
- if (userCount > 0) {
45
- return apiError("ADMIN_EXISTS", "Admin user already exists", 400);
46
- }
47
-
48
- // Get setup state
49
- const setupState = await options.get<{
50
- step?: string;
51
- email?: string;
52
- name?: string | null;
53
- nonce?: string;
54
- }>("dineway:setup_state");
55
-
56
- if (!setupState || setupState.step !== "admin") {
57
- return apiError("INVALID_STATE", "Invalid setup state. Please restart setup.", 400);
58
- }
59
-
60
- const cookieNonce = cookies.get(SETUP_NONCE_COOKIE)?.value;
61
- if (!setupState.nonce || !cookieNonce || !secureCompare(cookieNonce, setupState.nonce)) {
62
- return apiError(
63
- "INVALID_STATE",
64
- "Setup session expired or tampered with. Please restart the admin step.",
65
- 400,
66
- );
67
- }
68
-
69
- if (!setupState.email) {
70
- return apiError("INVALID_STATE", "Invalid setup state. Please restart setup.", 400);
71
- }
72
-
73
- // Parse request body
74
- const body = await parseBody(request, setupAdminVerifyBody);
75
- if (isParseError(body)) return body;
76
-
77
- // Get passkey config
78
- const url = new URL(request.url);
79
- const siteName = (await options.get<string>("dineway:site_title")) ?? undefined;
80
- const siteUrl = getPublicOrigin(url, dineway?.config);
81
- const passkeyConfig = getPasskeyConfig(url, siteName, siteUrl);
82
-
83
- // Verify the registration response
84
- const challengeStore = createChallengeStore(dineway.db);
85
-
86
- const verified = await verifyRegistrationResponse(
87
- passkeyConfig,
88
- body.credential,
89
- challengeStore,
90
- );
91
-
92
- // Create the admin user
93
- const user = await adapter.createUser({
94
- email: setupState.email,
95
- name: setupState.name ?? null,
96
- role: Role.ADMIN,
97
- emailVerified: false, // No email verification for first user
98
- });
99
-
100
- // Register the passkey
101
- await registerPasskey(adapter, user.id, verified, "Setup passkey");
102
-
103
- // Mark setup as complete
104
- await options.set("dineway:setup_complete", true);
105
-
106
- // Clean up setup state and the session nonce cookie
107
- await options.delete("dineway:setup_state");
108
- cookies.delete(SETUP_NONCE_COOKIE, { path: "/_dineway/" });
109
-
110
- return apiSuccess({
111
- success: true,
112
- user: {
113
- id: user.id,
114
- email: user.email,
115
- name: user.name,
116
- role: user.role,
117
- },
118
- });
119
- } catch (error) {
120
- return handleError(error, "Failed to verify admin setup", "SETUP_VERIFY_ERROR");
121
- }
122
- };