emdash 1.0.1 → 1.1.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 (1267) hide show
  1. package/dist/action-token-AgOs1UWD.mjs +26 -0
  2. package/dist/action-token-AgOs1UWD.mjs.map +1 -0
  3. package/dist/activation-xomsCMJg.mjs +387 -0
  4. package/dist/activation-xomsCMJg.mjs.map +1 -0
  5. package/dist/adapters-DM1oyHIN.d.mts +173 -0
  6. package/dist/adapters-DM1oyHIN.d.mts.map +1 -0
  7. package/dist/allowed-origins-CFtudhyw.mjs +116 -0
  8. package/dist/allowed-origins-CFtudhyw.mjs.map +1 -0
  9. package/dist/api/route-utils.d.mts +4 -4
  10. package/dist/api/route-utils.mjs +48 -47
  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-CltsXhiX.mjs +4980 -0
  15. package/dist/api-CltsXhiX.mjs.map +1 -0
  16. package/dist/api-tokens-P3mAaQgr.mjs +166 -0
  17. package/dist/api-tokens-P3mAaQgr.mjs.map +1 -0
  18. package/dist/apply-Q7uvzBWW.mjs +1680 -0
  19. package/dist/apply-Q7uvzBWW.mjs.map +1 -0
  20. package/dist/approvals-DycwI6lZ.mjs +460 -0
  21. package/dist/approvals-DycwI6lZ.mjs.map +1 -0
  22. package/dist/artifact-fetch-CWxyELVI.mjs +659 -0
  23. package/dist/artifact-fetch-CWxyELVI.mjs.map +1 -0
  24. package/dist/artifacts-UzWbysb8.mjs +307 -0
  25. package/dist/artifacts-UzWbysb8.mjs.map +1 -0
  26. package/dist/astro/index.d.mts +14 -14
  27. package/dist/astro/index.d.mts.map +1 -1
  28. package/dist/astro/index.mjs +38 -12
  29. package/dist/astro/index.mjs.map +1 -1
  30. package/dist/astro/middleware/auth.d.mts +12 -12
  31. package/dist/astro/middleware/auth.mjs +12 -11
  32. package/dist/astro/middleware/auth.mjs.map +1 -1
  33. package/dist/astro/middleware/media-usage-write-fence.mjs +6 -6
  34. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  35. package/dist/astro/middleware/redirect.mjs +9 -22
  36. package/dist/astro/middleware/redirect.mjs.map +1 -1
  37. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  38. package/dist/astro/middleware/request-context.mjs +33 -21
  39. package/dist/astro/middleware/request-context.mjs.map +1 -1
  40. package/dist/astro/middleware/setup.mjs +1 -1
  41. package/dist/astro/middleware.d.mts +12 -12
  42. package/dist/astro/middleware.d.mts.map +1 -1
  43. package/dist/astro/middleware.mjs +203 -120
  44. package/dist/astro/middleware.mjs.map +1 -1
  45. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +15 -15
  46. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +15 -15
  47. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +7 -7
  48. package/dist/astro/routes/api/admin/api-tokens/index.mjs +8 -8
  49. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +17 -17
  51. package/dist/astro/routes/api/admin/byline-fields/index.mjs +17 -17
  52. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +17 -17
  53. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +22 -22
  54. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +22 -23
  55. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -23
  57. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  58. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -19
  59. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  60. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -18
  61. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  62. package/dist/astro/routes/api/admin/comments/index.mjs +18 -18
  63. package/dist/astro/routes/api/admin/core-update.mjs +8 -8
  64. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +7 -7
  65. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +6 -6
  66. package/dist/astro/routes/api/admin/media-usage/activation.mjs +21 -21
  67. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +22 -22
  68. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +22 -22
  69. package/dist/astro/routes/api/admin/media-usage/progress.mjs +23 -23
  70. package/dist/astro/routes/api/admin/media-usage/repair.mjs +29 -29
  71. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +22 -22
  72. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +22 -22
  73. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +7 -7
  74. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +7 -7
  75. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +9 -9
  76. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +9 -9
  77. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +72 -71
  78. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  79. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +8 -8
  80. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +70 -69
  81. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  82. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +71 -70
  83. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +81 -80
  85. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/index.mjs +71 -70
  87. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +8 -8
  89. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +70 -69
  90. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +80 -79
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +70 -69
  94. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +71 -70
  96. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  97. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +82 -81
  98. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +10 -10
  100. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +73 -72
  101. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  102. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +8 -8
  103. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +71 -70
  104. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  105. package/dist/astro/routes/api/admin/plugins/updates.mjs +70 -69
  106. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +6 -6
  108. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +70 -69
  109. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  110. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +8 -8
  111. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +70 -69
  112. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  113. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +5 -5
  114. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +39 -39
  115. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +39 -39
  116. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +41 -41
  117. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +41 -41
  118. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +41 -41
  119. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +42 -42
  120. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +42 -42
  121. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +41 -41
  122. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +42 -42
  123. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +43 -43
  124. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +41 -41
  125. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +41 -41
  126. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +43 -43
  127. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +41 -41
  128. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +43 -43
  129. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +41 -41
  130. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +41 -41
  131. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +43 -43
  132. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +41 -41
  133. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +41 -41
  134. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +43 -43
  135. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +5 -5
  136. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +5 -5
  137. package/dist/astro/routes/api/admin/users/_id_/index.mjs +15 -15
  138. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +7 -7
  139. package/dist/astro/routes/api/admin/users/index.mjs +15 -15
  140. package/dist/astro/routes/api/auth/dev-bypass.mjs +7 -7
  141. package/dist/astro/routes/api/auth/invite/accept.mjs +5 -5
  142. package/dist/astro/routes/api/auth/invite/complete.mjs +20 -20
  143. package/dist/astro/routes/api/auth/invite/index.mjs +17 -17
  144. package/dist/astro/routes/api/auth/invite/register-options.mjs +18 -18
  145. package/dist/astro/routes/api/auth/logout.mjs +6 -6
  146. package/dist/astro/routes/api/auth/magic-link/send.mjs +19 -19
  147. package/dist/astro/routes/api/auth/magic-link/verify.mjs +16 -16
  148. package/dist/astro/routes/api/auth/me.mjs +16 -16
  149. package/dist/astro/routes/api/auth/mode.mjs +6 -6
  150. package/dist/astro/routes/api/auth/oauth/_provider_/callback.d.mts.map +1 -1
  151. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +36 -13
  152. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs.map +1 -1
  153. package/dist/astro/routes/api/auth/oauth/_provider_.d.mts.map +1 -1
  154. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +20 -5
  155. package/dist/astro/routes/api/auth/oauth/_provider_.mjs.map +1 -1
  156. package/dist/astro/routes/api/auth/passkey/_id_.mjs +15 -15
  157. package/dist/astro/routes/api/auth/passkey/index.mjs +5 -5
  158. package/dist/astro/routes/api/auth/passkey/options.mjs +20 -20
  159. package/dist/astro/routes/api/auth/passkey/register/options.mjs +18 -18
  160. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +19 -19
  161. package/dist/astro/routes/api/auth/passkey/verify.mjs +20 -20
  162. package/dist/astro/routes/api/auth/signup/complete.mjs +20 -20
  163. package/dist/astro/routes/api/auth/signup/request.mjs +18 -18
  164. package/dist/astro/routes/api/auth/signup/verify.mjs +5 -5
  165. package/dist/astro/routes/api/calendar.d.mts +8 -0
  166. package/dist/astro/routes/api/calendar.d.mts.map +1 -0
  167. package/dist/astro/routes/api/calendar.mjs +204 -0
  168. package/dist/astro/routes/api/calendar.mjs.map +1 -0
  169. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
  170. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -20
  171. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +6 -6
  172. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +17 -17
  173. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -6
  174. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  175. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -6
  176. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +12 -12
  177. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +31 -31
  178. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
  179. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +34 -34
  180. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +34 -34
  181. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -6
  182. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +6 -6
  183. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
  184. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +24 -24
  185. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +6 -6
  186. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +17 -17
  187. package/dist/astro/routes/api/content/_collection_/_id_.mjs +17 -17
  188. package/dist/astro/routes/api/content/_collection_/authors.mjs +6 -6
  189. package/dist/astro/routes/api/content/_collection_/index.mjs +16 -16
  190. package/dist/astro/routes/api/content/_collection_/trash.mjs +16 -16
  191. package/dist/astro/routes/api/dashboard.mjs +11 -11
  192. package/dist/astro/routes/api/dev/emails.mjs +6 -6
  193. package/dist/astro/routes/api/health.mjs +7 -7
  194. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  195. package/dist/astro/routes/api/import/probe.mjs +24 -24
  196. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -6
  197. package/dist/astro/routes/api/import/wordpress/execute.d.mts +13 -13
  198. package/dist/astro/routes/api/import/wordpress/execute.mjs +23 -23
  199. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -12
  200. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -20
  201. package/dist/astro/routes/api/import/wordpress/prepare.mjs +18 -18
  202. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -13
  203. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +27 -27
  204. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  205. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -24
  206. package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
  207. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +13 -13
  208. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +32 -32
  209. package/dist/astro/routes/api/manifest.mjs +7 -7
  210. package/dist/astro/routes/api/mcp.mjs +94 -94
  211. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  212. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
  213. package/dist/astro/routes/api/media/_id_/replace.mjs +17 -17
  214. package/dist/astro/routes/api/media/_id_/upload.mjs +10 -10
  215. package/dist/astro/routes/api/media/_id_/usage.mjs +31 -31
  216. package/dist/astro/routes/api/media/_id_.mjs +29 -29
  217. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +7 -7
  218. package/dist/astro/routes/api/media/file/_...key_.mjs +10 -10
  219. package/dist/astro/routes/api/media/folders/_id_.mjs +17 -17
  220. package/dist/astro/routes/api/media/folders/index.mjs +17 -17
  221. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +6 -6
  222. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +6 -6
  223. package/dist/astro/routes/api/media/providers/index.mjs +6 -6
  224. package/dist/astro/routes/api/media/upload-url.mjs +23 -23
  225. package/dist/astro/routes/api/media/upload-url.mjs.map +1 -1
  226. package/dist/astro/routes/api/media.mjs +37 -36
  227. package/dist/astro/routes/api/media.mjs.map +1 -1
  228. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +18 -18
  229. package/dist/astro/routes/api/menus/_name_/items.mjs +18 -18
  230. package/dist/astro/routes/api/menus/_name_/reorder.mjs +18 -18
  231. package/dist/astro/routes/api/menus/_name_/translations.mjs +18 -18
  232. package/dist/astro/routes/api/menus/_name_.mjs +18 -18
  233. package/dist/astro/routes/api/menus/index.mjs +18 -18
  234. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  235. package/dist/astro/routes/api/oauth/device/authorize.mjs +9 -9
  236. package/dist/astro/routes/api/oauth/device/code.mjs +12 -12
  237. package/dist/astro/routes/api/oauth/device/token.mjs +11 -11
  238. package/dist/astro/routes/api/oauth/register.mjs +8 -8
  239. package/dist/astro/routes/api/oauth/token/refresh.mjs +9 -9
  240. package/dist/astro/routes/api/oauth/token/revoke.mjs +9 -9
  241. package/dist/astro/routes/api/oauth/token.mjs +9 -9
  242. package/dist/astro/routes/api/openapi.json.mjs +21 -21
  243. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +12 -12
  244. package/dist/astro/routes/api/redirects/404s/index.mjs +20 -19
  245. package/dist/astro/routes/api/redirects/404s/index.mjs.map +1 -1
  246. package/dist/astro/routes/api/redirects/404s/summary.mjs +20 -19
  247. package/dist/astro/routes/api/redirects/404s/summary.mjs.map +1 -1
  248. package/dist/astro/routes/api/redirects/_id_.mjs +20 -19
  249. package/dist/astro/routes/api/redirects/_id_.mjs.map +1 -1
  250. package/dist/astro/routes/api/redirects/index.mjs +20 -19
  251. package/dist/astro/routes/api/redirects/index.mjs.map +1 -1
  252. package/dist/astro/routes/api/relations/_id_/index.mjs +34 -34
  253. package/dist/astro/routes/api/relations/index.mjs +34 -34
  254. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +6 -6
  255. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +17 -17
  256. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +70 -69
  257. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  258. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +70 -69
  259. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  260. package/dist/astro/routes/api/schema/block-types/index.mjs +70 -69
  261. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  262. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +70 -69
  263. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  264. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +70 -69
  265. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  266. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +70 -69
  267. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  268. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +70 -69
  269. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  270. package/dist/astro/routes/api/schema/collections/index.mjs +70 -69
  271. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  272. package/dist/astro/routes/api/schema/collections/reorder.mjs +70 -69
  273. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  274. package/dist/astro/routes/api/schema/index.mjs +16 -16
  275. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +70 -69
  276. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  277. package/dist/astro/routes/api/schema/orphans/index.mjs +70 -69
  278. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  279. package/dist/astro/routes/api/search/enable.mjs +19 -19
  280. package/dist/astro/routes/api/search/index.mjs +18 -18
  281. package/dist/astro/routes/api/search/rebuild.mjs +19 -19
  282. package/dist/astro/routes/api/search/stats.mjs +9 -9
  283. package/dist/astro/routes/api/search/suggest.mjs +18 -18
  284. package/dist/astro/routes/api/sections/_slug_.mjs +18 -18
  285. package/dist/astro/routes/api/sections/index.mjs +18 -18
  286. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +8 -8
  287. package/dist/astro/routes/api/settings/backups/archives/index.mjs +8 -8
  288. package/dist/astro/routes/api/settings/backups/export.mjs +8 -8
  289. package/dist/astro/routes/api/settings/backups/index.mjs +9 -9
  290. package/dist/astro/routes/api/settings/email.mjs +7 -7
  291. package/dist/astro/routes/api/settings.mjs +22 -22
  292. package/dist/astro/routes/api/setup/admin-verify.mjs +21 -21
  293. package/dist/astro/routes/api/setup/admin.mjs +19 -19
  294. package/dist/astro/routes/api/setup/dev-bypass.mjs +42 -42
  295. package/dist/astro/routes/api/setup/dev-reset.mjs +5 -5
  296. package/dist/astro/routes/api/setup/index.mjs +54 -49
  297. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  298. package/dist/astro/routes/api/setup/status.mjs +7 -7
  299. package/dist/astro/routes/api/snapshot.mjs +10 -10
  300. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +22 -22
  301. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +22 -22
  302. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +22 -22
  303. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +22 -22
  304. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +21 -21
  305. package/dist/astro/routes/api/taxonomies/_name_.mjs +22 -22
  306. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +35 -35
  307. package/dist/astro/routes/api/taxonomies/index.mjs +22 -22
  308. package/dist/astro/routes/api/themes/preview.mjs +8 -8
  309. package/dist/astro/routes/api/typegen.mjs +7 -7
  310. package/dist/astro/routes/api/visual-editing/action-token.mjs +8 -8
  311. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +20 -20
  312. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +5 -5
  313. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  314. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  315. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  316. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +17 -17
  317. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +19 -19
  318. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +19 -19
  319. package/dist/astro/routes/api/widget-areas/_name_.mjs +9 -9
  320. package/dist/astro/routes/api/widget-areas/index.mjs +19 -19
  321. package/dist/astro/routes/api/widget-components.mjs +6 -6
  322. package/dist/astro/routes/robots.txt.mjs +7 -7
  323. package/dist/astro/routes/sitemap-_collection_.xml.mjs +9 -9
  324. package/dist/astro/routes/sitemap.xml.mjs +8 -8
  325. package/dist/astro/types.d.mts +17 -17
  326. package/dist/audit-CCH3MA4Y.mjs +127 -0
  327. package/dist/audit-CCH3MA4Y.mjs.map +1 -0
  328. package/dist/auth/providers/github.d.mts +1 -1
  329. package/dist/auth/providers/google.d.mts +1 -1
  330. package/dist/auth/providers/microsoft.d.mts +27 -0
  331. package/dist/auth/providers/microsoft.d.mts.map +1 -0
  332. package/dist/auth/providers/microsoft.mjs +20 -0
  333. package/dist/auth/providers/microsoft.mjs.map +1 -0
  334. package/dist/authoritative-records-dSvXCfzb.mjs +5172 -0
  335. package/dist/authoritative-records-dSvXCfzb.mjs.map +1 -0
  336. package/dist/authorize-DeWfk--K.mjs +49 -0
  337. package/dist/authorize-DeWfk--K.mjs.map +1 -0
  338. package/dist/backup-CFnbdTSJ.mjs +246 -0
  339. package/dist/backup-CFnbdTSJ.mjs.map +1 -0
  340. package/dist/base64-BQBZwXCx.mjs +63 -0
  341. package/dist/base64-BQBZwXCx.mjs.map +1 -0
  342. package/dist/block-types-C0YFSfR7.mjs +132 -0
  343. package/dist/block-types-C0YFSfR7.mjs.map +1 -0
  344. package/dist/block-values-H4E0XwE8.mjs +175 -0
  345. package/dist/block-values-H4E0XwE8.mjs.map +1 -0
  346. package/dist/byline-BhVslYLz.mjs +909 -0
  347. package/dist/byline-BhVslYLz.mjs.map +1 -0
  348. package/dist/byline-fields-DHJs0Mja.mjs +280 -0
  349. package/dist/byline-fields-DHJs0Mja.mjs.map +1 -0
  350. package/dist/byline-fields-xdxE9kxZ.mjs +123 -0
  351. package/dist/byline-fields-xdxE9kxZ.mjs.map +1 -0
  352. package/dist/bylines-B_nN9liM.mjs +234 -0
  353. package/dist/bylines-B_nN9liM.mjs.map +1 -0
  354. package/dist/bylines-C71YACkL.mjs +150 -0
  355. package/dist/bylines-C71YACkL.mjs.map +1 -0
  356. package/dist/cache-aTYCL9nK.mjs +133 -0
  357. package/dist/cache-aTYCL9nK.mjs.map +1 -0
  358. package/dist/canonical-Y1dpjCnp.mjs +174 -0
  359. package/dist/canonical-Y1dpjCnp.mjs.map +1 -0
  360. package/dist/capture-triggers-C9JKoIdT.mjs +362 -0
  361. package/dist/capture-triggers-C9JKoIdT.mjs.map +1 -0
  362. package/dist/challenge-store-CxZxPqaw.mjs +51 -0
  363. package/dist/challenge-store-CxZxPqaw.mjs.map +1 -0
  364. package/dist/checksum-DtH6m5uk.mjs +162 -0
  365. package/dist/checksum-DtH6m5uk.mjs.map +1 -0
  366. package/dist/chrome-tags-BIKBMZYO.mjs +24 -0
  367. package/dist/chrome-tags-BIKBMZYO.mjs.map +1 -0
  368. package/dist/chunks-zlGB5IQP.mjs +25 -0
  369. package/dist/chunks-zlGB5IQP.mjs.map +1 -0
  370. package/dist/cli/index.mjs +47 -47
  371. package/dist/client/cf-access.d.mts +1 -1
  372. package/dist/client/index.d.mts +121 -121
  373. package/dist/client/index.mjs +2 -2
  374. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs +85 -0
  375. package/dist/collection-slugs-cache-B2Gs9Jwx.mjs.map +1 -0
  376. package/dist/comment-Bu08Wvr3.mjs +313 -0
  377. package/dist/comment-Bu08Wvr3.mjs.map +1 -0
  378. package/dist/comment-reaction-B8SfT-yM.mjs +85 -0
  379. package/dist/comment-reaction-B8SfT-yM.mjs.map +1 -0
  380. package/dist/comments-BRtp992B.mjs +99 -0
  381. package/dist/comments-BRtp992B.mjs.map +1 -0
  382. package/dist/comments-DVUYqdyC.mjs +195 -0
  383. package/dist/comments-DVUYqdyC.mjs.map +1 -0
  384. package/dist/components-CQY-Sgm-.mjs +108 -0
  385. package/dist/components-CQY-Sgm-.mjs.map +1 -0
  386. package/dist/config-B-uePMLj.d.mts +39 -0
  387. package/dist/config-B-uePMLj.d.mts.map +1 -0
  388. package/dist/config-B6BDSsz2.d.mts +6712 -0
  389. package/dist/config-B6BDSsz2.d.mts.map +1 -0
  390. package/dist/config-BsJHiQxC.mjs +228 -0
  391. package/dist/config-BsJHiQxC.mjs.map +1 -0
  392. package/dist/connection-B9pIasFd.mjs +36 -0
  393. package/dist/connection-B9pIasFd.mjs.map +1 -0
  394. package/dist/content-Dji9vEiW.mjs +2063 -0
  395. package/dist/content-Dji9vEiW.mjs.map +1 -0
  396. package/dist/content-list-query-DiNwyKtd.d.mts +26 -0
  397. package/dist/content-list-query-DiNwyKtd.d.mts.map +1 -0
  398. package/dist/content-repair-B7wnbzhN.mjs +442 -0
  399. package/dist/content-repair-B7wnbzhN.mjs.map +1 -0
  400. package/dist/context-Ctcxc8Ia.mjs +2026 -0
  401. package/dist/context-Ctcxc8Ia.mjs.map +1 -0
  402. package/dist/credits-Bu7dlobo.mjs +110 -0
  403. package/dist/credits-Bu7dlobo.mjs.map +1 -0
  404. package/dist/cron-xe5XKqA-.mjs +306 -0
  405. package/dist/cron-xe5XKqA-.mjs.map +1 -0
  406. package/dist/dashboard-B5hVHOtf.mjs +151 -0
  407. package/dist/dashboard-B5hVHOtf.mjs.map +1 -0
  408. package/dist/db/index.d.mts +3 -3
  409. package/dist/db/index.mjs +1 -1
  410. package/dist/db/index.mjs.map +1 -1
  411. package/dist/db/libsql-migrations.d.mts +1 -1
  412. package/dist/db/libsql-migrations.mjs +5 -5
  413. package/dist/db/libsql.d.mts +1 -1
  414. package/dist/db/postgres-migrations.d.mts +1 -1
  415. package/dist/db/postgres-migrations.mjs +4 -4
  416. package/dist/db/postgres.d.mts +1 -1
  417. package/dist/db/sqlite-migrations.d.mts +1 -1
  418. package/dist/db/sqlite-migrations.mjs +4 -4
  419. package/dist/db/sqlite.d.mts +1 -1
  420. package/dist/db/sqlite.mjs +1 -1
  421. package/dist/default-DaoYyFRS.mjs +81 -0
  422. package/dist/default-DaoYyFRS.mjs.map +1 -0
  423. package/dist/deferred-tasks-BYcDx2o_.d.mts +9 -0
  424. package/dist/deferred-tasks-BYcDx2o_.d.mts.map +1 -0
  425. package/dist/dev-typegen-Dtl8AfS6.mjs +29 -0
  426. package/dist/dev-typegen-Dtl8AfS6.mjs.map +1 -0
  427. package/dist/device-flow-Ma5P5d2e.mjs +521 -0
  428. package/dist/device-flow-Ma5P5d2e.mjs.map +1 -0
  429. package/dist/digest-xIpR3o64.mjs +194 -0
  430. package/dist/digest-xIpR3o64.mjs.map +1 -0
  431. package/dist/direct-executor-DMWwCey3.mjs +104 -0
  432. package/dist/direct-executor-DMWwCey3.mjs.map +1 -0
  433. package/dist/email-console-DmqVF5J_.mjs +50 -0
  434. package/dist/email-console-DmqVF5J_.mjs.map +1 -0
  435. package/dist/email-locale-Cc5YSXfJ.mjs +25 -0
  436. package/dist/email-locale-Cc5YSXfJ.mjs.map +1 -0
  437. package/dist/emdash-runtime-BlybX9Ui.mjs +4249 -0
  438. package/dist/emdash-runtime-BlybX9Ui.mjs.map +1 -0
  439. package/dist/enrich-Duu4sV3a.mjs +194 -0
  440. package/dist/enrich-Duu4sV3a.mjs.map +1 -0
  441. package/dist/entry-lock-De1L8qUQ.mjs +163 -0
  442. package/dist/entry-lock-De1L8qUQ.mjs.map +1 -0
  443. package/dist/entry-lock-esmMbgI9.d.mts +4551 -0
  444. package/dist/entry-lock-esmMbgI9.d.mts.map +1 -0
  445. package/dist/entry-lock-sxz2PGAT.mjs +1197 -0
  446. package/dist/entry-lock-sxz2PGAT.mjs.map +1 -0
  447. package/dist/env-types-BkjCtN13.mjs +38 -0
  448. package/dist/env-types-BkjCtN13.mjs.map +1 -0
  449. package/dist/error-B0rgPgsQ.mjs +90 -0
  450. package/dist/error-B0rgPgsQ.mjs.map +1 -0
  451. package/dist/errors-CuHQRiBW.mjs +120 -0
  452. package/dist/errors-CuHQRiBW.mjs.map +1 -0
  453. package/dist/errors-DTE6C3K_.mjs +470 -0
  454. package/dist/errors-DTE6C3K_.mjs.map +1 -0
  455. package/dist/escape-nJW7dR0s.mjs +9 -0
  456. package/dist/escape-nJW7dR0s.mjs.map +1 -0
  457. package/dist/fence-CGw57S4v.mjs +162 -0
  458. package/dist/fence-CGw57S4v.mjs.map +1 -0
  459. package/dist/field-defs-cache-Bw8w499w.mjs +77 -0
  460. package/dist/field-defs-cache-Bw8w499w.mjs.map +1 -0
  461. package/dist/field-map-hn-D-SyH.mjs +83 -0
  462. package/dist/field-map-hn-D-SyH.mjs.map +1 -0
  463. package/dist/fts-manager-DacCYIe4.mjs +443 -0
  464. package/dist/fts-manager-DacCYIe4.mjs.map +1 -0
  465. package/dist/gc-BBplHrv6.mjs +75 -0
  466. package/dist/gc-BBplHrv6.mjs.map +1 -0
  467. package/dist/hash-C4DFoJ7Z.mjs +37 -0
  468. package/dist/hash-C4DFoJ7Z.mjs.map +1 -0
  469. package/dist/hook-result-DSRRxu_-.d.mts +31 -0
  470. package/dist/hook-result-DSRRxu_-.d.mts.map +1 -0
  471. package/dist/hreflang-CKPunvU0.mjs +105 -0
  472. package/dist/hreflang-CKPunvU0.mjs.map +1 -0
  473. package/dist/hreflang-egumj6WF.d.mts +50 -0
  474. package/dist/hreflang-egumj6WF.d.mts.map +1 -0
  475. package/dist/http-route-dispatch-DjNFZcJ2.mjs +339 -0
  476. package/dist/http-route-dispatch-DjNFZcJ2.mjs.map +1 -0
  477. package/dist/identity-Dfrx2_Bc.mjs +35 -0
  478. package/dist/identity-Dfrx2_Bc.mjs.map +1 -0
  479. package/dist/import-ROBvhbNc.mjs +2021 -0
  480. package/dist/import-ROBvhbNc.mjs.map +1 -0
  481. package/dist/index-B4sIdCAT.d.mts +623 -0
  482. package/dist/index-B4sIdCAT.d.mts.map +1 -0
  483. package/dist/index.d.mts +24 -24
  484. package/dist/index.mjs +98 -97
  485. package/dist/init-lock-BGmew3r1.mjs +56 -0
  486. package/dist/init-lock-BGmew3r1.mjs.map +1 -0
  487. package/dist/install-finalization-CPM7Gged.mjs +58 -0
  488. package/dist/install-finalization-CPM7Gged.mjs.map +1 -0
  489. package/dist/keys-DxqxcAD4.mjs +61 -0
  490. package/dist/keys-DxqxcAD4.mjs.map +1 -0
  491. package/dist/kinds-BQl5gN6e.mjs +974 -0
  492. package/dist/kinds-BQl5gN6e.mjs.map +1 -0
  493. package/dist/lifecycle-DGQI7itS.mjs +25 -0
  494. package/dist/lifecycle-DGQI7itS.mjs.map +1 -0
  495. package/dist/load-DMxRl4VK.mjs +28 -0
  496. package/dist/load-DMxRl4VK.mjs.map +1 -0
  497. package/dist/loader-1DMiOq5s.mjs +1303 -0
  498. package/dist/loader-1DMiOq5s.mjs.map +1 -0
  499. package/dist/loops-Dn1i16FP.mjs +205 -0
  500. package/dist/loops-Dn1i16FP.mjs.map +1 -0
  501. package/dist/manifest-builder-CTw4FmZk.mjs +189 -0
  502. package/dist/manifest-builder-CTw4FmZk.mjs.map +1 -0
  503. package/dist/manifest-schema-gy37bD_D.mjs +496 -0
  504. package/dist/manifest-schema-gy37bD_D.mjs.map +1 -0
  505. package/dist/marketplace-tHWSsCUo.mjs +257 -0
  506. package/dist/marketplace-tHWSsCUo.mjs.map +1 -0
  507. package/dist/media/index.d.mts +1 -1
  508. package/dist/media/index.mjs +1 -1
  509. package/dist/media/local-runtime.d.mts +14 -14
  510. package/dist/media/local-runtime.mjs +7 -7
  511. package/dist/media-Bw-Q65ve.mjs +294 -0
  512. package/dist/media-Bw-Q65ve.mjs.map +1 -0
  513. package/dist/media-BzUDu7nl.mjs +373 -0
  514. package/dist/media-BzUDu7nl.mjs.map +1 -0
  515. package/dist/media-aahnKHze.mjs +408 -0
  516. package/dist/media-aahnKHze.mjs.map +1 -0
  517. package/dist/media-allowlist-RMrjo8TU.mjs +45 -0
  518. package/dist/media-allowlist-RMrjo8TU.mjs.map +1 -0
  519. package/dist/media-folders-kabR1oJf.mjs +210 -0
  520. package/dist/media-folders-kabR1oJf.mjs.map +1 -0
  521. package/dist/media-url-DloW2xrP.mjs +43 -0
  522. package/dist/media-url-DloW2xrP.mjs.map +1 -0
  523. package/dist/media-usage-CHHpV7ee.mjs +282 -0
  524. package/dist/media-usage-CHHpV7ee.mjs.map +1 -0
  525. package/dist/media-usage-activation-BinYqC_r.mjs +78 -0
  526. package/dist/media-usage-activation-BinYqC_r.mjs.map +1 -0
  527. package/dist/media-usage-work-C734aq6s.mjs +1015 -0
  528. package/dist/media-usage-work-C734aq6s.mjs.map +1 -0
  529. package/dist/media-usage-work-lxvV0-UO.mjs +151 -0
  530. package/dist/media-usage-work-lxvV0-UO.mjs.map +1 -0
  531. package/dist/menus-6RHNq4ZK.mjs +753 -0
  532. package/dist/menus-6RHNq4ZK.mjs.map +1 -0
  533. package/dist/menus-AuCTaO9W.mjs +3704 -0
  534. package/dist/menus-AuCTaO9W.mjs.map +1 -0
  535. package/dist/menus-BQKqf0Up.mjs +92 -0
  536. package/dist/menus-BQKqf0Up.mjs.map +1 -0
  537. package/dist/migrations/index.d.mts +1 -1
  538. package/dist/migrations/index.mjs +3 -3
  539. package/dist/mime-B5M9R53H.mjs +81 -0
  540. package/dist/mime-B5M9R53H.mjs.map +1 -0
  541. package/dist/mode-nh0ppSX5.mjs +23 -0
  542. package/dist/mode-nh0ppSX5.mjs.map +1 -0
  543. package/dist/node-sqlite-compat-CDOEcc97.mjs +63 -0
  544. package/dist/node-sqlite-compat-CDOEcc97.mjs.map +1 -0
  545. package/dist/oauth-authorization-BtYQ80uU.mjs +274 -0
  546. package/dist/oauth-authorization-BtYQ80uU.mjs.map +1 -0
  547. package/dist/oauth-clients-C1S4NQHh.mjs +266 -0
  548. package/dist/oauth-clients-C1S4NQHh.mjs.map +1 -0
  549. package/dist/oauth-state-store-CpGi2FZH.mjs +50 -0
  550. package/dist/oauth-state-store-CpGi2FZH.mjs.map +1 -0
  551. package/dist/oauth-user-lookup-BNp1aFAr.mjs +26 -0
  552. package/dist/oauth-user-lookup-BNp1aFAr.mjs.map +1 -0
  553. package/dist/object-cache/memory.d.mts +1 -1
  554. package/dist/options-B41aLm1I.d.mts +81 -0
  555. package/dist/options-B41aLm1I.d.mts.map +1 -0
  556. package/dist/ownership-DoeAIuTg.mjs +12 -0
  557. package/dist/ownership-DoeAIuTg.mjs.map +1 -0
  558. package/dist/page/index.d.mts +2 -2
  559. package/dist/page/index.mjs +6 -6
  560. package/dist/parse-CmFDTGzp.mjs +81 -0
  561. package/dist/parse-CmFDTGzp.mjs.map +1 -0
  562. package/dist/parse-QVS0t5oR.d.mts +172 -0
  563. package/dist/parse-QVS0t5oR.d.mts.map +1 -0
  564. package/dist/passkey-config-C-MxsV22.mjs +46 -0
  565. package/dist/passkey-config-C-MxsV22.mjs.map +1 -0
  566. package/dist/paths-kr8hAMMI.mjs +77 -0
  567. package/dist/paths-kr8hAMMI.mjs.map +1 -0
  568. package/dist/placeholder-Dn7MMdWr.d.mts +306 -0
  569. package/dist/placeholder-Dn7MMdWr.d.mts.map +1 -0
  570. package/dist/plan-CuQOeU9g.mjs +135 -0
  571. package/dist/plan-CuQOeU9g.mjs.map +1 -0
  572. package/dist/plugin-test-runtime.d.mts +14 -14
  573. package/dist/plugin-test-runtime.mjs +110 -109
  574. package/dist/plugin-types.d.mts +2 -2
  575. package/dist/plugin-utils.d.mts +12 -12
  576. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -12
  577. package/dist/plugins/adapt-sandbox-entry.mjs +3 -3
  578. package/dist/plugins/host.d.mts +5 -5
  579. package/dist/plugins/host.mjs +44 -43
  580. package/dist/plugins-CGb-G98c.mjs +261 -0
  581. package/dist/plugins-CGb-G98c.mjs.map +1 -0
  582. package/dist/policy-C5wrDXYV.mjs +45 -0
  583. package/dist/policy-C5wrDXYV.mjs.map +1 -0
  584. package/dist/portable-text-BnRuiR1-.mjs +307 -0
  585. package/dist/portable-text-BnRuiR1-.mjs.map +1 -0
  586. package/dist/preview-xWNSR1Li.mjs +107 -0
  587. package/dist/preview-xWNSR1Li.mjs.map +1 -0
  588. package/dist/protocol-ClxN-m1e.d.mts +61 -0
  589. package/dist/protocol-ClxN-m1e.d.mts.map +1 -0
  590. package/dist/public-submission-CkmT2SKv.mjs +250 -0
  591. package/dist/public-submission-CkmT2SKv.mjs.map +1 -0
  592. package/dist/public-url-B5a0QAh6.mjs +101 -0
  593. package/dist/public-url-B5a0QAh6.mjs.map +1 -0
  594. package/dist/query-DHqFiqqH.mjs +41 -0
  595. package/dist/query-DHqFiqqH.mjs.map +1 -0
  596. package/dist/query-DT85BehD.mjs +1125 -0
  597. package/dist/query-DT85BehD.mjs.map +1 -0
  598. package/dist/rate-limit-iMvcu3eu.mjs +120 -0
  599. package/dist/rate-limit-iMvcu3eu.mjs.map +1 -0
  600. package/dist/receipt-Dpp1uaX9.mjs +43 -0
  601. package/dist/receipt-Dpp1uaX9.mjs.map +1 -0
  602. package/dist/redirect-BRoLiWQE.mjs +19 -0
  603. package/dist/redirect-BRoLiWQE.mjs.map +1 -0
  604. package/dist/redirect-xZNpBoGp.mjs +417 -0
  605. package/dist/redirect-xZNpBoGp.mjs.map +1 -0
  606. package/dist/redirects-D4EWeXAo.mjs +148 -0
  607. package/dist/redirects-D4EWeXAo.mjs.map +1 -0
  608. package/dist/redirects-DCKqwiWp.mjs +446 -0
  609. package/dist/redirects-DCKqwiWp.mjs.map +1 -0
  610. package/dist/registry/testing.mjs +3 -3
  611. package/dist/registry-DaXmUsD4.mjs +8369 -0
  612. package/dist/registry-DaXmUsD4.mjs.map +1 -0
  613. package/dist/relations-JvBP8nGP.mjs +776 -0
  614. package/dist/relations-JvBP8nGP.mjs.map +1 -0
  615. package/dist/request-context.d.mts +2 -2
  616. package/dist/request-context.mjs.map +1 -1
  617. package/dist/request-meta-B6blULFY.mjs +141 -0
  618. package/dist/request-meta-B6blULFY.mjs.map +1 -0
  619. package/dist/resolve-DAhHi5tn.mjs +100 -0
  620. package/dist/resolve-DAhHi5tn.mjs.map +1 -0
  621. package/dist/revision-BWEH2qQB.mjs +368 -0
  622. package/dist/revision-BWEH2qQB.mjs.map +1 -0
  623. package/dist/route-wire-DK600v4u.mjs +197 -0
  624. package/dist/route-wire-DK600v4u.mjs.map +1 -0
  625. package/dist/routes-BeZyaCzv.mjs +272 -0
  626. package/dist/routes-BeZyaCzv.mjs.map +1 -0
  627. package/dist/runner-CskI4Hmq.mjs +6372 -0
  628. package/dist/runner-CskI4Hmq.mjs.map +1 -0
  629. package/dist/runner-J3Cj6DGk.d.mts +68 -0
  630. package/dist/runner-J3Cj6DGk.d.mts.map +1 -0
  631. package/dist/runtime.d.mts +13 -13
  632. package/dist/runtime.mjs +3 -3
  633. package/dist/schema/project-env-types.mjs +37 -37
  634. package/dist/schema-CK0ihqMR.mjs +815 -0
  635. package/dist/schema-CK0ihqMR.mjs.map +1 -0
  636. package/dist/schema-VtaZSrC-.mjs +13 -0
  637. package/dist/schema-VtaZSrC-.mjs.map +1 -0
  638. package/dist/scopes-BRnGlL9t.mjs +34 -0
  639. package/dist/scopes-BRnGlL9t.mjs.map +1 -0
  640. package/dist/search-D6-XK1Sn.mjs +448 -0
  641. package/dist/search-D6-XK1Sn.mjs.map +1 -0
  642. package/dist/secrets-Cc_O3Kp-.mjs +369 -0
  643. package/dist/secrets-Cc_O3Kp-.mjs.map +1 -0
  644. package/dist/sections-CBDCf7qR.mjs +346 -0
  645. package/dist/sections-CBDCf7qR.mjs.map +1 -0
  646. package/dist/seed/index.d.mts +2 -2
  647. package/dist/seed/index.mjs +35 -35
  648. package/dist/seo/index.d.mts +3 -3
  649. package/dist/seo/index.mjs +22 -22
  650. package/dist/seo-BdeEPDNW.mjs +133 -0
  651. package/dist/seo-BdeEPDNW.mjs.map +1 -0
  652. package/dist/seo-C61bnPuV.mjs +114 -0
  653. package/dist/seo-C61bnPuV.mjs.map +1 -0
  654. package/dist/service-BuRKLMxa.mjs +150 -0
  655. package/dist/service-BuRKLMxa.mjs.map +1 -0
  656. package/dist/session-user-CqkPtrPL.mjs +61 -0
  657. package/dist/session-user-CqkPtrPL.mjs.map +1 -0
  658. package/dist/settings-0u0lTthS.mjs +51 -0
  659. package/dist/settings-0u0lTthS.mjs.map +1 -0
  660. package/dist/settings-WHr45II1.mjs +61 -0
  661. package/dist/settings-WHr45II1.mjs.map +1 -0
  662. package/dist/settings-m5tIYnF0.mjs +443 -0
  663. package/dist/settings-m5tIYnF0.mjs.map +1 -0
  664. package/dist/setup-complete-B2_dhZZz.mjs +65 -0
  665. package/dist/setup-complete-B2_dhZZz.mjs.map +1 -0
  666. package/dist/setup-nonce-CJV9ftSK.mjs +25 -0
  667. package/dist/setup-nonce-CJV9ftSK.mjs.map +1 -0
  668. package/dist/single-flight-cache-D0EaGbN1.mjs +104 -0
  669. package/dist/single-flight-cache-D0EaGbN1.mjs.map +1 -0
  670. package/dist/site-settings-KJOqJW6W.mjs +50 -0
  671. package/dist/site-settings-KJOqJW6W.mjs.map +1 -0
  672. package/dist/site-url-Ceq_AUK0.mjs +16 -0
  673. package/dist/site-url-Ceq_AUK0.mjs.map +1 -0
  674. package/dist/snapshot-Dzsn3NZa.mjs +414 -0
  675. package/dist/snapshot-Dzsn3NZa.mjs.map +1 -0
  676. package/dist/ssrf-DsmvZB80.mjs +406 -0
  677. package/dist/ssrf-DsmvZB80.mjs.map +1 -0
  678. package/dist/stage-Csnh_yEd.mjs +662 -0
  679. package/dist/stage-Csnh_yEd.mjs.map +1 -0
  680. package/dist/staged-Q7pnEVvI.mjs +686 -0
  681. package/dist/staged-Q7pnEVvI.mjs.map +1 -0
  682. package/dist/state-kGdOMQRY.mjs +153 -0
  683. package/dist/state-kGdOMQRY.mjs.map +1 -0
  684. package/dist/status-D39Fpy8R.mjs +30 -0
  685. package/dist/status-D39Fpy8R.mjs.map +1 -0
  686. package/dist/storage/local.d.mts +1 -1
  687. package/dist/storage/local.mjs +2 -2
  688. package/dist/storage/s3.d.mts +1 -1
  689. package/dist/storage/s3.mjs +1 -1
  690. package/dist/storage-query-C7iy6eUb.d.mts +1615 -0
  691. package/dist/storage-query-C7iy6eUb.d.mts.map +1 -0
  692. package/dist/tar-BWiraSUY.mjs +449 -0
  693. package/dist/tar-BWiraSUY.mjs.map +1 -0
  694. package/dist/target-DOFs5oUC.mjs +27 -0
  695. package/dist/target-DOFs5oUC.mjs.map +1 -0
  696. package/dist/taxonomies-BS40Wxvi.mjs +939 -0
  697. package/dist/taxonomies-BS40Wxvi.mjs.map +1 -0
  698. package/dist/taxonomies-DAZU9VDd.mjs +697 -0
  699. package/dist/taxonomies-DAZU9VDd.mjs.map +1 -0
  700. package/dist/taxonomy-XzLE95Vx.mjs +525 -0
  701. package/dist/taxonomy-XzLE95Vx.mjs.map +1 -0
  702. package/dist/tokens-DSQan4p7.mjs +171 -0
  703. package/dist/tokens-DSQan4p7.mjs.map +1 -0
  704. package/dist/transfer-BcCVxDgf.mjs +166 -0
  705. package/dist/transfer-BcCVxDgf.mjs.map +1 -0
  706. package/dist/transfer-OMrancOt.mjs +8873 -0
  707. package/dist/transfer-OMrancOt.mjs.map +1 -0
  708. package/dist/transfer-download-Dc-ltjZY.mjs +33 -0
  709. package/dist/transfer-download-Dc-ltjZY.mjs.map +1 -0
  710. package/dist/transformations-Ddx7UtrY.mjs +196 -0
  711. package/dist/transformations-Ddx7UtrY.mjs.map +1 -0
  712. package/dist/transport-flR-Zmds.d.mts +42 -0
  713. package/dist/transport-flR-Zmds.d.mts.map +1 -0
  714. package/dist/transport-umzEbgYO.mjs +136 -0
  715. package/dist/transport-umzEbgYO.mjs.map +1 -0
  716. package/dist/trusted-proxy-BqfQFs6a.mjs +51 -0
  717. package/dist/trusted-proxy-BqfQFs6a.mjs.map +1 -0
  718. package/dist/turnstile-Do60baId.mjs +58 -0
  719. package/dist/turnstile-Do60baId.mjs.map +1 -0
  720. package/dist/types-BT1p3uyb.d.mts +1735 -0
  721. package/dist/types-BT1p3uyb.d.mts.map +1 -0
  722. package/dist/types-BYaPWs_F.d.mts +198 -0
  723. package/dist/types-BYaPWs_F.d.mts.map +1 -0
  724. package/dist/types-C-Xp0CcN.mjs +103 -0
  725. package/dist/types-C-Xp0CcN.mjs.map +1 -0
  726. package/dist/types-CLTQ9b_r.d.mts +374 -0
  727. package/dist/types-CLTQ9b_r.d.mts.map +1 -0
  728. package/dist/types-CPkQw2T2.d.mts +85 -0
  729. package/dist/types-CPkQw2T2.d.mts.map +1 -0
  730. package/dist/types-CQLvuXoZ.d.mts +198 -0
  731. package/dist/types-CQLvuXoZ.d.mts.map +1 -0
  732. package/dist/types-CV5xszpF.d.mts +363 -0
  733. package/dist/types-CV5xszpF.d.mts.map +1 -0
  734. package/dist/types-CdEMurNh.mjs +77 -0
  735. package/dist/types-CdEMurNh.mjs.map +1 -0
  736. package/dist/types-Cj0_yZkn.mjs +18 -0
  737. package/dist/types-Cj0_yZkn.mjs.map +1 -0
  738. package/dist/types-CxwtnuSS.mjs +37 -0
  739. package/dist/types-CxwtnuSS.mjs.map +1 -0
  740. package/dist/types-DGw8KMX_.mjs +16 -0
  741. package/dist/types-DGw8KMX_.mjs.map +1 -0
  742. package/dist/types-DOfVMPoo.d.mts +125 -0
  743. package/dist/types-DOfVMPoo.d.mts.map +1 -0
  744. package/dist/types-LtS0SM4F.d.mts +287 -0
  745. package/dist/types-LtS0SM4F.d.mts.map +1 -0
  746. package/dist/types-ifgOkcBa.d.mts +916 -0
  747. package/dist/types-ifgOkcBa.d.mts.map +1 -0
  748. package/dist/update-check-DOc2aBIU.mjs +161 -0
  749. package/dist/update-check-DOc2aBIU.mjs.map +1 -0
  750. package/dist/upload-attempts-nzdc3cay.mjs +32 -0
  751. package/dist/upload-attempts-nzdc3cay.mjs.map +1 -0
  752. package/dist/url-pattern-hVbqpXs6.mjs +41 -0
  753. package/dist/url-pattern-hVbqpXs6.mjs.map +1 -0
  754. package/dist/user-Dnp53zTq.mjs +171 -0
  755. package/dist/user-Dnp53zTq.mjs.map +1 -0
  756. package/dist/utils-CoV-PYhg.mjs +439 -0
  757. package/dist/utils-CoV-PYhg.mjs.map +1 -0
  758. package/dist/validate-CfQ9_YlD.d.mts +468 -0
  759. package/dist/validate-CfQ9_YlD.d.mts.map +1 -0
  760. package/dist/validate-DBX3DKtL.mjs +516 -0
  761. package/dist/validate-DBX3DKtL.mjs.map +1 -0
  762. package/dist/validation-BJMiDhB1.mjs +219 -0
  763. package/dist/validation-BJMiDhB1.mjs.map +1 -0
  764. package/dist/version-BaT8yKIT.mjs +7 -0
  765. package/dist/version-BaT8yKIT.mjs.map +1 -0
  766. package/dist/version-BwEGkqkx.mjs +9 -0
  767. package/dist/version-BwEGkqkx.mjs.map +1 -0
  768. package/dist/virtual-modules-B6vJW15k.mjs +516 -0
  769. package/dist/virtual-modules-B6vJW15k.mjs.map +1 -0
  770. package/dist/widgets-BkxBAgZ_.mjs +126 -0
  771. package/dist/widgets-BkxBAgZ_.mjs.map +1 -0
  772. package/dist/wxr-taxonomies-D7gAJyOF.mjs +453 -0
  773. package/dist/wxr-taxonomies-D7gAJyOF.mjs.map +1 -0
  774. package/dist/wxr-taxonomies-DM5J9AsT.d.mts +34 -0
  775. package/dist/wxr-taxonomies-DM5J9AsT.d.mts.map +1 -0
  776. package/dist/zod-generator-BQilAboC.mjs +424 -0
  777. package/dist/zod-generator-BQilAboC.mjs.map +1 -0
  778. package/package.json +11 -5
  779. package/src/api/errors.ts +3 -0
  780. package/src/api/handlers/bylines.ts +24 -3
  781. package/src/api/handlers/calendar.ts +246 -0
  782. package/src/api/handlers/content.ts +12 -5
  783. package/src/api/handlers/media-allowlist.ts +1 -0
  784. package/src/api/handlers/media-upload.ts +13 -10
  785. package/src/api/handlers/plugins.ts +21 -29
  786. package/src/api/handlers/redirects.ts +6 -6
  787. package/src/api/schemas/bylines.ts +3 -1
  788. package/src/api/schemas/content.ts +16 -0
  789. package/src/astro/integration/index.ts +18 -1
  790. package/src/astro/integration/routes.ts +5 -0
  791. package/src/astro/integration/vite-config.ts +11 -0
  792. package/src/astro/middleware/csp.ts +1 -0
  793. package/src/astro/middleware/redirect.ts +20 -9
  794. package/src/astro/middleware/request-context.ts +54 -27
  795. package/src/astro/middleware.ts +97 -12
  796. package/src/astro/prefetch.ts +10 -3
  797. package/src/astro/routes/api/admin/bylines/[id]/translations.ts +0 -5
  798. package/src/astro/routes/api/admin/bylines/index.ts +1 -1
  799. package/src/astro/routes/api/admin/plugins/[id]/index.ts +1 -0
  800. package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +56 -4
  801. package/src/astro/routes/api/auth/oauth/[provider].ts +37 -4
  802. package/src/astro/routes/api/calendar.ts +35 -0
  803. package/src/astro/routes/api/media/upload-url.ts +8 -4
  804. package/src/astro/routes/api/media.ts +9 -5
  805. package/src/astro/routes/api/setup/index.ts +14 -2
  806. package/src/auth/providers/microsoft-admin.tsx +31 -0
  807. package/src/auth/providers/microsoft.ts +47 -0
  808. package/src/comments/turnstile.ts +6 -1
  809. package/src/components/HtmlBlock.astro +17 -6
  810. package/src/components/HtmlBlockFrame.astro +63 -0
  811. package/src/components/Iframe.astro +141 -0
  812. package/src/components/InlinePortableTextEditor.tsx +8 -7
  813. package/src/components/WebMcpSearch.astro +80 -0
  814. package/src/components/index.ts +5 -2
  815. package/src/components/webmcp-search.ts +142 -0
  816. package/src/config/secrets.ts +27 -15
  817. package/src/content/converters/portable-text-identity.ts +1 -0
  818. package/src/content/converters/portable-text-to-prosemirror.ts +36 -2
  819. package/src/content/converters/prosemirror-to-portable-text.ts +28 -2
  820. package/src/content/converters/types.ts +24 -0
  821. package/src/database/content-datetime.ts +11 -4
  822. package/src/database/migrations/090_redirect_enable_loop_guard.ts +70 -0
  823. package/src/database/migrations/091_redirect_artifacts.ts +141 -0
  824. package/src/database/migrations/runner.ts +4 -0
  825. package/src/database/repositories/content.ts +81 -26
  826. package/src/database/repositories/redirect.ts +6 -1
  827. package/src/database/request-scoped.ts +34 -0
  828. package/src/database/types.ts +23 -0
  829. package/src/db/adapters.ts +2 -0
  830. package/src/emdash-runtime.ts +28 -3
  831. package/src/import/menus.ts +3 -0
  832. package/src/index.ts +1 -0
  833. package/src/loader.ts +226 -55
  834. package/src/mcp/server.ts +12 -4
  835. package/src/media/mime.ts +21 -0
  836. package/src/menus/index.ts +30 -26
  837. package/src/plugins/hooks.ts +10 -0
  838. package/src/plugins/manager.ts +12 -2
  839. package/src/plugins/types.ts +16 -0
  840. package/src/query.ts +12 -29
  841. package/src/redirects/artifacts.ts +460 -0
  842. package/src/redirects/cache.ts +76 -41
  843. package/src/request-context.ts +1 -1
  844. package/src/seed/apply.ts +65 -57
  845. package/src/settings/index.ts +17 -12
  846. package/src/transfer/format/columns.ts +3 -0
  847. package/src/transfer/import/rebuild.ts +17 -2
  848. package/src/transfer/import/scaffold.ts +16 -9
  849. package/src/ui.ts +1 -0
  850. package/src/utils/sanitize.ts +14 -9
  851. package/src/virtual-modules.d.ts +3 -0
  852. package/dist/action-token-D2KE1Rqf.mjs +0 -26
  853. package/dist/action-token-D2KE1Rqf.mjs.map +0 -1
  854. package/dist/activation-DDuqAat2.mjs +0 -387
  855. package/dist/activation-DDuqAat2.mjs.map +0 -1
  856. package/dist/adapters-Ds-1Pmkm.d.mts +0 -171
  857. package/dist/adapters-Ds-1Pmkm.d.mts.map +0 -1
  858. package/dist/allowed-origins-D78QvbTO.mjs +0 -116
  859. package/dist/allowed-origins-D78QvbTO.mjs.map +0 -1
  860. package/dist/api-BBZlif0y.mjs +0 -4974
  861. package/dist/api-BBZlif0y.mjs.map +0 -1
  862. package/dist/api-tokens-BGbfWZVO.mjs +0 -166
  863. package/dist/api-tokens-BGbfWZVO.mjs.map +0 -1
  864. package/dist/apply-CDNV4JJ-.mjs +0 -1672
  865. package/dist/apply-CDNV4JJ-.mjs.map +0 -1
  866. package/dist/approvals-CVvJSEBF.mjs +0 -460
  867. package/dist/approvals-CVvJSEBF.mjs.map +0 -1
  868. package/dist/artifact-fetch-CGK0DQLj.mjs +0 -659
  869. package/dist/artifact-fetch-CGK0DQLj.mjs.map +0 -1
  870. package/dist/audit-BszbE_BP.mjs +0 -127
  871. package/dist/audit-BszbE_BP.mjs.map +0 -1
  872. package/dist/authoritative-records-ChM8dTeV.mjs +0 -5172
  873. package/dist/authoritative-records-ChM8dTeV.mjs.map +0 -1
  874. package/dist/authorize-CTGywswM.mjs +0 -49
  875. package/dist/authorize-CTGywswM.mjs.map +0 -1
  876. package/dist/backup-CDrPP8fI.mjs +0 -246
  877. package/dist/backup-CDrPP8fI.mjs.map +0 -1
  878. package/dist/base64-DvnNgP7e.mjs +0 -63
  879. package/dist/base64-DvnNgP7e.mjs.map +0 -1
  880. package/dist/block-types-nNEaPkvx.mjs +0 -132
  881. package/dist/block-types-nNEaPkvx.mjs.map +0 -1
  882. package/dist/block-values-Bho1nsZF.mjs +0 -175
  883. package/dist/block-values-Bho1nsZF.mjs.map +0 -1
  884. package/dist/byline-02tu_Uc-.mjs +0 -909
  885. package/dist/byline-02tu_Uc-.mjs.map +0 -1
  886. package/dist/byline-fields-BYbTptTU.mjs +0 -280
  887. package/dist/byline-fields-BYbTptTU.mjs.map +0 -1
  888. package/dist/byline-fields-BjQH-1z9.mjs +0 -123
  889. package/dist/byline-fields-BjQH-1z9.mjs.map +0 -1
  890. package/dist/bylines-VytjeHBI.mjs +0 -214
  891. package/dist/bylines-VytjeHBI.mjs.map +0 -1
  892. package/dist/bylines-gyWBWUUc.mjs +0 -150
  893. package/dist/bylines-gyWBWUUc.mjs.map +0 -1
  894. package/dist/cache-CPanL9IO.mjs +0 -114
  895. package/dist/cache-CPanL9IO.mjs.map +0 -1
  896. package/dist/canonical-CAecl1UQ.mjs +0 -174
  897. package/dist/canonical-CAecl1UQ.mjs.map +0 -1
  898. package/dist/capture-triggers-CdZfvHtF.mjs +0 -362
  899. package/dist/capture-triggers-CdZfvHtF.mjs.map +0 -1
  900. package/dist/challenge-store-VePApay4.mjs +0 -51
  901. package/dist/challenge-store-VePApay4.mjs.map +0 -1
  902. package/dist/checksum-BSIhEAYW.mjs +0 -162
  903. package/dist/checksum-BSIhEAYW.mjs.map +0 -1
  904. package/dist/chrome-tags-CKELm-bo.mjs +0 -24
  905. package/dist/chrome-tags-CKELm-bo.mjs.map +0 -1
  906. package/dist/chunks-DBmkKmBH.mjs +0 -25
  907. package/dist/chunks-DBmkKmBH.mjs.map +0 -1
  908. package/dist/collection-slugs-cache-BNRAPNiu.mjs +0 -85
  909. package/dist/collection-slugs-cache-BNRAPNiu.mjs.map +0 -1
  910. package/dist/comment-Cq1UYN8_.mjs +0 -313
  911. package/dist/comment-Cq1UYN8_.mjs.map +0 -1
  912. package/dist/comment-reaction-B5sZzSoA.mjs +0 -85
  913. package/dist/comment-reaction-B5sZzSoA.mjs.map +0 -1
  914. package/dist/comments-B3F-ETyh.mjs +0 -195
  915. package/dist/comments-B3F-ETyh.mjs.map +0 -1
  916. package/dist/comments-zrTgWBSg.mjs +0 -99
  917. package/dist/comments-zrTgWBSg.mjs.map +0 -1
  918. package/dist/components-Dbf4Eq16.mjs +0 -108
  919. package/dist/components-Dbf4Eq16.mjs.map +0 -1
  920. package/dist/config-BCM5sQP7.d.mts +0 -6688
  921. package/dist/config-BCM5sQP7.d.mts.map +0 -1
  922. package/dist/config-CXPcy2iY.mjs +0 -228
  923. package/dist/config-CXPcy2iY.mjs.map +0 -1
  924. package/dist/config-CZkZBuBK.d.mts +0 -39
  925. package/dist/config-CZkZBuBK.d.mts.map +0 -1
  926. package/dist/connection-C5GIciX9.mjs +0 -36
  927. package/dist/connection-C5GIciX9.mjs.map +0 -1
  928. package/dist/content-RzEXY3QX.mjs +0 -2020
  929. package/dist/content-RzEXY3QX.mjs.map +0 -1
  930. package/dist/content-list-query-B6P37Ug_.d.mts +0 -26
  931. package/dist/content-list-query-B6P37Ug_.d.mts.map +0 -1
  932. package/dist/content-repair-BDVsYXWK.mjs +0 -442
  933. package/dist/content-repair-BDVsYXWK.mjs.map +0 -1
  934. package/dist/context-BpTIzY5h.mjs +0 -2026
  935. package/dist/context-BpTIzY5h.mjs.map +0 -1
  936. package/dist/credits-JOE92Gr7.mjs +0 -110
  937. package/dist/credits-JOE92Gr7.mjs.map +0 -1
  938. package/dist/cron-ktyapbdB.mjs +0 -306
  939. package/dist/cron-ktyapbdB.mjs.map +0 -1
  940. package/dist/dashboard-BoV4pwPP.mjs +0 -151
  941. package/dist/dashboard-BoV4pwPP.mjs.map +0 -1
  942. package/dist/default-B7KnYwtQ.mjs +0 -81
  943. package/dist/default-B7KnYwtQ.mjs.map +0 -1
  944. package/dist/deferred-tasks-eaUIqXj8.d.mts +0 -9
  945. package/dist/deferred-tasks-eaUIqXj8.d.mts.map +0 -1
  946. package/dist/dev-typegen-8JlYYFno.mjs +0 -29
  947. package/dist/dev-typegen-8JlYYFno.mjs.map +0 -1
  948. package/dist/device-flow-BlV_z24g.mjs +0 -521
  949. package/dist/device-flow-BlV_z24g.mjs.map +0 -1
  950. package/dist/digest-DiYAoZpf.mjs +0 -194
  951. package/dist/digest-DiYAoZpf.mjs.map +0 -1
  952. package/dist/direct-executor-Db8xA3zg.mjs +0 -104
  953. package/dist/direct-executor-Db8xA3zg.mjs.map +0 -1
  954. package/dist/email-console-Dm78wSmg.mjs +0 -50
  955. package/dist/email-console-Dm78wSmg.mjs.map +0 -1
  956. package/dist/email-locale-B4X9LXe9.mjs +0 -25
  957. package/dist/email-locale-B4X9LXe9.mjs.map +0 -1
  958. package/dist/emdash-runtime-BakQ6io7.mjs +0 -4239
  959. package/dist/emdash-runtime-BakQ6io7.mjs.map +0 -1
  960. package/dist/enrich-BDdVNeDK.mjs +0 -194
  961. package/dist/enrich-BDdVNeDK.mjs.map +0 -1
  962. package/dist/entry-lock-DY8B-xcr.d.mts +0 -4544
  963. package/dist/entry-lock-DY8B-xcr.d.mts.map +0 -1
  964. package/dist/entry-lock-DrUAdTzf.mjs +0 -163
  965. package/dist/entry-lock-DrUAdTzf.mjs.map +0 -1
  966. package/dist/entry-lock-yIkBduqJ.mjs +0 -1180
  967. package/dist/entry-lock-yIkBduqJ.mjs.map +0 -1
  968. package/dist/env-types-DkHYR2pl.mjs +0 -38
  969. package/dist/env-types-DkHYR2pl.mjs.map +0 -1
  970. package/dist/error-DIYXAVk4.mjs +0 -90
  971. package/dist/error-DIYXAVk4.mjs.map +0 -1
  972. package/dist/errors-CNvATh_7.mjs +0 -469
  973. package/dist/errors-CNvATh_7.mjs.map +0 -1
  974. package/dist/errors-CjXd1LgH.mjs +0 -120
  975. package/dist/errors-CjXd1LgH.mjs.map +0 -1
  976. package/dist/escape-B1GM0yJU.mjs +0 -9
  977. package/dist/escape-B1GM0yJU.mjs.map +0 -1
  978. package/dist/fence-8MaKKWhp.mjs +0 -162
  979. package/dist/fence-8MaKKWhp.mjs.map +0 -1
  980. package/dist/field-defs-cache-DEkFYCDE.mjs +0 -77
  981. package/dist/field-defs-cache-DEkFYCDE.mjs.map +0 -1
  982. package/dist/field-map-D7ioN0r0.mjs +0 -83
  983. package/dist/field-map-D7ioN0r0.mjs.map +0 -1
  984. package/dist/fts-manager-DU03MxWu.mjs +0 -443
  985. package/dist/fts-manager-DU03MxWu.mjs.map +0 -1
  986. package/dist/gc-DMiE7ezk.mjs +0 -75
  987. package/dist/gc-DMiE7ezk.mjs.map +0 -1
  988. package/dist/hash-CY4QdeMJ.mjs +0 -37
  989. package/dist/hash-CY4QdeMJ.mjs.map +0 -1
  990. package/dist/hook-result-Cb67D3P3.d.mts +0 -31
  991. package/dist/hook-result-Cb67D3P3.d.mts.map +0 -1
  992. package/dist/hreflang-Bterc3b7.mjs +0 -105
  993. package/dist/hreflang-Bterc3b7.mjs.map +0 -1
  994. package/dist/hreflang-uIBOE5yg.d.mts +0 -50
  995. package/dist/hreflang-uIBOE5yg.d.mts.map +0 -1
  996. package/dist/http-route-dispatch-DubjTibD.mjs +0 -339
  997. package/dist/http-route-dispatch-DubjTibD.mjs.map +0 -1
  998. package/dist/identity-DJ-5AcdG.mjs +0 -35
  999. package/dist/identity-DJ-5AcdG.mjs.map +0 -1
  1000. package/dist/import-DEfuIgRz.mjs +0 -2020
  1001. package/dist/import-DEfuIgRz.mjs.map +0 -1
  1002. package/dist/index-xCy3j0f6.d.mts +0 -623
  1003. package/dist/index-xCy3j0f6.d.mts.map +0 -1
  1004. package/dist/init-lock-4eRRB4Le.mjs +0 -56
  1005. package/dist/init-lock-4eRRB4Le.mjs.map +0 -1
  1006. package/dist/install-finalization-DeGRbaVa.mjs +0 -58
  1007. package/dist/install-finalization-DeGRbaVa.mjs.map +0 -1
  1008. package/dist/keys-DWwMxdZh.mjs +0 -61
  1009. package/dist/keys-DWwMxdZh.mjs.map +0 -1
  1010. package/dist/kinds-D1A-00-F.mjs +0 -974
  1011. package/dist/kinds-D1A-00-F.mjs.map +0 -1
  1012. package/dist/lifecycle-BWtBGNEn.mjs +0 -25
  1013. package/dist/lifecycle-BWtBGNEn.mjs.map +0 -1
  1014. package/dist/load-BR1NEa_3.mjs +0 -28
  1015. package/dist/load-BR1NEa_3.mjs.map +0 -1
  1016. package/dist/loader-D4edocWH.mjs +0 -1197
  1017. package/dist/loader-D4edocWH.mjs.map +0 -1
  1018. package/dist/loops-DLaHFrvI.mjs +0 -205
  1019. package/dist/loops-DLaHFrvI.mjs.map +0 -1
  1020. package/dist/manifest-builder-8jsSLR7s.mjs +0 -189
  1021. package/dist/manifest-builder-8jsSLR7s.mjs.map +0 -1
  1022. package/dist/manifest-schema-DcZjRNEv.mjs +0 -496
  1023. package/dist/manifest-schema-DcZjRNEv.mjs.map +0 -1
  1024. package/dist/marketplace-CNxjq10S.mjs +0 -257
  1025. package/dist/marketplace-CNxjq10S.mjs.map +0 -1
  1026. package/dist/media-3v7mqAVX.mjs +0 -294
  1027. package/dist/media-3v7mqAVX.mjs.map +0 -1
  1028. package/dist/media-Bs6qmlVl.mjs +0 -408
  1029. package/dist/media-Bs6qmlVl.mjs.map +0 -1
  1030. package/dist/media-CputjGE1.mjs +0 -373
  1031. package/dist/media-CputjGE1.mjs.map +0 -1
  1032. package/dist/media-allowlist-isqF1gAh.mjs +0 -44
  1033. package/dist/media-allowlist-isqF1gAh.mjs.map +0 -1
  1034. package/dist/media-folders-D2VdVBf6.mjs +0 -210
  1035. package/dist/media-folders-D2VdVBf6.mjs.map +0 -1
  1036. package/dist/media-url-DbkMY3y6.mjs +0 -43
  1037. package/dist/media-url-DbkMY3y6.mjs.map +0 -1
  1038. package/dist/media-usage-activation-BaT4AlNI.mjs +0 -78
  1039. package/dist/media-usage-activation-BaT4AlNI.mjs.map +0 -1
  1040. package/dist/media-usage-v43L0kR_.mjs +0 -282
  1041. package/dist/media-usage-v43L0kR_.mjs.map +0 -1
  1042. package/dist/media-usage-work-CY8gIeU-.mjs +0 -151
  1043. package/dist/media-usage-work-CY8gIeU-.mjs.map +0 -1
  1044. package/dist/media-usage-work-VO108Q9E.mjs +0 -1015
  1045. package/dist/media-usage-work-VO108Q9E.mjs.map +0 -1
  1046. package/dist/menus-BYyeRemR.mjs +0 -3647
  1047. package/dist/menus-BYyeRemR.mjs.map +0 -1
  1048. package/dist/menus-mC_XTxD7.mjs +0 -92
  1049. package/dist/menus-mC_XTxD7.mjs.map +0 -1
  1050. package/dist/menus-trvc6_fW.mjs +0 -753
  1051. package/dist/menus-trvc6_fW.mjs.map +0 -1
  1052. package/dist/mime-IZf-LHIS.mjs +0 -36
  1053. package/dist/mime-IZf-LHIS.mjs.map +0 -1
  1054. package/dist/mode-B9-gMXL9.mjs +0 -23
  1055. package/dist/mode-B9-gMXL9.mjs.map +0 -1
  1056. package/dist/node-sqlite-compat-DztcWs4y.mjs +0 -63
  1057. package/dist/node-sqlite-compat-DztcWs4y.mjs.map +0 -1
  1058. package/dist/oauth-authorization-BIHy9SGU.mjs +0 -274
  1059. package/dist/oauth-authorization-BIHy9SGU.mjs.map +0 -1
  1060. package/dist/oauth-clients-BZWZvKXa.mjs +0 -266
  1061. package/dist/oauth-clients-BZWZvKXa.mjs.map +0 -1
  1062. package/dist/oauth-state-store-CxXTjXdI.mjs +0 -50
  1063. package/dist/oauth-state-store-CxXTjXdI.mjs.map +0 -1
  1064. package/dist/oauth-user-lookup-GWojfxRl.mjs +0 -26
  1065. package/dist/oauth-user-lookup-GWojfxRl.mjs.map +0 -1
  1066. package/dist/options-DRF6dlXY.d.mts +0 -81
  1067. package/dist/options-DRF6dlXY.d.mts.map +0 -1
  1068. package/dist/ownership-Bd77AmJz.mjs +0 -12
  1069. package/dist/ownership-Bd77AmJz.mjs.map +0 -1
  1070. package/dist/parse-5Y0W39xR.mjs +0 -81
  1071. package/dist/parse-5Y0W39xR.mjs.map +0 -1
  1072. package/dist/parse-BPblgoa-.d.mts +0 -172
  1073. package/dist/parse-BPblgoa-.d.mts.map +0 -1
  1074. package/dist/passkey-config-PiQ5cBnt.mjs +0 -46
  1075. package/dist/passkey-config-PiQ5cBnt.mjs.map +0 -1
  1076. package/dist/paths-DkS74lBM.mjs +0 -77
  1077. package/dist/paths-DkS74lBM.mjs.map +0 -1
  1078. package/dist/placeholder-Bez2282x.d.mts +0 -306
  1079. package/dist/placeholder-Bez2282x.d.mts.map +0 -1
  1080. package/dist/plan-Lw7iGnGD.mjs +0 -135
  1081. package/dist/plan-Lw7iGnGD.mjs.map +0 -1
  1082. package/dist/plugins-D7xSh1Lu.mjs +0 -277
  1083. package/dist/plugins-D7xSh1Lu.mjs.map +0 -1
  1084. package/dist/policy-DMRiMdLn.mjs +0 -45
  1085. package/dist/policy-DMRiMdLn.mjs.map +0 -1
  1086. package/dist/portable-text-kcyN3F-a.mjs +0 -307
  1087. package/dist/portable-text-kcyN3F-a.mjs.map +0 -1
  1088. package/dist/preview--2VDLaND.mjs +0 -107
  1089. package/dist/preview--2VDLaND.mjs.map +0 -1
  1090. package/dist/protocol-FvwLA8P-.d.mts +0 -61
  1091. package/dist/protocol-FvwLA8P-.d.mts.map +0 -1
  1092. package/dist/public-submission-BRyK76U8.mjs +0 -250
  1093. package/dist/public-submission-BRyK76U8.mjs.map +0 -1
  1094. package/dist/public-url-7j0cpCFc.mjs +0 -101
  1095. package/dist/public-url-7j0cpCFc.mjs.map +0 -1
  1096. package/dist/query-BRNTde3V.mjs +0 -41
  1097. package/dist/query-BRNTde3V.mjs.map +0 -1
  1098. package/dist/query-DyYYWOKk.mjs +0 -1161
  1099. package/dist/query-DyYYWOKk.mjs.map +0 -1
  1100. package/dist/rate-limit-D0BcE76H.mjs +0 -120
  1101. package/dist/rate-limit-D0BcE76H.mjs.map +0 -1
  1102. package/dist/receipt-C4icyHlC.mjs +0 -43
  1103. package/dist/receipt-C4icyHlC.mjs.map +0 -1
  1104. package/dist/redirect-9DbtxSNG.mjs +0 -19
  1105. package/dist/redirect-9DbtxSNG.mjs.map +0 -1
  1106. package/dist/redirect-BvFKh8Sz.mjs +0 -416
  1107. package/dist/redirect-BvFKh8Sz.mjs.map +0 -1
  1108. package/dist/redirects-1nhdEaTq.mjs +0 -148
  1109. package/dist/redirects-1nhdEaTq.mjs.map +0 -1
  1110. package/dist/redirects-D1yMnSR9.mjs +0 -446
  1111. package/dist/redirects-D1yMnSR9.mjs.map +0 -1
  1112. package/dist/registry-CzPJNu3H.mjs +0 -8366
  1113. package/dist/registry-CzPJNu3H.mjs.map +0 -1
  1114. package/dist/relations-C8JpSkU6.mjs +0 -776
  1115. package/dist/relations-C8JpSkU6.mjs.map +0 -1
  1116. package/dist/request-meta-Bs60XW1m.mjs +0 -141
  1117. package/dist/request-meta-Bs60XW1m.mjs.map +0 -1
  1118. package/dist/resolve-BHWgMU_X.mjs +0 -100
  1119. package/dist/resolve-BHWgMU_X.mjs.map +0 -1
  1120. package/dist/revision-CGkQA0e5.mjs +0 -366
  1121. package/dist/revision-CGkQA0e5.mjs.map +0 -1
  1122. package/dist/route-wire-ClUVQduA.mjs +0 -197
  1123. package/dist/route-wire-ClUVQduA.mjs.map +0 -1
  1124. package/dist/routes-D2GFl3B7.mjs +0 -272
  1125. package/dist/routes-D2GFl3B7.mjs.map +0 -1
  1126. package/dist/runner-CLpxmhl8.mjs +0 -6197
  1127. package/dist/runner-CLpxmhl8.mjs.map +0 -1
  1128. package/dist/runner-CWl76CH3.d.mts +0 -68
  1129. package/dist/runner-CWl76CH3.d.mts.map +0 -1
  1130. package/dist/schema-27XefSYG.mjs +0 -13
  1131. package/dist/schema-27XefSYG.mjs.map +0 -1
  1132. package/dist/schema-Btvj3BMh.mjs +0 -815
  1133. package/dist/schema-Btvj3BMh.mjs.map +0 -1
  1134. package/dist/scopes-DGCj6K4p.mjs +0 -34
  1135. package/dist/scopes-DGCj6K4p.mjs.map +0 -1
  1136. package/dist/search-pZRRmWjh.mjs +0 -448
  1137. package/dist/search-pZRRmWjh.mjs.map +0 -1
  1138. package/dist/secrets-CIi0nFiR.mjs +0 -341
  1139. package/dist/secrets-CIi0nFiR.mjs.map +0 -1
  1140. package/dist/sections-CIhqs3Ao.mjs +0 -346
  1141. package/dist/sections-CIhqs3Ao.mjs.map +0 -1
  1142. package/dist/seo-DifeiGdl.mjs +0 -114
  1143. package/dist/seo-DifeiGdl.mjs.map +0 -1
  1144. package/dist/seo-DpYxmGaL.mjs +0 -133
  1145. package/dist/seo-DpYxmGaL.mjs.map +0 -1
  1146. package/dist/service-COVdVpSK.mjs +0 -150
  1147. package/dist/service-COVdVpSK.mjs.map +0 -1
  1148. package/dist/session-user-C6IEjuty.mjs +0 -61
  1149. package/dist/session-user-C6IEjuty.mjs.map +0 -1
  1150. package/dist/settings-CwcrX-Ay.mjs +0 -61
  1151. package/dist/settings-CwcrX-Ay.mjs.map +0 -1
  1152. package/dist/settings-D_cJtT48.mjs +0 -439
  1153. package/dist/settings-D_cJtT48.mjs.map +0 -1
  1154. package/dist/settings-tnPQN3Z2.mjs +0 -51
  1155. package/dist/settings-tnPQN3Z2.mjs.map +0 -1
  1156. package/dist/setup-complete-BOrI10UY.mjs +0 -65
  1157. package/dist/setup-complete-BOrI10UY.mjs.map +0 -1
  1158. package/dist/setup-nonce-0XTBLTsX.mjs +0 -25
  1159. package/dist/setup-nonce-0XTBLTsX.mjs.map +0 -1
  1160. package/dist/single-flight-cache-B5O2qhO1.mjs +0 -104
  1161. package/dist/single-flight-cache-B5O2qhO1.mjs.map +0 -1
  1162. package/dist/site-settings-B7vGFRDT.mjs +0 -50
  1163. package/dist/site-settings-B7vGFRDT.mjs.map +0 -1
  1164. package/dist/site-url-wEYRMHBv.mjs +0 -16
  1165. package/dist/site-url-wEYRMHBv.mjs.map +0 -1
  1166. package/dist/snapshot-W36KbLmc.mjs +0 -414
  1167. package/dist/snapshot-W36KbLmc.mjs.map +0 -1
  1168. package/dist/ssrf-CRJ-xom5.mjs +0 -406
  1169. package/dist/ssrf-CRJ-xom5.mjs.map +0 -1
  1170. package/dist/stage-DA0NrTRZ.mjs +0 -662
  1171. package/dist/stage-DA0NrTRZ.mjs.map +0 -1
  1172. package/dist/staged-Bw5eHbKS.mjs +0 -686
  1173. package/dist/staged-Bw5eHbKS.mjs.map +0 -1
  1174. package/dist/state-BTlprvUF.mjs +0 -153
  1175. package/dist/state-BTlprvUF.mjs.map +0 -1
  1176. package/dist/status-C6IrSLMT.mjs +0 -30
  1177. package/dist/status-C6IrSLMT.mjs.map +0 -1
  1178. package/dist/storage-query-CdVF2bng.d.mts +0 -1614
  1179. package/dist/storage-query-CdVF2bng.d.mts.map +0 -1
  1180. package/dist/tar-BGOZARjy.mjs +0 -449
  1181. package/dist/tar-BGOZARjy.mjs.map +0 -1
  1182. package/dist/target-YhYH_0uc.mjs +0 -27
  1183. package/dist/target-YhYH_0uc.mjs.map +0 -1
  1184. package/dist/taxonomies-DK_XBrmT.mjs +0 -697
  1185. package/dist/taxonomies-DK_XBrmT.mjs.map +0 -1
  1186. package/dist/taxonomies-S1M3rUC0.mjs +0 -939
  1187. package/dist/taxonomies-S1M3rUC0.mjs.map +0 -1
  1188. package/dist/taxonomy-BesdHIwi.mjs +0 -525
  1189. package/dist/taxonomy-BesdHIwi.mjs.map +0 -1
  1190. package/dist/tokens-B_ffPF1q.mjs +0 -171
  1191. package/dist/tokens-B_ffPF1q.mjs.map +0 -1
  1192. package/dist/transfer-9fVSxyrV.mjs +0 -166
  1193. package/dist/transfer-9fVSxyrV.mjs.map +0 -1
  1194. package/dist/transfer-B7LUTaYD.mjs +0 -8855
  1195. package/dist/transfer-B7LUTaYD.mjs.map +0 -1
  1196. package/dist/transfer-download-BdNq4VWN.mjs +0 -33
  1197. package/dist/transfer-download-BdNq4VWN.mjs.map +0 -1
  1198. package/dist/transformations-BtQdvyly.mjs +0 -196
  1199. package/dist/transformations-BtQdvyly.mjs.map +0 -1
  1200. package/dist/transport-CriYXY1c.mjs +0 -136
  1201. package/dist/transport-CriYXY1c.mjs.map +0 -1
  1202. package/dist/transport-SnhS6xku.d.mts +0 -42
  1203. package/dist/transport-SnhS6xku.d.mts.map +0 -1
  1204. package/dist/trusted-proxy-C0eHXPd-.mjs +0 -51
  1205. package/dist/trusted-proxy-C0eHXPd-.mjs.map +0 -1
  1206. package/dist/turnstile-BNPrWd1e.mjs +0 -53
  1207. package/dist/turnstile-BNPrWd1e.mjs.map +0 -1
  1208. package/dist/types-B8sF_kE5.d.mts +0 -287
  1209. package/dist/types-B8sF_kE5.d.mts.map +0 -1
  1210. package/dist/types-BYVIYOlD.d.mts +0 -1720
  1211. package/dist/types-BYVIYOlD.d.mts.map +0 -1
  1212. package/dist/types-Bs4bi95j.d.mts +0 -374
  1213. package/dist/types-Bs4bi95j.d.mts.map +0 -1
  1214. package/dist/types-CGuODCZi.d.mts +0 -198
  1215. package/dist/types-CGuODCZi.d.mts.map +0 -1
  1216. package/dist/types-CVsmpTcU.mjs +0 -18
  1217. package/dist/types-CVsmpTcU.mjs.map +0 -1
  1218. package/dist/types-ClFEExxn.mjs +0 -37
  1219. package/dist/types-ClFEExxn.mjs.map +0 -1
  1220. package/dist/types-D994zUWB.d.mts +0 -85
  1221. package/dist/types-D994zUWB.d.mts.map +0 -1
  1222. package/dist/types-DAj1ByJQ.d.mts +0 -125
  1223. package/dist/types-DAj1ByJQ.d.mts.map +0 -1
  1224. package/dist/types-Dlv6esp4.mjs +0 -77
  1225. package/dist/types-Dlv6esp4.mjs.map +0 -1
  1226. package/dist/types-Dr1LVwL7.d.mts +0 -363
  1227. package/dist/types-Dr1LVwL7.d.mts.map +0 -1
  1228. package/dist/types-MN9bOQ1g.d.mts +0 -198
  1229. package/dist/types-MN9bOQ1g.d.mts.map +0 -1
  1230. package/dist/types-d2Szb1oz.mjs +0 -16
  1231. package/dist/types-d2Szb1oz.mjs.map +0 -1
  1232. package/dist/types-ibtP7GEA.d.mts +0 -896
  1233. package/dist/types-ibtP7GEA.d.mts.map +0 -1
  1234. package/dist/types-j6MBDjlZ.mjs +0 -103
  1235. package/dist/types-j6MBDjlZ.mjs.map +0 -1
  1236. package/dist/update-check-D8No-E5s.mjs +0 -161
  1237. package/dist/update-check-D8No-E5s.mjs.map +0 -1
  1238. package/dist/upload-attempts-BodUoFBu.mjs +0 -32
  1239. package/dist/upload-attempts-BodUoFBu.mjs.map +0 -1
  1240. package/dist/url-pattern-DGAG6ZP2.mjs +0 -41
  1241. package/dist/url-pattern-DGAG6ZP2.mjs.map +0 -1
  1242. package/dist/user-BOvuF1sQ.mjs +0 -171
  1243. package/dist/user-BOvuF1sQ.mjs.map +0 -1
  1244. package/dist/utils-Dr01wRKt.mjs +0 -439
  1245. package/dist/utils-Dr01wRKt.mjs.map +0 -1
  1246. package/dist/validate-BttYU7NK.mjs +0 -516
  1247. package/dist/validate-BttYU7NK.mjs.map +0 -1
  1248. package/dist/validate-Df09inbC.d.mts +0 -468
  1249. package/dist/validate-Df09inbC.d.mts.map +0 -1
  1250. package/dist/validation-DH2WRwWO.mjs +0 -219
  1251. package/dist/validation-DH2WRwWO.mjs.map +0 -1
  1252. package/dist/version-BbygH8CT.mjs +0 -7
  1253. package/dist/version-BbygH8CT.mjs.map +0 -1
  1254. package/dist/version-CseoDDOd.mjs +0 -9
  1255. package/dist/version-CseoDDOd.mjs.map +0 -1
  1256. package/dist/virtual-modules-82GlnQyG.mjs +0 -516
  1257. package/dist/virtual-modules-82GlnQyG.mjs.map +0 -1
  1258. package/dist/widgets-DMAgGcQt.mjs +0 -126
  1259. package/dist/widgets-DMAgGcQt.mjs.map +0 -1
  1260. package/dist/wxr-taxonomies-Bi5kFSxQ.mjs +0 -453
  1261. package/dist/wxr-taxonomies-Bi5kFSxQ.mjs.map +0 -1
  1262. package/dist/wxr-taxonomies-y_FpYlDn.d.mts +0 -34
  1263. package/dist/wxr-taxonomies-y_FpYlDn.d.mts.map +0 -1
  1264. package/dist/zod-generator-DnfG5sGQ.mjs +0 -424
  1265. package/dist/zod-generator-DnfG5sGQ.mjs.map +0 -1
  1266. /package/dist/{api-tokens-B4COohsb.mjs → api-tokens-BLz2MtQs.mjs} +0 -0
  1267. /package/dist/{ssrf-sC4_5rxm.mjs → ssrf-tA45vIPX.mjs} +0 -0
