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
@@ -0,0 +1,10 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/[id]/confirm.d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * Confirm upload completion
7
+ */
8
+ declare const POST: APIRoute;
9
+ //#endregion
10
+ export { POST, prerender };
@@ -0,0 +1,59 @@
1
+ import "../../../../../context-types-C-LwdAxx.mjs";
2
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../error-DEGjx2Xw.mjs";
3
+ import { r as parseOptionalBody, t as isParseError } from "../../../../../parse-BeQXIt1U.mjs";
4
+ import { zt as mediaConfirmBody } from "../../../../../redirects-CqaxraTO.mjs";
5
+ import "../../../../../import-DD3f2jkc.mjs";
6
+ import "../../../../../api/schemas/index.mjs";
7
+ import { n as requirePerm, t as requireOwnerPerm } from "../../../../../authorize-BBj8C6Y8.mjs";
8
+ import { MediaRepository } from "dineway";
9
+
10
+ //#region src/astro/routes/api/media/[id]/confirm.ts
11
+ const prerender = false;
12
+ /**
13
+ * Add URL to media item (relative URL for portability)
14
+ */
15
+ function addUrlToMedia(item) {
16
+ return {
17
+ ...item,
18
+ url: `/_dineway/api/media/file/${item.storageKey}`
19
+ };
20
+ }
21
+ /**
22
+ * Confirm upload completion
23
+ */
24
+ const POST = async ({ params, request, locals }) => {
25
+ const { dineway, user } = locals;
26
+ const { id } = params;
27
+ const denied = requirePerm(user, "media:upload");
28
+ if (denied) return denied;
29
+ if (!id) return apiError("INVALID_REQUEST", "Media ID is required", 400);
30
+ if (!dineway?.db) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
31
+ try {
32
+ const body = await parseOptionalBody(request, mediaConfirmBody, {});
33
+ if (isParseError(body)) return body;
34
+ const repo = new MediaRepository(dineway.db);
35
+ const existing = await repo.findById(id);
36
+ if (!existing) return apiError("NOT_FOUND", `Media item not found: ${id}`, 404);
37
+ if (existing.status !== "pending") return apiError("INVALID_STATE", `Media item is not pending: ${existing.status}`, 400);
38
+ const ownerDenied = requireOwnerPerm(user, existing.authorId ?? "", "media:edit_own", "media:edit_any");
39
+ if (ownerDenied) return ownerDenied;
40
+ if (dineway.storage) {
41
+ if (!await dineway.storage.exists(existing.storageKey)) {
42
+ await repo.markFailed(id);
43
+ return apiError("FILE_NOT_FOUND", "File was not uploaded to storage", 400);
44
+ }
45
+ }
46
+ const item = await repo.confirmUpload(id, {
47
+ size: body.size,
48
+ width: body.width,
49
+ height: body.height
50
+ });
51
+ if (!item) return apiError("CONFIRM_FAILED", "Failed to confirm upload", 500);
52
+ return apiSuccess({ item: addUrlToMedia(item) });
53
+ } catch (error) {
54
+ return handleError(error, "Failed to confirm upload", "CONFIRM_ERROR");
55
+ }
56
+ };
57
+
58
+ //#endregion
59
+ export { POST, prerender };
@@ -0,0 +1,22 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/[id].d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * Get media item
7
+ */
8
+ declare const GET: APIRoute;
9
+ /**
10
+ * Update media metadata
11
+ *
12
+ * Authors can edit their own media; editors+ can edit any.
13
+ */
14
+ declare const PUT: APIRoute;
15
+ /**
16
+ * Delete media item
17
+ *
18
+ * Authors can delete their own media; editors+ can delete any.
19
+ */
20
+ declare const DELETE: APIRoute;
21
+ //#endregion
22
+ export { DELETE, GET, PUT, prerender };
@@ -0,0 +1,81 @@
1
+ import "../../../../context-types-C-LwdAxx.mjs";
2
+ import { a as unwrapResult, r as handleError, t as apiError } from "../../../../error-DEGjx2Xw.mjs";
3
+ import { n as parseBody, t as isParseError } from "../../../../parse-BeQXIt1U.mjs";
4
+ import { qt as mediaUpdateBody } from "../../../../redirects-CqaxraTO.mjs";
5
+ import "../../../../import-DD3f2jkc.mjs";
6
+ import "../../../../api/schemas/index.mjs";
7
+ import { n as requirePerm, t as requireOwnerPerm } from "../../../../authorize-BBj8C6Y8.mjs";
8
+
9
+ //#region src/astro/routes/api/media/[id].ts
10
+ const prerender = false;
11
+ /**
12
+ * Get media item
13
+ */
14
+ const GET = async ({ params, locals }) => {
15
+ const { dineway, user } = locals;
16
+ const { id } = params;
17
+ const readDenied = requirePerm(user, "media:read");
18
+ if (readDenied) return readDenied;
19
+ if (!id) return apiError("INVALID_REQUEST", "Media ID required", 400);
20
+ if (!dineway?.handleMediaGet) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
21
+ return unwrapResult(await dineway.handleMediaGet(id));
22
+ };
23
+ /**
24
+ * Update media metadata
25
+ *
26
+ * Authors can edit their own media; editors+ can edit any.
27
+ */
28
+ const PUT = async ({ params, request, locals }) => {
29
+ const { dineway, user } = locals;
30
+ const { id } = params;
31
+ const editDenied = requirePerm(user, "media:edit_own");
32
+ if (editDenied) return editDenied;
33
+ if (!id) return apiError("INVALID_REQUEST", "Media ID required", 400);
34
+ if (!dineway?.handleMediaGet || !dineway?.handleMediaUpdate) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
35
+ try {
36
+ const getResult = await dineway.handleMediaGet(id);
37
+ if (!getResult.success || !getResult.data?.item) return apiError("NOT_FOUND", "Media item not found", 404);
38
+ const media = getResult.data.item;
39
+ const ownerDenied = requireOwnerPerm(user, media.authorId, "media:edit_own", "media:edit_any");
40
+ if (ownerDenied) return ownerDenied;
41
+ const body = await parseBody(request, mediaUpdateBody);
42
+ if (isParseError(body)) return body;
43
+ return unwrapResult(await dineway.handleMediaUpdate(id, {
44
+ alt: body.alt,
45
+ caption: body.caption,
46
+ width: body.width,
47
+ height: body.height
48
+ }));
49
+ } catch (error) {
50
+ return handleError(error, "Failed to update media", "MEDIA_UPDATE_ERROR");
51
+ }
52
+ };
53
+ /**
54
+ * Delete media item
55
+ *
56
+ * Authors can delete their own media; editors+ can delete any.
57
+ */
58
+ const DELETE = async ({ params, locals }) => {
59
+ const { dineway, user } = locals;
60
+ const { id } = params;
61
+ const deleteDenied = requirePerm(user, "media:delete_own");
62
+ if (deleteDenied) return deleteDenied;
63
+ if (!id) return apiError("INVALID_REQUEST", "Media ID required", 400);
64
+ if (!dineway?.handleMediaGet || !dineway?.handleMediaDelete) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
65
+ try {
66
+ const getResult = await dineway.handleMediaGet(id);
67
+ if (!getResult.success || !getResult.data?.item) return apiError("NOT_FOUND", "Media item not found", 404);
68
+ const media = getResult.data.item;
69
+ const ownerDenied = requireOwnerPerm(user, media.authorId, "media:delete_own", "media:delete_any");
70
+ if (ownerDenied) return ownerDenied;
71
+ if (dineway.storage) try {
72
+ await dineway.storage.delete(media.storageKey);
73
+ } catch {}
74
+ return unwrapResult(await dineway.handleMediaDelete(id));
75
+ } catch (error) {
76
+ return handleError(error, "Failed to delete media", "MEDIA_DELETE_ERROR");
77
+ }
78
+ };
79
+
80
+ //#endregion
81
+ export { DELETE, GET, PUT, prerender };
@@ -0,0 +1,7 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/file/[...key].d.ts
4
+ declare const prerender = false;
5
+ declare const GET: APIRoute;
6
+ //#endregion
7
+ export { GET, prerender };
@@ -0,0 +1,49 @@
1
+ import { r as handleError, t as apiError } from "../../../../../error-DEGjx2Xw.mjs";
2
+
3
+ //#region src/astro/routes/api/media/file/[...key].ts
4
+ const prerender = false;
5
+ /**
6
+ * Content types that are safe to display inline (simple raster/vector images, video, audio).
7
+ * Everything else gets Content-Disposition: attachment to prevent script execution.
8
+ */
9
+ const SAFE_INLINE_TYPES = new Set([
10
+ "image/jpeg",
11
+ "image/png",
12
+ "image/gif",
13
+ "image/webp",
14
+ "image/avif",
15
+ "image/x-icon",
16
+ "video/mp4",
17
+ "video/webm",
18
+ "audio/mpeg",
19
+ "audio/wav",
20
+ "audio/ogg"
21
+ ]);
22
+ const GET = async ({ params, locals }) => {
23
+ const { key } = params;
24
+ const { dineway } = locals;
25
+ if (!key) return apiError("NOT_FOUND", "File not found", 404);
26
+ if (!dineway?.storage) return apiError("NOT_CONFIGURED", "Storage not configured", 500);
27
+ try {
28
+ const result = await dineway.storage.download(key);
29
+ const headers = {
30
+ "Content-Type": result.contentType,
31
+ "Cache-Control": "public, max-age=31536000, immutable",
32
+ "X-Content-Type-Options": "nosniff",
33
+ "Content-Security-Policy": "sandbox; default-src 'none'; img-src 'self'; style-src 'unsafe-inline'"
34
+ };
35
+ if (result.size) headers["Content-Length"] = String(result.size);
36
+ if (SAFE_INLINE_TYPES.has(result.contentType)) headers["Content-Disposition"] = "inline";
37
+ else headers["Content-Disposition"] = "attachment";
38
+ return new Response(result.body, {
39
+ status: 200,
40
+ headers
41
+ });
42
+ } catch (error) {
43
+ if (error instanceof Error && (error.message.includes("not found") || error.message.includes("NOT_FOUND"))) return apiError("NOT_FOUND", "File not found", 404);
44
+ return handleError(error, "Failed to serve file", "FILE_SERVE_ERROR");
45
+ }
46
+ };
47
+
48
+ //#endregion
49
+ export { GET, prerender };
@@ -0,0 +1,14 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/providers/[providerId]/[itemId].d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * Get a single media item from a provider
7
+ */
8
+ declare const GET: APIRoute;
9
+ /**
10
+ * Delete a media item from a provider
11
+ */
12
+ declare const DELETE: APIRoute;
13
+ //#endregion
14
+ export { DELETE, GET, prerender };
@@ -0,0 +1,49 @@
1
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../../error-DEGjx2Xw.mjs";
2
+ import { n as requirePerm } from "../../../../../../authorize-BBj8C6Y8.mjs";
3
+
4
+ //#region src/astro/routes/api/media/providers/[providerId]/[itemId].ts
5
+ const prerender = false;
6
+ /**
7
+ * Get a single media item from a provider
8
+ */
9
+ const GET = async ({ params, locals }) => {
10
+ const { dineway, user } = locals;
11
+ const denied = requirePerm(user, "media:read");
12
+ if (denied) return denied;
13
+ const { providerId, itemId } = params;
14
+ if (!providerId || !itemId) return apiError("INVALID_REQUEST", "Provider ID and Item ID required", 400);
15
+ if (!dineway?.getMediaProvider) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
16
+ const provider = dineway.getMediaProvider(providerId);
17
+ if (!provider) return apiError("NOT_FOUND", `Provider "${providerId}" not found`, 404);
18
+ if (!provider.get) return apiError("NOT_SUPPORTED", `Provider "${providerId}" does not support getting individual items`, 400);
19
+ try {
20
+ const item = await provider.get(itemId);
21
+ if (!item) return apiError("NOT_FOUND", "Item not found", 404);
22
+ return apiSuccess({ item });
23
+ } catch (error) {
24
+ return handleError(error, "Failed to get item from provider", "PROVIDER_GET_ERROR");
25
+ }
26
+ };
27
+ /**
28
+ * Delete a media item from a provider
29
+ */
30
+ const DELETE = async ({ params, locals }) => {
31
+ const { dineway, user } = locals;
32
+ const denied = requirePerm(user, "media:delete_any");
33
+ if (denied) return denied;
34
+ const { providerId, itemId } = params;
35
+ if (!providerId || !itemId) return apiError("INVALID_REQUEST", "Provider ID and Item ID required", 400);
36
+ if (!dineway?.getMediaProvider) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
37
+ const provider = dineway.getMediaProvider(providerId);
38
+ if (!provider) return apiError("NOT_FOUND", `Provider "${providerId}" not found`, 404);
39
+ if (!provider.delete) return apiError("NOT_SUPPORTED", `Provider "${providerId}" does not support deletion`, 400);
40
+ try {
41
+ await provider.delete(itemId);
42
+ return apiSuccess({ deleted: true });
43
+ } catch (error) {
44
+ return handleError(error, "Failed to delete item from provider", "PROVIDER_DELETE_ERROR");
45
+ }
46
+ };
47
+
48
+ //#endregion
49
+ export { DELETE, GET, prerender };
@@ -0,0 +1,14 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/providers/[providerId]/index.d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * List media from a specific provider
7
+ */
8
+ declare const GET: APIRoute;
9
+ /**
10
+ * Upload media to a specific provider
11
+ */
12
+ declare const POST: APIRoute;
13
+ //#endregion
14
+ export { GET, POST, prerender };
@@ -0,0 +1,72 @@
1
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../../../error-DEGjx2Xw.mjs";
2
+ import { n as requirePerm } from "../../../../../../authorize-BBj8C6Y8.mjs";
3
+
4
+ //#region src/astro/routes/api/media/providers/[providerId]/index.ts
5
+ const prerender = false;
6
+ /**
7
+ * List media from a specific provider
8
+ */
9
+ const GET = async ({ params, request, locals }) => {
10
+ const { dineway, user } = locals;
11
+ const { providerId } = params;
12
+ const readDenied = requirePerm(user, "media:read");
13
+ if (readDenied) return readDenied;
14
+ if (!providerId) return apiError("INVALID_REQUEST", "Provider ID required", 400);
15
+ if (!dineway?.getMediaProvider) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
16
+ const provider = dineway.getMediaProvider(providerId);
17
+ if (!provider) return apiError("NOT_FOUND", `Provider "${providerId}" not found`, 404);
18
+ const url = new URL(request.url);
19
+ const cursor = url.searchParams.get("cursor") || void 0;
20
+ const rawLimit = url.searchParams.get("limit");
21
+ const limit = rawLimit ? Math.max(1, Math.min(parseInt(rawLimit, 10) || 50, 100)) : void 0;
22
+ const query = url.searchParams.get("query") || void 0;
23
+ const mimeType = url.searchParams.get("mimeType") || void 0;
24
+ try {
25
+ const result = await provider.list({
26
+ cursor,
27
+ limit,
28
+ query,
29
+ mimeType
30
+ });
31
+ return apiSuccess({
32
+ items: result.items,
33
+ nextCursor: result.nextCursor
34
+ });
35
+ } catch (error) {
36
+ return handleError(error, "Failed to list media from provider", "PROVIDER_LIST_ERROR");
37
+ }
38
+ };
39
+ /**
40
+ * Upload media to a specific provider
41
+ */
42
+ const POST = async ({ params, request, locals }) => {
43
+ const { dineway, user } = locals;
44
+ const { providerId } = params;
45
+ const uploadDenied = requirePerm(user, "media:upload");
46
+ if (uploadDenied) return uploadDenied;
47
+ if (!providerId) return apiError("INVALID_REQUEST", "Provider ID required", 400);
48
+ if (!dineway?.getMediaProvider) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
49
+ const provider = dineway.getMediaProvider(providerId);
50
+ if (!provider) return apiError("NOT_FOUND", `Provider "${providerId}" not found`, 404);
51
+ if (!provider.upload) return apiError("NOT_SUPPORTED", `Provider "${providerId}" does not support uploads`, 400);
52
+ try {
53
+ const formData = await request.formData();
54
+ const fileEntry = formData.get("file");
55
+ const file = fileEntry instanceof File ? fileEntry : null;
56
+ const altEntry = formData.get("alt");
57
+ const alt = typeof altEntry === "string" ? altEntry : null;
58
+ if (!file) return apiError("NO_FILE", "No file provided", 400);
59
+ const maxSize = dineway.config?.maxUploadSize ?? 50 * 1024 * 1024;
60
+ if (file.size > maxSize) return apiError("FILE_TOO_LARGE", `File exceeds maximum size of ${Math.round(maxSize / 1024 / 1024)}MB`, 413);
61
+ return apiSuccess({ item: await provider.upload({
62
+ file,
63
+ filename: file.name,
64
+ alt: alt || void 0
65
+ }) }, 201);
66
+ } catch (error) {
67
+ return handleError(error, "Failed to upload to provider", "PROVIDER_UPLOAD_ERROR");
68
+ }
69
+ };
70
+
71
+ //#endregion
72
+ export { GET, POST, prerender };
@@ -0,0 +1,10 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/providers/index.d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * List all configured media providers
7
+ */
8
+ declare const GET: APIRoute;
9
+ //#endregion
10
+ export { GET, prerender };
@@ -0,0 +1,18 @@
1
+ import { n as apiSuccess, t as apiError } from "../../../../../error-DEGjx2Xw.mjs";
2
+ import { n as requirePerm } from "../../../../../authorize-BBj8C6Y8.mjs";
3
+
4
+ //#region src/astro/routes/api/media/providers/index.ts
5
+ const prerender = false;
6
+ /**
7
+ * List all configured media providers
8
+ */
9
+ const GET = async ({ locals }) => {
10
+ const { dineway, user } = locals;
11
+ const denied = requirePerm(user, "media:read");
12
+ if (denied) return denied;
13
+ if (!dineway?.getMediaProviderList) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
14
+ return apiSuccess({ items: dineway.getMediaProviderList() });
15
+ };
16
+
17
+ //#endregion
18
+ export { GET, prerender };
@@ -0,0 +1,10 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media/upload-url.d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * Get a signed upload URL for direct-to-storage upload
7
+ */
8
+ declare const POST: APIRoute;
9
+ //#endregion
10
+ export { POST, prerender };
@@ -0,0 +1,82 @@
1
+ import "../../../../context-types-C-LwdAxx.mjs";
2
+ import { n as apiSuccess, r as handleError, t as apiError } from "../../../../error-DEGjx2Xw.mjs";
3
+ import { n as parseBody, t as isParseError } from "../../../../parse-BeQXIt1U.mjs";
4
+ import { Jt as mediaUploadUrlBody, Lt as DEFAULT_MAX_UPLOAD_SIZE } from "../../../../redirects-CqaxraTO.mjs";
5
+ import "../../../../import-DD3f2jkc.mjs";
6
+ import "../../../../api/schemas/index.mjs";
7
+ import { n as requirePerm } from "../../../../authorize-BBj8C6Y8.mjs";
8
+ import { ulid } from "ulidx";
9
+ import * as path from "node:path";
10
+ import { MediaRepository } from "dineway";
11
+
12
+ //#region src/astro/routes/api/media/upload-url.ts
13
+ /**
14
+ * Media upload URL endpoint
15
+ *
16
+ * POST /_dineway/api/media/upload-url
17
+ *
18
+ * Returns a signed URL for direct upload to storage.
19
+ * Creates a pending media record that must be confirmed after upload.
20
+ */
21
+ const prerender = false;
22
+ /**
23
+ * Get a signed upload URL for direct-to-storage upload
24
+ */
25
+ const POST = async ({ request, locals }) => {
26
+ const { dineway, user } = locals;
27
+ const denied = requirePerm(user, "media:upload");
28
+ if (denied) return denied;
29
+ if (!dineway?.storage) return apiError("NO_STORAGE", "Storage not configured. Signed URL uploads require S3-compatible storage.", 501);
30
+ if (!dineway?.db) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
31
+ try {
32
+ const maxUploadSize = dineway.config.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;
33
+ if (!Number.isFinite(maxUploadSize) || maxUploadSize <= 0) return apiError("CONFIGURATION_ERROR", "Invalid maxUploadSize configuration. Expected a positive finite number.", 500);
34
+ const body = await parseBody(request, mediaUploadUrlBody(maxUploadSize));
35
+ if (isParseError(body)) return body;
36
+ if (![
37
+ "image/",
38
+ "video/",
39
+ "audio/",
40
+ "application/pdf"
41
+ ].some((type) => body.contentType.startsWith(type))) return apiError("INVALID_TYPE", "File type not allowed", 400);
42
+ const repo = new MediaRepository(dineway.db);
43
+ if (body.contentHash) {
44
+ const existing = await repo.findByContentHash(body.contentHash);
45
+ if (existing) return apiSuccess({
46
+ existing: true,
47
+ mediaId: existing.id,
48
+ storageKey: existing.storageKey,
49
+ url: `/_dineway/api/media/file/${existing.storageKey}`
50
+ });
51
+ }
52
+ const storageKey = `${ulid()}${path.extname(body.filename) || ""}`;
53
+ const mediaItem = await repo.createPending({
54
+ filename: body.filename,
55
+ mimeType: body.contentType,
56
+ size: body.size,
57
+ storageKey,
58
+ contentHash: body.contentHash,
59
+ authorId: user?.id
60
+ });
61
+ const signedUrl = await dineway.storage.getSignedUploadUrl({
62
+ key: storageKey,
63
+ contentType: body.contentType,
64
+ size: body.size,
65
+ expiresIn: 3600
66
+ });
67
+ return apiSuccess({
68
+ uploadUrl: signedUrl.url,
69
+ method: signedUrl.method,
70
+ headers: signedUrl.headers,
71
+ mediaId: mediaItem.id,
72
+ storageKey,
73
+ expiresAt: signedUrl.expiresAt
74
+ });
75
+ } catch (error) {
76
+ if (error instanceof Error && "code" in error && error.code === "NOT_SUPPORTED") return apiError("NOT_SUPPORTED", "Storage does not support signed upload URLs. Use direct upload.", 501);
77
+ return handleError(error, "Failed to generate upload URL", "UPLOAD_URL_ERROR");
78
+ }
79
+ };
80
+
81
+ //#endregion
82
+ export { POST, prerender };
@@ -0,0 +1,16 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/routes/api/media.d.ts
4
+ declare const prerender = false;
5
+ /**
6
+ * List media items
7
+ */
8
+ declare const GET: APIRoute;
9
+ /**
10
+ * Upload media file
11
+ *
12
+ * Uses the configured storage adapter to store the file.
13
+ */
14
+ declare const POST: APIRoute;
15
+ //#endregion
16
+ export { GET, POST, prerender };
@@ -0,0 +1,137 @@
1
+ import "../../../base64-Cz-aU0X1.mjs";
2
+ import "../../../types-Bs6lTBBW.mjs";
3
+ import { t as MediaRepository } from "../../../media-_7Fxdu45.mjs";
4
+ import { t as generatePlaceholder } from "../../../placeholder-C2P5fKa4.mjs";
5
+ import "../../../context-types-C-LwdAxx.mjs";
6
+ import { t as computeContentHash } from "../../../hash-CDX7M0ze.mjs";
7
+ import { a as unwrapResult, n as apiSuccess, r as handleError, t as apiError } from "../../../error-DEGjx2Xw.mjs";
8
+ import { i as parseQuery, t as isParseError } from "../../../parse-BeQXIt1U.mjs";
9
+ import { Lt as DEFAULT_MAX_UPLOAD_SIZE, Rt as formatFileSize, Ut as mediaListQuery } from "../../../redirects-CqaxraTO.mjs";
10
+ import "../../../import-DD3f2jkc.mjs";
11
+ import "../../../api/schemas/index.mjs";
12
+ import { n as requirePerm } from "../../../authorize-BBj8C6Y8.mjs";
13
+ import { ulid } from "ulidx";
14
+ import * as path from "node:path";
15
+
16
+ //#region src/astro/routes/api/media.ts
17
+ /**
18
+ * Media list and upload endpoint
19
+ *
20
+ * GET /_dineway/api/media - List all media
21
+ * POST /_dineway/api/media - Upload new media (via configured storage adapter)
22
+ */
23
+ const prerender = false;
24
+ /**
25
+ * Add URL to media items
26
+ * Uses relative URLs to ensure portability across deployments
27
+ */
28
+ function addUrlToMedia(item) {
29
+ return {
30
+ ...item,
31
+ url: `/_dineway/api/media/file/${item.storageKey}`
32
+ };
33
+ }
34
+ /**
35
+ * List media items
36
+ */
37
+ const GET = async ({ request, locals }) => {
38
+ const { dineway, user } = locals;
39
+ const denied = requirePerm(user, "media:read");
40
+ if (denied) return denied;
41
+ if (!dineway?.handleMediaList) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
42
+ const query = parseQuery(new URL(request.url), mediaListQuery);
43
+ if (isParseError(query)) return query;
44
+ const result = await dineway.handleMediaList({
45
+ cursor: query.cursor,
46
+ limit: query.limit,
47
+ mimeType: query.mimeType
48
+ });
49
+ if (!result.success) return unwrapResult(result);
50
+ return apiSuccess({
51
+ items: result.data.items.map((item) => addUrlToMedia(item)),
52
+ nextCursor: result.data.nextCursor
53
+ });
54
+ };
55
+ /**
56
+ * Upload media file
57
+ *
58
+ * Uses the configured storage adapter to store the file.
59
+ */
60
+ const POST = async ({ request, locals }) => {
61
+ const { dineway, user } = locals;
62
+ const denied = requirePerm(user, "media:upload");
63
+ if (denied) return denied;
64
+ if (!dineway?.handleMediaCreate) return apiError("NOT_CONFIGURED", "Dineway is not initialized", 500);
65
+ if (!dineway?.storage) return apiError("NO_STORAGE", "Storage not configured", 500);
66
+ try {
67
+ const maxUploadSize = dineway.config.maxUploadSize ?? DEFAULT_MAX_UPLOAD_SIZE;
68
+ if (!Number.isFinite(maxUploadSize) || maxUploadSize <= 0) return apiError("CONFIGURATION_ERROR", "Invalid maxUploadSize configuration", 500);
69
+ const contentLength = request.headers.get("Content-Length");
70
+ if (contentLength && parseInt(contentLength, 10) > maxUploadSize) return apiError("PAYLOAD_TOO_LARGE", "Upload too large", 413);
71
+ const formData = await request.formData();
72
+ const fileEntry = formData.get("file");
73
+ const file = fileEntry instanceof File ? fileEntry : null;
74
+ if (!file) return apiError("NO_FILE", "No file provided", 400);
75
+ if (![
76
+ "image/",
77
+ "video/",
78
+ "audio/",
79
+ "application/pdf"
80
+ ].some((type) => file.type.startsWith(type))) return apiError("INVALID_TYPE", "File type not allowed", 400);
81
+ if (file.size > maxUploadSize) return apiError("PAYLOAD_TOO_LARGE", `File exceeds maximum size of ${formatFileSize(maxUploadSize)}`, 413);
82
+ const buffer = new Uint8Array(await file.arrayBuffer());
83
+ const contentHash = await computeContentHash(buffer);
84
+ const existing = await new MediaRepository(dineway.db).findByContentHash(contentHash);
85
+ if (existing) return apiSuccess({
86
+ item: addUrlToMedia(existing),
87
+ deduplicated: true
88
+ });
89
+ const storageKey = `${ulid()}${path.extname(file.name) || ""}`;
90
+ await dineway.storage.upload({
91
+ key: storageKey,
92
+ body: buffer,
93
+ contentType: file.type
94
+ });
95
+ const widthEntry = formData.get("width");
96
+ const widthStr = typeof widthEntry === "string" ? widthEntry : null;
97
+ const heightEntry = formData.get("height");
98
+ const heightStr = typeof heightEntry === "string" ? heightEntry : null;
99
+ const width = widthStr ? parseInt(widthStr, 10) : void 0;
100
+ const height = heightStr ? parseInt(heightStr, 10) : void 0;
101
+ const thumbnailEntry = formData.get("thumbnail");
102
+ const thumbnail = thumbnailEntry instanceof File ? thumbnailEntry : null;
103
+ let placeholder = null;
104
+ if (file.type.startsWith("image/")) if (thumbnail) placeholder = await generatePlaceholder(new Uint8Array(await thumbnail.arrayBuffer()), thumbnail.type);
105
+ else {
106
+ const clientDims = width && height ? {
107
+ width,
108
+ height
109
+ } : void 0;
110
+ placeholder = await generatePlaceholder(buffer, file.type, clientDims);
111
+ }
112
+ const result = await dineway.handleMediaCreate({
113
+ filename: file.name,
114
+ mimeType: file.type,
115
+ size: file.size,
116
+ width,
117
+ height,
118
+ storageKey,
119
+ contentHash,
120
+ blurhash: placeholder?.blurhash,
121
+ dominantColor: placeholder?.dominantColor,
122
+ authorId: user?.id
123
+ });
124
+ if (!result.success) {
125
+ try {
126
+ await dineway.storage.delete(storageKey);
127
+ } catch {}
128
+ return unwrapResult(result);
129
+ }
130
+ return apiSuccess({ item: addUrlToMedia(result.data.item) }, 201);
131
+ } catch (error) {
132
+ return handleError(error, "Upload failed", "UPLOAD_ERROR");
133
+ }
134
+ };
135
+
136
+ //#endregion
137
+ export { GET, POST, prerender };