dineway 0.1.9 → 0.1.12

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 (720) hide show
  1. package/README.md +63 -17
  2. package/dist/activity-events-B4wp7CrU.mjs +540 -0
  3. package/dist/allowed-origins-C1AKK9AT.mjs +68 -0
  4. package/dist/api/route-utils.d.mts +42 -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-BR7Y0GBo.mjs +2704 -0
  11. package/dist/api-tokens-CPjC3zf8.mjs +3 -0
  12. package/dist/api-tokens-D7UjLbdt.mjs +153 -0
  13. package/dist/{apply-iVSqz2qs.mjs → apply-Bm5QgdrE.mjs} +15 -689
  14. package/dist/astro/index.d.mts +11 -6
  15. package/dist/astro/index.mjs +86 -11
  16. package/dist/astro/middleware/auth.d.mts +11 -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 +88 -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 +46 -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 +46 -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 +61 -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 +64 -0
  56. package/dist/astro/routes/api/admin/context/diff.d.mts +7 -0
  57. package/dist/astro/routes/api/admin/context/diff.mjs +50 -0
  58. package/dist/astro/routes/api/admin/context/index.d.mts +8 -0
  59. package/dist/astro/routes/api/admin/context/index.mjs +72 -0
  60. package/dist/astro/routes/api/admin/context/stale.d.mts +7 -0
  61. package/dist/astro/routes/api/admin/context/stale.mjs +50 -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 +52 -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 +68 -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 +56 -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 +99 -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 +90 -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 +90 -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 +55 -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 +99 -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 +132 -0
  86. package/dist/astro/routes/api/admin/plugins/index.d.mts +7 -0
  87. package/dist/astro/routes/api/admin/plugins/index.mjs +53 -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 +55 -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 +129 -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 +62 -0
  96. package/dist/astro/routes/api/admin/plugins/updates.d.mts +7 -0
  97. package/dist/astro/routes/api/admin/plugins/updates.mjs +53 -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 +98 -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 +55 -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 +71 -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 +93 -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 +198 -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 +156 -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 +290 -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 +269 -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 +2701 -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/dist/astro/routes/api/menus/_name_/items.mjs +165 -0
  240. package/dist/astro/routes/api/menus/_name_/reorder.d.mts +7 -0
  241. package/dist/astro/routes/api/menus/_name_/reorder.mjs +78 -0
  242. package/dist/astro/routes/api/menus/_name_.d.mts +9 -0
  243. package/dist/astro/routes/api/menus/_name_.mjs +124 -0
  244. package/dist/astro/routes/api/menus/index.d.mts +8 -0
  245. package/dist/astro/routes/api/menus/index.mjs +85 -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 +153 -0
  272. package/dist/astro/routes/api/redirects/index.d.mts +8 -0
  273. package/dist/astro/routes/api/redirects/index.mjs +98 -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 +99 -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 +81 -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 +68 -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 +98 -0
  286. package/dist/astro/routes/api/schema/collections/index.d.mts +8 -0
  287. package/dist/astro/routes/api/schema/collections/index.mjs +78 -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 +59 -0
  292. package/dist/astro/routes/api/schema/orphans/index.d.mts +7 -0
  293. package/dist/astro/routes/api/schema/orphans/index.mjs +54 -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 +157 -0
  306. package/dist/astro/routes/api/sections/index.d.mts +8 -0
  307. package/dist/astro/routes/api/sections/index.mjs +100 -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 +102 -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 +190 -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 +114 -0
  330. package/dist/astro/routes/api/taxonomies/index.d.mts +14 -0
  331. package/dist/astro/routes/api/taxonomies/index.mjs +104 -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 +89 -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 +159 -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 +105 -0
  348. package/dist/astro/routes/api/widget-areas/_name_.d.mts +8 -0
  349. package/dist/astro/routes/api/widget-areas/_name_.mjs +100 -0
  350. package/dist/astro/routes/api/widget-areas/index.d.mts +8 -0
  351. package/dist/astro/routes/api/widget-areas/index.mjs +109 -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 +42 -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-DOZ3UCsP.mjs +13 -0
  370. package/dist/authorize-BAdbMCwC.mjs +36 -0
  371. package/dist/briefing-MVYe_Uyf.mjs +1294 -0
  372. package/dist/briefing-rty4O-wa.mjs +29 -0
  373. package/dist/{byline-OhH2dlRu.mjs → byline-naZxOPSa.mjs} +3 -3
  374. package/dist/{bylines-BGpD9_hy.mjs → bylines-C4LIBOOO.mjs} +20 -53
  375. package/dist/bylines-eVVCuOe4.d.mts +2023 -0
  376. package/dist/{cache-BdSY-gQN.mjs → cache-DEbQ13c9.mjs} +21 -11
  377. package/dist/challenge-store-DDTbisbf.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--BsZ9pqA.mjs +186 -0
  384. package/dist/components-BPknylYg.mjs +107 -0
  385. package/dist/{content-DWi4d0rT.mjs → content-CyLkb-qH.mjs} +33 -44
  386. package/dist/context-CNIkMzot.mjs +849 -0
  387. package/dist/context-DNfcm853.mjs +184 -0
  388. package/dist/context-route-helpers-MurhoxWF.mjs +45 -0
  389. package/dist/context-types-C-LwdAxx.mjs +23 -0
  390. package/dist/cron-CKxvBrRT.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-BGEH5jfn.mjs +487 -0
  399. package/dist/email-console-CuefUXfX.mjs +36 -0
  400. package/dist/entity-aliases-C0v-yNET.mjs +51 -0
  401. package/dist/error-BMUPwxgx.mjs +435 -0
  402. package/dist/escape-BRVaw1Ai.mjs +8 -0
  403. package/dist/experimental-workflows-C9X7yblQ.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-ChT32Ilo.mjs +118 -0
  407. package/dist/hitl-route-helpers-CSit54Ru.mjs +96 -0
  408. package/dist/import-BHRLhXAn.mjs +1323 -0
  409. package/dist/import-CNcKWTbp.mjs +243 -0
  410. package/dist/index-CYfhYgXd.d.mts +227 -0
  411. package/dist/index-EUAWaIxW.d.mts +835 -0
  412. package/dist/index.d.mts +17 -11
  413. package/dist/index.mjs +63 -22
  414. package/dist/jsonld-D2gUY4kA.d.mts +141 -0
  415. package/dist/{loader-sMG4TZ-u.mjs → loader-PZnPxFLc.mjs} +42 -5
  416. package/dist/{manifest-schema-D1MSVnoI.mjs → manifest-schema-CgFJAp0H.mjs} +22 -10
  417. package/dist/media/index.d.mts +2 -1
  418. package/dist/media/index.mjs +2 -1
  419. package/dist/media/local-runtime.d.mts +12 -7
  420. package/dist/media/local-runtime.mjs +3 -3
  421. package/dist/{media-DMTr80Gv.mjs → media-_7Fxdu45.mjs} +1 -1
  422. package/dist/menus-DS3_5nWY.mjs +312 -0
  423. package/dist/menus-DYW_UHjv.mjs +256 -0
  424. package/dist/normalize-C49G_o1k.mjs +126 -0
  425. package/dist/oauth-authorization-DxGjiWKL.mjs +283 -0
  426. package/dist/oauth-clients-DxO_NO7k.mjs +298 -0
  427. package/dist/oauth-state-store-C5UFhzwD.mjs +48 -0
  428. package/dist/oauth-user-lookup-Bi0ek9eM.mjs +25 -0
  429. package/dist/options-z8VVg1Ll.mjs +114 -0
  430. package/dist/page/index.d.mts +2 -139
  431. package/dist/page/index.mjs +1 -427
  432. package/dist/parse-C9106ehs.mjs +88 -0
  433. package/dist/passkey-config-BRSZx4pW.mjs +42 -0
  434. package/dist/{patterns-CrCYkMBb.mjs → patterns-K0DLqWir.mjs} +53 -1
  435. package/dist/placeholder-Bh1dfUOd.d.mts +40 -0
  436. package/dist/{placeholder-Cp8g5Emj.mjs → placeholder-C2P5fKa4.mjs} +1 -126
  437. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -5
  438. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  439. package/dist/plugins-D7-ILNib.mjs +3249 -0
  440. package/dist/preview-DvYRU-Oy.mjs +788 -0
  441. package/dist/provider-loader-BiQ6lNmf.d.mts +20 -0
  442. package/dist/provider-loader-C21b9OpH.mjs +36 -0
  443. package/dist/public-url-Cun8N3NU.mjs +71 -0
  444. package/dist/{query-kDmwCsHh.mjs → query-B9BO5goQ.mjs} +93 -19
  445. package/dist/query-CsbOywSY.mjs +35 -0
  446. package/dist/rate-limit-DmVTHI5v.mjs +112 -0
  447. package/dist/{redirect-DnEWAkVg.mjs → redirect-CGl64yOX.mjs} +9 -5
  448. package/dist/redirect-COZy-3iY.mjs +16 -0
  449. package/dist/redirects-Cgi_cZfN.mjs +499 -0
  450. package/dist/redirects-lrlmYXVE.mjs +1023 -0
  451. package/dist/{registry-C0zjeB9P.mjs → registry-C-_hxLqa.mjs} +26 -294
  452. package/dist/request-meta-DixlNKKa.mjs +130 -0
  453. package/dist/review-requests-C2DIHwlJ.mjs +148 -0
  454. package/dist/review-requests-DIyjw-K_.mjs +79 -0
  455. package/dist/{runner-CFI6B6J2.d.mts → runner-BU6Lo1ZS.d.mts} +1 -1
  456. package/dist/{index-yvc6E_17.d.mts → runtime-Db4LbNVZ.d.mts} +1188 -2484
  457. package/dist/runtime.d.mts +11 -24
  458. package/dist/runtime.mjs +4 -38
  459. package/dist/schema-BECjUhP8.mjs +8 -0
  460. package/dist/search-DqTHQqtV.mjs +337 -0
  461. package/dist/secrets-CkoJ9zN0.mjs +160 -0
  462. package/dist/sections-B61OxnfB.mjs +338 -0
  463. package/dist/seed/index.d.mts +2 -2
  464. package/dist/seed/index.mjs +18 -13
  465. package/dist/seo/index.d.mts +1 -1
  466. package/dist/seo-C007Luwn.mjs +85 -0
  467. package/dist/seo-CUQctrog.mjs +129 -0
  468. package/dist/seo-contributions-B1fWCnqY.mjs +429 -0
  469. package/dist/service-CyOsm0R6.mjs +194 -0
  470. package/dist/settings-DGtLLSaz.mjs +237 -0
  471. package/dist/settings-Dzgswvg4.mjs +50 -0
  472. package/dist/setup-complete-ChilE-da.mjs +21 -0
  473. package/dist/setup-nonce-BpmLXAuu.mjs +17 -0
  474. package/dist/sidecar-client-B1C6Cf80.mjs +66 -0
  475. package/dist/site-activity-B8FjLIVh.mjs +104 -0
  476. package/dist/site-context-WBxoD99D.mjs +4122 -0
  477. package/dist/site-url-BP7k7OCe.mjs +12 -0
  478. package/dist/slugify-PDTDtMXp.mjs +30 -0
  479. package/dist/ssrf-DDwRxF6B.mjs +248 -0
  480. package/dist/storage/local.d.mts +1 -1
  481. package/dist/storage/local.mjs +1 -1
  482. package/dist/storage/s3.d.mts +1 -1
  483. package/dist/storage/s3.mjs +2 -2
  484. package/dist/{taxonomies-1s5PaS_8.mjs → taxonomies-D2aZGuns.mjs} +11 -7
  485. package/dist/taxonomies-z6Lz91BC.mjs +355 -0
  486. package/dist/taxonomy-D5cbhc8u.mjs +165 -0
  487. package/dist/{tokens-CJz9ubV6.mjs → tokens-BOJw-D9F.mjs} +1 -1
  488. package/dist/{transport-DB5eDN4x.mjs → transport-D3i4yWRE.mjs} +5 -4
  489. package/dist/trusted-proxy-BbaZfkT9.mjs +30 -0
  490. package/dist/types-0Vr68fc2.d.mts +344 -0
  491. package/dist/types-BFmjniC2.d.mts +165 -0
  492. package/dist/{types-BawVha09.mjs → types-Bs6lTBBW.mjs} +1 -1
  493. package/dist/{types-BuMDPy5C.d.mts → types-C0mmVRJN.d.mts} +6 -0
  494. package/dist/{placeholder--wOi4TbO.d.mts → types-OPs5Q_sX.d.mts} +1 -38
  495. package/dist/{types-Cj0KMIZV.d.mts → types-Q616b2Hn.d.mts} +54 -16
  496. package/dist/ui/client-runtime.d.mts +12 -0
  497. package/dist/ui/client-runtime.mjs +32 -0
  498. package/dist/ui/server-runtime.d.mts +33 -0
  499. package/dist/ui/server-runtime.mjs +80 -0
  500. package/dist/url-DNjT2abR.mjs +49 -0
  501. package/dist/user-CcXq-zoL.mjs +154 -0
  502. package/dist/utils-C0ONdBul.mjs +285 -0
  503. package/dist/{validate-IPf8n4Fj.d.mts → validate-BwmQEbu8.d.mts} +3 -3
  504. package/dist/{validate-BZ5wnLLp.mjs → validate-C7TzfamJ.mjs} +1 -1
  505. package/dist/version-D3vDb22n.mjs +6 -0
  506. package/dist/widgets-B7DRpZvy.mjs +104 -0
  507. package/dist/wordpress-slugs-CnporCYH.mjs +14 -0
  508. package/dist/zod-generator-DBVP8D0P.mjs +132 -0
  509. package/locals.d.ts +1 -6
  510. package/package.json +81 -11
  511. package/src/components/Button.astro +1 -1
  512. package/src/components/CommentForm.astro +1 -1
  513. package/src/components/Comments.astro +1 -3
  514. package/src/components/DinewayBodyEnd.astro +5 -3
  515. package/src/components/DinewayBodyStart.astro +5 -3
  516. package/src/components/DinewayHead.astro +15 -9
  517. package/src/components/DinewayImage.astro +12 -8
  518. package/src/components/DinewayMedia.astro +15 -6
  519. package/src/components/Embed.astro +1 -2
  520. package/src/components/File.astro +1 -1
  521. package/src/components/Gallery.astro +5 -3
  522. package/src/components/HtmlBlock.astro +1 -1
  523. package/src/components/Image.astro +9 -3
  524. package/src/components/InlinePortableTextEditor.tsx +69 -20
  525. package/src/components/PortableText.astro +1 -1
  526. package/src/components/WidgetArea.astro +1 -1
  527. package/src/components/WidgetRenderer.astro +1 -3
  528. package/src/components/marks/Link.astro +1 -1
  529. package/src/components/widgets/Archives.astro +1 -1
  530. package/src/components/widgets/Categories.astro +1 -1
  531. package/src/components/widgets/RecentPosts.astro +1 -1
  532. package/src/components/widgets/Tags.astro +1 -1
  533. package/dist/error-BmL6QipT.mjs +0 -30
  534. package/dist/search-DxopAWxs.mjs +0 -11200
  535. package/dist/version-BPz1imu2.mjs +0 -6
  536. package/src/astro/routes/PluginRegistry.tsx +0 -21
  537. package/src/astro/routes/api/admin/allowed-domains/[domain].ts +0 -112
  538. package/src/astro/routes/api/admin/allowed-domains/index.ts +0 -108
  539. package/src/astro/routes/api/admin/api-tokens/[id].ts +0 -44
  540. package/src/astro/routes/api/admin/api-tokens/index.ts +0 -90
  541. package/src/astro/routes/api/admin/briefing.ts +0 -76
  542. package/src/astro/routes/api/admin/bylines/[id]/index.ts +0 -90
  543. package/src/astro/routes/api/admin/bylines/index.ts +0 -74
  544. package/src/astro/routes/api/admin/comments/[id]/status.ts +0 -120
  545. package/src/astro/routes/api/admin/comments/[id].ts +0 -64
  546. package/src/astro/routes/api/admin/comments/bulk.ts +0 -42
  547. package/src/astro/routes/api/admin/comments/counts.ts +0 -30
  548. package/src/astro/routes/api/admin/comments/index.ts +0 -46
  549. package/src/astro/routes/api/admin/context/[id]/history.ts +0 -35
  550. package/src/astro/routes/api/admin/context/[id]/index.ts +0 -35
  551. package/src/astro/routes/api/admin/context/[id]/review.ts +0 -57
  552. package/src/astro/routes/api/admin/context/[id]/supersede.ts +0 -58
  553. package/src/astro/routes/api/admin/context/diff.ts +0 -35
  554. package/src/astro/routes/api/admin/context/index.ts +0 -69
  555. package/src/astro/routes/api/admin/context/stale.ts +0 -35
  556. package/src/astro/routes/api/admin/hitl-requests/[id]/index.ts +0 -38
  557. package/src/astro/routes/api/admin/hitl-requests/[id]/resolve.ts +0 -54
  558. package/src/astro/routes/api/admin/hitl-requests/index.ts +0 -38
  559. package/src/astro/routes/api/admin/hooks/exclusive/[hookName].ts +0 -132
  560. package/src/astro/routes/api/admin/hooks/exclusive/index.ts +0 -51
  561. package/src/astro/routes/api/admin/oauth-clients/[id].ts +0 -137
  562. package/src/astro/routes/api/admin/oauth-clients/index.ts +0 -95
  563. package/src/astro/routes/api/admin/plugins/[id]/disable.ts +0 -91
  564. package/src/astro/routes/api/admin/plugins/[id]/enable.ts +0 -91
  565. package/src/astro/routes/api/admin/plugins/[id]/index.ts +0 -38
  566. package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +0 -98
  567. package/src/astro/routes/api/admin/plugins/[id]/update.ts +0 -154
  568. package/src/astro/routes/api/admin/plugins/index.ts +0 -32
  569. package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +0 -62
  570. package/src/astro/routes/api/admin/plugins/marketplace/[id]/index.ts +0 -33
  571. package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +0 -135
  572. package/src/astro/routes/api/admin/plugins/marketplace/index.ts +0 -38
  573. package/src/astro/routes/api/admin/plugins/updates.ts +0 -28
  574. package/src/astro/routes/api/admin/review-requests/[id]/index.ts +0 -35
  575. package/src/astro/routes/api/admin/review-requests/[id]/resolve.ts +0 -52
  576. package/src/astro/routes/api/admin/review-requests/index.ts +0 -35
  577. package/src/astro/routes/api/admin/themes/marketplace/[id]/index.ts +0 -33
  578. package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +0 -62
  579. package/src/astro/routes/api/admin/themes/marketplace/index.ts +0 -45
  580. package/src/astro/routes/api/admin/users/[id]/disable.ts +0 -72
  581. package/src/astro/routes/api/admin/users/[id]/enable.ts +0 -48
  582. package/src/astro/routes/api/admin/users/[id]/index.ts +0 -166
  583. package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +0 -72
  584. package/src/astro/routes/api/admin/users/index.ts +0 -66
  585. package/src/astro/routes/api/auth/dev-bypass.ts +0 -139
  586. package/src/astro/routes/api/auth/invite/accept.ts +0 -52
  587. package/src/astro/routes/api/auth/invite/complete.ts +0 -86
  588. package/src/astro/routes/api/auth/invite/index.ts +0 -99
  589. package/src/astro/routes/api/auth/invite/register-options.ts +0 -73
  590. package/src/astro/routes/api/auth/logout.ts +0 -40
  591. package/src/astro/routes/api/auth/magic-link/send.ts +0 -90
  592. package/src/astro/routes/api/auth/magic-link/verify.ts +0 -71
  593. package/src/astro/routes/api/auth/me.ts +0 -60
  594. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +0 -221
  595. package/src/astro/routes/api/auth/oauth/[provider].ts +0 -120
  596. package/src/astro/routes/api/auth/passkey/[id].ts +0 -124
  597. package/src/astro/routes/api/auth/passkey/index.ts +0 -54
  598. package/src/astro/routes/api/auth/passkey/options.ts +0 -85
  599. package/src/astro/routes/api/auth/passkey/register/options.ts +0 -88
  600. package/src/astro/routes/api/auth/passkey/register/verify.ts +0 -119
  601. package/src/astro/routes/api/auth/passkey/verify.ts +0 -72
  602. package/src/astro/routes/api/auth/signup/complete.ts +0 -87
  603. package/src/astro/routes/api/auth/signup/request.ts +0 -89
  604. package/src/astro/routes/api/auth/signup/verify.ts +0 -53
  605. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +0 -310
  606. package/src/astro/routes/api/content/[collection]/[id]/compare.ts +0 -28
  607. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +0 -68
  608. package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +0 -77
  609. package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +0 -42
  610. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +0 -107
  611. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +0 -100
  612. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +0 -64
  613. package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +0 -31
  614. package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +0 -129
  615. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +0 -143
  616. package/src/astro/routes/api/content/[collection]/[id]/translations.ts +0 -50
  617. package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +0 -69
  618. package/src/astro/routes/api/content/[collection]/[id].ts +0 -173
  619. package/src/astro/routes/api/content/[collection]/index.ts +0 -103
  620. package/src/astro/routes/api/content/[collection]/trash.ts +0 -33
  621. package/src/astro/routes/api/dashboard.ts +0 -32
  622. package/src/astro/routes/api/dev/emails.ts +0 -36
  623. package/src/astro/routes/api/health.ts +0 -54
  624. package/src/astro/routes/api/import/probe.ts +0 -47
  625. package/src/astro/routes/api/import/wordpress/analyze.ts +0 -523
  626. package/src/astro/routes/api/import/wordpress/execute.ts +0 -330
  627. package/src/astro/routes/api/import/wordpress/media.ts +0 -338
  628. package/src/astro/routes/api/import/wordpress/prepare.ts +0 -212
  629. package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +0 -425
  630. package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +0 -111
  631. package/src/astro/routes/api/import/wordpress-plugin/callback.ts +0 -58
  632. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +0 -399
  633. package/src/astro/routes/api/manifest.ts +0 -75
  634. package/src/astro/routes/api/mcp.ts +0 -125
  635. package/src/astro/routes/api/media/[id]/confirm.ts +0 -93
  636. package/src/astro/routes/api/media/[id].ts +0 -145
  637. package/src/astro/routes/api/media/file/[...key].ts +0 -79
  638. package/src/astro/routes/api/media/providers/[providerId]/[itemId].ts +0 -91
  639. package/src/astro/routes/api/media/providers/[providerId]/index.ts +0 -111
  640. package/src/astro/routes/api/media/providers/index.ts +0 -30
  641. package/src/astro/routes/api/media/upload-url.ts +0 -146
  642. package/src/astro/routes/api/media.ts +0 -204
  643. package/src/astro/routes/api/menus/[name]/items.ts +0 -206
  644. package/src/astro/routes/api/menus/[name]/reorder.ts +0 -79
  645. package/src/astro/routes/api/menus/[name].ts +0 -145
  646. package/src/astro/routes/api/menus/index.ts +0 -91
  647. package/src/astro/routes/api/oauth/authorize.ts +0 -430
  648. package/src/astro/routes/api/oauth/device/authorize.ts +0 -45
  649. package/src/astro/routes/api/oauth/device/code.ts +0 -56
  650. package/src/astro/routes/api/oauth/device/token.ts +0 -70
  651. package/src/astro/routes/api/oauth/register.ts +0 -182
  652. package/src/astro/routes/api/oauth/token/refresh.ts +0 -38
  653. package/src/astro/routes/api/oauth/token/revoke.ts +0 -38
  654. package/src/astro/routes/api/oauth/token.ts +0 -195
  655. package/src/astro/routes/api/openapi.json.ts +0 -33
  656. package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +0 -109
  657. package/src/astro/routes/api/redirects/404s/index.ts +0 -72
  658. package/src/astro/routes/api/redirects/404s/summary.ts +0 -33
  659. package/src/astro/routes/api/redirects/[id].ts +0 -183
  660. package/src/astro/routes/api/redirects/index.ts +0 -100
  661. package/src/astro/routes/api/revisions/[revisionId]/index.ts +0 -29
  662. package/src/astro/routes/api/revisions/[revisionId]/restore.ts +0 -62
  663. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +0 -104
  664. package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +0 -67
  665. package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +0 -45
  666. package/src/astro/routes/api/schema/collections/[slug]/index.ts +0 -107
  667. package/src/astro/routes/api/schema/collections/index.ts +0 -61
  668. package/src/astro/routes/api/schema/index.ts +0 -109
  669. package/src/astro/routes/api/schema/orphans/[slug].ts +0 -36
  670. package/src/astro/routes/api/schema/orphans/index.ts +0 -26
  671. package/src/astro/routes/api/search/enable.ts +0 -64
  672. package/src/astro/routes/api/search/index.ts +0 -52
  673. package/src/astro/routes/api/search/rebuild.ts +0 -72
  674. package/src/astro/routes/api/search/stats.ts +0 -35
  675. package/src/astro/routes/api/search/suggest.ts +0 -50
  676. package/src/astro/routes/api/sections/[slug].ts +0 -203
  677. package/src/astro/routes/api/sections/index.ts +0 -107
  678. package/src/astro/routes/api/settings/email.ts +0 -150
  679. package/src/astro/routes/api/settings.ts +0 -116
  680. package/src/astro/routes/api/setup/admin-verify.ts +0 -122
  681. package/src/astro/routes/api/setup/admin.ts +0 -104
  682. package/src/astro/routes/api/setup/dev-bypass.ts +0 -200
  683. package/src/astro/routes/api/setup/dev-reset.ts +0 -40
  684. package/src/astro/routes/api/setup/index.ts +0 -128
  685. package/src/astro/routes/api/setup/status.ts +0 -122
  686. package/src/astro/routes/api/snapshot.ts +0 -76
  687. package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +0 -232
  688. package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +0 -131
  689. package/src/astro/routes/api/taxonomies/index.ts +0 -114
  690. package/src/astro/routes/api/themes/preview.ts +0 -78
  691. package/src/astro/routes/api/typegen.ts +0 -114
  692. package/src/astro/routes/api/well-known/auth.ts +0 -71
  693. package/src/astro/routes/api/well-known/oauth-authorization-server.ts +0 -48
  694. package/src/astro/routes/api/well-known/oauth-protected-resource.ts +0 -39
  695. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +0 -114
  696. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +0 -213
  697. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +0 -126
  698. package/src/astro/routes/api/widget-areas/[name].ts +0 -135
  699. package/src/astro/routes/api/widget-areas/index.ts +0 -149
  700. package/src/astro/routes/api/widget-components.ts +0 -22
  701. package/src/astro/routes/robots.txt.ts +0 -81
  702. package/src/astro/routes/sitemap-[collection].xml.ts +0 -104
  703. package/src/astro/routes/sitemap.xml.ts +0 -92
  704. /package/dist/{adapters-C2ypTrZZ.d.mts → adapters-DuLQZhRY.d.mts} +0 -0
  705. /package/{src → dist}/astro/routes/admin.astro +0 -0
  706. /package/dist/{base64-F8-DUraK.mjs → base64-Cz-aU0X1.mjs} +0 -0
  707. /package/dist/{chunks--4F8ddV4.mjs → chunks-D_jVet6z.mjs} +0 -0
  708. /package/dist/{config-BXwuX8Bx.mjs → config-CAMFxGaV.mjs} +0 -0
  709. /package/dist/{db-errors-CEqD7qH9.mjs → db-errors-DyZkswzF.mjs} +0 -0
  710. /package/dist/{default-VjJyuuG9.mjs → default-D4ngTpW8.mjs} +0 -0
  711. /package/dist/{load-Coc9HpHH.mjs → load-B2XtDw__.mjs} +0 -0
  712. /package/dist/{mode-47goXBBK.mjs → mode-DUhxwUhv.mjs} +0 -0
  713. /package/dist/{request-cache-Dk5qPSOx.mjs → request-cache-DHMRr2Lf.mjs} +0 -0
  714. /package/dist/{transaction-Cn2rjY78.mjs → transaction-x2tJQ-A1.mjs} +0 -0
  715. /package/dist/{transport-Wge_IzKl.d.mts → transport-BXe1AM79.d.mts} +0 -0
  716. /package/dist/{types-CWbdtiux.d.mts → types-B7kpsMJ3.d.mts} +0 -0
  717. /package/dist/{types-BzcUjoqg.d.mts → types-DJlpx5Ay.d.mts} +0 -0
  718. /package/dist/{types-COeOq9nK.mjs → types-DL7Y8D_t.mjs} +0 -0
  719. /package/dist/{types-DOrVigru.d.mts → types-DZPw8Rru.d.mts} +0 -0
  720. /package/dist/{types-griIBQOQ.mjs → types-fAInWQDO.mjs} +0 -0