@@ -0,0 +1,516 @@
1
+ import { t as defaultSeed } from "./default-DaoYyFRS.mjs";
2
+ import { createRequire } from "node:module";
3
+ import { resolve } from "node:path";
4
+ import { readFileSync } from "node:fs";
5
+
6
+ //#region src/astro/integration/virtual-modules.ts
7
+ /**
8
+ * Virtual Module Generators
9
+ *
10
+ * Functions that generate virtual module content for Vite.
11
+ * These modules statically import configured dependencies
12
+ * so Vite can properly resolve and bundle them.
13
+ */
14
+ const TS_SOURCE_EXT_RE = /^\.(ts|tsx|mts|cts|jsx)$/;
15
+ /** Pattern to remove scoped package prefix from plugin ID */
16
+ const SCOPED_PREFIX_PATTERN = /^@[^/]+\/plugin-/;
17
+ /** Pattern to remove emdash-plugin- prefix from plugin ID */
18
+ const EMDASH_PREFIX_PATTERN = /^emdash-plugin-/;
19
+ const VIRTUAL_CONFIG_ID = "virtual:emdash/config";
20
+ const RESOLVED_VIRTUAL_CONFIG_ID = "\0" + VIRTUAL_CONFIG_ID;
21
+ const VIRTUAL_DIALECT_ID = "virtual:emdash/dialect";
22
+ const RESOLVED_VIRTUAL_DIALECT_ID = "\0" + VIRTUAL_DIALECT_ID;
23
+ const VIRTUAL_STORAGE_ID = "virtual:emdash/storage";
24
+ const RESOLVED_VIRTUAL_STORAGE_ID = "\0" + VIRTUAL_STORAGE_ID;
25
+ const VIRTUAL_OBJECT_CACHE_ID = "virtual:emdash/object-cache";
26
+ const RESOLVED_VIRTUAL_OBJECT_CACHE_ID = "\0" + VIRTUAL_OBJECT_CACHE_ID;
27
+ const VIRTUAL_ADMIN_REGISTRY_ID = "virtual:emdash/admin-registry";
28
+ const RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID = "\0" + VIRTUAL_ADMIN_REGISTRY_ID;
29
+ const VIRTUAL_PLUGINS_ID = "virtual:emdash/plugins";
30
+ const RESOLVED_VIRTUAL_PLUGINS_ID = "\0" + VIRTUAL_PLUGINS_ID;
31
+ const VIRTUAL_SANDBOX_RUNNER_ID = "virtual:emdash/sandbox-runner";
32
+ const RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID = "\0" + VIRTUAL_SANDBOX_RUNNER_ID;
33
+ const VIRTUAL_SANDBOXED_PLUGINS_ID = "virtual:emdash/sandboxed-plugins";
34
+ const RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID = "\0" + VIRTUAL_SANDBOXED_PLUGINS_ID;
35
+ const VIRTUAL_AUTH_ID = "virtual:emdash/auth";
36
+ const RESOLVED_VIRTUAL_AUTH_ID = "\0" + VIRTUAL_AUTH_ID;
37
+ const VIRTUAL_AUTH_PROVIDERS_ID = "virtual:emdash/auth-providers";
38
+ const RESOLVED_VIRTUAL_AUTH_PROVIDERS_ID = "\0" + VIRTUAL_AUTH_PROVIDERS_ID;
39
+ const VIRTUAL_MEDIA_PROVIDERS_ID = "virtual:emdash/media-providers";
40
+ const RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID = "\0" + VIRTUAL_MEDIA_PROVIDERS_ID;
41
+ const VIRTUAL_BLOCK_COMPONENTS_ID = "virtual:emdash/block-components";
42
+ const RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID = "\0" + VIRTUAL_BLOCK_COMPONENTS_ID;
43
+ const VIRTUAL_SEED_ID = "virtual:emdash/seed";
44
+ const RESOLVED_VIRTUAL_SEED_ID = "\0" + VIRTUAL_SEED_ID;
45
+ const VIRTUAL_WAIT_UNTIL_ID = "virtual:emdash/wait-until";
46
+ const RESOLVED_VIRTUAL_WAIT_UNTIL_ID = "\0" + VIRTUAL_WAIT_UNTIL_ID;
47
+ const VIRTUAL_SCHEDULER_ID = "virtual:emdash/scheduler";
48
+ const RESOLVED_VIRTUAL_SCHEDULER_ID = "\0" + VIRTUAL_SCHEDULER_ID;
49
+ const VIRTUAL_ENV_ID = "virtual:emdash/env";
50
+ const RESOLVED_VIRTUAL_ENV_ID = "\0" + VIRTUAL_ENV_ID;
51
+ const VIRTUAL_BUILD_ID = "virtual:emdash/build";
52
+ const RESOLVED_VIRTUAL_BUILD_ID = "\0" + VIRTUAL_BUILD_ID;
53
+ /**
54
+ * Generates the config virtual module.
55
+ */
56
+ function generateConfigModule(serializableConfig) {
57
+ return `export default ${JSON.stringify(serializableConfig)};`;
58
+ }
59
+ /**
60
+ * Generates the dialect virtual module.
61
+ *
62
+ * Adapters that set `supportsRequestScope: true` on their descriptor are
63
+ * expected to export `createRequestScopedDb` from their runtime entrypoint;
64
+ * the generator re-exports it so middleware can ask for a per-request Kysely
65
+ * (used for D1 Sessions API, bookmark cookies, read-replica routing). Other
66
+ * adapters get a stub that returns null.
67
+ *
68
+ * Adapters independently opt into the cold-start coalescing dialect. Keeping
69
+ * this capability explicit prevents bundlers from probing exports that do not
70
+ * exist on SQLite, libSQL, PostgreSQL, or other adapters.
71
+ */
72
+ function generateDialectModule(opts) {
73
+ const { entrypoint, supportsRequestScope, supportsCoalescing, supportsCollectionDeletionGuard } = opts;
74
+ if (!entrypoint) return [
75
+ `export const createDialect = undefined;`,
76
+ `export const dialectType = "sqlite";`,
77
+ `export const createRequestScopedDb = (_opts) => null;`,
78
+ `export const createCoalescingDialect = undefined;`,
79
+ `export const executeCollectionDeletionGuard = undefined;`
80
+ ].join("\n");
81
+ const type = opts.type ?? "sqlite";
82
+ const coalescingExport = supportsCoalescing ? `import { createCoalescingDialect as _createCoalescingDialect } from "${entrypoint}";
83
+ export const createCoalescingDialect = _createCoalescingDialect;` : `export const createCoalescingDialect = undefined;`;
84
+ const collectionDeletionExport = supportsCollectionDeletionGuard ? `export { executeCollectionDeletionGuard } from "${entrypoint}";` : `export const executeCollectionDeletionGuard = undefined;`;
85
+ if (supportsRequestScope) return `
86
+ import { createDialect as _createDialect } from "${entrypoint}";
87
+ export { createRequestScopedDb } from "${entrypoint}";
88
+ ${coalescingExport}
89
+ ${collectionDeletionExport}
90
+ export const createDialect = _createDialect;
91
+ export const dialectType = ${JSON.stringify(type)};
92
+ `;
93
+ return `
94
+ import { createDialect as _createDialect } from "${entrypoint}";
95
+ ${coalescingExport}
96
+ ${collectionDeletionExport}
97
+ export const createDialect = _createDialect;
98
+ export const dialectType = ${JSON.stringify(type)};
99
+ export const createRequestScopedDb = (_opts) => null;
100
+ `;
101
+ }
102
+ /**
103
+ * Generates the storage virtual module.
104
+ * Statically imports the configured storage adapter.
105
+ */
106
+ function generateStorageModule(storageEntrypoint) {
107
+ if (!storageEntrypoint) return `export const createStorage = undefined;`;
108
+ return `
109
+ import { createStorage as _createStorage } from "${storageEntrypoint}";
110
+ export const createStorage = _createStorage;
111
+ `;
112
+ }
113
+ /**
114
+ * Generates the object-cache virtual module.
115
+ *
116
+ * Statically imports the configured object-cache backend's `createObjectCache`
117
+ * factory and embeds its serializable config. When no object cache is
118
+ * configured, exports `undefined` so the runtime read-through layer becomes a
119
+ * transparent passthrough (cache off by default).
120
+ */
121
+ function generateObjectCacheModule(entrypoint, config) {
122
+ if (!entrypoint) return [`export const createObjectCache = undefined;`, `export const objectCacheConfig = undefined;`].join("\n");
123
+ return `
124
+ import { createObjectCache as _createObjectCache } from "${entrypoint}";
125
+ export const createObjectCache = _createObjectCache;
126
+ export const objectCacheConfig = ${JSON.stringify(config ?? {})};
127
+ `;
128
+ }
129
+ /**
130
+ * Generates the auth virtual module.
131
+ * Statically imports the configured auth provider.
132
+ */
133
+ function generateAuthModule(authEntrypoint) {
134
+ if (!authEntrypoint) return `export const authenticate = undefined;`;
135
+ return `
136
+ import { authenticate as _authenticate } from "${authEntrypoint}";
137
+ export const authenticate = _authenticate;
138
+ `;
139
+ }
140
+ /**
141
+ * Generates the auth providers module.
142
+ *
143
+ * Statically imports each auth provider's `adminEntry` module and exports
144
+ * a registry keyed by provider ID. The admin UI uses this to render
145
+ * provider-specific login buttons/forms and setup steps.
146
+ *
147
+ * Follows the same pattern as `generateAdminRegistryModule()` for plugins.
148
+ */
149
+ function generateAuthProvidersModule(descriptors) {
150
+ const withAdmin = descriptors.filter((d) => d.adminEntry);
151
+ if (withAdmin.length === 0) return `export const authProviders = {};`;
152
+ const imports = [];
153
+ const entries = [];
154
+ withAdmin.forEach((descriptor, index) => {
155
+ const varName = `authProvider${index}`;
156
+ imports.push(`import * as ${varName} from ${JSON.stringify(descriptor.adminEntry)};`);
157
+ entries.push(` ${JSON.stringify(descriptor.id)}: { ...${varName}, id: ${JSON.stringify(descriptor.id)}, label: ${JSON.stringify(descriptor.label)} },`);
158
+ });
159
+ return `
160
+ // Auto-generated auth provider registry
161
+ ${imports.join("\n")}
162
+
163
+ export const authProviders = {
164
+ ${entries.join("\n")}
165
+ };
166
+ `;
167
+ }
168
+ /**
169
+ * Generates the plugins module.
170
+ * Imports and instantiates all plugins at runtime.
171
+ *
172
+ * Handles two plugin formats:
173
+ * - **Native**: imports `createPlugin` and calls it with options
174
+ * - **Standard**: imports the default export and wraps it with `adaptSandboxEntry`
175
+ *
176
+ * The format is determined by `descriptor.format`:
177
+ * - `"standard"` -- uses adaptSandboxEntry
178
+ * - `"native"` or undefined -- uses createPlugin
179
+ *
180
+ * This is critical for Cloudflare Workers where globals don't persist
181
+ * between build time and runtime.
182
+ */
183
+ function generatePluginsModule(descriptors) {
184
+ if (descriptors.length === 0) return `export const plugins = [];`;
185
+ const imports = [];
186
+ const instantiations = [];
187
+ let needsAdapter = false;
188
+ descriptors.forEach((descriptor, index) => {
189
+ if (!descriptor.entrypoint) throw new Error(`[emdash] Plugin "${descriptor.id}" has no \`entrypoint\`. The astro integration's \`plugins: []\` requires plugins that resolve to a file/package entrypoint so they can be bundled at build time; an in-process \`definePlugin({...})\` result passed directly is not supported. Move the plugin into its own module and reference it via a factory that returns a descriptor with an \`entrypoint\` (e.g. \`plugins: [myPlugin()]\`).`);
190
+ if (descriptor.format === "standard") {
191
+ needsAdapter = true;
192
+ const varName = `pluginDef${index}`;
193
+ imports.push(`import ${varName} from "${descriptor.entrypoint}";`);
194
+ instantiations.push(`adaptSandboxEntry(${varName}, ${JSON.stringify({
195
+ id: descriptor.id,
196
+ version: descriptor.version,
197
+ capabilities: descriptor.capabilities,
198
+ allowedHosts: descriptor.allowedHosts,
199
+ storage: descriptor.storage,
200
+ adminPages: descriptor.adminPages,
201
+ adminWidgets: descriptor.adminWidgets,
202
+ editorPanels: descriptor.editorPanels,
203
+ editorActions: descriptor.editorActions,
204
+ settingsSchema: descriptor.settingsSchema,
205
+ portableTextBlocks: descriptor.portableTextBlocks,
206
+ fieldWidgets: descriptor.fieldWidgets,
207
+ mcp: descriptor.mcp
208
+ })})`);
209
+ } else {
210
+ const varName = `createPlugin${index}`;
211
+ imports.push(`import { createPlugin as ${varName} } from "${descriptor.entrypoint}";`);
212
+ instantiations.push(`${varName}(${JSON.stringify(descriptor.options ?? {})})`);
213
+ }
214
+ });
215
+ return `
216
+ // Auto-generated plugins module
217
+ // Imports and instantiates all configured plugins at runtime
218
+
219
+ ${needsAdapter ? `import { adaptSandboxEntry } from "emdash/internal/plugins/adapt-sandbox-entry";\n` : ""}${imports.join("\n")}
220
+
221
+ /** Resolved plugins array */
222
+ export const plugins = [
223
+ ${instantiations.join(",\n ")}
224
+ ];
225
+ `;
226
+ }
227
+ /**
228
+ * Generates the admin registry module.
229
+ * Uses adminEntry from plugin descriptors to statically import admin modules.
230
+ */
231
+ function generateAdminRegistryModule(descriptors) {
232
+ const adminDescriptors = descriptors.filter((d) => d.adminEntry);
233
+ if (adminDescriptors.length === 0) return `export const pluginAdmins = {};`;
234
+ const imports = [];
235
+ const entries = [];
236
+ adminDescriptors.forEach((descriptor, index) => {
237
+ const varName = `admin${index}`;
238
+ const pluginId = descriptor.id ?? descriptor.entrypoint.replace(SCOPED_PREFIX_PATTERN, "").replace(EMDASH_PREFIX_PATTERN, "");
239
+ imports.push(`import * as ${varName} from "${descriptor.adminEntry}";`);
240
+ entries.push(` "${pluginId}": ${varName},`);
241
+ });
242
+ return `
243
+ // Auto-generated plugin admin registry
244
+ ${imports.join("\n")}
245
+
246
+ export const pluginAdmins = {
247
+ ${entries.join("\n")}
248
+ };
249
+ `;
250
+ }
251
+ /**
252
+ * Generates the sandbox runner module.
253
+ * Imports the configured sandbox runner factory or provides a noop default.
254
+ *
255
+ * When sandbox is explicitly false (debugging escape hatch), we still mark
256
+ * sandboxEnabled = true so sandboxed plugin entries are loaded, but we use
257
+ * the noop runner which falls through to in-process loading via adaptSandboxEntry.
258
+ */
259
+ function generateSandboxRunnerModule(sandboxRunner, sandbox) {
260
+ if (!sandboxRunner) return `
261
+ // No sandbox runner configured - sandboxed plugins disabled
262
+ import { createNoopSandboxRunner } from "emdash";
263
+
264
+ export const createSandboxRunner = createNoopSandboxRunner;
265
+ export const sandboxEnabled = false;
266
+ `;
267
+ if (sandbox === false) return `
268
+ // Sandbox explicitly disabled (sandbox: false) - plugins run in-process
269
+ import { createNoopSandboxRunner } from "emdash";
270
+
271
+ export const createSandboxRunner = createNoopSandboxRunner;
272
+ export const sandboxEnabled = true;
273
+ export const sandboxBypassed = true;
274
+ `;
275
+ return `
276
+ // Auto-generated sandbox runner module
277
+ import { createSandboxRunner as _createSandboxRunner } from "${sandboxRunner}";
278
+
279
+ export const createSandboxRunner = _createSandboxRunner;
280
+ export const sandboxEnabled = true;
281
+ `;
282
+ }
283
+ /**
284
+ * Generates the media providers module.
285
+ * Imports and instantiates configured media providers at runtime.
286
+ */
287
+ function generateMediaProvidersModule(descriptors) {
288
+ const localDisabled = descriptors.some((d) => d.id === "local" && d.config.enabled === false);
289
+ const imports = [];
290
+ const entries = [];
291
+ if (!localDisabled) {
292
+ imports.push(`import { createMediaProvider as createLocalProvider } from "emdash/internal/media/local-runtime";`);
293
+ entries.push(`{
294
+ id: "local",
295
+ name: "Library",
296
+ icon: "folder",
297
+ capabilities: { browse: true, search: false, upload: true, delete: true },
298
+ createProvider: (ctx) => createLocalProvider({ ...ctx, enabled: true }),
299
+ }`);
300
+ }
301
+ descriptors.filter((d) => d.id !== "local" || d.config.enabled !== false).filter((d) => d.id !== "local").forEach((descriptor, index) => {
302
+ const varName = `createProvider${index}`;
303
+ imports.push(`import { createMediaProvider as ${varName} } from "${descriptor.entrypoint}";`);
304
+ entries.push(`{
305
+ id: ${JSON.stringify(descriptor.id)},
306
+ name: ${JSON.stringify(descriptor.name)},
307
+ icon: ${JSON.stringify(descriptor.icon)},
308
+ capabilities: ${JSON.stringify(descriptor.capabilities)},
309
+ createProvider: (ctx) => ${varName}({ ...${JSON.stringify(descriptor.config)}, ...ctx }),
310
+ }`);
311
+ });
312
+ return `
313
+ // Auto-generated media providers module
314
+ ${imports.join("\n")}
315
+
316
+ /** Media provider descriptors with factory functions */
317
+ export const mediaProviders = [
318
+ ${entries.join(",\n ")}
319
+ ];
320
+ `;
321
+ }
322
+ /**
323
+ * Generates the block components module.
324
+ * Collects and merges `blockComponents` exports from plugin component entries.
325
+ */
326
+ function generateBlockComponentsModule(descriptors) {
327
+ const withComponents = descriptors.filter((d) => d.componentsEntry);
328
+ if (withComponents.length === 0) return `export const pluginBlockComponents = {};`;
329
+ const imports = [];
330
+ const spreads = [];
331
+ withComponents.forEach((d, i) => {
332
+ imports.push(`import { blockComponents as bc${i} } from "${d.componentsEntry}";`);
333
+ spreads.push(`...bc${i}`);
334
+ });
335
+ return `${imports.join("\n")}\nexport const pluginBlockComponents = { ${spreads.join(", ")} };`;
336
+ }
337
+ /**
338
+ * Generates the wait-until virtual module.
339
+ *
340
+ * Under @astrojs/cloudflare, re-exports `waitUntil` from `cloudflare:workers`
341
+ * so `after(fn)` in core can extend the worker's lifetime past the response
342
+ * for deferred bookkeeping. For any other adapter, exports `undefined` —
343
+ * Node's long-lived event loop keeps deferred promises running without a
344
+ * lifetime extender.
345
+ *
346
+ * Keeping the adapter check here — rather than in core — means core itself
347
+ * has no Cloudflare-specific imports or code paths.
348
+ */
349
+ function generateWaitUntilModule(adapterName) {
350
+ if (adapterName === "@astrojs/cloudflare") return `export { waitUntil } from "cloudflare:workers";`;
351
+ return `export const waitUntil = undefined;`;
352
+ }
353
+ /**
354
+ * Generates the env virtual module.
355
+ *
356
+ * Under @astrojs/cloudflare, re-exports `env` from `cloudflare:workers` so
357
+ * routes can read Worker bindings/secrets without touching
358
+ * `Astro.locals.runtime.env`, which Astro 6+ removed (accessing it throws
359
+ * rather than returning undefined, so `locals.runtime?.env` optional-chaining
360
+ * doesn't help -- see #1736). For any other adapter, exports `undefined` so
361
+ * callers fall back to `import.meta.env`. Mirrors generateWaitUntilModule:
362
+ * core stays adapter-agnostic, with no direct `cloudflare:workers` import
363
+ * that would fail to resolve under a Node build.
364
+ */
365
+ function generateEnvModule(adapterName) {
366
+ if (adapterName === "@astrojs/cloudflare") return `export { env } from "cloudflare:workers";`;
367
+ return `export const env = undefined;`;
368
+ }
369
+ /**
370
+ * Generates the build virtual module.
371
+ *
372
+ * Content-hashed `/_astro/*` names make the response depend on the build, not
373
+ * only on the content. Exposing the build timestamp lets the middleware fold
374
+ * that dimension into the cache validator, so a code-only deploy stops
375
+ * answering conditional requests with 304 while the assets the cached HTML
376
+ * references are already gone.
377
+ */
378
+ function generateBuildModule(buildTime) {
379
+ return `export const buildTime = ${buildTime};`;
380
+ }
381
+ /**
382
+ * Generates the scheduler virtual module.
383
+ *
384
+ * Decides — at build time, from the Astro adapter — whether the runtime gets a
385
+ * long-lived timer heartbeat. A *production* Cloudflare build has no persistent
386
+ * timers, so the Worker's `scheduled()` handler (a Cron Trigger) drives
387
+ * `runScheduledTasks()` instead and this exports `null`. Every other case — any
388
+ * other adapter (Node, Bun), and crucially local `astro dev` even under the
389
+ * Cloudflare adapter (no Cron Trigger fires in dev) — gets a `NodeCronScheduler`
390
+ * factory so plugin cron, scheduled publishing, and cleanup still run.
391
+ *
392
+ * Keeping the adapter check here — rather than in core's runtime — means the
393
+ * runtime has no Cloudflare-specific code path; it just calls `createScheduler`
394
+ * if one was injected. Mirrors the wait-until module's approach.
395
+ */
396
+ function generateSchedulerModule(adapterName, command) {
397
+ if (adapterName === "@astrojs/cloudflare" && command !== "serve") return `// Serverless build: an external Cron Trigger drives scheduled work.
398
+ export const createScheduler = null;
399
+ `;
400
+ return `// Long-lived runtime (or local dev): drive scheduled work from an in-process timer.
401
+ import { NodeCronScheduler } from "emdash";
402
+
403
+ export function createScheduler(executor) {
404
+ return new NodeCronScheduler(executor);
405
+ }
406
+ `;
407
+ }
408
+ /**
409
+ * Generates the seed virtual module.
410
+ * Reads the user's seed file at build time (in Node context) and embeds it,
411
+ * so the runtime doesn't need filesystem access (required for workerd).
412
+ *
413
+ * Search order:
414
+ * 1. `.emdash/seed.json`
415
+ * 2. `package.json` → `emdash.seed` reference
416
+ * 3. `seed/seed.json` (conventional template path)
417
+ *
418
+ * Exports `userSeed` (user's seed or null) and `seed` (user's seed or default).
419
+ *
420
+ * When no user seed is found, falls back to the built-in default seed and
421
+ * (if `warnOnFallback` is true) logs a warning so misconfiguration is visible
422
+ * during `astro dev`. Build/preview/sync stay silent so sites that
423
+ * intentionally use the default seed (e.g. the blank template) don't
424
+ * generate noisy logs.
425
+ */
426
+ function generateSeedModule(projectRoot, warnOnFallback = false) {
427
+ let userSeedJson = null;
428
+ try {
429
+ const content = readFileSync(resolve(projectRoot, ".emdash", "seed.json"), "utf-8");
430
+ JSON.parse(content);
431
+ userSeedJson = content;
432
+ } catch {}
433
+ if (!userSeedJson) try {
434
+ const pkgContent = readFileSync(resolve(projectRoot, "package.json"), "utf-8");
435
+ const pkg = JSON.parse(pkgContent);
436
+ if (pkg.emdash?.seed) {
437
+ const content = readFileSync(resolve(projectRoot, pkg.emdash.seed), "utf-8");
438
+ JSON.parse(content);
439
+ userSeedJson = content;
440
+ }
441
+ } catch {}
442
+ if (!userSeedJson) try {
443
+ const content = readFileSync(resolve(projectRoot, "seed", "seed.json"), "utf-8");
444
+ JSON.parse(content);
445
+ userSeedJson = content;
446
+ } catch {}
447
+ if (userSeedJson) return [`export const userSeed = ${userSeedJson};`, `export const seed = userSeed;`].join("\n");
448
+ if (warnOnFallback) console.warn("[emdash] No user seed found at .emdash/seed.json, package.json#emdash.seed, or seed/seed.json. Falling back to the built-in default seed; the setup wizard will not offer demo content for this site.");
449
+ return [`export const userSeed = null;`, `export const seed = ${JSON.stringify(defaultSeed)};`].join("\n");
450
+ }
451
+ /**
452
+ * Resolve a module specifier from the project's context.
453
+ * Uses Node.js require.resolve with the project root as base.
454
+ */
455
+ function resolveModulePathFromProject(specifier, projectRoot) {
456
+ return createRequire(resolve(projectRoot, "package.json")).resolve(specifier);
457
+ }
458
+ /**
459
+ * Generates the sandboxed plugins module.
460
+ * Resolves plugin entrypoints to files, reads them, and embeds the code.
461
+ * Notifies the caller about each resolved entry so build tools can watch it.
462
+ *
463
+ * At runtime, middleware uses SandboxRunner to load these into isolates.
464
+ */
465
+ function generateSandboxedPluginsModule(sandboxed, projectRoot, onEntryResolved) {
466
+ if (sandboxed.length === 0) return `
467
+ // No sandboxed plugins configured
468
+ export const sandboxedPlugins = [];
469
+ `;
470
+ const pluginEntries = [];
471
+ for (const descriptor of sandboxed) {
472
+ const bundleSpecifier = descriptor.entrypoint;
473
+ const filePath = resolveModulePathFromProject(bundleSpecifier, projectRoot);
474
+ const ext = filePath.slice(filePath.lastIndexOf("."));
475
+ if (TS_SOURCE_EXT_RE.test(ext)) throw new Error(`Sandboxed plugin "${descriptor.id}" entrypoint "${bundleSpecifier}" resolves to unbuilt source (${filePath}). Sandbox entries must be pre-built JavaScript. Ensure the plugin's package.json exports point to built files (e.g. dist/*.mjs) and run the plugin's build step before building the site.`);
476
+ onEntryResolved?.(filePath);
477
+ const code = readFileSync(filePath, "utf-8");
478
+ pluginEntries.push(`{
479
+ id: ${JSON.stringify(descriptor.id)},
480
+ version: ${JSON.stringify(descriptor.version)},
481
+ options: ${JSON.stringify(descriptor.options ?? {})},
482
+ capabilities: ${JSON.stringify(descriptor.capabilities ?? [])},
483
+ allowedHosts: ${JSON.stringify(descriptor.allowedHosts ?? [])},
484
+ storage: ${JSON.stringify(descriptor.storage ?? {})},
485
+ mcp: ${JSON.stringify(descriptor.mcp)},
486
+ routes: ${JSON.stringify(descriptor.routes ?? [])},
487
+ hooks: ${JSON.stringify(descriptor.hooks ?? [])},
488
+ adminPages: ${JSON.stringify(descriptor.adminPages ?? [])},
489
+ adminWidgets: ${JSON.stringify(descriptor.adminWidgets ?? [])},
490
+ editorPanels: ${JSON.stringify(descriptor.editorPanels ?? [])},
491
+ editorActions: ${JSON.stringify(descriptor.editorActions ?? [])},
492
+ settingsSchema: ${JSON.stringify(descriptor.settingsSchema)},
493
+ portableTextBlocks: ${JSON.stringify(descriptor.portableTextBlocks ?? [])},
494
+ fieldWidgets: ${JSON.stringify(descriptor.fieldWidgets ?? [])},
495
+ adminEntry: ${JSON.stringify(descriptor.adminEntry)},
496
+ // Code read from: ${filePath}
497
+ code: ${JSON.stringify(code)},
498
+ }`);
499
+ }
500
+ return `
501
+ // Auto-generated sandboxed plugins module
502
+ // Plugin code is embedded at build time
503
+
504
+ /**
505
+ * Sandboxed plugin entries with embedded code.
506
+ * Loaded at runtime via SandboxRunner.
507
+ */
508
+ export const sandboxedPlugins = [
509
+ ${pluginEntries.join(",\n ")}
510
+ ];
511
+ `;
512
+ }
513
+
514
+ //#endregion
515
+ export { VIRTUAL_SANDBOX_RUNNER_ID as A, generateConfigModule as B, VIRTUAL_CONFIG_ID as C, VIRTUAL_OBJECT_CACHE_ID as D, VIRTUAL_MEDIA_PROVIDERS_ID as E, generateAdminRegistryModule as F, generatePluginsModule as G, generateEnvModule as H, generateAuthModule as I, generateSchedulerModule as J, generateSandboxRunnerModule as K, generateAuthProvidersModule as L, VIRTUAL_SEED_ID as M, VIRTUAL_STORAGE_ID as N, VIRTUAL_PLUGINS_ID as O, VIRTUAL_WAIT_UNTIL_ID as P, generateBlockComponentsModule as R, VIRTUAL_BUILD_ID as S, VIRTUAL_ENV_ID as T, generateMediaProvidersModule as U, generateDialectModule as V, generateObjectCacheModule as W, generateStorageModule as X, generateSeedModule as Y, generateWaitUntilModule as Z, RESOLVED_VIRTUAL_WAIT_UNTIL_ID as _, RESOLVED_VIRTUAL_BUILD_ID as a, VIRTUAL_AUTH_PROVIDERS_ID as b, RESOLVED_VIRTUAL_ENV_ID as c, RESOLVED_VIRTUAL_PLUGINS_ID as d, RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID as f, RESOLVED_VIRTUAL_STORAGE_ID as g, RESOLVED_VIRTUAL_SEED_ID as h, RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID as i, VIRTUAL_SCHEDULER_ID as j, VIRTUAL_SANDBOXED_PLUGINS_ID as k, RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID as l, RESOLVED_VIRTUAL_SCHEDULER_ID as m, RESOLVED_VIRTUAL_AUTH_ID as n, RESOLVED_VIRTUAL_CONFIG_ID as o, RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID as p, generateSandboxedPluginsModule as q, RESOLVED_VIRTUAL_AUTH_PROVIDERS_ID as r, RESOLVED_VIRTUAL_DIALECT_ID as s, RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID as t, RESOLVED_VIRTUAL_OBJECT_CACHE_ID as u, VIRTUAL_ADMIN_REGISTRY_ID as v, VIRTUAL_DIALECT_ID as w, VIRTUAL_BLOCK_COMPONENTS_ID as x, VIRTUAL_AUTH_ID as y, generateBuildModule as z };
516
+ //# sourceMappingURL=virtual-modules-B6vJW15k.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-modules-B6vJW15k.mjs","names":[],"sources":["../src/astro/integration/virtual-modules.ts"],"sourcesContent":["/**\n * Virtual Module Generators\n *\n * Functions that generate virtual module content for Vite.\n * These modules statically import configured dependencies\n * so Vite can properly resolve and bundle them.\n */\n\nimport { readFileSync } from \"node:fs\";\nimport { createRequire } from \"node:module\";\nimport { resolve } from \"node:path\";\n\nimport type { AuthProviderDescriptor } from \"../../auth/types.js\";\nimport type { MediaProviderDescriptor } from \"../../media/types.js\";\nimport { defaultSeed } from \"../../seed/default.js\";\nimport type { PluginDescriptor } from \"./runtime.js\";\n\nconst TS_SOURCE_EXT_RE = /^\\.(ts|tsx|mts|cts|jsx)$/;\n\n/** Pattern to remove scoped package prefix from plugin ID */\nconst SCOPED_PREFIX_PATTERN = /^@[^/]+\\/plugin-/;\n\n/** Pattern to remove emdash-plugin- prefix from plugin ID */\nconst EMDASH_PREFIX_PATTERN = /^emdash-plugin-/;\n\n// Virtual module IDs\nexport const VIRTUAL_CONFIG_ID = \"virtual:emdash/config\";\nexport const RESOLVED_VIRTUAL_CONFIG_ID = \"\\0\" + VIRTUAL_CONFIG_ID;\n\nexport const VIRTUAL_DIALECT_ID = \"virtual:emdash/dialect\";\nexport const RESOLVED_VIRTUAL_DIALECT_ID = \"\\0\" + VIRTUAL_DIALECT_ID;\n\nexport const VIRTUAL_STORAGE_ID = \"virtual:emdash/storage\";\nexport const RESOLVED_VIRTUAL_STORAGE_ID = \"\\0\" + VIRTUAL_STORAGE_ID;\n\nexport const VIRTUAL_OBJECT_CACHE_ID = \"virtual:emdash/object-cache\";\nexport const RESOLVED_VIRTUAL_OBJECT_CACHE_ID = \"\\0\" + VIRTUAL_OBJECT_CACHE_ID;\n\nexport const VIRTUAL_ADMIN_REGISTRY_ID = \"virtual:emdash/admin-registry\";\nexport const RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID = \"\\0\" + VIRTUAL_ADMIN_REGISTRY_ID;\n\nexport const VIRTUAL_PLUGINS_ID = \"virtual:emdash/plugins\";\nexport const RESOLVED_VIRTUAL_PLUGINS_ID = \"\\0\" + VIRTUAL_PLUGINS_ID;\n\nexport const VIRTUAL_SANDBOX_RUNNER_ID = \"virtual:emdash/sandbox-runner\";\nexport const RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID = \"\\0\" + VIRTUAL_SANDBOX_RUNNER_ID;\n\nexport const VIRTUAL_SANDBOXED_PLUGINS_ID = \"virtual:emdash/sandboxed-plugins\";\nexport const RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID = \"\\0\" + VIRTUAL_SANDBOXED_PLUGINS_ID;\n\nexport const VIRTUAL_AUTH_ID = \"virtual:emdash/auth\";\nexport const RESOLVED_VIRTUAL_AUTH_ID = \"\\0\" + VIRTUAL_AUTH_ID;\n\nexport const VIRTUAL_AUTH_PROVIDERS_ID = \"virtual:emdash/auth-providers\";\nexport const RESOLVED_VIRTUAL_AUTH_PROVIDERS_ID = \"\\0\" + VIRTUAL_AUTH_PROVIDERS_ID;\n\nexport const VIRTUAL_MEDIA_PROVIDERS_ID = \"virtual:emdash/media-providers\";\nexport const RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID = \"\\0\" + VIRTUAL_MEDIA_PROVIDERS_ID;\n\nexport const VIRTUAL_BLOCK_COMPONENTS_ID = \"virtual:emdash/block-components\";\nexport const RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID = \"\\0\" + VIRTUAL_BLOCK_COMPONENTS_ID;\n\nexport const VIRTUAL_SEED_ID = \"virtual:emdash/seed\";\nexport const RESOLVED_VIRTUAL_SEED_ID = \"\\0\" + VIRTUAL_SEED_ID;\n\nexport const VIRTUAL_WAIT_UNTIL_ID = \"virtual:emdash/wait-until\";\nexport const RESOLVED_VIRTUAL_WAIT_UNTIL_ID = \"\\0\" + VIRTUAL_WAIT_UNTIL_ID;\n\nexport const VIRTUAL_SCHEDULER_ID = \"virtual:emdash/scheduler\";\nexport const RESOLVED_VIRTUAL_SCHEDULER_ID = \"\\0\" + VIRTUAL_SCHEDULER_ID;\n\nexport const VIRTUAL_ENV_ID = \"virtual:emdash/env\";\nexport const RESOLVED_VIRTUAL_ENV_ID = \"\\0\" + VIRTUAL_ENV_ID;\n\nexport const VIRTUAL_BUILD_ID = \"virtual:emdash/build\";\nexport const RESOLVED_VIRTUAL_BUILD_ID = \"\\0\" + VIRTUAL_BUILD_ID;\n\n/**\n * Generates the config virtual module.\n */\nexport function generateConfigModule(serializableConfig: Record<string, unknown>): string {\n\treturn `export default ${JSON.stringify(serializableConfig)};`;\n}\n\n/**\n * Generates the dialect virtual module.\n *\n * Adapters that set `supportsRequestScope: true` on their descriptor are\n * expected to export `createRequestScopedDb` from their runtime entrypoint;\n * the generator re-exports it so middleware can ask for a per-request Kysely\n * (used for D1 Sessions API, bookmark cookies, read-replica routing). Other\n * adapters get a stub that returns null.\n *\n * Adapters independently opt into the cold-start coalescing dialect. Keeping\n * this capability explicit prevents bundlers from probing exports that do not\n * exist on SQLite, libSQL, PostgreSQL, or other adapters.\n */\nexport function generateDialectModule(opts: {\n\tentrypoint?: string;\n\ttype?: string;\n\tsupportsRequestScope: boolean;\n\tsupportsCoalescing: boolean;\n\tsupportsCollectionDeletionGuard: boolean;\n}): string {\n\tconst { entrypoint, supportsRequestScope, supportsCoalescing, supportsCollectionDeletionGuard } =\n\t\topts;\n\tif (!entrypoint) {\n\t\treturn [\n\t\t\t`export const createDialect = undefined;`,\n\t\t\t`export const dialectType = \"sqlite\";`,\n\t\t\t`export const createRequestScopedDb = (_opts) => null;`,\n\t\t\t`export const createCoalescingDialect = undefined;`,\n\t\t\t`export const executeCollectionDeletionGuard = undefined;`,\n\t\t].join(\"\\n\");\n\t}\n\tconst type = opts.type ?? \"sqlite\";\n\n\tconst coalescingExport = supportsCoalescing\n\t\t? `import { createCoalescingDialect as _createCoalescingDialect } from \"${entrypoint}\";\nexport const createCoalescingDialect = _createCoalescingDialect;`\n\t\t: `export const createCoalescingDialect = undefined;`;\n\tconst collectionDeletionExport = supportsCollectionDeletionGuard\n\t\t? `export { executeCollectionDeletionGuard } from \"${entrypoint}\";`\n\t\t: `export const executeCollectionDeletionGuard = undefined;`;\n\n\tif (supportsRequestScope) {\n\t\treturn `\nimport { createDialect as _createDialect } from \"${entrypoint}\";\nexport { createRequestScopedDb } from \"${entrypoint}\";\n${coalescingExport}\n${collectionDeletionExport}\nexport const createDialect = _createDialect;\nexport const dialectType = ${JSON.stringify(type)};\n`;\n\t}\n\n\treturn `\nimport { createDialect as _createDialect } from \"${entrypoint}\";\n${coalescingExport}\n${collectionDeletionExport}\nexport const createDialect = _createDialect;\nexport const dialectType = ${JSON.stringify(type)};\nexport const createRequestScopedDb = (_opts) => null;\n`;\n}\n\n/**\n * Generates the storage virtual module.\n * Statically imports the configured storage adapter.\n */\nexport function generateStorageModule(storageEntrypoint?: string): string {\n\tif (!storageEntrypoint) {\n\t\treturn `export const createStorage = undefined;`;\n\t}\n\treturn `\nimport { createStorage as _createStorage } from \"${storageEntrypoint}\";\nexport const createStorage = _createStorage;\n`;\n}\n\n/**\n * Generates the object-cache virtual module.\n *\n * Statically imports the configured object-cache backend's `createObjectCache`\n * factory and embeds its serializable config. When no object cache is\n * configured, exports `undefined` so the runtime read-through layer becomes a\n * transparent passthrough (cache off by default).\n */\nexport function generateObjectCacheModule(\n\tentrypoint?: string,\n\tconfig?: Record<string, unknown>,\n): string {\n\tif (!entrypoint) {\n\t\treturn [\n\t\t\t`export const createObjectCache = undefined;`,\n\t\t\t`export const objectCacheConfig = undefined;`,\n\t\t].join(\"\\n\");\n\t}\n\treturn `\nimport { createObjectCache as _createObjectCache } from \"${entrypoint}\";\nexport const createObjectCache = _createObjectCache;\nexport const objectCacheConfig = ${JSON.stringify(config ?? {})};\n`;\n}\n\n/**\n * Generates the auth virtual module.\n * Statically imports the configured auth provider.\n */\nexport function generateAuthModule(authEntrypoint?: string): string {\n\tif (!authEntrypoint) {\n\t\treturn `export const authenticate = undefined;`;\n\t}\n\treturn `\nimport { authenticate as _authenticate } from \"${authEntrypoint}\";\nexport const authenticate = _authenticate;\n`;\n}\n\n/**\n * Generates the auth providers module.\n *\n * Statically imports each auth provider's `adminEntry` module and exports\n * a registry keyed by provider ID. The admin UI uses this to render\n * provider-specific login buttons/forms and setup steps.\n *\n * Follows the same pattern as `generateAdminRegistryModule()` for plugins.\n */\nexport function generateAuthProvidersModule(descriptors: AuthProviderDescriptor[]): string {\n\tconst withAdmin = descriptors.filter((d) => d.adminEntry);\n\n\tif (withAdmin.length === 0) {\n\t\treturn `export const authProviders = {};`;\n\t}\n\n\tconst imports: string[] = [];\n\tconst entries: string[] = [];\n\n\twithAdmin.forEach((descriptor, index) => {\n\t\tconst varName = `authProvider${index}`;\n\t\timports.push(`import * as ${varName} from ${JSON.stringify(descriptor.adminEntry)};`);\n\t\tentries.push(\n\t\t\t` ${JSON.stringify(descriptor.id)}: { ...${varName}, id: ${JSON.stringify(descriptor.id)}, label: ${JSON.stringify(descriptor.label)} },`,\n\t\t);\n\t});\n\n\treturn `\n// Auto-generated auth provider registry\n${imports.join(\"\\n\")}\n\nexport const authProviders = {\n${entries.join(\"\\n\")}\n};\n`;\n}\n\n/**\n * Generates the plugins module.\n * Imports and instantiates all plugins at runtime.\n *\n * Handles two plugin formats:\n * - **Native**: imports `createPlugin` and calls it with options\n * - **Standard**: imports the default export and wraps it with `adaptSandboxEntry`\n *\n * The format is determined by `descriptor.format`:\n * - `\"standard\"` -- uses adaptSandboxEntry\n * - `\"native\"` or undefined -- uses createPlugin\n *\n * This is critical for Cloudflare Workers where globals don't persist\n * between build time and runtime.\n */\nexport function generatePluginsModule(descriptors: PluginDescriptor[]): string {\n\tif (descriptors.length === 0) {\n\t\treturn `export const plugins = [];`;\n\t}\n\n\tconst imports: string[] = [];\n\tconst instantiations: string[] = [];\n\n\t// Track whether we need the adapter import\n\tlet needsAdapter = false;\n\n\tdescriptors.forEach((descriptor, index) => {\n\t\t// Every `plugins: []` entry must resolve to a file/package entrypoint that\n\t\t// can be statically imported and bundled at build time. An in-process\n\t\t// `definePlugin({...})` result passed directly has no entrypoint; without\n\t\t// this guard the generator emitted `import pluginDefN from \"undefined\";`,\n\t\t// which failed deep in Rollup with `failed to resolve import \"undefined\"`\n\t\t// (#1416). Fail fast with an actionable message instead.\n\t\tif (!descriptor.entrypoint) {\n\t\t\tthrow new Error(\n\t\t\t\t`[emdash] Plugin \"${descriptor.id}\" has no \\`entrypoint\\`. The astro integration's ` +\n\t\t\t\t\t`\\`plugins: []\\` requires plugins that resolve to a file/package entrypoint so they can be ` +\n\t\t\t\t\t`bundled at build time; an in-process \\`definePlugin({...})\\` result passed directly is not ` +\n\t\t\t\t\t`supported. Move the plugin into its own module and reference it via a factory that returns ` +\n\t\t\t\t\t`a descriptor with an \\`entrypoint\\` (e.g. \\`plugins: [myPlugin()]\\`).`,\n\t\t\t);\n\t\t}\n\t\tif (descriptor.format === \"standard\") {\n\t\t\t// Standard format: import default export, wrap with adaptSandboxEntry\n\t\t\tneedsAdapter = true;\n\t\t\tconst varName = `pluginDef${index}`;\n\t\t\timports.push(`import ${varName} from \"${descriptor.entrypoint}\";`);\n\t\t\tinstantiations.push(\n\t\t\t\t`adaptSandboxEntry(${varName}, ${JSON.stringify({\n\t\t\t\t\tid: descriptor.id,\n\t\t\t\t\tversion: descriptor.version,\n\t\t\t\t\tcapabilities: descriptor.capabilities,\n\t\t\t\t\tallowedHosts: descriptor.allowedHosts,\n\t\t\t\t\tstorage: descriptor.storage,\n\t\t\t\t\tadminPages: descriptor.adminPages,\n\t\t\t\t\tadminWidgets: descriptor.adminWidgets,\n\t\t\t\t\teditorPanels: descriptor.editorPanels,\n\t\t\t\t\teditorActions: descriptor.editorActions,\n\t\t\t\t\tsettingsSchema: descriptor.settingsSchema,\n\t\t\t\t\tportableTextBlocks: descriptor.portableTextBlocks,\n\t\t\t\t\tfieldWidgets: descriptor.fieldWidgets,\n\t\t\t\t\tmcp: descriptor.mcp,\n\t\t\t\t})})`,\n\t\t\t);\n\t\t} else {\n\t\t\t// Native format: import createPlugin and call with options\n\t\t\tconst varName = `createPlugin${index}`;\n\t\t\timports.push(`import { createPlugin as ${varName} } from \"${descriptor.entrypoint}\";`);\n\t\t\tinstantiations.push(`${varName}(${JSON.stringify(descriptor.options ?? {})})`);\n\t\t}\n\t});\n\n\tconst adapterImport = needsAdapter\n\t\t? `import { adaptSandboxEntry } from \"emdash/internal/plugins/adapt-sandbox-entry\";\\n`\n\t\t: \"\";\n\n\treturn `\n// Auto-generated plugins module\n// Imports and instantiates all configured plugins at runtime\n\n${adapterImport}${imports.join(\"\\n\")}\n\n/** Resolved plugins array */\nexport const plugins = [\n ${instantiations.join(\",\\n \")}\n];\n`;\n}\n\n/**\n * Generates the admin registry module.\n * Uses adminEntry from plugin descriptors to statically import admin modules.\n */\nexport function generateAdminRegistryModule(descriptors: PluginDescriptor[]): string {\n\t// Filter to descriptors with admin entries\n\tconst adminDescriptors = descriptors.filter((d) => d.adminEntry);\n\n\tif (adminDescriptors.length === 0) {\n\t\treturn `export const pluginAdmins = {};`;\n\t}\n\n\tconst imports: string[] = [];\n\tconst entries: string[] = [];\n\n\tadminDescriptors.forEach((descriptor, index) => {\n\t\tconst varName = `admin${index}`;\n\t\t// Use explicit ID from descriptor if available, otherwise derive from entrypoint\n\t\tconst pluginId =\n\t\t\tdescriptor.id ??\n\t\t\tdescriptor.entrypoint.replace(SCOPED_PREFIX_PATTERN, \"\").replace(EMDASH_PREFIX_PATTERN, \"\");\n\n\t\timports.push(`import * as ${varName} from \"${descriptor.adminEntry}\";`);\n\t\tentries.push(` \"${pluginId}\": ${varName},`);\n\t});\n\n\treturn `\n// Auto-generated plugin admin registry\n${imports.join(\"\\n\")}\n\nexport const pluginAdmins = {\n${entries.join(\"\\n\")}\n};\n`;\n}\n\n/**\n * Generates the sandbox runner module.\n * Imports the configured sandbox runner factory or provides a noop default.\n *\n * When sandbox is explicitly false (debugging escape hatch), we still mark\n * sandboxEnabled = true so sandboxed plugin entries are loaded, but we use\n * the noop runner which falls through to in-process loading via adaptSandboxEntry.\n */\nexport function generateSandboxRunnerModule(sandboxRunner?: string, sandbox?: boolean): string {\n\tif (!sandboxRunner) {\n\t\t// No sandbox runner configured - sandboxed plugins disabled\n\t\treturn `\n// No sandbox runner configured - sandboxed plugins disabled\nimport { createNoopSandboxRunner } from \"emdash\";\n\nexport const createSandboxRunner = createNoopSandboxRunner;\nexport const sandboxEnabled = false;\n`;\n\t}\n\n\tif (sandbox === false) {\n\t\t// sandbox: false escape hatch - plugins are loaded but run in-process\n\t\t// (no isolation, for debugging)\n\t\treturn `\n// Sandbox explicitly disabled (sandbox: false) - plugins run in-process\nimport { createNoopSandboxRunner } from \"emdash\";\n\nexport const createSandboxRunner = createNoopSandboxRunner;\nexport const sandboxEnabled = true;\nexport const sandboxBypassed = true;\n`;\n\t}\n\n\treturn `\n// Auto-generated sandbox runner module\nimport { createSandboxRunner as _createSandboxRunner } from \"${sandboxRunner}\";\n\nexport const createSandboxRunner = _createSandboxRunner;\nexport const sandboxEnabled = true;\n`;\n}\n\n/**\n * Generates the media providers module.\n * Imports and instantiates configured media providers at runtime.\n */\nexport function generateMediaProvidersModule(descriptors: MediaProviderDescriptor[]): string {\n\t// Always include local provider by default unless explicitly disabled\n\tconst localDisabled = descriptors.some((d) => d.id === \"local\" && d.config.enabled === false);\n\n\tconst imports: string[] = [];\n\tconst entries: string[] = [];\n\n\t// Add local provider first if not disabled\n\tif (!localDisabled) {\n\t\timports.push(\n\t\t\t`import { createMediaProvider as createLocalProvider } from \"emdash/internal/media/local-runtime\";`,\n\t\t);\n\t\tentries.push(`{\n\tid: \"local\",\n\tname: \"Library\",\n\ticon: \"folder\",\n\tcapabilities: { browse: true, search: false, upload: true, delete: true },\n\tcreateProvider: (ctx) => createLocalProvider({ ...ctx, enabled: true }),\n}`);\n\t}\n\n\t// Add custom providers\n\tdescriptors\n\t\t.filter((d) => d.id !== \"local\" || d.config.enabled !== false)\n\t\t.filter((d) => d.id !== \"local\") // Skip local if we already added it\n\t\t.forEach((descriptor, index) => {\n\t\t\tconst varName = `createProvider${index}`;\n\t\t\timports.push(`import { createMediaProvider as ${varName} } from \"${descriptor.entrypoint}\";`);\n\t\t\tentries.push(`{\n\tid: ${JSON.stringify(descriptor.id)},\n\tname: ${JSON.stringify(descriptor.name)},\n\ticon: ${JSON.stringify(descriptor.icon)},\n\tcapabilities: ${JSON.stringify(descriptor.capabilities)},\n\tcreateProvider: (ctx) => ${varName}({ ...${JSON.stringify(descriptor.config)}, ...ctx }),\n}`);\n\t\t});\n\n\treturn `\n// Auto-generated media providers module\n${imports.join(\"\\n\")}\n\n/** Media provider descriptors with factory functions */\nexport const mediaProviders = [\n ${entries.join(\",\\n \")}\n];\n`;\n}\n\n/**\n * Generates the block components module.\n * Collects and merges `blockComponents` exports from plugin component entries.\n */\nexport function generateBlockComponentsModule(descriptors: PluginDescriptor[]): string {\n\tconst withComponents = descriptors.filter((d) => d.componentsEntry);\n\tif (withComponents.length === 0) {\n\t\treturn `export const pluginBlockComponents = {};`;\n\t}\n\n\tconst imports: string[] = [];\n\tconst spreads: string[] = [];\n\twithComponents.forEach((d, i) => {\n\t\timports.push(`import { blockComponents as bc${i} } from \"${d.componentsEntry}\";`);\n\t\tspreads.push(`...bc${i}`);\n\t});\n\n\treturn `${imports.join(\"\\n\")}\\nexport const pluginBlockComponents = { ${spreads.join(\", \")} };`;\n}\n\n/**\n * Generates the wait-until virtual module.\n *\n * Under @astrojs/cloudflare, re-exports `waitUntil` from `cloudflare:workers`\n * so `after(fn)` in core can extend the worker's lifetime past the response\n * for deferred bookkeeping. For any other adapter, exports `undefined` —\n * Node's long-lived event loop keeps deferred promises running without a\n * lifetime extender.\n *\n * Keeping the adapter check here — rather than in core — means core itself\n * has no Cloudflare-specific imports or code paths.\n */\nexport function generateWaitUntilModule(adapterName: string | undefined): string {\n\tif (adapterName === \"@astrojs/cloudflare\") {\n\t\treturn `export { waitUntil } from \"cloudflare:workers\";`;\n\t}\n\treturn `export const waitUntil = undefined;`;\n}\n\n/**\n * Generates the env virtual module.\n *\n * Under @astrojs/cloudflare, re-exports `env` from `cloudflare:workers` so\n * routes can read Worker bindings/secrets without touching\n * `Astro.locals.runtime.env`, which Astro 6+ removed (accessing it throws\n * rather than returning undefined, so `locals.runtime?.env` optional-chaining\n * doesn't help -- see #1736). For any other adapter, exports `undefined` so\n * callers fall back to `import.meta.env`. Mirrors generateWaitUntilModule:\n * core stays adapter-agnostic, with no direct `cloudflare:workers` import\n * that would fail to resolve under a Node build.\n */\nexport function generateEnvModule(adapterName: string | undefined): string {\n\tif (adapterName === \"@astrojs/cloudflare\") {\n\t\treturn `export { env } from \"cloudflare:workers\";`;\n\t}\n\treturn `export const env = undefined;`;\n}\n\n/**\n * Generates the build virtual module.\n *\n * Content-hashed `/_astro/*` names make the response depend on the build, not\n * only on the content. Exposing the build timestamp lets the middleware fold\n * that dimension into the cache validator, so a code-only deploy stops\n * answering conditional requests with 304 while the assets the cached HTML\n * references are already gone.\n */\nexport function generateBuildModule(buildTime: number): string {\n\treturn `export const buildTime = ${buildTime};`;\n}\n\n/**\n * Generates the scheduler virtual module.\n *\n * Decides — at build time, from the Astro adapter — whether the runtime gets a\n * long-lived timer heartbeat. A *production* Cloudflare build has no persistent\n * timers, so the Worker's `scheduled()` handler (a Cron Trigger) drives\n * `runScheduledTasks()` instead and this exports `null`. Every other case — any\n * other adapter (Node, Bun), and crucially local `astro dev` even under the\n * Cloudflare adapter (no Cron Trigger fires in dev) — gets a `NodeCronScheduler`\n * factory so plugin cron, scheduled publishing, and cleanup still run.\n *\n * Keeping the adapter check here — rather than in core's runtime — means the\n * runtime has no Cloudflare-specific code path; it just calls `createScheduler`\n * if one was injected. Mirrors the wait-until module's approach.\n */\nexport function generateSchedulerModule(\n\tadapterName: string | undefined,\n\tcommand: \"build\" | \"serve\" | undefined,\n): string {\n\t// Only suppress the timer for an actual Cloudflare *build* — that artifact\n\t// runs in workerd where a Cron Trigger drives scheduled work. In `serve`\n\t// (local dev) nothing fires the Cron Trigger, so fall through to the timer.\n\tif (adapterName === \"@astrojs/cloudflare\" && command !== \"serve\") {\n\t\treturn `// Serverless build: an external Cron Trigger drives scheduled work.\nexport const createScheduler = null;\n`;\n\t}\n\treturn `// Long-lived runtime (or local dev): drive scheduled work from an in-process timer.\nimport { NodeCronScheduler } from \"emdash\";\n\nexport function createScheduler(executor) {\n\treturn new NodeCronScheduler(executor);\n}\n`;\n}\n\n/**\n * Generates the seed virtual module.\n * Reads the user's seed file at build time (in Node context) and embeds it,\n * so the runtime doesn't need filesystem access (required for workerd).\n *\n * Search order:\n * 1. `.emdash/seed.json`\n * 2. `package.json` → `emdash.seed` reference\n * 3. `seed/seed.json` (conventional template path)\n *\n * Exports `userSeed` (user's seed or null) and `seed` (user's seed or default).\n *\n * When no user seed is found, falls back to the built-in default seed and\n * (if `warnOnFallback` is true) logs a warning so misconfiguration is visible\n * during `astro dev`. Build/preview/sync stay silent so sites that\n * intentionally use the default seed (e.g. the blank template) don't\n * generate noisy logs.\n */\nexport function generateSeedModule(projectRoot: string, warnOnFallback = false): string {\n\tlet userSeedJson: string | null = null;\n\n\t// Try .emdash/seed.json\n\ttry {\n\t\tconst seedPath = resolve(projectRoot, \".emdash\", \"seed.json\");\n\t\tconst content = readFileSync(seedPath, \"utf-8\");\n\t\tJSON.parse(content); // validate\n\t\tuserSeedJson = content;\n\t} catch {\n\t\t// Not found, try next\n\t}\n\n\t// Try package.json → emdash.seed reference\n\tif (!userSeedJson) {\n\t\ttry {\n\t\t\tconst pkgPath = resolve(projectRoot, \"package.json\");\n\t\t\tconst pkgContent = readFileSync(pkgPath, \"utf-8\");\n\t\t\tconst pkg: { emdash?: { seed?: string } } = JSON.parse(pkgContent);\n\n\t\t\tif (pkg.emdash?.seed) {\n\t\t\t\tconst seedPath = resolve(projectRoot, pkg.emdash.seed);\n\t\t\t\tconst content = readFileSync(seedPath, \"utf-8\");\n\t\t\t\tJSON.parse(content); // validate\n\t\t\t\tuserSeedJson = content;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Not found\n\t\t}\n\t}\n\n\t// Try conventional seed/seed.json fallback\n\tif (!userSeedJson) {\n\t\ttry {\n\t\t\tconst seedPath = resolve(projectRoot, \"seed\", \"seed.json\");\n\t\t\tconst content = readFileSync(seedPath, \"utf-8\");\n\t\t\tJSON.parse(content); // validate\n\t\t\tuserSeedJson = content;\n\t\t} catch {\n\t\t\t// Not found\n\t\t}\n\t}\n\n\tif (userSeedJson) {\n\t\treturn [`export const userSeed = ${userSeedJson};`, `export const seed = userSeed;`].join(\"\\n\");\n\t}\n\n\t// No user seed — inline the default. Caller (the Vite plugin) gates this\n\t// to dev-only so production builds stay quiet for sites that intentionally\n\t// rely on the default seed.\n\tif (warnOnFallback) {\n\t\tconsole.warn(\n\t\t\t\"[emdash] No user seed found at .emdash/seed.json, package.json#emdash.seed, or seed/seed.json. Falling back to the built-in default seed; the setup wizard will not offer demo content for this site.\",\n\t\t);\n\t}\n\treturn [\n\t\t`export const userSeed = null;`,\n\t\t`export const seed = ${JSON.stringify(defaultSeed)};`,\n\t].join(\"\\n\");\n}\n\n/**\n * Resolve a module specifier from the project's context.\n * Uses Node.js require.resolve with the project root as base.\n */\nfunction resolveModulePathFromProject(specifier: string, projectRoot: string): string {\n\t// Create require from the project's package.json location\n\tconst projectPackageJson = resolve(projectRoot, \"package.json\");\n\tconst require = createRequire(projectPackageJson);\n\treturn require.resolve(specifier);\n}\n\n/**\n * Generates the sandboxed plugins module.\n * Resolves plugin entrypoints to files, reads them, and embeds the code.\n * Notifies the caller about each resolved entry so build tools can watch it.\n *\n * At runtime, middleware uses SandboxRunner to load these into isolates.\n */\nexport function generateSandboxedPluginsModule(\n\tsandboxed: PluginDescriptor[],\n\tprojectRoot: string,\n\tonEntryResolved?: (filePath: string) => void,\n): string {\n\tif (sandboxed.length === 0) {\n\t\treturn `\n// No sandboxed plugins configured\nexport const sandboxedPlugins = [];\n`;\n\t}\n\n\tconst pluginEntries: string[] = [];\n\n\tfor (const descriptor of sandboxed) {\n\t\tconst bundleSpecifier = descriptor.entrypoint;\n\n\t\t// Resolve the bundle to a file path using project's require context\n\t\tconst filePath = resolveModulePathFromProject(bundleSpecifier, projectRoot);\n\n\t\tconst ext = filePath.slice(filePath.lastIndexOf(\".\"));\n\t\tif (TS_SOURCE_EXT_RE.test(ext)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Sandboxed plugin \"${descriptor.id}\" entrypoint \"${bundleSpecifier}\" resolves to ` +\n\t\t\t\t\t`unbuilt source (${filePath}). Sandbox entries must be pre-built JavaScript. ` +\n\t\t\t\t\t`Ensure the plugin's package.json exports point to built files (e.g. dist/*.mjs) ` +\n\t\t\t\t\t`and run the plugin's build step before building the site.`,\n\t\t\t);\n\t\t}\n\n\t\tonEntryResolved?.(filePath);\n\n\t\tconst code = readFileSync(filePath, \"utf-8\");\n\n\t\t// Create the plugin entry with embedded code and sandbox config\n\t\tpluginEntries.push(`{\n id: ${JSON.stringify(descriptor.id)},\n version: ${JSON.stringify(descriptor.version)},\n options: ${JSON.stringify(descriptor.options ?? {})},\n capabilities: ${JSON.stringify(descriptor.capabilities ?? [])},\n allowedHosts: ${JSON.stringify(descriptor.allowedHosts ?? [])},\n storage: ${JSON.stringify(descriptor.storage ?? {})},\n mcp: ${JSON.stringify(descriptor.mcp)},\n routes: ${JSON.stringify(descriptor.routes ?? [])},\n hooks: ${JSON.stringify(descriptor.hooks ?? [])},\n adminPages: ${JSON.stringify(descriptor.adminPages ?? [])},\n adminWidgets: ${JSON.stringify(descriptor.adminWidgets ?? [])},\n editorPanels: ${JSON.stringify(descriptor.editorPanels ?? [])},\n editorActions: ${JSON.stringify(descriptor.editorActions ?? [])},\n settingsSchema: ${JSON.stringify(descriptor.settingsSchema)},\n portableTextBlocks: ${JSON.stringify(descriptor.portableTextBlocks ?? [])},\n fieldWidgets: ${JSON.stringify(descriptor.fieldWidgets ?? [])},\n adminEntry: ${JSON.stringify(descriptor.adminEntry)},\n // Code read from: ${filePath}\n code: ${JSON.stringify(code)},\n }`);\n\t}\n\n\treturn `\n// Auto-generated sandboxed plugins module\n// Plugin code is embedded at build time\n\n/**\n * Sandboxed plugin entries with embedded code.\n * Loaded at runtime via SandboxRunner.\n */\nexport const sandboxedPlugins = [\n ${pluginEntries.join(\",\\n \")}\n];\n`;\n}\n"],"mappings":"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"}