emdash 0.40.1 → 0.41.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 (1240) hide show
  1. package/dist/action-token-CbKDcPJi.mjs +26 -0
  2. package/dist/action-token-CbKDcPJi.mjs.map +1 -0
  3. package/dist/activation-PtniBLt9.mjs +382 -0
  4. package/dist/activation-PtniBLt9.mjs.map +1 -0
  5. package/dist/adapters-C_Tf5x90.d.mts +171 -0
  6. package/dist/adapters-C_Tf5x90.d.mts.map +1 -0
  7. package/dist/allowed-origins-U1z4TdEZ.mjs +116 -0
  8. package/dist/allowed-origins-U1z4TdEZ.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +46 -45
  11. package/dist/api/route-utils.mjs.map +1 -1
  12. package/dist/api/schemas/index.d.mts +2 -2
  13. package/dist/api/schemas/index.mjs +10 -10
  14. package/dist/api-CXwQkV_m.mjs +5122 -0
  15. package/dist/api-CXwQkV_m.mjs.map +1 -0
  16. package/dist/api-tokens-89WlohEN.mjs +166 -0
  17. package/dist/api-tokens-89WlohEN.mjs.map +1 -0
  18. package/dist/apply-Do3KNnUk.mjs +1659 -0
  19. package/dist/apply-Do3KNnUk.mjs.map +1 -0
  20. package/dist/approvals-CAX9Yw33.mjs +460 -0
  21. package/dist/approvals-CAX9Yw33.mjs.map +1 -0
  22. package/dist/artifact-fetch-B9W4CEST.mjs +659 -0
  23. package/dist/artifact-fetch-B9W4CEST.mjs.map +1 -0
  24. package/dist/astro/index.d.mts +14 -14
  25. package/dist/astro/index.mjs +20 -24
  26. package/dist/astro/index.mjs.map +1 -1
  27. package/dist/astro/middleware/auth.d.mts +12 -12
  28. package/dist/astro/middleware/auth.mjs +10 -10
  29. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  30. package/dist/astro/middleware/redirect.mjs +7 -7
  31. package/dist/astro/middleware/request-context.mjs +3 -3
  32. package/dist/astro/middleware/setup.mjs +1 -1
  33. package/dist/astro/middleware.d.mts +12 -12
  34. package/dist/astro/middleware.mjs +109 -106
  35. package/dist/astro/middleware.mjs.map +1 -1
  36. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +14 -14
  37. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +14 -14
  38. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  39. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  40. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  41. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
  42. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
  43. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
  44. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -23
  45. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -23
  46. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
  47. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +18 -18
  48. package/dist/astro/routes/api/admin/comments/_id_.mjs +7 -7
  49. package/dist/astro/routes/api/admin/comments/bulk.mjs +17 -17
  50. package/dist/astro/routes/api/admin/comments/counts.mjs +7 -7
  51. package/dist/astro/routes/api/admin/comments/index.mjs +17 -17
  52. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +6 -6
  53. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +5 -5
  54. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  55. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
  56. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
  57. package/dist/astro/routes/api/admin/media-usage/progress.mjs +25 -25
  58. package/dist/astro/routes/api/admin/media-usage/repair.mjs +31 -31
  59. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
  60. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
  61. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  62. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  63. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  64. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  65. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -68
  66. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  67. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +7 -7
  68. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +71 -67
  69. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  70. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +72 -68
  71. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  72. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +82 -78
  73. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  74. package/dist/astro/routes/api/admin/plugins/index.mjs +72 -68
  75. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  76. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +5 -5
  77. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -67
  78. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +81 -77
  80. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -67
  82. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  83. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +72 -68
  84. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  85. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +83 -79
  86. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  87. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +9 -9
  88. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +74 -70
  89. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +7 -7
  91. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +72 -68
  92. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -67
  94. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  96. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -67
  97. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  98. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +5 -5
  99. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -67
  100. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +4 -4
  102. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -40
  103. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -40
  104. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -42
  105. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -42
  106. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -42
  107. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -43
  108. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -43
  109. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -42
  110. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -43
  111. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -44
  112. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -42
  113. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -42
  114. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -44
  115. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -42
  116. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -44
  117. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -42
  118. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -42
  119. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -44
  120. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -42
  121. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -42
  122. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -44
  123. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  124. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +4 -4
  125. package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
  126. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +6 -6
  127. package/dist/astro/routes/api/admin/users/index.mjs +14 -14
  128. package/dist/astro/routes/api/auth/dev-bypass.mjs +6 -6
  129. package/dist/astro/routes/api/auth/invite/accept.mjs +4 -4
  130. package/dist/astro/routes/api/auth/invite/complete.mjs +18 -18
  131. package/dist/astro/routes/api/auth/invite/index.mjs +16 -16
  132. package/dist/astro/routes/api/auth/invite/register-options.mjs +17 -17
  133. package/dist/astro/routes/api/auth/logout.mjs +5 -5
  134. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
  135. package/dist/astro/routes/api/auth/magic-link/verify.mjs +14 -14
  136. package/dist/astro/routes/api/auth/me.mjs +15 -15
  137. package/dist/astro/routes/api/auth/mode.mjs +5 -5
  138. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  139. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  140. package/dist/astro/routes/api/auth/passkey/_id_.mjs +14 -14
  141. package/dist/astro/routes/api/auth/passkey/index.mjs +4 -4
  142. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
  143. package/dist/astro/routes/api/auth/passkey/register/options.mjs +17 -17
  144. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +18 -18
  145. package/dist/astro/routes/api/auth/passkey/verify.mjs +18 -18
  146. package/dist/astro/routes/api/auth/signup/complete.mjs +18 -18
  147. package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
  148. package/dist/astro/routes/api/auth/signup/verify.mjs +4 -4
  149. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +12 -12
  150. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +18 -18
  151. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +5 -5
  152. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
  153. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
  154. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  155. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  156. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +11 -11
  157. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
  158. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
  159. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts +1 -2
  160. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.d.mts.map +1 -1
  161. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +42 -53
  162. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs.map +1 -1
  163. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -29
  164. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs.map +1 -1
  165. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  166. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +5 -5
  167. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
  168. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +25 -24
  169. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs.map +1 -1
  170. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +5 -5
  171. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
  172. package/dist/astro/routes/api/content/_collection_/_id_.d.mts.map +1 -1
  173. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
  174. package/dist/astro/routes/api/content/_collection_/_id_.mjs.map +1 -1
  175. package/dist/astro/routes/api/content/_collection_/authors.mjs +5 -5
  176. package/dist/astro/routes/api/content/_collection_/index.mjs +15 -15
  177. package/dist/astro/routes/api/content/_collection_/trash.mjs +15 -15
  178. package/dist/astro/routes/api/dashboard.mjs +10 -9
  179. package/dist/astro/routes/api/dashboard.mjs.map +1 -1
  180. package/dist/astro/routes/api/dev/emails.mjs +5 -5
  181. package/dist/astro/routes/api/health.mjs +6 -6
  182. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  183. package/dist/astro/routes/api/import/probe.mjs +23 -23
  184. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  185. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  186. package/dist/astro/routes/api/import/wordpress/execute.mjs +16 -16
  187. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  188. package/dist/astro/routes/api/import/wordpress/media.mjs +19 -19
  189. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
  190. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  191. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +28 -28
  192. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  193. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +23 -23
  194. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  195. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +34 -34
  196. package/dist/astro/routes/api/manifest.mjs +6 -6
  197. package/dist/astro/routes/api/mcp.mjs +91 -91
  198. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
  199. package/dist/astro/routes/api/media/_id_/replace.mjs +16 -16
  200. package/dist/astro/routes/api/media/_id_/upload.mjs +9 -9
  201. package/dist/astro/routes/api/media/_id_/usage.mjs +33 -33
  202. package/dist/astro/routes/api/media/_id_.mjs +31 -31
  203. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +6 -6
  204. package/dist/astro/routes/api/media/file/_...key_.mjs +9 -9
  205. package/dist/astro/routes/api/media/folders/_id_.mjs +16 -16
  206. package/dist/astro/routes/api/media/folders/index.mjs +16 -16
  207. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +5 -5
  208. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +5 -5
  209. package/dist/astro/routes/api/media/providers/index.mjs +5 -5
  210. package/dist/astro/routes/api/media/upload-url.mjs +18 -18
  211. package/dist/astro/routes/api/media.mjs +35 -35
  212. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +17 -17
  213. package/dist/astro/routes/api/menus/_name_/items.mjs +17 -17
  214. package/dist/astro/routes/api/menus/_name_/reorder.mjs +17 -17
  215. package/dist/astro/routes/api/menus/_name_/translations.mjs +17 -17
  216. package/dist/astro/routes/api/menus/_name_.mjs +17 -17
  217. package/dist/astro/routes/api/menus/index.mjs +17 -17
  218. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  219. package/dist/astro/routes/api/oauth/device/authorize.d.mts +2 -1
  220. package/dist/astro/routes/api/oauth/device/authorize.d.mts.map +1 -1
  221. package/dist/astro/routes/api/oauth/device/authorize.mjs +23 -9
  222. package/dist/astro/routes/api/oauth/device/authorize.mjs.map +1 -1
  223. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  224. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  225. package/dist/astro/routes/api/oauth/register.mjs +5 -5
  226. package/dist/astro/routes/api/oauth/token/refresh.mjs +8 -8
  227. package/dist/astro/routes/api/oauth/token/revoke.mjs +8 -8
  228. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  229. package/dist/astro/routes/api/openapi.json.mjs +20 -20
  230. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +11 -11
  231. package/dist/astro/routes/api/redirects/404s/index.mjs +19 -19
  232. package/dist/astro/routes/api/redirects/404s/summary.mjs +19 -19
  233. package/dist/astro/routes/api/redirects/_id_.mjs +19 -19
  234. package/dist/astro/routes/api/redirects/index.mjs +19 -19
  235. package/dist/astro/routes/api/relations/_id_/index.mjs +34 -29
  236. package/dist/astro/routes/api/relations/_id_/index.mjs.map +1 -1
  237. package/dist/astro/routes/api/relations/index.mjs +36 -31
  238. package/dist/astro/routes/api/relations/index.mjs.map +1 -1
  239. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +5 -5
  240. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +5 -5
  241. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +71 -67
  242. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  243. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +71 -67
  244. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  245. package/dist/astro/routes/api/schema/block-types/index.mjs +71 -67
  246. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  247. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -69
  248. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  249. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +71 -67
  250. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  251. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +71 -67
  252. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  253. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +71 -67
  254. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  255. package/dist/astro/routes/api/schema/collections/index.mjs +71 -67
  256. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  257. package/dist/astro/routes/api/schema/collections/reorder.mjs +71 -67
  258. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  259. package/dist/astro/routes/api/schema/index.mjs +16 -16
  260. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -67
  261. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  262. package/dist/astro/routes/api/schema/orphans/index.mjs +71 -67
  263. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  264. package/dist/astro/routes/api/search/enable.mjs +19 -19
  265. package/dist/astro/routes/api/search/index.mjs +18 -18
  266. package/dist/astro/routes/api/search/rebuild.mjs +19 -19
  267. package/dist/astro/routes/api/search/stats.mjs +9 -9
  268. package/dist/astro/routes/api/search/suggest.mjs +18 -18
  269. package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
  270. package/dist/astro/routes/api/sections/index.mjs +18 -18
  271. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  272. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  273. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  274. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  275. package/dist/astro/routes/api/settings/email.mjs +6 -6
  276. package/dist/astro/routes/api/settings.mjs +21 -21
  277. package/dist/astro/routes/api/setup/admin-verify.mjs +19 -19
  278. package/dist/astro/routes/api/setup/admin.mjs +18 -18
  279. package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -39
  280. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  281. package/dist/astro/routes/api/setup/dev-reset.mjs +4 -4
  282. package/dist/astro/routes/api/setup/index.mjs +50 -44
  283. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  284. package/dist/astro/routes/api/setup/status.mjs +6 -6
  285. package/dist/astro/routes/api/snapshot.mjs +8 -8
  286. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +23 -23
  287. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +23 -23
  288. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +23 -23
  289. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +23 -23
  290. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +22 -22
  291. package/dist/astro/routes/api/taxonomies/_name_.mjs +23 -23
  292. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -35
  293. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs.map +1 -1
  294. package/dist/astro/routes/api/taxonomies/index.mjs +23 -23
  295. package/dist/astro/routes/api/themes/preview.mjs +6 -6
  296. package/dist/astro/routes/api/typegen.mjs +8 -8
  297. package/dist/astro/routes/api/visual-editing/action-token.mjs +6 -6
  298. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +19 -19
  299. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +4 -4
  300. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  301. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  302. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  303. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +16 -16
  304. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
  305. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
  306. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  307. package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
  308. package/dist/astro/routes/api/widget-components.mjs +5 -5
  309. package/dist/astro/routes/robots.txt.mjs +6 -6
  310. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  311. package/dist/astro/routes/sitemap.xml.mjs +7 -7
  312. package/dist/astro/types.d.mts +24 -18
  313. package/dist/astro/types.d.mts.map +1 -1
  314. package/dist/audit-CrgmE9LE.mjs +127 -0
  315. package/dist/audit-CrgmE9LE.mjs.map +1 -0
  316. package/dist/auth/providers/github.d.mts +1 -1
  317. package/dist/auth/providers/google.d.mts +1 -1
  318. package/dist/authoritative-records-C2YzIdbu.mjs +5172 -0
  319. package/dist/authoritative-records-C2YzIdbu.mjs.map +1 -0
  320. package/dist/authorize-WgdKF8QY.mjs +49 -0
  321. package/dist/authorize-WgdKF8QY.mjs.map +1 -0
  322. package/dist/backup-Ck8_lMO3.mjs +246 -0
  323. package/dist/backup-Ck8_lMO3.mjs.map +1 -0
  324. package/dist/block-types-BQ90asVI.mjs +132 -0
  325. package/dist/block-types-BQ90asVI.mjs.map +1 -0
  326. package/dist/block-values-ACFqgB1D.mjs +175 -0
  327. package/dist/block-values-ACFqgB1D.mjs.map +1 -0
  328. package/dist/bundle-Db1iNMv_.mjs +667 -0
  329. package/dist/bundle-Db1iNMv_.mjs.map +1 -0
  330. package/dist/byline-BayaYGoj.mjs +909 -0
  331. package/dist/byline-BayaYGoj.mjs.map +1 -0
  332. package/dist/byline-fields-B8HH-35f.mjs +254 -0
  333. package/dist/byline-fields-B8HH-35f.mjs.map +1 -0
  334. package/dist/byline-fields-hMPjf6Eu.mjs +123 -0
  335. package/dist/byline-fields-hMPjf6Eu.mjs.map +1 -0
  336. package/dist/byline-registry-B_EK_TQf.mjs +406 -0
  337. package/dist/byline-registry-B_EK_TQf.mjs.map +1 -0
  338. package/dist/bylines-DFAaFXWi.mjs +214 -0
  339. package/dist/bylines-DFAaFXWi.mjs.map +1 -0
  340. package/dist/bylines-DkIxUxmr.mjs +232 -0
  341. package/dist/bylines-DkIxUxmr.mjs.map +1 -0
  342. package/dist/cache-DkvhQ8XE.mjs +108 -0
  343. package/dist/cache-DkvhQ8XE.mjs.map +1 -0
  344. package/dist/canonical-CcSuuTlH.mjs +174 -0
  345. package/dist/canonical-CcSuuTlH.mjs.map +1 -0
  346. package/dist/capture-triggers-DJEoOTOq.mjs +362 -0
  347. package/dist/capture-triggers-DJEoOTOq.mjs.map +1 -0
  348. package/dist/challenge-store-CvBl81AQ.mjs +51 -0
  349. package/dist/challenge-store-CvBl81AQ.mjs.map +1 -0
  350. package/dist/checksum-CClweQzI.mjs +162 -0
  351. package/dist/checksum-CClweQzI.mjs.map +1 -0
  352. package/dist/chrome-tags-D5caJwwp.mjs +24 -0
  353. package/dist/chrome-tags-D5caJwwp.mjs.map +1 -0
  354. package/dist/chunks-DwBaj8aT.mjs +25 -0
  355. package/dist/chunks-DwBaj8aT.mjs.map +1 -0
  356. package/dist/cli/index.mjs +374 -761
  357. package/dist/cli/index.mjs.map +1 -1
  358. package/dist/client/cf-access.d.mts +1 -1
  359. package/dist/client/index.d.mts +32 -32
  360. package/dist/client/index.mjs +2 -2
  361. package/dist/collection-deletion-CLCdXsnV.mjs +436 -0
  362. package/dist/collection-deletion-CLCdXsnV.mjs.map +1 -0
  363. package/dist/collection-deletion-processor-hNw8x01F.mjs +217 -0
  364. package/dist/collection-deletion-processor-hNw8x01F.mjs.map +1 -0
  365. package/dist/collection-slugs-cache-CUuiduLq.mjs +85 -0
  366. package/dist/collection-slugs-cache-CUuiduLq.mjs.map +1 -0
  367. package/dist/comment-D2uvL63j.mjs +313 -0
  368. package/dist/comment-D2uvL63j.mjs.map +1 -0
  369. package/dist/comment-reaction-DevUuzg4.mjs +85 -0
  370. package/dist/comment-reaction-DevUuzg4.mjs.map +1 -0
  371. package/dist/comments-Cq0s7_hO.mjs +195 -0
  372. package/dist/comments-Cq0s7_hO.mjs.map +1 -0
  373. package/dist/comments-M4EDYAHw.mjs +99 -0
  374. package/dist/comments-M4EDYAHw.mjs.map +1 -0
  375. package/dist/components-CuIGwXMs.mjs +108 -0
  376. package/dist/components-CuIGwXMs.mjs.map +1 -0
  377. package/dist/config-52Ea5IWt.d.mts +39 -0
  378. package/dist/config-52Ea5IWt.d.mts.map +1 -0
  379. package/dist/config-CCz3xOLc.mjs +242 -0
  380. package/dist/config-CCz3xOLc.mjs.map +1 -0
  381. package/dist/config-D3d5Qudq.d.mts +6669 -0
  382. package/dist/config-D3d5Qudq.d.mts.map +1 -0
  383. package/dist/content-CbnufDsM.mjs +2018 -0
  384. package/dist/content-CbnufDsM.mjs.map +1 -0
  385. package/dist/content-list-query-D_7B1FE5.d.mts +26 -0
  386. package/dist/content-list-query-D_7B1FE5.d.mts.map +1 -0
  387. package/dist/content-policy-CYu6K1KB.mjs +46 -0
  388. package/dist/content-policy-CYu6K1KB.mjs.map +1 -0
  389. package/dist/content-repair-DlDUgFGp.mjs +442 -0
  390. package/dist/content-repair-DlDUgFGp.mjs.map +1 -0
  391. package/dist/context-CGQLA1-a.mjs +1922 -0
  392. package/dist/context-CGQLA1-a.mjs.map +1 -0
  393. package/dist/cron-c4D5C5Fx.mjs +284 -0
  394. package/dist/cron-c4D5C5Fx.mjs.map +1 -0
  395. package/dist/dashboard-CBq9kmOn.mjs +151 -0
  396. package/dist/dashboard-CBq9kmOn.mjs.map +1 -0
  397. package/dist/db/index.d.mts +3 -3
  398. package/dist/db/index.mjs +1 -1
  399. package/dist/db/libsql-migrations.d.mts +1 -1
  400. package/dist/db/libsql-migrations.mjs +4 -4
  401. package/dist/db/libsql.d.mts +1 -1
  402. package/dist/db/postgres-migrations.d.mts +1 -1
  403. package/dist/db/postgres-migrations.mjs +4 -4
  404. package/dist/db/postgres.d.mts +1 -1
  405. package/dist/db/sqlite-migrations.d.mts +1 -1
  406. package/dist/db/sqlite-migrations.mjs +4 -4
  407. package/dist/db/sqlite.d.mts +1 -1
  408. package/dist/db/sqlite.mjs +1 -1
  409. package/dist/default-DPsys51U.mjs +81 -0
  410. package/dist/default-DPsys51U.mjs.map +1 -0
  411. package/dist/deferred-tasks-CZ7rzBdo.d.mts +9 -0
  412. package/dist/deferred-tasks-CZ7rzBdo.d.mts.map +1 -0
  413. package/dist/dev-typegen-HRxwLRcT.mjs +29 -0
  414. package/dist/dev-typegen-HRxwLRcT.mjs.map +1 -0
  415. package/dist/device-flow-OcSqE9uY.mjs +521 -0
  416. package/dist/device-flow-OcSqE9uY.mjs.map +1 -0
  417. package/dist/digest-DVZ--cE9.mjs +194 -0
  418. package/dist/digest-DVZ--cE9.mjs.map +1 -0
  419. package/dist/direct-executor-DyjAqkpT.mjs +104 -0
  420. package/dist/direct-executor-DyjAqkpT.mjs.map +1 -0
  421. package/dist/dist-FPR93_xf.mjs +810 -0
  422. package/dist/dist-FPR93_xf.mjs.map +1 -0
  423. package/dist/email-console-DyQIgEnz.mjs +50 -0
  424. package/dist/email-console-DyQIgEnz.mjs.map +1 -0
  425. package/dist/email-locale-BYb16rVd.mjs +25 -0
  426. package/dist/email-locale-BYb16rVd.mjs.map +1 -0
  427. package/dist/emdash-runtime-CrzxJFmF.mjs +4214 -0
  428. package/dist/emdash-runtime-CrzxJFmF.mjs.map +1 -0
  429. package/dist/enrich-DBtCncE2.mjs +194 -0
  430. package/dist/enrich-DBtCncE2.mjs.map +1 -0
  431. package/dist/entry-lock-BN5y4YbO.d.mts +4481 -0
  432. package/dist/entry-lock-BN5y4YbO.d.mts.map +1 -0
  433. package/dist/entry-lock-BaRBHCsH.mjs +1173 -0
  434. package/dist/entry-lock-BaRBHCsH.mjs.map +1 -0
  435. package/dist/entry-lock-C6NcnZPV.mjs +163 -0
  436. package/dist/entry-lock-C6NcnZPV.mjs.map +1 -0
  437. package/dist/entry-locks-BTyQLdbC.mjs +167 -0
  438. package/dist/entry-locks-BTyQLdbC.mjs.map +1 -0
  439. package/dist/error-BfsNNrIE.mjs +90 -0
  440. package/dist/error-BfsNNrIE.mjs.map +1 -0
  441. package/dist/errors-BN1QAnEY.mjs +460 -0
  442. package/dist/errors-BN1QAnEY.mjs.map +1 -0
  443. package/dist/errors-Bt3goF8I.mjs +120 -0
  444. package/dist/errors-Bt3goF8I.mjs.map +1 -0
  445. package/dist/escape-BveidMa2.mjs +9 -0
  446. package/dist/escape-BveidMa2.mjs.map +1 -0
  447. package/dist/fence-Bb_IbCxI.mjs +162 -0
  448. package/dist/fence-Bb_IbCxI.mjs.map +1 -0
  449. package/dist/field-defs-cache-CsZctvbu.mjs +77 -0
  450. package/dist/field-defs-cache-CsZctvbu.mjs.map +1 -0
  451. package/dist/field-map-6m9rF49t.mjs +83 -0
  452. package/dist/field-map-6m9rF49t.mjs.map +1 -0
  453. package/dist/focal-point-CZ3d1wK5.mjs +23 -0
  454. package/dist/focal-point-CZ3d1wK5.mjs.map +1 -0
  455. package/dist/fts-manager-CCaZTp8y.mjs +443 -0
  456. package/dist/fts-manager-CCaZTp8y.mjs.map +1 -0
  457. package/dist/gc-xowRjczI.mjs +75 -0
  458. package/dist/gc-xowRjczI.mjs.map +1 -0
  459. package/dist/hash-COVK27Pc.mjs +37 -0
  460. package/dist/hash-COVK27Pc.mjs.map +1 -0
  461. package/dist/hook-result-CYSk0XFe.d.mts +31 -0
  462. package/dist/hook-result-CYSk0XFe.d.mts.map +1 -0
  463. package/dist/hreflang-CChPV7jx.mjs +105 -0
  464. package/dist/hreflang-CChPV7jx.mjs.map +1 -0
  465. package/dist/hreflang-DRslq3QI.d.mts +50 -0
  466. package/dist/hreflang-DRslq3QI.d.mts.map +1 -0
  467. package/dist/http-route-dispatch-CAdp2onn.mjs +339 -0
  468. package/dist/http-route-dispatch-CAdp2onn.mjs.map +1 -0
  469. package/dist/identity-NVTOOQyq.mjs +35 -0
  470. package/dist/identity-NVTOOQyq.mjs.map +1 -0
  471. package/dist/import-wpSO2N0x.mjs +2020 -0
  472. package/dist/import-wpSO2N0x.mjs.map +1 -0
  473. package/dist/index-CDs2wq4X.d.mts +623 -0
  474. package/dist/index-CDs2wq4X.d.mts.map +1 -0
  475. package/dist/index.d.mts +24 -24
  476. package/dist/index.mjs +103 -101
  477. package/dist/install-finalization-D9R9R-W8.mjs +58 -0
  478. package/dist/install-finalization-D9R9R-W8.mjs.map +1 -0
  479. package/dist/keys-Bck6LBfF.mjs +61 -0
  480. package/dist/keys-Bck6LBfF.mjs.map +1 -0
  481. package/dist/kinds-CYmRESWj.mjs +974 -0
  482. package/dist/kinds-CYmRESWj.mjs.map +1 -0
  483. package/dist/lifecycle-C815ZQfV.mjs +25 -0
  484. package/dist/lifecycle-C815ZQfV.mjs.map +1 -0
  485. package/dist/load-D99axixL.mjs +28 -0
  486. package/dist/load-D99axixL.mjs.map +1 -0
  487. package/dist/loader-CrRPfkHS.mjs +1197 -0
  488. package/dist/loader-CrRPfkHS.mjs.map +1 -0
  489. package/dist/loops-DMKlygqX.mjs +203 -0
  490. package/dist/loops-DMKlygqX.mjs.map +1 -0
  491. package/dist/manifest-builder-BQzCHNgB.mjs +189 -0
  492. package/dist/manifest-builder-BQzCHNgB.mjs.map +1 -0
  493. package/dist/manifest-schema-Ci2gmd0u.mjs +492 -0
  494. package/dist/manifest-schema-Ci2gmd0u.mjs.map +1 -0
  495. package/dist/media/image-endpoint.mjs +1 -1
  496. package/dist/media/index.d.mts +1 -1
  497. package/dist/media/index.mjs +4 -4
  498. package/dist/media/local-runtime.d.mts +14 -14
  499. package/dist/media/local-runtime.mjs +6 -6
  500. package/dist/media-BUQePMxP.mjs +373 -0
  501. package/dist/media-BUQePMxP.mjs.map +1 -0
  502. package/dist/media-DH8ibNlY.mjs +294 -0
  503. package/dist/media-DH8ibNlY.mjs.map +1 -0
  504. package/dist/media-OEIQ3bVc.mjs +408 -0
  505. package/dist/media-OEIQ3bVc.mjs.map +1 -0
  506. package/dist/media-allowlist-pYtaBA95.mjs +44 -0
  507. package/dist/media-allowlist-pYtaBA95.mjs.map +1 -0
  508. package/dist/media-folders-Bf8_s4de.mjs +210 -0
  509. package/dist/media-folders-Bf8_s4de.mjs.map +1 -0
  510. package/dist/media-url-C6klEuNd.mjs +43 -0
  511. package/dist/media-url-C6klEuNd.mjs.map +1 -0
  512. package/dist/media-usage-D7Y64m6v.mjs +1629 -0
  513. package/dist/media-usage-D7Y64m6v.mjs.map +1 -0
  514. package/dist/media-usage-activation-DrqbmgLA.mjs +78 -0
  515. package/dist/media-usage-activation-DrqbmgLA.mjs.map +1 -0
  516. package/dist/media-usage-work-DommYhYA.mjs +152 -0
  517. package/dist/media-usage-work-DommYhYA.mjs.map +1 -0
  518. package/dist/media-usage-work-HU63hNDu.mjs +586 -0
  519. package/dist/media-usage-work-HU63hNDu.mjs.map +1 -0
  520. package/dist/menus-BQfusWEC.mjs +3608 -0
  521. package/dist/menus-BQfusWEC.mjs.map +1 -0
  522. package/dist/menus-BtwjQt5s.mjs +753 -0
  523. package/dist/menus-BtwjQt5s.mjs.map +1 -0
  524. package/dist/menus-p_M1V7J_.mjs +139 -0
  525. package/dist/menus-p_M1V7J_.mjs.map +1 -0
  526. package/dist/migrations/index.d.mts +1 -1
  527. package/dist/migrations/index.mjs +3 -3
  528. package/dist/mime-C94qBG-P.mjs +36 -0
  529. package/dist/mime-C94qBG-P.mjs.map +1 -0
  530. package/dist/mode-DpYW3w6U.mjs +23 -0
  531. package/dist/mode-DpYW3w6U.mjs.map +1 -0
  532. package/dist/node-sqlite-compat-pWFw0lcc.mjs +46 -0
  533. package/dist/node-sqlite-compat-pWFw0lcc.mjs.map +1 -0
  534. package/dist/normalize-DduyxBjf.mjs +191 -0
  535. package/dist/normalize-DduyxBjf.mjs.map +1 -0
  536. package/dist/oauth-authorization-DAXsH1H9.mjs +274 -0
  537. package/dist/oauth-authorization-DAXsH1H9.mjs.map +1 -0
  538. package/dist/oauth-clients-DENiDQri.mjs +266 -0
  539. package/dist/oauth-clients-DENiDQri.mjs.map +1 -0
  540. package/dist/oauth-state-store-y8mEYVq9.mjs +50 -0
  541. package/dist/oauth-state-store-y8mEYVq9.mjs.map +1 -0
  542. package/dist/oauth-user-lookup-CtTYAy-O.mjs +26 -0
  543. package/dist/oauth-user-lookup-CtTYAy-O.mjs.map +1 -0
  544. package/dist/object-cache/memory.d.mts +1 -1
  545. package/dist/options-BYa1FgIM.d.mts +81 -0
  546. package/dist/options-BYa1FgIM.d.mts.map +1 -0
  547. package/dist/page/index.d.mts +2 -2
  548. package/dist/page/index.mjs +5 -5
  549. package/dist/parse-CORGGhHf.mjs +81 -0
  550. package/dist/parse-CORGGhHf.mjs.map +1 -0
  551. package/dist/parse-avNM1xWV.d.mts +168 -0
  552. package/dist/parse-avNM1xWV.d.mts.map +1 -0
  553. package/dist/passkey-config-Dih5YeIS.mjs +46 -0
  554. package/dist/passkey-config-Dih5YeIS.mjs.map +1 -0
  555. package/dist/paths-d51RFm8M.mjs +77 -0
  556. package/dist/paths-d51RFm8M.mjs.map +1 -0
  557. package/dist/patterns-CoqlXUvk.mjs +145 -0
  558. package/dist/patterns-CoqlXUvk.mjs.map +1 -0
  559. package/dist/placeholder-D2aksPMF.d.mts +306 -0
  560. package/dist/placeholder-D2aksPMF.d.mts.map +1 -0
  561. package/dist/plan-DqeZKuaR.mjs +135 -0
  562. package/dist/plan-DqeZKuaR.mjs.map +1 -0
  563. package/dist/plugin-test-runtime.d.mts +14 -14
  564. package/dist/plugin-test-runtime.mjs +110 -107
  565. package/dist/plugin-types.d.mts +2 -2
  566. package/dist/plugin-utils.d.mts +12 -12
  567. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  568. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  569. package/dist/plugins/host.d.mts +5 -5
  570. package/dist/plugins/host.mjs +42 -41
  571. package/dist/plugins-Bb7oqjQA.mjs +277 -0
  572. package/dist/plugins-Bb7oqjQA.mjs.map +1 -0
  573. package/dist/policy-BcEqut3n.mjs +45 -0
  574. package/dist/policy-BcEqut3n.mjs.map +1 -0
  575. package/dist/portable-text-DXE8ymtD.mjs +307 -0
  576. package/dist/portable-text-DXE8ymtD.mjs.map +1 -0
  577. package/dist/preview-DEDWbwA_.mjs +107 -0
  578. package/dist/preview-DEDWbwA_.mjs.map +1 -0
  579. package/dist/protocol-BJbTzvwl.d.mts +61 -0
  580. package/dist/protocol-BJbTzvwl.d.mts.map +1 -0
  581. package/dist/public-submission-D9c9S14m.mjs +250 -0
  582. package/dist/public-submission-D9c9S14m.mjs.map +1 -0
  583. package/dist/public-url-CIRe-2T6.mjs +101 -0
  584. package/dist/public-url-CIRe-2T6.mjs.map +1 -0
  585. package/dist/query-BzifXlPS.mjs +1156 -0
  586. package/dist/query-BzifXlPS.mjs.map +1 -0
  587. package/dist/query-OzMJ6vJP.mjs +41 -0
  588. package/dist/query-OzMJ6vJP.mjs.map +1 -0
  589. package/dist/rate-limit-Csp60Vik.mjs +120 -0
  590. package/dist/rate-limit-Csp60Vik.mjs.map +1 -0
  591. package/dist/receipt-B-aU4hpJ.mjs +43 -0
  592. package/dist/receipt-B-aU4hpJ.mjs.map +1 -0
  593. package/dist/redirect-CDSw1sU3.mjs +17 -0
  594. package/dist/redirect-CDSw1sU3.mjs.map +1 -0
  595. package/dist/redirect-D1ArbO85.mjs +411 -0
  596. package/dist/redirect-D1ArbO85.mjs.map +1 -0
  597. package/dist/redirects-BjTwDTsV.mjs +148 -0
  598. package/dist/redirects-BjTwDTsV.mjs.map +1 -0
  599. package/dist/redirects-Ck50kH3n.mjs +446 -0
  600. package/dist/redirects-Ck50kH3n.mjs.map +1 -0
  601. package/dist/registry/testing.mjs +3 -3
  602. package/dist/registry-CFcNCayZ.mjs +6754 -0
  603. package/dist/registry-CFcNCayZ.mjs.map +1 -0
  604. package/dist/relations-Cfaa1fDl.mjs +776 -0
  605. package/dist/relations-Cfaa1fDl.mjs.map +1 -0
  606. package/dist/request-cache-iHRlHx1d.mjs +104 -0
  607. package/dist/request-cache-iHRlHx1d.mjs.map +1 -0
  608. package/dist/request-context.d.mts +1 -1
  609. package/dist/request-meta-D47mqyev.mjs +141 -0
  610. package/dist/request-meta-D47mqyev.mjs.map +1 -0
  611. package/dist/resolve-BPE8sMvx.mjs +99 -0
  612. package/dist/resolve-BPE8sMvx.mjs.map +1 -0
  613. package/dist/resolve-C0s1E_fH.mjs +199 -0
  614. package/dist/resolve-C0s1E_fH.mjs.map +1 -0
  615. package/dist/revision-j1p4-bOj.mjs +302 -0
  616. package/dist/revision-j1p4-bOj.mjs.map +1 -0
  617. package/dist/route-wire-C9PJV9aL.mjs +197 -0
  618. package/dist/route-wire-C9PJV9aL.mjs.map +1 -0
  619. package/dist/routes-lyYw0mMf.mjs +272 -0
  620. package/dist/routes-lyYw0mMf.mjs.map +1 -0
  621. package/dist/runner-B3eyB9Gb.mjs +6121 -0
  622. package/dist/runner-B3eyB9Gb.mjs.map +1 -0
  623. package/dist/runner-DoYH2Jcu.d.mts +68 -0
  624. package/dist/runner-DoYH2Jcu.d.mts.map +1 -0
  625. package/dist/runtime.d.mts +13 -13
  626. package/dist/runtime.mjs +3 -3
  627. package/dist/schema-BAayK46S.mjs +13 -0
  628. package/dist/schema-BAayK46S.mjs.map +1 -0
  629. package/dist/schema-Gqcl-8G4.mjs +815 -0
  630. package/dist/schema-Gqcl-8G4.mjs.map +1 -0
  631. package/dist/scopes-BqPOKoKf.mjs +34 -0
  632. package/dist/scopes-BqPOKoKf.mjs.map +1 -0
  633. package/dist/search-YJKPIEV6.mjs +448 -0
  634. package/dist/search-YJKPIEV6.mjs.map +1 -0
  635. package/dist/sections-BR_e-wK5.mjs +346 -0
  636. package/dist/sections-BR_e-wK5.mjs.map +1 -0
  637. package/dist/seed/index.d.mts +2 -2
  638. package/dist/seed/index.mjs +37 -31
  639. package/dist/seo/index.d.mts +3 -3
  640. package/dist/seo/index.mjs +22 -21
  641. package/dist/seo/index.mjs.map +1 -1
  642. package/dist/seo-Dsj8hy3j.mjs +114 -0
  643. package/dist/seo-Dsj8hy3j.mjs.map +1 -0
  644. package/dist/seo-XvH4LNNp.mjs +133 -0
  645. package/dist/seo-XvH4LNNp.mjs.map +1 -0
  646. package/dist/service-BsVG05gS.mjs +150 -0
  647. package/dist/service-BsVG05gS.mjs.map +1 -0
  648. package/dist/session-user-DgKbYrlj.mjs +51 -0
  649. package/dist/session-user-DgKbYrlj.mjs.map +1 -0
  650. package/dist/settings-CNPUntkh.mjs +51 -0
  651. package/dist/settings-CNPUntkh.mjs.map +1 -0
  652. package/dist/settings-D5EHi0Tk.mjs +439 -0
  653. package/dist/settings-D5EHi0Tk.mjs.map +1 -0
  654. package/dist/settings-DSfE7wOa.mjs +61 -0
  655. package/dist/settings-DSfE7wOa.mjs.map +1 -0
  656. package/dist/setup-complete-B8W8sJ9v.mjs +26 -0
  657. package/dist/setup-complete-B8W8sJ9v.mjs.map +1 -0
  658. package/dist/setup-nonce-DnSBP260.mjs +25 -0
  659. package/dist/setup-nonce-DnSBP260.mjs.map +1 -0
  660. package/dist/site-settings-NGzdrt7O.mjs +50 -0
  661. package/dist/site-settings-NGzdrt7O.mjs.map +1 -0
  662. package/dist/site-url-D6JB7tLW.mjs +16 -0
  663. package/dist/site-url-D6JB7tLW.mjs.map +1 -0
  664. package/dist/snapshot-CdcwwWAf.mjs +414 -0
  665. package/dist/snapshot-CdcwwWAf.mjs.map +1 -0
  666. package/dist/ssrf-Dv0_tRpo.mjs +406 -0
  667. package/dist/ssrf-Dv0_tRpo.mjs.map +1 -0
  668. package/dist/stage-CUjhED3P.mjs +662 -0
  669. package/dist/stage-CUjhED3P.mjs.map +1 -0
  670. package/dist/staged-C36IWXff.mjs +659 -0
  671. package/dist/staged-C36IWXff.mjs.map +1 -0
  672. package/dist/state-CKouMCSY.mjs +153 -0
  673. package/dist/state-CKouMCSY.mjs.map +1 -0
  674. package/dist/status-lzyj4Uu7.mjs +30 -0
  675. package/dist/status-lzyj4Uu7.mjs.map +1 -0
  676. package/dist/storage/local.d.mts +1 -1
  677. package/dist/storage/local.mjs +1 -1
  678. package/dist/storage/s3.d.mts +1 -1
  679. package/dist/storage/s3.mjs +1 -1
  680. package/dist/storage-query-B-cWcTjJ.d.mts +1594 -0
  681. package/dist/storage-query-B-cWcTjJ.d.mts.map +1 -0
  682. package/dist/tar-DsTXX6ch.mjs +449 -0
  683. package/dist/tar-DsTXX6ch.mjs.map +1 -0
  684. package/dist/target-DLQCwp_Z.mjs +27 -0
  685. package/dist/target-DLQCwp_Z.mjs.map +1 -0
  686. package/dist/taxonomies-BlAjr4BL.mjs +697 -0
  687. package/dist/taxonomies-BlAjr4BL.mjs.map +1 -0
  688. package/dist/taxonomies-Byyo7LOZ.mjs +939 -0
  689. package/dist/taxonomies-Byyo7LOZ.mjs.map +1 -0
  690. package/dist/taxonomy-CKDwM61Y.mjs +525 -0
  691. package/dist/taxonomy-CKDwM61Y.mjs.map +1 -0
  692. package/dist/tokens-BojXlk49.mjs +171 -0
  693. package/dist/tokens-BojXlk49.mjs.map +1 -0
  694. package/dist/transaction-DLPQWik1.mjs +29 -0
  695. package/dist/transaction-DLPQWik1.mjs.map +1 -0
  696. package/dist/transfer-XSTh2BCr.mjs +8706 -0
  697. package/dist/transfer-XSTh2BCr.mjs.map +1 -0
  698. package/dist/transfer-download-DkoCDA9d.mjs +33 -0
  699. package/dist/transfer-download-DkoCDA9d.mjs.map +1 -0
  700. package/dist/transfer-iQ26J-RT.mjs +166 -0
  701. package/dist/transfer-iQ26J-RT.mjs.map +1 -0
  702. package/dist/transformations-C7RQabKQ.mjs +196 -0
  703. package/dist/transformations-C7RQabKQ.mjs.map +1 -0
  704. package/dist/transport-D3RulfD6.mjs +136 -0
  705. package/dist/transport-D3RulfD6.mjs.map +1 -0
  706. package/dist/transport-DhlZlf4D.d.mts +42 -0
  707. package/dist/transport-DhlZlf4D.d.mts.map +1 -0
  708. package/dist/trusted-proxy-B6ECOZJc.mjs +51 -0
  709. package/dist/trusted-proxy-B6ECOZJc.mjs.map +1 -0
  710. package/dist/turnstile-lqUiY7lP.mjs +53 -0
  711. package/dist/turnstile-lqUiY7lP.mjs.map +1 -0
  712. package/dist/types-4Dn9bZhu.mjs +77 -0
  713. package/dist/types-4Dn9bZhu.mjs.map +1 -0
  714. package/dist/types-5LSo7PPx.d.mts +85 -0
  715. package/dist/types-5LSo7PPx.d.mts.map +1 -0
  716. package/dist/types-BQ3hwYJT.d.mts +896 -0
  717. package/dist/types-BQ3hwYJT.d.mts.map +1 -0
  718. package/dist/types-BYEk7qo3.d.mts +198 -0
  719. package/dist/types-BYEk7qo3.d.mts.map +1 -0
  720. package/dist/types-CJKsWVFR.mjs +199 -0
  721. package/dist/types-CJKsWVFR.mjs.map +1 -0
  722. package/dist/types-Ca_w8mmY.d.mts +363 -0
  723. package/dist/types-Ca_w8mmY.d.mts.map +1 -0
  724. package/dist/types-CkE41ZAG.mjs +18 -0
  725. package/dist/types-CkE41ZAG.mjs.map +1 -0
  726. package/dist/types-D0aJW2uR.d.mts +1641 -0
  727. package/dist/types-D0aJW2uR.d.mts.map +1 -0
  728. package/dist/types-DbpN4Qto.d.mts +372 -0
  729. package/dist/types-DbpN4Qto.d.mts.map +1 -0
  730. package/dist/types-ILDI1sdY.mjs +16 -0
  731. package/dist/types-ILDI1sdY.mjs.map +1 -0
  732. package/dist/types-OC5c-edM.mjs +22 -0
  733. package/dist/types-OC5c-edM.mjs.map +1 -0
  734. package/dist/types-aOOxRSx6.mjs +103 -0
  735. package/dist/types-aOOxRSx6.mjs.map +1 -0
  736. package/dist/types-m1WbUffD.d.mts +198 -0
  737. package/dist/types-m1WbUffD.d.mts.map +1 -0
  738. package/dist/types-uxLoPBio.d.mts +124 -0
  739. package/dist/types-uxLoPBio.d.mts.map +1 -0
  740. package/dist/types-we5uR-tV.d.mts +287 -0
  741. package/dist/types-we5uR-tV.d.mts.map +1 -0
  742. package/dist/upload-attempts-DduMy6B0.mjs +32 -0
  743. package/dist/upload-attempts-DduMy6B0.mjs.map +1 -0
  744. package/dist/url-pattern-B3EwxAAk.mjs +33 -0
  745. package/dist/url-pattern-B3EwxAAk.mjs.map +1 -0
  746. package/dist/user-ElwQjTQT.mjs +171 -0
  747. package/dist/user-ElwQjTQT.mjs.map +1 -0
  748. package/dist/utils-BlAXmfOG.mjs +439 -0
  749. package/dist/utils-BlAXmfOG.mjs.map +1 -0
  750. package/dist/validate-CH0X5b2c.d.mts +468 -0
  751. package/dist/validate-CH0X5b2c.d.mts.map +1 -0
  752. package/dist/validate-CfgRpcjA.mjs +492 -0
  753. package/dist/validate-CfgRpcjA.mjs.map +1 -0
  754. package/dist/validation-DvYJtv4k.mjs +218 -0
  755. package/dist/validation-DvYJtv4k.mjs.map +1 -0
  756. package/dist/version-DgYjhTud.mjs +9 -0
  757. package/dist/version-DgYjhTud.mjs.map +1 -0
  758. package/dist/version-Dq71scUb.mjs +7 -0
  759. package/dist/version-Dq71scUb.mjs.map +1 -0
  760. package/dist/widgets-ChFIj0be.mjs +126 -0
  761. package/dist/widgets-ChFIj0be.mjs.map +1 -0
  762. package/dist/wxr-taxonomies-CBZMp2YX.mjs +372 -0
  763. package/dist/wxr-taxonomies-CBZMp2YX.mjs.map +1 -0
  764. package/dist/wxr-taxonomies-DlKDpWN1.d.mts +34 -0
  765. package/dist/wxr-taxonomies-DlKDpWN1.d.mts.map +1 -0
  766. package/dist/zod-generator-DmTKI-Ig.mjs +426 -0
  767. package/dist/zod-generator-DmTKI-Ig.mjs.map +1 -0
  768. package/package.json +7 -6
  769. package/src/api/handlers/content.ts +593 -16
  770. package/src/api/handlers/device-flow.ts +74 -21
  771. package/src/api/handlers/manifest.ts +79 -5
  772. package/src/api/handlers/relations.ts +638 -157
  773. package/src/api/handlers/revision.ts +30 -0
  774. package/src/api/handlers/schema.ts +403 -1
  775. package/src/api/handlers/staged-references.ts +142 -0
  776. package/src/api/handlers/validate-references.ts +146 -0
  777. package/src/api/schemas/content.ts +13 -0
  778. package/src/api/schemas/relations.ts +54 -44
  779. package/src/api/schemas/schema.ts +14 -0
  780. package/src/astro/integration/routes.ts +15 -19
  781. package/src/astro/routes/api/content/[collection]/[id]/references/[relation]/children.ts +11 -54
  782. package/src/astro/routes/api/content/[collection]/[id].ts +3 -1
  783. package/src/astro/routes/api/oauth/device/authorize.ts +33 -4
  784. package/src/astro/routes/api/relations/index.ts +4 -4
  785. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +6 -2
  786. package/src/astro/types.ts +5 -0
  787. package/src/cli/commands/export-seed.ts +510 -89
  788. package/src/components/WidgetArea.astro +3 -2
  789. package/src/database/migrations/086_relations_structural.ts +197 -0
  790. package/src/database/migrations/087_reference_field_relations.ts +407 -0
  791. package/src/database/migrations/runner.ts +4 -0
  792. package/src/database/reference-backfill.ts +141 -0
  793. package/src/database/repositories/content.ts +43 -8
  794. package/src/database/repositories/relation.ts +620 -208
  795. package/src/database/repositories/revision.ts +16 -0
  796. package/src/database/repositories/types.ts +38 -0
  797. package/src/database/transaction.ts +12 -1
  798. package/src/database/types.ts +14 -5
  799. package/src/emdash-runtime.ts +86 -11
  800. package/src/index.ts +10 -0
  801. package/src/loader.ts +169 -22
  802. package/src/query.ts +455 -25
  803. package/src/references/field-map.ts +115 -0
  804. package/src/references/resolve.ts +160 -0
  805. package/src/references/staged.ts +117 -0
  806. package/src/references/types.ts +16 -0
  807. package/src/registry/artifact-fetch.ts +45 -271
  808. package/src/schema/registry.ts +99 -24
  809. package/src/schema/types.ts +58 -0
  810. package/src/schema/zod-generator.ts +67 -1
  811. package/src/seed/apply.ts +519 -62
  812. package/src/seed/types.ts +36 -2
  813. package/src/seed/validate.ts +78 -2
  814. package/src/transfer/analyze/unique-keys.ts +3 -12
  815. package/src/transfer/analyze/validate.ts +65 -39
  816. package/src/transfer/analyze/values.ts +12 -1
  817. package/src/transfer/export/readers.ts +12 -8
  818. package/src/transfer/format/columns.ts +26 -6
  819. package/src/transfer/format/kinds.ts +21 -5
  820. package/src/transfer/import/context.ts +8 -1
  821. package/src/transfer/ops/package-index.ts +1 -1
  822. package/dist/action-token-DYwe4Pk0.mjs +0 -26
  823. package/dist/action-token-DYwe4Pk0.mjs.map +0 -1
  824. package/dist/activation-LOkDM5WT.mjs +0 -382
  825. package/dist/activation-LOkDM5WT.mjs.map +0 -1
  826. package/dist/adapters-B64LbYcB.d.mts +0 -171
  827. package/dist/adapters-B64LbYcB.d.mts.map +0 -1
  828. package/dist/allowed-origins-CHB8oZNM.mjs +0 -116
  829. package/dist/allowed-origins-CHB8oZNM.mjs.map +0 -1
  830. package/dist/api-CuyNEHZG.mjs +0 -4718
  831. package/dist/api-CuyNEHZG.mjs.map +0 -1
  832. package/dist/api-tokens-s4i4aUp_.mjs +0 -166
  833. package/dist/api-tokens-s4i4aUp_.mjs.map +0 -1
  834. package/dist/apply-npY1TAhG.mjs +0 -1366
  835. package/dist/apply-npY1TAhG.mjs.map +0 -1
  836. package/dist/approvals-CqMfNxak.mjs +0 -460
  837. package/dist/approvals-CqMfNxak.mjs.map +0 -1
  838. package/dist/artifact-fetch-DZMOGZ3-.mjs +0 -818
  839. package/dist/artifact-fetch-DZMOGZ3-.mjs.map +0 -1
  840. package/dist/astro/routes/api/relations/_id_/translations.d.mts +0 -8
  841. package/dist/astro/routes/api/relations/_id_/translations.d.mts.map +0 -1
  842. package/dist/astro/routes/api/relations/_id_/translations.mjs +0 -47
  843. package/dist/astro/routes/api/relations/_id_/translations.mjs.map +0 -1
  844. package/dist/audit-RfCugiSB.mjs +0 -127
  845. package/dist/audit-RfCugiSB.mjs.map +0 -1
  846. package/dist/authoritative-records-CoJvBXAD.mjs +0 -5172
  847. package/dist/authoritative-records-CoJvBXAD.mjs.map +0 -1
  848. package/dist/authorize-seCifOMJ.mjs +0 -49
  849. package/dist/authorize-seCifOMJ.mjs.map +0 -1
  850. package/dist/backup-BQRj3afm.mjs +0 -246
  851. package/dist/backup-BQRj3afm.mjs.map +0 -1
  852. package/dist/block-type-registry-DUI_3KxT.mjs +0 -6709
  853. package/dist/block-type-registry-DUI_3KxT.mjs.map +0 -1
  854. package/dist/block-types-BmZmLmAD.mjs +0 -132
  855. package/dist/block-types-BmZmLmAD.mjs.map +0 -1
  856. package/dist/block-values-C_VIPr5t.mjs +0 -175
  857. package/dist/block-values-C_VIPr5t.mjs.map +0 -1
  858. package/dist/byline-DYmkXqvo.mjs +0 -909
  859. package/dist/byline-DYmkXqvo.mjs.map +0 -1
  860. package/dist/byline-fields-D28AT-Fh.mjs +0 -123
  861. package/dist/byline-fields-D28AT-Fh.mjs.map +0 -1
  862. package/dist/byline-registry-gnKscbQX.mjs +0 -406
  863. package/dist/byline-registry-gnKscbQX.mjs.map +0 -1
  864. package/dist/bylines-BPwJqoYH.mjs +0 -232
  865. package/dist/bylines-BPwJqoYH.mjs.map +0 -1
  866. package/dist/bylines-ukLaYpVZ.mjs +0 -214
  867. package/dist/bylines-ukLaYpVZ.mjs.map +0 -1
  868. package/dist/cache-m7UEkRFV.mjs +0 -108
  869. package/dist/cache-m7UEkRFV.mjs.map +0 -1
  870. package/dist/canonical-YhEQezjg.mjs +0 -174
  871. package/dist/canonical-YhEQezjg.mjs.map +0 -1
  872. package/dist/capture-triggers-kJyl_yyM.mjs +0 -362
  873. package/dist/capture-triggers-kJyl_yyM.mjs.map +0 -1
  874. package/dist/challenge-store-ppU6Uv13.mjs +0 -51
  875. package/dist/challenge-store-ppU6Uv13.mjs.map +0 -1
  876. package/dist/checksum-B2IINIlN.mjs +0 -162
  877. package/dist/checksum-B2IINIlN.mjs.map +0 -1
  878. package/dist/chrome-tags-DApCQSIk.mjs +0 -24
  879. package/dist/chrome-tags-DApCQSIk.mjs.map +0 -1
  880. package/dist/chunks-Dms7Uxbt.mjs +0 -25
  881. package/dist/chunks-Dms7Uxbt.mjs.map +0 -1
  882. package/dist/collection-deletion-BIm28mo3.mjs +0 -436
  883. package/dist/collection-deletion-BIm28mo3.mjs.map +0 -1
  884. package/dist/collection-deletion-processor-Br6rxs3u.mjs +0 -217
  885. package/dist/collection-deletion-processor-Br6rxs3u.mjs.map +0 -1
  886. package/dist/collection-slugs-cache-CjGk__zp.mjs +0 -85
  887. package/dist/collection-slugs-cache-CjGk__zp.mjs.map +0 -1
  888. package/dist/comment-CrBl22OF.mjs +0 -313
  889. package/dist/comment-CrBl22OF.mjs.map +0 -1
  890. package/dist/comment-reaction-JEQ2Fpd8.mjs +0 -85
  891. package/dist/comment-reaction-JEQ2Fpd8.mjs.map +0 -1
  892. package/dist/comments-2ah9du9y.mjs +0 -195
  893. package/dist/comments-2ah9du9y.mjs.map +0 -1
  894. package/dist/comments-fHZ8ON9O.mjs +0 -99
  895. package/dist/comments-fHZ8ON9O.mjs.map +0 -1
  896. package/dist/components-CXbq7CSM.mjs +0 -108
  897. package/dist/components-CXbq7CSM.mjs.map +0 -1
  898. package/dist/config-BjEm_3xL.d.mts +0 -6537
  899. package/dist/config-BjEm_3xL.d.mts.map +0 -1
  900. package/dist/config-IhybvkIQ.mjs +0 -242
  901. package/dist/config-IhybvkIQ.mjs.map +0 -1
  902. package/dist/config-Py43JK9r.d.mts +0 -39
  903. package/dist/config-Py43JK9r.d.mts.map +0 -1
  904. package/dist/content-DFaIEDj9.mjs +0 -2281
  905. package/dist/content-DFaIEDj9.mjs.map +0 -1
  906. package/dist/content-list-query-Dra4Dalc.d.mts +0 -26
  907. package/dist/content-list-query-Dra4Dalc.d.mts.map +0 -1
  908. package/dist/content-policy-DFNw91-d.mjs +0 -46
  909. package/dist/content-policy-DFNw91-d.mjs.map +0 -1
  910. package/dist/content-repair-Q8IUrpLL.mjs +0 -442
  911. package/dist/content-repair-Q8IUrpLL.mjs.map +0 -1
  912. package/dist/context-BV_7t-Ua.mjs +0 -1921
  913. package/dist/context-BV_7t-Ua.mjs.map +0 -1
  914. package/dist/cron-7DCJwPXq.mjs +0 -284
  915. package/dist/cron-7DCJwPXq.mjs.map +0 -1
  916. package/dist/dashboard-BP-iJqpd.mjs +0 -151
  917. package/dist/dashboard-BP-iJqpd.mjs.map +0 -1
  918. package/dist/default-DQ6vsviu.mjs +0 -81
  919. package/dist/default-DQ6vsviu.mjs.map +0 -1
  920. package/dist/deferred-tasks-BPxXUB4x.d.mts +0 -9
  921. package/dist/deferred-tasks-BPxXUB4x.d.mts.map +0 -1
  922. package/dist/dev-typegen-CZaPLl3V.mjs +0 -29
  923. package/dist/dev-typegen-CZaPLl3V.mjs.map +0 -1
  924. package/dist/device-flow-CRd6DXmW.mjs +0 -466
  925. package/dist/device-flow-CRd6DXmW.mjs.map +0 -1
  926. package/dist/digest-BarSh-pN.mjs +0 -194
  927. package/dist/digest-BarSh-pN.mjs.map +0 -1
  928. package/dist/direct-executor-D2lNadwo.mjs +0 -104
  929. package/dist/direct-executor-D2lNadwo.mjs.map +0 -1
  930. package/dist/dist-BNwANFJR.mjs +0 -810
  931. package/dist/dist-BNwANFJR.mjs.map +0 -1
  932. package/dist/email-console-bJn3ctqA.mjs +0 -50
  933. package/dist/email-console-bJn3ctqA.mjs.map +0 -1
  934. package/dist/email-locale-CN6WAMx0.mjs +0 -25
  935. package/dist/email-locale-CN6WAMx0.mjs.map +0 -1
  936. package/dist/emdash-runtime-CtfnZmPi.mjs +0 -4186
  937. package/dist/emdash-runtime-CtfnZmPi.mjs.map +0 -1
  938. package/dist/enrich-Dl3kZ-lP.mjs +0 -194
  939. package/dist/enrich-Dl3kZ-lP.mjs.map +0 -1
  940. package/dist/entry-lock-BJYdBfXb.mjs +0 -1097
  941. package/dist/entry-lock-BJYdBfXb.mjs.map +0 -1
  942. package/dist/entry-lock-Cf5OoIgN.d.mts +0 -4368
  943. package/dist/entry-lock-Cf5OoIgN.d.mts.map +0 -1
  944. package/dist/entry-lock-DHQOxN7R.mjs +0 -163
  945. package/dist/entry-lock-DHQOxN7R.mjs.map +0 -1
  946. package/dist/entry-locks-D0foLdjQ.mjs +0 -167
  947. package/dist/entry-locks-D0foLdjQ.mjs.map +0 -1
  948. package/dist/error-CfvOHP0M.mjs +0 -90
  949. package/dist/error-CfvOHP0M.mjs.map +0 -1
  950. package/dist/errors-BF0_LFhW.mjs +0 -460
  951. package/dist/errors-BF0_LFhW.mjs.map +0 -1
  952. package/dist/errors-DgE1zJGG.mjs +0 -120
  953. package/dist/errors-DgE1zJGG.mjs.map +0 -1
  954. package/dist/escape-CuaZhZvL.mjs +0 -9
  955. package/dist/escape-CuaZhZvL.mjs.map +0 -1
  956. package/dist/fence-CMDXJYc_.mjs +0 -162
  957. package/dist/fence-CMDXJYc_.mjs.map +0 -1
  958. package/dist/field-defs-cache-HIgBbqZZ.mjs +0 -77
  959. package/dist/field-defs-cache-HIgBbqZZ.mjs.map +0 -1
  960. package/dist/focal-point-Gr34o-4o.mjs +0 -23
  961. package/dist/focal-point-Gr34o-4o.mjs.map +0 -1
  962. package/dist/fts-manager-S-K0laoS.mjs +0 -443
  963. package/dist/fts-manager-S-K0laoS.mjs.map +0 -1
  964. package/dist/gc-DjKY0Ay1.mjs +0 -75
  965. package/dist/gc-DjKY0Ay1.mjs.map +0 -1
  966. package/dist/hash-SDAW6zC-.mjs +0 -37
  967. package/dist/hash-SDAW6zC-.mjs.map +0 -1
  968. package/dist/hook-result-B5bXDgS2.d.mts +0 -31
  969. package/dist/hook-result-B5bXDgS2.d.mts.map +0 -1
  970. package/dist/hreflang-CbVI4paR.mjs +0 -105
  971. package/dist/hreflang-CbVI4paR.mjs.map +0 -1
  972. package/dist/hreflang-D5uNnsGJ.d.mts +0 -50
  973. package/dist/hreflang-D5uNnsGJ.d.mts.map +0 -1
  974. package/dist/http-route-dispatch-BitqzwMy.mjs +0 -339
  975. package/dist/http-route-dispatch-BitqzwMy.mjs.map +0 -1
  976. package/dist/identity-Be5kzutJ.mjs +0 -35
  977. package/dist/identity-Be5kzutJ.mjs.map +0 -1
  978. package/dist/import-YzfKCaco.mjs +0 -2020
  979. package/dist/import-YzfKCaco.mjs.map +0 -1
  980. package/dist/index-D-hdtLe8.d.mts +0 -623
  981. package/dist/index-D-hdtLe8.d.mts.map +0 -1
  982. package/dist/install-finalization-DfM1fj5x.mjs +0 -58
  983. package/dist/install-finalization-DfM1fj5x.mjs.map +0 -1
  984. package/dist/keys-yxLm5l35.mjs +0 -61
  985. package/dist/keys-yxLm5l35.mjs.map +0 -1
  986. package/dist/kinds-CRu_T5T5.mjs +0 -961
  987. package/dist/kinds-CRu_T5T5.mjs.map +0 -1
  988. package/dist/lifecycle-BzeGPeQ-.mjs +0 -25
  989. package/dist/lifecycle-BzeGPeQ-.mjs.map +0 -1
  990. package/dist/load-XgJiE6_3.mjs +0 -28
  991. package/dist/load-XgJiE6_3.mjs.map +0 -1
  992. package/dist/loader-BzqeR1ZN.mjs +0 -1086
  993. package/dist/loader-BzqeR1ZN.mjs.map +0 -1
  994. package/dist/loops-BQSzv5Zn.mjs +0 -203
  995. package/dist/loops-BQSzv5Zn.mjs.map +0 -1
  996. package/dist/manifest-builder-BmSAOOEF.mjs +0 -189
  997. package/dist/manifest-builder-BmSAOOEF.mjs.map +0 -1
  998. package/dist/manifest-schema-CY3zng_M.mjs +0 -492
  999. package/dist/manifest-schema-CY3zng_M.mjs.map +0 -1
  1000. package/dist/media-CPXTbb1R.mjs +0 -373
  1001. package/dist/media-CPXTbb1R.mjs.map +0 -1
  1002. package/dist/media-JXRWDhw3.mjs +0 -294
  1003. package/dist/media-JXRWDhw3.mjs.map +0 -1
  1004. package/dist/media-Pu1L6xir.mjs +0 -408
  1005. package/dist/media-Pu1L6xir.mjs.map +0 -1
  1006. package/dist/media-allowlist-BSoa9Vvm.mjs +0 -44
  1007. package/dist/media-allowlist-BSoa9Vvm.mjs.map +0 -1
  1008. package/dist/media-folders-BE0oo2eX.mjs +0 -210
  1009. package/dist/media-folders-BE0oo2eX.mjs.map +0 -1
  1010. package/dist/media-url-jArBpzIG.mjs +0 -43
  1011. package/dist/media-url-jArBpzIG.mjs.map +0 -1
  1012. package/dist/media-usage-De-zeR9E.mjs +0 -1629
  1013. package/dist/media-usage-De-zeR9E.mjs.map +0 -1
  1014. package/dist/media-usage-activation-HKp7zk7W.mjs +0 -78
  1015. package/dist/media-usage-activation-HKp7zk7W.mjs.map +0 -1
  1016. package/dist/media-usage-work-C2OZLCAd.mjs +0 -586
  1017. package/dist/media-usage-work-C2OZLCAd.mjs.map +0 -1
  1018. package/dist/media-usage-work-DwUNbgvS.mjs +0 -152
  1019. package/dist/media-usage-work-DwUNbgvS.mjs.map +0 -1
  1020. package/dist/menus-BM7BPLOb.mjs +0 -139
  1021. package/dist/menus-BM7BPLOb.mjs.map +0 -1
  1022. package/dist/menus-Cm68rsAq.mjs +0 -3608
  1023. package/dist/menus-Cm68rsAq.mjs.map +0 -1
  1024. package/dist/menus-ITeAbcIF.mjs +0 -753
  1025. package/dist/menus-ITeAbcIF.mjs.map +0 -1
  1026. package/dist/mime-ChLqYwDk.mjs +0 -36
  1027. package/dist/mime-ChLqYwDk.mjs.map +0 -1
  1028. package/dist/mode-CCuKXUci.mjs +0 -23
  1029. package/dist/mode-CCuKXUci.mjs.map +0 -1
  1030. package/dist/node-sqlite-compat-CONMsl-x.mjs +0 -46
  1031. package/dist/node-sqlite-compat-CONMsl-x.mjs.map +0 -1
  1032. package/dist/normalize-CO2P8-iE.mjs +0 -191
  1033. package/dist/normalize-CO2P8-iE.mjs.map +0 -1
  1034. package/dist/oauth-authorization-DlMIL5_h.mjs +0 -274
  1035. package/dist/oauth-authorization-DlMIL5_h.mjs.map +0 -1
  1036. package/dist/oauth-clients-Djq9r_KP.mjs +0 -266
  1037. package/dist/oauth-clients-Djq9r_KP.mjs.map +0 -1
  1038. package/dist/oauth-state-store-BbjnZXNC.mjs +0 -50
  1039. package/dist/oauth-state-store-BbjnZXNC.mjs.map +0 -1
  1040. package/dist/oauth-user-lookup-vue9a64A.mjs +0 -26
  1041. package/dist/oauth-user-lookup-vue9a64A.mjs.map +0 -1
  1042. package/dist/options-SQCHQCPH.d.mts +0 -81
  1043. package/dist/options-SQCHQCPH.d.mts.map +0 -1
  1044. package/dist/parse-CVgO-Qai.d.mts +0 -168
  1045. package/dist/parse-CVgO-Qai.d.mts.map +0 -1
  1046. package/dist/parse-DY6OD1j_.mjs +0 -81
  1047. package/dist/parse-DY6OD1j_.mjs.map +0 -1
  1048. package/dist/passkey-config-X_H8128a.mjs +0 -46
  1049. package/dist/passkey-config-X_H8128a.mjs.map +0 -1
  1050. package/dist/paths-JxokKIbr.mjs +0 -77
  1051. package/dist/paths-JxokKIbr.mjs.map +0 -1
  1052. package/dist/patterns-BhAvqO0S.mjs +0 -145
  1053. package/dist/patterns-BhAvqO0S.mjs.map +0 -1
  1054. package/dist/placeholder-MSEd8gty.d.mts +0 -306
  1055. package/dist/placeholder-MSEd8gty.d.mts.map +0 -1
  1056. package/dist/plan-xjcWrAah.mjs +0 -135
  1057. package/dist/plan-xjcWrAah.mjs.map +0 -1
  1058. package/dist/plugins-DUXUt8B9.mjs +0 -277
  1059. package/dist/plugins-DUXUt8B9.mjs.map +0 -1
  1060. package/dist/policy-CUvwAARc.mjs +0 -45
  1061. package/dist/policy-CUvwAARc.mjs.map +0 -1
  1062. package/dist/portable-text-5O_ZGUjB.mjs +0 -307
  1063. package/dist/portable-text-5O_ZGUjB.mjs.map +0 -1
  1064. package/dist/preview-CIUcPYr6.mjs +0 -107
  1065. package/dist/preview-CIUcPYr6.mjs.map +0 -1
  1066. package/dist/protocol-B97DZaFr.d.mts +0 -61
  1067. package/dist/protocol-B97DZaFr.d.mts.map +0 -1
  1068. package/dist/public-submission-BFBUrqst.mjs +0 -250
  1069. package/dist/public-submission-BFBUrqst.mjs.map +0 -1
  1070. package/dist/public-url-Bn7U0D7-.mjs +0 -101
  1071. package/dist/public-url-Bn7U0D7-.mjs.map +0 -1
  1072. package/dist/query-B48peoRT.mjs +0 -890
  1073. package/dist/query-B48peoRT.mjs.map +0 -1
  1074. package/dist/query-C4IH0uhR.mjs +0 -41
  1075. package/dist/query-C4IH0uhR.mjs.map +0 -1
  1076. package/dist/rate-limit-BZ6nybgc.mjs +0 -120
  1077. package/dist/rate-limit-BZ6nybgc.mjs.map +0 -1
  1078. package/dist/receipt-B4wJj5Jq.mjs +0 -43
  1079. package/dist/receipt-B4wJj5Jq.mjs.map +0 -1
  1080. package/dist/redirect-B29UjdUn.mjs +0 -411
  1081. package/dist/redirect-B29UjdUn.mjs.map +0 -1
  1082. package/dist/redirect-Cd1E7VUt.mjs +0 -17
  1083. package/dist/redirect-Cd1E7VUt.mjs.map +0 -1
  1084. package/dist/redirects-Ca2MPfEG.mjs +0 -446
  1085. package/dist/redirects-Ca2MPfEG.mjs.map +0 -1
  1086. package/dist/redirects-Cv9apQKj.mjs +0 -148
  1087. package/dist/redirects-Cv9apQKj.mjs.map +0 -1
  1088. package/dist/relation-M4NUCb0b.mjs +0 -334
  1089. package/dist/relation-M4NUCb0b.mjs.map +0 -1
  1090. package/dist/relations-CCif47Oq.mjs +0 -403
  1091. package/dist/relations-CCif47Oq.mjs.map +0 -1
  1092. package/dist/relations-CK9CYUyr.mjs +0 -310
  1093. package/dist/relations-CK9CYUyr.mjs.map +0 -1
  1094. package/dist/request-cache-DzLYKm_x.mjs +0 -104
  1095. package/dist/request-cache-DzLYKm_x.mjs.map +0 -1
  1096. package/dist/request-meta-sZXt3sRo.mjs +0 -141
  1097. package/dist/request-meta-sZXt3sRo.mjs.map +0 -1
  1098. package/dist/resolve-2WbQsCvT.mjs +0 -199
  1099. package/dist/resolve-2WbQsCvT.mjs.map +0 -1
  1100. package/dist/route-wire--1hLuACz.mjs +0 -197
  1101. package/dist/route-wire--1hLuACz.mjs.map +0 -1
  1102. package/dist/routes-vrR95WR6.mjs +0 -272
  1103. package/dist/routes-vrR95WR6.mjs.map +0 -1
  1104. package/dist/runner-1y4J9fJB.mjs +0 -5742
  1105. package/dist/runner-1y4J9fJB.mjs.map +0 -1
  1106. package/dist/runner-D5_LzKXI.d.mts +0 -68
  1107. package/dist/runner-D5_LzKXI.d.mts.map +0 -1
  1108. package/dist/schema-BABiRdsH.mjs +0 -13
  1109. package/dist/schema-BABiRdsH.mjs.map +0 -1
  1110. package/dist/schema-Du3MzCG0.mjs +0 -446
  1111. package/dist/schema-Du3MzCG0.mjs.map +0 -1
  1112. package/dist/scopes-Dbk-ElhT.mjs +0 -34
  1113. package/dist/scopes-Dbk-ElhT.mjs.map +0 -1
  1114. package/dist/search-Bt1PL1jf.mjs +0 -448
  1115. package/dist/search-Bt1PL1jf.mjs.map +0 -1
  1116. package/dist/sections-Ddptx_o9.mjs +0 -346
  1117. package/dist/sections-Ddptx_o9.mjs.map +0 -1
  1118. package/dist/seo-CZT2oLtT.mjs +0 -114
  1119. package/dist/seo-CZT2oLtT.mjs.map +0 -1
  1120. package/dist/seo-D5w3-Azy.mjs +0 -133
  1121. package/dist/seo-D5w3-Azy.mjs.map +0 -1
  1122. package/dist/service-DuykXPyW.mjs +0 -150
  1123. package/dist/service-DuykXPyW.mjs.map +0 -1
  1124. package/dist/session-user-BhaVp8w0.mjs +0 -51
  1125. package/dist/session-user-BhaVp8w0.mjs.map +0 -1
  1126. package/dist/settings-B4vDl1fK.mjs +0 -439
  1127. package/dist/settings-B4vDl1fK.mjs.map +0 -1
  1128. package/dist/settings-DYidIB26.mjs +0 -61
  1129. package/dist/settings-DYidIB26.mjs.map +0 -1
  1130. package/dist/settings-Dyj6v8C4.mjs +0 -51
  1131. package/dist/settings-Dyj6v8C4.mjs.map +0 -1
  1132. package/dist/setup-complete-bOogcHWG.mjs +0 -26
  1133. package/dist/setup-complete-bOogcHWG.mjs.map +0 -1
  1134. package/dist/setup-nonce-0EGuKM4s.mjs +0 -25
  1135. package/dist/setup-nonce-0EGuKM4s.mjs.map +0 -1
  1136. package/dist/site-settings-DOgRUoFX.mjs +0 -50
  1137. package/dist/site-settings-DOgRUoFX.mjs.map +0 -1
  1138. package/dist/site-url-BU_bbxwj.mjs +0 -16
  1139. package/dist/site-url-BU_bbxwj.mjs.map +0 -1
  1140. package/dist/snapshot-PawoX-WG.mjs +0 -414
  1141. package/dist/snapshot-PawoX-WG.mjs.map +0 -1
  1142. package/dist/ssrf-CJUnJymJ.mjs +0 -406
  1143. package/dist/ssrf-CJUnJymJ.mjs.map +0 -1
  1144. package/dist/stage-DgrBz_du.mjs +0 -662
  1145. package/dist/stage-DgrBz_du.mjs.map +0 -1
  1146. package/dist/state-DDiPySSG.mjs +0 -153
  1147. package/dist/state-DDiPySSG.mjs.map +0 -1
  1148. package/dist/status-DZKIG4a9.mjs +0 -30
  1149. package/dist/status-DZKIG4a9.mjs.map +0 -1
  1150. package/dist/storage-query-FXJH5pI8.d.mts +0 -1581
  1151. package/dist/storage-query-FXJH5pI8.d.mts.map +0 -1
  1152. package/dist/tar-_1AgTYFu.mjs +0 -449
  1153. package/dist/tar-_1AgTYFu.mjs.map +0 -1
  1154. package/dist/target-_7pn2Gbg.mjs +0 -27
  1155. package/dist/target-_7pn2Gbg.mjs.map +0 -1
  1156. package/dist/taxonomies-C1IwNe8Q.mjs +0 -697
  1157. package/dist/taxonomies-C1IwNe8Q.mjs.map +0 -1
  1158. package/dist/taxonomies-C_XMoRcX.mjs +0 -939
  1159. package/dist/taxonomies-C_XMoRcX.mjs.map +0 -1
  1160. package/dist/taxonomy-C3Fu1YeH.mjs +0 -525
  1161. package/dist/taxonomy-C3Fu1YeH.mjs.map +0 -1
  1162. package/dist/tokens-u78jETkX.mjs +0 -171
  1163. package/dist/tokens-u78jETkX.mjs.map +0 -1
  1164. package/dist/transaction-BcJO4Tmc.mjs +0 -29
  1165. package/dist/transaction-BcJO4Tmc.mjs.map +0 -1
  1166. package/dist/transfer-DIGvR9Af.mjs +0 -166
  1167. package/dist/transfer-DIGvR9Af.mjs.map +0 -1
  1168. package/dist/transfer-DgeCvHnj.mjs +0 -8675
  1169. package/dist/transfer-DgeCvHnj.mjs.map +0 -1
  1170. package/dist/transfer-download-Pml7RMio.mjs +0 -33
  1171. package/dist/transfer-download-Pml7RMio.mjs.map +0 -1
  1172. package/dist/transformations-9gfpwY65.mjs +0 -196
  1173. package/dist/transformations-9gfpwY65.mjs.map +0 -1
  1174. package/dist/transport-BIfH7_hx.d.mts +0 -42
  1175. package/dist/transport-BIfH7_hx.d.mts.map +0 -1
  1176. package/dist/transport-DKWIq53q.mjs +0 -136
  1177. package/dist/transport-DKWIq53q.mjs.map +0 -1
  1178. package/dist/trusted-proxy-tKiVtyTD.mjs +0 -51
  1179. package/dist/trusted-proxy-tKiVtyTD.mjs.map +0 -1
  1180. package/dist/turnstile-DpsoyOfg.mjs +0 -53
  1181. package/dist/turnstile-DpsoyOfg.mjs.map +0 -1
  1182. package/dist/types-B4sUC2p1.d.mts +0 -198
  1183. package/dist/types-B4sUC2p1.d.mts.map +0 -1
  1184. package/dist/types-B7Lmsh1E.d.mts +0 -887
  1185. package/dist/types-B7Lmsh1E.d.mts.map +0 -1
  1186. package/dist/types-BZakh7Ym.mjs +0 -22
  1187. package/dist/types-BZakh7Ym.mjs.map +0 -1
  1188. package/dist/types-B_CppEmv.d.mts +0 -264
  1189. package/dist/types-B_CppEmv.d.mts.map +0 -1
  1190. package/dist/types-BcrBrE6-.mjs +0 -159
  1191. package/dist/types-BcrBrE6-.mjs.map +0 -1
  1192. package/dist/types-BkUg2yHx.mjs +0 -92
  1193. package/dist/types-BkUg2yHx.mjs.map +0 -1
  1194. package/dist/types-CAZgq9fO.d.mts +0 -124
  1195. package/dist/types-CAZgq9fO.d.mts.map +0 -1
  1196. package/dist/types-Cd-O03VG.d.mts +0 -363
  1197. package/dist/types-Cd-O03VG.d.mts.map +0 -1
  1198. package/dist/types-Cr-Kg-3D.d.mts +0 -1641
  1199. package/dist/types-Cr-Kg-3D.d.mts.map +0 -1
  1200. package/dist/types-D2fvWd1i.d.mts +0 -359
  1201. package/dist/types-D2fvWd1i.d.mts.map +0 -1
  1202. package/dist/types-D7HUsguf.mjs +0 -77
  1203. package/dist/types-D7HUsguf.mjs.map +0 -1
  1204. package/dist/types-DA1Te3Oy.d.mts +0 -198
  1205. package/dist/types-DA1Te3Oy.d.mts.map +0 -1
  1206. package/dist/types-DhV6Q5bP.mjs +0 -18
  1207. package/dist/types-DhV6Q5bP.mjs.map +0 -1
  1208. package/dist/types-DnnVSl6Y.d.mts +0 -85
  1209. package/dist/types-DnnVSl6Y.d.mts.map +0 -1
  1210. package/dist/types-VT4-BugW.mjs +0 -16
  1211. package/dist/types-VT4-BugW.mjs.map +0 -1
  1212. package/dist/upload-attempts-B68ZGNu9.mjs +0 -32
  1213. package/dist/upload-attempts-B68ZGNu9.mjs.map +0 -1
  1214. package/dist/url-pattern-CCeZMGOh.mjs +0 -33
  1215. package/dist/url-pattern-CCeZMGOh.mjs.map +0 -1
  1216. package/dist/user-DDSL-sGw.mjs +0 -171
  1217. package/dist/user-DDSL-sGw.mjs.map +0 -1
  1218. package/dist/utils-DdhmO9w9.mjs +0 -439
  1219. package/dist/utils-DdhmO9w9.mjs.map +0 -1
  1220. package/dist/validate-CHosPEhs.mjs +0 -453
  1221. package/dist/validate-CHosPEhs.mjs.map +0 -1
  1222. package/dist/validate-CM79QXYE.d.mts +0 -432
  1223. package/dist/validate-CM79QXYE.d.mts.map +0 -1
  1224. package/dist/validation-BFecQczG.mjs +0 -218
  1225. package/dist/validation-BFecQczG.mjs.map +0 -1
  1226. package/dist/version-BRZXVifl.mjs +0 -9
  1227. package/dist/version-BRZXVifl.mjs.map +0 -1
  1228. package/dist/version-DXsxRrob.mjs +0 -7
  1229. package/dist/version-DXsxRrob.mjs.map +0 -1
  1230. package/dist/widgets-WdV72brA.mjs +0 -126
  1231. package/dist/widgets-WdV72brA.mjs.map +0 -1
  1232. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts +0 -34
  1233. package/dist/wxr-taxonomies-BHTdqkmZ.d.mts.map +0 -1
  1234. package/dist/wxr-taxonomies-DP6ESgMN.mjs +0 -372
  1235. package/dist/wxr-taxonomies-DP6ESgMN.mjs.map +0 -1
  1236. package/dist/zod-generator-D6uE4WiS.mjs +0 -389
  1237. package/dist/zod-generator-D6uE4WiS.mjs.map +0 -1
  1238. package/src/astro/routes/api/relations/[id]/translations.ts +0 -33
  1239. /package/dist/{api-tokens-CE1ECIg0.mjs → api-tokens-FaG1zPsj.mjs} +0 -0
  1240. /package/dist/{ssrf-DpBH7aOt.mjs → ssrf-DZOt8Qof.mjs} +0 -0