@@ -1,301 +1,13 @@
1
1
  import { t as __exportAll } from "./chunk-ClPoSABd.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
- import { a as isSqlite, c as tableExists, n as currentTimestamp, s as listTablesLike } from "./dialect-helpers-DhTzaUxP.mjs";
4
- import { t as withTransaction } from "./transaction-Cn2rjY78.mjs";
5
- import { i as RESERVED_FIELD_SLUGS, n as FIELD_TYPE_TO_COLUMN, r as RESERVED_COLLECTION_SLUGS } from "./types-COeOq9nK.mjs";
3
+ import { c as tableExists, n as currentTimestamp, s as listTablesLike } from "./dialect-helpers-DhTzaUxP.mjs";
4
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-D_jVet6z.mjs";
5
+ import { t as withTransaction } from "./transaction-x2tJQ-A1.mjs";
6
+ import { t as FTSManager } from "./fts-manager-B1pTNEG_.mjs";
7
+ import { i as RESERVED_FIELD_SLUGS, n as FIELD_TYPE_TO_COLUMN, r as RESERVED_COLLECTION_SLUGS } from "./types-DL7Y8D_t.mjs";
6
8
  import { sql } from "kysely";
7
9
  import { ulid } from "ulidx";
8
10
 
9
- //#region src/search/fts-manager.ts
10
- /**
11
- * FTS5 Manager
12
- *
13
- * Handles creation, deletion, and management of FTS5 virtual tables
14
- * for full-text search on content collections.
15
- */
16
- var FTSManager = class {
17
- constructor(db) {
18
- this.db = db;
19
- }
20
- /**
21
- * Validate a collection slug and its searchable field names.
22
- * Must be called before any raw SQL interpolation.
23
- */
24
- validateInputs(collectionSlug, searchableFields) {
25
- validateIdentifier(collectionSlug, "collection slug");
26
- if (searchableFields) for (const field of searchableFields) validateIdentifier(field, "searchable field name");
27
- }
28
- /**
29
- * Get the FTS table name for a collection
30
- * Uses _dineway_ prefix to clearly mark as internal/system table
31
- */
32
- getFtsTableName(collectionSlug) {
33
- validateIdentifier(collectionSlug, "collection slug");
34
- return `_dineway_fts_${collectionSlug}`;
35
- }
36
- /**
37
- * Get the content table name for a collection
38
- */
39
- getContentTableName(collectionSlug) {
40
- validateIdentifier(collectionSlug, "collection slug");
41
- return `ec_${collectionSlug}`;
42
- }
43
- /**
44
- * Check if an FTS table exists for a collection
45
- */
46
- async ftsTableExists(collectionSlug) {
47
- const ftsTable = this.getFtsTableName(collectionSlug);
48
- return tableExists(this.db, ftsTable);
49
- }
50
- /**
51
- * Create an FTS5 virtual table for a collection.
52
- * FTS5 is SQLite-only; on other dialects this is a no-op.
53
- *
54
- * @param collectionSlug - The collection slug
55
- * @param searchableFields - Array of field names to index
56
- * @param weights - Optional field weights for ranking
57
- */
58
- async createFtsTable(collectionSlug, searchableFields, _weights) {
59
- if (!isSqlite(this.db)) return;
60
- this.validateInputs(collectionSlug, searchableFields);
61
- const ftsTable = this.getFtsTableName(collectionSlug);
62
- const contentTable = this.getContentTableName(collectionSlug);
63
- const columns = [
64
- "id UNINDEXED",
65
- "locale UNINDEXED",
66
- ...searchableFields
67
- ].join(", ");
68
- await sql.raw(`
69
- CREATE VIRTUAL TABLE IF NOT EXISTS "${ftsTable}" USING fts5(
70
- ${columns},
71
- content='${contentTable}',
72
- content_rowid='rowid',
73
- tokenize='porter unicode61'
74
- )
75
- `).execute(this.db);
76
- await this.createTriggers(collectionSlug, searchableFields);
77
- }
78
- /**
79
- * Create triggers to keep FTS table in sync with content table.
80
- *
81
- * Insert and update triggers only add rows to the FTS index when
82
- * `deleted_at IS NULL`. This keeps soft-deleted content out of the
83
- * index and keeps repair counts aligned with searchable content.
84
- */
85
- async createTriggers(collectionSlug, searchableFields) {
86
- this.validateInputs(collectionSlug, searchableFields);
87
- const ftsTable = this.getFtsTableName(collectionSlug);
88
- const contentTable = this.getContentTableName(collectionSlug);
89
- const fieldList = searchableFields.join(", ");
90
- const newFieldList = searchableFields.map((f) => `NEW.${f}`).join(", ");
91
- await sql.raw(`
92
- CREATE TRIGGER IF NOT EXISTS "${ftsTable}_insert"
93
- AFTER INSERT ON "${contentTable}"
94
- WHEN NEW.deleted_at IS NULL
95
- BEGIN
96
- INSERT INTO "${ftsTable}"(rowid, id, locale, ${fieldList})
97
- VALUES (NEW.rowid, NEW.id, NEW.locale, ${newFieldList});
98
- END
99
- `).execute(this.db);
100
- await sql.raw(`
101
- CREATE TRIGGER IF NOT EXISTS "${ftsTable}_update"
102
- AFTER UPDATE ON "${contentTable}"
103
- BEGIN
104
- DELETE FROM "${ftsTable}" WHERE rowid = OLD.rowid;
105
- INSERT INTO "${ftsTable}"(rowid, id, locale, ${fieldList})
106
- SELECT NEW.rowid, NEW.id, NEW.locale, ${newFieldList}
107
- WHERE NEW.deleted_at IS NULL;
108
- END
109
- `).execute(this.db);
110
- await sql.raw(`
111
- CREATE TRIGGER IF NOT EXISTS "${ftsTable}_delete"
112
- AFTER DELETE ON "${contentTable}"
113
- BEGIN
114
- DELETE FROM "${ftsTable}" WHERE rowid = OLD.rowid;
115
- END
116
- `).execute(this.db);
117
- }
118
- /**
119
- * Drop triggers for a collection
120
- */
121
- async dropTriggers(collectionSlug) {
122
- this.validateInputs(collectionSlug);
123
- const ftsTable = this.getFtsTableName(collectionSlug);
124
- await sql.raw(`DROP TRIGGER IF EXISTS "${ftsTable}_insert"`).execute(this.db);
125
- await sql.raw(`DROP TRIGGER IF EXISTS "${ftsTable}_update"`).execute(this.db);
126
- await sql.raw(`DROP TRIGGER IF EXISTS "${ftsTable}_delete"`).execute(this.db);
127
- }
128
- /**
129
- * Drop the FTS table and triggers for a collection
130
- */
131
- async dropFtsTable(collectionSlug) {
132
- if (!isSqlite(this.db)) return;
133
- this.validateInputs(collectionSlug);
134
- const ftsTable = this.getFtsTableName(collectionSlug);
135
- await this.dropTriggers(collectionSlug);
136
- await sql.raw(`DROP TABLE IF EXISTS "${ftsTable}"`).execute(this.db);
137
- }
138
- /**
139
- * Rebuild the FTS index for a collection
140
- *
141
- * This is useful after bulk imports or if the index gets out of sync.
142
- */
143
- async rebuildIndex(collectionSlug, searchableFields, weights) {
144
- if (!isSqlite(this.db)) return;
145
- await this.dropFtsTable(collectionSlug);
146
- await this.createFtsTable(collectionSlug, searchableFields, weights);
147
- await this.populateFromContent(collectionSlug, searchableFields);
148
- }
149
- /**
150
- * Populate the FTS table from existing content
151
- */
152
- async populateFromContent(collectionSlug, searchableFields) {
153
- if (!isSqlite(this.db)) return;
154
- this.validateInputs(collectionSlug, searchableFields);
155
- const ftsTable = this.getFtsTableName(collectionSlug);
156
- const contentTable = this.getContentTableName(collectionSlug);
157
- const fieldList = searchableFields.join(", ");
158
- await sql.raw(`
159
- INSERT INTO "${ftsTable}"(rowid, id, locale, ${fieldList})
160
- SELECT rowid, id, locale, ${fieldList} FROM "${contentTable}"
161
- WHERE deleted_at IS NULL
162
- `).execute(this.db);
163
- }
164
- /**
165
- * Get the search configuration for a collection
166
- */
167
- async getSearchConfig(collectionSlug) {
168
- const result = await this.db.selectFrom("_dineway_collections").select("search_config").where("slug", "=", collectionSlug).executeTakeFirst();
169
- if (!result?.search_config) return null;
170
- try {
171
- const parsed = JSON.parse(result.search_config);
172
- if (typeof parsed !== "object" || parsed === null || !("enabled" in parsed) || typeof parsed.enabled !== "boolean") return null;
173
- const config = { enabled: parsed.enabled };
174
- if ("weights" in parsed && typeof parsed.weights === "object" && parsed.weights !== null) {
175
- const weights = {};
176
- for (const [k, v] of Object.entries(parsed.weights)) if (typeof v === "number") weights[k] = v;
177
- config.weights = weights;
178
- }
179
- return config;
180
- } catch {
181
- return null;
182
- }
183
- }
184
- /**
185
- * Update the search configuration for a collection
186
- */
187
- async setSearchConfig(collectionSlug, config) {
188
- await this.db.updateTable("_dineway_collections").set({ search_config: JSON.stringify(config) }).where("slug", "=", collectionSlug).execute();
189
- }
190
- /**
191
- * Get searchable fields for a collection
192
- */
193
- async getSearchableFields(collectionSlug) {
194
- const collection = await this.db.selectFrom("_dineway_collections").select("id").where("slug", "=", collectionSlug).executeTakeFirst();
195
- if (!collection) return [];
196
- return (await this.db.selectFrom("_dineway_fields").select("slug").where("collection_id", "=", collection.id).where("searchable", "=", 1).execute()).map((f) => f.slug);
197
- }
198
- /**
199
- * Enable search for a collection.
200
- *
201
- * Rebuilds from scratch to ensure stale tables or triggers do not survive
202
- * repeated enablement.
203
- */
204
- async enableSearch(collectionSlug, options) {
205
- if (!isSqlite(this.db)) throw new Error("Full-text search is only available with SQLite databases");
206
- const searchableFields = await this.getSearchableFields(collectionSlug);
207
- if (searchableFields.length === 0) throw new Error(`No searchable fields defined for collection "${collectionSlug}". Mark at least one field as searchable before enabling search.`);
208
- await this.rebuildIndex(collectionSlug, searchableFields, options?.weights);
209
- await this.setSearchConfig(collectionSlug, {
210
- enabled: true,
211
- weights: options?.weights
212
- });
213
- }
214
- /**
215
- * Disable search for a collection
216
- *
217
- * Drops the FTS table and triggers.
218
- */
219
- async disableSearch(collectionSlug) {
220
- if (!isSqlite(this.db)) return;
221
- const existing = await this.getSearchConfig(collectionSlug);
222
- await this.dropFtsTable(collectionSlug);
223
- await this.setSearchConfig(collectionSlug, {
224
- enabled: false,
225
- weights: existing?.weights
226
- });
227
- }
228
- /**
229
- * Get index statistics for a collection
230
- */
231
- async getIndexStats(collectionSlug) {
232
- if (!isSqlite(this.db)) return null;
233
- this.validateInputs(collectionSlug);
234
- const ftsDocsizeTable = `${this.getFtsTableName(collectionSlug)}_docsize`;
235
- if (!await this.ftsTableExists(collectionSlug)) return null;
236
- return { indexed: (await sql`
237
- SELECT COUNT(*) as count FROM "${sql.raw(ftsDocsizeTable)}"
238
- `.execute(this.db)).rows[0]?.count ?? 0 };
239
- }
240
- /**
241
- * Verify FTS index integrity and rebuild if corrupted.
242
- *
243
- * Checks for row count mismatch between content table and FTS table.
244
- *
245
- * Returns true if the index was rebuilt, false if it was healthy.
246
- */
247
- async verifyAndRepairIndex(collectionSlug) {
248
- if (!isSqlite(this.db)) return false;
249
- this.validateInputs(collectionSlug);
250
- const ftsDocsizeTable = `${this.getFtsTableName(collectionSlug)}_docsize`;
251
- const contentTable = this.getContentTableName(collectionSlug);
252
- const fields = await this.getSearchableFields(collectionSlug);
253
- const config = await this.getSearchConfig(collectionSlug);
254
- if (!await this.ftsTableExists(collectionSlug)) {
255
- if (!config?.enabled || fields.length === 0) return false;
256
- console.warn(`FTS index for "${collectionSlug}" is missing. Rebuilding.`);
257
- await this.rebuildIndex(collectionSlug, fields, config.weights);
258
- return true;
259
- }
260
- const contentCount = await sql`
261
- SELECT COUNT(*) as count FROM ${sql.ref(contentTable)}
262
- WHERE deleted_at IS NULL
263
- `.execute(this.db);
264
- const ftsCount = await sql`
265
- SELECT COUNT(*) as count FROM "${sql.raw(ftsDocsizeTable)}"
266
- `.execute(this.db);
267
- const contentRows = contentCount.rows[0]?.count ?? 0;
268
- const ftsRows = ftsCount.rows[0]?.count ?? 0;
269
- if (contentRows !== ftsRows) {
270
- console.warn(`FTS index for "${collectionSlug}" has ${ftsRows} rows but content table has ${contentRows}. Rebuilding.`);
271
- if (fields.length > 0) await this.rebuildIndex(collectionSlug, fields, config?.weights);
272
- return true;
273
- }
274
- return false;
275
- }
276
- /**
277
- * Verify and repair FTS indexes for all search-enabled collections.
278
- *
279
- * Intended to run at startup to auto-heal any corruption from
280
- * previous process crashes.
281
- */
282
- async verifyAndRepairAll() {
283
- if (!isSqlite(this.db)) return 0;
284
- const collections = await this.db.selectFrom("_dineway_collections").select("slug").where("search_config", "is not", null).execute();
285
- let repaired = 0;
286
- for (const { slug } of collections) {
287
- if (!(await this.getSearchConfig(slug))?.enabled) continue;
288
- try {
289
- if (await this.verifyAndRepairIndex(slug)) repaired++;
290
- } catch (error) {
291
- console.error(`Failed to verify/repair FTS index for "${slug}":`, error);
292
- }
293
- }
294
- return repaired;
295
- }
296
- };
297
-
298
- //#endregion
299
11
  //#region src/schema/registry.ts
