dineway 0.1.49 → 0.2.0

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 (418) hide show
  1. package/dist/{activity-events-CwM7yxPW.mjs → activity-events-y6eT8UW6.mjs} +6 -38
  2. package/dist/actor-CrObAPV0.mjs +37 -0
  3. package/dist/after-BfniwgIf.mjs +9 -0
  4. package/dist/{allowed-origins-CyGnbgBd.mjs → allowed-origins-_oeyP6x-.mjs} +1 -1
  5. package/dist/api/route-utils.d.mts +10 -10
  6. package/dist/api/route-utils.mjs +16 -13
  7. package/dist/api/schemas/index.d.mts +2 -2
  8. package/dist/api/schemas/index.mjs +5 -4
  9. package/dist/{api-BMIxRIEN.mjs → api-ByrU2q-Z.mjs} +60 -36
  10. package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-CjVMQT-X.mjs} +6 -2
  11. package/dist/{apply-D_RlTYtC.mjs → apply-bZswmZPm.mjs} +117 -77
  12. package/dist/astro/image-endpoint.d.mts +7 -0
  13. package/dist/astro/image-endpoint.mjs +54 -0
  14. package/dist/astro/index.d.mts +35 -11
  15. package/dist/astro/index.mjs +157 -23
  16. package/dist/astro/integration/shims/use-sync-external-store-with-selector.js +71 -0
  17. package/dist/astro/integration/shims/use-sync-external-store.js +1 -0
  18. package/dist/astro/middleware/auth.d.mts +10 -10
  19. package/dist/astro/middleware/auth.mjs +42 -24
  20. package/dist/astro/middleware/redirect.mjs +13 -4
  21. package/dist/astro/middleware/request-context.mjs +8 -5
  22. package/dist/astro/middleware/seed.d.mts +1 -1
  23. package/dist/astro/middleware/seed.mjs +2 -2
  24. package/dist/astro/middleware/setup.mjs +1 -1
  25. package/dist/astro/middleware.mjs +333 -192
  26. package/dist/astro/routes/admin.astro +6 -1
  27. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -6
  28. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -6
  29. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  30. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  31. package/dist/astro/routes/api/admin/briefing.mjs +21 -17
  32. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  33. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -8
  34. package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -8
  35. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -8
  36. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -14
  37. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -14
  38. package/dist/astro/routes/api/admin/bylines/index.mjs +17 -14
  39. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -12
  40. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -5
  41. package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -9
  42. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -5
  43. package/dist/astro/routes/api/admin/comments/index.mjs +11 -9
  44. package/dist/astro/routes/api/admin/context/_id_/history.mjs +26 -24
  45. package/dist/astro/routes/api/admin/context/_id_/index.mjs +26 -24
  46. package/dist/astro/routes/api/admin/context/_id_/review.mjs +31 -28
  47. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +31 -28
  48. package/dist/astro/routes/api/admin/context/diff.mjs +30 -27
  49. package/dist/astro/routes/api/admin/context/index.mjs +31 -28
  50. package/dist/astro/routes/api/admin/context/stale.mjs +30 -27
  51. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +26 -24
  52. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +30 -27
  53. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +30 -27
  54. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +27 -25
  55. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  56. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  57. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  58. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +55 -51
  59. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +55 -51
  60. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -43
  61. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +53 -49
  62. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +52 -48
  63. package/dist/astro/routes/api/admin/plugins/index.mjs +47 -43
  64. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  65. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +46 -42
  66. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +52 -48
  67. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +46 -42
  68. package/dist/astro/routes/api/admin/plugins/updates.mjs +46 -42
  69. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
  70. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +31 -27
  71. package/dist/astro/routes/api/admin/review-requests/index.mjs +10 -9
  72. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +46 -42
  73. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  74. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +46 -42
  75. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  76. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
  77. package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -7
  78. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
  79. package/dist/astro/routes/api/admin/users/index.mjs +7 -6
  80. package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
  81. package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
  82. package/dist/astro/routes/api/auth/invite/complete.mjs +12 -11
  83. package/dist/astro/routes/api/auth/invite/index.mjs +9 -8
  84. package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -10
  85. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  86. package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -10
  87. package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
  88. package/dist/astro/routes/api/auth/me.mjs +9 -8
  89. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  90. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  91. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  92. package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -5
  93. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  94. package/dist/astro/routes/api/auth/passkey/options.mjs +12 -11
  95. package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -9
  96. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -10
  97. package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -10
  98. package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
  99. package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
  100. package/dist/astro/routes/api/auth/signup/complete.mjs +12 -11
  101. package/dist/astro/routes/api/auth/signup/request.mjs +11 -10
  102. package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
  103. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -13
  104. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +8 -0
  105. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +160 -0
  106. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  107. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +5 -5
  108. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  109. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  110. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -10
  111. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +10 -9
  112. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  113. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  114. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +10 -9
  115. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +16 -14
  116. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  117. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -5
  118. package/dist/astro/routes/api/content/_collection_/_id_.mjs +10 -9
  119. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  120. package/dist/astro/routes/api/content/_collection_/index.mjs +10 -9
  121. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
  122. package/dist/astro/routes/api/dashboard.mjs +9 -8
  123. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  124. package/dist/astro/routes/api/health.mjs +1 -1
  125. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  126. package/dist/astro/routes/api/import/probe.mjs +22 -10
  127. package/dist/astro/routes/api/import/wordpress/analyze.mjs +9 -6
  128. package/dist/astro/routes/api/import/wordpress/execute.d.mts +19 -1
  129. package/dist/astro/routes/api/import/wordpress/execute.mjs +84 -37
  130. package/dist/astro/routes/api/import/wordpress/media.d.mts +13 -1
  131. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
  132. package/dist/astro/routes/api/import/wordpress/prepare.mjs +35 -32
  133. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +18 -1
  134. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +120 -100
  135. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  136. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -12
  137. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +56 -2
  138. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +283 -55
  139. package/dist/astro/routes/api/manifest.mjs +14 -5
  140. package/dist/astro/routes/api/mcp.mjs +265 -69
  141. package/dist/astro/routes/api/media/_id_/confirm.mjs +38 -10
  142. package/dist/astro/routes/api/media/_id_.mjs +11 -7
  143. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  144. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  145. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  146. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  147. package/dist/astro/routes/api/media/upload-url.mjs +11 -10
  148. package/dist/astro/routes/api/media.mjs +27 -34
  149. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +31 -28
  150. package/dist/astro/routes/api/menus/_name_/items.mjs +31 -28
  151. package/dist/astro/routes/api/menus/_name_/reorder.mjs +31 -28
  152. package/dist/astro/routes/api/menus/_name_/translations.mjs +31 -28
  153. package/dist/astro/routes/api/menus/_name_.mjs +31 -28
  154. package/dist/astro/routes/api/menus/index.mjs +31 -28
  155. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  156. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  157. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  158. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  159. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  160. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  161. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  162. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  163. package/dist/astro/routes/api/openapi.json.mjs +4 -3
  164. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +30 -30
  165. package/dist/astro/routes/api/redirects/404s/index.mjs +11 -10
  166. package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -10
  167. package/dist/astro/routes/api/redirects/_id_.mjs +32 -29
  168. package/dist/astro/routes/api/redirects/index.mjs +32 -29
  169. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  170. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  171. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +47 -43
  172. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +47 -43
  173. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +47 -43
  174. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +47 -43
  175. package/dist/astro/routes/api/schema/collections/index.mjs +47 -43
  176. package/dist/astro/routes/api/schema/index.mjs +13 -14
  177. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +46 -42
  178. package/dist/astro/routes/api/schema/orphans/index.mjs +46 -42
  179. package/dist/astro/routes/api/search/enable.mjs +11 -10
  180. package/dist/astro/routes/api/search/index.mjs +10 -9
  181. package/dist/astro/routes/api/search/rebuild.mjs +11 -10
  182. package/dist/astro/routes/api/search/stats.mjs +6 -6
  183. package/dist/astro/routes/api/search/suggest.mjs +10 -9
  184. package/dist/astro/routes/api/sections/_slug_.mjs +31 -28
  185. package/dist/astro/routes/api/sections/index.mjs +31 -28
  186. package/dist/astro/routes/api/settings/email.mjs +4 -4
  187. package/dist/astro/routes/api/settings.mjs +31 -28
  188. package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
  189. package/dist/astro/routes/api/setup/admin.mjs +12 -11
  190. package/dist/astro/routes/api/setup/dev-bypass.mjs +31 -25
  191. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  192. package/dist/astro/routes/api/setup/index.mjs +29 -25
  193. package/dist/astro/routes/api/setup/status.mjs +3 -3
  194. package/dist/astro/routes/api/snapshot.mjs +8 -7
  195. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +34 -31
  196. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +34 -31
  197. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +34 -31
  198. package/dist/astro/routes/api/taxonomies/index.mjs +34 -31
  199. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  200. package/dist/astro/routes/api/typegen.mjs +4 -4
  201. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  202. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  203. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  204. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +30 -27
  205. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +31 -28
  206. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +31 -28
  207. package/dist/astro/routes/api/widget-areas/_name_.mjs +28 -26
  208. package/dist/astro/routes/api/widget-areas/index.mjs +31 -28
  209. package/dist/astro/routes/api/widget-components.mjs +2 -2
  210. package/dist/astro/routes/robots.txt.mjs +8 -7
  211. package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -14
  212. package/dist/astro/routes/sitemap.xml.mjs +9 -8
  213. package/dist/astro/session-driver.d.mts +1 -1
  214. package/dist/astro/session-driver.mjs +2 -2
  215. package/dist/astro/types.d.mts +21 -13
  216. package/dist/{audit-BeNsSyfU.mjs → audit-ByVKIwWF.mjs} +1 -1
  217. package/dist/auth/providers/github.d.mts +1 -1
  218. package/dist/auth/providers/google.d.mts +1 -1
  219. package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-CqeUmQsv.mjs} +1 -1
  220. package/dist/{authorize-BLO0m7fW.mjs → authorize-CcBxcHtz.mjs} +1 -1
  221. package/dist/{briefing-DJX6irto.mjs → briefing-BJaJI8dm.mjs} +2 -1
  222. package/dist/{briefing-CkTee1ex.mjs → briefing-CawZ59CY.mjs} +90 -28
  223. package/dist/bundle-7C_DpkEq.mjs +602 -0
  224. package/dist/{byline-BVC1lV6G.mjs → byline-e51-fWRs.mjs} +30 -62
  225. package/dist/{byline-fields-uJlygdzM.d.mts → byline-fields-CUvbslGc.d.mts} +80 -37
  226. package/dist/{byline-fields-Cj39WhXC.mjs → byline-fields-D-N5qVIG.mjs} +1 -1
  227. package/dist/{byline-fields-cNrLJVRs.mjs → byline-fields-DOJO16Gm.mjs} +3 -3
  228. package/dist/{byline-registry-4v6tXMNX.mjs → byline-registry-87nNnYl4.mjs} +2 -2
  229. package/dist/{bylines-LN9XISRo.mjs → bylines-CMQNCNFh.mjs} +9 -3
  230. package/dist/{bylines-DwokOFj6.mjs → bylines-y4LO-dTj.mjs} +5 -5
  231. package/dist/{cache-Bac05gBd.mjs → cache-C-FNTFYK.mjs} +2 -2
  232. package/dist/{chunks-CuUt7K50.mjs → chunks-CxBt-GxR.mjs} +1 -1
  233. package/dist/cli/index.mjs +94 -659
  234. package/dist/client/external-auth-headers.d.mts +1 -1
  235. package/dist/client/index.d.mts +1 -1
  236. package/dist/client/index.mjs +2 -1
  237. package/dist/{comment-Beue8-15.mjs → comment-DlA4iChg.mjs} +13 -3
  238. package/dist/comment-reaction-DfFao1ST.mjs +58 -0
  239. package/dist/{comments-DcjFIfqX.mjs → comments-DApFGMsP.mjs} +1 -1
  240. package/dist/{content-CBxYGWfL.mjs → content-Bh4BDjv8.mjs} +51 -34
  241. package/dist/content-refresh-CgutSUfO.mjs +1576 -0
  242. package/dist/{context-CQVNZaR8.mjs → context-C5W3G18y.mjs} +111 -50
  243. package/dist/{context-Df1xVYyr.mjs → context-CK4ym2Sf.mjs} +2 -2
  244. package/dist/{context-route-helpers-B9wj8Rmh.mjs → context-route-helpers-MASyGgWf.mjs} +2 -1
  245. package/dist/{cron-DxCAU_Sn.mjs → cron-cKcNTix_.mjs} +7 -3
  246. package/dist/{dashboard-B7ZUNuyF.mjs → dashboard-DQkVT7Ei.mjs} +4 -4
  247. package/dist/db/index.d.mts +3 -3
  248. package/dist/db/index.mjs +1 -1
  249. package/dist/db/libsql.d.mts +1 -1
  250. package/dist/db/postgres.d.mts +1 -1
  251. package/dist/db/sqlite.d.mts +1 -1
  252. package/dist/{device-flow-BZVGftqi.mjs → device-flow-BnqRH-T9.mjs} +5 -5
  253. package/dist/{placeholder-d54Qr_7n.mjs → enrich-DIFIFA8O.mjs} +36 -9
  254. package/dist/{error-DCSuUAZW.mjs → error-CytFlgcd.mjs} +5 -0
  255. package/dist/field-defs-cache-DRNdhBJv.mjs +49 -0
  256. package/dist/{fts-manager-B5l_qwrA.mjs → fts-manager-Crzypjqu.mjs} +1 -1
  257. package/dist/hitl-Hw1RmWOq.mjs +677 -0
  258. package/dist/{hitl-requests-7NlzVeUA.mjs → hitl-requests-B4Vbcmaq.mjs} +2 -2
  259. package/dist/{hitl-route-helpers-k---_H3-.mjs → hitl-route-helpers-hEVzvP8l.mjs} +5 -4
  260. package/dist/import-Bh9biJfx.mjs +1354 -0
  261. package/dist/{index-CZiWCQDp.d.mts → index-D4y6NGiy.d.mts} +75 -3
  262. package/dist/index.d.mts +17 -16
  263. package/dist/index.mjs +80 -68
  264. package/dist/{jsonld-DZ67souc.d.mts → jsonld-Dq0gsnOH.d.mts} +8 -4
  265. package/dist/{load-D9OiGr2m.mjs → load-DmYeniXl.mjs} +1 -1
  266. package/dist/{loader--GOYux8M.mjs → loader-CjWqjweO.mjs} +117 -31
  267. package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-BxVPYMJR.mjs} +34 -1
  268. package/dist/mcp-reviewed-executor-TwVbMzG6.mjs +555 -0
  269. package/dist/media/image-endpoint.d.mts +32 -0
  270. package/dist/media/image-endpoint.mjs +111 -0
  271. package/dist/media/index.d.mts +27 -2
  272. package/dist/media/index.mjs +5 -3
  273. package/dist/media/local-runtime.d.mts +16 -11
  274. package/dist/media/local-runtime.mjs +9 -7
  275. package/dist/{media-CbKyYukG.mjs → media-DMj0grzC.mjs} +3 -1
  276. package/dist/{media-allowlist-BYxJIcTO.mjs → media-allowlist-BlVCSzHx.mjs} +1 -1
  277. package/dist/media-url-lEKSrpr9.mjs +20 -0
  278. package/dist/{menus-BZbXf-ej.mjs → menus-TaW1gKnk.mjs} +19 -5
  279. package/dist/{menus-C7F0sCrC.mjs → menus-xvsnVZXw.mjs} +80 -15
  280. package/dist/{normalize-ByemhhfW.mjs → normalize-5ek_z7de.mjs} +8 -1
  281. package/dist/{oauth-authorization-DF-LCsIA.mjs → oauth-authorization-DiaGvRVz.mjs} +5 -5
  282. package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-Dl9E8dEM.mjs} +2 -2
  283. package/dist/object-cache/memory.d.mts +14 -0
  284. package/dist/object-cache/memory.mjs +55 -0
  285. package/dist/object-cache-D51qOseS.mjs +419 -0
  286. package/dist/page/index.d.mts +4 -3
  287. package/dist/page/index.mjs +2 -2
  288. package/dist/{parse-CneSgl7-.mjs → parse-CbymENaR.mjs} +1 -1
  289. package/dist/{parser-DxfsARXL.mjs → parser-C1nYd-81.mjs} +151 -9
  290. package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-uvNRZBX9.d.mts} +12 -4
  291. package/dist/plugin-utils.d.mts +9 -9
  292. package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
  293. package/dist/plugins/adapt-sandbox-entry.mjs +11 -2
  294. package/dist/{plugins-DzfqRREq.mjs → plugins-BolVa-tl.mjs} +831 -63
  295. package/dist/{transport-LSdZVXHF.mjs → portable-text-dA_UlJwW.mjs} +1 -134
  296. package/dist/{preview-C-3YTX2U.mjs → preview-vSVg6fwG.mjs} +4 -3
  297. package/dist/process-cache-7xgAO9JY.mjs +106 -0
  298. package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-MD8zAbnH.d.mts} +1 -1
  299. package/dist/{public-url-B4xV4rGa.d.mts → public-url-gsp3oUbu.d.mts} +1 -1
  300. package/dist/{query-Ds0EnMFX.mjs → query-CfRCdaL3.mjs} +281 -76
  301. package/dist/{query-CZ3TH_Uu.mjs → query-jaAmw8E1.mjs} +11 -6
  302. package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-ZLdyWoZF.mjs} +2 -2
  303. package/dist/{redirect-CEACczxo.mjs → redirect-BAjt4Z6b.mjs} +2 -2
  304. package/dist/{redirects-DYj1yPxs.mjs → redirects-BTdwpQtE.mjs} +47 -24
  305. package/dist/{redirects-ocRJmQHP.mjs → redirects-CA-xylPG.mjs} +19 -11
  306. package/dist/{registry-D7HACema.mjs → registry-CtyVedcN.mjs} +130 -77
  307. package/dist/request-context.d.mts +2 -0
  308. package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CUypToDJ.mjs} +1 -1
  309. package/dist/{review-requests-Qum4713s.mjs → review-requests-C9Ff11Vq.mjs} +1 -1
  310. package/dist/{review-requests-BW2NxY-l.mjs → review-requests-DUyEmtmG.mjs} +1 -1
  311. package/dist/{runner-09sTqtv0.d.mts → runner-1tC2tIRV.d.mts} +1 -1
  312. package/dist/runner-DB7CRfOF.mjs +6740 -0
  313. package/dist/{runtime-C4-2lSFg.d.mts → runtime-BOeiQsCv.d.mts} +1952 -1489
  314. package/dist/runtime.d.mts +10 -10
  315. package/dist/runtime.mjs +3 -3
  316. package/dist/schema-DXdYj4R3.mjs +8 -0
  317. package/dist/{search-Gdrqj582.mjs → search-DSaLgEFI.mjs} +5 -3
  318. package/dist/{secrets-CeGpBFV2.mjs → secrets-CDZo2k8L.mjs} +14 -11
  319. package/dist/{sections-BOjU13Y-.mjs → sections-PVVXHGfp.mjs} +2 -2
  320. package/dist/seed/index.d.mts +2 -2
  321. package/dist/seed/index.mjs +21 -18
  322. package/dist/seo/index.d.mts +1 -1
  323. package/dist/seo/index.mjs +3 -12
  324. package/dist/{seo-CLj8lS7Q.mjs → seo-CQG3GCHQ.mjs} +5 -2
  325. package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-C1EnikHB.mjs} +11 -3
  326. package/dist/{seo-5lJOtB5J.mjs → seo-qa7Dn0jK.mjs} +22 -4
  327. package/dist/{service-jGlhrICs.mjs → service-DiN4ZuPp.mjs} +2 -2
  328. package/dist/session-user-CAKImna3.mjs +22 -0
  329. package/dist/{settings-CUXOxzsT.mjs → settings-BbqgHWpU.mjs} +28 -55
  330. package/dist/{settings-DlBsT2VS.mjs → settings-i4VPP8bT.mjs} +2 -2
  331. package/dist/{setup-complete-BRrdPYjZ.mjs → setup-complete-B8fl-mjV.mjs} +1 -1
  332. package/dist/{site-activity-DONFrMBJ.mjs → site-activity-Dy3FROs0.mjs} +1 -1
  333. package/dist/{site-context-C8Az_P_I.mjs → site-context-DQiL8Fl5.mjs} +23 -652
  334. package/dist/{site-url-DIMD68go.mjs → site-url-BML3GQYm.mjs} +1 -1
  335. package/dist/status-DANd8ERo.mjs +21 -0
  336. package/dist/storage/local.d.mts +1 -1
  337. package/dist/storage/local.mjs +1 -1
  338. package/dist/storage/s3.d.mts +1 -1
  339. package/dist/storage/s3.mjs +1 -1
  340. package/dist/{taxonomies-D9Sw4wWM.mjs → taxonomies-9s-v03H-.mjs} +36 -29
  341. package/dist/taxonomies-DRiixp_E.mjs +443 -0
  342. package/dist/{taxonomy-B169Nm6B.mjs → taxonomy-Dvsw6BOs.mjs} +44 -9
  343. package/dist/transport-BNmCqLu7.mjs +134 -0
  344. package/dist/types-4garmdWa.mjs +66 -0
  345. package/dist/{types-DSPGWjxO.d.mts → types-C8XW6L19.d.mts} +225 -4
  346. package/dist/{types-GaCtZ1k9.d.mts → types-CDpH6MA4.d.mts} +18 -0
  347. package/dist/{types-DRIKLmJI.d.mts → types-C_ly5eTp.d.mts} +17 -2
  348. package/dist/types-DF7ZuGGk.d.mts +118 -0
  349. package/dist/types-DU0bU2Wu.d.mts +2392 -0
  350. package/dist/{types-CwawBUTa.d.mts → types-DW_-sFyz.d.mts} +2 -1
  351. package/dist/{types-CSgR9nQB.mjs → types-Dq1qT19x.mjs} +1 -1
  352. package/dist/ui/server-runtime.d.mts +15 -15
  353. package/dist/ui/server-runtime.mjs +24 -20
  354. package/dist/url-Cac7a9QZ.mjs +33 -0
  355. package/dist/{user-DTLoZs16.mjs → user-BIZPzCb9.mjs} +2 -2
  356. package/dist/{utils-B8hBJ9Oz.mjs → utils-CMDhr5Xd.mjs} +129 -7
  357. package/dist/{validate-DzjCdy6v.d.mts → validate-CZvb-BKB.d.mts} +10 -7
  358. package/dist/{validate-DWmPO6oj.mjs → validate-DNs0pTSc.mjs} +11 -6
  359. package/dist/version-BTvfRGc6.mjs +6 -0
  360. package/dist/{widgets-BpJ8EpPd.mjs → widgets-f0ibZUIq.mjs} +46 -43
  361. package/dist/{wordpress-slugs-DHNR9LpG.mjs → wordpress-slugs-BhHJX8XE.mjs} +1 -1
  362. package/dist/{zod-generator-K91-g665.mjs → zod-generator-B7TMjyFJ.mjs} +41 -13
  363. package/package.json +30 -8
  364. package/src/components/Block.astro +50 -0
  365. package/src/components/Comments.astro +143 -1
  366. package/src/components/DinewayHead.astro +19 -2
  367. package/src/components/DinewayImage.astro +66 -33
  368. package/src/components/DinewayMedia.astro +1 -2
  369. package/src/components/Image.astro +85 -40
  370. package/src/components/InlinePortableTextEditor.tsx +12 -2
  371. package/src/components/JsonLdScript.astro +9 -0
  372. package/src/components/LiveSearch.astro +40 -4
  373. package/src/components/index.ts +4 -0
  374. package/src/components/live-search-routing.ts +30 -0
  375. package/src/components/portable-text-text-align.ts +15 -0
  376. package/src/ui.ts +2 -0
  377. package/dist/entity-aliases-4y93Yjuc.mjs +0 -51
  378. package/dist/import-4YBXbDkI.mjs +0 -684
  379. package/dist/runner-DzIpHGND.mjs +0 -2836
  380. package/dist/schema-Bsi-VpYv.mjs +0 -8
  381. package/dist/taxonomies-CZ-_DitR.mjs +0 -327
  382. package/dist/types-CuJOqHfM.d.mts +0 -758
  383. package/dist/version-C4gfn0PJ.mjs +0 -6
  384. /package/dist/{adapters-OQCImOL7.d.mts → adapters-NVSs4UH7.d.mts} +0 -0
  385. /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-2r7OWi_I.mjs} +0 -0
  386. /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-Bjlepa2E.mjs} +0 -0
  387. /package/dist/{components--pg6zBvu.mjs → components-Bclf98Be.mjs} +0 -0
  388. /package/dist/{context-types-r8oFvyOq.mjs → context-types-DqTo6C79.mjs} +0 -0
  389. /package/dist/{default-B6iaLvP7.mjs → default--K40jqm0.mjs} +0 -0
  390. /package/dist/{email-console-BOVqIYpB.mjs → email-console-ChgKFO8-.mjs} +0 -0
  391. /package/dist/{escape-BDgouFFY.mjs → escape-Bd4P_xKg.mjs} +0 -0
  392. /package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-BMsUnIAw.mjs} +0 -0
  393. /package/dist/{mime-CbKsKDCB.mjs → mime-CA7Lgovc.mjs} +0 -0
  394. /package/dist/{mode-CZqCF9dZ.mjs → mode-C4CIyjtR.mjs} +0 -0
  395. /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CNoXafF7.mjs} +0 -0
  396. /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-Ygw4bNyt.mjs} +0 -0
  397. /package/dist/{options-LsPjZlqD.mjs → options-DQPTH5n0.mjs} +0 -0
  398. /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-BUwu8BA3.mjs} +0 -0
  399. /package/dist/{patterns-DKAX6oqN.mjs → patterns-BhAvqO0S.mjs} +0 -0
  400. /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-D0w9dqjm.mjs} +0 -0
  401. /package/dist/{public-url-B_m9IwdV.mjs → public-url-BEz_sM9n.mjs} +0 -0
  402. /package/dist/{redirect-BjIBtDWY.mjs → redirect-wphRBv4y.mjs} +0 -0
  403. /package/dist/{request-cache-ho99schz.mjs → request-cache-D9GQBxMP.mjs} +0 -0
  404. /package/dist/{resolve-DTuDyYKs.mjs → resolve-Cb6Dbz-C.mjs} +0 -0
  405. /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-CoyjILvW.mjs} +0 -0
  406. /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-C3mqXg4C.mjs} +0 -0
  407. /package/dist/{slugify-BqebcqBg.mjs → slugify-KSsVD_D3.mjs} +0 -0
  408. /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-DWe8jwAp.mjs} +0 -0
  409. /package/dist/{tokens-SLmgowfd.mjs → tokens-1RK1n6ED.mjs} +0 -0
  410. /package/dist/{transaction-CFLhEOuH.mjs → transaction-C2EOMTJA.mjs} +0 -0
  411. /package/dist/{transport-BnsNxh2l.d.mts → transport-CcJu3Co8.d.mts} +0 -0
  412. /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-DTXQ2IMv.mjs} +0 -0
  413. /package/dist/{types-CJ8DkL0q.mjs → types-B3t5cxhU.mjs} +0 -0
  414. /package/dist/{types-nP9vGUFq.d.mts → types-C46EvNdc.d.mts} +0 -0
  415. /package/dist/{types-Cg276-3z.mjs → types-C5CVgwsV.mjs} +0 -0
  416. /package/dist/{types-DZpT-PnG.d.mts → types-POH8PQZh.d.mts} +0 -0
  417. /package/dist/{types-Dryvv7LH.d.mts → types-Rc3gQqqw.d.mts} +0 -0
  418. /package/dist/{url-w7Mp5qAD.mjs → url-CpyFDFpO.mjs} +0 -0
