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,126 @@
1
+ //#region src/media/normalize.ts
2
+ const INTERNAL_MEDIA_PREFIX = "/_dineway/api/media/file/";
3
+ const URL_PATTERN = /^https?:\/\//;
4
+ /**
5
+ * Normalize a media field value into a consistent MediaValue shape.
6
+ *
7
+ * - `null`/`undefined` → `null`
8
+ * - Bare URL string → `{ provider: "external", id: "", src: url }`
9
+ * - Bare internal media URL → resolved via local provider's `get()`
10
+ * - Object with `provider` + `id` → enriched with missing fields from provider
11
+ */
12
+ async function normalizeMediaValue(value, getProvider) {
13
+ if (value == null) return null;
14
+ if (typeof value === "string") return normalizeStringUrl(value, getProvider);
15
+ if (!isRecord(value)) return null;
16
+ if (!("id" in value) && !("src" in value)) return null;
17
+ const provider = (typeof value.provider === "string" ? value.provider : void 0) || "local";
18
+ const id = typeof value.id === "string" ? value.id : "";
19
+ if (provider === "external") return recordToMediaValue(value);
20
+ const result = {
21
+ ...recordToMediaValue(value),
22
+ provider
23
+ };
24
+ if (provider === "local") delete result.src;
25
+ const needsDimensions = result.width == null || result.height == null;
26
+ const needsStorageKey = provider === "local" && !result.meta?.storageKey;
27
+ const needsFileInfo = !result.mimeType || !result.filename;
28
+ if (!(needsDimensions || needsStorageKey || needsFileInfo) || !id) return result;
29
+ const mediaProvider = getProvider(provider);
30
+ if (!mediaProvider?.get) return result;
31
+ let providerItem;
32
+ try {
33
+ providerItem = await mediaProvider.get(id);
34
+ } catch {
35
+ return result;
36
+ }
37
+ if (!providerItem) return result;
38
+ return mergeProviderData(result, providerItem);
39
+ }
40
+ function normalizeStringUrl(url, getProvider) {
41
+ if (url.startsWith(INTERNAL_MEDIA_PREFIX)) return resolveInternalUrl(url, getProvider);
42
+ if (URL_PATTERN.test(url)) return Promise.resolve({
43
+ provider: "external",
44
+ id: "",
45
+ src: url
46
+ });
47
+ return Promise.resolve({
48
+ provider: "external",
49
+ id: "",
50
+ src: url
51
+ });
52
+ }
53
+ async function resolveInternalUrl(url, getProvider) {
54
+ const storageKey = url.slice(25);
55
+ const localProvider = getProvider("local");
56
+ if (!localProvider?.get) return {
57
+ provider: "external",
58
+ id: "",
59
+ src: url
60
+ };
61
+ let item;
62
+ try {
63
+ item = await localProvider.get(storageKey);
64
+ } catch {
65
+ return {
66
+ provider: "external",
67
+ id: "",
68
+ src: url
69
+ };
70
+ }
71
+ if (!item) return {
72
+ provider: "external",
73
+ id: "",
74
+ src: url
75
+ };
76
+ return {
77
+ provider: "local",
78
+ id: item.id,
79
+ filename: item.filename,
80
+ mimeType: item.mimeType,
81
+ width: item.width,
82
+ height: item.height,
83
+ alt: item.alt,
84
+ meta: item.meta
85
+ };
86
+ }
87
+ /**
88
+ * Merge provider data into an existing MediaValue, preserving caller-supplied fields.
89
+ * Caller `alt` takes priority over provider `alt` (per-usage, not per-image).
90
+ */
91
+ function mergeProviderData(existing, item) {
92
+ const result = { ...existing };
93
+ if (result.width == null && item.width != null) result.width = item.width;
94
+ if (result.height == null && item.height != null) result.height = item.height;
95
+ if (!result.filename && item.filename) result.filename = item.filename;
96
+ if (!result.mimeType && item.mimeType) result.mimeType = item.mimeType;
97
+ if (!result.alt && item.alt) result.alt = item.alt;
98
+ if (item.meta) result.meta = {
99
+ ...item.meta,
100
+ ...result.meta
101
+ };
102
+ return result;
103
+ }
104
+ function isRecord(value) {
105
+ return typeof value === "object" && value !== null && !Array.isArray(value);
106
+ }
107
+ /**
108
+ * Extract known MediaValue fields from a runtime-checked record.
109
+ * Avoids unsafe `as MediaValue` cast by reading each property explicitly.
110
+ */
111
+ function recordToMediaValue(obj) {
112
+ const result = { id: typeof obj.id === "string" ? obj.id : "" };
113
+ if (typeof obj.provider === "string") result.provider = obj.provider;
114
+ if (typeof obj.src === "string") result.src = obj.src;
115
+ if (typeof obj.previewUrl === "string") result.previewUrl = obj.previewUrl;
116
+ if (typeof obj.filename === "string") result.filename = obj.filename;
117
+ if (typeof obj.mimeType === "string") result.mimeType = obj.mimeType;
118
+ if (typeof obj.width === "number") result.width = obj.width;
119
+ if (typeof obj.height === "number") result.height = obj.height;
120
+ if (typeof obj.alt === "string") result.alt = obj.alt;
121
+ if (isRecord(obj.meta)) result.meta = obj.meta;
122
+ return result;
123
+ }
124
+
125
+ //#endregion
126
+ export { normalizeMediaValue as t };
@@ -0,0 +1,283 @@
1
+ import { t as withTransaction } from "./transaction-x2tJQ-A1.mjs";
2
+ import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-DldxJlqV.mjs";
3
+ import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-DzloJxuh.mjs";
4
+ import { c as validateRedirectUri, o as lookupOAuthClient, s as validateClientRedirectUri } from "./oauth-clients-CvWatf5p.mjs";
5
+ import { t as lookupUserRoleAndStatus } from "./oauth-user-lookup-B4OcmsLV.mjs";
6
+ import { clampScopes, computeS256Challenge, secureCompare } from "@dineway-ai/auth";
7
+ import { generateCodeVerifier } from "arctic";
8
+
9
+ //#region src/api/handlers/oauth-authorization.ts
10
+ /**
11
+ * OAuth 2.1 Authorization Code + PKCE handlers.
12
+ *
13
+ * Implements the server side of the authorization code grant for MCP clients
14
+ * (Claude Desktop, VS Code, etc.) per the MCP authorization spec (draft).
15
+ *
16
+ * Uses arctic for PKCE challenge generation and @dineway-ai/auth for token
17
+ * utilities. Token infrastructure is shared with the device flow.
18
+ */
19
+ /** Authorization codes expire after 10 minutes (RFC 6749 §4.1.2 recommends short-lived) */
20
+ const AUTH_CODE_TTL_SECONDS = 600;
21
+ /** Access token TTL: 1 hour */
22
+ const ACCESS_TOKEN_TTL_SECONDS = 3600;
23
+ /** Refresh token TTL: 90 days */
24
+ const REFRESH_TOKEN_TTL_SECONDS = 2160 * 60 * 60;
25
+ function expiresAt(seconds) {
26
+ return new Date(Date.now() + seconds * 1e3).toISOString();
27
+ }
28
+ /**
29
+ * Validate and normalize scopes. Returns validated scope list.
30
+ */
31
+ function normalizeScopes(requested) {
32
+ if (!requested || requested.length === 0) return [];
33
+ const validSet = new Set(filterExperimentalSiteContextWorkflowScopes(ALL_VALID_SCOPES));
34
+ return requested.filter((scope) => validSet.has(scope));
35
+ }
36
+ /**
37
+ * Process an authorization request after the user approves consent.
38
+ *
39
+ * Generates an authorization code, stores it with the PKCE challenge,
40
+ * and returns the redirect URL with the code appended.
41
+ *
42
+ * Scopes are clamped to the user's role to prevent scope escalation.
43
+ */
44
+ async function handleAuthorizationApproval(db, userId, userRole, params) {
45
+ try {
46
+ if (params.response_type !== "code") return {
47
+ success: false,
48
+ error: {
49
+ code: "UNSUPPORTED_RESPONSE_TYPE",
50
+ message: "Only response_type=code is supported"
51
+ }
52
+ };
53
+ const uriError = validateRedirectUri(params.redirect_uri);
54
+ if (uriError) return {
55
+ success: false,
56
+ error: {
57
+ code: "INVALID_REDIRECT_URI",
58
+ message: uriError
59
+ }
60
+ };
61
+ const client = await lookupOAuthClient(db, params.client_id);
62
+ if (!client) return {
63
+ success: false,
64
+ error: {
65
+ code: "INVALID_CLIENT",
66
+ message: "Unknown client_id"
67
+ }
68
+ };
69
+ const clientUriError = validateClientRedirectUri(params.redirect_uri, client.redirectUris);
70
+ if (clientUriError) return {
71
+ success: false,
72
+ error: {
73
+ code: "INVALID_REDIRECT_URI",
74
+ message: clientUriError
75
+ }
76
+ };
77
+ if (params.code_challenge_method !== "S256") return {
78
+ success: false,
79
+ error: {
80
+ code: "INVALID_REQUEST",
81
+ message: "Only S256 code_challenge_method is supported"
82
+ }
83
+ };
84
+ if (!params.code_challenge) return {
85
+ success: false,
86
+ error: {
87
+ code: "INVALID_REQUEST",
88
+ message: "code_challenge is required"
89
+ }
90
+ };
91
+ const requestedScopes = params.scope?.split(" ").filter(Boolean) ?? [];
92
+ if (disabledExperimentalSiteContextWorkflowScopes(requestedScopes).length > 0) return {
93
+ success: false,
94
+ error: {
95
+ code: "INVALID_SCOPE",
96
+ message: getExperimentalSiteContextWorkflowScopesDisabledMessage()
97
+ }
98
+ };
99
+ const userScopes = clampScopes(normalizeScopes(requestedScopes), userRole, { includeExperimental: experimentalSiteContextWorkflowsEnabled() });
100
+ const clientScopes = client.scopes;
101
+ const scopes = clientScopes?.length ? userScopes.filter((s) => clientScopes.includes(s)) : userScopes;
102
+ if (scopes.length === 0) return {
103
+ success: false,
104
+ error: {
105
+ code: "INVALID_SCOPE",
106
+ message: "No valid scopes requested"
107
+ }
108
+ };
109
+ const code = generateCodeVerifier();
110
+ const codeHash = hashApiToken(code);
111
+ await db.insertInto("_dineway_authorization_codes").values({
112
+ code_hash: codeHash,
113
+ client_id: params.client_id,
114
+ redirect_uri: params.redirect_uri,
115
+ user_id: userId,
116
+ scopes: JSON.stringify(scopes),
117
+ code_challenge: params.code_challenge,
118
+ code_challenge_method: params.code_challenge_method,
119
+ resource: params.resource ?? null,
120
+ expires_at: expiresAt(AUTH_CODE_TTL_SECONDS)
121
+ }).execute();
122
+ const redirectUrl = new URL(params.redirect_uri);
123
+ redirectUrl.searchParams.set("code", code);
124
+ if (params.state) redirectUrl.searchParams.set("state", params.state);
125
+ return {
126
+ success: true,
127
+ data: { redirect_url: redirectUrl.toString() }
128
+ };
129
+ } catch (error) {
130
+ console.error("Authorization error:", error);
131
+ return {
132
+ success: false,
133
+ error: {
134
+ code: "AUTHORIZATION_ERROR",
135
+ message: "Failed to process authorization"
136
+ }
137
+ };
138
+ }
139
+ }
140
+ /**
141
+ * Exchange an authorization code for access + refresh tokens.
142
+ *
143
+ * Validates the code, verifies PKCE, and issues tokens using the same
144
+ * infrastructure as the device flow (ec_oat_*, ec_ort_*).
145
+ */
146
+ async function handleAuthorizationCodeExchange(db, params) {
147
+ try {
148
+ if (params.grant_type !== "authorization_code") return {
149
+ success: false,
150
+ error: {
151
+ code: "unsupported_grant_type",
152
+ message: "Invalid grant_type"
153
+ }
154
+ };
155
+ const codeHash = hashApiToken(params.code);
156
+ const row = await db.deleteFrom("_dineway_authorization_codes").where("code_hash", "=", codeHash).returningAll().executeTakeFirst();
157
+ if (!row) return {
158
+ success: false,
159
+ error: {
160
+ code: "invalid_grant",
161
+ message: "Invalid authorization code"
162
+ }
163
+ };
164
+ if (new Date(row.expires_at) < /* @__PURE__ */ new Date()) return {
165
+ success: false,
166
+ error: {
167
+ code: "invalid_grant",
168
+ message: "Authorization code expired"
169
+ }
170
+ };
171
+ if (row.redirect_uri !== params.redirect_uri) return {
172
+ success: false,
173
+ error: {
174
+ code: "invalid_grant",
175
+ message: "redirect_uri mismatch"
176
+ }
177
+ };
178
+ if (row.client_id !== params.client_id) return {
179
+ success: false,
180
+ error: {
181
+ code: "invalid_grant",
182
+ message: "client_id mismatch"
183
+ }
184
+ };
185
+ if (!secureCompare(computeS256Challenge(params.code_verifier), row.code_challenge)) return {
186
+ success: false,
187
+ error: {
188
+ code: "invalid_grant",
189
+ message: "PKCE verification failed"
190
+ }
191
+ };
192
+ if (row.resource && params.resource && row.resource !== params.resource) return {
193
+ success: false,
194
+ error: {
195
+ code: "invalid_grant",
196
+ message: "resource mismatch"
197
+ }
198
+ };
199
+ const userInfo = await lookupUserRoleAndStatus(db, row.user_id);
200
+ if (!userInfo) return {
201
+ success: false,
202
+ error: {
203
+ code: "invalid_grant",
204
+ message: "User not found"
205
+ }
206
+ };
207
+ if (userInfo.disabled) return {
208
+ success: false,
209
+ error: {
210
+ code: "invalid_grant",
211
+ message: "User account is disabled"
212
+ }
213
+ };
214
+ let scopes = clampScopes(filterExperimentalSiteContextWorkflowScopes(JSON.parse(row.scopes)), userInfo.role, { includeExperimental: experimentalSiteContextWorkflowsEnabled() });
215
+ const client = await lookupOAuthClient(db, row.client_id);
216
+ if (client?.scopes?.length) scopes = scopes.filter((scope) => client.scopes.includes(scope));
217
+ if (scopes.length === 0) return {
218
+ success: false,
219
+ error: {
220
+ code: "invalid_grant",
221
+ message: "User role no longer supports any of the requested scopes"
222
+ }
223
+ };
224
+ const accessToken = generatePrefixedToken(TOKEN_PREFIXES.OAUTH_ACCESS);
225
+ const accessExpires = expiresAt(ACCESS_TOKEN_TTL_SECONDS);
226
+ const refreshToken = generatePrefixedToken(TOKEN_PREFIXES.OAUTH_REFRESH);
227
+ const refreshExpires = expiresAt(REFRESH_TOKEN_TTL_SECONDS);
228
+ await withTransaction(db, async (trx) => {
229
+ await trx.insertInto("_dineway_oauth_tokens").values({
230
+ token_hash: accessToken.hash,
231
+ token_type: "access",
232
+ user_id: row.user_id,
233
+ scopes: JSON.stringify(scopes),
234
+ client_type: "mcp",
235
+ expires_at: accessExpires,
236
+ refresh_token_hash: refreshToken.hash,
237
+ client_id: row.client_id
238
+ }).execute();
239
+ await trx.insertInto("_dineway_oauth_tokens").values({
240
+ token_hash: refreshToken.hash,
241
+ token_type: "refresh",
242
+ user_id: row.user_id,
243
+ scopes: JSON.stringify(scopes),
244
+ client_type: "mcp",
245
+ expires_at: refreshExpires,
246
+ refresh_token_hash: null,
247
+ client_id: row.client_id
248
+ }).execute();
249
+ });
250
+ return {
251
+ success: true,
252
+ data: {
253
+ access_token: accessToken.raw,
254
+ refresh_token: refreshToken.raw,
255
+ token_type: "Bearer",
256
+ expires_in: ACCESS_TOKEN_TTL_SECONDS,
257
+ scope: scopes.join(" ")
258
+ }
259
+ };
260
+ } catch (error) {
261
+ console.error("Token exchange error:", error);
262
+ return {
263
+ success: false,
264
+ error: {
265
+ code: "TOKEN_EXCHANGE_ERROR",
266
+ message: "Failed to exchange authorization code"
267
+ }
268
+ };
269
+ }
270
+ }
271
+ /**
272
+ * Build the authorization denied redirect URL.
273
+ */
274
+ function buildDeniedRedirect(redirectUri, state) {
275
+ const url = new URL(redirectUri);
276
+ url.searchParams.set("error", "access_denied");
277
+ url.searchParams.set("error_description", "The user denied the authorization request");
278
+ if (state) url.searchParams.set("state", state);
279
+ return url.toString();
280
+ }
281
+
282
+ //#endregion
283
+ export { handleAuthorizationApproval as n, handleAuthorizationCodeExchange as r, buildDeniedRedirect as t };
@@ -0,0 +1,298 @@
1
+ import { o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-DldxJlqV.mjs";
2
+ import { o as validateScopes } from "./api-tokens-DzloJxuh.mjs";
3
+
4
+ //#region src/api/oauth/redirect-uri.ts
5
+ /**
6
+ * Validate a redirect URI per OAuth 2.1 security requirements.
7
+ *
8
+ * Allows localhost / loopback redirect URIs over HTTP for native clients,
9
+ * and any HTTPS URL for web-based flows.
10
+ */
11
+ function validateRedirectUri(uri) {
12
+ try {
13
+ const url = new URL(uri);
14
+ if (uri.startsWith("//")) return "Protocol-relative redirect URIs are not allowed";
15
+ if (url.protocol === "http:") {
16
+ const host = url.hostname;
17
+ if (host === "127.0.0.1" || host === "localhost" || host === "[::1]") return null;
18
+ return "HTTP redirect URIs are only allowed for localhost";
19
+ }
20
+ if (url.protocol === "https:") return null;
21
+ return `Unsupported redirect URI scheme: ${url.protocol}`;
22
+ } catch {
23
+ return "Invalid redirect URI";
24
+ }
25
+ }
26
+
27
+ //#endregion
28
+ //#region src/api/handlers/oauth-clients.ts
29
+ /** Parse a JSON string column into a typed value. */
30
+ function parseJsonColumn(value) {
31
+ return JSON.parse(value);
32
+ }
33
+ function validateRegisteredRedirectUris(redirectUris) {
34
+ for (const redirectUri of redirectUris) {
35
+ const error = validateRedirectUri(redirectUri);
36
+ if (error) return `Invalid redirect URI: ${error}`;
37
+ }
38
+ return null;
39
+ }
40
+ function validateClientScopes(scopes) {
41
+ if (scopes === void 0 || scopes === null) return null;
42
+ const invalidScopes = validateScopes(scopes, { includeExperimental: true });
43
+ if (invalidScopes.length > 0) return {
44
+ success: false,
45
+ error: {
46
+ code: "VALIDATION_ERROR",
47
+ message: "OAuth client scopes contain invalid values",
48
+ details: { scopes: invalidScopes }
49
+ }
50
+ };
51
+ const requestedWorkflowScopes = disabledExperimentalSiteContextWorkflowScopes(scopes);
52
+ if (requestedWorkflowScopes.length > 0) return {
53
+ success: false,
54
+ error: {
55
+ code: "NOT_IMPLEMENTED",
56
+ message: getExperimentalSiteContextWorkflowScopesDisabledMessage(),
57
+ details: {
58
+ status: "workflow_oauth_client_scopes_disabled",
59
+ reason: "workflow_oauth_client_scopes_disabled",
60
+ scopes: requestedWorkflowScopes
61
+ }
62
+ }
63
+ };
64
+ return null;
65
+ }
66
+ /**
67
+ * Create a new OAuth client.
68
+ */
69
+ async function handleOAuthClientCreate(db, input) {
70
+ try {
71
+ if (input.redirectUris.length === 0) return {
72
+ success: false,
73
+ error: {
74
+ code: "VALIDATION_ERROR",
75
+ message: "At least one redirect URI is required"
76
+ }
77
+ };
78
+ const redirectUriError = validateRegisteredRedirectUris(input.redirectUris);
79
+ if (redirectUriError) return {
80
+ success: false,
81
+ error: {
82
+ code: "VALIDATION_ERROR",
83
+ message: redirectUriError
84
+ }
85
+ };
86
+ const scopeError = validateClientScopes(input.scopes);
87
+ if (scopeError) return scopeError;
88
+ if (await db.selectFrom("_dineway_oauth_clients").select("id").where("id", "=", input.id).executeTakeFirst()) return {
89
+ success: false,
90
+ error: {
91
+ code: "CONFLICT",
92
+ message: "OAuth client with this ID already exists"
93
+ }
94
+ };
95
+ const now = (/* @__PURE__ */ new Date()).toISOString();
96
+ await db.insertInto("_dineway_oauth_clients").values({
97
+ id: input.id,
98
+ name: input.name,
99
+ redirect_uris: JSON.stringify(input.redirectUris),
100
+ scopes: input.scopes ? JSON.stringify(input.scopes) : null
101
+ }).execute();
102
+ return {
103
+ success: true,
104
+ data: {
105
+ id: input.id,
106
+ name: input.name,
107
+ redirectUris: input.redirectUris,
108
+ scopes: input.scopes ?? null,
109
+ createdAt: now,
110
+ updatedAt: now
111
+ }
112
+ };
113
+ } catch {
114
+ return {
115
+ success: false,
116
+ error: {
117
+ code: "CLIENT_CREATE_ERROR",
118
+ message: "Failed to create OAuth client"
119
+ }
120
+ };
121
+ }
122
+ }
123
+ /**
124
+ * List all registered OAuth clients.
125
+ */
126
+ async function handleOAuthClientList(db) {
127
+ try {
128
+ return {
129
+ success: true,
130
+ data: { items: (await db.selectFrom("_dineway_oauth_clients").selectAll().orderBy("created_at", "desc").execute()).map((row) => ({
131
+ id: row.id,
132
+ name: row.name,
133
+ redirectUris: parseJsonColumn(row.redirect_uris),
134
+ scopes: row.scopes ? parseJsonColumn(row.scopes) : null,
135
+ createdAt: row.created_at,
136
+ updatedAt: row.updated_at
137
+ })) }
138
+ };
139
+ } catch {
140
+ return {
141
+ success: false,
142
+ error: {
143
+ code: "CLIENT_LIST_ERROR",
144
+ message: "Failed to list OAuth clients"
145
+ }
146
+ };
147
+ }
148
+ }
149
+ /**
150
+ * Get a single OAuth client by ID.
151
+ */
152
+ async function handleOAuthClientGet(db, clientId) {
153
+ try {
154
+ const row = await db.selectFrom("_dineway_oauth_clients").selectAll().where("id", "=", clientId).executeTakeFirst();
155
+ if (!row) return {
156
+ success: false,
157
+ error: {
158
+ code: "NOT_FOUND",
159
+ message: "OAuth client not found"
160
+ }
161
+ };
162
+ return {
163
+ success: true,
164
+ data: {
165
+ id: row.id,
166
+ name: row.name,
167
+ redirectUris: parseJsonColumn(row.redirect_uris),
168
+ scopes: row.scopes ? parseJsonColumn(row.scopes) : null,
169
+ createdAt: row.created_at,
170
+ updatedAt: row.updated_at
171
+ }
172
+ };
173
+ } catch {
174
+ return {
175
+ success: false,
176
+ error: {
177
+ code: "CLIENT_GET_ERROR",
178
+ message: "Failed to get OAuth client"
179
+ }
180
+ };
181
+ }
182
+ }
183
+ /**
184
+ * Update an OAuth client.
185
+ */
186
+ async function handleOAuthClientUpdate(db, clientId, input) {
187
+ try {
188
+ if (!await db.selectFrom("_dineway_oauth_clients").selectAll().where("id", "=", clientId).executeTakeFirst()) return {
189
+ success: false,
190
+ error: {
191
+ code: "NOT_FOUND",
192
+ message: "OAuth client not found"
193
+ }
194
+ };
195
+ if (input.redirectUris !== void 0 && input.redirectUris.length === 0) return {
196
+ success: false,
197
+ error: {
198
+ code: "VALIDATION_ERROR",
199
+ message: "At least one redirect URI is required"
200
+ }
201
+ };
202
+ if (input.redirectUris !== void 0) {
203
+ const redirectUriError = validateRegisteredRedirectUris(input.redirectUris);
204
+ if (redirectUriError) return {
205
+ success: false,
206
+ error: {
207
+ code: "VALIDATION_ERROR",
208
+ message: redirectUriError
209
+ }
210
+ };
211
+ }
212
+ const scopeError = validateClientScopes(input.scopes);
213
+ if (scopeError) return scopeError;
214
+ const updates = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
215
+ if (input.name !== void 0) updates.name = input.name;
216
+ if (input.redirectUris !== void 0) updates.redirect_uris = JSON.stringify(input.redirectUris);
217
+ if (input.scopes !== void 0) updates.scopes = input.scopes ? JSON.stringify(input.scopes) : null;
218
+ await db.updateTable("_dineway_oauth_clients").set(updates).where("id", "=", clientId).execute();
219
+ const updated = await db.selectFrom("_dineway_oauth_clients").selectAll().where("id", "=", clientId).executeTakeFirst();
220
+ if (!updated) return {
221
+ success: false,
222
+ error: {
223
+ code: "NOT_FOUND",
224
+ message: "OAuth client not found after update"
225
+ }
226
+ };
227
+ return {
228
+ success: true,
229
+ data: {
230
+ id: updated.id,
231
+ name: updated.name,
232
+ redirectUris: parseJsonColumn(updated.redirect_uris),
233
+ scopes: updated.scopes ? parseJsonColumn(updated.scopes) : null,
234
+ createdAt: updated.created_at,
235
+ updatedAt: updated.updated_at
236
+ }
237
+ };
238
+ } catch {
239
+ return {
240
+ success: false,
241
+ error: {
242
+ code: "CLIENT_UPDATE_ERROR",
243
+ message: "Failed to update OAuth client"
244
+ }
245
+ };
246
+ }
247
+ }
248
+ /**
249
+ * Delete an OAuth client.
250
+ */
251
+ async function handleOAuthClientDelete(db, clientId) {
252
+ try {
253
+ if ((await db.deleteFrom("_dineway_oauth_clients").where("id", "=", clientId).executeTakeFirst()).numDeletedRows === 0n) return {
254
+ success: false,
255
+ error: {
256
+ code: "NOT_FOUND",
257
+ message: "OAuth client not found"
258
+ }
259
+ };
260
+ return {
261
+ success: true,
262
+ data: { deleted: true }
263
+ };
264
+ } catch {
265
+ return {
266
+ success: false,
267
+ error: {
268
+ code: "CLIENT_DELETE_ERROR",
269
+ message: "Failed to delete OAuth client"
270
+ }
271
+ };
272
+ }
273
+ }
274
+ /**
275
+ * Look up a registered OAuth client by ID.
276
+ * Returns the client's redirect URIs or null if the client is not registered.
277
+ */
278
+ async function lookupOAuthClient(db, clientId) {
279
+ const row = await db.selectFrom("_dineway_oauth_clients").select(["redirect_uris", "scopes"]).where("id", "=", clientId).executeTakeFirst();
280
+ if (!row) return null;
281
+ return {
282
+ redirectUris: parseJsonColumn(row.redirect_uris),
283
+ scopes: row.scopes ? parseJsonColumn(row.scopes) : null
284
+ };
285
+ }
286
+ /**
287
+ * Validate that a redirect URI is in the client's registered set.
288
+ *
289
+ * Comparison is exact string match (per RFC 6749 §3.1.2.3).
290
+ * Returns null if valid, or an error message if not.
291
+ */
292
+ function validateClientRedirectUri(redirectUri, allowedUris) {
293
+ if (allowedUris.includes(redirectUri)) return null;
294
+ return "redirect_uri is not registered for this client";
295
+ }
296
+
297
+ //#endregion
298
+ export { handleOAuthClientUpdate as a, validateRedirectUri as c, handleOAuthClientList as i, handleOAuthClientDelete as n, lookupOAuthClient as o, handleOAuthClientGet as r, validateClientRedirectUri as s, handleOAuthClientCreate as t };