dineway 0.1.9 → 0.1.11

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