emdash 1.3.1 → 1.4.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 (1338) hide show
  1. package/dist/action-token-SK8zyN7w.mjs +26 -0
  2. package/dist/action-token-SK8zyN7w.mjs.map +1 -0
  3. package/dist/activation-CGlyigmg.mjs +387 -0
  4. package/dist/activation-CGlyigmg.mjs.map +1 -0
  5. package/dist/adapters-D9a1PfqH.d.mts +173 -0
  6. package/dist/adapters-D9a1PfqH.d.mts.map +1 -0
  7. package/dist/after-32yNRvd2.mjs +99 -0
  8. package/dist/after-32yNRvd2.mjs.map +1 -0
  9. package/dist/allowed-origins-CEug-p0t.mjs +116 -0
  10. package/dist/allowed-origins-CEug-p0t.mjs.map +1 -0
  11. package/dist/api/route-utils.d.mts +4 -4
  12. package/dist/api/route-utils.mjs +52 -53
  13. package/dist/api/route-utils.mjs.map +1 -1
  14. package/dist/api/schemas/index.d.mts +1 -1
  15. package/dist/api/schemas/index.mjs +9 -9
  16. package/dist/api--PYoyeTo.mjs +5098 -0
  17. package/dist/api--PYoyeTo.mjs.map +1 -0
  18. package/dist/api-tokens-DqSlkDVI.mjs +9 -0
  19. package/dist/api-tokens-DqSlkDVI.mjs.map +1 -0
  20. package/dist/api-tokens-GNCsIegW.mjs +173 -0
  21. package/dist/api-tokens-GNCsIegW.mjs.map +1 -0
  22. package/dist/apply-DVnupNeS.mjs +1760 -0
  23. package/dist/apply-DVnupNeS.mjs.map +1 -0
  24. package/dist/approvals-DTtYSB27.mjs +460 -0
  25. package/dist/approvals-DTtYSB27.mjs.map +1 -0
  26. package/dist/artifact-fetch-DIh7iyOV.mjs +659 -0
  27. package/dist/artifact-fetch-DIh7iyOV.mjs.map +1 -0
  28. package/dist/artifacts-Dvdp2KK-.mjs +323 -0
  29. package/dist/artifacts-Dvdp2KK-.mjs.map +1 -0
  30. package/dist/astro/index.d.mts +14 -13
  31. package/dist/astro/index.d.mts.map +1 -1
  32. package/dist/astro/index.mjs +52 -12
  33. package/dist/astro/index.mjs.map +1 -1
  34. package/dist/astro/middleware/auth.d.mts +12 -11
  35. package/dist/astro/middleware/auth.d.mts.map +1 -1
  36. package/dist/astro/middleware/auth.mjs +13 -11
  37. package/dist/astro/middleware/auth.mjs.map +1 -1
  38. package/dist/astro/middleware/media-usage-write-fence.mjs +5 -5
  39. package/dist/astro/middleware/redirect.mjs +17 -17
  40. package/dist/astro/middleware/request-context.mjs +12 -7
  41. package/dist/astro/middleware/request-context.mjs.map +1 -1
  42. package/dist/astro/middleware/setup.mjs +1 -1
  43. package/dist/astro/middleware.d.mts +12 -11
  44. package/dist/astro/middleware.d.mts.map +1 -1
  45. package/dist/astro/middleware.mjs +116 -116
  46. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +13 -13
  47. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +13 -13
  48. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +6 -6
  49. package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
  50. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +5 -5
  51. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +15 -15
  52. package/dist/astro/routes/api/admin/byline-fields/index.mjs +15 -15
  53. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +15 -15
  54. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +23 -24
  55. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs.map +1 -1
  56. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +23 -24
  57. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs.map +1 -1
  58. package/dist/astro/routes/api/admin/bylines/index.mjs +23 -24
  59. package/dist/astro/routes/api/admin/bylines/index.mjs.map +1 -1
  60. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +19 -19
  61. package/dist/astro/routes/api/admin/comments/_id_.mjs +8 -8
  62. package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -18
  63. package/dist/astro/routes/api/admin/comments/counts.mjs +8 -8
  64. package/dist/astro/routes/api/admin/comments/index.mjs +18 -18
  65. package/dist/astro/routes/api/admin/core-update.mjs +7 -7
  66. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +5 -5
  67. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +4 -4
  68. package/dist/astro/routes/api/admin/media-usage/activation.mjs +20 -20
  69. package/dist/astro/routes/api/admin/media-usage/collection-deletions/index.mjs +21 -21
  70. package/dist/astro/routes/api/admin/media-usage/collection-deletions/retry.mjs +21 -21
  71. package/dist/astro/routes/api/admin/media-usage/progress.mjs +24 -24
  72. package/dist/astro/routes/api/admin/media-usage/repair.mjs +30 -30
  73. package/dist/astro/routes/api/admin/media-usage/work/index.mjs +21 -21
  74. package/dist/astro/routes/api/admin/media-usage/work/retry.mjs +21 -21
  75. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +5 -5
  76. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +5 -5
  77. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +8 -8
  78. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +8 -8
  79. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +74 -75
  80. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs.map +1 -1
  81. package/dist/astro/routes/api/admin/plugins/_id_/mcp.mjs +6 -6
  82. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs +73 -74
  83. package/dist/astro/routes/api/admin/plugins/_id_/settings.mjs.map +1 -1
  84. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +73 -74
  85. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs.map +1 -1
  86. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +84 -85
  87. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs.map +1 -1
  88. package/dist/astro/routes/api/admin/plugins/index.mjs +74 -75
  89. package/dist/astro/routes/api/admin/plugins/index.mjs.map +1 -1
  90. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +6 -6
  91. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +73 -74
  92. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs.map +1 -1
  93. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +83 -84
  94. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs.map +1 -1
  95. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +73 -74
  96. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs.map +1 -1
  97. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs +73 -74
  98. package/dist/astro/routes/api/admin/plugins/registry/_id_/uninstall.mjs.map +1 -1
  99. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs +85 -86
  100. package/dist/astro/routes/api/admin/plugins/registry/_id_/update.mjs.map +1 -1
  101. package/dist/astro/routes/api/admin/plugins/registry/artifact.mjs +8 -8
  102. package/dist/astro/routes/api/admin/plugins/registry/install.mjs +75 -76
  103. package/dist/astro/routes/api/admin/plugins/registry/install.mjs.map +1 -1
  104. package/dist/astro/routes/api/admin/plugins/registry/publisher-handle.mjs +6 -6
  105. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs +74 -75
  106. package/dist/astro/routes/api/admin/plugins/registry/verify.mjs.map +1 -1
  107. package/dist/astro/routes/api/admin/plugins/updates.mjs +73 -74
  108. package/dist/astro/routes/api/admin/plugins/updates.mjs.map +1 -1
  109. package/dist/astro/routes/api/admin/scheduled-policy-rejections/_collection_/_id_.mjs +5 -5
  110. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +73 -74
  111. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs.map +1 -1
  112. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +6 -6
  113. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +73 -74
  114. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs.map +1 -1
  115. package/dist/astro/routes/api/admin/transfer/_...path_.mjs +3 -3
  116. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs +40 -41
  117. package/dist/astro/routes/api/admin/transfer/approvals/_id_/approve.mjs.map +1 -1
  118. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs +40 -41
  119. package/dist/astro/routes/api/admin/transfer/approvals/_id_/deny.mjs.map +1 -1
  120. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs +42 -43
  121. package/dist/astro/routes/api/admin/transfer/approvals/index.mjs.map +1 -1
  122. package/dist/astro/routes/api/admin/transfer/capabilities.mjs +42 -43
  123. package/dist/astro/routes/api/admin/transfer/capabilities.mjs.map +1 -1
  124. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs +42 -43
  125. package/dist/astro/routes/api/admin/transfer/exports/_id_/advance.mjs.map +1 -1
  126. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs +43 -44
  127. package/dist/astro/routes/api/admin/transfer/exports/_id_/archive.mjs.map +1 -1
  128. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs +43 -44
  129. package/dist/astro/routes/api/admin/transfer/exports/_id_/files/_...path_.mjs.map +1 -1
  130. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs +42 -43
  131. package/dist/astro/routes/api/admin/transfer/exports/_id_/index.mjs.map +1 -1
  132. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs +43 -44
  133. package/dist/astro/routes/api/admin/transfer/exports/_id_/manifest.mjs.map +1 -1
  134. package/dist/astro/routes/api/admin/transfer/exports/index.mjs +44 -45
  135. package/dist/astro/routes/api/admin/transfer/exports/index.mjs.map +1 -1
  136. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs +42 -43
  137. package/dist/astro/routes/api/admin/transfer/imports/_id_/abandon.mjs.map +1 -1
  138. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs +42 -43
  139. package/dist/astro/routes/api/admin/transfer/imports/_id_/advance.mjs.map +1 -1
  140. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs +44 -45
  141. package/dist/astro/routes/api/admin/transfer/imports/_id_/analyze.mjs.map +1 -1
  142. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs +42 -43
  143. package/dist/astro/routes/api/admin/transfer/imports/_id_/cancel.mjs.map +1 -1
  144. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs +44 -45
  145. package/dist/astro/routes/api/admin/transfer/imports/_id_/execute.mjs.map +1 -1
  146. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs +42 -43
  147. package/dist/astro/routes/api/admin/transfer/imports/_id_/files/_...path_.mjs.map +1 -1
  148. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs +42 -43
  149. package/dist/astro/routes/api/admin/transfer/imports/_id_/index.mjs.map +1 -1
  150. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs +44 -45
  151. package/dist/astro/routes/api/admin/transfer/imports/_id_/missing.mjs.map +1 -1
  152. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs +42 -43
  153. package/dist/astro/routes/api/admin/transfer/imports/_id_/plan.mjs.map +1 -1
  154. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs +42 -43
  155. package/dist/astro/routes/api/admin/transfer/imports/_id_/receipt.mjs.map +1 -1
  156. package/dist/astro/routes/api/admin/transfer/imports/index.mjs +44 -45
  157. package/dist/astro/routes/api/admin/transfer/imports/index.mjs.map +1 -1
  158. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  159. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +3 -3
  160. package/dist/astro/routes/api/admin/users/_id_/index.mjs +13 -13
  161. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +5 -5
  162. package/dist/astro/routes/api/admin/users/index.mjs +13 -13
  163. package/dist/astro/routes/api/auth/dev-bypass.mjs +5 -5
  164. package/dist/astro/routes/api/auth/handover.mjs +6 -6
  165. package/dist/astro/routes/api/auth/invite/accept.mjs +3 -3
  166. package/dist/astro/routes/api/auth/invite/complete.mjs +19 -19
  167. package/dist/astro/routes/api/auth/invite/index.mjs +15 -15
  168. package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -16
  169. package/dist/astro/routes/api/auth/logout.mjs +4 -4
  170. package/dist/astro/routes/api/auth/magic-link/send.mjs +18 -18
  171. package/dist/astro/routes/api/auth/magic-link/verify.mjs +15 -15
  172. package/dist/astro/routes/api/auth/me.mjs +14 -14
  173. package/dist/astro/routes/api/auth/mode.mjs +4 -4
  174. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +9 -9
  175. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  176. package/dist/astro/routes/api/auth/passkey/_id_.mjs +13 -13
  177. package/dist/astro/routes/api/auth/passkey/index.mjs +3 -3
  178. package/dist/astro/routes/api/auth/passkey/options.mjs +19 -19
  179. package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -16
  180. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -17
  181. package/dist/astro/routes/api/auth/passkey/verify.mjs +19 -19
  182. package/dist/astro/routes/api/auth/signup/complete.mjs +19 -19
  183. package/dist/astro/routes/api/auth/signup/request.mjs +17 -17
  184. package/dist/astro/routes/api/auth/signup/verify.mjs +3 -3
  185. package/dist/astro/routes/api/calendar.mjs +14 -14
  186. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
  187. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +20 -20
  188. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +4 -4
  189. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +18 -18
  190. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +4 -4
  191. package/dist/astro/routes/api/content/_collection_/_id_/lock.mjs +17 -17
  192. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
  193. package/dist/astro/routes/api/content/_collection_/_id_/plugin-extensions/_pluginId_/_kind_/_extensionId_.mjs +10 -10
  194. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +33 -33
  195. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +18 -18
  196. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/children.mjs +35 -35
  197. package/dist/astro/routes/api/content/_collection_/_id_/references/_relation_/parents.mjs +35 -35
  198. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
  199. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +4 -4
  200. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +18 -18
  201. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +26 -26
  202. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +4 -4
  203. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +18 -18
  204. package/dist/astro/routes/api/content/_collection_/_id_.mjs +18 -18
  205. package/dist/astro/routes/api/content/_collection_/authors.mjs +4 -4
  206. package/dist/astro/routes/api/content/_collection_/index.mjs +14 -14
  207. package/dist/astro/routes/api/content/_collection_/trash.mjs +14 -14
  208. package/dist/astro/routes/api/dashboard.mjs +11 -11
  209. package/dist/astro/routes/api/dev/emails.mjs +4 -4
  210. package/dist/astro/routes/api/dev/scheduled-tasks.mjs +112 -112
  211. package/dist/astro/routes/api/health.mjs +5 -5
  212. package/dist/astro/routes/api/import/probe.d.mts +3 -2
  213. package/dist/astro/routes/api/import/probe.d.mts.map +1 -1
  214. package/dist/astro/routes/api/import/probe.mjs +28 -28
  215. package/dist/astro/routes/api/import/wordpress/analyze.d.mts +4 -3
  216. package/dist/astro/routes/api/import/wordpress/analyze.d.mts.map +1 -1
  217. package/dist/astro/routes/api/import/wordpress/analyze.mjs +6 -28
  218. package/dist/astro/routes/api/import/wordpress/analyze.mjs.map +1 -1
  219. package/dist/astro/routes/api/import/wordpress/execute.d.mts +12 -11
  220. package/dist/astro/routes/api/import/wordpress/execute.d.mts.map +1 -1
  221. package/dist/astro/routes/api/import/wordpress/execute.mjs +26 -27
  222. package/dist/astro/routes/api/import/wordpress/execute.mjs.map +1 -1
  223. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -11
  224. package/dist/astro/routes/api/import/wordpress/media.d.mts.map +1 -1
  225. package/dist/astro/routes/api/import/wordpress/media.mjs +18 -18
  226. package/dist/astro/routes/api/import/wordpress/prepare.mjs +19 -19
  227. package/dist/astro/routes/api/import/wordpress/prepare.mjs.map +1 -1
  228. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +13 -12
  229. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts.map +1 -1
  230. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +29 -29
  231. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +28 -28
  232. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +12 -11
  233. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts.map +1 -1
  234. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +38 -39
  235. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs.map +1 -1
  236. package/dist/astro/routes/api/manifest.mjs +5 -5
  237. package/dist/astro/routes/api/mcp.mjs +96 -97
  238. package/dist/astro/routes/api/mcp.mjs.map +1 -1
  239. package/dist/astro/routes/api/media/_id_/confirm.mjs +19 -19
  240. package/dist/astro/routes/api/media/_id_/replace.mjs +15 -15
  241. package/dist/astro/routes/api/media/_id_/upload.mjs +8 -8
  242. package/dist/astro/routes/api/media/_id_/usage.mjs +32 -32
  243. package/dist/astro/routes/api/media/_id_.mjs +30 -30
  244. package/dist/astro/routes/api/media/asset/_id_/_filename_.mjs +5 -5
  245. package/dist/astro/routes/api/media/file/_...key_.d.mts.map +1 -1
  246. package/dist/astro/routes/api/media/file/_...key_.mjs +57 -11
  247. package/dist/astro/routes/api/media/file/_...key_.mjs.map +1 -1
  248. package/dist/astro/routes/api/media/folders/_id_.mjs +15 -15
  249. package/dist/astro/routes/api/media/folders/index.mjs +15 -15
  250. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +4 -4
  251. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +4 -4
  252. package/dist/astro/routes/api/media/providers/index.mjs +4 -4
  253. package/dist/astro/routes/api/media/upload-url.mjs +17 -17
  254. package/dist/astro/routes/api/media.mjs +34 -34
  255. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +20 -19
  256. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs.map +1 -1
  257. package/dist/astro/routes/api/menus/_name_/items.mjs +20 -19
  258. package/dist/astro/routes/api/menus/_name_/items.mjs.map +1 -1
  259. package/dist/astro/routes/api/menus/_name_/reorder.mjs +20 -19
  260. package/dist/astro/routes/api/menus/_name_/reorder.mjs.map +1 -1
  261. package/dist/astro/routes/api/menus/_name_/translations.mjs +20 -19
  262. package/dist/astro/routes/api/menus/_name_/translations.mjs.map +1 -1
  263. package/dist/astro/routes/api/menus/_name_.mjs +20 -19
  264. package/dist/astro/routes/api/menus/_name_.mjs.map +1 -1
  265. package/dist/astro/routes/api/menus/index.mjs +20 -19
  266. package/dist/astro/routes/api/menus/index.mjs.map +1 -1
  267. package/dist/astro/routes/api/oauth/authorize.mjs +6 -6
  268. package/dist/astro/routes/api/oauth/device/authorize.mjs +7 -7
  269. package/dist/astro/routes/api/oauth/device/code.mjs +11 -11
  270. package/dist/astro/routes/api/oauth/device/token.mjs +10 -10
  271. package/dist/astro/routes/api/oauth/register.mjs +7 -7
  272. package/dist/astro/routes/api/oauth/token/refresh.mjs +7 -7
  273. package/dist/astro/routes/api/oauth/token/revoke.mjs +7 -7
  274. package/dist/astro/routes/api/oauth/token.d.mts.map +1 -1
  275. package/dist/astro/routes/api/oauth/token.mjs +8 -8
  276. package/dist/astro/routes/api/oauth/token.mjs.map +1 -1
  277. package/dist/astro/routes/api/openapi.json.mjs +20 -20
  278. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +10 -10
  279. package/dist/astro/routes/api/redirects/404s/index.mjs +21 -21
  280. package/dist/astro/routes/api/redirects/404s/summary.mjs +21 -21
  281. package/dist/astro/routes/api/redirects/_id_.mjs +22 -22
  282. package/dist/astro/routes/api/redirects/index.mjs +22 -22
  283. package/dist/astro/routes/api/relations/_id_/index.mjs +35 -35
  284. package/dist/astro/routes/api/relations/index.mjs +35 -35
  285. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +4 -4
  286. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +17 -17
  287. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs +73 -74
  288. package/dist/astro/routes/api/schema/block-types/_slug_/index.mjs.map +1 -1
  289. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs +73 -74
  290. package/dist/astro/routes/api/schema/block-types/_slug_/versions/_version_/activate.mjs.map +1 -1
  291. package/dist/astro/routes/api/schema/block-types/index.mjs +73 -74
  292. package/dist/astro/routes/api/schema/block-types/index.mjs.map +1 -1
  293. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +73 -74
  294. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs.map +1 -1
  295. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +73 -74
  296. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs.map +1 -1
  297. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +73 -74
  298. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs.map +1 -1
  299. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +73 -74
  300. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs.map +1 -1
  301. package/dist/astro/routes/api/schema/collections/index.mjs +73 -74
  302. package/dist/astro/routes/api/schema/collections/index.mjs.map +1 -1
  303. package/dist/astro/routes/api/schema/collections/reorder.mjs +73 -74
  304. package/dist/astro/routes/api/schema/collections/reorder.mjs.map +1 -1
  305. package/dist/astro/routes/api/schema/index.mjs +17 -17
  306. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +73 -74
  307. package/dist/astro/routes/api/schema/orphans/_slug_.mjs.map +1 -1
  308. package/dist/astro/routes/api/schema/orphans/index.mjs +73 -74
  309. package/dist/astro/routes/api/schema/orphans/index.mjs.map +1 -1
  310. package/dist/astro/routes/api/search/enable.mjs +20 -19
  311. package/dist/astro/routes/api/search/enable.mjs.map +1 -1
  312. package/dist/astro/routes/api/search/index.mjs +19 -18
  313. package/dist/astro/routes/api/search/index.mjs.map +1 -1
  314. package/dist/astro/routes/api/search/rebuild.mjs +20 -19
  315. package/dist/astro/routes/api/search/rebuild.mjs.map +1 -1
  316. package/dist/astro/routes/api/search/stats.mjs +10 -9
  317. package/dist/astro/routes/api/search/stats.mjs.map +1 -1
  318. package/dist/astro/routes/api/search/suggest.mjs +19 -18
  319. package/dist/astro/routes/api/search/suggest.mjs.map +1 -1
  320. package/dist/astro/routes/api/sections/_slug_.mjs +19 -18
  321. package/dist/astro/routes/api/sections/_slug_.mjs.map +1 -1
  322. package/dist/astro/routes/api/sections/index.mjs +19 -18
  323. package/dist/astro/routes/api/sections/index.mjs.map +1 -1
  324. package/dist/astro/routes/api/settings/backups/archives/_name_.mjs +7 -7
  325. package/dist/astro/routes/api/settings/backups/archives/index.mjs +7 -7
  326. package/dist/astro/routes/api/settings/backups/export.mjs +7 -7
  327. package/dist/astro/routes/api/settings/backups/index.mjs +8 -8
  328. package/dist/astro/routes/api/settings/domain-notify.mjs +9 -9
  329. package/dist/astro/routes/api/settings/domain.mjs +21 -21
  330. package/dist/astro/routes/api/settings/email.mjs +5 -5
  331. package/dist/astro/routes/api/settings.mjs +27 -27
  332. package/dist/astro/routes/api/setup/admin-verify.mjs +22 -22
  333. package/dist/astro/routes/api/setup/admin.mjs +17 -17
  334. package/dist/astro/routes/api/setup/dev-bypass.mjs +45 -46
  335. package/dist/astro/routes/api/setup/dev-bypass.mjs.map +1 -1
  336. package/dist/astro/routes/api/setup/dev-reset.mjs +3 -3
  337. package/dist/astro/routes/api/setup/index.mjs +51 -52
  338. package/dist/astro/routes/api/setup/index.mjs.map +1 -1
  339. package/dist/astro/routes/api/setup/status.mjs +5 -5
  340. package/dist/astro/routes/api/site/domain-proof.mjs +15 -15
  341. package/dist/astro/routes/api/snapshot.mjs +10 -10
  342. package/dist/astro/routes/api/taxonomies/_name_/reorder.mjs +25 -25
  343. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +25 -25
  344. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +25 -25
  345. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +25 -25
  346. package/dist/astro/routes/api/taxonomies/_name_/translations.mjs +23 -23
  347. package/dist/astro/routes/api/taxonomies/_name_.mjs +25 -25
  348. package/dist/astro/routes/api/taxonomies/bulk-tag.mjs +36 -36
  349. package/dist/astro/routes/api/taxonomies/index.mjs +25 -25
  350. package/dist/astro/routes/api/themes/preview.mjs +7 -7
  351. package/dist/astro/routes/api/typegen.mjs +5 -5
  352. package/dist/astro/routes/api/visual-editing/action-token.mjs +7 -7
  353. package/dist/astro/routes/api/visual-editing/content/_collection_/_id_/publish.mjs +21 -21
  354. package/dist/astro/routes/api/visual-editing/toolbar-labels.mjs +3 -3
  355. package/dist/astro/routes/api/well-known/auth.mjs +1 -1
  356. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +2 -2
  357. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +2 -2
  358. package/dist/astro/routes/api/widget-areas/_name_/reorder.d.mts.map +1 -1
  359. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +28 -17
  360. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs.map +1 -1
  361. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.d.mts.map +1 -1
  362. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +24 -20
  363. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs.map +1 -1
  364. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +23 -20
  365. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs.map +1 -1
  366. package/dist/astro/routes/api/widget-areas/_name_.mjs +13 -10
  367. package/dist/astro/routes/api/widget-areas/_name_.mjs.map +1 -1
  368. package/dist/astro/routes/api/widget-areas/index.mjs +23 -20
  369. package/dist/astro/routes/api/widget-areas/index.mjs.map +1 -1
  370. package/dist/astro/routes/api/widget-components.mjs +4 -4
  371. package/dist/astro/routes/robots.txt.mjs +14 -14
  372. package/dist/astro/routes/sitemap-_collection_.xml.mjs +17 -17
  373. package/dist/astro/routes/sitemap.xml.mjs +15 -15
  374. package/dist/astro/types.d.mts +21 -19
  375. package/dist/astro/types.d.mts.map +1 -1
  376. package/dist/auth/providers/github.d.mts +1 -1
  377. package/dist/auth/providers/google.d.mts +1 -1
  378. package/dist/auth/providers/microsoft.d.mts +1 -1
  379. package/dist/authoritative-records-CQlB3JzE.mjs +5183 -0
  380. package/dist/authoritative-records-CQlB3JzE.mjs.map +1 -0
  381. package/dist/authorize-NJgp8kLI.mjs +74 -0
  382. package/dist/authorize-NJgp8kLI.mjs.map +1 -0
  383. package/dist/backup-8rPSJ28a.mjs +246 -0
  384. package/dist/backup-8rPSJ28a.mjs.map +1 -0
  385. package/dist/block-types-BbOrfnWs.mjs +132 -0
  386. package/dist/block-types-BbOrfnWs.mjs.map +1 -0
  387. package/dist/block-values-Dg0-8PPS.mjs +215 -0
  388. package/dist/block-values-Dg0-8PPS.mjs.map +1 -0
  389. package/dist/byline-DHJS-GGb.mjs +994 -0
  390. package/dist/byline-DHJS-GGb.mjs.map +1 -0
  391. package/dist/byline-fields-CiR8FvvF.mjs +280 -0
  392. package/dist/byline-fields-CiR8FvvF.mjs.map +1 -0
  393. package/dist/byline-fields-D6KYsEa7.mjs +123 -0
  394. package/dist/byline-fields-D6KYsEa7.mjs.map +1 -0
  395. package/dist/bylines-Bsg5cH4S.mjs +234 -0
  396. package/dist/bylines-Bsg5cH4S.mjs.map +1 -0
  397. package/dist/bylines-f_ZEc6Sn.mjs +150 -0
  398. package/dist/bylines-f_ZEc6Sn.mjs.map +1 -0
  399. package/dist/cache-5DHbpEWu.mjs +151 -0
  400. package/dist/cache-5DHbpEWu.mjs.map +1 -0
  401. package/dist/canonical-BudtH-Fx.mjs +174 -0
  402. package/dist/canonical-BudtH-Fx.mjs.map +1 -0
  403. package/dist/capture-triggers-BezAvWcB.mjs +362 -0
  404. package/dist/capture-triggers-BezAvWcB.mjs.map +1 -0
  405. package/dist/challenge-store-B1C0V4b3.mjs +51 -0
  406. package/dist/challenge-store-B1C0V4b3.mjs.map +1 -0
  407. package/dist/checksum-CEqvfxGX.mjs +162 -0
  408. package/dist/checksum-CEqvfxGX.mjs.map +1 -0
  409. package/dist/chrome-tags-BIKBMZYO.mjs +24 -0
  410. package/dist/chrome-tags-BIKBMZYO.mjs.map +1 -0
  411. package/dist/chunks-DiW8VMwz.mjs +25 -0
  412. package/dist/chunks-DiW8VMwz.mjs.map +1 -0
  413. package/dist/cli/index.mjs +52 -53
  414. package/dist/cli/index.mjs.map +1 -1
  415. package/dist/client/index.d.mts +46 -46
  416. package/dist/client/index.mjs +2 -2
  417. package/dist/collection-slugs-cache-DIrLjqH-.mjs +91 -0
  418. package/dist/collection-slugs-cache-DIrLjqH-.mjs.map +1 -0
  419. package/dist/comment-DB74Zpa4.mjs +335 -0
  420. package/dist/comment-DB74Zpa4.mjs.map +1 -0
  421. package/dist/comment-reaction-BScxIWUn.mjs +85 -0
  422. package/dist/comment-reaction-BScxIWUn.mjs.map +1 -0
  423. package/dist/comments-Cor_zKml.mjs +195 -0
  424. package/dist/comments-Cor_zKml.mjs.map +1 -0
  425. package/dist/comments-yiRFx3w5.mjs +99 -0
  426. package/dist/comments-yiRFx3w5.mjs.map +1 -0
  427. package/dist/components-Brp__9xo.mjs +112 -0
  428. package/dist/components-Brp__9xo.mjs.map +1 -0
  429. package/dist/config-D44_8G9J.d.mts +41 -0
  430. package/dist/config-D44_8G9J.d.mts.map +1 -0
  431. package/dist/config-DBU6iUQB.mjs +228 -0
  432. package/dist/config-DBU6iUQB.mjs.map +1 -0
  433. package/dist/config-sDhZvkLR.d.mts +6835 -0
  434. package/dist/config-sDhZvkLR.d.mts.map +1 -0
  435. package/dist/connection-BtEN_lP9.mjs +36 -0
  436. package/dist/connection-BtEN_lP9.mjs.map +1 -0
  437. package/dist/content-BKHUVsE5.mjs +2112 -0
  438. package/dist/content-BKHUVsE5.mjs.map +1 -0
  439. package/dist/content-list-query-ByP4jRpZ.d.mts +26 -0
  440. package/dist/content-list-query-ByP4jRpZ.d.mts.map +1 -0
  441. package/dist/content-policy-BmE0MPZY.mjs +46 -0
  442. package/dist/content-policy-BmE0MPZY.mjs.map +1 -0
  443. package/dist/content-repair-Ukdxoq-R.mjs +442 -0
  444. package/dist/content-repair-Ukdxoq-R.mjs.map +1 -0
  445. package/dist/context-CzjejcsE.mjs +2089 -0
  446. package/dist/context-CzjejcsE.mjs.map +1 -0
  447. package/dist/credits-BKREepht.mjs +110 -0
  448. package/dist/credits-BKREepht.mjs.map +1 -0
  449. package/dist/cron-D7obTIfk.mjs +306 -0
  450. package/dist/cron-D7obTIfk.mjs.map +1 -0
  451. package/dist/dashboard-ynr1qJWM.mjs +168 -0
  452. package/dist/dashboard-ynr1qJWM.mjs.map +1 -0
  453. package/dist/db/index.d.mts +3 -3
  454. package/dist/db/index.mjs +2 -2
  455. package/dist/db/libsql-migrations.d.mts +1 -1
  456. package/dist/db/libsql-migrations.mjs +5 -5
  457. package/dist/db/libsql.d.mts +1 -1
  458. package/dist/db/postgres-migrations.d.mts +1 -1
  459. package/dist/db/postgres-migrations.mjs +5 -5
  460. package/dist/db/postgres.d.mts +1 -1
  461. package/dist/db/sqlite-migrations.d.mts +1 -1
  462. package/dist/db/sqlite-migrations.mjs +5 -5
  463. package/dist/db/sqlite.d.mts +1 -1
  464. package/dist/db/sqlite.mjs +1 -1
  465. package/dist/default-C0W-PhAp.mjs +81 -0
  466. package/dist/default-C0W-PhAp.mjs.map +1 -0
  467. package/dist/deferred-tasks-wlMFJL95.d.mts +10 -0
  468. package/dist/deferred-tasks-wlMFJL95.d.mts.map +1 -0
  469. package/dist/dev-typegen-EBni_pOQ.mjs +29 -0
  470. package/dist/dev-typegen-EBni_pOQ.mjs.map +1 -0
  471. package/dist/device-flow-D1U392GC.mjs +519 -0
  472. package/dist/device-flow-D1U392GC.mjs.map +1 -0
  473. package/dist/dialect-helpers-B1XN2HGB.mjs +314 -0
  474. package/dist/dialect-helpers-B1XN2HGB.mjs.map +1 -0
  475. package/dist/digest-DJ1tHCgy.mjs +194 -0
  476. package/dist/digest-DJ1tHCgy.mjs.map +1 -0
  477. package/dist/direct-executor-Bs2g0ake.mjs +117 -0
  478. package/dist/direct-executor-Bs2g0ake.mjs.map +1 -0
  479. package/dist/dist-BUmWMTbN.mjs +810 -0
  480. package/dist/dist-BUmWMTbN.mjs.map +1 -0
  481. package/dist/email-console-FFVJWb9N.mjs +50 -0
  482. package/dist/email-console-FFVJWb9N.mjs.map +1 -0
  483. package/dist/email-locale-Bs3HFdnq.mjs +25 -0
  484. package/dist/email-locale-Bs3HFdnq.mjs.map +1 -0
  485. package/dist/emdash-runtime-C8T-pZpS.mjs +4425 -0
  486. package/dist/emdash-runtime-C8T-pZpS.mjs.map +1 -0
  487. package/dist/enrich-DFlfnd3u.mjs +194 -0
  488. package/dist/enrich-DFlfnd3u.mjs.map +1 -0
  489. package/dist/entry-lock-BulbgPBX.d.mts +4568 -0
  490. package/dist/entry-lock-BulbgPBX.d.mts.map +1 -0
  491. package/dist/entry-lock-CRVmruM0.mjs +1211 -0
  492. package/dist/entry-lock-CRVmruM0.mjs.map +1 -0
  493. package/dist/entry-lock-D-zJQ4q6.mjs +163 -0
  494. package/dist/entry-lock-D-zJQ4q6.mjs.map +1 -0
  495. package/dist/entry-locks-CJ9uhqg1.mjs +167 -0
  496. package/dist/entry-locks-CJ9uhqg1.mjs.map +1 -0
  497. package/dist/env-types-BE3bCvfP.mjs +38 -0
  498. package/dist/env-types-BE3bCvfP.mjs.map +1 -0
  499. package/dist/error-BCMgPxdn.mjs +90 -0
  500. package/dist/error-BCMgPxdn.mjs.map +1 -0
  501. package/dist/errors-8gJqv-XV.mjs +492 -0
  502. package/dist/errors-8gJqv-XV.mjs.map +1 -0
  503. package/dist/errors-B4f4It-2.mjs +120 -0
  504. package/dist/errors-B4f4It-2.mjs.map +1 -0
  505. package/dist/escape-lsNq38PP.mjs +9 -0
  506. package/dist/escape-lsNq38PP.mjs.map +1 -0
  507. package/dist/fence-Dagicj14.mjs +162 -0
  508. package/dist/fence-Dagicj14.mjs.map +1 -0
  509. package/dist/field-map-BSXdNGt5.mjs +84 -0
  510. package/dist/field-map-BSXdNGt5.mjs.map +1 -0
  511. package/dist/fts-manager-6861qcwk.mjs +489 -0
  512. package/dist/fts-manager-6861qcwk.mjs.map +1 -0
  513. package/dist/gc-CNkXB3mE.mjs +75 -0
  514. package/dist/gc-CNkXB3mE.mjs.map +1 -0
  515. package/dist/hash-BJaeek87.mjs +37 -0
  516. package/dist/hash-BJaeek87.mjs.map +1 -0
  517. package/dist/hreflang-8dUOJAPJ.d.mts +50 -0
  518. package/dist/hreflang-8dUOJAPJ.d.mts.map +1 -0
  519. package/dist/hreflang-BW5A4FLK.mjs +105 -0
  520. package/dist/hreflang-BW5A4FLK.mjs.map +1 -0
  521. package/dist/http-route-dispatch-rXKvTNm9.mjs +342 -0
  522. package/dist/http-route-dispatch-rXKvTNm9.mjs.map +1 -0
  523. package/dist/identity-CPRRSovU.mjs +35 -0
  524. package/dist/identity-CPRRSovU.mjs.map +1 -0
  525. package/dist/import-yVbfPyfd.mjs +2126 -0
  526. package/dist/import-yVbfPyfd.mjs.map +1 -0
  527. package/dist/index-VM7Fzxwe.d.mts +260 -0
  528. package/dist/index-VM7Fzxwe.d.mts.map +1 -0
  529. package/dist/index.d.mts +23 -22
  530. package/dist/index.mjs +104 -105
  531. package/dist/install-finalization-RU6VrHOX.mjs +58 -0
  532. package/dist/install-finalization-RU6VrHOX.mjs.map +1 -0
  533. package/dist/json-recordset-D0WhN2UA.mjs +12 -0
  534. package/dist/json-recordset-D0WhN2UA.mjs.map +1 -0
  535. package/dist/json-schema-v_D_pPNG.mjs +15 -0
  536. package/dist/json-schema-v_D_pPNG.mjs.map +1 -0
  537. package/dist/keys-CifIkT0N.mjs +61 -0
  538. package/dist/keys-CifIkT0N.mjs.map +1 -0
  539. package/dist/kinds-B_Qcl5pz.mjs +974 -0
  540. package/dist/kinds-B_Qcl5pz.mjs.map +1 -0
  541. package/dist/lifecycle-B8d7Rdqx.mjs +25 -0
  542. package/dist/lifecycle-B8d7Rdqx.mjs.map +1 -0
  543. package/dist/load-D4xtzm6h.mjs +28 -0
  544. package/dist/load-D4xtzm6h.mjs.map +1 -0
  545. package/dist/loader-DhnedqY4.mjs +1478 -0
  546. package/dist/loader-DhnedqY4.mjs.map +1 -0
  547. package/dist/loops-B2YS-Zzr.mjs +205 -0
  548. package/dist/loops-B2YS-Zzr.mjs.map +1 -0
  549. package/dist/manifest-builder-g1FLviel.mjs +196 -0
  550. package/dist/manifest-builder-g1FLviel.mjs.map +1 -0
  551. package/dist/manifest-schema-DNb4XmTS.mjs +497 -0
  552. package/dist/manifest-schema-DNb4XmTS.mjs.map +1 -0
  553. package/dist/marketplace-CqbgeIa7.mjs +257 -0
  554. package/dist/marketplace-CqbgeIa7.mjs.map +1 -0
  555. package/dist/media/image-endpoint.mjs +1 -1
  556. package/dist/media/index.d.mts +1 -1
  557. package/dist/media/index.mjs +3 -3
  558. package/dist/media/local-runtime.d.mts +14 -13
  559. package/dist/media/local-runtime.d.mts.map +1 -1
  560. package/dist/media/local-runtime.mjs +14 -14
  561. package/dist/media-BR4_t-Wd.mjs +416 -0
  562. package/dist/media-BR4_t-Wd.mjs.map +1 -0
  563. package/dist/media-CikS-q6E.mjs +294 -0
  564. package/dist/media-CikS-q6E.mjs.map +1 -0
  565. package/dist/media-DepNLhPq.mjs +383 -0
  566. package/dist/media-DepNLhPq.mjs.map +1 -0
  567. package/dist/media-allowlist-BMBLqyWh.mjs +45 -0
  568. package/dist/media-allowlist-BMBLqyWh.mjs.map +1 -0
  569. package/dist/media-folders-CI0Wydfo.mjs +210 -0
  570. package/dist/media-folders-CI0Wydfo.mjs.map +1 -0
  571. package/dist/media-url-BQgKvpQ5.mjs +43 -0
  572. package/dist/media-url-BQgKvpQ5.mjs.map +1 -0
  573. package/dist/media-usage-X1_20MY-.mjs +282 -0
  574. package/dist/media-usage-X1_20MY-.mjs.map +1 -0
  575. package/dist/media-usage-activation-bWusy3M2.mjs +78 -0
  576. package/dist/media-usage-activation-bWusy3M2.mjs.map +1 -0
  577. package/dist/media-usage-work-B2RaoJIa.mjs +151 -0
  578. package/dist/media-usage-work-B2RaoJIa.mjs.map +1 -0
  579. package/dist/media-usage-work-BCK2J-v_.mjs +1036 -0
  580. package/dist/media-usage-work-BCK2J-v_.mjs.map +1 -0
  581. package/dist/menus-B0Qqv_cS.mjs +837 -0
  582. package/dist/menus-B0Qqv_cS.mjs.map +1 -0
  583. package/dist/menus-oypxT1pI.mjs +3802 -0
  584. package/dist/menus-oypxT1pI.mjs.map +1 -0
  585. package/dist/menus-uEAxWAm1.mjs +92 -0
  586. package/dist/menus-uEAxWAm1.mjs.map +1 -0
  587. package/dist/migrations/index.d.mts +1 -1
  588. package/dist/migrations/index.mjs +4 -4
  589. package/dist/mime-D1We9jUx.mjs +81 -0
  590. package/dist/mime-D1We9jUx.mjs.map +1 -0
  591. package/dist/mode-C-D3qICy.mjs +23 -0
  592. package/dist/mode-C-D3qICy.mjs.map +1 -0
  593. package/dist/node-sqlite-compat-CrKzRr0J.mjs +63 -0
  594. package/dist/node-sqlite-compat-CrKzRr0J.mjs.map +1 -0
  595. package/dist/normalize-Cx-bNwhP.mjs +220 -0
  596. package/dist/normalize-Cx-bNwhP.mjs.map +1 -0
  597. package/dist/oauth-authorization-CPLgBrdo.mjs +287 -0
  598. package/dist/oauth-authorization-CPLgBrdo.mjs.map +1 -0
  599. package/dist/oauth-clients-BT0Pg-MO.mjs +266 -0
  600. package/dist/oauth-clients-BT0Pg-MO.mjs.map +1 -0
  601. package/dist/oauth-state-store-BndCfRum.mjs +50 -0
  602. package/dist/oauth-state-store-BndCfRum.mjs.map +1 -0
  603. package/dist/oauth-user-lookup-BDgF6IVG.mjs +26 -0
  604. package/dist/oauth-user-lookup-BDgF6IVG.mjs.map +1 -0
  605. package/dist/object-cache/memory.d.mts +1 -1
  606. package/dist/object-cache-DmKr09La.mjs +603 -0
  607. package/dist/object-cache-DmKr09La.mjs.map +1 -0
  608. package/dist/options-BUUgroHg.d.mts +81 -0
  609. package/dist/options-BUUgroHg.d.mts.map +1 -0
  610. package/dist/ownership-MiyA7qKO.mjs +12 -0
  611. package/dist/ownership-MiyA7qKO.mjs.map +1 -0
  612. package/dist/page/index.d.mts +2 -2
  613. package/dist/page/index.mjs +13 -13
  614. package/dist/parse-B_b6gZxG.mjs +81 -0
  615. package/dist/parse-B_b6gZxG.mjs.map +1 -0
  616. package/dist/parse-Dndx1QmN.d.mts +176 -0
  617. package/dist/parse-Dndx1QmN.d.mts.map +1 -0
  618. package/dist/passkey-config-D2Lua5__.mjs +46 -0
  619. package/dist/passkey-config-D2Lua5__.mjs.map +1 -0
  620. package/dist/paths-biDzFTY2.mjs +77 -0
  621. package/dist/paths-biDzFTY2.mjs.map +1 -0
  622. package/dist/placeholder-CSKu5OkD.d.mts +314 -0
  623. package/dist/placeholder-CSKu5OkD.d.mts.map +1 -0
  624. package/dist/plan-CCoqxNoU.mjs +135 -0
  625. package/dist/plan-CCoqxNoU.mjs.map +1 -0
  626. package/dist/plugin-test-runtime.d.mts +16 -14
  627. package/dist/plugin-test-runtime.d.mts.map +1 -1
  628. package/dist/plugin-test-runtime.mjs +114 -115
  629. package/dist/plugin-tool-name-DDUgN_0p.mjs +27 -0
  630. package/dist/plugin-tool-name-DDUgN_0p.mjs.map +1 -0
  631. package/dist/plugin-types.d.mts +1 -1
  632. package/dist/plugin-utils.d.mts +12 -11
  633. package/dist/plugin-utils.d.mts.map +1 -1
  634. package/dist/plugins/adapt-sandbox-entry.d.mts +12 -11
  635. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  636. package/dist/plugins/adapt-sandbox-entry.mjs +4 -4
  637. package/dist/plugins/host.d.mts +5 -5
  638. package/dist/plugins/host.mjs +50 -51
  639. package/dist/plugins-COJ2L49n.mjs +261 -0
  640. package/dist/plugins-COJ2L49n.mjs.map +1 -0
  641. package/dist/policy-BPugqmeV.mjs +53 -0
  642. package/dist/policy-BPugqmeV.mjs.map +1 -0
  643. package/dist/portable-text-BH4zgkSm.mjs +311 -0
  644. package/dist/portable-text-BH4zgkSm.mjs.map +1 -0
  645. package/dist/preview-DLexxwp3.mjs +107 -0
  646. package/dist/preview-DLexxwp3.mjs.map +1 -0
  647. package/dist/protocol-PoAfD_9W.d.mts +65 -0
  648. package/dist/protocol-PoAfD_9W.d.mts.map +1 -0
  649. package/dist/public-plugin-api-routes-CMljrTby.mjs +316 -0
  650. package/dist/public-plugin-api-routes-CMljrTby.mjs.map +1 -0
  651. package/dist/public-submission-ayqoyee4.mjs +251 -0
  652. package/dist/public-submission-ayqoyee4.mjs.map +1 -0
  653. package/dist/public-url-Bt98vysr.mjs +101 -0
  654. package/dist/public-url-Bt98vysr.mjs.map +1 -0
  655. package/dist/query-D62NntCZ.mjs +1146 -0
  656. package/dist/query-D62NntCZ.mjs.map +1 -0
  657. package/dist/query-LmPY2y0C.mjs +41 -0
  658. package/dist/query-LmPY2y0C.mjs.map +1 -0
  659. package/dist/range-CYfeXgGK.mjs +51 -0
  660. package/dist/range-CYfeXgGK.mjs.map +1 -0
  661. package/dist/rate-limit-C04Llsoc.mjs +127 -0
  662. package/dist/rate-limit-C04Llsoc.mjs.map +1 -0
  663. package/dist/receipt-BUsQCOeM.mjs +43 -0
  664. package/dist/receipt-BUsQCOeM.mjs.map +1 -0
  665. package/dist/redirect-CQAV7mCo.mjs +19 -0
  666. package/dist/redirect-CQAV7mCo.mjs.map +1 -0
  667. package/dist/redirect-DjLdw427.mjs +423 -0
  668. package/dist/redirect-DjLdw427.mjs.map +1 -0
  669. package/dist/redirect-paths-DOaVBp6E.mjs +36 -0
  670. package/dist/redirect-paths-DOaVBp6E.mjs.map +1 -0
  671. package/dist/redirects-Cpq1catN.mjs +446 -0
  672. package/dist/redirects-Cpq1catN.mjs.map +1 -0
  673. package/dist/redirects-CyvvZrCJ.mjs +148 -0
  674. package/dist/redirects-CyvvZrCJ.mjs.map +1 -0
  675. package/dist/registry/testing.mjs +3 -3
  676. package/dist/registry-B0-O575m.mjs +8374 -0
  677. package/dist/registry-B0-O575m.mjs.map +1 -0
  678. package/dist/relations-WIOojTL4.mjs +789 -0
  679. package/dist/relations-WIOojTL4.mjs.map +1 -0
  680. package/dist/request-context.d.mts +2 -2
  681. package/dist/request-meta-bwZ_NsvU.mjs +141 -0
  682. package/dist/request-meta-bwZ_NsvU.mjs.map +1 -0
  683. package/dist/resolve-BNnm8EkB.mjs +102 -0
  684. package/dist/resolve-BNnm8EkB.mjs.map +1 -0
  685. package/dist/route-cache-QSOyDEw0.mjs +20 -0
  686. package/dist/route-cache-QSOyDEw0.mjs.map +1 -0
  687. package/dist/route-wire-Ca_HWCZ5.mjs +197 -0
  688. package/dist/route-wire-Ca_HWCZ5.mjs.map +1 -0
  689. package/dist/routes-avqgc-8r.mjs +272 -0
  690. package/dist/routes-avqgc-8r.mjs.map +1 -0
  691. package/dist/runner-Bkkfk4O8.mjs +6669 -0
  692. package/dist/runner-Bkkfk4O8.mjs.map +1 -0
  693. package/dist/runner-Dfgp6-S_.d.mts +73 -0
  694. package/dist/runner-Dfgp6-S_.d.mts.map +1 -0
  695. package/dist/runtime.d.mts +13 -12
  696. package/dist/runtime.d.mts.map +1 -1
  697. package/dist/runtime.mjs +4 -3
  698. package/dist/runtime.mjs.map +1 -1
  699. package/dist/schema/project-env-types.mjs +42 -43
  700. package/dist/schema/project-env-types.mjs.map +1 -1
  701. package/dist/schema-B-3rntlX.mjs +815 -0
  702. package/dist/schema-B-3rntlX.mjs.map +1 -0
  703. package/dist/schema-BqBlUZtb.mjs +13 -0
  704. package/dist/schema-BqBlUZtb.mjs.map +1 -0
  705. package/dist/scopes-DNaY7Ey0.mjs +34 -0
  706. package/dist/scopes-DNaY7Ey0.mjs.map +1 -0
  707. package/dist/search-BPWTnpnD.mjs +450 -0
  708. package/dist/search-BPWTnpnD.mjs.map +1 -0
  709. package/dist/secrets-Dswzrz3k.mjs +369 -0
  710. package/dist/secrets-Dswzrz3k.mjs.map +1 -0
  711. package/dist/sections-rSao6rBG.mjs +346 -0
  712. package/dist/sections-rSao6rBG.mjs.map +1 -0
  713. package/dist/seed/index.d.mts +2 -2
  714. package/dist/seed/index.mjs +40 -41
  715. package/dist/seo/index.d.mts +3 -3
  716. package/dist/seo/index.mjs +27 -27
  717. package/dist/seo-B_H_pqOd.mjs +133 -0
  718. package/dist/seo-B_H_pqOd.mjs.map +1 -0
  719. package/dist/seo-ClB-dw9w.mjs +188 -0
  720. package/dist/seo-ClB-dw9w.mjs.map +1 -0
  721. package/dist/service-DpiUQVpp.mjs +150 -0
  722. package/dist/service-DpiUQVpp.mjs.map +1 -0
  723. package/dist/session-user-DiE4JKPP.mjs +61 -0
  724. package/dist/session-user-DiE4JKPP.mjs.map +1 -0
  725. package/dist/settings--XlUdUaI.mjs +66 -0
  726. package/dist/settings--XlUdUaI.mjs.map +1 -0
  727. package/dist/settings-D932YP2-.mjs +519 -0
  728. package/dist/settings-D932YP2-.mjs.map +1 -0
  729. package/dist/settings-Dd1uivmQ.mjs +73 -0
  730. package/dist/settings-Dd1uivmQ.mjs.map +1 -0
  731. package/dist/setup-complete-qsJYWutC.mjs +65 -0
  732. package/dist/setup-complete-qsJYWutC.mjs.map +1 -0
  733. package/dist/setup-nonce-CBFgUFXw.mjs +25 -0
  734. package/dist/setup-nonce-CBFgUFXw.mjs.map +1 -0
  735. package/dist/site-domain-oRGS_JfA.mjs +131 -0
  736. package/dist/site-domain-oRGS_JfA.mjs.map +1 -0
  737. package/dist/site-settings-DRHfX7bq.mjs +50 -0
  738. package/dist/site-settings-DRHfX7bq.mjs.map +1 -0
  739. package/dist/site-url-MB685I5X.mjs +45 -0
  740. package/dist/site-url-MB685I5X.mjs.map +1 -0
  741. package/dist/sitemap-name-B8QP8wud.mjs +26 -0
  742. package/dist/sitemap-name-B8QP8wud.mjs.map +1 -0
  743. package/dist/slug-aVnUV4SL.mjs +16 -0
  744. package/dist/slug-aVnUV4SL.mjs.map +1 -0
  745. package/dist/snapshot-BjaXDZQ5.mjs +414 -0
  746. package/dist/snapshot-BjaXDZQ5.mjs.map +1 -0
  747. package/dist/ssrf-BcYjyM4M.mjs +406 -0
  748. package/dist/ssrf-BcYjyM4M.mjs.map +1 -0
  749. package/dist/stage-CZQnXM_G.mjs +662 -0
  750. package/dist/stage-CZQnXM_G.mjs.map +1 -0
  751. package/dist/staged-ByBmPFtX.mjs +686 -0
  752. package/dist/staged-ByBmPFtX.mjs.map +1 -0
  753. package/dist/state-CFbGZziM.mjs +178 -0
  754. package/dist/state-CFbGZziM.mjs.map +1 -0
  755. package/dist/status-BFNdxzKc.mjs +30 -0
  756. package/dist/status-BFNdxzKc.mjs.map +1 -0
  757. package/dist/storage/local.d.mts +1 -1
  758. package/dist/storage/local.mjs +2 -2
  759. package/dist/storage/s3.d.mts +1 -1
  760. package/dist/storage/s3.mjs +1 -1
  761. package/dist/storage-query-BFp06Y0s.d.mts +1627 -0
  762. package/dist/storage-query-BFp06Y0s.d.mts.map +1 -0
  763. package/dist/tar-DFjExb9X.mjs +449 -0
  764. package/dist/tar-DFjExb9X.mjs.map +1 -0
  765. package/dist/target-CWZs2-o6.mjs +27 -0
  766. package/dist/target-CWZs2-o6.mjs.map +1 -0
  767. package/dist/taxonomies-5SR76j11.mjs +937 -0
  768. package/dist/taxonomies-5SR76j11.mjs.map +1 -0
  769. package/dist/taxonomies-B__VmCKQ.mjs +703 -0
  770. package/dist/taxonomies-B__VmCKQ.mjs.map +1 -0
  771. package/dist/taxonomy-CMI5fczd.mjs +563 -0
  772. package/dist/taxonomy-CMI5fczd.mjs.map +1 -0
  773. package/dist/tokens-BnhSnGwJ.mjs +171 -0
  774. package/dist/tokens-BnhSnGwJ.mjs.map +1 -0
  775. package/dist/transfer-BbKfufJ4.mjs +166 -0
  776. package/dist/transfer-BbKfufJ4.mjs.map +1 -0
  777. package/dist/transfer-DTGblAj2.mjs +8910 -0
  778. package/dist/transfer-DTGblAj2.mjs.map +1 -0
  779. package/dist/transfer-download-D9LQEDX0.mjs +33 -0
  780. package/dist/transfer-download-D9LQEDX0.mjs.map +1 -0
  781. package/dist/transformations-Bx4lYY0Y.mjs +196 -0
  782. package/dist/transformations-Bx4lYY0Y.mjs.map +1 -0
  783. package/dist/transport-Dzpn5b3i.mjs +137 -0
  784. package/dist/transport-Dzpn5b3i.mjs.map +1 -0
  785. package/dist/trusted-proxy-BU3Nx9g1.mjs +51 -0
  786. package/dist/trusted-proxy-BU3Nx9g1.mjs.map +1 -0
  787. package/dist/turnstile-Cs2wfkJG.mjs +58 -0
  788. package/dist/turnstile-Cs2wfkJG.mjs.map +1 -0
  789. package/dist/types-BAsCk5KU.d.mts +87 -0
  790. package/dist/types-BAsCk5KU.d.mts.map +1 -0
  791. package/dist/types-BuvSwT9Y.d.mts +375 -0
  792. package/dist/types-BuvSwT9Y.d.mts.map +1 -0
  793. package/dist/types-C4KT3Md2.d.mts +293 -0
  794. package/dist/types-C4KT3Md2.d.mts.map +1 -0
  795. package/dist/types-CVXHwIBB.d.mts +125 -0
  796. package/dist/types-CVXHwIBB.d.mts.map +1 -0
  797. package/dist/types-C_asjp1J.mjs.map +1 -1
  798. package/dist/types-CgfFGfO5.mjs +16 -0
  799. package/dist/types-CgfFGfO5.mjs.map +1 -0
  800. package/dist/types-Cj0_yZkn.mjs +18 -0
  801. package/dist/types-Cj0_yZkn.mjs.map +1 -0
  802. package/dist/types-CjftrmZR.d.mts +1741 -0
  803. package/dist/types-CjftrmZR.d.mts.map +1 -0
  804. package/dist/types-DKwRUA-x.d.mts +916 -0
  805. package/dist/types-DKwRUA-x.d.mts.map +1 -0
  806. package/dist/types-DwhEvIVb.mjs.map +1 -1
  807. package/dist/types-GwAyS5SH.d.mts +227 -0
  808. package/dist/types-GwAyS5SH.d.mts.map +1 -0
  809. package/dist/types-qHVygneX.mjs +77 -0
  810. package/dist/types-qHVygneX.mjs.map +1 -0
  811. package/dist/types-sUHaH7lC.mjs +37 -0
  812. package/dist/types-sUHaH7lC.mjs.map +1 -0
  813. package/dist/types-uU2YNYSt.d.mts +209 -0
  814. package/dist/types-uU2YNYSt.d.mts.map +1 -0
  815. package/dist/update-check-ABBJgg6M.mjs +161 -0
  816. package/dist/update-check-ABBJgg6M.mjs.map +1 -0
  817. package/dist/upload-attempts-DPFC4COv.mjs +32 -0
  818. package/dist/upload-attempts-DPFC4COv.mjs.map +1 -0
  819. package/dist/url-pattern-QATUE_rv.mjs +41 -0
  820. package/dist/url-pattern-QATUE_rv.mjs.map +1 -0
  821. package/dist/user-By8SzQxS.mjs +171 -0
  822. package/dist/user-By8SzQxS.mjs.map +1 -0
  823. package/dist/utils-D5uOi6WS.mjs +450 -0
  824. package/dist/utils-D5uOi6WS.mjs.map +1 -0
  825. package/dist/utils-Szp4iBQB.d.mts +376 -0
  826. package/dist/utils-Szp4iBQB.d.mts.map +1 -0
  827. package/dist/validate-DDvxy6qG.d.mts +468 -0
  828. package/dist/validate-DDvxy6qG.d.mts.map +1 -0
  829. package/dist/validate-Dz-TIOFB.mjs +524 -0
  830. package/dist/validate-Dz-TIOFB.mjs.map +1 -0
  831. package/dist/validation-Fc9ZSUS_.mjs +221 -0
  832. package/dist/validation-Fc9ZSUS_.mjs.map +1 -0
  833. package/dist/version-BZj18Q7G.mjs +9 -0
  834. package/dist/version-BZj18Q7G.mjs.map +1 -0
  835. package/dist/version-Bu6Nlbb5.mjs +7 -0
  836. package/dist/version-Bu6Nlbb5.mjs.map +1 -0
  837. package/dist/version-DqB7LIO7.mjs +49 -0
  838. package/dist/version-DqB7LIO7.mjs.map +1 -0
  839. package/dist/video-DytCnw3L.mjs +54 -0
  840. package/dist/video-DytCnw3L.mjs.map +1 -0
  841. package/dist/virtual-modules-DO954n7P.mjs +515 -0
  842. package/dist/virtual-modules-DO954n7P.mjs.map +1 -0
  843. package/dist/widgets-BUx_Mf2q.mjs +134 -0
  844. package/dist/widgets-BUx_Mf2q.mjs.map +1 -0
  845. package/dist/wxr-taxonomies-DbJtWrWM.mjs +454 -0
  846. package/dist/wxr-taxonomies-DbJtWrWM.mjs.map +1 -0
  847. package/dist/zod-generator--nlM0930.mjs +425 -0
  848. package/dist/zod-generator--nlM0930.mjs.map +1 -0
  849. package/package.json +5 -5
  850. package/src/api/handlers/content.ts +49 -18
  851. package/src/api/handlers/device-flow.ts +1 -3
  852. package/src/api/handlers/menus.ts +3 -3
  853. package/src/api/handlers/oauth-authorization.ts +1 -3
  854. package/src/astro/integration/admin-nav.ts +52 -0
  855. package/src/astro/integration/index.ts +7 -0
  856. package/src/astro/integration/runtime.ts +14 -0
  857. package/src/astro/integration/shims/use-sync-external-store-with-selector.js +2 -0
  858. package/src/astro/integration/shims/use-sync-external-store.js +4 -1
  859. package/src/astro/middleware/auth.ts +9 -2
  860. package/src/astro/routes/api/import/wordpress/analyze.ts +5 -29
  861. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +3 -3
  862. package/src/astro/routes/api/media/file/[...key].ts +18 -4
  863. package/src/astro/routes/api/oauth/token.ts +5 -1
  864. package/src/astro/routes/api/widget-areas/[name]/reorder.ts +7 -1
  865. package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +3 -1
  866. package/src/astro/routes/api/widget-areas/[name]/widgets.ts +2 -1
  867. package/src/astro/routes/api/widget-areas/[name].ts +2 -1
  868. package/src/astro/routes/api/widget-areas/index.ts +2 -1
  869. package/src/astro/types.ts +4 -3
  870. package/src/auth/api-tokens.ts +3 -0
  871. package/src/cleanup.ts +44 -0
  872. package/src/components/inline-bubble-menu.tsx +109 -95
  873. package/src/components/inline-image.tsx +54 -48
  874. package/src/database/dialect-helpers.ts +10 -3
  875. package/src/database/repositories/byline.ts +22 -14
  876. package/src/database/repositories/content.ts +17 -4
  877. package/src/database/repositories/media.ts +17 -0
  878. package/src/database/repositories/menu.ts +163 -132
  879. package/src/database/repositories/types.ts +3 -3
  880. package/src/database/types.ts +1 -1
  881. package/src/emdash-runtime.ts +23 -7
  882. package/src/import/utils.ts +15 -2
  883. package/src/index.ts +1 -0
  884. package/src/loader.ts +106 -95
  885. package/src/media/content-disposition.ts +56 -0
  886. package/src/media/normalize.ts +2 -0
  887. package/src/media/usage/content-fields.ts +2 -1
  888. package/src/menus/index.ts +137 -25
  889. package/src/object-cache/index.ts +22 -0
  890. package/src/plugin-test-runtime.ts +1 -0
  891. package/src/query.ts +44 -40
  892. package/src/schema/types.ts +7 -6
  893. package/src/search/fts-manager.ts +5 -3
  894. package/src/seed/apply.ts +52 -44
  895. package/src/seed/types.ts +3 -3
  896. package/src/taxonomies/index.ts +22 -51
  897. package/src/transfer/import/advance.ts +12 -1
  898. package/src/transfer/import/scaffold.ts +7 -1
  899. package/src/transfer/import/stages.ts +53 -2
  900. package/src/utils/revalidating-cache.ts +85 -0
  901. package/src/visual-editing/toolbar.ts +7 -2
  902. package/src/widgets/index.ts +27 -13
  903. package/dist/action-token-B1ds4laA.mjs +0 -26
  904. package/dist/action-token-B1ds4laA.mjs.map +0 -1
  905. package/dist/activation-sGF9br3X.mjs +0 -387
  906. package/dist/activation-sGF9br3X.mjs.map +0 -1
  907. package/dist/adapters-BOMSX9PU.d.mts +0 -173
  908. package/dist/adapters-BOMSX9PU.d.mts.map +0 -1
  909. package/dist/after-PcEvMY_6.mjs +0 -96
  910. package/dist/after-PcEvMY_6.mjs.map +0 -1
  911. package/dist/allowed-origins-CovsTkm3.mjs +0 -116
  912. package/dist/allowed-origins-CovsTkm3.mjs.map +0 -1
  913. package/dist/api-C_LxFnOm.mjs +0 -5077
  914. package/dist/api-C_LxFnOm.mjs.map +0 -1
  915. package/dist/api-tokens-C7l0GUAF.mjs +0 -3
  916. package/dist/api-tokens-DQ9Ee-vP.mjs +0 -173
  917. package/dist/api-tokens-DQ9Ee-vP.mjs.map +0 -1
  918. package/dist/apply-CLjfxvyH.mjs +0 -1758
  919. package/dist/apply-CLjfxvyH.mjs.map +0 -1
  920. package/dist/approvals-ocK89i4H.mjs +0 -460
  921. package/dist/approvals-ocK89i4H.mjs.map +0 -1
  922. package/dist/artifact-fetch-CgvvpoWQ.mjs +0 -659
  923. package/dist/artifact-fetch-CgvvpoWQ.mjs.map +0 -1
  924. package/dist/artifacts-DwOYYBQm.mjs +0 -323
  925. package/dist/artifacts-DwOYYBQm.mjs.map +0 -1
  926. package/dist/authoritative-records-LPtrIGOY.mjs +0 -5183
  927. package/dist/authoritative-records-LPtrIGOY.mjs.map +0 -1
  928. package/dist/authorize-CoDsRRp5.mjs +0 -74
  929. package/dist/authorize-CoDsRRp5.mjs.map +0 -1
  930. package/dist/backup-2Wj-hTCN.mjs +0 -246
  931. package/dist/backup-2Wj-hTCN.mjs.map +0 -1
  932. package/dist/block-types-C3gJEe7l.mjs +0 -132
  933. package/dist/block-types-C3gJEe7l.mjs.map +0 -1
  934. package/dist/block-values-CgbMtSGU.mjs +0 -215
  935. package/dist/block-values-CgbMtSGU.mjs.map +0 -1
  936. package/dist/byline-CzGZC2Zs.mjs +0 -922
  937. package/dist/byline-CzGZC2Zs.mjs.map +0 -1
  938. package/dist/byline-fields-B1qHvRps.mjs +0 -280
  939. package/dist/byline-fields-B1qHvRps.mjs.map +0 -1
  940. package/dist/byline-fields-vYd_4Q1e.mjs +0 -123
  941. package/dist/byline-fields-vYd_4Q1e.mjs.map +0 -1
  942. package/dist/bylines-BF555iIz.mjs +0 -150
  943. package/dist/bylines-BF555iIz.mjs.map +0 -1
  944. package/dist/bylines-DJx6IWWi.mjs +0 -234
  945. package/dist/bylines-DJx6IWWi.mjs.map +0 -1
  946. package/dist/cache-BWzswWB-.mjs +0 -151
  947. package/dist/cache-BWzswWB-.mjs.map +0 -1
  948. package/dist/canonical-DjF_z6GI.mjs +0 -174
  949. package/dist/canonical-DjF_z6GI.mjs.map +0 -1
  950. package/dist/capture-triggers-D7g3fOZj.mjs +0 -362
  951. package/dist/capture-triggers-D7g3fOZj.mjs.map +0 -1
  952. package/dist/challenge-store-Cfjdvw86.mjs +0 -51
  953. package/dist/challenge-store-Cfjdvw86.mjs.map +0 -1
  954. package/dist/checksum-BF4acJwn.mjs +0 -162
  955. package/dist/checksum-BF4acJwn.mjs.map +0 -1
  956. package/dist/chrome-tags-BDs29G3g.mjs +0 -24
  957. package/dist/chrome-tags-BDs29G3g.mjs.map +0 -1
  958. package/dist/chunks-CYBOL-zn.mjs +0 -25
  959. package/dist/chunks-CYBOL-zn.mjs.map +0 -1
  960. package/dist/collection-slugs-cache-B2J5aESO.mjs +0 -91
  961. package/dist/collection-slugs-cache-B2J5aESO.mjs.map +0 -1
  962. package/dist/comment-DV7dybcs.mjs +0 -335
  963. package/dist/comment-DV7dybcs.mjs.map +0 -1
  964. package/dist/comment-reaction-CWwqiT6x.mjs +0 -85
  965. package/dist/comment-reaction-CWwqiT6x.mjs.map +0 -1
  966. package/dist/comments-DVjWJm8X.mjs +0 -99
  967. package/dist/comments-DVjWJm8X.mjs.map +0 -1
  968. package/dist/comments-Q-ILHCEI.mjs +0 -195
  969. package/dist/comments-Q-ILHCEI.mjs.map +0 -1
  970. package/dist/components-DnOmvvgg.mjs +0 -112
  971. package/dist/components-DnOmvvgg.mjs.map +0 -1
  972. package/dist/config-9IzA83_U.d.mts +0 -6811
  973. package/dist/config-9IzA83_U.d.mts.map +0 -1
  974. package/dist/config-BdQzFtmR.mjs +0 -228
  975. package/dist/config-BdQzFtmR.mjs.map +0 -1
  976. package/dist/config-Cs2RBkJ6.d.mts +0 -41
  977. package/dist/config-Cs2RBkJ6.d.mts.map +0 -1
  978. package/dist/connection-CiXgZyCY.mjs +0 -36
  979. package/dist/connection-CiXgZyCY.mjs.map +0 -1
  980. package/dist/content-Dt0Os_WQ.mjs +0 -2109
  981. package/dist/content-Dt0Os_WQ.mjs.map +0 -1
  982. package/dist/content-list-query-BK26u9Ly.d.mts +0 -26
  983. package/dist/content-list-query-BK26u9Ly.d.mts.map +0 -1
  984. package/dist/content-policy-BLDbNJOb.mjs +0 -46
  985. package/dist/content-policy-BLDbNJOb.mjs.map +0 -1
  986. package/dist/content-repair-CjwbLy4m.mjs +0 -442
  987. package/dist/content-repair-CjwbLy4m.mjs.map +0 -1
  988. package/dist/context-ErV7UdQY.mjs +0 -2089
  989. package/dist/context-ErV7UdQY.mjs.map +0 -1
  990. package/dist/credits-BRyjafiF.mjs +0 -110
  991. package/dist/credits-BRyjafiF.mjs.map +0 -1
  992. package/dist/cron-Bm5xa7tv.mjs +0 -306
  993. package/dist/cron-Bm5xa7tv.mjs.map +0 -1
  994. package/dist/dashboard-DVxQ5XiI.mjs +0 -168
  995. package/dist/dashboard-DVxQ5XiI.mjs.map +0 -1
  996. package/dist/default-B9Tf2n94.mjs +0 -81
  997. package/dist/default-B9Tf2n94.mjs.map +0 -1
  998. package/dist/deferred-tasks-CpPEqsga.d.mts +0 -9
  999. package/dist/deferred-tasks-CpPEqsga.d.mts.map +0 -1
  1000. package/dist/dev-typegen-ZeWYV8Jp.mjs +0 -29
  1001. package/dist/dev-typegen-ZeWYV8Jp.mjs.map +0 -1
  1002. package/dist/device-flow-BbYNZ9Xi.mjs +0 -521
  1003. package/dist/device-flow-BbYNZ9Xi.mjs.map +0 -1
  1004. package/dist/dialect-helpers-7_IqPdh9.mjs +0 -307
  1005. package/dist/dialect-helpers-7_IqPdh9.mjs.map +0 -1
  1006. package/dist/digest-DlBa7kJl.mjs +0 -194
  1007. package/dist/digest-DlBa7kJl.mjs.map +0 -1
  1008. package/dist/direct-executor-5T8gkhvA.mjs +0 -117
  1009. package/dist/direct-executor-5T8gkhvA.mjs.map +0 -1
  1010. package/dist/dist-DY0aOmAP.mjs +0 -810
  1011. package/dist/dist-DY0aOmAP.mjs.map +0 -1
  1012. package/dist/email-console-v3OM8It-.mjs +0 -50
  1013. package/dist/email-console-v3OM8It-.mjs.map +0 -1
  1014. package/dist/email-locale-CoZo-oZx.mjs +0 -25
  1015. package/dist/email-locale-CoZo-oZx.mjs.map +0 -1
  1016. package/dist/emdash-runtime-DwezbIqQ.mjs +0 -4392
  1017. package/dist/emdash-runtime-DwezbIqQ.mjs.map +0 -1
  1018. package/dist/enrich-C3XIJi0O.mjs +0 -194
  1019. package/dist/enrich-C3XIJi0O.mjs.map +0 -1
  1020. package/dist/entry-lock-CY7XpdSw.d.mts +0 -4568
  1021. package/dist/entry-lock-CY7XpdSw.d.mts.map +0 -1
  1022. package/dist/entry-lock-DDuWaAiP.mjs +0 -1211
  1023. package/dist/entry-lock-DDuWaAiP.mjs.map +0 -1
  1024. package/dist/entry-lock-D_Og9Gy3.mjs +0 -163
  1025. package/dist/entry-lock-D_Og9Gy3.mjs.map +0 -1
  1026. package/dist/entry-locks-Cp8_BcQQ.mjs +0 -167
  1027. package/dist/entry-locks-Cp8_BcQQ.mjs.map +0 -1
  1028. package/dist/env-types-Br8uywYA.mjs +0 -38
  1029. package/dist/env-types-Br8uywYA.mjs.map +0 -1
  1030. package/dist/error-CT2SsX5S.mjs +0 -90
  1031. package/dist/error-CT2SsX5S.mjs.map +0 -1
  1032. package/dist/errors-BMaCpLeS.mjs +0 -479
  1033. package/dist/errors-BMaCpLeS.mjs.map +0 -1
  1034. package/dist/errors-DlJwot7q.mjs +0 -120
  1035. package/dist/errors-DlJwot7q.mjs.map +0 -1
  1036. package/dist/escape-BfbDyuQ-.mjs +0 -9
  1037. package/dist/escape-BfbDyuQ-.mjs.map +0 -1
  1038. package/dist/fence-BOD3SxZG.mjs +0 -162
  1039. package/dist/fence-BOD3SxZG.mjs.map +0 -1
  1040. package/dist/field-defs-cache-C7sR7ZeU.mjs +0 -77
  1041. package/dist/field-defs-cache-C7sR7ZeU.mjs.map +0 -1
  1042. package/dist/field-map-C_rDXfdJ.mjs +0 -84
  1043. package/dist/field-map-C_rDXfdJ.mjs.map +0 -1
  1044. package/dist/fts-manager-BzFo0xx6.mjs +0 -483
  1045. package/dist/fts-manager-BzFo0xx6.mjs.map +0 -1
  1046. package/dist/gc-B_c3DPpi.mjs +0 -75
  1047. package/dist/gc-B_c3DPpi.mjs.map +0 -1
  1048. package/dist/hash-A-o2ZX8O.mjs +0 -37
  1049. package/dist/hash-A-o2ZX8O.mjs.map +0 -1
  1050. package/dist/hreflang-BpUK9Lcu.mjs +0 -105
  1051. package/dist/hreflang-BpUK9Lcu.mjs.map +0 -1
  1052. package/dist/hreflang-D07R-RbI.d.mts +0 -50
  1053. package/dist/hreflang-D07R-RbI.d.mts.map +0 -1
  1054. package/dist/http-route-dispatch-C2Ep2Uf6.mjs +0 -342
  1055. package/dist/http-route-dispatch-C2Ep2Uf6.mjs.map +0 -1
  1056. package/dist/identity-BivQ8wkV.mjs +0 -35
  1057. package/dist/identity-BivQ8wkV.mjs.map +0 -1
  1058. package/dist/import-B4UvHNJz.mjs +0 -2126
  1059. package/dist/import-B4UvHNJz.mjs.map +0 -1
  1060. package/dist/index-C37Ty40w.d.mts +0 -623
  1061. package/dist/index-C37Ty40w.d.mts.map +0 -1
  1062. package/dist/install-finalization-BbYaB4wj.mjs +0 -58
  1063. package/dist/install-finalization-BbYaB4wj.mjs.map +0 -1
  1064. package/dist/json-recordset-BjYIWFkV.mjs +0 -12
  1065. package/dist/json-recordset-BjYIWFkV.mjs.map +0 -1
  1066. package/dist/json-schema-Cde7le0s.mjs +0 -15
  1067. package/dist/json-schema-Cde7le0s.mjs.map +0 -1
  1068. package/dist/keys-CusTXpw-.mjs +0 -61
  1069. package/dist/keys-CusTXpw-.mjs.map +0 -1
  1070. package/dist/kinds-DogmNB6n.mjs +0 -974
  1071. package/dist/kinds-DogmNB6n.mjs.map +0 -1
  1072. package/dist/lifecycle-BLCoCz4T.mjs +0 -25
  1073. package/dist/lifecycle-BLCoCz4T.mjs.map +0 -1
  1074. package/dist/load-Dds3KhXr.mjs +0 -28
  1075. package/dist/load-Dds3KhXr.mjs.map +0 -1
  1076. package/dist/loader-D4w4XE7q.mjs +0 -1420
  1077. package/dist/loader-D4w4XE7q.mjs.map +0 -1
  1078. package/dist/loops-IYgzQdQu.mjs +0 -205
  1079. package/dist/loops-IYgzQdQu.mjs.map +0 -1
  1080. package/dist/manifest-builder-CGF5kujD.mjs +0 -196
  1081. package/dist/manifest-builder-CGF5kujD.mjs.map +0 -1
  1082. package/dist/manifest-schema-B0BxPSjB.mjs +0 -497
  1083. package/dist/manifest-schema-B0BxPSjB.mjs.map +0 -1
  1084. package/dist/marketplace-DNvEGLqU.mjs +0 -257
  1085. package/dist/marketplace-DNvEGLqU.mjs.map +0 -1
  1086. package/dist/media-BL9MRrSG.mjs +0 -294
  1087. package/dist/media-BL9MRrSG.mjs.map +0 -1
  1088. package/dist/media-B_x5B9EA.mjs +0 -373
  1089. package/dist/media-B_x5B9EA.mjs.map +0 -1
  1090. package/dist/media-allowlist-CpmqBbIQ.mjs +0 -45
  1091. package/dist/media-allowlist-CpmqBbIQ.mjs.map +0 -1
  1092. package/dist/media-folders-CNs_A_B-.mjs +0 -210
  1093. package/dist/media-folders-CNs_A_B-.mjs.map +0 -1
  1094. package/dist/media-qTTHVkls.mjs +0 -416
  1095. package/dist/media-qTTHVkls.mjs.map +0 -1
  1096. package/dist/media-url-GJboA1fl.mjs +0 -43
  1097. package/dist/media-url-GJboA1fl.mjs.map +0 -1
  1098. package/dist/media-usage-ClWgrX0d.mjs +0 -282
  1099. package/dist/media-usage-ClWgrX0d.mjs.map +0 -1
  1100. package/dist/media-usage-activation-B8Fjtq0h.mjs +0 -78
  1101. package/dist/media-usage-activation-B8Fjtq0h.mjs.map +0 -1
  1102. package/dist/media-usage-work-L8-Au4j-.mjs +0 -1036
  1103. package/dist/media-usage-work-L8-Au4j-.mjs.map +0 -1
  1104. package/dist/media-usage-work-LXgze5j9.mjs +0 -151
  1105. package/dist/media-usage-work-LXgze5j9.mjs.map +0 -1
  1106. package/dist/menus-BAxcbsbv.mjs +0 -818
  1107. package/dist/menus-BAxcbsbv.mjs.map +0 -1
  1108. package/dist/menus-BI6oBXco.mjs +0 -92
  1109. package/dist/menus-BI6oBXco.mjs.map +0 -1
  1110. package/dist/menus-fvGFd4m6.mjs +0 -3725
  1111. package/dist/menus-fvGFd4m6.mjs.map +0 -1
  1112. package/dist/mime-DwhtRyUt.mjs +0 -81
  1113. package/dist/mime-DwhtRyUt.mjs.map +0 -1
  1114. package/dist/mode-DIDSUwuN.mjs +0 -23
  1115. package/dist/mode-DIDSUwuN.mjs.map +0 -1
  1116. package/dist/node-sqlite-compat-Ddr_mlR9.mjs +0 -63
  1117. package/dist/node-sqlite-compat-Ddr_mlR9.mjs.map +0 -1
  1118. package/dist/normalize-Ip_hFAm8.mjs +0 -216
  1119. package/dist/normalize-Ip_hFAm8.mjs.map +0 -1
  1120. package/dist/oauth-authorization-CcMgeT8R.mjs +0 -274
  1121. package/dist/oauth-authorization-CcMgeT8R.mjs.map +0 -1
  1122. package/dist/oauth-clients-C_osi0PU.mjs +0 -266
  1123. package/dist/oauth-clients-C_osi0PU.mjs.map +0 -1
  1124. package/dist/oauth-state-store-DGLP-6CK.mjs +0 -50
  1125. package/dist/oauth-state-store-DGLP-6CK.mjs.map +0 -1
  1126. package/dist/oauth-user-lookup-z77Ee0Hm.mjs +0 -26
  1127. package/dist/oauth-user-lookup-z77Ee0Hm.mjs.map +0 -1
  1128. package/dist/object-cache-EjasjtoQ.mjs +0 -586
  1129. package/dist/object-cache-EjasjtoQ.mjs.map +0 -1
  1130. package/dist/options-CmUpkyKW.d.mts +0 -81
  1131. package/dist/options-CmUpkyKW.d.mts.map +0 -1
  1132. package/dist/ownership-DCk5NutQ.mjs +0 -12
  1133. package/dist/ownership-DCk5NutQ.mjs.map +0 -1
  1134. package/dist/parse-2W-E2f7w.mjs +0 -81
  1135. package/dist/parse-2W-E2f7w.mjs.map +0 -1
  1136. package/dist/parse-6pN8Xqg5.d.mts +0 -176
  1137. package/dist/parse-6pN8Xqg5.d.mts.map +0 -1
  1138. package/dist/passkey-config-DTTZB6EI.mjs +0 -46
  1139. package/dist/passkey-config-DTTZB6EI.mjs.map +0 -1
  1140. package/dist/paths-CQA62503.mjs +0 -77
  1141. package/dist/paths-CQA62503.mjs.map +0 -1
  1142. package/dist/placeholder-BlfXkucE.d.mts +0 -313
  1143. package/dist/placeholder-BlfXkucE.d.mts.map +0 -1
  1144. package/dist/plan-B95eiwnF.mjs +0 -135
  1145. package/dist/plan-B95eiwnF.mjs.map +0 -1
  1146. package/dist/plugin-tool-name-BDA7m4Xa.mjs +0 -27
  1147. package/dist/plugin-tool-name-BDA7m4Xa.mjs.map +0 -1
  1148. package/dist/plugins-BhxLJ008.mjs +0 -261
  1149. package/dist/plugins-BhxLJ008.mjs.map +0 -1
  1150. package/dist/policy-DOJ2sPqB.mjs +0 -53
  1151. package/dist/policy-DOJ2sPqB.mjs.map +0 -1
  1152. package/dist/portable-text-RCMpCj47.mjs +0 -311
  1153. package/dist/portable-text-RCMpCj47.mjs.map +0 -1
  1154. package/dist/preview-DFwL5APO.mjs +0 -107
  1155. package/dist/preview-DFwL5APO.mjs.map +0 -1
  1156. package/dist/protocol-B-ztxp_y.d.mts +0 -65
  1157. package/dist/protocol-B-ztxp_y.d.mts.map +0 -1
  1158. package/dist/public-plugin-api-routes-ik4fPZMv.mjs +0 -316
  1159. package/dist/public-plugin-api-routes-ik4fPZMv.mjs.map +0 -1
  1160. package/dist/public-submission-C5JZIykp.mjs +0 -251
  1161. package/dist/public-submission-C5JZIykp.mjs.map +0 -1
  1162. package/dist/public-url-CQwzRljH.mjs +0 -101
  1163. package/dist/public-url-CQwzRljH.mjs.map +0 -1
  1164. package/dist/query-DuwyFr5Z.mjs +0 -41
  1165. package/dist/query-DuwyFr5Z.mjs.map +0 -1
  1166. package/dist/query-eR_Nz70M.mjs +0 -1157
  1167. package/dist/query-eR_Nz70M.mjs.map +0 -1
  1168. package/dist/range-BQWPjWgQ.mjs +0 -51
  1169. package/dist/range-BQWPjWgQ.mjs.map +0 -1
  1170. package/dist/rate-limit-mPKeQ3sm.mjs +0 -127
  1171. package/dist/rate-limit-mPKeQ3sm.mjs.map +0 -1
  1172. package/dist/receipt-CmUpyuW5.mjs +0 -43
  1173. package/dist/receipt-CmUpyuW5.mjs.map +0 -1
  1174. package/dist/redirect-BtiMkehU.mjs +0 -19
  1175. package/dist/redirect-BtiMkehU.mjs.map +0 -1
  1176. package/dist/redirect-DcmNMvOs.mjs +0 -423
  1177. package/dist/redirect-DcmNMvOs.mjs.map +0 -1
  1178. package/dist/redirect-paths-K5i3xYfR.mjs +0 -36
  1179. package/dist/redirect-paths-K5i3xYfR.mjs.map +0 -1
  1180. package/dist/redirects-BA_TvtuH.mjs +0 -148
  1181. package/dist/redirects-BA_TvtuH.mjs.map +0 -1
  1182. package/dist/redirects-BIrRvgn4.mjs +0 -446
  1183. package/dist/redirects-BIrRvgn4.mjs.map +0 -1
  1184. package/dist/registry-DymfZkAN.mjs +0 -8374
  1185. package/dist/registry-DymfZkAN.mjs.map +0 -1
  1186. package/dist/relations-DrEs3Sc1.mjs +0 -789
  1187. package/dist/relations-DrEs3Sc1.mjs.map +0 -1
  1188. package/dist/request-meta-o8RIf9pa.mjs +0 -141
  1189. package/dist/request-meta-o8RIf9pa.mjs.map +0 -1
  1190. package/dist/resolve-CVy9xgy_.mjs +0 -102
  1191. package/dist/resolve-CVy9xgy_.mjs.map +0 -1
  1192. package/dist/route-cache-DAG5dPhh.mjs +0 -20
  1193. package/dist/route-cache-DAG5dPhh.mjs.map +0 -1
  1194. package/dist/route-wire-Xbsu8Vih.mjs +0 -197
  1195. package/dist/route-wire-Xbsu8Vih.mjs.map +0 -1
  1196. package/dist/routes-YQkSOsws.mjs +0 -272
  1197. package/dist/routes-YQkSOsws.mjs.map +0 -1
  1198. package/dist/runner-CLorw5vo.mjs +0 -6669
  1199. package/dist/runner-CLorw5vo.mjs.map +0 -1
  1200. package/dist/runner-g1A9P-wD.d.mts +0 -73
  1201. package/dist/runner-g1A9P-wD.d.mts.map +0 -1
  1202. package/dist/schema-Bss8qImF.mjs +0 -13
  1203. package/dist/schema-Bss8qImF.mjs.map +0 -1
  1204. package/dist/schema-C036pqEw.mjs +0 -815
  1205. package/dist/schema-C036pqEw.mjs.map +0 -1
  1206. package/dist/scopes-C_SoYl9x.mjs +0 -34
  1207. package/dist/scopes-C_SoYl9x.mjs.map +0 -1
  1208. package/dist/search-uNqCgePJ.mjs +0 -450
  1209. package/dist/search-uNqCgePJ.mjs.map +0 -1
  1210. package/dist/secrets-Cc_O3Kp-.mjs +0 -369
  1211. package/dist/secrets-Cc_O3Kp-.mjs.map +0 -1
  1212. package/dist/sections-BLusMa96.mjs +0 -346
  1213. package/dist/sections-BLusMa96.mjs.map +0 -1
  1214. package/dist/seo-BodxIpws.mjs +0 -188
  1215. package/dist/seo-BodxIpws.mjs.map +0 -1
  1216. package/dist/seo-DaMYIQY8.mjs +0 -133
  1217. package/dist/seo-DaMYIQY8.mjs.map +0 -1
  1218. package/dist/service-BuM1BRsA.mjs +0 -150
  1219. package/dist/service-BuM1BRsA.mjs.map +0 -1
  1220. package/dist/session-user-2DpQDMKw.mjs +0 -61
  1221. package/dist/session-user-2DpQDMKw.mjs.map +0 -1
  1222. package/dist/settings-B3ZmPF_8.mjs +0 -73
  1223. package/dist/settings-B3ZmPF_8.mjs.map +0 -1
  1224. package/dist/settings-P5hwPX6_.mjs +0 -66
  1225. package/dist/settings-P5hwPX6_.mjs.map +0 -1
  1226. package/dist/settings-yIqoN-Ok.mjs +0 -519
  1227. package/dist/settings-yIqoN-Ok.mjs.map +0 -1
  1228. package/dist/setup-complete-eu6MUQnt.mjs +0 -65
  1229. package/dist/setup-complete-eu6MUQnt.mjs.map +0 -1
  1230. package/dist/setup-nonce-CyPOapqY.mjs +0 -25
  1231. package/dist/setup-nonce-CyPOapqY.mjs.map +0 -1
  1232. package/dist/site-domain-8lEJl_0U.mjs +0 -131
  1233. package/dist/site-domain-8lEJl_0U.mjs.map +0 -1
  1234. package/dist/site-settings-uPkW0e6o.mjs +0 -50
  1235. package/dist/site-settings-uPkW0e6o.mjs.map +0 -1
  1236. package/dist/site-url-25SGVXwL.mjs +0 -45
  1237. package/dist/site-url-25SGVXwL.mjs.map +0 -1
  1238. package/dist/sitemap-name-DTK7CYnY.mjs +0 -26
  1239. package/dist/sitemap-name-DTK7CYnY.mjs.map +0 -1
  1240. package/dist/slug-BEDl2IJY.mjs +0 -16
  1241. package/dist/slug-BEDl2IJY.mjs.map +0 -1
  1242. package/dist/snapshot-CvkIBRLY.mjs +0 -414
  1243. package/dist/snapshot-CvkIBRLY.mjs.map +0 -1
  1244. package/dist/ssrf-mcCKMH6B.mjs +0 -406
  1245. package/dist/ssrf-mcCKMH6B.mjs.map +0 -1
  1246. package/dist/stage-BQfGzGOy.mjs +0 -662
  1247. package/dist/stage-BQfGzGOy.mjs.map +0 -1
  1248. package/dist/staged-B5vQGeSf.mjs +0 -686
  1249. package/dist/staged-B5vQGeSf.mjs.map +0 -1
  1250. package/dist/state-dO6t6OxV.mjs +0 -178
  1251. package/dist/state-dO6t6OxV.mjs.map +0 -1
  1252. package/dist/status-DSURZwKS.mjs +0 -30
  1253. package/dist/status-DSURZwKS.mjs.map +0 -1
  1254. package/dist/storage-query-Cy0SZ8iG.d.mts +0 -1619
  1255. package/dist/storage-query-Cy0SZ8iG.d.mts.map +0 -1
  1256. package/dist/tar-DWzcUZ_Q.mjs +0 -449
  1257. package/dist/tar-DWzcUZ_Q.mjs.map +0 -1
  1258. package/dist/target-C9htUbrT.mjs +0 -27
  1259. package/dist/target-C9htUbrT.mjs.map +0 -1
  1260. package/dist/taxonomies-By2aGvq2.mjs +0 -729
  1261. package/dist/taxonomies-By2aGvq2.mjs.map +0 -1
  1262. package/dist/taxonomies-CVRd_jz0.mjs +0 -937
  1263. package/dist/taxonomies-CVRd_jz0.mjs.map +0 -1
  1264. package/dist/taxonomy-BG_xu2Qf.mjs +0 -563
  1265. package/dist/taxonomy-BG_xu2Qf.mjs.map +0 -1
  1266. package/dist/tokens-U5vzgSrM.mjs +0 -171
  1267. package/dist/tokens-U5vzgSrM.mjs.map +0 -1
  1268. package/dist/transfer-DA0OSfaT.mjs +0 -8873
  1269. package/dist/transfer-DA0OSfaT.mjs.map +0 -1
  1270. package/dist/transfer-Pyf3d7ka.mjs +0 -166
  1271. package/dist/transfer-Pyf3d7ka.mjs.map +0 -1
  1272. package/dist/transfer-download-cX7SuWEy.mjs +0 -33
  1273. package/dist/transfer-download-cX7SuWEy.mjs.map +0 -1
  1274. package/dist/transformations-DczubD4j.mjs +0 -196
  1275. package/dist/transformations-DczubD4j.mjs.map +0 -1
  1276. package/dist/transport-DtIrjEFO.mjs +0 -137
  1277. package/dist/transport-DtIrjEFO.mjs.map +0 -1
  1278. package/dist/trusted-proxy-CDRd5Kmw.mjs +0 -51
  1279. package/dist/trusted-proxy-CDRd5Kmw.mjs.map +0 -1
  1280. package/dist/turnstile-Ct5YuFNY.mjs +0 -58
  1281. package/dist/turnstile-Ct5YuFNY.mjs.map +0 -1
  1282. package/dist/types-Bgujop4S.d.mts +0 -374
  1283. package/dist/types-Bgujop4S.d.mts.map +0 -1
  1284. package/dist/types-BirHUEXt.mjs +0 -18
  1285. package/dist/types-BirHUEXt.mjs.map +0 -1
  1286. package/dist/types-BqJgTL_y.d.mts +0 -293
  1287. package/dist/types-BqJgTL_y.d.mts.map +0 -1
  1288. package/dist/types-C-lrOt9T.d.mts +0 -87
  1289. package/dist/types-C-lrOt9T.d.mts.map +0 -1
  1290. package/dist/types-CCEHAhOv.d.mts +0 -916
  1291. package/dist/types-CCEHAhOv.d.mts.map +0 -1
  1292. package/dist/types-CLVwYRBr.d.mts +0 -227
  1293. package/dist/types-CLVwYRBr.d.mts.map +0 -1
  1294. package/dist/types-DVbTb4Hk.mjs +0 -77
  1295. package/dist/types-DVbTb4Hk.mjs.map +0 -1
  1296. package/dist/types-Ddku19Zw.d.mts +0 -209
  1297. package/dist/types-Ddku19Zw.d.mts.map +0 -1
  1298. package/dist/types-FIiGQ3PE.mjs +0 -16
  1299. package/dist/types-FIiGQ3PE.mjs.map +0 -1
  1300. package/dist/types-OauzCOY0.mjs +0 -37
  1301. package/dist/types-OauzCOY0.mjs.map +0 -1
  1302. package/dist/types-mQGTpP-4.d.mts +0 -1741
  1303. package/dist/types-mQGTpP-4.d.mts.map +0 -1
  1304. package/dist/types-nbjz3Mgm.d.mts +0 -125
  1305. package/dist/types-nbjz3Mgm.d.mts.map +0 -1
  1306. package/dist/update-check-hW32-0pf.mjs +0 -161
  1307. package/dist/update-check-hW32-0pf.mjs.map +0 -1
  1308. package/dist/upload-attempts-Bpik1TLF.mjs +0 -32
  1309. package/dist/upload-attempts-Bpik1TLF.mjs.map +0 -1
  1310. package/dist/url-pattern-CJeCyNij.mjs +0 -41
  1311. package/dist/url-pattern-CJeCyNij.mjs.map +0 -1
  1312. package/dist/user-nQInBZbE.mjs +0 -171
  1313. package/dist/user-nQInBZbE.mjs.map +0 -1
  1314. package/dist/utils-govudc_U.mjs +0 -442
  1315. package/dist/utils-govudc_U.mjs.map +0 -1
  1316. package/dist/validate-BxLvcDYh.mjs +0 -524
  1317. package/dist/validate-BxLvcDYh.mjs.map +0 -1
  1318. package/dist/validate-mnoVfASU.d.mts +0 -468
  1319. package/dist/validate-mnoVfASU.d.mts.map +0 -1
  1320. package/dist/validation-DQDEvh87.mjs +0 -221
  1321. package/dist/validation-DQDEvh87.mjs.map +0 -1
  1322. package/dist/version-BOFfLiVT.mjs +0 -49
  1323. package/dist/version-BOFfLiVT.mjs.map +0 -1
  1324. package/dist/version-Dcvx_C9g.mjs +0 -7
  1325. package/dist/version-Dcvx_C9g.mjs.map +0 -1
  1326. package/dist/version-DzTJ3gD7.mjs +0 -9
  1327. package/dist/version-DzTJ3gD7.mjs.map +0 -1
  1328. package/dist/video-BX7AI5nJ.mjs +0 -54
  1329. package/dist/video-BX7AI5nJ.mjs.map +0 -1
  1330. package/dist/virtual-modules-CU29aip9.mjs +0 -515
  1331. package/dist/virtual-modules-CU29aip9.mjs.map +0 -1
  1332. package/dist/widgets-HIeFmZxt.mjs +0 -121
  1333. package/dist/widgets-HIeFmZxt.mjs.map +0 -1
  1334. package/dist/wxr-taxonomies-DyOGhl8W.mjs +0 -454
  1335. package/dist/wxr-taxonomies-DyOGhl8W.mjs.map +0 -1
  1336. package/dist/zod-generator-VxCPVDpo.mjs +0 -425
  1337. package/dist/zod-generator-VxCPVDpo.mjs.map +0 -1
  1338. /package/dist/{ssrf-BBXcxG-f.mjs → ssrf-DM0E-D_8.mjs} +0 -0