@@ -1,16 +1,17 @@
1
- import { a as __exportAll } from "./runner-DzIpHGND.mjs";
1
+ import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
2
2
  import { n as getI18nConfig } from "./config-CVssduLe.mjs";
3
- import { r as RevisionRepository, t as ContentRepository } from "./content-CBxYGWfL.mjs";
4
- import { t as MediaRepository } from "./media-CbKyYukG.mjs";
5
- import { t as TaxonomyRepository } from "./taxonomy-B169Nm6B.mjs";
6
- import { t as withTransaction } from "./transaction-CFLhEOuH.mjs";
7
- import { t as RedirectRepository } from "./redirect-CEACczxo.mjs";
8
- import { t as BylineRepository } from "./byline-BVC1lV6G.mjs";
9
- import { t as FTSManager } from "./fts-manager-B5l_qwrA.mjs";
10
- import { n as SchemaRegistry } from "./registry-D7HACema.mjs";
11
- import { o as setSiteSettings } from "./settings-CUXOxzsT.mjs";
12
- import { a as validateExternalUrl, r as ssrfSafeFetch } from "./ssrf-DiKqWd3N.mjs";
13
- import { t as validateSeed } from "./validate-DWmPO6oj.mjs";
3
+ import { r as RevisionRepository, t as ContentRepository } from "./content-Bh4BDjv8.mjs";
4
+ import { t as MediaRepository } from "./media-DMj0grzC.mjs";
5
+ import { t as TaxonomyRepository } from "./taxonomy-Dvsw6BOs.mjs";
6
+ import { t as withTransaction } from "./transaction-C2EOMTJA.mjs";
7
+ import { t as RedirectRepository } from "./redirect-BAjt4Z6b.mjs";
8
+ import { t as BylineRepository } from "./byline-e51-fWRs.mjs";
9
+ import { a as markContentMediaUsageCollectionStaleSafely } from "./content-refresh-CgutSUfO.mjs";
10
+ import { t as FTSManager } from "./fts-manager-Crzypjqu.mjs";
11
+ import { n as SchemaRegistry } from "./registry-CtyVedcN.mjs";
12
+ import { s as setSiteSettings } from "./settings-BbqgHWpU.mjs";
13
+ import { a as validateExternalUrl, r as ssrfSafeFetch } from "./ssrf-DWe8jwAp.mjs";
14
+ import { t as validateSeed } from "./validate-DNs0pTSc.mjs";
14
15
  import { ulid } from "ulidx";
