dineway 0.1.11 → 0.1.13

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 (334) hide show
  1. package/dist/{allowed-origins-DG86sH8U.mjs → allowed-origins-C1AKK9AT.mjs} +1 -1
  2. package/dist/api/route-utils.d.mts +10 -9
  3. package/dist/api/route-utils.mjs +7 -7
  4. package/dist/api/schemas/index.d.mts +1 -1
  5. package/dist/api/schemas/index.mjs +2 -2
  6. package/dist/{api-Cmy8Rjk5.mjs → api-Lyjc8wqZ.mjs} +4 -4
  7. package/dist/{api-tokens-Bu3ez1MO.mjs → api-tokens-D7UjLbdt.mjs} +1 -1
  8. package/dist/{apply-Co5imxxT.mjs → apply-Bm5QgdrE.mjs} +5 -5
  9. package/dist/astro/index.d.mts +11 -10
  10. package/dist/astro/index.mjs +3 -3
  11. package/dist/astro/middleware/auth.d.mts +10 -9
  12. package/dist/astro/middleware/auth.mjs +5 -5
  13. package/dist/astro/middleware/request-context.mjs +2 -2
  14. package/dist/astro/middleware/setup.mjs +1 -1
  15. package/dist/astro/middleware.mjs +42 -40
  16. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +4 -4
  17. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +4 -4
  18. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  19. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  20. package/dist/astro/routes/api/admin/briefing.mjs +7 -7
  21. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +6 -6
  22. package/dist/astro/routes/api/admin/bylines/index.mjs +6 -6
  23. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +8 -8
  24. package/dist/astro/routes/api/admin/comments/_id_.mjs +3 -3
  25. package/dist/astro/routes/api/admin/comments/bulk.mjs +6 -6
  26. package/dist/astro/routes/api/admin/comments/counts.mjs +3 -3
  27. package/dist/astro/routes/api/admin/comments/index.mjs +6 -6
  28. package/dist/astro/routes/api/admin/context/_id_/history.mjs +11 -10
  29. package/dist/astro/routes/api/admin/context/_id_/index.mjs +11 -10
  30. package/dist/astro/routes/api/admin/context/_id_/review.mjs +15 -14
  31. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +15 -14
  32. package/dist/astro/routes/api/admin/context/diff.mjs +14 -13
  33. package/dist/astro/routes/api/admin/context/index.mjs +15 -14
  34. package/dist/astro/routes/api/admin/context/stale.mjs +14 -13
  35. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +11 -10
  36. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +14 -13
  37. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +14 -13
  38. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +12 -11
  39. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +2 -2
  40. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  41. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  42. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +24 -23
  43. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +24 -23
  44. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +18 -17
  45. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +23 -22
  46. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +23 -22
  47. package/dist/astro/routes/api/admin/plugins/index.mjs +18 -17
  48. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  49. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +18 -17
  50. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +23 -22
  51. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +18 -17
  52. package/dist/astro/routes/api/admin/plugins/updates.mjs +18 -17
  53. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +2 -2
  54. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +13 -12
  55. package/dist/astro/routes/api/admin/review-requests/index.mjs +5 -5
  56. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +18 -17
  57. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  58. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +18 -17
  59. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
  60. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
  61. package/dist/astro/routes/api/admin/users/_id_/index.mjs +4 -4
  62. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +2 -2
  63. package/dist/astro/routes/api/admin/users/index.mjs +4 -4
  64. package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
  65. package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
  66. package/dist/astro/routes/api/auth/invite/complete.mjs +8 -8
  67. package/dist/astro/routes/api/auth/invite/index.mjs +5 -5
  68. package/dist/astro/routes/api/auth/invite/register-options.mjs +7 -7
  69. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  70. package/dist/astro/routes/api/auth/magic-link/send.mjs +7 -7
  71. package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
  72. package/dist/astro/routes/api/auth/me.mjs +4 -4
  73. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  74. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +2 -2
  75. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  76. package/dist/astro/routes/api/auth/passkey/_id_.mjs +4 -4
  77. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  78. package/dist/astro/routes/api/auth/passkey/options.mjs +9 -9
  79. package/dist/astro/routes/api/auth/passkey/register/options.mjs +7 -7
  80. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +8 -8
  81. package/dist/astro/routes/api/auth/passkey/verify.mjs +8 -8
  82. package/dist/astro/routes/api/auth/signup/complete.mjs +8 -8
  83. package/dist/astro/routes/api/auth/signup/request.mjs +7 -7
  84. package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
  85. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +9 -9
  86. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  87. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +3 -3
  88. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +3 -3
  89. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +3 -3
  90. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +8 -8
  91. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +13 -12
  92. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +3 -3
  93. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  94. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +6 -6
  95. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +6 -6
  96. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  97. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +3 -3
  98. package/dist/astro/routes/api/content/_collection_/_id_.mjs +6 -6
  99. package/dist/astro/routes/api/content/_collection_/index.mjs +6 -6
  100. package/dist/astro/routes/api/content/_collection_/trash.mjs +5 -5
  101. package/dist/astro/routes/api/dashboard.mjs +2 -2
  102. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  103. package/dist/astro/routes/api/health.mjs +1 -1
  104. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  105. package/dist/astro/routes/api/import/probe.mjs +8 -8
  106. package/dist/astro/routes/api/import/wordpress/analyze.mjs +3 -3
  107. package/dist/astro/routes/api/import/wordpress/execute.mjs +12 -11
  108. package/dist/astro/routes/api/import/wordpress/media.mjs +6 -6
  109. package/dist/astro/routes/api/import/wordpress/prepare.mjs +15 -14
  110. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +14 -13
  111. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  112. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +8 -8
  113. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +1 -1
  114. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +16 -15
  115. package/dist/astro/routes/api/manifest.mjs +4 -4
  116. package/dist/astro/routes/api/mcp.mjs +22 -21
  117. package/dist/astro/routes/api/media/_id_/confirm.mjs +5 -5
  118. package/dist/astro/routes/api/media/_id_.mjs +5 -5
  119. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  120. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  121. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  122. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  123. package/dist/astro/routes/api/media/upload-url.mjs +5 -5
  124. package/dist/astro/routes/api/media.mjs +5 -5
  125. package/dist/astro/routes/api/menus/_name_/items.mjs +15 -14
  126. package/dist/astro/routes/api/menus/_name_/reorder.mjs +15 -14
  127. package/dist/astro/routes/api/menus/_name_.mjs +15 -14
  128. package/dist/astro/routes/api/menus/index.mjs +15 -14
  129. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  130. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  131. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  132. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  133. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  134. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  135. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  136. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  137. package/dist/astro/routes/api/openapi.json.mjs +3 -3
  138. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +3 -3
  139. package/dist/astro/routes/api/redirects/404s/index.mjs +6 -6
  140. package/dist/astro/routes/api/redirects/404s/summary.mjs +6 -6
  141. package/dist/astro/routes/api/redirects/_id_.mjs +15 -14
  142. package/dist/astro/routes/api/redirects/index.mjs +15 -14
  143. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  144. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  145. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +19 -18
  146. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +19 -18
  147. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +19 -18
  148. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +19 -18
  149. package/dist/astro/routes/api/schema/collections/index.mjs +19 -18
  150. package/dist/astro/routes/api/schema/index.mjs +2 -2
  151. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +18 -17
  152. package/dist/astro/routes/api/schema/orphans/index.mjs +18 -17
  153. package/dist/astro/routes/api/search/enable.mjs +6 -6
  154. package/dist/astro/routes/api/search/index.mjs +5 -5
  155. package/dist/astro/routes/api/search/rebuild.mjs +6 -6
  156. package/dist/astro/routes/api/search/stats.mjs +3 -3
  157. package/dist/astro/routes/api/search/suggest.mjs +5 -5
  158. package/dist/astro/routes/api/sections/_slug_.mjs +15 -14
  159. package/dist/astro/routes/api/sections/index.mjs +15 -14
  160. package/dist/astro/routes/api/settings/email.mjs +3 -3
  161. package/dist/astro/routes/api/settings.mjs +15 -14
  162. package/dist/astro/routes/api/setup/admin-verify.mjs +10 -10
  163. package/dist/astro/routes/api/setup/admin.mjs +8 -8
  164. package/dist/astro/routes/api/setup/dev-bypass.mjs +11 -11
  165. package/dist/astro/routes/api/setup/dev-reset.mjs +1 -1
  166. package/dist/astro/routes/api/setup/index.mjs +11 -11
  167. package/dist/astro/routes/api/setup/status.mjs +3 -3
  168. package/dist/astro/routes/api/snapshot.mjs +5 -5
  169. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +16 -15
  170. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +16 -15
  171. package/dist/astro/routes/api/taxonomies/index.mjs +16 -15
  172. package/dist/astro/routes/api/themes/preview.mjs +4 -4
  173. package/dist/astro/routes/api/typegen.mjs +1 -1
  174. package/dist/astro/routes/api/well-known/auth.mjs +2 -2
  175. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  176. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  177. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +14 -13
  178. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +15 -14
  179. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +15 -14
  180. package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -12
  181. package/dist/astro/routes/api/widget-areas/index.mjs +15 -14
  182. package/dist/astro/routes/api/widget-components.mjs +2 -2
  183. package/dist/astro/routes/robots.txt.mjs +2 -2
  184. package/dist/astro/routes/sitemap-_collection_.xml.mjs +2 -2
  185. package/dist/astro/routes/sitemap.xml.mjs +3 -3
  186. package/dist/astro/types.d.mts +13 -12
  187. package/dist/auth/providers/github.d.mts +1 -1
  188. package/dist/auth/providers/google.d.mts +1 -1
  189. package/dist/{auth-control-guard-DKUe_1oa.mjs → auth-control-guard-DOZ3UCsP.mjs} +1 -1
  190. package/dist/{authorize-BBj8C6Y8.mjs → authorize-BAdbMCwC.mjs} +1 -1
  191. package/dist/{briefing-BrXCuMEE.mjs → briefing-MVYe_Uyf.mjs} +1 -1
  192. package/dist/{briefing-ClWw4mc9.mjs → briefing-rty4O-wa.mjs} +1 -1
  193. package/dist/{bylines-BcOPh6Ej.mjs → bylines-C4LIBOOO.mjs} +1 -1
  194. package/dist/{bylines-HfUKum_j.d.mts → bylines-DCvz5gtm.d.mts} +13 -13
  195. package/dist/cli/index.mjs +7 -7
  196. package/dist/client/external-auth-headers.d.mts +1 -1
  197. package/dist/client/index.d.mts +1 -1
  198. package/dist/client/index.mjs +1 -1
  199. package/dist/{context-nxMyOe3p.mjs → context-CNIkMzot.mjs} +2 -2
  200. package/dist/{context-bE5Kyvcj.mjs → context-DNfcm853.mjs} +2 -2
  201. package/dist/{context-route-helpers-D-6uCQ0S.mjs → context-route-helpers-MurhoxWF.mjs} +1 -1
  202. package/dist/db/index.d.mts +3 -3
  203. package/dist/db/libsql.d.mts +1 -1
  204. package/dist/db/postgres.d.mts +1 -1
  205. package/dist/db/sqlite.d.mts +1 -1
  206. package/dist/{device-flow-7AhWNwCK.mjs → device-flow-BGEH5jfn.mjs} +4 -4
  207. package/dist/{hitl-requests-Bx3Bkk9l.mjs → hitl-requests-ChT32Ilo.mjs} +2 -2
  208. package/dist/{hitl-route-helpers-DMmJRS7B.mjs → hitl-route-helpers-CSit54Ru.mjs} +4 -4
  209. package/dist/{import-DVZcYlDp.mjs → import-BHRLhXAn.mjs} +2 -2
  210. package/dist/{import-DD3f2jkc.mjs → import-CNcKWTbp.mjs} +1 -1
  211. package/dist/{index-CkljPf5F.d.mts → index-CYfhYgXd.d.mts} +2 -2
  212. package/dist/index-EUAWaIxW.d.mts +835 -0
  213. package/dist/index.d.mts +16 -14
  214. package/dist/index.mjs +35 -32
  215. package/dist/jsonld-D2gUY4kA.d.mts +141 -0
  216. package/dist/media/index.d.mts +2 -1
  217. package/dist/media/local-runtime.d.mts +12 -11
  218. package/dist/menus-DYW_UHjv.mjs +256 -0
  219. package/dist/{oauth-authorization-C1qiw4hd.mjs → oauth-authorization-DxGjiWKL.mjs} +4 -4
  220. package/dist/{oauth-clients-CvWatf5p.mjs → oauth-clients-DxO_NO7k.mjs} +2 -2
  221. package/dist/page/index.d.mts +2 -139
  222. package/dist/page/index.mjs +1 -427
  223. package/dist/{parse-BeQXIt1U.mjs → parse-C9106ehs.mjs} +1 -1
  224. package/dist/placeholder-Bh1dfUOd.d.mts +40 -0
  225. package/dist/plugins/adapt-sandbox-entry.d.mts +10 -9
  226. package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
  227. package/dist/{menus-CrzHokKj.mjs → plugins-D7-ILNib.mjs} +4 -257
  228. package/dist/{preview-C_4DyVox.mjs → preview-DvYRU-Oy.mjs} +2 -2
  229. package/dist/provider-loader-BiQ6lNmf.d.mts +20 -0
  230. package/dist/provider-loader-C21b9OpH.mjs +36 -0
  231. package/dist/{query-RiobVwB5.mjs → query-B9BO5goQ.mjs} +3 -3
  232. package/dist/{schema-BNpI53of.mjs → query-CsbOywSY.mjs} +1 -6
  233. package/dist/{rate-limit-CbJoj_fT.mjs → rate-limit-DmVTHI5v.mjs} +2 -2
  234. package/dist/{redirects-CqaxraTO.mjs → redirects-lrlmYXVE.mjs} +2 -49
  235. package/dist/{request-meta-Bd0mQfiS.mjs → request-meta-DixlNKKa.mjs} +1 -1
  236. package/dist/{runner-9eIQXuc2.d.mts → runner-BU6Lo1ZS.d.mts} +1 -1
  237. package/dist/{runtime-C4-7y7xK.d.mts → runtime-QuuFSlc6.d.mts} +104 -932
  238. package/dist/runtime.d.mts +11 -28
  239. package/dist/runtime.mjs +1 -35
  240. package/dist/schema-BECjUhP8.mjs +8 -0
  241. package/dist/seed/index.d.mts +2 -2
  242. package/dist/seed/index.mjs +6 -6
  243. package/dist/seo/index.d.mts +1 -1
  244. package/dist/seo-contributions-B1fWCnqY.mjs +429 -0
  245. package/dist/{service-CSfcQguB.mjs → service-CyOsm0R6.mjs} +1 -1
  246. package/dist/{settings-4XnpVMOS.mjs → settings-DGtLLSaz.mjs} +15 -1
  247. package/dist/{settings-Bw93cLfe.mjs → settings-Dzgswvg4.mjs} +1 -1
  248. package/dist/{site-context-Bpu_Paur.mjs → site-context-WBxoD99D.mjs} +6 -6
  249. package/dist/storage/local.d.mts +1 -1
  250. package/dist/storage/local.mjs +1 -1
  251. package/dist/storage/s3.d.mts +1 -1
  252. package/dist/storage/s3.mjs +1 -1
  253. package/dist/{taxonomies-BvBgfzn3.mjs → taxonomies-D2aZGuns.mjs} +2 -2
  254. package/dist/{taxonomies-CpqGcIJD.mjs → taxonomies-z6Lz91BC.mjs} +1 -1
  255. package/dist/{placeholder-CHkLckzK.d.mts → types-OPs5Q_sX.d.mts} +1 -38
  256. package/dist/{types-DgfUZqcd.d.mts → types-Q616b2Hn.d.mts} +1 -1
  257. package/dist/ui/client-runtime.d.mts +12 -0
  258. package/dist/ui/client-runtime.mjs +32 -0
  259. package/dist/ui/server-runtime.d.mts +33 -0
  260. package/dist/ui/server-runtime.mjs +80 -0
  261. package/dist/url-DNjT2abR.mjs +49 -0
  262. package/dist/{validate-JCZihRIa.d.mts → validate-BwmQEbu8.d.mts} +3 -3
  263. package/dist/version-C5JkNvmb.mjs +6 -0
  264. package/dist/{widgets-B7Q_7bxN.mjs → widgets-B7DRpZvy.mjs} +1 -1
  265. package/package.json +19 -5
  266. package/src/components/Button.astro +1 -1
  267. package/src/components/CommentForm.astro +1 -1
  268. package/src/components/Comments.astro +1 -3
  269. package/src/components/DinewayBodyEnd.astro +5 -3
  270. package/src/components/DinewayBodyStart.astro +5 -3
  271. package/src/components/DinewayHead.astro +9 -7
  272. package/src/components/DinewayImage.astro +6 -4
  273. package/src/components/DinewayMedia.astro +7 -4
  274. package/src/components/Embed.astro +1 -2
  275. package/src/components/File.astro +1 -1
  276. package/src/components/Gallery.astro +1 -1
  277. package/src/components/HtmlBlock.astro +1 -1
  278. package/src/components/Image.astro +5 -3
  279. package/src/components/InlinePortableTextEditor.tsx +1 -2
  280. package/src/components/PortableText.astro +1 -1
  281. package/src/components/WidgetArea.astro +1 -1
  282. package/src/components/WidgetRenderer.astro +1 -3
  283. package/src/components/marks/Link.astro +1 -1
  284. package/src/components/widgets/Archives.astro +1 -1
  285. package/src/components/widgets/Categories.astro +1 -1
  286. package/src/components/widgets/RecentPosts.astro +1 -1
  287. package/src/components/widgets/Tags.astro +1 -1
  288. package/dist/version-DH53KCQd.mjs +0 -6
  289. /package/dist/{activity-events-BsMaXdJa.mjs → activity-events-B4wp7CrU.mjs} +0 -0
  290. /package/dist/{adapters-BLDldpJg.d.mts → adapters-DuLQZhRY.d.mts} +0 -0
  291. /package/dist/{api-tokens-DzloJxuh.mjs → api-tokens-CPjC3zf8.mjs} +0 -0
  292. /package/dist/{challenge-store-DHMgBGOq.mjs → challenge-store-DDTbisbf.mjs} +0 -0
  293. /package/dist/{comments-Gy3zLBaP.mjs → comments--BsZ9pqA.mjs} +0 -0
  294. /package/dist/{components-DND2rd3D.mjs → components-BPknylYg.mjs} +0 -0
  295. /package/dist/{cron-DGzVTtJp.mjs → cron-CKxvBrRT.mjs} +0 -0
  296. /package/dist/{db-errors-DKUg_NgF.mjs → db-errors-DyZkswzF.mjs} +0 -0
  297. /package/dist/{default-C3PZN-bz.mjs → default-D4ngTpW8.mjs} +0 -0
  298. /package/dist/{email-console-CgLVZbcn.mjs → email-console-CuefUXfX.mjs} +0 -0
  299. /package/dist/{error-DEGjx2Xw.mjs → error-BMUPwxgx.mjs} +0 -0
  300. /package/dist/{escape-mNZr4t2A.mjs → escape-BRVaw1Ai.mjs} +0 -0
  301. /package/dist/{experimental-workflows-DldxJlqV.mjs → experimental-workflows-C9X7yblQ.mjs} +0 -0
  302. /package/dist/{load-D-9NhLmF.mjs → load-B2XtDw__.mjs} +0 -0
  303. /package/dist/{manifest-schema-DYoCQ5np.mjs → manifest-schema-CgFJAp0H.mjs} +0 -0
  304. /package/dist/{menus-BacxVCCo.mjs → menus-DS3_5nWY.mjs} +0 -0
  305. /package/dist/{mode-C80mAZQv.mjs → mode-DUhxwUhv.mjs} +0 -0
  306. /package/dist/{oauth-state-store-hSdzxsEe.mjs → oauth-state-store-C5UFhzwD.mjs} +0 -0
  307. /package/dist/{oauth-user-lookup-B4OcmsLV.mjs → oauth-user-lookup-Bi0ek9eM.mjs} +0 -0
  308. /package/dist/{passkey-config-Daqs5fjq.mjs → passkey-config-BRSZx4pW.mjs} +0 -0
  309. /package/dist/{public-url-BB_umF5G.mjs → public-url-Cun8N3NU.mjs} +0 -0
  310. /package/dist/{redirect-ClSmMOtC.mjs → redirect-COZy-3iY.mjs} +0 -0
  311. /package/dist/{redirects-B69T59hK.mjs → redirects-Cgi_cZfN.mjs} +0 -0
  312. /package/dist/{search-DM6CVti3.mjs → search-DqTHQqtV.mjs} +0 -0
  313. /package/dist/{secrets-dI8zzTV7.mjs → secrets-CkoJ9zN0.mjs} +0 -0
  314. /package/dist/{sections-DZFyAQXd.mjs → sections-B61OxnfB.mjs} +0 -0
  315. /package/dist/{seo-BBgTCOYU.mjs → seo-C007Luwn.mjs} +0 -0
  316. /package/dist/{setup-complete-DidsDQ1e.mjs → setup-complete-ChilE-da.mjs} +0 -0
  317. /package/dist/{setup-nonce-pml1PMKo.mjs → setup-nonce-BpmLXAuu.mjs} +0 -0
  318. /package/dist/{sidecar-client-vzwV98K4.mjs → sidecar-client-B1C6Cf80.mjs} +0 -0
  319. /package/dist/{site-url-CYIcO0Tj.mjs → site-url-BP7k7OCe.mjs} +0 -0
  320. /package/dist/{ssrf-CmM76lLV.mjs → ssrf-DDwRxF6B.mjs} +0 -0
  321. /package/dist/{tokens-DLTo4dO2.mjs → tokens-BOJw-D9F.mjs} +0 -0
  322. /package/dist/{transport-6RefuBdV.d.mts → transport-BXe1AM79.d.mts} +0 -0
  323. /package/dist/{transport-C9e_h-BF.mjs → transport-D3i4yWRE.mjs} +0 -0
  324. /package/dist/{trusted-proxy-Bi0Cuk5n.mjs → trusted-proxy-BbaZfkT9.mjs} +0 -0
  325. /package/dist/{types-C982qI5I.d.mts → types-0Vr68fc2.d.mts} +0 -0
  326. /package/dist/{types-B9qVtiHb.d.mts → types-B7kpsMJ3.d.mts} +0 -0
  327. /package/dist/{types-D4XVOt01.d.mts → types-BFmjniC2.d.mts} +0 -0
  328. /package/dist/{types-IPACEM14.d.mts → types-C0mmVRJN.d.mts} +0 -0
  329. /package/dist/{types-Djdp0cZO.d.mts → types-DJlpx5Ay.d.mts} +0 -0
  330. /package/dist/{types-Du8jreyC.d.mts → types-DZPw8Rru.d.mts} +0 -0
  331. /package/dist/{types-B9gKVOHk.mjs → types-fAInWQDO.mjs} +0 -0
  332. /package/dist/{utils-D2in-zwy.mjs → utils-C0ONdBul.mjs} +0 -0
  333. /package/dist/{validate-BJgA6TW_.mjs → validate-C7TzfamJ.mjs} +0 -0
  334. /package/dist/{wordpress-slugs-BevajWrC.mjs → wordpress-slugs-CnporCYH.mjs} +0 -0