300
12
  var registry_exports = /* @__PURE__ */ __exportAll({
301
13
  SchemaError: () => SchemaError,
@@ -366,6 +78,26 @@ var SchemaRegistry = class {
366
78
  return (await this.db.selectFrom("_dineway_collections").selectAll().orderBy("slug", "asc").execute()).map(this.mapCollectionRow);
367
79
  }
368
80
  /**
81
+ * List all collections with their fields using bounded query shapes.
82
+ */
83
+ async listCollectionsWithFields() {
84
+ const collections = (await this.db.selectFrom("_dineway_collections").selectAll().orderBy("slug", "asc").execute()).map(this.mapCollectionRow);
85
+ if (collections.length === 0) return [];
86
+ const fieldsByCollectionId = /* @__PURE__ */ new Map();
87
+ for (const collectionIdChunk of chunks(collections.map((collection) => collection.id), SQL_BATCH_SIZE)) {
88
+ const fieldRows = await this.db.selectFrom("_dineway_fields").selectAll().where("collection_id", "in", collectionIdChunk).orderBy("collection_id", "asc").orderBy("sort_order", "asc").orderBy("created_at", "asc").execute();
89
+ for (const field of fieldRows.map(this.mapFieldRow)) {
90
+ const existing = fieldsByCollectionId.get(field.collectionId);
91
+ if (existing) existing.push(field);
92
+ else fieldsByCollectionId.set(field.collectionId, [field]);
93
+ }
94
+ }
95
+ return collections.map((collection) => ({
96
+ ...collection,
97
+ fields: fieldsByCollectionId.get(collection.id) ?? []
98
+ }));
99
+ }
100
+ /**
369
101
  * Get a collection by slug
370
102
  */
371
103
  async getCollection(slug) {
@@ -916,4 +648,4 @@ var SchemaRegistry = class {
916
648
  };
917
649
 
918
650
  //#endregion
919
- export { FTSManager as i, SchemaRegistry as n, registry_exports as r, SchemaError as t };
651
+ export { SchemaRegistry as n, registry_exports as r, SchemaError as t };
@@ -0,0 +1,130 @@
1
+ import { n as normalizeTrustedHeaders, t as getTrustedProxyHeaders } from "./trusted-proxy-BbaZfkT9.mjs";
2
+
3
+ //#region src/plugins/request-meta.ts
4
+ /**
5
+ * Loose validation for IPv4 and IPv6 addresses.
6
+ * Accepts digits, hex chars, dots, and colons — rejects anything else
7
+ * (e.g. HTML tags, scripts, or other non-IP garbage in spoofed headers).
8
+ */
9
+ const IP_PATTERN = /^[\da-fA-F.:]+$/;
10
+ /**
11
+ * Extract the first IP from an X-Forwarded-For header value.
12
+ * The header may contain a comma-separated list of IPs; the first
13
+ * entry is the original client IP.
14
+ *
15
+ * Returns null if the extracted value doesn't look like an IP address.
16
+ */
17
+ function parseFirstForwardedIp(header) {
18
+ const trimmed = header.split(",")[0]?.trim();
19
+ if (!trimmed) return null;
20
+ return IP_PATTERN.test(trimmed) ? trimmed : null;
21
+ }
22
+ /**
23
+ * Read an IP from an operator-declared trusted header. Forwarded-for style
24
+ * headers are parsed as comma-separated lists and the first entry is used.
25
+ */
26
+ function readIpFromHeader(headers, name) {
27
+ const value = headers.get(name);
28
+ if (!value) return null;
29
+ if (name.endsWith("forwarded-for")) return parseFirstForwardedIp(value);
30
+ const trimmed = value.trim();
31
+ if (!trimmed) return null;
32
+ return IP_PATTERN.test(trimmed) ? trimmed : null;
33
+ }
34
+ /**
35
+ * Get the runtime-provided `cf` object from the request, if present.
36
+ */
37
+ function getCfObject(request) {
38
+ return request.cf;
39
+ }
40
+ /**
41
+ * Extract geographic information from the runtime-provided `cf` object
42
+ * attached to the request.
43
+ */
44
+ function extractGeo(cf) {
45
+ if (!cf) return null;
46
+ const country = cf.country ?? null;
47
+ const region = cf.region ?? null;
48
+ const city = cf.city ?? null;
49
+ if (country === null && region === null && city === null) return null;
50
+ return {
51
+ country,
52
+ region,
53
+ city
54
+ };
55
+ }
56
+ /**
57
+ * Extract normalized request metadata from a Request object.
58
+ *
59
+ * IP resolution order:
60
+ * 1. `CF-Connecting-IP` header — only trusted when a `cf` object is
61
+ * present on the request (proving the request came through a trusted
62
+ * edge/runtime that strips or overwrites client-supplied values).
63
+ * 2. `X-Forwarded-For` header (first entry) — trusted only with runtime
64
+ * edge metadata.
65
+ * 3. Operator-declared trusted proxy headers, tried in order.
66
+ * 4. `null`
67
+ */
68
+ function extractRequestMeta(request, configOrTrustedHeaders) {
69
+ const headers = request.headers;
70
+ const cf = getCfObject(request);
71
+ const trustedHeaders = resolveTrustedHeaders(configOrTrustedHeaders);
72
+ let ip = null;
73
+ if (cf) {
74
+ const cfIp = headers.get("cf-connecting-ip")?.trim();
75
+ if (cfIp && IP_PATTERN.test(cfIp)) ip = cfIp;
76
+ }
77
+ if (!ip && cf) {
78
+ const xff = headers.get("x-forwarded-for");
79
+ ip = xff ? parseFirstForwardedIp(xff) : null;
80
+ }
81
+ if (!ip) for (const name of trustedHeaders) {
82
+ const value = readIpFromHeader(headers, name);
83
+ if (value) {
84
+ ip = value;
85
+ break;
86
+ }
87
+ }
88
+ const userAgent = headers.get("user-agent")?.trim() || null;
89
+ const referer = headers.get("referer")?.trim() || null;
90
+ const geo = extractGeo(cf);
91
+ return {
92
+ ip,
93
+ userAgent,
94
+ referer,
95
+ geo
96
+ };
97
+ }
98
+ function resolveTrustedHeaders(value) {
99
+ if (Array.isArray(value)) return normalizeTrustedHeaders(value);
100
+ return getTrustedProxyHeaders(value);
101
+ }
102
+ /**
103
+ * Headers that must never cross the RPC boundary to sandboxed plugins.
104
+ * Session tokens, auth credentials, and infrastructure headers are stripped
105
+ * to prevent malicious plugins from exfiltrating sensitive data.
106
+ */
107
+ const SANDBOX_STRIPPED_HEADERS = new Set([
108
+ "cookie",
109
+ "set-cookie",
110
+ "authorization",
111
+ "proxy-authorization",
112
+ "cf-access-jwt-assertion",
113
+ "cf-access-client-id",
114
+ "cf-access-client-secret",
115
+ "x-dineway-request"
116
+ ]);
117
+ /**
118
+ * Copy request headers into a plain object, stripping sensitive headers
119
+ * that must not be exposed to sandboxed plugin code.
120
+ */
121
+ function sanitizeHeadersForSandbox(headers) {
122
+ const safe = {};
123
+ headers.forEach((value, key) => {
124
+ if (!SANDBOX_STRIPPED_HEADERS.has(key)) safe[key] = value;
125
+ });
126
+ return safe;
127
+ }
128
+
129
+ //#endregion
130
+ export { sanitizeHeadersForSandbox as n, extractRequestMeta as t };
@@ -0,0 +1,148 @@
1
+ import { n as decodeCursor, r as encodeCursor } from "./types-Bs6lTBBW.mjs";
2
+ import { ulid } from "ulidx";
3
+
4
+ //#region src/database/repositories/review-requests.ts
5
+ var ReviewRequestRepository = class {
6
+ constructor(db) {
7
+ this.db = db;
8
+ }
9
+ async create(input) {
10
+ const id = ulid();
11
+ const now = (/* @__PURE__ */ new Date()).toISOString();
12
+ await this.db.insertInto("_dineway_review_requests").values(toInsertableReviewRequest(id, input, now)).execute();
13
+ const request = await this.findById(id);
14
+ if (!request) throw new Error("Failed to create review request");
15
+ return request;
16
+ }
17
+ async findById(id) {
18
+ const row = await this.db.selectFrom("_dineway_review_requests").selectAll().where("id", "=", id).executeTakeFirst();
19
+ return row ? rowToReviewRequest(row) : null;
20
+ }
21
+ async list(query = {}) {
22
+ const limit = clampLimit(query.limit);
23
+ const rows = await this.queryRows(query).execute();
24
+ const items = rows.slice(0, limit).map(rowToReviewRequest);
25
+ const result = { items };
26
+ if (rows.length > limit && items.length > 0) {
27
+ const last = items.at(-1);
28
+ result.nextCursor = encodeCursor(last.createdAt, last.id);
29
+ }
30
+ return result;
31
+ }
32
+ async countPending(scope) {
33
+ let query = this.db.selectFrom("_dineway_review_requests").select((eb) => eb.fn.count("id").as("count")).where("status", "=", "pending");
34
+ if (scope) query = query.where("scope", "=", scope);
35
+ const result = await query.executeTakeFirst();
36
+ return Number(result?.count ?? 0);
37
+ }
38
+ async resolve(id, input) {
39
+ const resolvedAt = input.resolvedAt ?? (/* @__PURE__ */ new Date()).toISOString();
40
+ const result = await this.db.updateTable("_dineway_review_requests").set({
41
+ status: input.decision,
42
+ resolved_by_actor_type: input.resolvedByActorType,
43
+ resolved_by_actor_id: input.resolvedByActorId,
44
+ resolved_auth_metadata: jsonOrNull(input.resolvedAuthMetadata),
45
+ review_note: input.reviewNote ?? null,
46
+ resolved_at: resolvedAt,
47
+ updated_at: resolvedAt
48
+ }).where("id", "=", id).where("status", "=", "pending").executeTakeFirst();
49
+ if (Number(result.numUpdatedRows ?? 0) === 0) return null;
50
+ return this.findById(id);
51
+ }
52
+ async findApprovedForTarget(target) {
53
+ let query = this.db.selectFrom("_dineway_review_requests").selectAll().where("status", "=", "approved").where("collection", "=", target.collection).where("entry_id", "=", target.entryId).where("reviewed_rev", "=", target.reviewedRev).where("action_type", "=", target.actionType).where("action_hash", "=", target.actionHash).orderBy("resolved_at", "desc").orderBy("created_at", "desc").orderBy("id", "desc");
54
+ query = target.liveRevisionId === null ? query.where("live_revision_id", "is", null) : query.where("live_revision_id", "=", target.liveRevisionId);
55
+ query = target.draftRevisionId === null ? query.where("draft_revision_id", "is", null) : query.where("draft_revision_id", "=", target.draftRevisionId);
56
+ const row = await query.executeTakeFirst();
57
+ return row ? rowToReviewRequest(row) : null;
58
+ }
59
+ queryRows(query) {
60
+ const limit = clampLimit(query.limit);
61
+ let q = this.db.selectFrom("_dineway_review_requests").selectAll().orderBy("created_at", "desc").orderBy("id", "desc").limit(limit + 1);
62
+ if (query.status) q = q.where("status", "=", query.status);
63
+ if (query.collection) q = q.where("collection", "=", query.collection);
64
+ if (query.entryId) q = q.where("entry_id", "=", query.entryId);
65
+ if (query.scope) q = q.where("scope", "=", query.scope);
66
+ if (query.scopes && query.scopes.length > 0) q = q.where("scope", "in", query.scopes);
67
+ if (query.actionType) q = q.where("action_type", "=", query.actionType);
68
+ if (query.since) q = q.where("updated_at", ">=", query.since);
69
+ if (query.cursor) {
70
+ const decoded = decodeCursor(query.cursor);
71
+ if (decoded) q = q.where((eb) => eb.or([eb("created_at", "<", decoded.orderValue), eb.and([eb("created_at", "=", decoded.orderValue), eb("id", "<", decoded.id)])]));
72
+ }
73
+ return q;
74
+ }
75
+ };
76
+ function toInsertableReviewRequest(id, input, now) {
77
+ return {
78
+ id,
79
+ status: "pending",
80
+ collection: input.collection,
81
+ entry_id: input.entryId,
82
+ scope: input.scope ?? `content:${input.collection}:${input.entryId}`,
83
+ live_revision_id: input.liveRevisionId ?? null,
84
+ draft_revision_id: input.draftRevisionId ?? null,
85
+ reviewed_rev: input.reviewedRev,
86
+ action_type: input.actionType,
87
+ action_hash: input.actionHash,
88
+ risk_reason: input.riskReason ?? null,
89
+ review_payload: JSON.stringify(input.reviewPayload),
90
+ requested_by_actor_type: input.requestedByActorType,
91
+ requested_by_actor_id: input.requestedByActorId,
92
+ requested_auth_metadata: jsonOrNull(input.requestedAuthMetadata),
93
+ resolved_by_actor_type: null,
94
+ resolved_by_actor_id: null,
95
+ resolved_auth_metadata: null,
96
+ review_note: null,
97
+ created_at: input.createdAt ?? now,
98
+ updated_at: input.createdAt ?? now,
99
+ resolved_at: null
100
+ };
101
+ }
102
+ function rowToReviewRequest(row) {
103
+ return {
104
+ id: row.id,
105
+ status: row.status,
106
+ collection: row.collection,
107
+ entryId: row.entry_id,
108
+ scope: row.scope,
109
+ liveRevisionId: row.live_revision_id,
110
+ draftRevisionId: row.draft_revision_id,
111
+ reviewedRev: row.reviewed_rev,
112
+ actionType: row.action_type,
113
+ actionHash: row.action_hash,
114
+ riskReason: row.risk_reason,
115
+ reviewPayload: parseRecord(row.review_payload) ?? {},
116
+ requestedByActorType: row.requested_by_actor_type,
117
+ requestedByActorId: row.requested_by_actor_id,
118
+ requestedAuthMetadata: parseRecord(row.requested_auth_metadata),
119
+ resolvedByActorType: row.resolved_by_actor_type,
120
+ resolvedByActorId: row.resolved_by_actor_id,
121
+ resolvedAuthMetadata: parseRecord(row.resolved_auth_metadata),
122
+ reviewNote: row.review_note,
123
+ createdAt: row.created_at,
124
+ updatedAt: row.updated_at,
125
+ resolvedAt: row.resolved_at
126
+ };
127
+ }
128
+ function jsonOrNull(value) {
129
+ return value ? JSON.stringify(value) : null;
130
+ }
131
+ function parseRecord(value) {
132
+ if (!value) return null;
133
+ try {
134
+ const parsed = JSON.parse(value);
135
+ return isRecord(parsed) ? parsed : null;
136
+ } catch {
137
+ return null;
138
+ }
139
+ }
140
+ function isRecord(value) {
141
+ return typeof value === "object" && value !== null && !Array.isArray(value);
142
+ }
143
+ function clampLimit(value) {
144
+ return Math.min(Math.max(1, value ?? 50), 100);
145
+ }
146
+
147
+ //#endregion
148
+ export { ReviewRequestRepository as t };
@@ -0,0 +1,79 @@
1
+ import { t as ReviewRequestRepository } from "./review-requests-C2DIHwlJ.mjs";
2
+
3
+ //#region src/api/handlers/review-requests.ts
4
+ async function handleReviewRequestList(db, query) {
5
+ try {
6
+ return {
7
+ success: true,
8
+ data: await new ReviewRequestRepository(db).list(query)
9
+ };
10
+ } catch (error) {
11
+ console.error("Review request list error:", error);
12
+ return {
13
+ success: false,
14
+ error: {
15
+ code: "REVIEW_REQUEST_LIST_ERROR",
16
+ message: "Failed to list review requests"
17
+ }
18
+ };
19
+ }
20
+ }
21
+ async function handleReviewRequestGet(db, id) {
22
+ try {
23
+ const item = await new ReviewRequestRepository(db).findById(id);
24
+ if (!item) return {
25
+ success: false,
26
+ error: {
27
+ code: "NOT_FOUND",
28
+ message: "Review request not found"
29
+ }
30
+ };
31
+ return {
32
+ success: true,
33
+ data: { item }
34
+ };
35
+ } catch (error) {
36
+ console.error("Review request get error:", error);
37
+ return {
38
+ success: false,
39
+ error: {
40
+ code: "REVIEW_REQUEST_GET_ERROR",
41
+ message: "Failed to fetch review request"
42
+ }
43
+ };
44
+ }
45
+ }
46
+ async function handleReviewRequestResolve(db, id, input) {
47
+ try {
48
+ const item = await new ReviewRequestRepository(db).resolve(id, {
49
+ decision: input.decision,
50
+ reviewNote: input.reviewNote,
51
+ resolvedByActorType: input.actor.actorType,
52
+ resolvedByActorId: input.actor.actorId,
53
+ resolvedAuthMetadata: input.actor.authMetadata
54
+ });
55
+ if (!item) return {
56
+ success: false,
57
+ error: {
58
+ code: "NOT_FOUND",
59
+ message: "Review request not found or already resolved"
60
+ }
61
+ };
62
+ return {
63
+ success: true,
64
+ data: { item }
65
+ };
66
+ } catch (error) {
67
+ console.error("Review request resolve error:", error);
68
+ return {
69
+ success: false,
70
+ error: {
71
+ code: "REVIEW_REQUEST_RESOLVE_ERROR",
72
+ message: "Failed to resolve review request"
73
+ }
74
+ };
75
+ }
76
+ }
77
+
78
+ //#endregion
79
+ export { handleReviewRequestList as n, handleReviewRequestResolve as r, handleReviewRequestGet as t };