@@ -1,174 +0,0 @@
1
- //#region src/transfer/format/limits.ts
2
- /**
3
- * Hard limits for site packages and transfer operations.
4
- *
5
- * Package limits are part of the format contract: an exporter must never
6
- * produce a package that exceeds them and a reader must reject one that does
7
- * before doing expensive work. Operation limits bound one `advance` step so it
8
- * fits a Workers request on D1.
9
- */
10
- const MiB = 1024 * 1024;
11
- const TRANSFER_LIMITS = Object.freeze({
12
- manifestBytes: 8 * MiB,
13
- recordLineBytes: 19e5,
14
- chunkBytes: 4 * MiB,
15
- chunkRecords: 1e3,
16
- totalRecords: 5e6,
17
- jsonDepth: 64,
18
- totalFiles: 1e6,
19
- indexChunks: 1e3,
20
- defaultMaxBlobBytes: 50 * MiB,
21
- idLength: 1024,
22
- shortString: 4096,
23
- stepQueryCeiling: 900,
24
- stepQueries: 150,
25
- stepClosingQueries: 2,
26
- stepBytes: 32 * MiB,
27
- d1BindParameters: 100,
28
- leaseSeconds: 300,
29
- pendingImportTtlSeconds: 1440 * 60,
30
- exportTtlSeconds: 10080 * 60,
31
- approvalTtlSeconds: 900,
32
- exportFenceAttempts: 3,
33
- verificationMismatches: 50,
34
- planIssues: 500
35
- });
36
- /**
37
- * Rows per multi-row INSERT so a statement stays within D1's bound-parameter
38
- * limit. Returns 0 when a single row needs more parameters than the limit;
39
- * callers then insert core columns first and set the rest with batched
40
- * UPDATEs.
41
- */
42
- function rowsPerInsert(columnCount) {
43
- if (!Number.isInteger(columnCount) || columnCount < 1) throw new RangeError(`Invalid column count ${columnCount}`);
44
- return Math.floor(TRANSFER_LIMITS.d1BindParameters / columnCount);
45
- }
46
-
47
- //#endregion
48
- //#region src/transfer/format/canonical.ts
49
- /**
50
- * Canonical JSON serialization for site packages.
51
- *
52
- * Rules (normative for formatVersion "1"):
53
- * - object keys are sorted by UTF-16 code unit order ({@link compareUtf16});
54
- * - no insignificant whitespace;
55
- * - strings and numbers are encoded exactly as `JSON.stringify` encodes them;
56
- * - object properties whose value is `undefined` are omitted;
57
- * - `undefined` inside an array, non-finite numbers, and any value that is not
58
- * a plain object, array, string, finite number, boolean, or `null` are
59
- * rejected;
60
- * - nesting depth is at most {@link TRANSFER_LIMITS.jsonDepth} containers
61
- * (the root object or array is depth 1).
62
- *
63
- * The manifest, every NDJSON line, the plan, the receipt, and logical digests
64
- * all use this one implementation.
65
- */
66
- var CanonicalJsonError = class extends Error {
67
- path;
68
- constructor(message, path) {
69
- super(`${message} at ${path}`);
70
- this.name = "CanonicalJsonError";
71
- this.path = path;
72
- }
73
- };
74
- function compareUtf16(a, b) {
75
- if (a === b) return 0;
76
- return a < b ? -1 : 1;
77
- }
78
- function canonicalJson(value, options = {}) {
79
- const maxDepth = options.maxDepth ?? TRANSFER_LIMITS.jsonDepth;
80
- const parts = [];
81
- write(value, parts, 0, maxDepth, "$");
82
- return parts.join("");
83
- }
84
- function write(value, out, depth, maxDepth, path) {
85
- if (value === null) {
86
- out.push("null");
87
- return;
88
- }
89
- switch (typeof value) {
90
- case "string":
91
- out.push(JSON.stringify(value));
92
- return;
93
- case "number":
94
- if (!Number.isFinite(value)) throw new CanonicalJsonError("Non-finite number", path);
95
- out.push(JSON.stringify(value));
96
- return;
97
- case "boolean":
98
- out.push(value ? "true" : "false");
99
- return;
100
- case "object": break;
101
- default: throw new CanonicalJsonError(`Unsupported ${typeof value} value`, path);
102
- }
103
- if (depth + 1 > maxDepth) throw new CanonicalJsonError(`Nesting deeper than ${maxDepth}`, path);
104
- if (Array.isArray(value)) {
105
- out.push("[");
106
- for (let index = 0; index < value.length; index++) {
107
- if (index > 0) out.push(",");
108
- const item = value[index];
109
- if (item === void 0) throw new CanonicalJsonError("Undefined array item", `${path}[${index}]`);
110
- write(item, out, depth + 1, maxDepth, `${path}[${index}]`);
111
- }
112
- out.push("]");
113
- return;
114
- }
115
- const prototype = Object.getPrototypeOf(value);
116
- if (prototype !== Object.prototype && prototype !== null) throw new CanonicalJsonError("Non-plain object", path);
117
- const present = Object.entries(value).filter(([, item]) => item !== void 0).toSorted(([a], [b]) => compareUtf16(a, b));
118
- out.push("{");
119
- present.forEach(([key, item], index) => {
120
- if (index > 0) out.push(",");
121
- out.push(JSON.stringify(key), ":");
122
- write(item, out, depth + 1, maxDepth, `${path}.${key}`);
123
- });
124
- out.push("}");
125
- }
126
- /**
127
- * Container nesting depth of a JSON text, measured without parsing it so an
128
- * adversarial document cannot exhaust the parser's stack first. Returns
129
- * `Infinity` as soon as `limit` is exceeded.
130
- */
131
- function measureJsonDepth(text, limit = TRANSFER_LIMITS.jsonDepth) {
132
- let depth = 0;
133
- let max = 0;
134
- let inString = false;
135
- for (let index = 0; index < text.length; index++) {
136
- const code = text.charCodeAt(index);
137
- if (inString) {
138
- if (code === 92) index++;
139
- else if (code === 34) inString = false;
140
- continue;
141
- }
142
- if (code === 34) inString = true;
143
- else if (code === 123 || code === 91) {
144
- depth++;
145
- if (depth > max) {
146
- max = depth;
147
- if (max > limit) return Number.POSITIVE_INFINITY;
148
- }
149
- } else if (code === 125 || code === 93) depth--;
150
- }
151
- return max;
152
- }
153
- /**
154
- * Parse a JSON text that must already be in canonical form. Throws
155
- * {@link CanonicalJsonError} when the depth limit is exceeded, the text is not
156
- * valid JSON, or re-serializing the parsed value does not reproduce the text
157
- * byte for byte.
158
- */
159
- function parseCanonicalJson(text, options = {}) {
160
- const maxDepth = options.maxDepth ?? TRANSFER_LIMITS.jsonDepth;
161
- if (measureJsonDepth(text, maxDepth) > maxDepth) throw new CanonicalJsonError(`Nesting deeper than ${maxDepth}`, "$");
162
- let parsed;
163
- try {
164
- parsed = JSON.parse(text);
165
- } catch {
166
- throw new CanonicalJsonError("Invalid JSON", "$");
167
- }
168
- if (canonicalJson(parsed, { maxDepth }) !== text) throw new CanonicalJsonError("JSON is not in canonical form", "$");
169
- return parsed;
170
- }
171
-
172
- //#endregion
173
- export { parseCanonicalJson as a, measureJsonDepth as i, canonicalJson as n, TRANSFER_LIMITS as o, compareUtf16 as r, rowsPerInsert as s, CanonicalJsonError as t };
174
- //# sourceMappingURL=canonical-DjF_z6GI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canonical-DjF_z6GI.mjs","names":[],"sources":["../src/transfer/format/limits.ts","../src/transfer/format/canonical.ts"],"sourcesContent":["/**\n * Hard limits for site packages and transfer operations.\n *\n * Package limits are part of the format contract: an exporter must never\n * produce a package that exceeds them and a reader must reject one that does\n * before doing expensive work. Operation limits bound one `advance` step so it\n * fits a Workers request on D1.\n */\n\nconst MiB = 1024 * 1024;\n\nexport const TRANSFER_LIMITS = Object.freeze({\n\t/** Maximum `manifest.json` size in bytes. */\n\tmanifestBytes: 8 * MiB,\n\t/**\n\t * Maximum bytes in one NDJSON line, excluding the newline. Kept under D1's\n\t * 2 MB row/statement ceiling so every record can be written in one row.\n\t */\n\trecordLineBytes: 1_900_000,\n\t/** Maximum bytes in one record or index chunk file. */\n\tchunkBytes: 4 * MiB,\n\t/** Maximum records (or index entries) in one chunk file. */\n\tchunkRecords: 1000,\n\t/** Maximum records across every kind. */\n\ttotalRecords: 5_000_000,\n\t/** Maximum container nesting of any JSON value (root = 1). */\n\tjsonDepth: 64,\n\t/** Maximum files (record chunks + media blobs) listed by the index. */\n\ttotalFiles: 1_000_000,\n\t/** Maximum index chunk files listed by the manifest. */\n\tindexChunks: 1000,\n\t/** Default per-blob ceiling; the target's `maxUploadSize` overrides it. */\n\tdefaultMaxBlobBytes: 50 * MiB,\n\n\t/** Maximum length of a portable id (including synthetic composite ids). */\n\tidLength: 1024,\n\t/** Maximum length of short strings: slugs, names, labels, locales, mime types. */\n\tshortString: 4096,\n\n\t/** Operation step: stop starting work once this many queries ran in the request. */\n\tstepQueryCeiling: 900,\n\t/** Operation step: queries a unit of work may use; checked before starting it. */\n\tstepQueries: 150,\n\t/**\n\t * Operation step: queries kept back from the ceiling for the writes that\n\t * end a step once no more units start (a checkpoint and the lease\n\t * release, or the read and write that record a failed step).\n\t */\n\tstepClosingQueries: 2,\n\t/** Operation step: media bytes copied per step (a larger single blob gets its own step). */\n\tstepBytes: 32 * MiB,\n\t/** D1 bound parameters per statement. */\n\td1BindParameters: 100,\n\n\t/** Operation lease duration. */\n\tleaseSeconds: 5 * 60,\n\t/** Uploading / analyzing / planned imports expire after this long. */\n\tpendingImportTtlSeconds: 24 * 60 * 60,\n\t/** Completed exports expire (and their staging is collected) after this long. */\n\texportTtlSeconds: 7 * 24 * 60 * 60,\n\t/**\n\t * MCP approval grant lifetime: a pending grant expires this long after it\n\t * is requested, and an approved one this long after it is approved.\n\t */\n\tapprovalTtlSeconds: 15 * 60,\n\t/** Export attempts before failing with TRANSFER_EXPORT_CONCURRENT_WRITES. */\n\texportFenceAttempts: 3,\n\t/** Maximum mismatches kept in a verification failure detail. */\n\tverificationMismatches: 50,\n\t/** Maximum warnings or blockers kept in a plan (the rest are summarized by count). */\n\tplanIssues: 500,\n});\n\nexport type TransferLimits = typeof TRANSFER_LIMITS;\n\n/**\n * Rows per multi-row INSERT so a statement stays within D1's bound-parameter\n * limit. Returns 0 when a single row needs more parameters than the limit;\n * callers then insert core columns first and set the rest with batched\n * UPDATEs.\n */\nexport function rowsPerInsert(columnCount: number): number {\n\tif (!Number.isInteger(columnCount) || columnCount < 1) {\n\t\tthrow new RangeError(`Invalid column count ${columnCount}`);\n\t}\n\treturn Math.floor(TRANSFER_LIMITS.d1BindParameters / columnCount);\n}\n","/**\n * Canonical JSON serialization for site packages.\n *\n * Rules (normative for formatVersion \"1\"):\n * - object keys are sorted by UTF-16 code unit order ({@link compareUtf16});\n * - no insignificant whitespace;\n * - strings and numbers are encoded exactly as `JSON.stringify` encodes them;\n * - object properties whose value is `undefined` are omitted;\n * - `undefined` inside an array, non-finite numbers, and any value that is not\n * a plain object, array, string, finite number, boolean, or `null` are\n * rejected;\n * - nesting depth is at most {@link TRANSFER_LIMITS.jsonDepth} containers\n * (the root object or array is depth 1).\n *\n * The manifest, every NDJSON line, the plan, the receipt, and logical digests\n * all use this one implementation.\n */\n\nimport { TRANSFER_LIMITS } from \"./limits.js\";\n\nexport class CanonicalJsonError extends Error {\n\treadonly path: string;\n\n\tconstructor(message: string, path: string) {\n\t\tsuper(`${message} at ${path}`);\n\t\tthis.name = \"CanonicalJsonError\";\n\t\tthis.path = path;\n\t}\n}\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue };\n\nexport function compareUtf16(a: string, b: string): number {\n\tif (a === b) return 0;\n\treturn a < b ? -1 : 1;\n}\n\nexport function canonicalJson(value: unknown, options: { maxDepth?: number } = {}): string {\n\tconst maxDepth = options.maxDepth ?? TRANSFER_LIMITS.jsonDepth;\n\tconst parts: string[] = [];\n\twrite(value, parts, 0, maxDepth, \"$\");\n\treturn parts.join(\"\");\n}\n\nfunction write(value: unknown, out: string[], depth: number, maxDepth: number, path: string): void {\n\tif (value === null) {\n\t\tout.push(\"null\");\n\t\treturn;\n\t}\n\tswitch (typeof value) {\n\t\tcase \"string\":\n\t\t\tout.push(JSON.stringify(value));\n\t\t\treturn;\n\t\tcase \"number\":\n\t\t\tif (!Number.isFinite(value)) throw new CanonicalJsonError(\"Non-finite number\", path);\n\t\t\tout.push(JSON.stringify(value));\n\t\t\treturn;\n\t\tcase \"boolean\":\n\t\t\tout.push(value ? \"true\" : \"false\");\n\t\t\treturn;\n\t\tcase \"object\":\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow new CanonicalJsonError(`Unsupported ${typeof value} value`, path);\n\t}\n\n\tif (depth + 1 > maxDepth) {\n\t\tthrow new CanonicalJsonError(`Nesting deeper than ${maxDepth}`, path);\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tout.push(\"[\");\n\t\tfor (let index = 0; index < value.length; index++) {\n\t\t\tif (index > 0) out.push(\",\");\n\t\t\tconst item: unknown = value[index];\n\t\t\tif (item === undefined)\n\t\t\t\tthrow new CanonicalJsonError(\"Undefined array item\", `${path}[${index}]`);\n\t\t\twrite(item, out, depth + 1, maxDepth, `${path}[${index}]`);\n\t\t}\n\t\tout.push(\"]\");\n\t\treturn;\n\t}\n\n\tconst prototype: unknown = Object.getPrototypeOf(value);\n\tif (prototype !== Object.prototype && prototype !== null) {\n\t\tthrow new CanonicalJsonError(\"Non-plain object\", path);\n\t}\n\tconst entries: Array<[string, unknown]> = Object.entries(value);\n\tconst present = entries\n\t\t.filter(([, item]) => item !== undefined)\n\t\t.toSorted(([a], [b]) => compareUtf16(a, b));\n\tout.push(\"{\");\n\tpresent.forEach(([key, item], index) => {\n\t\tif (index > 0) out.push(\",\");\n\t\tout.push(JSON.stringify(key), \":\");\n\t\twrite(item, out, depth + 1, maxDepth, `${path}.${key}`);\n\t});\n\tout.push(\"}\");\n}\n\n/**\n * Container nesting depth of a JSON text, measured without parsing it so an\n * adversarial document cannot exhaust the parser's stack first. Returns\n * `Infinity` as soon as `limit` is exceeded.\n */\nexport function measureJsonDepth(text: string, limit: number = TRANSFER_LIMITS.jsonDepth): number {\n\tlet depth = 0;\n\tlet max = 0;\n\tlet inString = false;\n\tfor (let index = 0; index < text.length; index++) {\n\t\tconst code = text.charCodeAt(index);\n\t\tif (inString) {\n\t\t\tif (code === 0x5c) index++;\n\t\t\telse if (code === 0x22) inString = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (code === 0x22) inString = true;\n\t\telse if (code === 0x7b || code === 0x5b) {\n\t\t\tdepth++;\n\t\t\tif (depth > max) {\n\t\t\t\tmax = depth;\n\t\t\t\tif (max > limit) return Number.POSITIVE_INFINITY;\n\t\t\t}\n\t\t} else if (code === 0x7d || code === 0x5d) depth--;\n\t}\n\treturn max;\n}\n\n/**\n * Parse a JSON text that must already be in canonical form. Throws\n * {@link CanonicalJsonError} when the depth limit is exceeded, the text is not\n * valid JSON, or re-serializing the parsed value does not reproduce the text\n * byte for byte.\n */\nexport function parseCanonicalJson(text: string, options: { maxDepth?: number } = {}): unknown {\n\tconst maxDepth = options.maxDepth ?? TRANSFER_LIMITS.jsonDepth;\n\tif (measureJsonDepth(text, maxDepth) > maxDepth) {\n\t\tthrow new CanonicalJsonError(`Nesting deeper than ${maxDepth}`, \"$\");\n\t}\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(text);\n\t} catch {\n\t\tthrow new CanonicalJsonError(\"Invalid JSON\", \"$\");\n\t}\n\tif (canonicalJson(parsed, { maxDepth }) !== text) {\n\t\tthrow new CanonicalJsonError(\"JSON is not in canonical form\", \"$\");\n\t}\n\treturn parsed;\n}\n"],"mappings":"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"}
@@ -1,362 +0,0 @@
1
- import { t as validateIdentifier } from "./validate-DANX1-Qi.mjs";
2
- import { u as isPostgres, y as tableExists } from "./dialect-helpers-7_IqPdh9.mjs";
3
- import { sql } from "kysely";
4
-
5
- //#region src/media/usage/capture-triggers.ts
6
- const POSTGRES_TRIGGER_FUNCTION = "emdash_media_usage_capture_work";
7
- const POSTGRES_IDENTIFIER_LIMIT = 63;
8
- const CAPTURE_TRIGGER_VERSION = 1;
9
- const OWNED_TRIGGER_PREFIX = "emdash_mu_";
10
- const MAX_OWNED_CAPTURE_TRIGGERS = 100;
11
- const WHITESPACE_PATTERN = /\s+/g;
12
- const TRAILING_SEMICOLON_PATTERN = /;$/;
13
- async function installMediaUsageCaptureTriggers(db, identity, options = {}) {
14
- const identifiers = await captureIdentifiers(identity);
15
- if (isPostgres(db)) await installPostgresFunction(db);
16
- const installedNames = await listOwnedCaptureTriggers(db, identifiers.tableName, MAX_OWNED_CAPTURE_TRIGGERS + 1);
17
- if (installedNames.length > MAX_OWNED_CAPTURE_TRIGGERS) throw new Error("Media usage capture trigger set exceeds the activation limit");
18
- if (await hasExactCaptureTriggers(db, identifiers, identity, installedNames)) return;
19
- await assertCaptureLifecycle(db, identity, ["installing"]);
20
- const expectedNames = new Set(Object.values(identifiers.triggerNames));
21
- const retainedNames = new Set(options.replaceExisting === false ? installedNames.filter((name) => expectedNames.has(name)) : []);
22
- await removeCaptureTriggers(db, identifiers.tableName, installedNames.filter((name) => !retainedNames.has(name)));
23
- for (const operation of captureOperations) {
24
- if (retainedNames.has(identifiers.triggerNames[operation])) continue;
25
- if (isPostgres(db)) await postgresCreateTrigger(db, identifiers.tableName, identifiers.triggerNames[operation], operation, identity);
26
- else await sqliteCreateTrigger(db, identifiers.tableName, identifiers.triggerNames[operation], operation, identity);
27
- }
28
- await assertExpectedTriggerSet(db, identifiers, identity);
29
- }
30
- async function verifyMediaUsageCaptureTriggers(db, identity) {
31
- const identifiers = await captureIdentifiers(identity);
32
- if (!await tableExists(db, identifiers.tableName)) return false;
33
- return hasExactCaptureTriggers(db, identifiers, identity, await listOwnedCaptureTriggers(db, identifiers.tableName, MAX_OWNED_CAPTURE_TRIGGERS + 1));
34
- }
35
- const captureOperations = [
36
- "insert",
37
- "update",
38
- "delete"
39
- ];
40
- async function captureIdentifiers(identity) {
41
- validateIdentifier(identity.collectionSlug, "collection slug");
42
- const tableName = `ec_${identity.collectionSlug}`;
43
- validateIdentifier(tableName, "content table");
44
- const digest = await identityDigest(`${CAPTURE_TRIGGER_VERSION}:${identity.collectionId}:${identity.collectionSlug}`);
45
- const triggerNames = {
46
- insert: `emdash_mu_${digest}_ai`,
47
- update: `emdash_mu_${digest}_au`,
48
- delete: `emdash_mu_${digest}_ad`
49
- };
50
- for (const triggerName of Object.values(triggerNames)) {
51
- validateIdentifier(triggerName, "media usage trigger");
52
- if (triggerName.length > POSTGRES_IDENTIFIER_LIMIT) throw new Error(`Media usage trigger name exceeds ${POSTGRES_IDENTIFIER_LIMIT} bytes`);
53
- }
54
- return {
55
- tableName,
56
- triggerNames
57
- };
58
- }
59
- async function identityDigest(value) {
60
- const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(value));
61
- return Array.from(new Uint8Array(digest).slice(0, 16), (byte) => byte.toString(16).padStart(2, "0")).join("");
62
- }
63
- async function removeCaptureTriggers(db, tableName, triggerNames) {
64
- for (const triggerName of triggerNames) {
65
- validateIdentifier(triggerName, "media usage trigger");
66
- if (isPostgres(db)) await sql`
67
- DROP TRIGGER IF EXISTS ${sql.ref(triggerName)} ON ${sql.ref(tableName)}
68
- `.execute(db);
69
- else await sql`DROP TRIGGER IF EXISTS ${sql.ref(triggerName)}`.execute(db);
70
- }
71
- }
72
- async function listOwnedCaptureTriggers(db, tableName, limit) {
73
- const limitClause = limit === void 0 ? sql`` : sql`LIMIT ${limit}`;
74
- if (isPostgres(db)) return (await sql`
75
- SELECT trigger.tgname AS name
76
- FROM pg_trigger AS trigger
77
- INNER JOIN pg_class AS relation ON relation.oid = trigger.tgrelid
78
- INNER JOIN pg_namespace AS namespace ON namespace.oid = relation.relnamespace
79
- WHERE namespace.nspname = current_schema()
80
- AND relation.relname = ${tableName}
81
- AND NOT trigger.tgisinternal
82
- AND left(trigger.tgname, 10) = ${OWNED_TRIGGER_PREFIX}
83
- ${limitClause}
84
- `.execute(db)).rows.map((row) => row.name);
85
- return (await sql`
86
- SELECT name
87
- FROM sqlite_master
88
- WHERE type = 'trigger'
89
- AND tbl_name = ${tableName}
90
- AND substr(name, 1, 10) = ${OWNED_TRIGGER_PREFIX}
91
- ${limitClause}
92
- `.execute(db)).rows.map((row) => row.name);
93
- }
94
- async function hasExactCaptureTriggers(db, identifiers, identity, installedNames) {
95
- const expectedNames = new Set(Object.values(identifiers.triggerNames));
96
- if (installedNames.length !== expectedNames.size || installedNames.some((name) => !expectedNames.has(name))) return false;
97
- if (isPostgres(db)) {
98
- const result = await sql`
99
- SELECT
100
- trigger.tgname AS name,
101
- trigger.tgtype AS trigger_type,
102
- procedure.proname AS function_name,
103
- encode(trigger.tgargs, 'hex') AS arguments_hex,
104
- trigger.tgenabled AS enabled,
105
- trigger.tgqual IS NOT NULL AS has_when
106
- FROM pg_trigger AS trigger
107
- INNER JOIN pg_class AS relation ON relation.oid = trigger.tgrelid
108
- INNER JOIN pg_namespace AS namespace ON namespace.oid = relation.relnamespace
109
- INNER JOIN pg_proc AS procedure ON procedure.oid = trigger.tgfoid
110
- INNER JOIN pg_namespace AS function_namespace ON function_namespace.oid = procedure.pronamespace
111
- WHERE namespace.nspname = current_schema()
112
- AND function_namespace.nspname = current_schema()
113
- AND relation.relname = ${identifiers.tableName}
114
- AND NOT trigger.tgisinternal
115
- AND trigger.tgconstraint = 0
116
- AND NOT trigger.tgdeferrable
117
- AND NOT trigger.tginitdeferred
118
- AND trigger.tgattr = ''::int2vector
119
- AND left(trigger.tgname, 10) = ${OWNED_TRIGGER_PREFIX}
120
- `.execute(db);
121
- const expectedArguments = triggerArgumentsHex(identity);
122
- return captureOperations.every((operation) => {
123
- const row = result.rows.find((candidate) => candidate.name === identifiers.triggerNames[operation]);
124
- return row?.function_name === POSTGRES_TRIGGER_FUNCTION && Number(row.trigger_type) === postgresTriggerType(operation) && row.arguments_hex === expectedArguments && row.enabled === "O" && row.has_when === false;
125
- });
126
- }
127
- const result = await sql`
128
- SELECT name, sql AS definition
129
- FROM sqlite_master
130
- WHERE type = 'trigger'
131
- AND tbl_name = ${identifiers.tableName}
132
- AND substr(name, 1, 10) = ${OWNED_TRIGGER_PREFIX}
133
- `.execute(db);
134
- return captureOperations.every((operation) => {
135
- const row = result.rows.find((candidate) => candidate.name === identifiers.triggerNames[operation]);
136
- const contentId = operation === "delete" ? sql`OLD.id` : sql`NEW.id`;
137
- const expected = sqliteTriggerSql(identifiers.tableName, identifiers.triggerNames[operation], operationSql(operation), contentId, identity).compile(db).sql;
138
- return row ? normalizeDdl(row.definition) === normalizeDdl(expected) : false;
139
- });
140
- }
141
- function triggerArgumentsHex(identity) {
142
- const bytes = new TextEncoder().encode(`${identity.collectionId}\0${identity.collectionSlug}\0`);
143
- return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
144
- }
145
- function postgresTriggerType(operation) {
146
- switch (operation) {
147
- case "insert": return 5;
148
- case "update": return 17;
149
- case "delete": return 9;
150
- }
151
- }
152
- function normalizeDdl(definition) {
153
- return definition.replace(WHITESPACE_PATTERN, " ").trim().replace(TRAILING_SEMICOLON_PATTERN, "");
154
- }
155
- async function assertCaptureLifecycle(db, identity, allowedStates) {
156
- const lifecycle = await db.selectFrom("_emdash_media_usage_index_status").select("capture_state").where("adapter_id", "=", "content-media").where("scope_type", "=", "collection").where("scope_key", "=", identity.collectionSlug).where("collection_id", "=", identity.collectionId).executeTakeFirst();
157
- if (!lifecycle?.capture_state || !allowedStates.includes(lifecycle.capture_state)) throw new Error("Media usage capture trigger changes require a fenced collection lifecycle");
158
- }
159
- async function assertExpectedTriggerSet(db, identifiers, identity) {
160
- if (!await hasExactCaptureTriggers(db, identifiers, identity, await listOwnedCaptureTriggers(db, identifiers.tableName, MAX_OWNED_CAPTURE_TRIGGERS + 1))) throw new Error("Media usage capture trigger installation is incomplete");
161
- }
162
- async function installPostgresFunction(db) {
163
- await sql`
164
- CREATE OR REPLACE FUNCTION ${sql.ref(POSTGRES_TRIGGER_FUNCTION)}()
165
- RETURNS trigger
166
- LANGUAGE plpgsql
167
- AS $function$
168
- DECLARE
169
- v_collection_id text := TG_ARGV[0];
170
- v_collection_slug text := TG_ARGV[1];
171
- v_content_id text;
172
- v_epoch bigint;
173
- v_now text := to_char(
174
- clock_timestamp() AT TIME ZONE 'UTC',
175
- 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"'
176
- );
177
- BEGIN
178
- IF TG_OP = 'DELETE' THEN
179
- v_content_id := OLD.id;
180
- ELSE
181
- v_content_id := NEW.id;
182
- END IF;
183
-
184
- UPDATE _emdash_media_usage_index_status
185
- SET change_epoch = change_epoch + 1,
186
- status = CASE WHEN status = 'complete' THEN 'stale' ELSE status END,
187
- completed_at = CASE WHEN status = 'complete' THEN NULL ELSE completed_at END,
188
- updated_at = v_now
189
- WHERE adapter_id = 'content-media'
190
- AND scope_type = 'collection'
191
- AND scope_key = v_collection_slug
192
- AND collection_id = v_collection_id
193
- AND capture_state = 'active'
194
- AND EXISTS (
195
- SELECT 1
196
- FROM _emdash_collections AS collection
197
- WHERE collection.id = v_collection_id
198
- AND collection.slug = v_collection_slug
199
- )
200
- RETURNING change_epoch INTO v_epoch;
201
-
202
- IF NOT FOUND THEN
203
- RAISE EXCEPTION USING
204
- ERRCODE = 'P0001',
205
- MESSAGE = 'media usage capture inactive';
206
- END IF;
207
-
208
- INSERT INTO _emdash_media_usage_work (
209
- collection_id,
210
- collection_slug,
211
- content_id,
212
- change_epoch,
213
- work_version,
214
- state,
215
- attempt_count,
216
- next_attempt_at,
217
- lease_token,
218
- lease_expires_at,
219
- last_attempted_at,
220
- last_error_code,
221
- created_at,
222
- updated_at
223
- )
224
- VALUES (
225
- v_collection_id,
226
- v_collection_slug,
227
- v_content_id,
228
- v_epoch,
229
- 1,
230
- 'pending',
231
- 0,
232
- v_now,
233
- NULL,
234
- NULL,
235
- NULL,
236
- NULL,
237
- v_now,
238
- v_now
239
- )
240
- ON CONFLICT (collection_id, content_id) DO UPDATE SET
241
- collection_slug = EXCLUDED.collection_slug,
242
- change_epoch = EXCLUDED.change_epoch,
243
- work_version = _emdash_media_usage_work.work_version + 1,
244
- state = 'pending',
245
- attempt_count = 0,
246
- next_attempt_at = EXCLUDED.next_attempt_at,
247
- lease_token = NULL,
248
- lease_expires_at = NULL,
249
- last_attempted_at = NULL,
250
- last_error_code = NULL,
251
- updated_at = EXCLUDED.updated_at;
252
-
253
- RETURN NULL;
254
- END;
255
- $function$
256
- `.execute(db);
257
- }
258
- async function postgresCreateTrigger(db, tableName, triggerName, operation, identity) {
259
- await sql`
260
- CREATE TRIGGER ${sql.ref(triggerName)}
261
- AFTER ${operationSql(operation)} ON ${sql.ref(tableName)}
262
- FOR EACH ROW
263
- EXECUTE FUNCTION ${sql.ref(POSTGRES_TRIGGER_FUNCTION)}(
264
- ${sql.lit(identity.collectionId)},
265
- ${sql.lit(identity.collectionSlug)}
266
- )
267
- `.execute(db);
268
- }
269
- async function sqliteCreateTrigger(db, tableName, triggerName, operation, identity) {
270
- const contentId = operation === "delete" ? sql`OLD.id` : sql`NEW.id`;
271
- await sqliteTriggerSql(tableName, triggerName, operationSql(operation), contentId, identity).execute(db);
272
- }
273
- function sqliteTriggerSql(tableName, triggerName, operation, contentId, identity) {
274
- return sql`
275
- CREATE TRIGGER ${sql.ref(triggerName)}
276
- AFTER ${operation} ON ${sql.ref(tableName)}
277
- FOR EACH ROW
278
- BEGIN
279
- UPDATE _emdash_media_usage_index_status
280
- SET change_epoch = change_epoch + 1,
281
- status = CASE WHEN status = 'complete' THEN 'stale' ELSE status END,
282
- completed_at = CASE WHEN status = 'complete' THEN NULL ELSE completed_at END,
283
- updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
284
- WHERE adapter_id = 'content-media'
285
- AND scope_type = 'collection'
286
- AND scope_key = ${sql.lit(identity.collectionSlug)}
287
- AND collection_id = ${sql.lit(identity.collectionId)}
288
- AND capture_state = 'active'
289
- AND EXISTS (
290
- SELECT 1
291
- FROM _emdash_collections AS collection
292
- WHERE collection.id = ${sql.lit(identity.collectionId)}
293
- AND collection.slug = ${sql.lit(identity.collectionSlug)}
294
- );
295
-
296
- SELECT CASE
297
- WHEN changes() <> 1 THEN RAISE(ABORT, 'media usage capture inactive')
298
- END;
299
-
300
- INSERT INTO _emdash_media_usage_work (
301
- collection_id,
302
- collection_slug,
303
- content_id,
304
- change_epoch,
305
- work_version,
306
- state,
307
- attempt_count,
308
- next_attempt_at,
309
- lease_token,
310
- lease_expires_at,
311
- last_attempted_at,
312
- last_error_code,
313
- created_at,
314
- updated_at
315
- )
316
- SELECT
317
- ${sql.lit(identity.collectionId)},
318
- ${sql.lit(identity.collectionSlug)},
319
- ${contentId},
320
- change_epoch,
321
- 1,
322
- 'pending',
323
- 0,
324
- strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
325
- NULL,
326
- NULL,
327
- NULL,
328
- NULL,
329
- strftime('%Y-%m-%dT%H:%M:%fZ', 'now'),
330
- strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
331
- FROM _emdash_media_usage_index_status
332
- WHERE adapter_id = 'content-media'
333
- AND scope_type = 'collection'
334
- AND scope_key = ${sql.lit(identity.collectionSlug)}
335
- AND collection_id = ${sql.lit(identity.collectionId)}
336
- AND capture_state = 'active'
337
- ON CONFLICT (collection_id, content_id) DO UPDATE SET
338
- collection_slug = excluded.collection_slug,
339
- change_epoch = excluded.change_epoch,
340
- work_version = _emdash_media_usage_work.work_version + 1,
341
- state = 'pending',
342
- attempt_count = 0,
343
- next_attempt_at = excluded.next_attempt_at,
344
- lease_token = NULL,
345
- lease_expires_at = NULL,
346
- last_attempted_at = NULL,
347
- last_error_code = NULL,
348
- updated_at = excluded.updated_at;
349
- END
350
- `;
351
- }
352
- function operationSql(operation) {
353
- switch (operation) {
354
- case "insert": return sql`INSERT`;
355
- case "update": return sql`UPDATE`;
356
- case "delete": return sql`DELETE`;
357
- }
358
- }
359
-
360
- //#endregion
361
- export { verifyMediaUsageCaptureTriggers as n, installMediaUsageCaptureTriggers as t };
362
- //# sourceMappingURL=capture-triggers-D7g3fOZj.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"capture-triggers-D7g3fOZj.mjs","names":[],"sources":["../src/media/usage/capture-triggers.ts"],"sourcesContent":["import { sql, type Kysely, type RawBuilder } from \"kysely\";\n\nimport { isPostgres, tableExists } from \"../../database/dialect-helpers.js\";\nimport type { Database } from \"../../database/types.js\";\nimport { validateIdentifier } from \"../../database/validate.js\";\n\nconst POSTGRES_TRIGGER_FUNCTION = \"emdash_media_usage_capture_work\";\nconst POSTGRES_IDENTIFIER_LIMIT = 63;\nconst CAPTURE_TRIGGER_VERSION = 1;\nconst OWNED_TRIGGER_PREFIX = \"emdash_mu_\";\nconst MAX_OWNED_CAPTURE_TRIGGERS = 100;\nconst WHITESPACE_PATTERN = /\\s+/g;\nconst TRAILING_SEMICOLON_PATTERN = /;$/;\n\nexport interface MediaUsageCaptureIdentity {\n\tcollectionId: string;\n\tcollectionSlug: string;\n}\n\ntype CaptureOperation = \"insert\" | \"update\" | \"delete\";\n\nexport async function installMediaUsageCaptureTriggers(\n\tdb: Kysely<Database>,\n\tidentity: MediaUsageCaptureIdentity,\n\toptions: { replaceExisting?: boolean } = {},\n): Promise<void> {\n\tconst identifiers = await captureIdentifiers(identity);\n\tif (isPostgres(db)) await installPostgresFunction(db);\n\tconst installedNames = await listOwnedCaptureTriggers(\n\t\tdb,\n\t\tidentifiers.tableName,\n\t\tMAX_OWNED_CAPTURE_TRIGGERS + 1,\n\t);\n\tif (installedNames.length > MAX_OWNED_CAPTURE_TRIGGERS) {\n\t\tthrow new Error(\"Media usage capture trigger set exceeds the activation limit\");\n\t}\n\tif (await hasExactCaptureTriggers(db, identifiers, identity, installedNames)) {\n\t\treturn;\n\t}\n\n\tawait assertCaptureLifecycle(db, identity, [\"installing\"]);\n\tconst expectedNames = new Set(Object.values(identifiers.triggerNames));\n\tconst retainedNames = new Set(\n\t\toptions.replaceExisting === false\n\t\t\t? installedNames.filter((name) => expectedNames.has(name))\n\t\t\t: [],\n\t);\n\tawait removeCaptureTriggers(\n\t\tdb,\n\t\tidentifiers.tableName,\n\t\tinstalledNames.filter((name) => !retainedNames.has(name)),\n\t);\n\n\tfor (const operation of captureOperations) {\n\t\tif (retainedNames.has(identifiers.triggerNames[operation])) continue;\n\t\tif (isPostgres(db)) {\n\t\t\tawait postgresCreateTrigger(\n\t\t\t\tdb,\n\t\t\t\tidentifiers.tableName,\n\t\t\t\tidentifiers.triggerNames[operation],\n\t\t\t\toperation,\n\t\t\t\tidentity,\n\t\t\t);\n\t\t} else {\n\t\t\tawait sqliteCreateTrigger(\n\t\t\t\tdb,\n\t\t\t\tidentifiers.tableName,\n\t\t\t\tidentifiers.triggerNames[operation],\n\t\t\t\toperation,\n\t\t\t\tidentity,\n\t\t\t);\n\t\t}\n\t}\n\n\tawait assertExpectedTriggerSet(db, identifiers, identity);\n}\n\nexport async function verifyMediaUsageCaptureTriggers(\n\tdb: Kysely<Database>,\n\tidentity: MediaUsageCaptureIdentity,\n): Promise<boolean> {\n\tconst identifiers = await captureIdentifiers(identity);\n\tif (!(await tableExists(db, identifiers.tableName))) return false;\n\treturn hasExactCaptureTriggers(\n\t\tdb,\n\t\tidentifiers,\n\t\tidentity,\n\t\tawait listOwnedCaptureTriggers(db, identifiers.tableName, MAX_OWNED_CAPTURE_TRIGGERS + 1),\n\t);\n}\n\nexport async function removeMediaUsageCaptureTriggers(\n\tdb: Kysely<Database>,\n\tidentity: MediaUsageCaptureIdentity,\n): Promise<void> {\n\tconst identifiers = await captureIdentifiers(identity);\n\tif (!(await tableExists(db, identifiers.tableName))) return;\n\tawait assertCaptureLifecycle(db, identity, [\"installing\", \"deleting\"]);\n\tawait removeCaptureTriggers(\n\t\tdb,\n\t\tidentifiers.tableName,\n\t\tawait listOwnedCaptureTriggers(db, identifiers.tableName),\n\t);\n}\n\nconst captureOperations: readonly CaptureOperation[] = [\"insert\", \"update\", \"delete\"];\n\nasync function captureIdentifiers(identity: MediaUsageCaptureIdentity): Promise<{\n\ttableName: string;\n\ttriggerNames: Record<CaptureOperation, string>;\n}> {\n\tvalidateIdentifier(identity.collectionSlug, \"collection slug\");\n\tconst tableName = `ec_${identity.collectionSlug}`;\n\tvalidateIdentifier(tableName, \"content table\");\n\n\tconst digest = await identityDigest(\n\t\t`${CAPTURE_TRIGGER_VERSION}:${identity.collectionId}:${identity.collectionSlug}`,\n\t);\n\tconst triggerNames = {\n\t\tinsert: `emdash_mu_${digest}_ai`,\n\t\tupdate: `emdash_mu_${digest}_au`,\n\t\tdelete: `emdash_mu_${digest}_ad`,\n\t};\n\tfor (const triggerName of Object.values(triggerNames)) {\n\t\tvalidateIdentifier(triggerName, \"media usage trigger\");\n\t\tif (triggerName.length > POSTGRES_IDENTIFIER_LIMIT) {\n\t\t\tthrow new Error(`Media usage trigger name exceeds ${POSTGRES_IDENTIFIER_LIMIT} bytes`);\n\t\t}\n\t}\n\n\treturn { tableName, triggerNames };\n}\n\nasync function identityDigest(value: string): Promise<string> {\n\tconst digest = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(value));\n\treturn Array.from(new Uint8Array(digest).slice(0, 16), (byte) =>\n\t\tbyte.toString(16).padStart(2, \"0\"),\n\t).join(\"\");\n}\n\nasync function removeCaptureTriggers(\n\tdb: Kysely<Database>,\n\ttableName: string,\n\ttriggerNames: readonly string[],\n): Promise<void> {\n\tfor (const triggerName of triggerNames) {\n\t\tvalidateIdentifier(triggerName, \"media usage trigger\");\n\t\tif (isPostgres(db)) {\n\t\t\tawait sql`\n\t\t\t\tDROP TRIGGER IF EXISTS ${sql.ref(triggerName)} ON ${sql.ref(tableName)}\n\t\t\t`.execute(db);\n\t\t} else {\n\t\t\tawait sql`DROP TRIGGER IF EXISTS ${sql.ref(triggerName)}`.execute(db);\n\t\t}\n\t}\n}\n\nasync function listOwnedCaptureTriggers(\n\tdb: Kysely<Database>,\n\ttableName: string,\n\tlimit?: number,\n): Promise<string[]> {\n\tconst limitClause = limit === undefined ? sql`` : sql`LIMIT ${limit}`;\n\tif (isPostgres(db)) {\n\t\tconst result = await sql<{ name: string }>`\n\t\t\tSELECT trigger.tgname AS name\n\t\t\tFROM pg_trigger AS trigger\n\t\t\tINNER JOIN pg_class AS relation ON relation.oid = trigger.tgrelid\n\t\t\tINNER JOIN pg_namespace AS namespace ON namespace.oid = relation.relnamespace\n\t\t\tWHERE namespace.nspname = current_schema()\n\t\t\t\tAND relation.relname = ${tableName}\n\t\t\t\tAND NOT trigger.tgisinternal\n\t\t\t\tAND left(trigger.tgname, 10) = ${OWNED_TRIGGER_PREFIX}\n\t\t\t${limitClause}\n\t\t`.execute(db);\n\t\treturn result.rows.map((row) => row.name);\n\t}\n\n\tconst result = await sql<{ name: string }>`\n\t\tSELECT name\n\t\tFROM sqlite_master\n\t\tWHERE type = 'trigger'\n\t\t\tAND tbl_name = ${tableName}\n\t\t\tAND substr(name, 1, 10) = ${OWNED_TRIGGER_PREFIX}\n\t\t${limitClause}\n\t`.execute(db);\n\treturn result.rows.map((row) => row.name);\n}\n\nasync function hasExactCaptureTriggers(\n\tdb: Kysely<Database>,\n\tidentifiers: {\n\t\ttableName: string;\n\t\ttriggerNames: Record<CaptureOperation, string>;\n\t},\n\tidentity: MediaUsageCaptureIdentity,\n\tinstalledNames: readonly string[],\n): Promise<boolean> {\n\tconst expectedNames = new Set(Object.values(identifiers.triggerNames));\n\tif (\n\t\tinstalledNames.length !== expectedNames.size ||\n\t\tinstalledNames.some((name) => !expectedNames.has(name))\n\t) {\n\t\treturn false;\n\t}\n\n\tif (isPostgres(db)) {\n\t\tconst result = await sql<{\n\t\t\tname: string;\n\t\t\ttrigger_type: number;\n\t\t\tfunction_name: string;\n\t\t\targuments_hex: string;\n\t\t\tenabled: string;\n\t\t\thas_when: boolean;\n\t\t}>`\n\t\t\tSELECT\n\t\t\t\ttrigger.tgname AS name,\n\t\t\t\ttrigger.tgtype AS trigger_type,\n\t\t\t\tprocedure.proname AS function_name,\n\t\t\t\tencode(trigger.tgargs, 'hex') AS arguments_hex,\n\t\t\t\ttrigger.tgenabled AS enabled,\n\t\t\t\ttrigger.tgqual IS NOT NULL AS has_when\n\t\t\tFROM pg_trigger AS trigger\n\t\t\tINNER JOIN pg_class AS relation ON relation.oid = trigger.tgrelid\n\t\t\tINNER JOIN pg_namespace AS namespace ON namespace.oid = relation.relnamespace\n\t\t\tINNER JOIN pg_proc AS procedure ON procedure.oid = trigger.tgfoid\n\t\t\tINNER JOIN pg_namespace AS function_namespace ON function_namespace.oid = procedure.pronamespace\n\t\t\tWHERE namespace.nspname = current_schema()\n\t\t\t\tAND function_namespace.nspname = current_schema()\n\t\t\t\tAND relation.relname = ${identifiers.tableName}\n\t\t\t\tAND NOT trigger.tgisinternal\n\t\t\t\tAND trigger.tgconstraint = 0\n\t\t\t\tAND NOT trigger.tgdeferrable\n\t\t\t\tAND NOT trigger.tginitdeferred\n\t\t\t\tAND trigger.tgattr = ''::int2vector\n\t\t\t\tAND left(trigger.tgname, 10) = ${OWNED_TRIGGER_PREFIX}\n\t\t`.execute(db);\n\t\tconst expectedArguments = triggerArgumentsHex(identity);\n\t\treturn captureOperations.every((operation) => {\n\t\t\tconst row = result.rows.find(\n\t\t\t\t(candidate) => candidate.name === identifiers.triggerNames[operation],\n\t\t\t);\n\t\t\treturn (\n\t\t\t\trow?.function_name === POSTGRES_TRIGGER_FUNCTION &&\n\t\t\t\tNumber(row.trigger_type) === postgresTriggerType(operation) &&\n\t\t\t\trow.arguments_hex === expectedArguments &&\n\t\t\t\trow.enabled === \"O\" &&\n\t\t\t\trow.has_when === false\n\t\t\t);\n\t\t});\n\t}\n\n\tconst result = await sql<{ name: string; definition: string }>`\n\t\tSELECT name, sql AS definition\n\t\tFROM sqlite_master\n\t\tWHERE type = 'trigger'\n\t\t\tAND tbl_name = ${identifiers.tableName}\n\t\t\tAND substr(name, 1, 10) = ${OWNED_TRIGGER_PREFIX}\n\t`.execute(db);\n\treturn captureOperations.every((operation) => {\n\t\tconst row = result.rows.find(\n\t\t\t(candidate) => candidate.name === identifiers.triggerNames[operation],\n\t\t);\n\t\tconst contentId = operation === \"delete\" ? sql`OLD.id` : sql`NEW.id`;\n\t\tconst expected = sqliteTriggerSql(\n\t\t\tidentifiers.tableName,\n\t\t\tidentifiers.triggerNames[operation],\n\t\t\toperationSql(operation),\n\t\t\tcontentId,\n\t\t\tidentity,\n\t\t).compile(db).sql;\n\t\treturn row ? normalizeDdl(row.definition) === normalizeDdl(expected) : false;\n\t});\n}\n\nfunction triggerArgumentsHex(identity: MediaUsageCaptureIdentity): string {\n\tconst bytes = new TextEncoder().encode(`${identity.collectionId}\\0${identity.collectionSlug}\\0`);\n\treturn Array.from(bytes, (byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nfunction postgresTriggerType(operation: CaptureOperation): number {\n\tswitch (operation) {\n\t\tcase \"insert\":\n\t\t\treturn 5;\n\t\tcase \"update\":\n\t\t\treturn 17;\n\t\tcase \"delete\":\n\t\t\treturn 9;\n\t}\n}\n\nfunction normalizeDdl(definition: string): string {\n\treturn definition.replace(WHITESPACE_PATTERN, \" \").trim().replace(TRAILING_SEMICOLON_PATTERN, \"\");\n}\n\nasync function assertCaptureLifecycle(\n\tdb: Kysely<Database>,\n\tidentity: MediaUsageCaptureIdentity,\n\tallowedStates: readonly string[],\n): Promise<void> {\n\tconst lifecycle = await db\n\t\t.selectFrom(\"_emdash_media_usage_index_status\")\n\t\t.select(\"capture_state\")\n\t\t.where(\"adapter_id\", \"=\", \"content-media\")\n\t\t.where(\"scope_type\", \"=\", \"collection\")\n\t\t.where(\"scope_key\", \"=\", identity.collectionSlug)\n\t\t.where(\"collection_id\", \"=\", identity.collectionId)\n\t\t.executeTakeFirst();\n\tif (!lifecycle?.capture_state || !allowedStates.includes(lifecycle.capture_state)) {\n\t\tthrow new Error(\"Media usage capture trigger changes require a fenced collection lifecycle\");\n\t}\n}\n\nasync function assertExpectedTriggerSet(\n\tdb: Kysely<Database>,\n\tidentifiers: {\n\t\ttableName: string;\n\t\ttriggerNames: Record<CaptureOperation, string>;\n\t},\n\tidentity: MediaUsageCaptureIdentity,\n): Promise<void> {\n\tconst actual = await listOwnedCaptureTriggers(\n\t\tdb,\n\t\tidentifiers.tableName,\n\t\tMAX_OWNED_CAPTURE_TRIGGERS + 1,\n\t);\n\tif (!(await hasExactCaptureTriggers(db, identifiers, identity, actual))) {\n\t\tthrow new Error(\"Media usage capture trigger installation is incomplete\");\n\t}\n}\n\nasync function installPostgresFunction(db: Kysely<Database>): Promise<void> {\n\tawait sql`\n\t\tCREATE OR REPLACE FUNCTION ${sql.ref(POSTGRES_TRIGGER_FUNCTION)}()\n\t\tRETURNS trigger\n\t\tLANGUAGE plpgsql\n\t\tAS $function$\n\t\tDECLARE\n\t\t\tv_collection_id text := TG_ARGV[0];\n\t\t\tv_collection_slug text := TG_ARGV[1];\n\t\t\tv_content_id text;\n\t\t\tv_epoch bigint;\n\t\t\tv_now text := to_char(\n\t\t\t\tclock_timestamp() AT TIME ZONE 'UTC',\n\t\t\t\t'YYYY-MM-DD\"T\"HH24:MI:SS.MS\"Z\"'\n\t\t\t);\n\t\tBEGIN\n\t\t\tIF TG_OP = 'DELETE' THEN\n\t\t\t\tv_content_id := OLD.id;\n\t\t\tELSE\n\t\t\t\tv_content_id := NEW.id;\n\t\t\tEND IF;\n\n\t\t\tUPDATE _emdash_media_usage_index_status\n\t\t\tSET change_epoch = change_epoch + 1,\n\t\t\t\tstatus = CASE WHEN status = 'complete' THEN 'stale' ELSE status END,\n\t\t\t\tcompleted_at = CASE WHEN status = 'complete' THEN NULL ELSE completed_at END,\n\t\t\t\tupdated_at = v_now\n\t\t\tWHERE adapter_id = 'content-media'\n\t\t\t\tAND scope_type = 'collection'\n\t\t\t\tAND scope_key = v_collection_slug\n\t\t\t\tAND collection_id = v_collection_id\n\t\t\t\tAND capture_state = 'active'\n\t\t\t\tAND EXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM _emdash_collections AS collection\n\t\t\t\t\tWHERE collection.id = v_collection_id\n\t\t\t\t\t\tAND collection.slug = v_collection_slug\n\t\t\t\t)\n\t\t\tRETURNING change_epoch INTO v_epoch;\n\n\t\t\tIF NOT FOUND THEN\n\t\t\t\tRAISE EXCEPTION USING\n\t\t\t\t\tERRCODE = 'P0001',\n\t\t\t\t\tMESSAGE = 'media usage capture inactive';\n\t\t\tEND IF;\n\n\t\t\tINSERT INTO _emdash_media_usage_work (\n\t\t\t\tcollection_id,\n\t\t\t\tcollection_slug,\n\t\t\t\tcontent_id,\n\t\t\t\tchange_epoch,\n\t\t\t\twork_version,\n\t\t\t\tstate,\n\t\t\t\tattempt_count,\n\t\t\t\tnext_attempt_at,\n\t\t\t\tlease_token,\n\t\t\t\tlease_expires_at,\n\t\t\t\tlast_attempted_at,\n\t\t\t\tlast_error_code,\n\t\t\t\tcreated_at,\n\t\t\t\tupdated_at\n\t\t\t)\n\t\t\tVALUES (\n\t\t\t\tv_collection_id,\n\t\t\t\tv_collection_slug,\n\t\t\t\tv_content_id,\n\t\t\t\tv_epoch,\n\t\t\t\t1,\n\t\t\t\t'pending',\n\t\t\t\t0,\n\t\t\t\tv_now,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tv_now,\n\t\t\t\tv_now\n\t\t\t)\n\t\t\tON CONFLICT (collection_id, content_id) DO UPDATE SET\n\t\t\t\tcollection_slug = EXCLUDED.collection_slug,\n\t\t\t\tchange_epoch = EXCLUDED.change_epoch,\n\t\t\t\twork_version = _emdash_media_usage_work.work_version + 1,\n\t\t\t\tstate = 'pending',\n\t\t\t\tattempt_count = 0,\n\t\t\t\tnext_attempt_at = EXCLUDED.next_attempt_at,\n\t\t\t\tlease_token = NULL,\n\t\t\t\tlease_expires_at = NULL,\n\t\t\t\tlast_attempted_at = NULL,\n\t\t\t\tlast_error_code = NULL,\n\t\t\t\tupdated_at = EXCLUDED.updated_at;\n\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$function$\n\t`.execute(db);\n}\n\nasync function postgresCreateTrigger(\n\tdb: Kysely<Database>,\n\ttableName: string,\n\ttriggerName: string,\n\toperation: CaptureOperation,\n\tidentity: MediaUsageCaptureIdentity,\n): Promise<void> {\n\tawait sql`\n\t\tCREATE TRIGGER ${sql.ref(triggerName)}\n\t\tAFTER ${operationSql(operation)} ON ${sql.ref(tableName)}\n\t\tFOR EACH ROW\n\t\tEXECUTE FUNCTION ${sql.ref(POSTGRES_TRIGGER_FUNCTION)}(\n\t\t\t${sql.lit(identity.collectionId)},\n\t\t\t${sql.lit(identity.collectionSlug)}\n\t\t)\n\t`.execute(db);\n}\n\nasync function sqliteCreateTrigger(\n\tdb: Kysely<Database>,\n\ttableName: string,\n\ttriggerName: string,\n\toperation: CaptureOperation,\n\tidentity: MediaUsageCaptureIdentity,\n): Promise<void> {\n\tconst contentId = operation === \"delete\" ? sql`OLD.id` : sql`NEW.id`;\n\tawait sqliteTriggerSql(\n\t\ttableName,\n\t\ttriggerName,\n\t\toperationSql(operation),\n\t\tcontentId,\n\t\tidentity,\n\t).execute(db);\n}\n\nfunction sqliteTriggerSql(\n\ttableName: string,\n\ttriggerName: string,\n\toperation: RawBuilder<unknown>,\n\tcontentId: RawBuilder<unknown>,\n\tidentity: MediaUsageCaptureIdentity,\n): RawBuilder<unknown> {\n\treturn sql`\n\t\tCREATE TRIGGER ${sql.ref(triggerName)}\n\t\tAFTER ${operation} ON ${sql.ref(tableName)}\n\t\tFOR EACH ROW\n\t\tBEGIN\n\t\t\tUPDATE _emdash_media_usage_index_status\n\t\t\tSET change_epoch = change_epoch + 1,\n\t\t\t\tstatus = CASE WHEN status = 'complete' THEN 'stale' ELSE status END,\n\t\t\t\tcompleted_at = CASE WHEN status = 'complete' THEN NULL ELSE completed_at END,\n\t\t\t\tupdated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')\n\t\t\tWHERE adapter_id = 'content-media'\n\t\t\t\tAND scope_type = 'collection'\n\t\t\t\tAND scope_key = ${sql.lit(identity.collectionSlug)}\n\t\t\t\tAND collection_id = ${sql.lit(identity.collectionId)}\n\t\t\t\tAND capture_state = 'active'\n\t\t\t\tAND EXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM _emdash_collections AS collection\n\t\t\t\t\tWHERE collection.id = ${sql.lit(identity.collectionId)}\n\t\t\t\t\t\tAND collection.slug = ${sql.lit(identity.collectionSlug)}\n\t\t\t\t);\n\n\t\t\tSELECT CASE\n\t\t\t\tWHEN changes() <> 1 THEN RAISE(ABORT, 'media usage capture inactive')\n\t\t\tEND;\n\n\t\t\tINSERT INTO _emdash_media_usage_work (\n\t\t\t\tcollection_id,\n\t\t\t\tcollection_slug,\n\t\t\t\tcontent_id,\n\t\t\t\tchange_epoch,\n\t\t\t\twork_version,\n\t\t\t\tstate,\n\t\t\t\tattempt_count,\n\t\t\t\tnext_attempt_at,\n\t\t\t\tlease_token,\n\t\t\t\tlease_expires_at,\n\t\t\t\tlast_attempted_at,\n\t\t\t\tlast_error_code,\n\t\t\t\tcreated_at,\n\t\t\t\tupdated_at\n\t\t\t)\n\t\t\tSELECT\n\t\t\t\t${sql.lit(identity.collectionId)},\n\t\t\t\t${sql.lit(identity.collectionSlug)},\n\t\t\t\t${contentId},\n\t\t\t\tchange_epoch,\n\t\t\t\t1,\n\t\t\t\t'pending',\n\t\t\t\t0,\n\t\t\t\tstrftime('%Y-%m-%dT%H:%M:%fZ', 'now'),\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tNULL,\n\t\t\t\tstrftime('%Y-%m-%dT%H:%M:%fZ', 'now'),\n\t\t\t\tstrftime('%Y-%m-%dT%H:%M:%fZ', 'now')\n\t\t\tFROM _emdash_media_usage_index_status\n\t\t\tWHERE adapter_id = 'content-media'\n\t\t\t\tAND scope_type = 'collection'\n\t\t\t\tAND scope_key = ${sql.lit(identity.collectionSlug)}\n\t\t\t\tAND collection_id = ${sql.lit(identity.collectionId)}\n\t\t\t\tAND capture_state = 'active'\n\t\t\tON CONFLICT (collection_id, content_id) DO UPDATE SET\n\t\t\t\tcollection_slug = excluded.collection_slug,\n\t\t\t\tchange_epoch = excluded.change_epoch,\n\t\t\t\twork_version = _emdash_media_usage_work.work_version + 1,\n\t\t\t\tstate = 'pending',\n\t\t\t\tattempt_count = 0,\n\t\t\t\tnext_attempt_at = excluded.next_attempt_at,\n\t\t\t\tlease_token = NULL,\n\t\t\t\tlease_expires_at = NULL,\n\t\t\t\tlast_attempted_at = NULL,\n\t\t\t\tlast_error_code = NULL,\n\t\t\t\tupdated_at = excluded.updated_at;\n\t\tEND\n\t`;\n}\n\nfunction operationSql(operation: CaptureOperation): RawBuilder<unknown> {\n\tswitch (operation) {\n\t\tcase \"insert\":\n\t\t\treturn sql`INSERT`;\n\t\tcase \"update\":\n\t\t\treturn sql`UPDATE`;\n\t\tcase \"delete\":\n\t\t\treturn sql`DELETE`;\n\t}\n}\n"],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- //#region src/auth/challenge-store.ts
2
- function createChallengeStore(db) {
3
- return {
4
- async set(challenge, data) {
5
- const expiresAt = new Date(data.expiresAt).toISOString();
6
- await db.insertInto("auth_challenges").values({
7
- challenge,
8
- type: data.type,
9
- user_id: data.userId ?? null,
10
- data: data.context ?? null,
11
- expires_at: expiresAt
12
- }).onConflict((oc) => oc.column("challenge").doUpdateSet({
13
- type: data.type,
14
- user_id: data.userId ?? null,
15
- data: data.context ?? null,
16
- expires_at: expiresAt
17
- })).execute();
18
- },
19
- async get(challenge) {
20
- const row = await db.selectFrom("auth_challenges").selectAll().where("challenge", "=", challenge).executeTakeFirst();
21
- if (!row) return null;
22
- const expiresAt = new Date(row.expires_at).getTime();
23
- if (expiresAt < Date.now()) {
24
- await this.delete(challenge);
25
- return null;
26
- }
27
- return {
28
- type: row.type === "registration" ? "registration" : "authentication",
29
- userId: row.user_id ?? void 0,
30
- expiresAt,
31
- ...row.data === null ? {} : { context: row.data }
32
- };
33
- },
34
- async delete(challenge) {
35
- await db.deleteFrom("auth_challenges").where("challenge", "=", challenge).execute();
36
- }
37
- };
38
- }
39
- /**
40
- * Clean up expired challenges.
41
- * Should be called periodically (e.g., on startup, or via cron).
42
- */
43
- async function cleanupExpiredChallenges(db) {
44
- const now = (/* @__PURE__ */ new Date()).toISOString();
45
- const result = await db.deleteFrom("auth_challenges").where("expires_at", "<", now).executeTakeFirst();
46
- return Number(result.numDeletedRows ?? 0);
47
- }
48
-
49
- //#endregion
50
- export { createChallengeStore as n, cleanupExpiredChallenges as t };
51
- //# sourceMappingURL=challenge-store-Cfjdvw86.mjs.map