15
16
  import { imageSize } from "image-size";
16
17
  import mime from "mime/lite";
@@ -128,7 +129,22 @@ async function applySeed(db, seed, options = {}) {
128
129
  };
129
130
  const seedIdMap = /* @__PURE__ */ new Map();
130
131
  const seedBylineIdMap = /* @__PURE__ */ new Map();
132
+ const staleMarkedContentCollections = /* @__PURE__ */ new Set();
133
+ const failedStaleContentCollections = /* @__PURE__ */ new Set();
131
134
  const defaultLocale = getI18nConfig()?.defaultLocale ?? seed.defaultLocale ?? "en";
135
+ const markSeedContentCollectionStale = async (collectionSlug) => {
136
+ if (staleMarkedContentCollections.has(collectionSlug)) return;
137
+ if (await markContentMediaUsageCollectionStaleSafely(db, collectionSlug, "CONTENT_USAGE_STALE")) {
138
+ staleMarkedContentCollections.add(collectionSlug);
139
+ failedStaleContentCollections.delete(collectionSlug);
140
+ } else failedStaleContentCollections.add(collectionSlug);
141
+ };
142
+ const retryFailedSeedContentStaleMarks = async () => {
143
+ for (const collectionSlug of failedStaleContentCollections) if (await markContentMediaUsageCollectionStaleSafely(db, collectionSlug, "CONTENT_USAGE_STALE")) {
144
+ staleMarkedContentCollections.add(collectionSlug);
145
+ failedStaleContentCollections.delete(collectionSlug);
146
+ }
147
+ };
132
148
  if (seed.settings) {
133
149
  await setSiteSettings(seed.settings, db);
134
150
  result.settings.applied = Object.keys(seed.settings).length;
@@ -154,6 +170,7 @@ async function applySeed(db, seed, options = {}) {
154
170
  if (repairSchema) await registry.ensureFieldColumn(collection.slug, field.slug);
155
171
  await registry.updateField(collection.slug, field.slug, {
156
172
  label: field.label,
173
+ type: field.type,
157
174
  required: field.required || false,
158
175
  unique: field.unique || false,
159
176
  searchable: field.searchable || false,
@@ -234,7 +251,7 @@ async function applySeed(db, seed, options = {}) {
234
251
  id: defId,
235
252
  translationGroup: defTranslationGroup
236
253
  });
237
- if (taxonomy.terms && taxonomy.terms.length > 0) {
254
+ if (includeContent && taxonomy.terms && taxonomy.terms.length > 0) {
238
255
  const termRepo = new TaxonomyRepository(db);
239
256
  if (taxonomy.hierarchical) await applyHierarchicalTerms(termRepo, taxonomy.name, defLocale, taxonomy.terms, termSeedIdMap, result, onConflict);
240
257
  else for (const term of taxonomy.terms) {
@@ -266,8 +283,10 @@ async function applySeed(db, seed, options = {}) {
266
283
  }
267
284
  }
268
285
  }
286
+ const { invalidateTaxonomyDefsCache } = await import("./taxonomies-DRiixp_E.mjs").then((n) => n.u);
287
+ invalidateTaxonomyDefsCache();
269
288
  }
270
- if (seed.bylines) {
289
+ if (includeContent && seed.bylines) {
271
290
  const bylineRepo = new BylineRepository(db);
272
291
  for (const byline of seed.bylines) {
273
292
  const existing = await bylineRepo.findBySlug(byline.slug);
@@ -318,69 +337,90 @@ async function applySeed(db, seed, options = {}) {
318
337
  }
319
338
  if (includeContent && seed.content) {
320
339
  const contentRepo = new ContentRepository(db);
321
- for (const [collectionSlug, entries] of Object.entries(seed.content)) for (const entry of entries) {
322
- const entryLocale = entry.locale ?? defaultLocale;
323
- const existing = await contentRepo.findBySlug(collectionSlug, entry.slug, entryLocale);
324
- if (existing) {
325
- if (onConflict === "error") throw new Error(`Conflict: content "${entry.slug}" in "${collectionSlug}" already exists`);
326
- if (onConflict === "update") {
327
- const resolvedData = await resolveReferences(entry.data, seedIdMap, mediaContext, result);
328
- const status = entry.status || "published";
329
- await withTransaction(db, async (trx) => {
340
+ try {
341
+ for (const [collectionSlug, entries] of Object.entries(seed.content)) for (const entry of entries) {
342
+ const entryLocale = entry.locale ?? defaultLocale;
343
+ const existing = await contentRepo.findBySlug(collectionSlug, entry.slug, entryLocale);
344
+ if (existing) {
345
+ if (onConflict === "error") throw new Error(`Conflict: content "${entry.slug}" in "${collectionSlug}" already exists`);
346
+ if (onConflict === "update") {
347
+ const resolvedData = await resolveReferences(entry.data, seedIdMap, mediaContext, result);
348
+ const status = entry.status || "published";
349
+ let contentMutated = false;
350
+ try {
351
+ await withTransaction(db, async (trx) => {
352
+ const trxContentRepo = new ContentRepository(trx);
353
+ const trxBylineRepo = new BylineRepository(trx);
354
+ const trxRevisionRepo = new RevisionRepository(trx);
355
+ await trxContentRepo.update(collectionSlug, existing.id, {
356
+ status,
357
+ data: resolvedData
358
+ });
359
+ contentMutated = true;
360
+ await applyContentBylines(trxBylineRepo, collectionSlug, existing.id, entry, seedBylineIdMap, true);
361
+ await applyContentTaxonomies(trx, collectionSlug, existing.id, entry, true);
362
+ if (status === "published") {
363
+ const draft = await trxRevisionRepo.create({
364
+ collection: collectionSlug,
365
+ entryId: existing.id,
366
+ data: resolvedData
367
+ });
368
+ await trxContentRepo.setDraftRevision(collectionSlug, existing.id, draft.id);
369
+ await trxContentRepo.publish(collectionSlug, existing.id);
370
+ }
371
+ });
372
+ } catch (error) {
373
+ if (contentMutated) await markSeedContentCollectionStale(collectionSlug);
374
+ throw error;
375
+ }
376
+ seedIdMap.set(entry.id, existing.id);
377
+ result.content.updated++;
378
+ await markSeedContentCollectionStale(collectionSlug);
379
+ continue;
380
+ }
381
+ result.content.skipped++;
382
+ seedIdMap.set(entry.id, existing.id);
383
+ continue;
384
+ }
385
+ const resolvedData = await resolveReferences(entry.data, seedIdMap, mediaContext, result);
386
+ let translationOf;
387
+ if (entry.translationOf) {
388
+ const sourceId = seedIdMap.get(entry.translationOf);
389
+ if (!sourceId) console.warn(`content.${collectionSlug}: translationOf "${entry.translationOf}" not found (not yet created or missing). Skipping translation link.`);
390
+ else translationOf = sourceId;
391
+ }
392
+ const status = entry.status || "published";
393
+ let contentMutated = false;
394
+ let created;
395
+ try {
396
+ created = await withTransaction(db, async (trx) => {
330
397
  const trxContentRepo = new ContentRepository(trx);
331
398
  const trxBylineRepo = new BylineRepository(trx);
332
- const trxRevisionRepo = new RevisionRepository(trx);
333
- await trxContentRepo.update(collectionSlug, existing.id, {
399
+ const item = await trxContentRepo.create({
400
+ type: collectionSlug,
401
+ slug: entry.slug,
334
402
  status,
335
- data: resolvedData
403
+ data: resolvedData,
404
+ locale: entryLocale,
405
+ translationOf,
406
+ publishedAt: status === "published" ? (/* @__PURE__ */ new Date()).toISOString() : null
336
407
  });
337
- await applyContentBylines(trxBylineRepo, collectionSlug, existing.id, entry, seedBylineIdMap, true);
338
- await applyContentTaxonomies(trx, collectionSlug, existing.id, entry, true);
339
- if (status === "published") {
340
- const draft = await trxRevisionRepo.create({
341
- collection: collectionSlug,
342
- entryId: existing.id,
343
- data: resolvedData
344
- });
345
- await trxContentRepo.setDraftRevision(collectionSlug, existing.id, draft.id);
346
- await trxContentRepo.publish(collectionSlug, existing.id);
347
- }
408
+ contentMutated = true;
409
+ await applyContentBylines(trxBylineRepo, collectionSlug, item.id, entry, seedBylineIdMap);
410
+ await applyContentTaxonomies(trx, collectionSlug, item.id, entry, false);
411
+ if (status === "published") await trxContentRepo.publish(collectionSlug, item.id);
412
+ return item;
348
413
  });
349
- seedIdMap.set(entry.id, existing.id);
350
- result.content.updated++;
351
- continue;
414
+ } catch (error) {
415
+ if (contentMutated) await markSeedContentCollectionStale(collectionSlug);
416
+ throw error;
352
417
  }
353
- result.content.skipped++;
354
- seedIdMap.set(entry.id, existing.id);
355
- continue;
356
- }
357
- const resolvedData = await resolveReferences(entry.data, seedIdMap, mediaContext, result);
358
- let translationOf;
359
- if (entry.translationOf) {
360
- const sourceId = seedIdMap.get(entry.translationOf);
361
- if (!sourceId) console.warn(`content.${collectionSlug}: translationOf "${entry.translationOf}" not found (not yet created or missing). Skipping translation link.`);
362
- else translationOf = sourceId;
418
+ seedIdMap.set(entry.id, created.id);
419
+ result.content.created++;
420
+ await markSeedContentCollectionStale(collectionSlug);
363
421
  }
364
- const status = entry.status || "published";
365
- const created = await withTransaction(db, async (trx) => {
366
- const trxContentRepo = new ContentRepository(trx);
367
- const trxBylineRepo = new BylineRepository(trx);
368
- const item = await trxContentRepo.create({
369
- type: collectionSlug,
370
- slug: entry.slug,
371
- status,
372
- data: resolvedData,
373
- locale: entryLocale,
374
- translationOf,
375
- publishedAt: status === "published" ? (/* @__PURE__ */ new Date()).toISOString() : null
376
- });
377
- await applyContentBylines(trxBylineRepo, collectionSlug, item.id, entry, seedBylineIdMap);
378
- await applyContentTaxonomies(trx, collectionSlug, item.id, entry, false);
379
- if (status === "published") await trxContentRepo.publish(collectionSlug, item.id);
380
- return item;
381
- });
382
- seedIdMap.set(entry.id, created.id);
383
- result.content.created++;
422
+ } finally {
423
+ await retryFailedSeedContentStaleMarks();
384
424
  }
385
425
  }
386
426
  if (seed.menus) {
@@ -430,7 +470,7 @@ async function applySeed(db, seed, options = {}) {
430
470
  if (onConflict === "error") throw new Error(`Conflict: redirect "${redirect.source}" already exists`);
431
471
  if (onConflict === "update") {
432
472
  await redirectRepo.update(existing.id, {
433
- destination: redirect.destination,
473
+ destination: redirect.type === 410 || redirect.type === 451 ? "" : redirect.destination,
434
474
  type: redirect.type,
435
475
  enabled: redirect.enabled,
436
476
  groupName: redirect.groupName
@@ -443,7 +483,7 @@ async function applySeed(db, seed, options = {}) {
443
483
  }
444
484
  await redirectRepo.create({
445
485
  source: redirect.source,
446
- destination: redirect.destination,
486
+ destination: redirect.type === 410 || redirect.type === 451 ? "" : redirect.destination,
447
487
  type: redirect.type,
448
488
  enabled: redirect.enabled,
449
489
  groupName: redirect.groupName
@@ -519,9 +559,9 @@ async function applySeed(db, seed, options = {}) {
519
559
  }
520
560
  }
521
561
  }
522
- const { invalidateBylineCache } = await import("./bylines-DwokOFj6.mjs").then((n) => n.t);
523
- const { invalidateUrlPatternCache } = await import("./query-Ds0EnMFX.mjs").then((n) => n.o);
524
- const { invalidateRedirectCache } = await import("./cache-Bac05gBd.mjs").then((n) => n.t);
562
+ const { invalidateBylineCache } = await import("./bylines-y4LO-dTj.mjs").then((n) => n.t);
563
+ const { invalidateUrlPatternCache } = await import("./query-CfRCdaL3.mjs").then((n) => n.o);
564
+ const { invalidateRedirectCache } = await import("./cache-C-FNTFYK.mjs").then((n) => n.t);
525
565
  invalidateBylineCache();
526
566
  invalidateUrlPatternCache();
527
567
  invalidateRedirectCache();
@@ -605,7 +645,7 @@ async function applyContentTaxonomies(db, collectionSlug, contentId, entry, isUp
605
645
  if (isUpdate) await db.deleteFrom("content_taxonomies").where("collection", "=", collectionSlug).where("entry_id", "=", contentId).execute();
606
646
  if (!entry.taxonomies) {
607
647
  if (isUpdate) {
608
- const { invalidateTermCache } = await import("./taxonomies-CZ-_DitR.mjs").then((n) => n.l);
648
+ const { invalidateTermCache } = await import("./taxonomies-DRiixp_E.mjs").then((n) => n.u);
609
649
  invalidateTermCache();
610
650
  }
611
651
  return;
@@ -617,7 +657,7 @@ async function applyContentTaxonomies(db, collectionSlug, contentId, entry, isUp
617
657
  if (term) await termRepo.attachToEntry(collectionSlug, contentId, term.id);
618
658
  }
619
659
  }
620
- const { invalidateTermCache } = await import("./taxonomies-CZ-_DitR.mjs").then((n) => n.l);
660
+ const { invalidateTermCache } = await import("./taxonomies-DRiixp_E.mjs").then((n) => n.u);
621
661
  invalidateTermCache();
622
662
  }
623
663
  /**
@@ -0,0 +1,7 @@
1
+ import { APIRoute } from "astro";
2
+
3
+ //#region src/astro/image-endpoint.d.ts
4
+ declare const prerender = false;
5
+ declare const GET: APIRoute;
6
+ //#endregion
7
+ export { GET, prerender };
@@ -0,0 +1,54 @@
1
+ import { IMMUTABLE_IMAGE_CACHE, matchInternalMediaKey, originalMediaHeaders } from "../media/image-endpoint.mjs";
2
+ import { GET as GET$1 } from "astro/assets/endpoint/generic";
3
+ import { getConfiguredImageService, imageConfig } from "astro:assets";
4
+
5
+ //#region src/astro/image-endpoint.ts
6
+ const prerender = false;
7
+ const FORMAT_MIME = {
8
+ webp: "image/webp",
9
+ avif: "image/avif",
10
+ png: "image/png",
11
+ jpeg: "image/jpeg",
12
+ jpg: "image/jpeg",
13
+ gif: "image/gif"
14
+ };
15
+ function isNotFound(error) {
16
+ return error instanceof Error && (error.message.includes("not found") || error.message.includes("NOT_FOUND"));
17
+ }
18
+ function streamOriginal(body, contentType) {
19
+ return new Response(body, {
20
+ status: 200,
21
+ headers: originalMediaHeaders(contentType)
22
+ });
23
+ }
24
+ const GET = async (ctx) => {
25
+ const url = new URL(ctx.request.url);
26
+ const key = matchInternalMediaKey(url.searchParams.get("href"));
27
+ const storage = ctx.locals.dineway?.storage;
28
+ if (!key || !storage) return GET$1(ctx);
29
+ const service = await getConfiguredImageService();
30
+ if (!("transform" in service)) return GET$1(ctx);
31
+ try {
32
+ const source = await storage.download(key);
33
+ if (!source.contentType.startsWith("image/")) return streamOriginal(source.body, source.contentType);
34
+ const transform = await service.parseURL(url, imageConfig);
35
+ if (!transform) return streamOriginal(source.body, source.contentType);
36
+ const inputBuffer = new Uint8Array(await new Response(source.body).arrayBuffer());
37
+ const { data, format } = await service.transform(inputBuffer, transform, imageConfig);
38
+ return new Response(data, {
39
+ status: 200,
40
+ headers: {
41
+ "Content-Type": FORMAT_MIME[format] ?? source.contentType,
42
+ "Cache-Control": IMMUTABLE_IMAGE_CACHE,
43
+ "X-Content-Type-Options": "nosniff"
44
+ }
45
+ });
46
+ } catch (error) {
47
+ if (isNotFound(error)) return new Response("Not Found", { status: 404 });
48
+ console.error("[dineway] image transform failed:", error);
49
+ return new Response("Internal Server Error", { status: 500 });
50
+ }
51
+ };
52
+
53
+ //#endregion
54
+ export { GET, prerender };
@@ -1,14 +1,15 @@
1
- import { i as ContentItem } from "../types-DRIKLmJI.mjs";
2
- import { _i as MediaItem, a as S3StorageConfig, i as LocalStorageConfig, o as StorageDescriptor, r as getStoredConfig, t as DinewayConfig } from "../runtime-C4-2lSFg.mjs";
3
- import "../types-CuJOqHfM.mjs";
4
- import { X as ResolvedPlugin } from "../types-DSPGWjxO.mjs";
5
- import "../types-Dryvv7LH.mjs";
6
- import "../runner-09sTqtv0.mjs";
7
- import "../index-CZiWCQDp.mjs";
8
- import "../byline-fields-uJlygdzM.mjs";
9
- import "../types-GaCtZ1k9.mjs";
10
- import "../validate-DzjCdy6v.mjs";
1
+ import { i as ContentItem } from "../types-C_ly5eTp.mjs";
2
+ import { Yi as MediaItem, a as S3StorageConfig, i as LocalStorageConfig, o as StorageDescriptor, r as getStoredConfig, t as DinewayConfig } from "../runtime-BOeiQsCv.mjs";
3
+ import "../types-DU0bU2Wu.mjs";
4
+ import { xt as ResolvedPlugin } from "../types-C8XW6L19.mjs";
5
+ import "../types-Rc3gQqqw.mjs";
6
+ import { i as ObjectCacheRuntimeConfig, r as ObjectCacheDescriptor } from "../types-DF7ZuGGk.mjs";
7
+ import "../runner-1tC2tIRV.mjs";
8
+ import "../index-D4y6NGiy.mjs";
11
9
  import { DinewayHandlers, DinewayManifest, ManifestCollection } from "./types.mjs";
10
+ import "../byline-fields-CUvbslGc.mjs";
11
+ import "../types-CDpH6MA4.mjs";
12
+ import "../validate-CZvb-BKB.mjs";
12
13
  import { AstroIntegration } from "astro";
13
14
 
14
15
  //#region src/astro/storage/adapters.d.ts
@@ -54,10 +55,33 @@ declare function s3(config?: Partial<S3StorageConfig>): StorageDescriptor;
54
55
  */
55
56
  declare function local(config: LocalStorageConfig): StorageDescriptor;
56
57
  //#endregion
58
+ //#region src/astro/object-cache/adapters.d.ts
59
+ /** Options for {@link memoryCache}. */
60
+ interface MemoryCacheOptions extends ObjectCacheRuntimeConfig {
61
+ /**
62
+ * Soft cap on the number of cached keys per isolate before FIFO eviction.
63
+ * @default 1000
64
+ */
65
+ maxEntries?: number;
66
+ }
67
+ /**
68
+ * In-isolate memory object cache.
69
+ *
70
+ * Caches query results across requests within a single process. On Node this
71
+ * is a genuine cross-request cache; on multi-process deployments each process
72
+ * keeps its own cache. Useful for local development regardless of target.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * dineway({ objectCache: memoryCache({ defaultTtl: 600 }) })
77
+ * ```
78
+ */
79
+ declare function memoryCache(options?: MemoryCacheOptions): ObjectCacheDescriptor;
80
+ //#endregion
57
81
  //#region src/astro/integration/index.d.ts
58
82
  /**
59
83
  * Create the Dineway Astro integration
60
84
  */
61
85
  declare function dineway(config?: DinewayConfig): AstroIntegration;
62
86
  //#endregion
63
- export { type ContentItem, type DinewayConfig, type DinewayHandlers, type DinewayManifest, type LocalStorageConfig, type ManifestCollection, type MediaItem, type ResolvedPlugin, type S3StorageConfig, type StorageDescriptor, dineway as default, getStoredConfig, local, s3 };
87
+ export { type ContentItem, type DinewayConfig, type DinewayHandlers, type DinewayManifest, type LocalStorageConfig, type ManifestCollection, type MediaItem, type MemoryCacheOptions, type ResolvedPlugin, type S3StorageConfig, type StorageDescriptor, dineway as default, getStoredConfig, local, memoryCache, s3 };