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,182 +0,0 @@
1
- /**
2
- * POST /_dineway/api/oauth/register
3
- *
4
- * RFC 7591 Dynamic Client Registration. Public, unauthenticated.
5
- * MCP clients call this to register before starting the OAuth flow.
6
- */
7
-
8
- import type { APIRoute } from "astro";
9
-
10
- import { apiError, handleError } from "#api/error.js";
11
- import { handleOAuthClientCreate } from "#api/handlers/oauth-clients.js";
12
- import {
13
- disabledExperimentalSiteContextWorkflowScopes,
14
- getExperimentalSiteContextWorkflowScopesDisabledMessage,
15
- } from "#site-context/experimental-workflows.js";
16
-
17
- export const prerender = false;
18
-
19
- const OAUTH_REGISTRATION_HEADERS: HeadersInit = {
20
- "Cache-Control": "no-store",
21
- Pragma: "no-cache",
22
- "Access-Control-Allow-Origin": "*",
23
- };
24
-
25
- const OAUTH_PREFLIGHT_HEADERS: HeadersInit = {
26
- "Access-Control-Allow-Origin": "*",
27
- "Access-Control-Allow-Methods": "POST, OPTIONS",
28
- "Access-Control-Allow-Headers": "Content-Type",
29
- "Access-Control-Max-Age": "86400",
30
- };
31
-
32
- const SUPPORTED_GRANT_TYPES = new Set([
33
- "authorization_code",
34
- "refresh_token",
35
- "urn:ietf:params:oauth:grant-type:device_code",
36
- ]);
37
- const SUPPORTED_RESPONSE_TYPES = new Set(["code"]);
38
-
39
- function registrationError(description: string, status = 400): Response {
40
- return Response.json(
41
- {
42
- error: "invalid_client_metadata",
43
- error_description: description,
44
- },
45
- { status, headers: OAUTH_REGISTRATION_HEADERS },
46
- );
47
- }
48
-
49
- function isRecord(value: unknown): value is Record<string, unknown> {
50
- return typeof value === "object" && value !== null && !Array.isArray(value);
51
- }
52
-
53
- function isStringArray(value: unknown): value is string[] {
54
- return Array.isArray(value) && value.every((item) => typeof item === "string");
55
- }
56
-
57
- function parseScope(value: unknown): string[] | Response | undefined {
58
- if (value === undefined) return undefined;
59
- if (typeof value === "string") {
60
- const scopes = value.split(" ").filter(Boolean);
61
- return scopes.length > 0 ? scopes : undefined;
62
- }
63
- if (isStringArray(value)) {
64
- const scopes = value.filter(Boolean);
65
- return scopes.length > 0 ? scopes : undefined;
66
- }
67
- return registrationError("scope must be a string or array of strings");
68
- }
69
-
70
- function parseSupportedStringArray(
71
- value: unknown,
72
- field: string,
73
- supported: ReadonlySet<string>,
74
- ): string[] | Response | undefined {
75
- if (value === undefined) return undefined;
76
- if (!isStringArray(value)) {
77
- return registrationError(`${field} must be an array of strings`);
78
- }
79
- const invalidValue = value.find((item) => !supported.has(item));
80
- if (invalidValue) {
81
- return registrationError(`${field} contains unsupported value: ${invalidValue}`);
82
- }
83
- return value;
84
- }
85
-
86
- export const OPTIONS: APIRoute = () => {
87
- return new Response(null, { status: 204, headers: OAUTH_PREFLIGHT_HEADERS });
88
- };
89
-
90
- export const POST: APIRoute = async ({ request, locals }) => {
91
- const { dineway } = locals;
92
-
93
- if (!dineway?.db) {
94
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
95
- }
96
-
97
- try {
98
- let body: unknown;
99
- try {
100
- body = await request.json();
101
- } catch {
102
- return registrationError("Request body must be valid JSON");
103
- }
104
-
105
- if (!isRecord(body)) {
106
- return registrationError("Request body must be a JSON object");
107
- }
108
-
109
- if (!isStringArray(body.redirect_uris) || body.redirect_uris.length === 0) {
110
- return registrationError("redirect_uris must be a non-empty array of strings");
111
- }
112
-
113
- if (
114
- body.token_endpoint_auth_method !== undefined &&
115
- body.token_endpoint_auth_method !== "none"
116
- ) {
117
- return registrationError("Only token_endpoint_auth_method=none is supported");
118
- }
119
-
120
- const grantTypes = parseSupportedStringArray(
121
- body.grant_types,
122
- "grant_types",
123
- SUPPORTED_GRANT_TYPES,
124
- );
125
- if (grantTypes instanceof Response) {
126
- return grantTypes;
127
- }
128
-
129
- const responseTypes = parseSupportedStringArray(
130
- body.response_types,
131
- "response_types",
132
- SUPPORTED_RESPONSE_TYPES,
133
- );
134
- if (responseTypes instanceof Response) {
135
- return responseTypes;
136
- }
137
-
138
- const scopes = parseScope(body.scope);
139
- if (scopes instanceof Response) {
140
- return scopes;
141
- }
142
- if (scopes) {
143
- const disabledWorkflowScopes = disabledExperimentalSiteContextWorkflowScopes(scopes);
144
- if (disabledWorkflowScopes.length > 0) {
145
- return registrationError(getExperimentalSiteContextWorkflowScopesDisabledMessage());
146
- }
147
- }
148
-
149
- const clientId = crypto.randomUUID();
150
- const clientName =
151
- typeof body.client_name === "string" && body.client_name
152
- ? body.client_name
153
- : `dynamic-${clientId.slice(0, 8)}`;
154
-
155
- const result = await handleOAuthClientCreate(dineway.db, {
156
- id: clientId,
157
- name: clientName,
158
- redirectUris: body.redirect_uris,
159
- scopes,
160
- });
161
-
162
- if (!result.success) {
163
- return registrationError(result.error.message);
164
- }
165
-
166
- return Response.json(
167
- {
168
- client_id: result.data.id,
169
- client_id_issued_at: Math.floor(new Date(result.data.createdAt).getTime() / 1000),
170
- redirect_uris: result.data.redirectUris,
171
- client_name: result.data.name,
172
- grant_types: grantTypes ?? ["authorization_code", "refresh_token"],
173
- response_types: responseTypes ?? ["code"],
174
- token_endpoint_auth_method: "none",
175
- scope: result.data.scopes ? result.data.scopes.join(" ") : undefined,
176
- },
177
- { status: 201, headers: OAUTH_REGISTRATION_HEADERS },
178
- );
179
- } catch (error) {
180
- return handleError(error, "Failed to register OAuth client", "CLIENT_REGISTER_ERROR");
181
- }
182
- };
@@ -1,38 +0,0 @@
1
- /**
2
- * POST /_dineway/api/oauth/token/refresh
3
- *
4
- * Exchange a refresh token for a new access token.
5
- * This is an unauthenticated endpoint (the caller presents the refresh token).
6
- */
7
-
8
- import type { APIRoute } from "astro";
9
- import { z } from "zod";
10
-
11
- import { apiError, handleError, unwrapResult } from "#api/error.js";
12
- import { handleTokenRefresh } from "#api/handlers/device-flow.js";
13
- import { isParseError, parseBody } from "#api/parse.js";
14
-
15
- export const prerender = false;
16
-
17
- const refreshSchema = z.object({
18
- refresh_token: z.string().min(1),
19
- grant_type: z.string().min(1),
20
- });
21
-
22
- export const POST: APIRoute = async ({ request, locals }) => {
23
- const { dineway } = locals;
24
-
25
- if (!dineway?.db) {
26
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
27
- }
28
-
29
- try {
30
- const body = await parseBody(request, refreshSchema);
31
- if (isParseError(body)) return body;
32
-
33
- const result = await handleTokenRefresh(dineway.db, body);
34
- return unwrapResult(result);
35
- } catch (error) {
36
- return handleError(error, "Failed to refresh token", "TOKEN_REFRESH_ERROR");
37
- }
38
- };
@@ -1,38 +0,0 @@
1
- /**
2
- * POST /_dineway/api/oauth/token/revoke
3
- *
4
- * Revoke an access or refresh token (RFC 7009).
5
- * Always returns 200, even for invalid tokens.
6
- * This is an unauthenticated endpoint (the caller presents the token to revoke).
7
- */
8
-
9
- import type { APIRoute } from "astro";
10
- import { z } from "zod";
11
-
12
- import { apiError, handleError, unwrapResult } from "#api/error.js";
13
- import { handleTokenRevoke } from "#api/handlers/device-flow.js";
14
- import { isParseError, parseBody } from "#api/parse.js";
15
-
16
- export const prerender = false;
17
-
18
- const revokeSchema = z.object({
19
- token: z.string().min(1),
20
- });
21
-
22
- export const POST: APIRoute = async ({ request, locals }) => {
23
- const { dineway } = locals;
24
-
25
- if (!dineway?.db) {
26
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
27
- }
28
-
29
- try {
30
- const body = await parseBody(request, revokeSchema);
31
- if (isParseError(body)) return body;
32
-
33
- const result = await handleTokenRevoke(dineway.db, body);
34
- return unwrapResult(result);
35
- } catch (error) {
36
- return handleError(error, "Failed to revoke token", "TOKEN_REVOKE_ERROR");
37
- }
38
- };
@@ -1,195 +0,0 @@
1
- /**
2
- * POST /_dineway/api/oauth/token
3
- *
4
- * Unified token endpoint per OAuth 2.1. Routes by `grant_type`:
5
- * - authorization_code: Authorization Code + PKCE exchange
6
- * - urn:ietf:params:oauth:grant-type:device_code: Device Flow
7
- * - refresh_token: Token refresh
8
- *
9
- * Accepts both application/x-www-form-urlencoded (spec-standard) and
10
- * application/json (for backwards compatibility with existing clients).
11
- *
12
- * This is an unauthenticated endpoint — callers present tokens/codes
13
- * instead of session cookies.
14
- */
15
-
16
- import type { APIRoute } from "astro";
17
- import { z } from "zod";
18
-
19
- import { apiError, handleError } from "#api/error.js";
20
- import { handleDeviceTokenExchange, handleTokenRefresh } from "#api/handlers/device-flow.js";
21
- import { handleAuthorizationCodeExchange } from "#api/handlers/oauth-authorization.js";
22
-
23
- export const prerender = false;
24
-
25
- const OAUTH_TOKEN_HEADERS: HeadersInit = {
26
- "Content-Type": "application/json",
27
- "Cache-Control": "no-store",
28
- Pragma: "no-cache",
29
- "Access-Control-Allow-Origin": "*",
30
- };
31
-
32
- const OAUTH_PREFLIGHT_HEADERS: HeadersInit = {
33
- "Access-Control-Allow-Origin": "*",
34
- "Access-Control-Allow-Methods": "POST, OPTIONS",
35
- "Access-Control-Allow-Headers": "Content-Type",
36
- "Access-Control-Max-Age": "86400",
37
- };
38
-
39
- // ---------------------------------------------------------------------------
40
- // Parse helpers
41
- // ---------------------------------------------------------------------------
42
-
43
- /**
44
- * Parse the request body from either form-encoded or JSON.
45
- * OAuth 2.1 mandates form-encoded, but we accept both.
46
- */
47
- async function parseTokenBody(request: Request): Promise<Record<string, string>> {
48
- const contentType = request.headers.get("content-type") ?? "";
49
-
50
- if (contentType.includes("application/x-www-form-urlencoded")) {
51
- const text = await request.text();
52
- const params = new URLSearchParams(text);
53
- const result: Record<string, string> = {};
54
- for (const [key, value] of params) {
55
- result[key] = value;
56
- }
57
- return result;
58
- }
59
-
60
- // Fallback: try JSON
61
- try {
62
- const json = Object(await request.json()) as Record<string, unknown>;
63
- const result: Record<string, string> = {};
64
- for (const [key, value] of Object.entries(json)) {
65
- if (typeof value === "string") {
66
- result[key] = value;
67
- } else if (typeof value === "number") {
68
- result[key] = String(value);
69
- }
70
- }
71
- return result;
72
- } catch {
73
- return {};
74
- }
75
- }
76
-
77
- // ---------------------------------------------------------------------------
78
- // Schemas
79
- // ---------------------------------------------------------------------------
80
-
81
- const authCodeSchema = z.object({
82
- grant_type: z.literal("authorization_code"),
83
- code: z.string().min(1),
84
- redirect_uri: z.string().min(1),
85
- client_id: z.string().min(1),
86
- code_verifier: z.string().min(43).max(128),
87
- resource: z.string().optional(),
88
- });
89
-
90
- const deviceCodeSchema = z.object({
91
- grant_type: z.literal("urn:ietf:params:oauth:grant-type:device_code"),
92
- device_code: z.string().min(1),
93
- });
94
-
95
- const refreshSchema = z.object({
96
- grant_type: z.literal("refresh_token"),
97
- refresh_token: z.string().min(1),
98
- });
99
-
100
- // ---------------------------------------------------------------------------
101
- // Handler
102
- // ---------------------------------------------------------------------------
103
-
104
- export const OPTIONS: APIRoute = () => {
105
- return new Response(null, { status: 204, headers: OAUTH_PREFLIGHT_HEADERS });
106
- };
107
-
108
- export const POST: APIRoute = async ({ request, locals }) => {
109
- const { dineway } = locals;
110
-
111
- if (!dineway?.db) {
112
- return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
113
- }
114
-
115
- try {
116
- const body = await parseTokenBody(request);
117
- const grantType = body.grant_type;
118
-
119
- if (!grantType) {
120
- return oauthError("invalid_request", "grant_type is required", 400);
121
- }
122
-
123
- switch (grantType) {
124
- case "authorization_code": {
125
- const parsed = authCodeSchema.safeParse(body);
126
- if (!parsed.success) {
127
- return oauthError("invalid_request", formatZodError(parsed.error), 400);
128
- }
129
-
130
- const result = await handleAuthorizationCodeExchange(dineway.db, parsed.data);
131
- if (!result.success) {
132
- const err = result.error ?? { code: "unknown", message: "Unknown error" };
133
- return oauthError(err.code, err.message, 400);
134
- }
135
- return oauthSuccess(result.data);
136
- }
137
-
138
- case "urn:ietf:params:oauth:grant-type:device_code": {
139
- const parsed = deviceCodeSchema.safeParse(body);
140
- if (!parsed.success) {
141
- return oauthError("invalid_request", formatZodError(parsed.error), 400);
142
- }
143
-
144
- const result = await handleDeviceTokenExchange(dineway.db, parsed.data);
145
- if (!result.success) {
146
- const err = result.error ?? { code: "unknown", message: "Unknown error" };
147
- // RFC 8628 requires specific error format
148
- if (result.deviceFlowError) {
149
- return oauthError(result.deviceFlowError, err.message, 400);
150
- }
151
- return oauthError(err.code, err.message, 400);
152
- }
153
- return oauthSuccess(result.data);
154
- }
155
-
156
- case "refresh_token": {
157
- const parsed = refreshSchema.safeParse(body);
158
- if (!parsed.success) {
159
- return oauthError("invalid_request", formatZodError(parsed.error), 400);
160
- }
161
-
162
- const result = await handleTokenRefresh(dineway.db, parsed.data);
163
- if (!result.success) {
164
- const err = result.error ?? { code: "unknown", message: "Unknown error" };
165
- return oauthError(err.code, err.message, 400);
166
- }
167
- return oauthSuccess(result.data);
168
- }
169
-
170
- default:
171
- return oauthError("unsupported_grant_type", `Unsupported grant_type: ${grantType}`, 400);
172
- }
173
- } catch (error) {
174
- return handleError(error, "Failed to process token request", "TOKEN_ERROR");
175
- }
176
- };
177
-
178
- // ---------------------------------------------------------------------------
179
- // OAuth response helpers (RFC 6749 §5.1 / §5.2)
180
- // ---------------------------------------------------------------------------
181
-
182
- function oauthSuccess(data: unknown): Response {
183
- return Response.json(data, { headers: OAUTH_TOKEN_HEADERS });
184
- }
185
-
186
- function oauthError(error: string, description: string, status: number): Response {
187
- return Response.json(
188
- { error, error_description: description },
189
- { status, headers: OAUTH_TOKEN_HEADERS },
190
- );
191
- }
192
-
193
- function formatZodError(error: z.ZodError): string {
194
- return error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ");
195
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * OpenAPI spec endpoint
3
- *
4
- * GET /_dineway/api/openapi.json
5
- *
6
- * Returns the generated OpenAPI 3.1 document. The spec is generated once
7
- * and cached for the lifetime of the process.
8
- */
9
-
10
- import type { APIRoute } from "astro";
11
-
12
- import { generateOpenApiDocument } from "../../../api/openapi/index.js";
13
-
14
- export const prerender = false;
15
-
16
- let cachedSpec: string | null = null;
17
-
18
- export const GET: APIRoute = async ({ locals }) => {
19
- if (!cachedSpec) {
20
- const maxUploadSize = locals.dineway?.config.maxUploadSize;
21
- const doc = generateOpenApiDocument({ maxUploadSize });
22
- cachedSpec = JSON.stringify(doc);
23
- }
24
-
25
- return new Response(cachedSpec, {
26
- status: 200,
27
- headers: {
28
- "Content-Type": "application/json",
29
- "Cache-Control": "public, max-age=3600",
30
- "Access-Control-Allow-Origin": "*",
31
- },
32
- });
33
- };
@@ -1,109 +0,0 @@
1
- /**
2
- * Plugin API routes - dynamic handler for plugin-defined endpoints
3
- *
4
- * Routes are mounted at /_dineway/api/plugins/{pluginId}/*
5
- * Plugins register routes like "POST /do-something" which becomes
6
- * POST /_dineway/api/plugins/{pluginId}/do-something
7
- *
8
- * Routes marked as `public: true` skip authentication and CSRF checks.
9
- * Private routes (the default) require authentication and appropriate permissions.
10
- */
11
-
12
- import type { APIRoute } from "astro";
13
-
14
- import { requirePerm } from "#api/authorize.js";
15
- import { apiError, apiSuccess } from "#api/error.js";
16
- import { requireScope } from "#auth/scopes.js";
17
-
18
- export const prerender = false;
19
-
20
- /**
21
- * Handle all methods by matching against plugin-defined routes
22
- */
23
- const handleRequest: APIRoute = async ({ params, request, locals }) => {
24
- const { dineway, user } = locals;
25
- const pluginId = params.pluginId!;
26
- const path = params.path || "";
27
- const method = request.method.toUpperCase();
28
-
29
- if (!dineway?.handlePluginApiRoute) {
30
- return apiError("NOT_CONFIGURED", "Dineway is not configured", 500);
31
- }
32
-
33
- // Resolve route metadata to decide auth before dispatch
34
- const routeMeta = dineway.getPluginRouteMeta(pluginId, `/${path}`);
35
-
36
- if (!routeMeta) {
37
- return apiError("NOT_FOUND", "Plugin route not found", 404);
38
- }
39
-
40
- // Public routes skip auth, CSRF, and scope checks entirely
41
- if (!routeMeta.public) {
42
- const isStateChangingMethod = !["GET", "HEAD", "OPTIONS"].includes(method);
43
-
44
- // Private routes require authentication and permission checks
45
- const permission = isStateChangingMethod ? "plugins:manage" : "plugins:read";
46
- const denied = requirePerm(user, permission);
47
- if (denied) return denied;
48
-
49
- // Token scope enforcement — plugin routes require "admin" scope.
50
- // Session auth is implicitly full-access (requireScope returns null).
51
- const scopeError = requireScope(locals, "admin");
52
- if (scopeError) return scopeError;
53
-
54
- // Generic private plugin routes can carry arbitrary plugin-defined payloads,
55
- // including secret-bearing config. Until route metadata can describe a
56
- // redacted review payload plus immutable reviewed target, API-token writes
57
- // stay blocked instead of being routed through generic HITL.
58
- if (isStateChangingMethod && locals.authToken?.type === "api_token") {
59
- return apiError(
60
- "HITL_UNSUPPORTED",
61
- "Private plugin routes do not yet support API-token writes without a reviewed redaction contract",
62
- 409,
63
- {
64
- reason: "review_contract_missing",
65
- pluginId,
66
- path: `/${path}`,
67
- },
68
- );
69
- }
70
-
71
- // CSRF protection for state-changing requests on private routes.
72
- // Plugin routes use soft auth in the middleware (user resolved but not required),
73
- // so the middleware's CSRF check doesn't run. We enforce it here for private routes.
74
- // Token-authed requests (which set tokenScopes) are exempt — tokens aren't
75
- // ambient credentials like cookies.
76
- if (
77
- isStateChangingMethod &&
78
- !locals.tokenScopes &&
79
- request.headers.get("X-Dineway-Request") !== "1"
80
- ) {
81
- return apiError("CSRF_REJECTED", "Missing required header", 403);
82
- }
83
- }
84
-
85
- const result = await dineway.handlePluginApiRoute(pluginId, method, `/${path}`, request);
86
-
87
- if (!result.success) {
88
- const code = result.error?.code ?? "PLUGIN_ERROR";
89
- // Pass through messages from known plugin errors (PluginRouteError),
90
- // but mask internal errors (unhandled exceptions) to avoid leaking
91
- // database errors, file paths, etc. from sandboxed plugins.
92
- const message =
93
- code === "INTERNAL_ERROR"
94
- ? "Plugin route error"
95
- : (result.error?.message ?? "Plugin route error");
96
- // PluginRouteError status is returned at the top level of the result
97
- const status = (result as { status?: number }).status ?? (code === "NOT_FOUND" ? 404 : 400);
98
- return apiError(code, message, status);
99
- }
100
-
101
- return apiSuccess(result.data);
102
- };
103
-
104
- // Export handlers for all HTTP methods
105
- export const GET = handleRequest;
106
- export const POST = handleRequest;
107
- export const PUT = handleRequest;
108
- export const PATCH = handleRequest;
109
- export const DELETE = handleRequest;
@@ -1,72 +0,0 @@
1
- /**
2
- * 404 log list and management endpoints
3
- *
4
- * GET /_dineway/api/redirects/404s - List 404 log entries
5
- * DELETE /_dineway/api/redirects/404s - Clear all 404 log entries
6
- * POST /_dineway/api/redirects/404s - Prune 404 log entries older than date
7
- */
8
-
9
- import type { APIRoute } from "astro";
10
-
11
- import { requirePerm } from "#api/authorize.js";
12
- import { handleError, unwrapResult } from "#api/error.js";
13
- import {
14
- handleNotFoundClear,
15
- handleNotFoundList,
16
- handleNotFoundPrune,
17
- } from "#api/handlers/redirects.js";
18
- import { isParseError, parseBody, parseQuery } from "#api/parse.js";
19
- import { notFoundListQuery, notFoundPruneBody } from "#api/schemas.js";
20
-
21
- export const prerender = false;
22
-
23
- export const GET: APIRoute = async ({ url, locals }) => {
24
- const { dineway, user } = locals;
25
- const db = dineway.db;
26
-
27
- const denied = requirePerm(user, "redirects:read");
28
- if (denied) return denied;
29
-
30
- try {
31
- const query = parseQuery(url, notFoundListQuery);
32
- if (isParseError(query)) return query;
33
-
34
- const result = await handleNotFoundList(db, query);
35
- return unwrapResult(result);
36
- } catch (error) {
37
- return handleError(error, "Failed to fetch 404 log", "NOT_FOUND_LIST_ERROR");
38
- }
39
- };
40
-
41
- export const DELETE: APIRoute = async ({ locals }) => {
42
- const { dineway, user } = locals;
43
- const db = dineway.db;
44
-
45
- const denied = requirePerm(user, "redirects:manage");
46
- if (denied) return denied;
47
-
48
- try {
49
- const result = await handleNotFoundClear(db);
50
- return unwrapResult(result);
51
- } catch (error) {
52
- return handleError(error, "Failed to clear 404 log", "NOT_FOUND_CLEAR_ERROR");
53
- }
54
- };
55
-
56
- export const POST: APIRoute = async ({ request, locals }) => {
57
- const { dineway, user } = locals;
58
- const db = dineway.db;
59
-
60
- const denied = requirePerm(user, "redirects:manage");
61
- if (denied) return denied;
62
-
63
- try {
64
- const body = await parseBody(request, notFoundPruneBody);
65
- if (isParseError(body)) return body;
66
-
67
- const result = await handleNotFoundPrune(db, body.olderThan);
68
- return unwrapResult(result);
69
- } catch (error) {
70
- return handleError(error, "Failed to prune 404 log", "NOT_FOUND_PRUNE_ERROR");
71
- }
72
- };