@@ -0,0 +1,835 @@
1
+ import { t as Database } from "./types-DZPw8Rru.mjs";
2
+ import { a as Collection, i as SiteSettings, r as SiteSettingKey } from "./types-C0mmVRJN.mjs";
3
+ import { m as MediaValue } from "./types-OPs5Q_sX.mjs";
4
+ import { Kysely } from "kysely";
5
+ import { z } from "astro/zod";
6
+
7
+ //#region src/database/repositories/comment.d.ts
8
+ /** Public-facing comment shape — no private fields */
9
+ interface PublicComment {
10
+ id: string;
11
+ parentId: string | null;
12
+ authorName: string;
13
+ isRegisteredUser: boolean;
14
+ body: string;
15
+ createdAt: string;
16
+ replies?: PublicComment[];
17
+ }
18
+ //#endregion
19
+ //#region src/fields/types.d.ts
20
+ /**
21
+ * SQLite column types that map from field types
22
+ */
23
+ type ColumnType = "TEXT" | "REAL" | "INTEGER" | "JSON";
24
+ /**
25
+ * Base field definition
26
+ *
27
+ * Note: schema uses z.ZodTypeAny to accommodate optional/default wrappers
28
+ */
29
+ interface FieldDefinition<_T = unknown> {
30
+ type: string;
31
+ /**
32
+ * The SQLite column type to use when storing this field
33
+ */
34
+ columnType: ColumnType;
35
+ schema: z.ZodTypeAny;
36
+ options?: unknown;
37
+ ui?: FieldUIHints;
38
+ }
39
+ /**
40
+ * UI hints for admin rendering
41
+ */
42
+ interface FieldUIHints {
43
+ widget?: string;
44
+ placeholder?: string;
45
+ helpText?: string;
46
+ rows?: number;
47
+ min?: number | string;
48
+ max?: number | string;
49
+ [key: string]: unknown;
50
+ }
51
+ /**
52
+ * Portable Text block structure
53
+ */
54
+ interface PortableTextBlock {
55
+ _type: string;
56
+ _key: string;
57
+ [key: string]: unknown;
58
+ }
59
+ /**
60
+ * @deprecated Use MediaValue instead. ImageValue is an alias for backwards compatibility.
61
+ */
62
+ type ImageValue = MediaValue;
63
+ /**
64
+ * File field value
65
+ */
66
+ interface FileValue {
67
+ id: string;
68
+ url: string;
69
+ filename: string;
70
+ mimeType: string;
71
+ size: number;
72
+ }
73
+ //#endregion
74
+ //#region src/fields/image.d.ts
75
+ /**
76
+ * Image field
77
+ * References media items from the media library
78
+ */
79
+ declare function image(options?: {
80
+ required?: boolean;
81
+ maxSize?: number;
82
+ allowedTypes?: string[];
83
+ }): FieldDefinition<ImageValue | undefined>;
84
+ //#endregion
85
+ //#region src/fields/reference.d.ts
86
+ /**
87
+ * Reference field
88
+ * References another content item by ID
89
+ */
90
+ declare function reference(collection: string, options?: {
91
+ required?: boolean;
92
+ }): FieldDefinition<string | undefined>;
93
+ //#endregion
94
+ //#region src/fields/portable-text.d.ts
95
+ /**
96
+ * Portable Text field
97
+ * Stores structured content in Portable Text format
98
+ */
99
+ declare function portableText(options?: {
100
+ required?: boolean;
101
+ }): FieldDefinition<PortableTextBlock[] | undefined>;
102
+ //#endregion
103
+ //#region src/schema/query.d.ts
104
+ /**
105
+ * Get collection metadata by slug.
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * import { getCollectionInfo } from "dineway";
110
+ *
111
+ * const info = await getCollectionInfo("posts");
112
+ * if (info?.commentsEnabled) {
113
+ * // render comment UI
114
+ * }
115
+ * ```
116
+ */
117
+ declare function getCollectionInfo(slug: string): Promise<Collection | null>;
118
+ //#endregion
119
+ //#region src/utils/url.d.ts
120
+ /**
121
+ * URL scheme validation utilities
122
+ *
123
+ * Prevents XSS via dangerous URL schemes (javascript:, data:, vbscript:, etc.)
124
+ * by allowlisting known-safe schemes before rendering into href attributes.
125
+ */
126
+ /**
127
+ * Returns the URL unchanged if it uses a safe scheme, otherwise returns "#".
128
+ *
129
+ * Use this at the render layer as the primary defense against XSS via
130
+ * dangerous URL schemes like `javascript:`, `data:`, or `vbscript:`.
131
+ *
132
+ * @example
133
+ * ```ts
134
+ * sanitizeHref("https://example.com") // "https://example.com"
135
+ * sanitizeHref("/about") // "/about"
136
+ * sanitizeHref("#section") // "#section"
137
+ * sanitizeHref("mailto:a@b.com") // "mailto:a@b.com"
138
+ * sanitizeHref("javascript:alert(1)") // "#"
139
+ * sanitizeHref("data:text/html,<script>") // "#"
140
+ * sanitizeHref("") // "#"
141
+ * ```
142
+ */
143
+ declare function sanitizeHref(url: string | undefined | null): string;
144
+ /**
145
+ * Returns true if the URL uses a safe scheme for rendering in href attributes.
146
+ */
147
+ declare function isSafeHref(url: string): boolean;
148
+ //#endregion
149
+ //#region src/visual-editing/editable.d.ts
150
+ /**
151
+ * Visual editing annotation system
152
+ *
153
+ * Creates Proxy objects that emit data-dineway-ref attributes when spread onto elements.
154
+ */
155
+ interface CMSAnnotation {
156
+ collection: string;
157
+ id: string;
158
+ field?: string;
159
+ /** Entry status — only present on entry-level annotations (not field-level) */
160
+ status?: string;
161
+ /** Whether the entry has unpublished draft changes */
162
+ hasDraft?: boolean;
163
+ }
164
+ /** The shape returned when spreading an edit annotation onto an element */
165
+ interface FieldAnnotation {
166
+ "data-dineway-ref": string;
167
+ }
168
+ interface EditableOptions {
169
+ /** Entry status: "draft", "published", "scheduled" */
170
+ status?: string;
171
+ /** true when draftRevisionId exists and differs from liveRevisionId */
172
+ hasDraft?: boolean;
173
+ }
174
+ /**
175
+ * Create an editable proxy for an entry.
176
+ *
177
+ * Usage:
178
+ * - `{...entry.edit}` - entry-level annotation (includes status/hasDraft)
179
+ * - `{...entry.edit.title}` - field-level annotation
180
+ * - `{...entry.edit['nested.field']}` - nested field (bracket notation)
181
+ */
182
+ declare function createEditable(collection: string, id: string, options?: EditableOptions): EditProxy;
183
+ /**
184
+ * Create a noop proxy for production mode.
185
+ * Spreading this produces no attributes.
186
+ */
187
+ declare function createNoop(): EditProxy;
188
+ /**
189
+ * Visual editing proxy type.
190
+ *
191
+ * Spread directly onto elements for entry-level annotations: `{...entry.edit}`
192
+ * Access a field for field-level annotations: `{...entry.edit.title}`
193
+ *
194
+ * In production, spreading produces no attributes (noop).
195
+ */
196
+ type EditProxy = {
197
+ readonly [field: string]: Partial<FieldAnnotation>;
198
+ };
199
+ //#endregion
200
+ //#region src/query.d.ts
201
+ /**
202
+ * Collection type registry for type-safe queries.
203
+ *
204
+ * This interface is extended by the generated dineway-env.d.ts file
205
+ * to provide type inference for collection names and their data shapes.
206
+ *
207
+ * @example
208
+ * ```ts
209
+ * // In dineway-env.d.ts (generated):
210
+ * declare module "dineway" {
211
+ * interface DinewayCollections {
212
+ * posts: { title: string; content: PortableTextBlock[]; };
213
+ * pages: { title: string; body: PortableTextBlock[]; };
214
+ * }
215
+ * }
216
+ *
217
+ * // Then in your code:
218
+ * const { entries } = await getDinewayCollection("posts");
219
+ * // entries[0].data.title is typed as string
220
+ * ```
221
+ */
222
+ interface DinewayCollections {}
223
+ /**
224
+ * Helper type to infer the data type for a collection.
225
+ * Returns the registered type if known, otherwise falls back to Record<string, unknown>.
226
+ */
227
+ type InferCollectionData<T extends string> = T extends keyof DinewayCollections ? DinewayCollections[T] : Record<string, unknown>;
228
+ /**
229
+ * Sort direction
230
+ */
231
+ type SortDirection = "asc" | "desc";
232
+ /**
233
+ * Order by specification - field name to direction
234
+ * @example { created_at: "desc" } - Sort by created_at descending
235
+ * @example { title: "asc" } - Sort by title ascending
236
+ * @example { published_at: "desc", title: "asc" } - Multi-field sort
237
+ */
238
+ type OrderBySpec = Record<string, SortDirection>;
239
+ interface CollectionFilter {
240
+ status?: "draft" | "published" | "archived";
241
+ limit?: number;
242
+ /**
243
+ * Opaque cursor for keyset pagination.
244
+ * Pass the `nextCursor` value from a previous result to fetch the next page.
245
+ * @example
246
+ * ```ts
247
+ * const cursor = Astro.url.searchParams.get("cursor") ?? undefined;
248
+ * const { entries, nextCursor } = await getDinewayCollection("posts", {
249
+ * limit: 10,
250
+ * cursor,
251
+ * });
252
+ * ```
253
+ */
254
+ cursor?: string;
255
+ /**
256
+ * Filter by field values or taxonomy terms
257
+ * @example { category: 'news' } - Filter by taxonomy term
258
+ * @example { category: ['news', 'featured'] } - Filter by multiple terms (OR)
259
+ */
260
+ where?: Record<string, string | string[]>;
261
+ /**
262
+ * Order results by field(s)
263
+ * @default { created_at: "desc" }
264
+ * @example { created_at: "desc" } - Sort by created_at descending (default)
265
+ * @example { title: "asc" } - Sort by title ascending
266
+ * @example { published_at: "desc", title: "asc" } - Multi-field sort
267
+ */
268
+ orderBy?: OrderBySpec;
269
+ /**
270
+ * Filter by locale. When set, only returns entries in this locale.
271
+ * Only relevant when i18n is configured.
272
+ * @example "en" — English entries only
273
+ * @example "fr" — French entries only
274
+ */
275
+ locale?: string;
276
+ }
277
+ interface ContentEntry<T = Record<string, unknown>> {
278
+ id: string;
279
+ data: T;
280
+ /** Visual editing annotations. Spread onto elements: {...entry.edit.title} */
281
+ edit: EditProxy;
282
+ }
283
+ /** Cache hint returned by the content loader for route caching */
284
+ interface CacheHint {
285
+ tags?: string[];
286
+ lastModified?: Date;
287
+ }
288
+ /**
289
+ * Result from getDinewayCollection
290
+ */
291
+ interface CollectionResult<T> {
292
+ /** The entries (empty array if error or none found) */
293
+ entries: ContentEntry<T>[];
294
+ /** Error if the query failed */
295
+ error?: Error;
296
+ /** Cache hint for route caching (pass to Astro.cache.set()) */
297
+ cacheHint: CacheHint;
298
+ /**
299
+ * Opaque cursor for the next page.
300
+ * Undefined when there are no more results.
301
+ * Pass this as `cursor` in the next query to get the next page.
302
+ */
303
+ nextCursor?: string;
304
+ }
305
+ /**
306
+ * Result from getDinewayEntry
307
+ */
308
+ interface EntryResult<T> {
309
+ /** The entry, or null if not found */
310
+ entry: ContentEntry<T> | null;
311
+ /** Error if the query failed (not set for "not found", only for actual errors) */
312
+ error?: Error;
313
+ /** Whether we're in preview mode (valid token was provided) */
314
+ isPreview: boolean;
315
+ /** Set when a fallback locale was used instead of the requested locale */
316
+ fallbackLocale?: string;
317
+ /** Cache hint for route caching (pass to Astro.cache.set()) */
318
+ cacheHint: CacheHint;
319
+ }
320
+ /** Edit metadata attached to PT arrays in edit mode */
321
+ interface EditFieldMeta {
322
+ collection: string;
323
+ id: string;
324
+ field: string;
325
+ }
326
+ /**
327
+ * Read edit metadata from a value (returns undefined if not tagged).
328
+ * Uses Object.getOwnPropertyDescriptor to access Symbol-keyed property
329
+ * without an unsafe type assertion.
330
+ */
331
+ declare function getEditMeta(value: unknown): EditFieldMeta | undefined;
332
+ /**
333
+ * Get all entries of a content type
334
+ *
335
+ * Returns { entries, error } for graceful error handling.
336
+ *
337
+ * When dineway-env.d.ts is generated, the collection name will be
338
+ * type-checked and the return type will be inferred automatically.
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * import { getDinewayCollection } from "dineway";
343
+ *
344
+ * const { entries: posts, error } = await getDinewayCollection("posts");
345
+ * if (error) {
346
+ * console.error("Failed to load posts:", error);
347
+ * return;
348
+ * }
349
+ * // posts[0].data.title is typed (if dineway-env.d.ts exists)
350
+ *
351
+ * // With filters
352
+ * const { entries: drafts } = await getDinewayCollection("posts", { status: "draft" });
353
+ * ```
354
+ */
355
+ declare function getDinewayCollection<T extends string, D = InferCollectionData<T>>(type: T, filter?: CollectionFilter): Promise<CollectionResult<D>>;
356
+ /**
357
+ * Get a single entry by type and ID/slug
358
+ *
359
+ * Returns { entry, error, isPreview } for graceful error handling.
360
+ * - entry is null if not found (not an error)
361
+ * - error is set only for actual errors (db issues, etc.)
362
+ *
363
+ * Preview mode is detected automatically from request context (ALS).
364
+ * When the URL has a valid `_preview` token, the middleware sets preview
365
+ * context and this function serves draft revision data if available.
366
+ *
367
+ * @example
368
+ * ```ts
369
+ * import { getDinewayEntry } from "dineway";
370
+ *
371
+ * // Simple usage — preview just works via middleware
372
+ * const { entry: post, isPreview, error } = await getDinewayEntry("posts", "my-slug");
373
+ * if (!post) return Astro.redirect("/404");
374
+ * ```
375
+ */
376
+ declare function getDinewayEntry<T extends string, D = InferCollectionData<T>>(type: T, id: string, options?: {
377
+ locale?: string;
378
+ }): Promise<EntryResult<D>>;
379
+ /**
380
+ * Translation summary for a single locale variant
381
+ */
382
+ interface TranslationSummary {
383
+ /** Content item ID */
384
+ id: string;
385
+ /** Locale code (e.g. "en", "fr") */
386
+ locale: string;
387
+ /** URL slug */
388
+ slug: string | null;
389
+ /** Current status */
390
+ status: string;
391
+ }
392
+ /**
393
+ * Result from getTranslations
394
+ */
395
+ interface TranslationsResult {
396
+ /** The translation group ID (shared across locales) */
397
+ translationGroup: string;
398
+ /** All locale variants in this group */
399
+ translations: TranslationSummary[];
400
+ /** Error if the query failed */
401
+ error?: Error;
402
+ }
403
+ /**
404
+ * Get all translations of a content item.
405
+ *
406
+ * Given a content entry, returns all locale variants that share the same
407
+ * translation group. This is useful for building language switcher UI.
408
+ *
409
+ * @example
410
+ * ```ts
411
+ * import { getDinewayEntry, getTranslations } from "dineway";
412
+ *
413
+ * const { entry: post } = await getDinewayEntry("posts", "hello-world", { locale: "en" });
414
+ * const { translations } = await getTranslations("posts", post.data.id);
415
+ * // translations = [{ id: "...", locale: "en", slug: "hello-world", status: "published" }, ...]
416
+ * ```
417
+ */
418
+ declare function getTranslations(type: string, id: string): Promise<TranslationsResult>;
419
+ /**
420
+ * Result from resolveDinewayPath
421
+ */
422
+ interface ResolvePathResult<T = Record<string, unknown>> {
423
+ /** The matched entry */
424
+ entry: ContentEntry<T>;
425
+ /** The collection slug that matched */
426
+ collection: string;
427
+ /** Extracted parameters from the URL pattern (e.g. { slug: "my-post" }) */
428
+ params: Record<string, string>;
429
+ }
430
+ /**
431
+ * Resolve a URL path to a content entry by matching against collection URL patterns.
432
+ *
433
+ * Loads all collections with a `urlPattern` set, converts each pattern to a regex,
434
+ * and tests the given path. On match, extracts the slug and fetches the entry.
435
+ *
436
+ * @example
437
+ * ```ts
438
+ * import { resolveDinewayPath } from "dineway";
439
+ *
440
+ * // Given pages with urlPattern "/{slug}" and posts with "/blog/{slug}":
441
+ * const result = await resolveDinewayPath("/blog/hello-world");
442
+ * if (result) {
443
+ * console.log(result.collection); // "posts"
444
+ * console.log(result.params.slug); // "hello-world"
445
+ * console.log(result.entry.data); // post data
446
+ * }
447
+ * ```
448
+ */
449
+ declare function resolveDinewayPath<T = Record<string, unknown>>(path: string): Promise<ResolvePathResult<T> | null>;
450
+ //#endregion
451
+ //#region src/settings/index.d.ts
452
+ /**
453
+ * Get a single site setting by key
454
+ *
455
+ * Returns `undefined` if the setting has not been configured.
456
+ * For media settings (logo, favicon), the URL is resolved automatically.
457
+ *
458
+ * @param key - The setting key (e.g., "title", "logo", "social")
459
+ * @returns The setting value, or undefined if not set
460
+ *
461
+ * @example
462
+ * ```ts
463
+ * import { getSiteSetting } from "dineway";
464
+ *
465
+ * const title = await getSiteSetting("title");
466
+ * const logo = await getSiteSetting("logo");
467
+ * console.log(logo?.url); // Resolved URL
468
+ * ```
469
+ */
470
+ declare function getSiteSetting<K extends SiteSettingKey>(key: K): Promise<SiteSettings[K] | undefined>;
471
+ /**
472
+ * Get all site settings
473
+ *
474
+ * Returns all configured settings. Unset values are undefined.
475
+ * Media references (logo/favicon) are resolved to include URLs.
476
+ *
477
+ * @example
478
+ * ```ts
479
+ * import { getSiteSettings } from "dineway";
480
+ *
481
+ * const settings = await getSiteSettings();
482
+ * console.log(settings.title); // "My Site"
483
+ * console.log(settings.logo?.url); // "/_dineway/api/media/file/abc123"
484
+ * ```
485
+ */
486
+ declare function getSiteSettings(): Promise<Partial<SiteSettings>>;
487
+ /**
488
+ * Set site settings (internal function used by admin API)
489
+ *
490
+ * Merges provided settings with existing ones. Only provided fields are updated.
491
+ * Media references should include just the mediaId; URLs are resolved on read.
492
+ *
493
+ * @param settings - Partial settings object with values to update
494
+ * @param db - Kysely database instance
495
+ * @returns Promise that resolves when settings are saved
496
+ *
497
+ * @internal
498
+ *
499
+ * @example
500
+ * ```ts
501
+ * // Update multiple settings at once
502
+ * await setSiteSettings({
503
+ * title: "My Site",
504
+ * tagline: "Welcome",
505
+ * logo: { mediaId: "med_123", alt: "Logo" }
506
+ * }, db);
507
+ * ```
508
+ */
509
+ declare function setSiteSettings(settings: Partial<SiteSettings>, db: Kysely<Database>): Promise<void>;
510
+ /**
511
+ * Get a single plugin setting by key.
512
+ *
513
+ * Plugin settings are stored in the options table under
514
+ * `plugin:<pluginId>:settings:<key>`.
515
+ */
516
+ declare function getPluginSetting<T = unknown>(pluginId: string, key: string): Promise<T | undefined>;
517
+ /**
518
+ * Get all persisted plugin settings for a plugin.
519
+ *
520
+ * Defaults declared in `admin.settingsSchema` are not materialized
521
+ * automatically; callers should apply their own fallback defaults.
522
+ */
523
+ declare function getPluginSettings(pluginId: string): Promise<Record<string, unknown>>;
524
+ //#endregion
525
+ //#region src/comments/query.d.ts
526
+ interface GetCommentsOptions {
527
+ collection: string;
528
+ contentId: string;
529
+ threaded?: boolean;
530
+ }
531
+ interface GetCommentsResult {
532
+ items: PublicComment[];
533
+ total: number;
534
+ }
535
+ /**
536
+ * Get approved comments for a content item.
537
+ *
538
+ * @example
539
+ * ```ts
540
+ * import { getComments } from "dineway";
541
+ *
542
+ * const { items, total } = await getComments({
543
+ * collection: "posts",
544
+ * contentId: post.id,
545
+ * threaded: true,
546
+ * });
547
+ * ```
548
+ */
549
+ declare function getComments(options: GetCommentsOptions): Promise<GetCommentsResult>;
550
+ /**
551
+ * Get the count of approved comments for a content item.
552
+ *
553
+ * @example
554
+ * ```ts
555
+ * import { getCommentCount } from "dineway";
556
+ *
557
+ * const count = await getCommentCount("posts", post.id);
558
+ * ```
559
+ */
560
+ declare function getCommentCount(collection: string, contentId: string): Promise<number>;
561
+ //#endregion
562
+ //#region src/menus/types.d.ts
563
+ /**
564
+ * Menu item types
565
+ */
566
+ type MenuItemType = string;
567
+ /**
568
+ * Menu item as returned to templates (with resolved URL)
569
+ */
570
+ interface MenuItem {
571
+ id: string;
572
+ label: string;
573
+ url: string;
574
+ target?: string;
575
+ titleAttr?: string;
576
+ cssClasses?: string;
577
+ children: MenuItem[];
578
+ }
579
+ /**
580
+ * Menu as returned to templates
581
+ */
582
+ interface Menu {
583
+ id: string;
584
+ name: string;
585
+ label: string;
586
+ items: MenuItem[];
587
+ }
588
+ /**
589
+ * Input for creating a menu item
590
+ */
591
+ interface CreateMenuItemInput {
592
+ type: MenuItemType;
593
+ label: string;
594
+ referenceCollection?: string;
595
+ referenceId?: string;
596
+ customUrl?: string;
597
+ target?: string;
598
+ titleAttr?: string;
599
+ cssClasses?: string;
600
+ parentId?: string;
601
+ sortOrder?: number;
602
+ }
603
+ /**
604
+ * Input for updating a menu item
605
+ */
606
+ interface UpdateMenuItemInput {
607
+ label?: string;
608
+ customUrl?: string;
609
+ target?: string;
610
+ titleAttr?: string;
611
+ cssClasses?: string;
612
+ parentId?: string | null;
613
+ sortOrder?: number;
614
+ }
615
+ /**
616
+ * Input for creating a menu
617
+ */
618
+ interface CreateMenuInput {
619
+ name: string;
620
+ label: string;
621
+ }
622
+ /**
623
+ * Input for updating a menu
624
+ */
625
+ interface UpdateMenuInput {
626
+ label?: string;
627
+ }
628
+ /**
629
+ * Input for reordering menu items
630
+ */
631
+ interface ReorderMenuItemsInput {
632
+ items: Array<{
633
+ id: string;
634
+ parentId: string | null;
635
+ sortOrder: number;
636
+ }>;
637
+ }
638
+ //#endregion
639
+ //#region src/menus/index.d.ts
640
+ /**
641
+ * Get menu by name with resolved URLs
642
+ *
643
+ * @example
644
+ * ```ts
645
+ * import { getMenu } from "dineway";
646
+ *
647
+ * const menu = await getMenu("primary");
648
+ * if (menu) {
649
+ * console.log(menu.items); // Array of MenuItem with resolved URLs
650
+ * }
651
+ * ```
652
+ */
653
+ declare function getMenu(name: string): Promise<Menu | null>;
654
+ /**
655
+ * Get all menus (without items - for admin list)
656
+ *
657
+ * @example
658
+ * ```ts
659
+ * import { getMenus } from "dineway";
660
+ *
661
+ * const menus = await getMenus();
662
+ * console.log(menus); // [{ id, name, label }]
663
+ * ```
664
+ */
665
+ declare function getMenus(): Promise<Array<{
666
+ id: string;
667
+ name: string;
668
+ label: string;
669
+ }>>;
670
+ //#endregion
671
+ //#region src/taxonomies/types.d.ts
672
+ /**
673
+ * Taxonomy types for Dineway Agentic Web builder
674
+ */
675
+ /**
676
+ * Taxonomy definition - describes a taxonomy like "category" or "tag"
677
+ */
678
+ interface TaxonomyDef {
679
+ id: string;
680
+ name: string;
681
+ label: string;
682
+ labelSingular?: string;
683
+ hierarchical: boolean;
684
+ collections: string[];
685
+ }
686
+ /**
687
+ * Taxonomy term - a specific term within a taxonomy (e.g., "News" in "category")
688
+ */
689
+ interface TaxonomyTerm {
690
+ id: string;
691
+ name: string;
692
+ slug: string;
693
+ label: string;
694
+ parentId?: string;
695
+ description?: string;
696
+ children: TaxonomyTerm[];
697
+ count?: number;
698
+ }
699
+ /**
700
+ * Flat version for DB row
701
+ */
702
+ interface TaxonomyTermRow {
703
+ id: string;
704
+ name: string;
705
+ slug: string;
706
+ label: string;
707
+ parent_id: string | null;
708
+ data: string | null;
709
+ }
710
+ /**
711
+ * Input for creating a term
712
+ */
713
+ interface CreateTermInput {
714
+ slug: string;
715
+ label: string;
716
+ parentId?: string;
717
+ description?: string;
718
+ }
719
+ /**
720
+ * Input for updating a term
721
+ */
722
+ interface UpdateTermInput {
723
+ slug?: string;
724
+ label?: string;
725
+ parentId?: string | null;
726
+ description?: string;
727
+ }
728
+ //#endregion
729
+ //#region src/taxonomies/index.d.ts
730
+ /**
731
+ * Get all taxonomy definitions
732
+ */
733
+ declare function getTaxonomyDefs(): Promise<TaxonomyDef[]>;
734
+ /**
735
+ * Get a single taxonomy definition by name
736
+ */
737
+ declare function getTaxonomyDef(name: string): Promise<TaxonomyDef | null>;
738
+ /**
739
+ * Get all terms for a taxonomy (as tree for hierarchical, flat for tags)
740
+ */
741
+ declare function getTaxonomyTerms(taxonomyName: string): Promise<TaxonomyTerm[]>;
742
+ /**
743
+ * Get a single term by taxonomy and slug
744
+ */
745
+ declare function getTerm(taxonomyName: string, slug: string): Promise<TaxonomyTerm | null>;
746
+ /**
747
+ * Get terms assigned to an entry
748
+ */
749
+ declare function getEntryTerms(collection: string, entryId: string, taxonomyName?: string): Promise<TaxonomyTerm[]>;
750
+ /**
751
+ * Get terms for multiple entries in a single query (batched API)
752
+ *
753
+ * This is more efficient than calling getEntryTerms for each entry
754
+ * when you need terms for a list of entries.
755
+ *
756
+ * @param collection - The collection type (e.g., "posts")
757
+ * @param entryIds - Array of entry IDs
758
+ * @param taxonomyName - The taxonomy name (e.g., "categories")
759
+ * @returns Map from entry ID to array of terms
760
+ */
761
+ declare function getTermsForEntries(collection: string, entryIds: string[], taxonomyName: string): Promise<Map<string, TaxonomyTerm[]>>;
762
+ /**
763
+ * Get entries by term (wraps getDinewayCollection)
764
+ */
765
+ declare function getEntriesByTerm(collection: string, taxonomyName: string, termSlug: string): Promise<Array<{
766
+ id: string;
767
+ data: Record<string, unknown>;
768
+ }>>;
769
+ //#endregion
770
+ //#region src/widgets/types.d.ts
771
+ type WidgetType = "content" | "menu" | "component";
772
+ interface Widget {
773
+ id: string;
774
+ type: WidgetType;
775
+ title?: string;
776
+ content?: PortableTextBlock[];
777
+ menuName?: string;
778
+ componentId?: string;
779
+ componentProps?: Record<string, unknown>;
780
+ }
781
+ interface WidgetArea {
782
+ id: string;
783
+ name: string;
784
+ label: string;
785
+ description?: string;
786
+ widgets: Widget[];
787
+ }
788
+ interface WidgetComponentDef {
789
+ id: string;
790
+ label: string;
791
+ description?: string;
792
+ props: Record<string, PropDef>;
793
+ }
794
+ interface PropDef {
795
+ type: "string" | "number" | "boolean" | "select";
796
+ label: string;
797
+ default?: unknown;
798
+ options?: Array<{
799
+ value: string;
800
+ label: string;
801
+ }>;
802
+ }
803
+ interface CreateWidgetAreaInput {
804
+ name: string;
805
+ label: string;
806
+ description?: string;
807
+ }
808
+ interface CreateWidgetInput {
809
+ type: WidgetType;
810
+ title?: string;
811
+ content?: PortableTextBlock[];
812
+ menuName?: string;
813
+ componentId?: string;
814
+ componentProps?: Record<string, unknown>;
815
+ }
816
+ interface UpdateWidgetInput extends Partial<CreateWidgetInput> {}
817
+ interface ReorderWidgetsInput {
818
+ widgetIds: string[];
819
+ }
820
+ //#endregion
821
+ //#region src/widgets/index.d.ts
822
+ /**
823
+ * Get a widget area by name, with all its widgets
824
+ */
825
+ declare function getWidgetArea(name: string): Promise<WidgetArea | null>;
826
+ /**
827
+ * Get all widget areas with their widgets
828
+ */
829
+ declare function getWidgetAreas(): Promise<WidgetArea[]>;
830
+ /**
831
+ * Get available widget components (for admin UI)
832
+ */
833
+ declare function getWidgetComponents(): WidgetComponentDef[];
834
+ //#endregion
835
+ export { TranslationSummary as $, MenuItem as A, getPluginSettings as B, TaxonomyTermRow as C, CreateMenuInput as D, getMenus as E, GetCommentsOptions as F, CollectionFilter as G, getSiteSettings as H, GetCommentsResult as I, DinewayCollections as J, CollectionResult as K, getCommentCount as L, ReorderMenuItemsInput as M, UpdateMenuInput as N, CreateMenuItemInput as O, UpdateMenuItemInput as P, ResolvePathResult as Q, getComments as R, TaxonomyTerm as S, PublicComment as St, getMenu as T, setSiteSettings as U, getSiteSetting as V, CacheHint as W, EntryResult as X, EditFieldMeta as Y, InferCollectionData as Z, getTaxonomyTerms as _, FieldDefinition as _t, CreateWidgetInput as a, resolveDinewayPath as at, CreateTermInput as b, ImageValue as bt, UpdateWidgetInput as c, FieldAnnotation as ct, WidgetComponentDef as d, isSafeHref as dt, TranslationsResult as et, WidgetType as f, sanitizeHref as ft, getTaxonomyDefs as g, image as gt, getTaxonomyDef as h, reference as ht, CreateWidgetAreaInput as i, getTranslations as it, MenuItemType as j, Menu as k, Widget as l, createEditable as lt, getEntryTerms as m, portableText as mt, getWidgetAreas as n, getDinewayEntry as nt, PropDef as o, CMSAnnotation as ot, getEntriesByTerm as p, getCollectionInfo as pt, ContentEntry as q, getWidgetComponents as r, getEditMeta as rt, ReorderWidgetsInput as s, EditProxy as st, getWidgetArea as t, getDinewayCollection as tt, WidgetArea as u, createNoop as ut, getTerm as v, FieldUIHints as vt, UpdateTermInput as w, TaxonomyDef as x, PortableTextBlock as xt, getTermsForEntries as y, FileValue as yt, getPluginSetting as z };