dineway 0.1.8 → 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 (690) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +63 -17
  3. package/dist/activity-events-BsMaXdJa.mjs +540 -0
  4. package/dist/allowed-origins-DG86sH8U.mjs +68 -0
  5. package/dist/api/route-utils.d.mts +41 -0
  6. package/dist/api/route-utils.mjs +26 -0
  7. package/dist/api/schemas/index.d.mts +3 -0
  8. package/dist/api/schemas/index.mjs +6 -0
  9. package/dist/api/schemas/setup.d.mts +42 -0
  10. package/dist/api/schemas/setup.mjs +39 -0
  11. package/dist/api-Cmy8Rjk5.mjs +2704 -0
  12. package/dist/api-tokens-Bu3ez1MO.mjs +153 -0
  13. package/dist/api-tokens-DzloJxuh.mjs +3 -0
  14. package/dist/{apply-iVSqz2qs.mjs → apply-Co5imxxT.mjs} +15 -689
  15. package/dist/astro/index.d.mts +10 -6
  16. package/dist/astro/index.mjs +86 -11
  17. package/dist/astro/middleware/auth.d.mts +10 -7
  18. package/dist/astro/middleware/auth.mjs +19 -104
  19. package/dist/astro/middleware/redirect.mjs +24 -14
  20. package/dist/astro/middleware/request-context.mjs +9 -6
  21. package/dist/astro/middleware/setup.mjs +1 -1
  22. package/dist/astro/middleware.mjs +86 -145
  23. package/dist/astro/routes/PluginRegistry.d.mts +14 -0
  24. package/dist/astro/routes/PluginRegistry.mjs +24 -0
  25. package/dist/astro/routes/api/admin/allowed-domains/_domain_.d.mts +14 -0
  26. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +65 -0
  27. package/dist/astro/routes/api/admin/allowed-domains/index.d.mts +14 -0
  28. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +65 -0
  29. package/dist/astro/routes/api/admin/api-tokens/_id_.d.mts +10 -0
  30. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +33 -0
  31. package/dist/astro/routes/api/admin/api-tokens/index.d.mts +16 -0
  32. package/dist/astro/routes/api/admin/api-tokens/index.mjs +59 -0
  33. package/dist/astro/routes/api/admin/briefing.d.mts +7 -0
  34. package/dist/astro/routes/api/admin/briefing.mjs +71 -0
  35. package/dist/astro/routes/api/admin/bylines/_id_/index.d.mts +9 -0
  36. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +74 -0
  37. package/dist/astro/routes/api/admin/bylines/index.d.mts +8 -0
  38. package/dist/astro/routes/api/admin/bylines/index.mjs +61 -0
  39. package/dist/astro/routes/api/admin/comments/_id_/status.d.mts +7 -0
  40. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +80 -0
  41. package/dist/astro/routes/api/admin/comments/_id_.d.mts +14 -0
  42. package/dist/astro/routes/api/admin/comments/_id_.mjs +46 -0
  43. package/dist/astro/routes/api/admin/comments/bulk.d.mts +7 -0
  44. package/dist/astro/routes/api/admin/comments/bulk.mjs +36 -0
  45. package/dist/astro/routes/api/admin/comments/counts.d.mts +7 -0
  46. package/dist/astro/routes/api/admin/comments/counts.mjs +24 -0
  47. package/dist/astro/routes/api/admin/comments/index.d.mts +10 -0
  48. package/dist/astro/routes/api/admin/comments/index.mjs +40 -0
  49. package/dist/astro/routes/api/admin/context/_id_/history.d.mts +7 -0
  50. package/dist/astro/routes/api/admin/context/_id_/history.mjs +45 -0
  51. package/dist/astro/routes/api/admin/context/_id_/index.d.mts +7 -0
  52. package/dist/astro/routes/api/admin/context/_id_/index.mjs +45 -0
  53. package/dist/astro/routes/api/admin/context/_id_/review.d.mts +7 -0
  54. package/dist/astro/routes/api/admin/context/_id_/review.mjs +60 -0
  55. package/dist/astro/routes/api/admin/context/_id_/supersede.d.mts +7 -0
  56. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +63 -0
  57. package/dist/astro/routes/api/admin/context/diff.d.mts +7 -0
  58. package/dist/astro/routes/api/admin/context/diff.mjs +49 -0
  59. package/dist/astro/routes/api/admin/context/index.d.mts +8 -0
  60. package/dist/astro/routes/api/admin/context/index.mjs +71 -0
  61. package/dist/astro/routes/api/admin/context/stale.d.mts +7 -0
  62. package/dist/astro/routes/api/admin/context/stale.mjs +49 -0
  63. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.d.mts +7 -0
  64. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +51 -0
  65. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.d.mts +7 -0
  66. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +67 -0
  67. package/dist/astro/routes/api/admin/hitl-requests/index.d.mts +7 -0
  68. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +55 -0
  69. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.d.mts +7 -0
  70. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +98 -0
  71. package/dist/astro/routes/api/admin/hooks/exclusive/index.d.mts +7 -0
  72. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +33 -0
  73. package/dist/astro/routes/api/admin/oauth-clients/_id_.d.mts +18 -0
  74. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +79 -0
  75. package/dist/astro/routes/api/admin/oauth-clients/index.d.mts +14 -0
  76. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +58 -0
  77. package/dist/astro/routes/api/admin/plugins/_id_/disable.d.mts +7 -0
  78. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +89 -0
  79. package/dist/astro/routes/api/admin/plugins/_id_/enable.d.mts +7 -0
  80. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +89 -0
  81. package/dist/astro/routes/api/admin/plugins/_id_/index.d.mts +7 -0
  82. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +54 -0
  83. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.d.mts +7 -0
  84. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +98 -0
  85. package/dist/astro/routes/api/admin/plugins/_id_/update.d.mts +7 -0
  86. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +131 -0
  87. package/dist/astro/routes/api/admin/plugins/index.d.mts +7 -0
  88. package/dist/astro/routes/api/admin/plugins/index.mjs +52 -0
  89. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.d.mts +7 -0
  90. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +36 -0
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.d.mts +7 -0
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +54 -0
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.d.mts +7 -0
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +128 -0
  95. package/dist/astro/routes/api/admin/plugins/marketplace/index.d.mts +7 -0
  96. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +61 -0
  97. package/dist/astro/routes/api/admin/plugins/updates.d.mts +7 -0
  98. package/dist/astro/routes/api/admin/plugins/updates.mjs +52 -0
  99. package/dist/astro/routes/api/admin/review-requests/_id_/index.d.mts +7 -0
  100. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +26 -0
  101. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.d.mts +7 -0
  102. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +97 -0
  103. package/dist/astro/routes/api/admin/review-requests/index.d.mts +7 -0
  104. package/dist/astro/routes/api/admin/review-requests/index.mjs +31 -0
  105. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.d.mts +7 -0
  106. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +54 -0
  107. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.d.mts +7 -0
  108. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +36 -0
  109. package/dist/astro/routes/api/admin/themes/marketplace/index.d.mts +7 -0
  110. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +70 -0
  111. package/dist/astro/routes/api/admin/users/_id_/disable.d.mts +7 -0
  112. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +38 -0
  113. package/dist/astro/routes/api/admin/users/_id_/enable.d.mts +7 -0
  114. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +29 -0
  115. package/dist/astro/routes/api/admin/users/_id_/index.d.mts +8 -0
  116. package/dist/astro/routes/api/admin/users/_id_/index.mjs +104 -0
  117. package/dist/astro/routes/api/admin/users/_id_/send-recovery.d.mts +7 -0
  118. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +43 -0
  119. package/dist/astro/routes/api/admin/users/index.d.mts +7 -0
  120. package/dist/astro/routes/api/admin/users/index.mjs +54 -0
  121. package/dist/astro/routes/api/auth/dev-bypass.d.mts +8 -0
  122. package/dist/astro/routes/api/auth/dev-bypass.mjs +81 -0
  123. package/dist/astro/routes/api/auth/invite/accept.d.mts +7 -0
  124. package/dist/astro/routes/api/auth/invite/accept.mjs +31 -0
  125. package/dist/astro/routes/api/auth/invite/complete.d.mts +7 -0
  126. package/dist/astro/routes/api/auth/invite/complete.mjs +54 -0
  127. package/dist/astro/routes/api/auth/invite/index.d.mts +7 -0
  128. package/dist/astro/routes/api/auth/invite/index.mjs +51 -0
  129. package/dist/astro/routes/api/auth/invite/register-options.d.mts +7 -0
  130. package/dist/astro/routes/api/auth/invite/register-options.mjs +44 -0
  131. package/dist/astro/routes/api/auth/logout.d.mts +7 -0
  132. package/dist/astro/routes/api/auth/logout.mjs +24 -0
  133. package/dist/astro/routes/api/auth/magic-link/send.d.mts +7 -0
  134. package/dist/astro/routes/api/auth/magic-link/send.mjs +48 -0
  135. package/dist/astro/routes/api/auth/magic-link/verify.d.mts +7 -0
  136. package/dist/astro/routes/api/auth/magic-link/verify.mjs +32 -0
  137. package/dist/astro/routes/api/auth/me.d.mts +13 -0
  138. package/dist/astro/routes/api/auth/me.mjs +41 -0
  139. package/dist/astro/routes/api/auth/mode.d.mts +7 -0
  140. package/dist/astro/routes/api/auth/mode.mjs +28 -0
  141. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts +7 -0
  142. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +114 -0
  143. package/dist/astro/routes/api/auth/oauth/_provider_.d.mts +7 -0
  144. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +58 -0
  145. package/dist/astro/routes/api/auth/passkey/_id_.d.mts +14 -0
  146. package/dist/astro/routes/api/auth/passkey/_id_.mjs +62 -0
  147. package/dist/astro/routes/api/auth/passkey/index.d.mts +7 -0
  148. package/dist/astro/routes/api/auth/passkey/index.mjs +25 -0
  149. package/dist/astro/routes/api/auth/passkey/options.d.mts +7 -0
  150. package/dist/astro/routes/api/auth/passkey/options.mjs +46 -0
  151. package/dist/astro/routes/api/auth/passkey/register/options.d.mts +7 -0
  152. package/dist/astro/routes/api/auth/passkey/register/options.mjs +44 -0
  153. package/dist/astro/routes/api/auth/passkey/register/verify.d.mts +7 -0
  154. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +59 -0
  155. package/dist/astro/routes/api/auth/passkey/verify.d.mts +7 -0
  156. package/dist/astro/routes/api/auth/passkey/verify.mjs +47 -0
  157. package/dist/astro/routes/api/auth/signup/complete.d.mts +7 -0
  158. package/dist/astro/routes/api/auth/signup/complete.mjs +55 -0
  159. package/dist/astro/routes/api/auth/signup/request.d.mts +7 -0
  160. package/dist/astro/routes/api/auth/signup/request.mjs +44 -0
  161. package/dist/astro/routes/api/auth/signup/verify.d.mts +7 -0
  162. package/dist/astro/routes/api/auth/signup/verify.mjs +32 -0
  163. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +14 -0
  164. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +193 -0
  165. package/dist/astro/routes/api/content/_collection_/_id_/compare.d.mts +7 -0
  166. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +17 -0
  167. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.d.mts +7 -0
  168. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +36 -0
  169. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.d.mts +7 -0
  170. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +39 -0
  171. package/dist/astro/routes/api/content/_collection_/_id_/permanent.d.mts +7 -0
  172. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +31 -0
  173. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.d.mts +7 -0
  174. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +78 -0
  175. package/dist/astro/routes/api/content/_collection_/_id_/publish.d.mts +7 -0
  176. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +92 -0
  177. package/dist/astro/routes/api/content/_collection_/_id_/restore.d.mts +7 -0
  178. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +36 -0
  179. package/dist/astro/routes/api/content/_collection_/_id_/revisions.d.mts +7 -0
  180. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +19 -0
  181. package/dist/astro/routes/api/content/_collection_/_id_/schedule.d.mts +8 -0
  182. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +75 -0
  183. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.d.mts +14 -0
  184. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +85 -0
  185. package/dist/astro/routes/api/content/_collection_/_id_/translations.d.mts +7 -0
  186. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +40 -0
  187. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.d.mts +7 -0
  188. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +36 -0
  189. package/dist/astro/routes/api/content/_collection_/_id_.d.mts +9 -0
  190. package/dist/astro/routes/api/content/_collection_/_id_.mjs +114 -0
  191. package/dist/astro/routes/api/content/_collection_/index.d.mts +8 -0
  192. package/dist/astro/routes/api/content/_collection_/index.mjs +74 -0
  193. package/dist/astro/routes/api/content/_collection_/trash.d.mts +7 -0
  194. package/dist/astro/routes/api/content/_collection_/trash.mjs +23 -0
  195. package/dist/astro/routes/api/dashboard.d.mts +7 -0
  196. package/dist/astro/routes/api/dashboard.mjs +26 -0
  197. package/dist/astro/routes/api/dev/emails.d.mts +8 -0
  198. package/dist/astro/routes/api/dev/emails.mjs +17 -0
  199. package/dist/astro/routes/api/health.d.mts +7 -0
  200. package/dist/astro/routes/api/health.mjs +34 -0
  201. package/dist/astro/routes/api/import/probe.d.mts +17 -0
  202. package/dist/astro/routes/api/import/probe.mjs +33 -0
  203. package/dist/astro/routes/api/import/wordpress/analyze.d.mts +87 -0
  204. package/dist/astro/routes/api/import/wordpress/analyze.mjs +305 -0
  205. package/dist/astro/routes/api/import/wordpress/execute.d.mts +37 -0
  206. package/dist/astro/routes/api/import/wordpress/execute.mjs +197 -0
  207. package/dist/astro/routes/api/import/wordpress/media.d.mts +35 -0
  208. package/dist/astro/routes/api/import/wordpress/media.mjs +222 -0
  209. package/dist/astro/routes/api/import/wordpress/prepare.d.mts +19 -0
  210. package/dist/astro/routes/api/import/wordpress/prepare.mjs +155 -0
  211. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +21 -0
  212. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +289 -0
  213. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +15 -0
  214. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +69 -0
  215. package/dist/astro/routes/api/import/wordpress-plugin/callback.d.mts +7 -0
  216. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +28 -0
  217. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +19 -0
  218. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +268 -0
  219. package/dist/astro/routes/api/manifest.d.mts +7 -0
  220. package/dist/astro/routes/api/manifest.mjs +50 -0
  221. package/dist/astro/routes/api/mcp.d.mts +15 -0
  222. package/dist/astro/routes/api/mcp.mjs +2700 -0
  223. package/dist/astro/routes/api/media/_id_/confirm.d.mts +10 -0
  224. package/dist/astro/routes/api/media/_id_/confirm.mjs +59 -0
  225. package/dist/astro/routes/api/media/_id_.d.mts +22 -0
  226. package/dist/astro/routes/api/media/_id_.mjs +81 -0
  227. package/dist/astro/routes/api/media/file/_...key_.d.mts +7 -0
  228. package/dist/astro/routes/api/media/file/_...key_.mjs +49 -0
  229. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.d.mts +14 -0
  230. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +49 -0
  231. package/dist/astro/routes/api/media/providers/_providerId_/index.d.mts +14 -0
  232. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +72 -0
  233. package/dist/astro/routes/api/media/providers/index.d.mts +10 -0
  234. package/dist/astro/routes/api/media/providers/index.mjs +18 -0
  235. package/dist/astro/routes/api/media/upload-url.d.mts +10 -0
  236. package/dist/astro/routes/api/media/upload-url.mjs +82 -0
  237. package/dist/astro/routes/api/media.d.mts +16 -0
  238. package/dist/astro/routes/api/media.mjs +137 -0
  239. package/dist/astro/routes/api/menus/_name_/items.d.mts +9 -0
  240. package/{src/astro/routes/api/menus/[name]/items.ts → dist/astro/routes/api/menus/_name_/items.mjs} +63 -105
  241. package/dist/astro/routes/api/menus/_name_/reorder.d.mts +7 -0
  242. package/dist/astro/routes/api/menus/_name_/reorder.mjs +77 -0
  243. package/dist/astro/routes/api/menus/_name_.d.mts +9 -0
  244. package/dist/astro/routes/api/menus/_name_.mjs +123 -0
  245. package/dist/astro/routes/api/menus/index.d.mts +8 -0
  246. package/dist/astro/routes/api/menus/index.mjs +84 -0
  247. package/dist/astro/routes/api/oauth/authorize.d.mts +8 -0
  248. package/dist/astro/routes/api/oauth/authorize.mjs +265 -0
  249. package/dist/astro/routes/api/oauth/device/authorize.d.mts +7 -0
  250. package/dist/astro/routes/api/oauth/device/authorize.mjs +30 -0
  251. package/dist/astro/routes/api/oauth/device/code.d.mts +7 -0
  252. package/dist/astro/routes/api/oauth/device/code.mjs +34 -0
  253. package/dist/astro/routes/api/oauth/device/token.d.mts +7 -0
  254. package/dist/astro/routes/api/oauth/device/token.mjs +45 -0
  255. package/dist/astro/routes/api/oauth/register.d.mts +8 -0
  256. package/dist/astro/routes/api/oauth/register.mjs +115 -0
  257. package/dist/astro/routes/api/oauth/token/refresh.d.mts +7 -0
  258. package/dist/astro/routes/api/oauth/token/refresh.mjs +28 -0
  259. package/dist/astro/routes/api/oauth/token/revoke.d.mts +7 -0
  260. package/dist/astro/routes/api/oauth/token/revoke.mjs +25 -0
  261. package/dist/astro/routes/api/oauth/token.d.mts +8 -0
  262. package/dist/astro/routes/api/oauth/token.mjs +138 -0
  263. package/dist/astro/routes/api/openapi.json.d.mts +7 -0
  264. package/dist/astro/routes/api/openapi.json.mjs +2638 -0
  265. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.d.mts +11 -0
  266. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +77 -0
  267. package/dist/astro/routes/api/redirects/404s/index.d.mts +9 -0
  268. package/dist/astro/routes/api/redirects/404s/index.mjs +62 -0
  269. package/dist/astro/routes/api/redirects/404s/summary.d.mts +7 -0
  270. package/dist/astro/routes/api/redirects/404s/summary.mjs +34 -0
  271. package/dist/astro/routes/api/redirects/_id_.d.mts +9 -0
  272. package/dist/astro/routes/api/redirects/_id_.mjs +152 -0
  273. package/dist/astro/routes/api/redirects/index.d.mts +8 -0
  274. package/dist/astro/routes/api/redirects/index.mjs +97 -0
  275. package/dist/astro/routes/api/revisions/_revisionId_/index.d.mts +7 -0
  276. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +16 -0
  277. package/dist/astro/routes/api/revisions/_revisionId_/restore.d.mts +7 -0
  278. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +23 -0
  279. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.d.mts +9 -0
  280. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +98 -0
  281. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.d.mts +8 -0
  282. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +80 -0
  283. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.d.mts +7 -0
  284. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +67 -0
  285. package/dist/astro/routes/api/schema/collections/_slug_/index.d.mts +9 -0
  286. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +97 -0
  287. package/dist/astro/routes/api/schema/collections/index.d.mts +8 -0
  288. package/dist/astro/routes/api/schema/collections/index.mjs +77 -0
  289. package/dist/astro/routes/api/schema/index.d.mts +7 -0
  290. package/dist/astro/routes/api/schema/index.mjs +79 -0
  291. package/dist/astro/routes/api/schema/orphans/_slug_.d.mts +7 -0
  292. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +58 -0
  293. package/dist/astro/routes/api/schema/orphans/index.d.mts +7 -0
  294. package/dist/astro/routes/api/schema/orphans/index.mjs +53 -0
  295. package/dist/astro/routes/api/search/enable.d.mts +15 -0
  296. package/dist/astro/routes/api/search/enable.mjs +55 -0
  297. package/dist/astro/routes/api/search/index.d.mts +16 -0
  298. package/dist/astro/routes/api/search/index.mjs +52 -0
  299. package/dist/astro/routes/api/search/rebuild.d.mts +13 -0
  300. package/dist/astro/routes/api/search/rebuild.mjs +48 -0
  301. package/dist/astro/routes/api/search/stats.d.mts +10 -0
  302. package/dist/astro/routes/api/search/stats.mjs +28 -0
  303. package/dist/astro/routes/api/search/suggest.d.mts +15 -0
  304. package/dist/astro/routes/api/search/suggest.mjs +43 -0
  305. package/dist/astro/routes/api/sections/_slug_.d.mts +9 -0
  306. package/dist/astro/routes/api/sections/_slug_.mjs +156 -0
  307. package/dist/astro/routes/api/sections/index.d.mts +8 -0
  308. package/dist/astro/routes/api/sections/index.mjs +99 -0
  309. package/dist/astro/routes/api/settings/email.d.mts +17 -0
  310. package/dist/astro/routes/api/settings/email.mjs +102 -0
  311. package/dist/astro/routes/api/settings.d.mts +20 -0
  312. package/dist/astro/routes/api/settings.mjs +101 -0
  313. package/dist/astro/routes/api/setup/admin-verify.d.mts +7 -0
  314. package/dist/astro/routes/api/setup/admin-verify.mjs +67 -0
  315. package/dist/astro/routes/api/setup/admin.d.mts +7 -0
  316. package/dist/astro/routes/api/setup/admin.mjs +68 -0
  317. package/dist/astro/routes/api/setup/dev-bypass.d.mts +8 -0
  318. package/dist/astro/routes/api/setup/dev-bypass.mjs +137 -0
  319. package/dist/astro/routes/api/setup/dev-reset.d.mts +7 -0
  320. package/dist/astro/routes/api/setup/dev-reset.mjs +22 -0
  321. package/dist/astro/routes/api/setup/index.d.mts +7 -0
  322. package/dist/astro/routes/api/setup/index.mjs +93 -0
  323. package/dist/astro/routes/api/setup/status.d.mts +7 -0
  324. package/dist/astro/routes/api/setup/status.mjs +57 -0
  325. package/dist/astro/routes/api/snapshot.d.mts +7 -0
  326. package/dist/astro/routes/api/snapshot.mjs +227 -0
  327. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.d.mts +18 -0
  328. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +189 -0
  329. package/dist/astro/routes/api/taxonomies/_name_/terms/index.d.mts +14 -0
  330. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +113 -0
  331. package/dist/astro/routes/api/taxonomies/index.d.mts +14 -0
  332. package/dist/astro/routes/api/taxonomies/index.mjs +103 -0
  333. package/dist/astro/routes/api/themes/preview.d.mts +7 -0
  334. package/dist/astro/routes/api/themes/preview.mjs +47 -0
  335. package/dist/astro/routes/api/typegen.d.mts +17 -0
  336. package/dist/astro/routes/api/typegen.mjs +75 -0
  337. package/dist/astro/routes/api/well-known/auth.d.mts +7 -0
  338. package/dist/astro/routes/api/well-known/auth.mjs +42 -0
  339. package/dist/astro/routes/api/well-known/oauth-authorization-server.d.mts +7 -0
  340. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +33 -0
  341. package/dist/astro/routes/api/well-known/oauth-protected-resource.d.mts +7 -0
  342. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +21 -0
  343. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts +7 -0
  344. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +88 -0
  345. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts +8 -0
  346. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +158 -0
  347. package/dist/astro/routes/api/widget-areas/_name_/widgets.d.mts +7 -0
  348. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +104 -0
  349. package/dist/astro/routes/api/widget-areas/_name_.d.mts +8 -0
  350. package/dist/astro/routes/api/widget-areas/_name_.mjs +99 -0
  351. package/dist/astro/routes/api/widget-areas/index.d.mts +8 -0
  352. package/dist/astro/routes/api/widget-areas/index.mjs +108 -0
  353. package/dist/astro/routes/api/widget-components.d.mts +7 -0
  354. package/dist/astro/routes/api/widget-components.mjs +15 -0
  355. package/dist/astro/routes/robots.txt.d.mts +7 -0
  356. package/dist/astro/routes/robots.txt.mjs +60 -0
  357. package/dist/astro/routes/sitemap-_collection_.xml.d.mts +7 -0
  358. package/dist/astro/routes/sitemap-_collection_.xml.mjs +70 -0
  359. package/dist/astro/routes/sitemap.xml.d.mts +7 -0
  360. package/dist/astro/routes/sitemap.xml.mjs +63 -0
  361. package/dist/astro/types.d.mts +41 -9
  362. package/dist/auth/providers/github-admin.d.mts +9 -0
  363. package/dist/auth/providers/github-admin.mjs +27 -0
  364. package/dist/auth/providers/github.d.mts +12 -0
  365. package/dist/auth/providers/github.mjs +17 -0
  366. package/dist/auth/providers/google-admin.d.mts +9 -0
  367. package/dist/auth/providers/google-admin.mjs +43 -0
  368. package/dist/auth/providers/google.d.mts +12 -0
  369. package/dist/auth/providers/google.mjs +17 -0
  370. package/dist/auth-control-guard-DKUe_1oa.mjs +13 -0
  371. package/dist/authorize-BBj8C6Y8.mjs +36 -0
  372. package/dist/briefing-BrXCuMEE.mjs +1294 -0
  373. package/dist/briefing-ClWw4mc9.mjs +29 -0
  374. package/dist/{byline-OhH2dlRu.mjs → byline-naZxOPSa.mjs} +3 -3
  375. package/dist/{bylines-BGpD9_hy.mjs → bylines-BcOPh6Ej.mjs} +20 -53
  376. package/dist/bylines-HfUKum_j.d.mts +2023 -0
  377. package/dist/{cache-BdSY-gQN.mjs → cache-DEbQ13c9.mjs} +21 -11
  378. package/dist/challenge-store-DHMgBGOq.mjs +48 -0
  379. package/dist/cli/index.mjs +142 -22
  380. package/dist/client/external-auth-headers.d.mts +1 -1
  381. package/dist/client/index.d.mts +1 -1
  382. package/dist/client/index.mjs +3 -3
  383. package/dist/comment-DFO-gWDH.mjs +246 -0
  384. package/dist/comments-Gy3zLBaP.mjs +186 -0
  385. package/dist/components-DND2rd3D.mjs +107 -0
  386. package/dist/{content-DWi4d0rT.mjs → content-CyLkb-qH.mjs} +33 -44
  387. package/dist/context-bE5Kyvcj.mjs +184 -0
  388. package/dist/context-nxMyOe3p.mjs +849 -0
  389. package/dist/context-route-helpers-D-6uCQ0S.mjs +45 -0
  390. package/dist/context-types-C-LwdAxx.mjs +23 -0
  391. package/dist/cron-DGzVTtJp.mjs +263 -0
  392. package/dist/dashboard-DqnYU8EU.mjs +120 -0
  393. package/dist/db/index.d.mts +3 -3
  394. package/dist/db/libsql.d.mts +1 -1
  395. package/dist/db/libsql.mjs +3 -3
  396. package/dist/db/postgres.d.mts +1 -1
  397. package/dist/db/sqlite.d.mts +1 -1
  398. package/dist/db/sqlite.mjs +1 -2
  399. package/dist/device-flow-7AhWNwCK.mjs +487 -0
  400. package/dist/email-console-CgLVZbcn.mjs +36 -0
  401. package/dist/entity-aliases-C0v-yNET.mjs +51 -0
  402. package/dist/error-DEGjx2Xw.mjs +435 -0
  403. package/dist/escape-mNZr4t2A.mjs +8 -0
  404. package/dist/experimental-workflows-DldxJlqV.mjs +38 -0
  405. package/dist/fts-manager-B1pTNEG_.mjs +297 -0
  406. package/dist/hash-CDX7M0ze.mjs +32 -0
  407. package/dist/hitl-requests-Bx3Bkk9l.mjs +118 -0
  408. package/dist/hitl-route-helpers-DMmJRS7B.mjs +96 -0
  409. package/dist/import-DD3f2jkc.mjs +243 -0
  410. package/dist/import-DVZcYlDp.mjs +1323 -0
  411. package/dist/index-CkljPf5F.d.mts +227 -0
  412. package/dist/index.d.mts +15 -11
  413. package/dist/index.mjs +60 -22
  414. package/dist/{loader-sMG4TZ-u.mjs → loader-PZnPxFLc.mjs} +42 -5
  415. package/dist/{manifest-schema-D1MSVnoI.mjs → manifest-schema-DYoCQ5np.mjs} +22 -10
  416. package/dist/media/index.d.mts +1 -1
  417. package/dist/media/index.mjs +2 -1
  418. package/dist/media/local-runtime.d.mts +11 -7
  419. package/dist/media/local-runtime.mjs +3 -3
  420. package/dist/{media-DMTr80Gv.mjs → media-_7Fxdu45.mjs} +1 -1
  421. package/dist/menus-BacxVCCo.mjs +312 -0
  422. package/dist/menus-CrzHokKj.mjs +3502 -0
  423. package/dist/normalize-C49G_o1k.mjs +126 -0
  424. package/dist/oauth-authorization-C1qiw4hd.mjs +283 -0
  425. package/dist/oauth-clients-CvWatf5p.mjs +298 -0
  426. package/dist/oauth-state-store-hSdzxsEe.mjs +48 -0
  427. package/dist/oauth-user-lookup-B4OcmsLV.mjs +25 -0
  428. package/dist/options-z8VVg1Ll.mjs +114 -0
  429. package/dist/page/index.d.mts +2 -2
  430. package/dist/parse-BeQXIt1U.mjs +88 -0
  431. package/dist/passkey-config-Daqs5fjq.mjs +42 -0
  432. package/dist/{patterns-CrCYkMBb.mjs → patterns-K0DLqWir.mjs} +53 -1
  433. package/dist/{placeholder-Cp8g5Emj.mjs → placeholder-C2P5fKa4.mjs} +1 -126
  434. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -5
  435. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  436. package/dist/preview-C_4DyVox.mjs +788 -0
  437. package/dist/public-url-BB_umF5G.mjs +71 -0
  438. package/dist/{query-kDmwCsHh.mjs → query-RiobVwB5.mjs} +93 -19
  439. package/dist/rate-limit-CbJoj_fT.mjs +112 -0
  440. package/dist/{redirect-DnEWAkVg.mjs → redirect-CGl64yOX.mjs} +9 -5
  441. package/dist/redirect-ClSmMOtC.mjs +16 -0
  442. package/dist/redirects-B69T59hK.mjs +499 -0
  443. package/dist/redirects-CqaxraTO.mjs +1070 -0
  444. package/dist/{registry-C0zjeB9P.mjs → registry-C-_hxLqa.mjs} +26 -294
  445. package/dist/request-meta-Bd0mQfiS.mjs +130 -0
  446. package/dist/review-requests-C2DIHwlJ.mjs +148 -0
  447. package/dist/review-requests-DIyjw-K_.mjs +79 -0
  448. package/dist/{runner-CFI6B6J2.d.mts → runner-9eIQXuc2.d.mts} +1 -1
  449. package/dist/{index-yvc6E_17.d.mts → runtime-C4-7y7xK.d.mts} +1539 -2007
  450. package/dist/runtime.d.mts +10 -6
  451. package/dist/runtime.mjs +3 -3
  452. package/dist/schema-BNpI53of.mjs +40 -0
  453. package/dist/search-DM6CVti3.mjs +337 -0
  454. package/dist/secrets-dI8zzTV7.mjs +160 -0
  455. package/dist/sections-DZFyAQXd.mjs +338 -0
  456. package/dist/seed/index.d.mts +2 -2
  457. package/dist/seed/index.mjs +18 -13
  458. package/dist/seo/index.d.mts +1 -1
  459. package/dist/seo-BBgTCOYU.mjs +85 -0
  460. package/dist/seo-CUQctrog.mjs +129 -0
  461. package/dist/service-CSfcQguB.mjs +194 -0
  462. package/dist/settings-4XnpVMOS.mjs +223 -0
  463. package/dist/settings-Bw93cLfe.mjs +50 -0
  464. package/dist/setup-complete-DidsDQ1e.mjs +21 -0
  465. package/dist/setup-nonce-pml1PMKo.mjs +17 -0
  466. package/dist/sidecar-client-vzwV98K4.mjs +66 -0
  467. package/dist/site-activity-B8FjLIVh.mjs +104 -0
  468. package/dist/site-context-Bpu_Paur.mjs +4122 -0
  469. package/dist/site-url-CYIcO0Tj.mjs +12 -0
  470. package/dist/slugify-PDTDtMXp.mjs +30 -0
  471. package/dist/ssrf-CmM76lLV.mjs +248 -0
  472. package/dist/storage/local.d.mts +1 -1
  473. package/dist/storage/local.mjs +1 -1
  474. package/dist/storage/s3.d.mts +1 -1
  475. package/dist/storage/s3.mjs +2 -2
  476. package/dist/{taxonomies-1s5PaS_8.mjs → taxonomies-BvBgfzn3.mjs} +11 -7
  477. package/dist/taxonomies-CpqGcIJD.mjs +355 -0
  478. package/dist/taxonomy-D5cbhc8u.mjs +165 -0
  479. package/dist/{tokens-CJz9ubV6.mjs → tokens-DLTo4dO2.mjs} +1 -1
  480. package/dist/{transport-DB5eDN4x.mjs → transport-C9e_h-BF.mjs} +5 -4
  481. package/dist/trusted-proxy-Bi0Cuk5n.mjs +30 -0
  482. package/dist/{types-BawVha09.mjs → types-Bs6lTBBW.mjs} +1 -1
  483. package/dist/types-C982qI5I.d.mts +344 -0
  484. package/dist/types-D4XVOt01.d.mts +165 -0
  485. package/dist/{types-Cj0KMIZV.d.mts → types-DgfUZqcd.d.mts} +54 -16
  486. package/dist/{types-BuMDPy5C.d.mts → types-IPACEM14.d.mts} +6 -0
  487. package/dist/user-CcXq-zoL.mjs +154 -0
  488. package/dist/utils-D2in-zwy.mjs +285 -0
  489. package/dist/{validate-BZ5wnLLp.mjs → validate-BJgA6TW_.mjs} +1 -1
  490. package/dist/{validate-IPf8n4Fj.d.mts → validate-JCZihRIa.d.mts} +3 -3
  491. package/dist/version-DH53KCQd.mjs +6 -0
  492. package/dist/widgets-B7Q_7bxN.mjs +104 -0
  493. package/dist/wordpress-slugs-BevajWrC.mjs +14 -0
  494. package/dist/zod-generator-DBVP8D0P.mjs +132 -0
  495. package/locals.d.ts +1 -6
  496. package/package.json +96 -41
  497. package/src/components/DinewayHead.astro +8 -4
  498. package/src/components/DinewayImage.astro +7 -5
  499. package/src/components/DinewayMedia.astro +9 -3
  500. package/src/components/Gallery.astro +5 -3
  501. package/src/components/Image.astro +5 -1
  502. package/src/components/InlinePortableTextEditor.tsx +68 -19
  503. package/dist/error-BmL6QipT.mjs +0 -30
  504. package/dist/search-Hlm6g8Td.mjs +0 -11200
  505. package/dist/version-DxxaFHZ_.mjs +0 -6
  506. package/src/astro/routes/PluginRegistry.tsx +0 -21
  507. package/src/astro/routes/api/admin/allowed-domains/[domain].ts +0 -112
  508. package/src/astro/routes/api/admin/allowed-domains/index.ts +0 -108
  509. package/src/astro/routes/api/admin/api-tokens/[id].ts +0 -44
  510. package/src/astro/routes/api/admin/api-tokens/index.ts +0 -90
  511. package/src/astro/routes/api/admin/briefing.ts +0 -76
  512. package/src/astro/routes/api/admin/bylines/[id]/index.ts +0 -90
  513. package/src/astro/routes/api/admin/bylines/index.ts +0 -74
  514. package/src/astro/routes/api/admin/comments/[id]/status.ts +0 -120
  515. package/src/astro/routes/api/admin/comments/[id].ts +0 -64
  516. package/src/astro/routes/api/admin/comments/bulk.ts +0 -42
  517. package/src/astro/routes/api/admin/comments/counts.ts +0 -30
  518. package/src/astro/routes/api/admin/comments/index.ts +0 -46
  519. package/src/astro/routes/api/admin/context/[id]/history.ts +0 -35
  520. package/src/astro/routes/api/admin/context/[id]/index.ts +0 -35
  521. package/src/astro/routes/api/admin/context/[id]/review.ts +0 -57
  522. package/src/astro/routes/api/admin/context/[id]/supersede.ts +0 -58
  523. package/src/astro/routes/api/admin/context/diff.ts +0 -35
  524. package/src/astro/routes/api/admin/context/index.ts +0 -69
  525. package/src/astro/routes/api/admin/context/stale.ts +0 -35
  526. package/src/astro/routes/api/admin/hitl-requests/[id]/index.ts +0 -38
  527. package/src/astro/routes/api/admin/hitl-requests/[id]/resolve.ts +0 -54
  528. package/src/astro/routes/api/admin/hitl-requests/index.ts +0 -38
  529. package/src/astro/routes/api/admin/hooks/exclusive/[hookName].ts +0 -132
  530. package/src/astro/routes/api/admin/hooks/exclusive/index.ts +0 -51
  531. package/src/astro/routes/api/admin/oauth-clients/[id].ts +0 -137
  532. package/src/astro/routes/api/admin/oauth-clients/index.ts +0 -95
  533. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +0 -91
  534. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +0 -91
  535. package/src/astro/routes/api/admin/plugins/[id]/index.ts +0 -38
  536. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +0 -98
  537. package/src/astro/routes/api/admin/plugins/[id]/update.ts +0 -154
  538. package/src/astro/routes/api/admin/plugins/index.ts +0 -32
  539. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +0 -62
  540. package/src/astro/routes/api/admin/plugins/marketplace/[id]/index.ts +0 -33
  541. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +0 -135
  542. package/src/astro/routes/api/admin/plugins/marketplace/index.ts +0 -38
  543. package/src/astro/routes/api/admin/plugins/updates.ts +0 -28
  544. package/src/astro/routes/api/admin/review-requests/[id]/index.ts +0 -35
  545. package/src/astro/routes/api/admin/review-requests/[id]/resolve.ts +0 -52
  546. package/src/astro/routes/api/admin/review-requests/index.ts +0 -35
  547. package/src/astro/routes/api/admin/themes/marketplace/[id]/index.ts +0 -33
  548. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +0 -62
  549. package/src/astro/routes/api/admin/themes/marketplace/index.ts +0 -45
  550. package/src/astro/routes/api/admin/users/[id]/disable.ts +0 -72
  551. package/src/astro/routes/api/admin/users/[id]/enable.ts +0 -48
  552. package/src/astro/routes/api/admin/users/[id]/index.ts +0 -166
  553. package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +0 -72
  554. package/src/astro/routes/api/admin/users/index.ts +0 -66
  555. package/src/astro/routes/api/auth/dev-bypass.ts +0 -139
  556. package/src/astro/routes/api/auth/invite/accept.ts +0 -52
  557. package/src/astro/routes/api/auth/invite/complete.ts +0 -86
  558. package/src/astro/routes/api/auth/invite/index.ts +0 -99
  559. package/src/astro/routes/api/auth/invite/register-options.ts +0 -73
  560. package/src/astro/routes/api/auth/logout.ts +0 -40
  561. package/src/astro/routes/api/auth/magic-link/send.ts +0 -90
  562. package/src/astro/routes/api/auth/magic-link/verify.ts +0 -71
  563. package/src/astro/routes/api/auth/me.ts +0 -60
  564. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +0 -221
  565. package/src/astro/routes/api/auth/oauth/[provider].ts +0 -120
  566. package/src/astro/routes/api/auth/passkey/[id].ts +0 -124
  567. package/src/astro/routes/api/auth/passkey/index.ts +0 -54
  568. package/src/astro/routes/api/auth/passkey/options.ts +0 -85
  569. package/src/astro/routes/api/auth/passkey/register/options.ts +0 -88
  570. package/src/astro/routes/api/auth/passkey/register/verify.ts +0 -119
  571. package/src/astro/routes/api/auth/passkey/verify.ts +0 -72
  572. package/src/astro/routes/api/auth/signup/complete.ts +0 -87
  573. package/src/astro/routes/api/auth/signup/request.ts +0 -89
  574. package/src/astro/routes/api/auth/signup/verify.ts +0 -53
  575. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +0 -310
  576. package/src/astro/routes/api/content/[collection]/[id]/compare.ts +0 -28
  577. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +0 -68
  578. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +0 -77
  579. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +0 -42
  580. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +0 -107
  581. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +0 -100
  582. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +0 -64
  583. package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +0 -31
  584. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +0 -129
  585. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +0 -143
  586. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +0 -50
  587. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +0 -69
  588. package/src/astro/routes/api/content/[collection]/[id].ts +0 -173
  589. package/src/astro/routes/api/content/[collection]/index.ts +0 -103
  590. package/src/astro/routes/api/content/[collection]/trash.ts +0 -33
  591. package/src/astro/routes/api/dashboard.ts +0 -32
  592. package/src/astro/routes/api/dev/emails.ts +0 -36
  593. package/src/astro/routes/api/health.ts +0 -54
  594. package/src/astro/routes/api/import/probe.ts +0 -47
  595. package/src/astro/routes/api/import/wordpress/analyze.ts +0 -523
  596. package/src/astro/routes/api/import/wordpress/execute.ts +0 -330
  597. package/src/astro/routes/api/import/wordpress/media.ts +0 -338
  598. package/src/astro/routes/api/import/wordpress/prepare.ts +0 -212
  599. package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +0 -425
  600. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +0 -111
  601. package/src/astro/routes/api/import/wordpress-plugin/callback.ts +0 -58
  602. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +0 -399
  603. package/src/astro/routes/api/manifest.ts +0 -75
  604. package/src/astro/routes/api/mcp.ts +0 -125
  605. package/src/astro/routes/api/media/[id]/confirm.ts +0 -93
  606. package/src/astro/routes/api/media/[id].ts +0 -145
  607. package/src/astro/routes/api/media/file/[...key].ts +0 -79
  608. package/src/astro/routes/api/media/providers/[providerId]/[itemId].ts +0 -91
  609. package/src/astro/routes/api/media/providers/[providerId]/index.ts +0 -111
  610. package/src/astro/routes/api/media/providers/index.ts +0 -30
  611. package/src/astro/routes/api/media/upload-url.ts +0 -146
  612. package/src/astro/routes/api/media.ts +0 -204
  613. package/src/astro/routes/api/menus/[name]/reorder.ts +0 -79
  614. package/src/astro/routes/api/menus/[name].ts +0 -145
  615. package/src/astro/routes/api/menus/index.ts +0 -91
  616. package/src/astro/routes/api/oauth/authorize.ts +0 -430
  617. package/src/astro/routes/api/oauth/device/authorize.ts +0 -45
  618. package/src/astro/routes/api/oauth/device/code.ts +0 -56
  619. package/src/astro/routes/api/oauth/device/token.ts +0 -70
  620. package/src/astro/routes/api/oauth/register.ts +0 -182
  621. package/src/astro/routes/api/oauth/token/refresh.ts +0 -38
  622. package/src/astro/routes/api/oauth/token/revoke.ts +0 -38
  623. package/src/astro/routes/api/oauth/token.ts +0 -195
  624. package/src/astro/routes/api/openapi.json.ts +0 -33
  625. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +0 -109
  626. package/src/astro/routes/api/redirects/404s/index.ts +0 -72
  627. package/src/astro/routes/api/redirects/404s/summary.ts +0 -33
  628. package/src/astro/routes/api/redirects/[id].ts +0 -183
  629. package/src/astro/routes/api/redirects/index.ts +0 -100
  630. package/src/astro/routes/api/revisions/[revisionId]/index.ts +0 -29
  631. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +0 -62
  632. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +0 -104
  633. package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +0 -67
  634. package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +0 -45
  635. package/src/astro/routes/api/schema/collections/[slug]/index.ts +0 -107
  636. package/src/astro/routes/api/schema/collections/index.ts +0 -61
  637. package/src/astro/routes/api/schema/index.ts +0 -109
  638. package/src/astro/routes/api/schema/orphans/[slug].ts +0 -36
  639. package/src/astro/routes/api/schema/orphans/index.ts +0 -26
  640. package/src/astro/routes/api/search/enable.ts +0 -64
  641. package/src/astro/routes/api/search/index.ts +0 -52
  642. package/src/astro/routes/api/search/rebuild.ts +0 -72
  643. package/src/astro/routes/api/search/stats.ts +0 -35
  644. package/src/astro/routes/api/search/suggest.ts +0 -50
  645. package/src/astro/routes/api/sections/[slug].ts +0 -203
  646. package/src/astro/routes/api/sections/index.ts +0 -107
  647. package/src/astro/routes/api/settings/email.ts +0 -150
  648. package/src/astro/routes/api/settings.ts +0 -116
  649. package/src/astro/routes/api/setup/admin-verify.ts +0 -122
  650. package/src/astro/routes/api/setup/admin.ts +0 -104
  651. package/src/astro/routes/api/setup/dev-bypass.ts +0 -200
  652. package/src/astro/routes/api/setup/dev-reset.ts +0 -40
  653. package/src/astro/routes/api/setup/index.ts +0 -128
  654. package/src/astro/routes/api/setup/status.ts +0 -122
  655. package/src/astro/routes/api/snapshot.ts +0 -76
  656. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +0 -232
  657. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +0 -131
  658. package/src/astro/routes/api/taxonomies/index.ts +0 -114
  659. package/src/astro/routes/api/themes/preview.ts +0 -78
  660. package/src/astro/routes/api/typegen.ts +0 -114
  661. package/src/astro/routes/api/well-known/auth.ts +0 -71
  662. package/src/astro/routes/api/well-known/oauth-authorization-server.ts +0 -48
  663. package/src/astro/routes/api/well-known/oauth-protected-resource.ts +0 -39
  664. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +0 -114
  665. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +0 -213
  666. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +0 -126
  667. package/src/astro/routes/api/widget-areas/[name].ts +0 -135
  668. package/src/astro/routes/api/widget-areas/index.ts +0 -149
  669. package/src/astro/routes/api/widget-components.ts +0 -22
  670. package/src/astro/routes/robots.txt.ts +0 -81
  671. package/src/astro/routes/sitemap-[collection].xml.ts +0 -104
  672. package/src/astro/routes/sitemap.xml.ts +0 -92
  673. /package/dist/{adapters-C2ypTrZZ.d.mts → adapters-BLDldpJg.d.mts} +0 -0
  674. /package/{src → dist}/astro/routes/admin.astro +0 -0
  675. /package/dist/{base64-F8-DUraK.mjs → base64-Cz-aU0X1.mjs} +0 -0
  676. /package/dist/{chunks--4F8ddV4.mjs → chunks-D_jVet6z.mjs} +0 -0
  677. /package/dist/{config-BXwuX8Bx.mjs → config-CAMFxGaV.mjs} +0 -0
  678. /package/dist/{db-errors-CEqD7qH9.mjs → db-errors-DKUg_NgF.mjs} +0 -0
  679. /package/dist/{default-VjJyuuG9.mjs → default-C3PZN-bz.mjs} +0 -0
  680. /package/dist/{load-Coc9HpHH.mjs → load-D-9NhLmF.mjs} +0 -0
  681. /package/dist/{mode-47goXBBK.mjs → mode-C80mAZQv.mjs} +0 -0
  682. /package/dist/{placeholder--wOi4TbO.d.mts → placeholder-CHkLckzK.d.mts} +0 -0
  683. /package/dist/{request-cache-Dk5qPSOx.mjs → request-cache-DHMRr2Lf.mjs} +0 -0
  684. /package/dist/{transaction-Cn2rjY78.mjs → transaction-x2tJQ-A1.mjs} +0 -0
  685. /package/dist/{transport-Wge_IzKl.d.mts → transport-6RefuBdV.d.mts} +0 -0
  686. /package/dist/{types-griIBQOQ.mjs → types-B9gKVOHk.mjs} +0 -0
  687. /package/dist/{types-CWbdtiux.d.mts → types-B9qVtiHb.d.mts} +0 -0
  688. /package/dist/{types-COeOq9nK.mjs → types-DL7Y8D_t.mjs} +0 -0
  689. /package/dist/{types-BzcUjoqg.d.mts → types-Djdp0cZO.d.mts} +0 -0
  690. /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
- };