@@ -0,0 +1,1156 @@
1
+ import { u as __exportAll } from "./runner-B3eyB9Gb.mjs";
2
+ import { n as isMissingTableError } from "./db-errors-CBD5yMro.mjs";
3
+ import { i as isI18nEnabled, n as getFallbackChain, r as getI18nConfig } from "./config-CvmjJcVw.mjs";
4
+ import { getRequestContext } from "./request-context.mjs";
5
+ import { i as contentCacheNamespaces, n as cachedQuery, o as contentNamespaces, p as invalidateSchemaObjectCache } from "./object-cache-CqWNY5uP.mjs";
6
+ import { c as encodeCursor } from "./types-aOOxRSx6.mjs";
7
+ import { r as requestCached } from "./request-cache-iHRlHx1d.mjs";
8
+ import { a as creditsFromFoldedBylines, d as primeSeoPanel, i as FOLDED_TERMS, n as FOLDED_BYLINES, r as FOLDED_BYLINES_EXIST, t as CURSOR_RAW_VALUES } from "./loader-CrRPfkHS.mjs";
9
+ import { i as resetRegisteredCollectionsCache } from "./collection-slugs-cache-CUuiduLq.mjs";
10
+ import { t as compileUrlPattern } from "./url-pattern-B3EwxAAk.mjs";
11
+
12
+ //#region src/visual-editing/editable.ts
13
+ /**
14
+ * Create an editable proxy for an entry.
15
+ *
16
+ * Usage:
17
+ * - `{...entry.edit}` - entry-level annotation (includes status/hasDraft)
18
+ * - `{...entry.edit.title}` - field-level annotation
19
+ * - `{...entry.edit['nested.field']}` - nested field (bracket notation)
20
+ */
21
+ function createEditable(collection, id, options) {
22
+ const base = {
23
+ collection,
24
+ id,
25
+ ...options?.status && { status: options.status },
26
+ ...options?.hasDraft && { hasDraft: true }
27
+ };
28
+ return new Proxy({}, {
29
+ get(_, prop) {
30
+ if (prop === "toJSON") return () => ({ "data-emdash-ref": JSON.stringify(base) });
31
+ if (typeof prop === "symbol") return void 0;
32
+ if (prop === "data-emdash-ref") return JSON.stringify(base);
33
+ return { "data-emdash-ref": JSON.stringify({
34
+ ...base,
35
+ field: String(prop)
36
+ }) };
37
+ },
38
+ ownKeys() {
39
+ return ["data-emdash-ref"];
40
+ },
41
+ getOwnPropertyDescriptor(_, prop) {
42
+ if (prop === "data-emdash-ref") return {
43
+ configurable: true,
44
+ enumerable: true,
45
+ value: JSON.stringify(base)
46
+ };
47
+ }
48
+ });
49
+ }
50
+ /**
51
+ * Create a noop proxy for production mode.
52
+ * Spreading this produces no attributes.
53
+ */
54
+ function createNoop() {
55
+ return new Proxy({}, {
56
+ get(_, prop) {
57
+ if (typeof prop === "symbol") return void 0;
58
+ },
59
+ ownKeys() {
60
+ return [];
61
+ },
62
+ getOwnPropertyDescriptor() {}
63
+ });
64
+ }
65
+
66
+ //#endregion
67
+ //#region src/query.ts
68
+ /**
69
+ * Query functions for EmDash content
70
+ *
71
+ * These wrap Astro's getLiveCollection/getLiveEntry with type filtering.
72
+ * Use these instead of calling Astro's functions directly.
73
+ *
74
+ * Error handling follows Astro's pattern - returns { entries/entry, error }
75
+ * so callers can gracefully handle errors (including 404s).
76
+ *
77
+ * Preview mode is handled implicitly via ALS request context —
78
+ * no parameters needed. The middleware verifies the preview token
79
+ * and sets the context; query functions read it automatically.
80
+ *
81
+ * The triple-slash directive above pulls in the ambient declaration for
82
+ * `astro:content` (used by the dynamic imports below) so this source
83
+ * file typechecks even when reached transitively by a sibling package
84
+ * whose tsconfig doesn't list `astro/client` in `compilerOptions.types`.
85
+ *
86
+ * Note: the directive is stripped from the compiled output (`dist/*`)
87
+ * by tsdown, so it does not propagate to downstream consumers of the
88
+ * published package. Consumers are Astro sites and already provide their
89
+ * own `astro/client` ambient surface anyway, so the runtime dynamic
90
+ * import resolves there at typecheck time without our help.
91
+ */
92
+ var query_exports = /* @__PURE__ */ __exportAll({
93
+ bucketFilter: () => bucketFilter,
94
+ getEditMeta: () => getEditMeta,
95
+ getEmDashCollection: () => getEmDashCollection,
96
+ getEmDashEntry: () => getEmDashEntry,
97
+ getEmDashReferences: () => getEmDashReferences,
98
+ getTranslations: () => getTranslations,
99
+ invalidateUrlPatternCache: () => invalidateUrlPatternCache,
100
+ resolveEmDashPath: () => resolveEmDashPath,
101
+ sliceCollectionResult: () => sliceCollectionResult
102
+ });
103
+ const COLLECTION_NAME = "_emdash";
104
+ /** Symbol key for edit metadata on PT arrays — avoids collision with user data */
105
+ const EMDASH_EDIT = Symbol.for("__emdash");
106
+ /** Type guard for EditFieldMeta */
107
+ function isEditFieldMeta(value) {
108
+ if (typeof value !== "object" || value === null) return false;
109
+ if (!("collection" in value) || !("id" in value) || !("field" in value)) return false;
110
+ const { collection, id, field } = value;
111
+ return typeof collection === "string" && typeof id === "string" && typeof field === "string";
112
+ }
113
+ /**
114
+ * Read edit metadata from a value (returns undefined if not tagged).
115
+ * Uses Object.getOwnPropertyDescriptor to access Symbol-keyed property
116
+ * without an unsafe type assertion.
117
+ */
118
+ function getEditMeta(value) {
119
+ if (value && typeof value === "object") {
120
+ const meta = Object.getOwnPropertyDescriptor(value, EMDASH_EDIT)?.value;
121
+ if (isEditFieldMeta(meta)) return meta;
122
+ }
123
+ }
124
+ /**
125
+ * Tag PT-like arrays in entry data with edit metadata (non-enumerable).
126
+ * A PT array is identified by: is an array, first element has _type property.
127
+ */
128
+ function tagEditableFields(data, collection, id) {
129
+ for (const [field, value] of Object.entries(data)) if (Array.isArray(value) && value.length > 0 && value[0] && typeof value[0] === "object" && "_type" in value[0]) Object.defineProperty(value, EMDASH_EDIT, {
130
+ value: {
131
+ collection,
132
+ id,
133
+ field
134
+ },
135
+ enumerable: false,
136
+ configurable: true
137
+ });
138
+ }
139
+ /** Safely read a string field from a Record, with optional fallback */
140
+ function dataStr(data, key, fallback = "") {
141
+ const val = data[key];
142
+ return typeof val === "string" ? val : fallback;
143
+ }
144
+ /** Type guard for Record<string, unknown> */
145
+ function isRecord(value) {
146
+ return typeof value === "object" && value !== null && !Array.isArray(value);
147
+ }
148
+ /** Extract data as Record from an Astro entry (which is any-typed) */
149
+ function entryData(entry) {
150
+ return isRecord(entry.data) ? entry.data : {};
151
+ }
152
+ /** Extract the database ID from entry data (data.id is the ULID, entry.id is the slug) */
153
+ function entryDatabaseId(entry) {
154
+ return dataStr(entryData(entry), "id") || entry.id;
155
+ }
156
+ /** Extract edit options from entry data for the proxy */
157
+ function entryEditOptions(entry) {
158
+ const data = entryData(entry);
159
+ const status = dataStr(data, "status", "draft");
160
+ const draftRevisionId = dataStr(data, "draftRevisionId") || void 0;
161
+ const liveRevisionId = dataStr(data, "liveRevisionId") || void 0;
162
+ return {
163
+ status,
164
+ hasDraft: !!draftRevisionId && draftRevisionId !== liveRevisionId
165
+ };
166
+ }
167
+ function stripRevisionMetadata(entry) {
168
+ const data = entryData(entry);
169
+ delete data.draftRevisionId;
170
+ delete data.liveRevisionId;
171
+ }
172
+ function canExposeRevisionMetadata(entry, collection) {
173
+ const ctx = getRequestContext();
174
+ if (ctx?.editMode) return true;
175
+ if (ctx?.preview?.collection !== collection) return false;
176
+ const dbId = entryDatabaseId(entry);
177
+ return ctx.preview.id === dbId || ctx.preview.id === entry.id;
178
+ }
179
+ /**
180
+ * Get all entries of a content type
181
+ *
182
+ * Returns { entries, error } for graceful error handling.
183
+ *
184
+ * When emdash-env.d.ts is generated, the collection name will be
185
+ * type-checked and the return type will be inferred automatically.
186
+ *
187
+ * @example
188
+ * ```ts
189
+ * import { getEmDashCollection } from "emdash";
190
+ *
191
+ * const { entries: posts, error } = await getEmDashCollection("posts");
192
+ * if (error) {
193
+ * console.error("Failed to load posts:", error);
194
+ * return;
195
+ * }
196
+ * // posts[0].data.title is typed (if emdash-env.d.ts exists)
197
+ *
198
+ * // With filters
199
+ * const { entries: drafts } = await getEmDashCollection("posts", { status: "draft" });
200
+ * ```
201
+ */
202
+ async function getEmDashCollection(type, filter) {
203
+ const bucketed = bucketFilter(filter);
204
+ const ctx = getRequestContext();
205
+ const serveDrafts = ctx?.editMode === true || ctx?.preview !== void 0;
206
+ const cached = await requestCached(collectionCacheKey(type, bucketed.fetchFilter), () => serveDrafts ? getEmDashCollectionUncached(type, bucketed.fetchFilter) : loadCollectionCached(type, bucketed.fetchFilter));
207
+ return bucketed.requestedLimit === void 0 ? cached : sliceCollectionResult(cached, bucketed.requestedLimit, filter?.orderBy);
208
+ }
209
+ /**
210
+ * Distributed (L2) read-through around {@link getEmDashCollectionUncached}.
211
+ *
212
+ * Caches a JSON-safe snapshot keyed by collection + filter + effective locale,
213
+ * folding the shared `bylines`/`taxonomies` epochs into the key so renaming an
214
+ * author or term invalidates affected lists. Errors are never cached.
215
+ */
216
+ async function loadCollectionCached(type, filter) {
217
+ const snapshot = await cachedQuery({
218
+ namespace: contentNamespaces(type),
219
+ key: `collection:${collectionCacheKey(type, filter)}|loc=${effectiveLocaleKey(filter)}`,
220
+ load: async () => {
221
+ const result = await getEmDashCollectionUncached(type, filter);
222
+ if (result.error) return {
223
+ ok: false,
224
+ error: result.error,
225
+ cacheHint: result.cacheHint
226
+ };
227
+ return {
228
+ ok: true,
229
+ value: {
230
+ entries: result.entries.map(entrySnapshot),
231
+ nextCursor: result.nextCursor,
232
+ hasMore: result.hasMore,
233
+ cacheHint: result.cacheHint
234
+ }
235
+ };
236
+ },
237
+ cacheable: (snap) => snap.ok
238
+ });
239
+ if (!snapshot.ok) return {
240
+ entries: [],
241
+ error: snapshot.error,
242
+ cacheHint: snapshot.cacheHint
243
+ };
244
+ return {
245
+ entries: snapshot.value.entries.map((entry) => {
246
+ const revived = reviveEntry(entry);
247
+ if (!canExposeRevisionMetadata(revived, type)) stripRevisionMetadata(revived);
248
+ return revived;
249
+ }),
250
+ nextCursor: snapshot.value.nextCursor,
251
+ hasMore: snapshot.value.hasMore,
252
+ cacheHint: snapshot.value.cacheHint
253
+ };
254
+ }
255
+ /**
256
+ * Threshold for limit bucketing. Page templates routinely render small
257
+ * "recent posts" widgets at limits 3-8; rounding those up to a single
258
+ * shared bucket lets one fetch satisfy several widgets within a request.
259
+ * Above this, the requested limit is honoured exactly — bucketing limit:50
260
+ * to limit:64 would waste hydration work for callers fetching real pages.
261
+ */
262
+ const BUCKET_LIMIT_THRESHOLD = 10;
263
+ /** @internal exported for unit tests; not part of the public API. */
264
+ function bucketFilter(filter) {
265
+ const limit = filter?.limit;
266
+ if (limit === void 0 || limit >= BUCKET_LIMIT_THRESHOLD || limit <= 0 || filter?.cursor !== void 0 || filter?.offset !== void 0) return {
267
+ fetchFilter: filter,
268
+ requestedLimit: void 0
269
+ };
270
+ return {
271
+ fetchFilter: {
272
+ ...filter,
273
+ limit: BUCKET_LIMIT_THRESHOLD
274
+ },
275
+ requestedLimit: limit
276
+ };
277
+ }
278
+ /**
279
+ * Slice a cached bucketed result down to the originally-requested limit
280
+ * and recompute `nextCursor` from the row that would have been the
281
+ * over-fetch detector for that limit. When truncation is needed, returns
282
+ * a shallow-copied result with a new `entries` array; otherwise returns
283
+ * the cached result unchanged (including error results and results
284
+ * already within the requested limit).
285
+ */
286
+ /** @internal exported for unit tests; not part of the public API. */
287
+ function sliceCollectionResult(cached, limit, orderBy) {
288
+ if (cached.error) return cached;
289
+ if (cached.entries.length <= limit) return cached;
290
+ const sliced = cached.entries.slice(0, limit);
291
+ const lastEntry = sliced.at(-1);
292
+ const nextCursor = lastEntry ? encodeEntryCursor(lastEntry, orderBy) : void 0;
293
+ return {
294
+ ...cached,
295
+ entries: sliced,
296
+ nextCursor,
297
+ hasMore: true
298
+ };
299
+ }
300
+ /** Map of database column names to camelCase keys present on entry.data. */
301
+ const ENTRY_DATA_KEY_MAP = {
302
+ created_at: "createdAt",
303
+ updated_at: "updatedAt",
304
+ published_at: "publishedAt",
305
+ scheduled_at: "scheduledAt",
306
+ author_id: "authorId",
307
+ primary_byline_id: "primaryBylineId"
308
+ };
309
+ const FIELD_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
310
+ /**
311
+ * Encode a `nextCursor` from a content entry, mirroring the loader's
312
+ * encoding scheme: `(orderValue, id)` where `orderValue` is the primary
313
+ * sort field's stringified value. For date columns, reads the raw DB
314
+ * string the loader stashed via CURSOR_RAW_VALUES — round-tripping the
315
+ * parsed Date through `toISOString()` would lose precision for stored
316
+ * values that aren't already ISO-with-milliseconds.
317
+ */
318
+ function encodeEntryCursor(entry, orderBy) {
319
+ const data = entryData(entry);
320
+ const id = dataStr(data, "id");
321
+ if (!id) return void 0;
322
+ let dbField = "created_at";
323
+ if (orderBy) {
324
+ for (const field of Object.keys(orderBy)) if (FIELD_NAME_PATTERN.test(field)) {
325
+ dbField = field;
326
+ break;
327
+ }
328
+ }
329
+ const rawDateValuesRaw = Reflect.get(data, CURSOR_RAW_VALUES);
330
+ if (rawDateValuesRaw !== null && typeof rawDateValuesRaw === "object") {
331
+ const raw = Reflect.get(rawDateValuesRaw, dbField);
332
+ if (typeof raw === "string") return encodeCursor(raw, id);
333
+ }
334
+ const value = data[ENTRY_DATA_KEY_MAP[dbField] ?? dbField];
335
+ let orderValue;
336
+ if (value instanceof Date) orderValue = value.toISOString();
337
+ else if (typeof value === "string" || typeof value === "number") orderValue = String(value);
338
+ else orderValue = "";
339
+ return encodeCursor(orderValue, id);
340
+ }
341
+ /**
342
+ * Build a canonical cache key for `getEmDashCollection`.
343
+ *
344
+ * `JSON.stringify` is insertion-order-sensitive, so two callers passing
345
+ * semantically identical filters with different key orders would miss
346
+ * the cache. We fix the top-level field order and sort `where` keys
347
+ * (order there is irrelevant), while preserving `orderBy` key order
348
+ * because that's the sort priority.
349
+ */
350
+ function collectionCacheKey(type, filter) {
351
+ if (!filter) return `collection:${type}:`;
352
+ return `collection:${type}:${[
353
+ filter.status ?? "",
354
+ filter.limit ?? "",
355
+ filter.cursor ?? "",
356
+ filter.offset ?? "",
357
+ filter.where ? stableStringify(filter.where) : "",
358
+ filter.orderBy ? JSON.stringify(filter.orderBy) : "",
359
+ filter.locale ?? ""
360
+ ].join("|")}`;
361
+ }
362
+ function stableStringify(value) {
363
+ return JSON.stringify(stableOrder(value));
364
+ }
365
+ function stableOrder(value) {
366
+ const keys = Object.keys(value).toSorted();
367
+ const ordered = {};
368
+ for (const k of keys) {
369
+ const v = value[k];
370
+ if (isRecord(v)) ordered[k] = stableOrder(v);
371
+ else ordered[k] = v;
372
+ }
373
+ return ordered;
374
+ }
375
+ /** Enumerable field carrying the {@link CURSOR_RAW_VALUES} payload in snapshots. */
376
+ const CURSOR_RAW_FIELD = "__emdashCursorRaw";
377
+ function dataSnapshot(data) {
378
+ const rawCursor = Reflect.get(data, CURSOR_RAW_VALUES);
379
+ return {
380
+ ...data,
381
+ [CURSOR_RAW_FIELD]: rawCursor ?? {}
382
+ };
383
+ }
384
+ function reviveData(raw) {
385
+ const data = { ...raw };
386
+ const rawCursor = data[CURSOR_RAW_FIELD] ?? {};
387
+ delete data[CURSOR_RAW_FIELD];
388
+ Object.defineProperty(data, CURSOR_RAW_VALUES, {
389
+ value: rawCursor,
390
+ enumerable: false,
391
+ configurable: false,
392
+ writable: false
393
+ });
394
+ return data;
395
+ }
396
+ function entrySnapshot(entry) {
397
+ const { edit: _edit, references, ...rest } = entry;
398
+ return {
399
+ ...rest,
400
+ data: dataSnapshot(entryData(entry)),
401
+ ...references ? { references: referencesSnapshot(references) } : {}
402
+ };
403
+ }
404
+ function referencesSnapshot(references) {
405
+ const snapshot = {};
406
+ for (const [field, page] of Object.entries(references)) snapshot[field] = {
407
+ entries: page.entries.map((child) => ({
408
+ id: child.id,
409
+ data: dataSnapshot(entryData(child))
410
+ })),
411
+ ...page.nextCursor === void 0 ? {} : { nextCursor: page.nextCursor }
412
+ };
413
+ return snapshot;
414
+ }
415
+ /**
416
+ * Rebuild the reference pages a snapshot carried.
417
+ *
418
+ * Every child comes back with a no-op `edit` proxy and no revision metadata,
419
+ * which is lossless: the object cache is bypassed for edit-mode and preview
420
+ * requests, so a snapshot is only ever written — and read back — by a render
421
+ * that had neither to begin with.
422
+ */
423
+ function reviveReferences(raw) {
424
+ if (!isRecord(raw)) return void 0;
425
+ const references = {};
426
+ for (const [field, page] of Object.entries(raw)) {
427
+ const snapshot = page;
428
+ references[field] = {
429
+ entries: snapshot.entries.map((child) => ({
430
+ id: child.id,
431
+ data: reviveData(child.data),
432
+ edit: createNoop()
433
+ })),
434
+ ...snapshot.nextCursor === void 0 ? {} : { nextCursor: snapshot.nextCursor }
435
+ };
436
+ }
437
+ return references;
438
+ }
439
+ function reviveEntry(raw) {
440
+ const entry = raw;
441
+ const data = reviveData(entry.data);
442
+ const references = reviveReferences(entry.references);
443
+ return {
444
+ ...entry,
445
+ data,
446
+ ...references ? { references } : {},
447
+ edit: createNoop()
448
+ };
449
+ }
450
+ /** Resolve the effective locale used by content reads, for the L2 cache key. */
451
+ function effectiveLocaleKey(filter) {
452
+ const ctx = getRequestContext();
453
+ const i18nConfig = getI18nConfig();
454
+ return filter?.locale ?? ctx?.locale ?? (isI18nEnabled() ? i18nConfig.defaultLocale : void 0) ?? "";
455
+ }
456
+ async function getEmDashCollectionUncached(type, filter) {
457
+ const { getLiveCollection } = await import("astro:content");
458
+ const ctx = getRequestContext();
459
+ const i18nConfig = getI18nConfig();
460
+ const resolvedLocale = filter?.locale ?? ctx?.locale ?? (isI18nEnabled() ? i18nConfig.defaultLocale : void 0);
461
+ const requestedLimit = filter?.limit;
462
+ const pageParam = filter?.cursor !== void 0 ? { cursor: filter.cursor } : filter?.offset !== void 0 ? { offset: filter.offset } : {};
463
+ const { entries, error, cacheHint } = await getLiveCollection(COLLECTION_NAME, {
464
+ type,
465
+ status: filter?.status,
466
+ limit: requestedLimit && requestedLimit > 0 ? requestedLimit + 1 : filter?.limit,
467
+ ...pageParam,
468
+ where: filter?.where,
469
+ orderBy: filter?.orderBy,
470
+ locale: resolvedLocale
471
+ });
472
+ if (error) return {
473
+ entries: [],
474
+ error,
475
+ cacheHint: {}
476
+ };
477
+ const hasMore = requestedLimit != null && requestedLimit > 0 && entries.length > requestedLimit;
478
+ const pageEntries = hasMore ? entries.slice(0, requestedLimit) : entries;
479
+ const nextCursor = hasMore ? encodeEntryCursor(pageEntries.at(-1), filter?.orderBy) : void 0;
480
+ const hasMoreResult = requestedLimit != null && requestedLimit > 0 ? hasMore : void 0;
481
+ const isEditMode = ctx?.editMode ?? false;
482
+ const entriesWithEdit = pageEntries.map((entry) => {
483
+ const dbId = entryDatabaseId(entry);
484
+ if (isEditMode) tagEditableFields(entryData(entry), type, dbId);
485
+ if (!canExposeRevisionMetadata(entry, type)) stripRevisionMetadata(entry);
486
+ return {
487
+ ...entry,
488
+ edit: isEditMode ? createEditable(type, dbId, entryEditOptions(entry)) : createNoop()
489
+ };
490
+ });
491
+ await Promise.all([hydrateEntryBylines(type, entriesWithEdit), hydrateEntryTerms(type, entriesWithEdit, resolvedLocale)]);
492
+ return {
493
+ entries: entriesWithEdit,
494
+ nextCursor,
495
+ hasMore: hasMoreResult,
496
+ cacheHint: cacheHint ?? {}
497
+ };
498
+ }
499
+ /**
500
+ * Get a single entry by type and ID/slug
501
+ *
502
+ * Returns { entry, error, isPreview } for graceful error handling.
503
+ * - entry is null if not found (not an error)
504
+ * - error is set only for actual errors (db issues, etc.)
505
+ *
506
+ * Preview mode is detected automatically from request context (ALS).
507
+ * When the URL has a valid `_preview` token, the middleware sets preview
508
+ * context and this function serves draft revision data if available.
509
+ *
510
+ * @example
511
+ * ```ts
512
+ * import { getEmDashEntry } from "emdash";
513
+ *
514
+ * // Simple usage — preview just works via middleware
515
+ * const { entry: post, isPreview, error } = await getEmDashEntry("posts", "my-slug");
516
+ * if (!post) return Astro.redirect("/404");
517
+ * ```
518
+ *
519
+ * @example
520
+ * ```ts
521
+ * // Opt into reference fields, by field slug
522
+ * const { entry: post } = await getEmDashEntry("posts", slug, {
523
+ * references: { author: true, related_posts: { limit: 6 } },
524
+ * });
525
+ * const author = post?.references?.author.entries[0];
526
+ * ```
527
+ */
528
+ async function getEmDashEntry(type, id, options) {
529
+ return resolveEmDashEntry(type, id, options);
530
+ }
531
+ /**
532
+ * Attach one page of each selected reference field to a resolved entry, and
533
+ * report the cache hint its children contribute.
534
+ *
535
+ * An entry with no translation group predates i18n and has no links; there is
536
+ * nothing to resolve, and `references` stays absent rather than becoming an
537
+ * empty object that reads as "this entry references nothing".
538
+ */
539
+ async function attachReferences(type, entry, options) {
540
+ const data = entryData(entry);
541
+ const entryGroup = dataStr(data, "translationGroup");
542
+ if (!entryGroup) return {};
543
+ const { resolveReferencePages } = await import("./resolve-BPE8sMvx.mjs");
544
+ const pages = await resolveReferencePages({
545
+ collection: type,
546
+ entryGroup,
547
+ locale: dataStr(data, "locale") || null,
548
+ draftRevisionId: options.draftRevisionId,
549
+ serveDrafts: options.serveDrafts,
550
+ selection: options.selection
551
+ });
552
+ const references = {};
553
+ const tags = [];
554
+ let lastModified;
555
+ for (const [field, page] of Object.entries(pages)) {
556
+ for (const child of page.entries) {
557
+ tags.push(...child.cacheHint.tags);
558
+ const modified = child.cacheHint.lastModified;
559
+ if (modified && (!lastModified || modified > lastModified)) lastModified = modified;
560
+ }
561
+ references[field] = {
562
+ entries: page.entries.map((child) => wrapReferencedEntry(page.collection, child)),
563
+ ...page.nextCursor === void 0 ? {} : { nextCursor: page.nextCursor }
564
+ };
565
+ }
566
+ entry.references = references;
567
+ return {
568
+ tags,
569
+ ...lastModified ? { lastModified } : {}
570
+ };
571
+ }
572
+ /**
573
+ * Fold the children's cache hint into the entry's own.
574
+ *
575
+ * A render that shows a referenced entry has read that row, so the route's tags
576
+ * have to name it and its `Last-Modified` has to move when it changes. Without
577
+ * this the route cache's `invalidate({ tags: [collection, id] })` on a child
578
+ * write would never reach the pages that render the child.
579
+ */
580
+ function mergeCacheHints(base, extra) {
581
+ if (!extra.tags?.length && !extra.lastModified) return base;
582
+ const tags = [...new Set([...base.tags ?? [], ...extra.tags ?? []])];
583
+ const newest = base.lastModified && extra.lastModified ? base.lastModified > extra.lastModified ? base.lastModified : extra.lastModified : base.lastModified ?? extra.lastModified;
584
+ return {
585
+ ...tags.length > 0 ? { tags } : {},
586
+ ...newest ? { lastModified: newest } : {}
587
+ };
588
+ }
589
+ /**
590
+ * The object-cache namespaces a selection's targets live in.
591
+ *
592
+ * Without them a cached parent snapshot would outlive a write to the entries it
593
+ * points at. Byline and taxonomy namespaces are deliberately absent: referenced
594
+ * entries are loaded without either hydration. The targets are sorted so two
595
+ * callers that name the same fields in a different order share one snapshot.
596
+ */
597
+ async function referenceTargetNamespaces(collection, selection) {
598
+ const { getReferenceFieldMap } = await import("./field-map-6m9rF49t.mjs").then((n) => n.t);
599
+ const fieldMap = await getReferenceFieldMap(collection);
600
+ const targets = /* @__PURE__ */ new Set();
601
+ for (const [slug, query] of Object.entries(selection)) {
602
+ if (query === void 0) continue;
603
+ const binding = fieldMap.get(slug);
604
+ if (binding) targets.add(binding.targetCollection);
605
+ }
606
+ return [...targets].toSorted().flatMap((target) => [...contentCacheNamespaces(target)]);
607
+ }
608
+ /**
609
+ * Wrap a referenced entry the way the collection paths wrap their own: an edit
610
+ * proxy in edit mode, revision metadata stripped for anyone who may not see it.
611
+ *
612
+ * The proxy is scoped to the *referenced* entry's collection and row, so
613
+ * clicking through from a card opens the entry the card is about.
614
+ */
615
+ function wrapReferencedEntry(collection, child) {
616
+ const isEditMode = getRequestContext()?.editMode ?? false;
617
+ const dbId = entryDatabaseId(child);
618
+ if (isEditMode) tagEditableFields(child.data, collection, dbId);
619
+ if (!canExposeRevisionMetadata(child, collection)) stripRevisionMetadata(child);
620
+ return {
621
+ id: child.id,
622
+ data: child.data,
623
+ edit: isEditMode ? createEditable(collection, dbId, entryEditOptions(child)) : createNoop()
624
+ };
625
+ }
626
+ async function resolveEmDashEntry(type, id, options) {
627
+ const { getLiveEntry } = await import("astro:content");
628
+ const ctx = getRequestContext();
629
+ const preview = ctx?.preview;
630
+ const isEditMode = ctx?.editMode ?? false;
631
+ const isPreviewMode = !!preview && preview.collection === type;
632
+ const serveDrafts = isPreviewMode || isEditMode;
633
+ const requestedLocale = options?.locale ?? ctx?.locale;
634
+ const references = options?.references;
635
+ /** Wrap a raw Astro entry with edit proxy, tagging editable fields if needed */
636
+ function wrapEntry(raw) {
637
+ const dbId = entryDatabaseId(raw);
638
+ if (isEditMode) tagEditableFields(entryData(raw), type, dbId);
639
+ return {
640
+ ...raw,
641
+ edit: isEditMode ? createEditable(type, dbId, entryEditOptions(raw)) : createNoop()
642
+ };
643
+ }
644
+ /** Check if an entry has completed publication. */
645
+ function isVisible(entry) {
646
+ return dataStr(entryData(entry), "status") === "published";
647
+ }
648
+ const localeChain = requestedLocale && isI18nEnabled() ? getFallbackChain(requestedLocale) : [requestedLocale];
649
+ /** Return a successful EntryResult with bylines, taxonomy terms and references hydrated */
650
+ async function successResult(wrapped, opts) {
651
+ const draftRevisionId = dataStr(entryData(wrapped), "draftRevisionId") || void 0;
652
+ if (!opts.isPreview) stripRevisionMetadata(wrapped);
653
+ const termLocale = isI18nEnabled() ? dataStr(entryData(wrapped), "locale") || void 0 : void 0;
654
+ const [, , referenceHint] = await Promise.all([
655
+ hydrateEntryBylines(type, [wrapped]),
656
+ hydrateEntryTerms(type, [wrapped], termLocale),
657
+ references ? attachReferences(type, wrapped, {
658
+ selection: references,
659
+ serveDrafts: opts.isPreview,
660
+ draftRevisionId
661
+ }) : Promise.resolve({})
662
+ ]);
663
+ return {
664
+ entry: wrapped,
665
+ isPreview: opts.isPreview,
666
+ fallbackLocale: opts.fallbackLocale,
667
+ cacheHint: mergeCacheHints(opts.cacheHint, referenceHint)
668
+ };
669
+ }
670
+ if (serveDrafts) {
671
+ for (let i = 0; i < localeChain.length; i++) {
672
+ const locale = localeChain[i];
673
+ const fallbackLocale = i > 0 ? locale : void 0;
674
+ const { entry: baseEntry, error: baseError, cacheHint } = await getLiveEntry(COLLECTION_NAME, {
675
+ type,
676
+ id,
677
+ locale
678
+ });
679
+ if (baseError) {
680
+ if (baseError.name === "LiveEntryNotFoundError") continue;
681
+ return {
682
+ entry: null,
683
+ error: baseError,
684
+ isPreview: serveDrafts,
685
+ cacheHint: {}
686
+ };
687
+ }
688
+ if (!baseEntry) continue;
689
+ if (isPreviewMode && !isEditMode) {
690
+ const dbId = entryDatabaseId(baseEntry);
691
+ if (preview.id !== dbId && preview.id !== id) {
692
+ if (isVisible(baseEntry)) return successResult(wrapEntry(baseEntry), {
693
+ isPreview: false,
694
+ fallbackLocale,
695
+ cacheHint: cacheHint ?? {}
696
+ });
697
+ continue;
698
+ }
699
+ }
700
+ const draftRevisionId = dataStr(entryData(baseEntry), "draftRevisionId") || void 0;
701
+ if (draftRevisionId) {
702
+ const { entry: draftEntry, error: draftError } = await getLiveEntry(COLLECTION_NAME, {
703
+ type,
704
+ id,
705
+ revisionId: draftRevisionId,
706
+ locale
707
+ });
708
+ if (!draftError && draftEntry) return successResult(wrapEntry(draftEntry), {
709
+ isPreview: serveDrafts,
710
+ fallbackLocale,
711
+ cacheHint: cacheHint ?? {}
712
+ });
713
+ }
714
+ return successResult(wrapEntry(baseEntry), {
715
+ isPreview: serveDrafts,
716
+ fallbackLocale,
717
+ cacheHint: cacheHint ?? {}
718
+ });
719
+ }
720
+ return {
721
+ entry: null,
722
+ isPreview: serveDrafts,
723
+ cacheHint: {}
724
+ };
725
+ }
726
+ const resolveNormal = async () => {
727
+ for (let i = 0; i < localeChain.length; i++) {
728
+ const locale = localeChain[i];
729
+ const fallbackLocale = i > 0 ? locale : void 0;
730
+ const { entry, error, cacheHint } = await getLiveEntry(COLLECTION_NAME, {
731
+ type,
732
+ id,
733
+ locale
734
+ });
735
+ if (error) {
736
+ if (error.name === "LiveEntryNotFoundError") continue;
737
+ return {
738
+ entry: null,
739
+ error,
740
+ isPreview: false,
741
+ cacheHint: {}
742
+ };
743
+ }
744
+ if (entry && isVisible(entry)) return successResult(wrapEntry(entry), {
745
+ isPreview: false,
746
+ fallbackLocale,
747
+ cacheHint: cacheHint ?? {}
748
+ });
749
+ }
750
+ return {
751
+ entry: null,
752
+ isPreview: false,
753
+ cacheHint: {}
754
+ };
755
+ };
756
+ const namespaces = references ? [...contentNamespaces(type), ...await referenceTargetNamespaces(type, references)] : contentNamespaces(type);
757
+ const referenceKey = references ? `|refs=${stableStringify(references)}` : "";
758
+ const snapshot = await cachedQuery({
759
+ namespace: namespaces,
760
+ key: `entry:${id}|loc=${requestedLocale ?? ""}${referenceKey}`,
761
+ load: async () => {
762
+ const result = await resolveNormal();
763
+ if (result.error) return {
764
+ ok: false,
765
+ error: result.error,
766
+ cacheHint: result.cacheHint
767
+ };
768
+ return {
769
+ ok: true,
770
+ value: {
771
+ entry: result.entry ? entrySnapshot(result.entry) : null,
772
+ isPreview: result.isPreview,
773
+ fallbackLocale: result.fallbackLocale,
774
+ cacheHint: result.cacheHint
775
+ }
776
+ };
777
+ },
778
+ cacheable: (snap) => snap.ok
779
+ });
780
+ if (!snapshot.ok) return {
781
+ entry: null,
782
+ error: snapshot.error,
783
+ isPreview: false,
784
+ cacheHint: snapshot.cacheHint
785
+ };
786
+ const revived = snapshot.value.entry ? reviveEntry(snapshot.value.entry) : null;
787
+ if (revived && !canExposeRevisionMetadata(revived, type)) stripRevisionMetadata(revived);
788
+ if (revived) {
789
+ const { id: rowId, seo } = revived.data;
790
+ if (seo && typeof rowId === "string") primeSeoPanel(type, rowId, seo);
791
+ }
792
+ return {
793
+ entry: revived,
794
+ isPreview: snapshot.value.isPreview,
795
+ fallbackLocale: snapshot.value.fallbackLocale,
796
+ cacheHint: snapshot.value.cacheHint
797
+ };
798
+ }
799
+ /**
800
+ * Get one page of a single reference field, without re-reading the entry it
801
+ * hangs off.
802
+ *
803
+ * `getEmDashEntry({ references })` returns the first page of each field it is
804
+ * asked for; this is how a "load more" walks past it, using the `nextCursor`
805
+ * that page carried. Draft visibility follows the same request context — a
806
+ * preview token for this entry, or edit mode — so a walk started in preview
807
+ * keeps seeing the pending selection.
808
+ *
809
+ * @example
810
+ * ```ts
811
+ * import { getEmDashReferences } from "emdash";
812
+ *
813
+ * const more = await getEmDashReferences("posts", post.id, "related_posts", {
814
+ * cursor,
815
+ * limit: 20,
816
+ * });
817
+ * ```
818
+ */
819
+ async function getEmDashReferences(type, id, field, options) {
820
+ const ctx = getRequestContext();
821
+ const preview = ctx?.preview;
822
+ const isEditMode = ctx?.editMode ?? false;
823
+ const locale = options?.locale ?? ctx?.locale;
824
+ try {
825
+ const { getDb } = await import("./loader-CrRPfkHS.mjs").then((n) => n.l);
826
+ const { ContentRepository } = await import("./content-CbnufDsM.mjs").then((n) => n.n);
827
+ const { resolveReferencePages } = await import("./resolve-BPE8sMvx.mjs");
828
+ const db = await getDb();
829
+ const addressed = splitLocalePrefixedId(id, locale);
830
+ const entry = await new ContentRepository(db).findByIdOrSlug(type, addressed.id, addressed.locale);
831
+ if (!entry?.translationGroup) return { entries: [] };
832
+ const previewMatches = !!preview && preview.collection === type && (preview.id === entry.id || preview.id === id);
833
+ const serveDrafts = isEditMode || previewMatches;
834
+ if (!serveDrafts && entry.status !== "published") return { entries: [] };
835
+ const query = options?.limit === void 0 && options?.cursor === void 0 ? true : {
836
+ limit: options.limit,
837
+ cursor: options.cursor
838
+ };
839
+ const page = (await resolveReferencePages({
840
+ collection: type,
841
+ entryGroup: entry.translationGroup,
842
+ locale: entry.locale,
843
+ draftRevisionId: entry.draftRevisionId ?? void 0,
844
+ serveDrafts,
845
+ selection: { [field]: query }
846
+ }))[field];
847
+ if (!page) return { entries: [] };
848
+ const tags = [];
849
+ let lastModified;
850
+ for (const child of page.entries) {
851
+ tags.push(...child.cacheHint.tags);
852
+ const modified = child.cacheHint.lastModified;
853
+ if (modified && (!lastModified || modified > lastModified)) lastModified = modified;
854
+ }
855
+ return {
856
+ entries: page.entries.map((child) => wrapReferencedEntry(page.collection, child)),
857
+ ...page.nextCursor === void 0 ? {} : { nextCursor: page.nextCursor },
858
+ cacheHint: {
859
+ tags,
860
+ ...lastModified ? { lastModified } : {}
861
+ }
862
+ };
863
+ } catch (error) {
864
+ return {
865
+ entries: [],
866
+ error: error instanceof Error ? error : new Error(String(error))
867
+ };
868
+ }
869
+ }
870
+ /**
871
+ * Take a locale prefix off an entry id, and read it as the locale to look in.
872
+ *
873
+ * Wherever i18n prefixes a locale's URLs, an entry is addressed as `fr/about`
874
+ * rather than `about` — that is the id the loader builds and the id a render
875
+ * holds, including for a referenced entry. Rows are stored under the bare slug,
876
+ * so the prefix has to become the locale instead. A first segment that is not a
877
+ * configured locale is part of the identifier and stays put.
878
+ */
879
+ function splitLocalePrefixedId(id, locale) {
880
+ const slash = id.indexOf("/");
881
+ if (slash === -1) return {
882
+ id,
883
+ locale
884
+ };
885
+ const prefix = id.slice(0, slash);
886
+ if (!getI18nConfig()?.locales.includes(prefix)) return {
887
+ id,
888
+ locale
889
+ };
890
+ return {
891
+ id: id.slice(slash + 1),
892
+ locale: prefix
893
+ };
894
+ }
895
+ /**
896
+ * Eagerly hydrate byline data onto entry.data for one or more entries.
897
+ *
898
+ * Attaches `bylines` (array of ContentBylineCredit) and `byline`
899
+ * (primary BylineSummary or null) to each entry's data object.
900
+ * Uses batch queries to avoid N+1.
901
+ *
902
+ * Fails silently if the byline tables don't exist yet (pre-migration).
903
+ */
904
+ async function hydrateEntryBylines(type, entries) {
905
+ if (entries.length === 0) return;
906
+ if (entries.every((e) => FOLDED_BYLINES in entryData(e))) {
907
+ const parsed = entries.map((entry) => {
908
+ const data = entryData(entry);
909
+ const folded = Reflect.get(data, FOLDED_BYLINES);
910
+ return {
911
+ data,
912
+ credits: creditsFromFoldedBylines(Array.isArray(folded) ? folded : [])
913
+ };
914
+ });
915
+ const knownEmpty = entries.every((e) => Reflect.get(entryData(e), FOLDED_BYLINES_EXIST) === false);
916
+ let needsQueryPath = !knownEmpty && parsed.some((p) => p.credits.length === 0 && (dataStr(p.data, "authorId") !== "" || dataStr(p.data, "primaryBylineId") !== ""));
917
+ let hasCustomFields = false;
918
+ if (!needsQueryPath && !knownEmpty) try {
919
+ const { getDb } = await import("./loader-CrRPfkHS.mjs").then((n) => n.l);
920
+ const db = await getDb();
921
+ const { getBylineFieldDefs } = await import("./field-defs-cache-CsZctvbu.mjs").then((n) => n.t);
922
+ hasCustomFields = (await getBylineFieldDefs(db)).length > 0;
923
+ } catch (error) {
924
+ if (!isMissingTableError(error)) needsQueryPath = true;
925
+ }
926
+ if (!needsQueryPath && !hasCustomFields) {
927
+ for (const p of parsed) {
928
+ p.data.bylines = p.credits;
929
+ p.data.byline = p.credits[0]?.byline ?? null;
930
+ }
931
+ return;
932
+ }
933
+ }
934
+ try {
935
+ const { getBylinesForEntries } = await import("./bylines-DkIxUxmr.mjs").then((n) => n.t);
936
+ const refs = entries.map((e) => {
937
+ const data = entryData(e);
938
+ const id = dataStr(data, "id");
939
+ if (!id) return null;
940
+ return {
941
+ id,
942
+ authorId: dataStr(data, "authorId") || null,
943
+ primaryBylineId: dataStr(data, "primaryBylineId") || null,
944
+ locale: dataStr(data, "locale") || null
945
+ };
946
+ }).filter((r) => r !== null);
947
+ if (refs.length === 0) return;
948
+ const bylinesMap = await getBylinesForEntries(type, refs);
949
+ for (const entry of entries) {
950
+ const data = entryData(entry);
951
+ const dbId = dataStr(data, "id");
952
+ if (!dbId) continue;
953
+ const credits = bylinesMap.get(dbId) ?? [];
954
+ data.bylines = credits;
955
+ data.byline = credits[0]?.byline ?? null;
956
+ }
957
+ } catch (err) {
958
+ if (!isMissingTableError(err)) {
959
+ const msg = err instanceof Error ? err.message : String(err);
960
+ console.warn("[emdash] Failed to hydrate bylines:", msg);
961
+ }
962
+ }
963
+ }
964
+ /**
965
+ * Eagerly hydrate taxonomy term data onto entry.data for one or more entries.
966
+ *
967
+ * Attaches `terms` (Record keyed by taxonomy name with an array of TaxonomyTerm
968
+ * values) to each entry's data object. Uses a single batched JOIN query across
969
+ * all taxonomies so the cost is O(1) regardless of the number of entries or
970
+ * taxonomies on the site.
971
+ *
972
+ * This eliminates the common N+1 pattern where templates loop over list
973
+ * results and call getEntryTerms() per entry. With hydration, the list page
974
+ * stays at a single round-trip for term data.
975
+ *
976
+ * `locale` is the preferred locale the entries were resolved to. Each assigned
977
+ * group resolves that variant first, then the configured default. When it is
978
+ * omitted, the stored locale of each content row is preferred.
979
+ *
980
+ * Fails silently if the taxonomy tables don't exist yet (pre-migration).
981
+ */
982
+ async function hydrateEntryTerms(type, entries, locale) {
983
+ if (entries.length === 0) return;
984
+ if (entries.every((e) => FOLDED_TERMS in entryData(e))) {
985
+ const perEntry = [];
986
+ for (const entry of entries) {
987
+ const data = entryData(entry);
988
+ const folded = Reflect.get(data, FOLDED_TERMS);
989
+ const rows = Array.isArray(folded) ? folded : [];
990
+ const grouped = {};
991
+ for (const r of rows) {
992
+ const name = String(r?.name);
993
+ (grouped[name] ??= []).push({
994
+ id: r?.id,
995
+ name,
996
+ slug: r?.slug,
997
+ label: r?.label,
998
+ parentId: r?.parent_id ?? void 0,
999
+ children: [],
1000
+ locale: r?.locale,
1001
+ translationGroup: r?.translation_group
1002
+ });
1003
+ }
1004
+ for (const [name, arr] of Object.entries(grouped)) grouped[name] = arr.toSorted((a, b) => String(a.label).localeCompare(String(b.label)));
1005
+ data.terms = grouped;
1006
+ const entryId = dataStr(data, "id");
1007
+ if (entryId) perEntry.push({
1008
+ entryId,
1009
+ byTaxonomy: grouped
1010
+ });
1011
+ }
1012
+ const { primeFoldedEntryTerms } = await import("./taxonomies-BlAjr4BL.mjs").then((n) => n.f);
1013
+ primeFoldedEntryTerms(type, perEntry, { locale });
1014
+ return;
1015
+ }
1016
+ try {
1017
+ const { getAllTermsForEntries } = await import("./taxonomies-BlAjr4BL.mjs").then((n) => n.f);
1018
+ const ids = entries.map((e) => dataStr(entryData(e), "id")).filter(Boolean);
1019
+ if (ids.length === 0) return;
1020
+ const termsMap = await getAllTermsForEntries(type, ids, { locale });
1021
+ for (const entry of entries) {
1022
+ const data = entryData(entry);
1023
+ const dbId = dataStr(data, "id");
1024
+ if (!dbId) continue;
1025
+ data.terms = termsMap.get(dbId) ?? {};
1026
+ }
1027
+ } catch (err) {
1028
+ if (!isMissingTableError(err)) {
1029
+ const msg = err instanceof Error ? err.message : String(err);
1030
+ console.warn("[emdash] Failed to hydrate terms:", msg);
1031
+ }
1032
+ }
1033
+ }
1034
+ /**
1035
+ * Get all translations of a content item.
1036
+ *
1037
+ * Given a content entry, returns all locale variants that share the same
1038
+ * translation group. This is useful for building language switcher UI.
1039
+ *
1040
+ * @example
1041
+ * ```ts
1042
+ * import { getEmDashEntry, getTranslations } from "emdash";
1043
+ *
1044
+ * const { entry: post } = await getEmDashEntry("posts", "hello-world", { locale: "en" });
1045
+ * const { translations } = await getTranslations("posts", post.data.id);
1046
+ * // translations = [{ id: "...", locale: "en", slug: "hello-world", status: "published" }, ...]
1047
+ * ```
1048
+ */
1049
+ async function getTranslations(type, id) {
1050
+ try {
1051
+ const db = (await import("./loader-CrRPfkHS.mjs").then((n) => n.l)).getDb;
1052
+ const dbInstance = await db();
1053
+ const { ContentRepository } = await import("./content-CbnufDsM.mjs").then((n) => n.n);
1054
+ const repo = new ContentRepository(dbInstance);
1055
+ const item = await repo.findByIdOrSlug(type, id);
1056
+ if (!item) return {
1057
+ translationGroup: "",
1058
+ translations: [],
1059
+ error: /* @__PURE__ */ new Error(`Content item not found: ${id}`)
1060
+ };
1061
+ const group = item.translationGroup || item.id;
1062
+ return {
1063
+ translationGroup: group,
1064
+ translations: (await repo.findTranslations(type, group)).map((t) => ({
1065
+ id: t.id,
1066
+ locale: t.locale || "en",
1067
+ slug: t.slug,
1068
+ status: t.status
1069
+ }))
1070
+ };
1071
+ } catch (error) {
1072
+ return {
1073
+ translationGroup: "",
1074
+ translations: [],
1075
+ error: error instanceof Error ? error : new Error(String(error))
1076
+ };
1077
+ }
1078
+ }
1079
+ const URL_PATTERN_CACHE_KEY = Symbol.for("emdash:url-pattern-cache");
1080
+ const queryGlobal = globalThis;
1081
+ const urlPatternCache = queryGlobal[URL_PATTERN_CACHE_KEY] ?? (() => {
1082
+ const cache = { patterns: null };
1083
+ queryGlobal[URL_PATTERN_CACHE_KEY] = cache;
1084
+ return cache;
1085
+ })();
1086
+ /**
1087
+ * Invalidate the cached URL patterns used by resolveEmDashPath.
1088
+ * Call when collection URL patterns change (schema updates).
1089
+ *
1090
+ * Also busts the distributed schema cache (collection metadata such as
1091
+ * `commentsEnabled`, `supports`, fields read by `getCollectionInfo`) and the
1092
+ * per-isolate registered-collection-slugs cache used by term counting, since
1093
+ * every schema-mutation path already routes through here.
1094
+ */
1095
+ function invalidateUrlPatternCache() {
1096
+ urlPatternCache.patterns = null;
1097
+ resetRegisteredCollectionsCache();
1098
+ invalidateSchemaObjectCache();
1099
+ }
1100
+ /**
1101
+ * Resolve a URL path to a content entry by matching against collection URL patterns.
1102
+ *
1103
+ * Loads all collections with a `urlPattern` set, converts each pattern to a regex,
1104
+ * and tests the given path. On match, extracts the slug and fetches the entry.
1105
+ *
1106
+ * @example
1107
+ * ```ts
1108
+ * import { resolveEmDashPath } from "emdash";
1109
+ *
1110
+ * // Given pages with urlPattern "/{slug}" and posts with "/blog/{slug}":
1111
+ * const result = await resolveEmDashPath("/blog/hello-world");
1112
+ * if (result) {
1113
+ * console.log(result.collection); // "posts"
1114
+ * console.log(result.params.slug); // "hello-world"
1115
+ * console.log(result.entry.data); // post data
1116
+ * }
1117
+ * ```
1118
+ */
1119
+ async function resolveEmDashPath(path) {
1120
+ let cachedUrlPatterns = urlPatternCache.patterns;
1121
+ if (!cachedUrlPatterns) {
1122
+ const { getDb } = await import("./loader-CrRPfkHS.mjs").then((n) => n.l);
1123
+ const { SchemaRegistry } = await import("./registry-CFcNCayZ.mjs").then((n) => n.r);
1124
+ const collections = await new SchemaRegistry(await getDb()).listCollections();
1125
+ cachedUrlPatterns = [];
1126
+ for (const collection of collections) {
1127
+ if (!collection.urlPattern) continue;
1128
+ const { regex, paramNames } = compileUrlPattern(collection.urlPattern);
1129
+ cachedUrlPatterns.push({
1130
+ slug: collection.slug,
1131
+ regex,
1132
+ paramNames
1133
+ });
1134
+ }
1135
+ urlPatternCache.patterns = cachedUrlPatterns;
1136
+ }
1137
+ for (const pattern of cachedUrlPatterns) {
1138
+ const match = path.match(pattern.regex);
1139
+ if (!match) continue;
1140
+ const params = {};
1141
+ for (let i = 0; i < pattern.paramNames.length; i++) params[pattern.paramNames[i]] = match[i + 1];
1142
+ const slug = params.slug;
1143
+ if (!slug) continue;
1144
+ const { entry } = await getEmDashEntry(pattern.slug, slug);
1145
+ if (entry) return {
1146
+ entry,
1147
+ collection: pattern.slug,
1148
+ params
1149
+ };
1150
+ }
1151
+ return null;
1152
+ }
1153
+
1154
+ //#endregion
1155
+ export { getTranslations as a, resolveEmDashPath as c, getEmDashReferences as i, createEditable as l, getEmDashCollection as n, invalidateUrlPatternCache as o, getEmDashEntry as r, query_exports as s, getEditMeta as t, createNoop as u };
1156
+ //# sourceMappingURL=query-BzifXlPS.mjs.map