emdash 0.8.0 → 0.9.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 (286) hide show
  1. package/dist/{adapters-BKSf3T9R.d.mts → adapters-DoNJiveC.d.mts} +1 -1
  2. package/dist/{adapters-BKSf3T9R.d.mts.map → adapters-DoNJiveC.d.mts.map} +1 -1
  3. package/dist/{apply-x0eMK1lX.mjs → apply-BzltprvY.mjs} +85 -135
  4. package/dist/apply-BzltprvY.mjs.map +1 -0
  5. package/dist/astro/index.d.mts +6 -6
  6. package/dist/astro/index.d.mts.map +1 -1
  7. package/dist/astro/index.mjs +110 -4
  8. package/dist/astro/index.mjs.map +1 -1
  9. package/dist/astro/middleware/auth.d.mts +6 -7
  10. package/dist/astro/middleware/auth.d.mts.map +1 -1
  11. package/dist/astro/middleware/auth.mjs +16 -59
  12. package/dist/astro/middleware/auth.mjs.map +1 -1
  13. package/dist/astro/middleware/redirect.d.mts.map +1 -1
  14. package/dist/astro/middleware/redirect.mjs +17 -12
  15. package/dist/astro/middleware/redirect.mjs.map +1 -1
  16. package/dist/astro/middleware/request-context.d.mts.map +1 -1
  17. package/dist/astro/middleware/request-context.mjs +9 -6
  18. package/dist/astro/middleware/request-context.mjs.map +1 -1
  19. package/dist/astro/middleware/setup.mjs +1 -1
  20. package/dist/astro/middleware.d.mts.map +1 -1
  21. package/dist/astro/middleware.mjs +72 -124
  22. package/dist/astro/middleware.mjs.map +1 -1
  23. package/dist/astro/types.d.mts +26 -10
  24. package/dist/astro/types.d.mts.map +1 -1
  25. package/dist/{base64-MBPo9ozB.mjs → base64-BRICGH2l.mjs} +1 -1
  26. package/dist/{base64-MBPo9ozB.mjs.map → base64-BRICGH2l.mjs.map} +1 -1
  27. package/dist/{byline-Chbr2GoP.mjs → byline-BSaNL1w7.mjs} +4 -4
  28. package/dist/{byline-Chbr2GoP.mjs.map → byline-BSaNL1w7.mjs.map} +1 -1
  29. package/dist/bylines-CvJ3PYz2.mjs +113 -0
  30. package/dist/bylines-CvJ3PYz2.mjs.map +1 -0
  31. package/dist/cache-C6N_hhN7.mjs +65 -0
  32. package/dist/cache-C6N_hhN7.mjs.map +1 -0
  33. package/dist/{chunks-HGz06Soa.mjs → chunks-NBQVDOci.mjs} +8 -2
  34. package/dist/{chunks-HGz06Soa.mjs.map → chunks-NBQVDOci.mjs.map} +1 -1
  35. package/dist/cli/index.mjs +224 -30
  36. package/dist/cli/index.mjs.map +1 -1
  37. package/dist/client/cf-access.d.mts +1 -1
  38. package/dist/client/index.d.mts +1 -1
  39. package/dist/client/index.mjs +3 -3
  40. package/dist/client/index.mjs.map +1 -1
  41. package/dist/{config-BXwuX8Bx.mjs → config-BI0V3ICQ.mjs} +1 -1
  42. package/dist/{config-BXwuX8Bx.mjs.map → config-BI0V3ICQ.mjs.map} +1 -1
  43. package/dist/{content-BcQPYxdV.mjs → content-8lOYF0pr.mjs} +32 -15
  44. package/dist/{content-BcQPYxdV.mjs.map → content-8lOYF0pr.mjs.map} +1 -1
  45. package/dist/db/index.d.mts +3 -3
  46. package/dist/db/index.mjs +2 -2
  47. package/dist/db/libsql.d.mts +1 -1
  48. package/dist/db/libsql.d.mts.map +1 -1
  49. package/dist/db/libsql.mjs +7 -2
  50. package/dist/db/libsql.mjs.map +1 -1
  51. package/dist/db/postgres.d.mts +1 -1
  52. package/dist/db/sqlite.d.mts +1 -1
  53. package/dist/db/sqlite.d.mts.map +1 -1
  54. package/dist/db/sqlite.mjs +8 -3
  55. package/dist/db/sqlite.mjs.map +1 -1
  56. package/dist/{db-errors-l1Qh2RPR.mjs → db-errors-WRezodiz.mjs} +1 -1
  57. package/dist/{db-errors-l1Qh2RPR.mjs.map → db-errors-WRezodiz.mjs.map} +1 -1
  58. package/dist/{default-DCVqE5ib.mjs → default-D8ksjWhO.mjs} +1 -1
  59. package/dist/{default-DCVqE5ib.mjs.map → default-D8ksjWhO.mjs.map} +1 -1
  60. package/dist/{dialect-helpers-DhTzaUxP.mjs → dialect-helpers-BKCvISIQ.mjs} +19 -2
  61. package/dist/dialect-helpers-BKCvISIQ.mjs.map +1 -0
  62. package/dist/{error-zG5T1UGA.mjs → error-D_-tqP-I.mjs} +1 -1
  63. package/dist/{error-zG5T1UGA.mjs.map → error-D_-tqP-I.mjs.map} +1 -1
  64. package/dist/{index-DIb-CzNx.d.mts → index-BFRaVcD6.d.mts} +94 -34
  65. package/dist/index-BFRaVcD6.d.mts.map +1 -0
  66. package/dist/index.d.mts +11 -11
  67. package/dist/index.mjs +29 -27
  68. package/dist/{load-CyEoextb.mjs → load-DDqMMvZL.mjs} +2 -2
  69. package/dist/{load-CyEoextb.mjs.map → load-DDqMMvZL.mjs.map} +1 -1
  70. package/dist/{loader-CndGj8kM.mjs → loader-CKLbBnhK.mjs} +27 -7
  71. package/dist/loader-CKLbBnhK.mjs.map +1 -0
  72. package/dist/{manifest-schema-DH9xhc6t.mjs → manifest-schema-DqWNC3lM.mjs} +33 -3
  73. package/dist/manifest-schema-DqWNC3lM.mjs.map +1 -0
  74. package/dist/media/index.d.mts +1 -1
  75. package/dist/media/index.mjs +1 -1
  76. package/dist/media/local-runtime.d.mts +7 -7
  77. package/dist/media/local-runtime.mjs +3 -3
  78. package/dist/{media-D8FbNsl0.mjs → media-BW32b4gi.mjs} +2 -2
  79. package/dist/{media-D8FbNsl0.mjs.map → media-BW32b4gi.mjs.map} +1 -1
  80. package/dist/{mode-BnAOqItE.mjs → mode-ier8jbBk.mjs} +1 -1
  81. package/dist/{mode-BnAOqItE.mjs.map → mode-ier8jbBk.mjs.map} +1 -1
  82. package/dist/options-BVp3UsTS.mjs +117 -0
  83. package/dist/options-BVp3UsTS.mjs.map +1 -0
  84. package/dist/page/index.d.mts +2 -2
  85. package/dist/{placeholder-D29tWZ7o.d.mts → placeholder-BE4o_2dc.d.mts} +1 -1
  86. package/dist/{placeholder-D29tWZ7o.d.mts.map → placeholder-BE4o_2dc.d.mts.map} +1 -1
  87. package/dist/{placeholder-C-fk5hYI.mjs → placeholder-CIJejMlK.mjs} +1 -1
  88. package/dist/{placeholder-C-fk5hYI.mjs.map → placeholder-CIJejMlK.mjs.map} +1 -1
  89. package/dist/plugins/adapt-sandbox-entry.d.mts +5 -5
  90. package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -1
  91. package/dist/plugins/adapt-sandbox-entry.mjs +6 -5
  92. package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -1
  93. package/dist/public-url-DByxYjUw.mjs +51 -0
  94. package/dist/public-url-DByxYjUw.mjs.map +1 -0
  95. package/dist/{query-fqEdLFms.mjs → query-Cg9ZKRQ0.mjs} +114 -16
  96. package/dist/query-Cg9ZKRQ0.mjs.map +1 -0
  97. package/dist/{redirect-D_pshWdf.mjs → redirect-BhUBKRc1.mjs} +11 -6
  98. package/dist/redirect-BhUBKRc1.mjs.map +1 -0
  99. package/dist/{registry-C3Mr0ODu.mjs → registry-Dw70ChxB.mjs} +38 -4
  100. package/dist/registry-Dw70ChxB.mjs.map +1 -0
  101. package/dist/{request-cache-Ci7f5pBb.mjs → request-cache-B-bmkipQ.mjs} +1 -1
  102. package/dist/{request-cache-Ci7f5pBb.mjs.map → request-cache-B-bmkipQ.mjs.map} +1 -1
  103. package/dist/runner-Bnoj7vjK.d.mts +44 -0
  104. package/dist/runner-Bnoj7vjK.d.mts.map +1 -0
  105. package/dist/{runner-tQ7BJ4T7.mjs → runner-C7ADox5q.mjs} +185 -55
  106. package/dist/{runner-tQ7BJ4T7.mjs.map → runner-C7ADox5q.mjs.map} +1 -1
  107. package/dist/runtime.d.mts +6 -6
  108. package/dist/runtime.mjs +4 -4
  109. package/dist/{search-BoZYFuUk.mjs → search-dOGEccMa.mjs} +129 -83
  110. package/dist/search-dOGEccMa.mjs.map +1 -0
  111. package/dist/secrets-CW3reAnU.mjs +314 -0
  112. package/dist/secrets-CW3reAnU.mjs.map +1 -0
  113. package/dist/seed/index.d.mts +2 -2
  114. package/dist/seed/index.mjs +15 -14
  115. package/dist/seo/index.d.mts +1 -1
  116. package/dist/storage/local.d.mts +1 -1
  117. package/dist/storage/local.mjs +1 -1
  118. package/dist/storage/s3.d.mts +1 -1
  119. package/dist/storage/s3.mjs +1 -1
  120. package/dist/{taxonomies-B4IAshV8.mjs → taxonomies-ZlRtD6AG.mjs} +14 -7
  121. package/dist/taxonomies-ZlRtD6AG.mjs.map +1 -0
  122. package/dist/{tokens-D9vnZqYS.mjs → tokens-D7zMmWi2.mjs} +2 -2
  123. package/dist/{tokens-D9vnZqYS.mjs.map → tokens-D7zMmWi2.mjs.map} +1 -1
  124. package/dist/{transport-C9ugt2Nr.mjs → transport-BeMCmin1.mjs} +6 -5
  125. package/dist/{transport-C9ugt2Nr.mjs.map → transport-BeMCmin1.mjs.map} +1 -1
  126. package/dist/{transport-CUnEL3Vs.d.mts → transport-DNEfeMaU.d.mts} +1 -1
  127. package/dist/{transport-CUnEL3Vs.d.mts.map → transport-DNEfeMaU.d.mts.map} +1 -1
  128. package/dist/types-4fVtCIm0.mjs +68 -0
  129. package/dist/types-4fVtCIm0.mjs.map +1 -0
  130. package/dist/{types-BmPPSUEx.d.mts → types-BSyXeCFW.d.mts} +24 -2
  131. package/dist/{types-BmPPSUEx.d.mts.map → types-BSyXeCFW.d.mts.map} +1 -1
  132. package/dist/{types-i36XcA_X.d.mts → types-BuBIptGk.d.mts} +65 -134
  133. package/dist/types-BuBIptGk.d.mts.map +1 -0
  134. package/dist/{types-CgqmmMJB.mjs → types-CDbKp7ND.mjs} +1 -1
  135. package/dist/{types-CgqmmMJB.mjs.map → types-CDbKp7ND.mjs.map} +1 -1
  136. package/dist/{types-Bm1dn-q3.mjs → types-CIOg5AR8.mjs} +1 -1
  137. package/dist/{types-Bm1dn-q3.mjs.map → types-CIOg5AR8.mjs.map} +1 -1
  138. package/dist/{types-BrA0xf5I.d.mts → types-CJsYGpco.d.mts} +1 -1
  139. package/dist/{types-BrA0xf5I.d.mts.map → types-CJsYGpco.d.mts.map} +1 -1
  140. package/dist/{types-BIgulNsW.mjs → types-CRxNbK-Z.mjs} +2 -2
  141. package/dist/{types-BIgulNsW.mjs.map → types-CRxNbK-Z.mjs.map} +1 -1
  142. package/dist/{types-CS8FIX7L.d.mts → types-CrtWgIvl.d.mts} +1 -1
  143. package/dist/{types-CS8FIX7L.d.mts.map → types-CrtWgIvl.d.mts.map} +1 -1
  144. package/dist/{types-DIMwPFub.d.mts → types-M78DQ1lx.d.mts} +1 -1
  145. package/dist/{types-DIMwPFub.d.mts.map → types-M78DQ1lx.d.mts.map} +1 -1
  146. package/dist/{validate-CxVsLehf.mjs → validate-Baqf0slj.mjs} +3 -3
  147. package/dist/{validate-CxVsLehf.mjs.map → validate-Baqf0slj.mjs.map} +1 -1
  148. package/dist/{validate-DHxmpFJt.d.mts → validate-BfQh_C_y.d.mts} +4 -4
  149. package/dist/{validate-DHxmpFJt.d.mts.map → validate-BfQh_C_y.d.mts.map} +1 -1
  150. package/dist/{validation-C-ZpN2GI.mjs → validation-BfEI7tNe.mjs} +6 -6
  151. package/dist/{validation-C-ZpN2GI.mjs.map → validation-BfEI7tNe.mjs.map} +1 -1
  152. package/dist/version-DoxrVdYf.mjs +7 -0
  153. package/dist/{version-Bbq8TCrz.mjs.map → version-DoxrVdYf.mjs.map} +1 -1
  154. package/dist/{zod-generator-CpwccCIv.mjs → zod-generator-CC0xNe_K.mjs} +4 -4
  155. package/dist/zod-generator-CC0xNe_K.mjs.map +1 -0
  156. package/locals.d.ts +1 -6
  157. package/package.json +9 -8
  158. package/src/api/handlers/comments.ts +6 -4
  159. package/src/api/handlers/content.ts +29 -1
  160. package/src/api/handlers/device-flow.ts +5 -0
  161. package/src/api/handlers/marketplace.ts +11 -4
  162. package/src/api/handlers/oauth-authorization.ts +72 -33
  163. package/src/api/handlers/revision.ts +23 -14
  164. package/src/api/handlers/taxonomies.ts +3 -6
  165. package/src/api/public-url.ts +48 -2
  166. package/src/api/schemas/comments.ts +2 -2
  167. package/src/api/schemas/content.ts +17 -0
  168. package/src/api/schemas/sections.ts +3 -3
  169. package/src/api/schemas/users.ts +1 -1
  170. package/src/api/types.ts +5 -1
  171. package/src/astro/integration/index.ts +17 -0
  172. package/src/astro/integration/runtime.ts +30 -0
  173. package/src/astro/integration/virtual-modules.ts +32 -2
  174. package/src/astro/integration/vite-config.ts +6 -1
  175. package/src/astro/middleware/auth.ts +13 -6
  176. package/src/astro/middleware/redirect.ts +29 -16
  177. package/src/astro/middleware/request-context.ts +15 -5
  178. package/src/astro/middleware.ts +23 -9
  179. package/src/astro/routes/api/auth/invite/complete.ts +6 -1
  180. package/src/astro/routes/api/auth/passkey/register/verify.ts +6 -1
  181. package/src/astro/routes/api/auth/passkey/verify.ts +6 -1
  182. package/src/astro/routes/api/auth/signup/complete.ts +6 -1
  183. package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +2 -2
  184. package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +4 -2
  185. package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +34 -12
  186. package/src/astro/routes/api/content/[collection]/[id]/publish.ts +32 -2
  187. package/src/astro/routes/api/content/[collection]/[id]/restore.ts +4 -2
  188. package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +3 -2
  189. package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +8 -4
  190. package/src/astro/routes/api/content/[collection]/[id].ts +12 -0
  191. package/src/astro/routes/api/import/wordpress/execute.ts +3 -1
  192. package/src/astro/routes/api/import/wordpress/prepare.ts +7 -8
  193. package/src/astro/routes/api/import/wordpress-plugin/execute.ts +3 -1
  194. package/src/astro/routes/api/manifest.ts +62 -45
  195. package/src/astro/routes/api/media/[id]/confirm.ts +10 -1
  196. package/src/astro/routes/api/media/providers/[providerId]/index.ts +12 -3
  197. package/src/astro/routes/api/openapi.json.ts +27 -10
  198. package/src/astro/routes/api/redirects/404s/index.ts +10 -4
  199. package/src/astro/routes/api/redirects/404s/summary.ts +4 -2
  200. package/src/astro/routes/api/redirects/[id].ts +10 -4
  201. package/src/astro/routes/api/redirects/index.ts +7 -3
  202. package/src/astro/routes/api/revisions/[revisionId]/index.ts +1 -1
  203. package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +0 -2
  204. package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +0 -1
  205. package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +0 -1
  206. package/src/astro/routes/api/schema/collections/[slug]/index.ts +2 -2
  207. package/src/astro/routes/api/schema/collections/index.ts +1 -1
  208. package/src/astro/routes/api/search/index.ts +10 -2
  209. package/src/astro/routes/api/sections/[slug].ts +10 -4
  210. package/src/astro/routes/api/sections/index.ts +7 -3
  211. package/src/astro/routes/api/setup/admin-verify.ts +6 -1
  212. package/src/astro/routes/api/snapshot.ts +44 -18
  213. package/src/astro/routes/api/taxonomies/index.ts +0 -1
  214. package/src/astro/routes/api/themes/preview.ts +11 -5
  215. package/src/astro/types.ts +23 -3
  216. package/src/auth/allowed-origins.ts +168 -0
  217. package/src/auth/passkey-config.ts +35 -13
  218. package/src/bylines/index.ts +37 -88
  219. package/src/cli/commands/auth.ts +28 -6
  220. package/src/cli/commands/bundle-utils.ts +11 -2
  221. package/src/cli/commands/bundle.ts +28 -8
  222. package/src/cli/commands/content.ts +13 -0
  223. package/src/cli/commands/login.ts +8 -1
  224. package/src/cli/commands/publish.ts +24 -0
  225. package/src/cli/commands/secrets.ts +183 -0
  226. package/src/cli/credentials.ts +1 -1
  227. package/src/cli/index.ts +5 -1
  228. package/src/client/index.ts +4 -4
  229. package/src/client/transport.ts +17 -7
  230. package/src/components/Break.astro +2 -2
  231. package/src/components/EmDashHead.astro +18 -13
  232. package/src/components/Embed.astro +1 -1
  233. package/src/components/Gallery.astro +1 -1
  234. package/src/components/Image.astro +1 -1
  235. package/src/components/InlinePortableTextEditor.tsx +104 -18
  236. package/src/config/secrets.ts +528 -0
  237. package/src/database/dialect-helpers.ts +50 -0
  238. package/src/database/migrations/034_published_at_index.ts +1 -1
  239. package/src/database/migrations/035_bounded_404_log.ts +56 -39
  240. package/src/database/migrations/runner.ts +156 -23
  241. package/src/database/repositories/content.ts +36 -12
  242. package/src/database/repositories/redirect.ts +14 -3
  243. package/src/database/repositories/taxonomy.ts +26 -0
  244. package/src/db/libsql.ts +1 -3
  245. package/src/db/sqlite.ts +2 -5
  246. package/src/emdash-runtime.ts +84 -159
  247. package/src/index.ts +9 -0
  248. package/src/loader.ts +24 -1
  249. package/src/mcp/server.ts +103 -36
  250. package/src/page/site-identity.ts +58 -0
  251. package/src/plugins/adapt-sandbox-entry.ts +22 -10
  252. package/src/plugins/context.ts +13 -10
  253. package/src/plugins/define-plugin.ts +40 -12
  254. package/src/plugins/hooks.ts +23 -19
  255. package/src/plugins/index.ts +9 -0
  256. package/src/plugins/manifest-schema.ts +37 -2
  257. package/src/plugins/types.ts +151 -11
  258. package/src/preview/urls.ts +23 -3
  259. package/src/query.ts +148 -5
  260. package/src/redirects/cache.ts +38 -18
  261. package/src/schema/registry.ts +56 -0
  262. package/src/schema/zod-generator.ts +27 -5
  263. package/src/seed/apply.ts +2 -0
  264. package/src/settings/index.ts +80 -6
  265. package/src/settings/types.ts +23 -1
  266. package/src/taxonomies/index.ts +11 -1
  267. package/dist/apply-x0eMK1lX.mjs.map +0 -1
  268. package/dist/bylines-CRNsVG88.mjs +0 -157
  269. package/dist/bylines-CRNsVG88.mjs.map +0 -1
  270. package/dist/cache-BkKBuIvS.mjs +0 -56
  271. package/dist/cache-BkKBuIvS.mjs.map +0 -1
  272. package/dist/chunk-ClPoSABd.mjs +0 -21
  273. package/dist/dialect-helpers-DhTzaUxP.mjs.map +0 -1
  274. package/dist/index-DIb-CzNx.d.mts.map +0 -1
  275. package/dist/loader-CndGj8kM.mjs.map +0 -1
  276. package/dist/manifest-schema-DH9xhc6t.mjs.map +0 -1
  277. package/dist/query-fqEdLFms.mjs.map +0 -1
  278. package/dist/redirect-D_pshWdf.mjs.map +0 -1
  279. package/dist/registry-C3Mr0ODu.mjs.map +0 -1
  280. package/dist/runner-OURCaApa.d.mts +0 -34
  281. package/dist/runner-OURCaApa.d.mts.map +0 -1
  282. package/dist/search-BoZYFuUk.mjs.map +0 -1
  283. package/dist/taxonomies-B4IAshV8.mjs.map +0 -1
  284. package/dist/types-i36XcA_X.d.mts.map +0 -1
  285. package/dist/version-Bbq8TCrz.mjs +0 -7
  286. package/dist/zod-generator-CpwccCIv.mjs.map +0 -1
@@ -1,9 +1,9 @@
1
- import { f as MediaProvider } from "./placeholder-D29tWZ7o.mjs";
2
- import "./types-CS8FIX7L.mjs";
3
- import { Bn as getDb, In as CollectionFilter, Ln as EntryData, Rn as EntryFilter, zn as emdashLoader } from "./index-DIb-CzNx.mjs";
4
- import "./runner-OURCaApa.mjs";
5
- import "./types-i36XcA_X.mjs";
6
- import "./validate-DHxmpFJt.mjs";
1
+ import { f as MediaProvider } from "./placeholder-BE4o_2dc.mjs";
2
+ import "./types-CrtWgIvl.mjs";
3
+ import { Bn as getDb, In as CollectionFilter, Ln as EntryData, Rn as EntryFilter, zn as emdashLoader } from "./index-BFRaVcD6.mjs";
4
+ import "./runner-Bnoj7vjK.mjs";
5
+ import "./types-BuBIptGk.mjs";
6
+ import "./validate-BfQh_C_y.mjs";
7
7
 
8
8
  //#region src/media/provider-loader.d.ts
9
9
  /**
package/dist/runtime.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import "./dialect-helpers-DhTzaUxP.mjs";
2
- import "./base64-MBPo9ozB.mjs";
3
- import "./types-BIgulNsW.mjs";
4
- import { n as getDb, t as emdashLoader } from "./loader-CndGj8kM.mjs";
1
+ import "./dialect-helpers-BKCvISIQ.mjs";
2
+ import "./base64-BRICGH2l.mjs";
3
+ import "./types-CRxNbK-Z.mjs";
4
+ import { n as emdashLoader, r as getDb } from "./loader-CKLbBnhK.mjs";
5
5
 
6
6
  //#region src/media/provider-loader.ts
7
7
  let virtualMediaProviders;
@@ -1,23 +1,25 @@
1
1
  import { n as validateJsonFieldName, r as validatePluginIdentifier, t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
2
- import { o as jsonExtractExpr } from "./dialect-helpers-DhTzaUxP.mjs";
3
- import { a as slugify, r as RevisionRepository, t as ContentRepository } from "./content-BcQPYxdV.mjs";
4
- import { r as encodeBase64, t as decodeBase64 } from "./base64-MBPo9ozB.mjs";
5
- import { i as encodeCursor, n as InvalidCursorError, r as decodeCursor, t as EmDashValidationError } from "./types-BIgulNsW.mjs";
6
- import { t as MediaRepository } from "./media-D8FbNsl0.mjs";
7
- import { a as ssrfSafeFetch, i as resolveAndValidateExternalUrl, o as stripCredentialHeaders, p as OptionsRepository, r as SsrfError, s as validateExternalUrl } from "./apply-x0eMK1lX.mjs";
2
+ import { s as jsonExtractExpr } from "./dialect-helpers-BKCvISIQ.mjs";
3
+ import { a as slugify, r as RevisionRepository, t as ContentRepository } from "./content-8lOYF0pr.mjs";
4
+ import { r as encodeBase64, t as decodeBase64 } from "./base64-BRICGH2l.mjs";
5
+ import { i as encodeCursor, n as InvalidCursorError, r as decodeCursor, t as EmDashValidationError } from "./types-CRxNbK-Z.mjs";
6
+ import { t as MediaRepository } from "./media-BW32b4gi.mjs";
7
+ import { a as ssrfSafeFetch, i as resolveAndValidateExternalUrl, o as stripCredentialHeaders, r as SsrfError, s as validateExternalUrl } from "./apply-BzltprvY.mjs";
8
+ import { t as OptionsRepository } from "./options-BVp3UsTS.mjs";
8
9
  import { t as withTransaction } from "./transaction-Cn2rjY78.mjs";
9
- import { t as RedirectRepository } from "./redirect-D_pshWdf.mjs";
10
- import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-HGz06Soa.mjs";
11
- import { t as BylineRepository } from "./byline-Chbr2GoP.mjs";
12
- import { r as isI18nEnabled } from "./config-BXwuX8Bx.mjs";
13
- import { r as invalidateRedirectCache } from "./cache-BkKBuIvS.mjs";
14
- import { t as isMissingTableError } from "./db-errors-l1Qh2RPR.mjs";
15
- import { r as hashString } from "./zod-generator-CpwccCIv.mjs";
16
- import { i as FTSManager, n as SchemaRegistry } from "./registry-C3Mr0ODu.mjs";
17
- import { n as getDb } from "./loader-CndGj8kM.mjs";
18
- import { n as requestCached } from "./request-cache-Ci7f5pBb.mjs";
19
- import { i as pluginManifestSchema } from "./manifest-schema-DH9xhc6t.mjs";
20
- import { t as generatePreviewToken } from "./tokens-D9vnZqYS.mjs";
10
+ import { t as RedirectRepository } from "./redirect-BhUBKRc1.mjs";
11
+ import { n as chunks, t as SQL_BATCH_SIZE } from "./chunks-NBQVDOci.mjs";
12
+ import { t as BylineRepository } from "./byline-BSaNL1w7.mjs";
13
+ import { r as isI18nEnabled } from "./config-BI0V3ICQ.mjs";
14
+ import { r as invalidateRedirectCache } from "./cache-C6N_hhN7.mjs";
15
+ import { t as isMissingTableError } from "./db-errors-WRezodiz.mjs";
16
+ import { r as hashString } from "./zod-generator-CC0xNe_K.mjs";
17
+ import { i as FTSManager, n as SchemaRegistry } from "./registry-Dw70ChxB.mjs";
18
+ import { r as getDb } from "./loader-CKLbBnhK.mjs";
19
+ import { n as requestCached } from "./request-cache-B-bmkipQ.mjs";
20
+ import { i as pluginManifestSchema } from "./manifest-schema-DqWNC3lM.mjs";
21
+ import { i as normalizeCapabilities } from "./types-4fVtCIm0.mjs";
22
+ import { t as generatePreviewToken } from "./tokens-D7zMmWi2.mjs";
21
23
  import { sql } from "kysely";
22
24
  import { AsyncLocalStorage } from "node:async_hooks";
23
25
  import { ulid } from "ulidx";
@@ -1697,6 +1699,13 @@ async function handleContentUnschedule(db, collection, id) {
1697
1699
  data: { item }
1698
1700
  };
1699
1701
  } catch (error) {
1702
+ if (error instanceof EmDashValidationError) return {
1703
+ success: false,
1704
+ error: {
1705
+ code: "VALIDATION_ERROR",
1706
+ message: error.message
1707
+ }
1708
+ };
1700
1709
  console.error("Content unschedule error:", error);
1701
1710
  return {
1702
1711
  success: false,
@@ -1714,12 +1723,12 @@ async function handleContentUnschedule(db, collection, id) {
1714
1723
  * (syncDataColumns, slug sync, status/revision update) that must
1715
1724
  * be atomic to prevent FTS shadow table corruption on crash.
1716
1725
  */
1717
- async function handleContentPublish(db, collection, id) {
1726
+ async function handleContentPublish(db, collection, id, options = {}) {
1718
1727
  try {
1719
1728
  const item = await withTransaction(db, async (trx) => {
1720
1729
  const repo = new ContentRepository(trx);
1721
1730
  const resolvedId = await resolveId(repo, collection, id) ?? id;
1722
- return repo.publish(collection, resolvedId);
1731
+ return repo.publish(collection, resolvedId, options.publishedAt);
1723
1732
  });
1724
1733
  await hydrateSeo(db, collection, item, await collectionHasSeo(db, collection));
1725
1734
  return {
@@ -1727,6 +1736,13 @@ async function handleContentPublish(db, collection, id) {
1727
1736
  data: { item }
1728
1737
  };
1729
1738
  } catch (error) {
1739
+ if (error instanceof EmDashValidationError) return {
1740
+ success: false,
1741
+ error: {
1742
+ code: "VALIDATION_ERROR",
1743
+ message: error.message
1744
+ }
1745
+ };
1730
1746
  console.error("Content publish error:", error);
1731
1747
  return {
1732
1748
  success: false,
@@ -1756,6 +1772,13 @@ async function handleContentUnpublish(db, collection, id) {
1756
1772
  data: { item }
1757
1773
  };
1758
1774
  } catch (error) {
1775
+ if (error instanceof EmDashValidationError) return {
1776
+ success: false,
1777
+ error: {
1778
+ code: "VALIDATION_ERROR",
1779
+ message: error.message
1780
+ }
1781
+ };
1759
1782
  console.error("Content unpublish error:", error);
1760
1783
  return {
1761
1784
  success: false,
@@ -2118,9 +2141,7 @@ async function handleRevisionGet(db, revisionId) {
2118
2141
  */
2119
2142
  async function handleRevisionRestore(db, revisionId, callerUserId) {
2120
2143
  try {
2121
- const revisionRepo = new RevisionRepository(db);
2122
- const contentRepo = new ContentRepository(db);
2123
- const revision = await revisionRepo.findById(revisionId);
2144
+ const revision = await new RevisionRepository(db).findById(revisionId);
2124
2145
  if (!revision) return {
2125
2146
  success: false,
2126
2147
  error: {
@@ -2129,17 +2150,22 @@ async function handleRevisionRestore(db, revisionId, callerUserId) {
2129
2150
  }
2130
2151
  };
2131
2152
  const { _slug, ...fieldData } = revision.data;
2132
- const item = await contentRepo.update(revision.collection, revision.entryId, {
2133
- data: fieldData,
2134
- slug: typeof _slug === "string" ? _slug : void 0
2135
- });
2136
- await revisionRepo.create({
2137
- collection: revision.collection,
2138
- entryId: revision.entryId,
2139
- data: revision.data,
2140
- authorId: callerUserId
2153
+ const item = await withTransaction(db, async (trx) => {
2154
+ const trxContentRepo = new ContentRepository(trx);
2155
+ const trxRevisionRepo = new RevisionRepository(trx);
2156
+ const updated = await trxContentRepo.update(revision.collection, revision.entryId, {
2157
+ data: fieldData,
2158
+ slug: typeof _slug === "string" ? _slug : void 0
2159
+ });
2160
+ await trxRevisionRepo.create({
2161
+ collection: revision.collection,
2162
+ entryId: revision.entryId,
2163
+ data: revision.data,
2164
+ authorId: callerUserId
2165
+ });
2166
+ return updated;
2141
2167
  });
2142
- revisionRepo.pruneOldRevisions(revision.collection, revision.entryId, 50).catch(() => {});
2168
+ new RevisionRepository(db).pruneOldRevisions(revision.collection, revision.entryId, 50).catch(() => {});
2143
2169
  return {
2144
2170
  success: true,
2145
2171
  data: { item }
@@ -2747,6 +2773,10 @@ const contentScheduleBody = z$1.object({ scheduledAt: z$1.string().min(1, "sched
2747
2773
  description: "ISO 8601 datetime for scheduled publishing",
2748
2774
  example: "2025-06-15T09:00:00Z"
2749
2775
  }) }).meta({ id: "ContentScheduleBody" });
2776
+ const contentPublishBody = z$1.object({ publishedAt: z$1.iso.datetime({
2777
+ offset: true,
2778
+ message: "must be an ISO 8601 datetime"
2779
+ }).optional().meta({ description: "Optional ISO 8601 datetime to backdate the publish (e.g. when migrating content). Requires content:publish_any permission. Without this, existing published_at is preserved on re-publish." }) }).meta({ id: "ContentPublishBody" });
2750
2780
  const contentPreviewUrlBody = z$1.object({
2751
2781
  expiresIn: z$1.union([z$1.string(), z$1.number()]).optional(),
2752
2782
  pathPattern: z$1.string().optional()
@@ -3088,8 +3118,8 @@ const commentListQuery = z$1.object({
3088
3118
  ]).optional(),
3089
3119
  collection: z$1.string().optional(),
3090
3120
  search: z$1.string().optional(),
3091
- limit: z$1.coerce.number().int().min(1).max(100).optional(),
3092
- cursor: z$1.string().optional()
3121
+ limit: z$1.coerce.number().int().min(1).max(100).optional().default(50),
3122
+ cursor: z$1.string().max(2048).optional()
3093
3123
  }).meta({ id: "CommentListQuery" });
3094
3124
  const commentStatusValues = z$1.enum([
3095
3125
  "pending",
@@ -3388,8 +3418,8 @@ const sectionSource = z$1.enum([
3388
3418
  const sectionsListQuery = z$1.object({
3389
3419
  source: sectionSource.optional(),
3390
3420
  search: z$1.string().optional(),
3391
- limit: z$1.coerce.number().int().min(1).max(100).optional(),
3392
- cursor: z$1.string().optional()
3421
+ limit: z$1.coerce.number().int().min(1).max(100).optional().default(50),
3422
+ cursor: z$1.string().max(2048).optional()
3393
3423
  }).meta({ id: "SectionsListQuery" });
3394
3424
  const createSectionBody = z$1.object({
3395
3425
  slug: z$1.string().min(1),
@@ -3398,7 +3428,7 @@ const createSectionBody = z$1.object({
3398
3428
  keywords: z$1.array(z$1.string()).optional(),
3399
3429
  content: z$1.array(z$1.record(z$1.string(), z$1.unknown())),
3400
3430
  previewMediaId: z$1.string().optional(),
3401
- source: sectionSource.optional(),
3431
+ source: z$1.enum(["user", "import"]).optional(),
3402
3432
  themeId: z$1.string().optional()
3403
3433
  }).meta({ id: "CreateSectionBody" });
3404
3434
  const updateSectionBody = z$1.object({
@@ -3581,7 +3611,7 @@ const setupAtprotoAdminBody = z$1.object({ handle: z$1.string().trim().min(1) })
3581
3611
  const usersListQuery = z$1.object({
3582
3612
  search: z$1.string().optional(),
3583
3613
  role: z$1.string().optional(),
3584
- cursor: z$1.string().optional(),
3614
+ cursor: z$1.string().max(2048).optional(),
3585
3615
  limit: z$1.coerce.number().int().min(1).max(100).optional().default(50)
3586
3616
  }).meta({ id: "UsersListQuery" });
3587
3617
  const userUpdateBody = z$1.object({
@@ -4971,6 +5001,20 @@ function buildNavMenus(navMenuItemPosts, menuTermsBySlug) {
4971
5001
 
4972
5002
  //#endregion
4973
5003
  //#region src/plugins/define-plugin.ts
5004
+ /**
5005
+ * definePlugin() Helper
5006
+ *
5007
+ * Creates a properly typed and normalized plugin definition.
5008
+ * Supports two formats:
5009
+ *
5010
+ * 1. **Native format** -- full PluginDefinition with id, version, capabilities, etc.
5011
+ * Returns a ResolvedPlugin.
5012
+ *
5013
+ * 2. **Standard format** -- just { hooks, routes }. No id/version/capabilities.
5014
+ * Returns the same object (identity function for type inference).
5015
+ * Metadata comes from the descriptor at config time.
5016
+ *
5017
+ */
4974
5018
  const SIMPLE_ID = /^[a-z0-9-]+$/;
4975
5019
  const SCOPED_ID = /^@[a-z0-9-]+\/[a-z0-9-]+$/;
4976
5020
  const SEMVER_PATTERN = /^\d+\.\d+\.\d+/;
@@ -4990,6 +5034,17 @@ function defineNativePlugin(definition) {
4990
5034
  if (!SIMPLE_ID.test(id) && !SCOPED_ID.test(id)) throw new Error(`Invalid plugin id "${id}". Must be lowercase alphanumeric with dashes (e.g., "my-plugin" or "@scope/my-plugin").`);
4991
5035
  if (!SEMVER_PATTERN.test(version)) throw new Error(`Invalid plugin version "${version}". Must be semver format (e.g., "1.0.0").`);
4992
5036
  const validCapabilities = new Set([
5037
+ "network:request",
5038
+ "network:request:unrestricted",
5039
+ "content:read",
5040
+ "content:write",
5041
+ "media:read",
5042
+ "media:write",
5043
+ "users:read",
5044
+ "email:send",
5045
+ "hooks.email-transport:register",
5046
+ "hooks.email-events:register",
5047
+ "hooks.page-fragments:register",
4993
5048
  "network:fetch",
4994
5049
  "network:fetch:any",
4995
5050
  "read:content",
@@ -4997,16 +5052,16 @@ function defineNativePlugin(definition) {
4997
5052
  "read:media",
4998
5053
  "write:media",
4999
5054
  "read:users",
5000
- "email:send",
5001
5055
  "email:provide",
5002
5056
  "email:intercept",
5003
5057
  "page:inject"
5004
5058
  ]);
5005
5059
  for (const cap of capabilities) if (!validCapabilities.has(cap)) throw new Error(`Invalid capability "${cap}" in plugin "${id}".`);
5006
- const normalizedCapabilities = [...capabilities];
5007
- if (capabilities.includes("write:content") && !capabilities.includes("read:content")) normalizedCapabilities.push("read:content");
5008
- if (capabilities.includes("write:media") && !capabilities.includes("read:media")) normalizedCapabilities.push("read:media");
5009
- if (capabilities.includes("network:fetch:any") && !capabilities.includes("network:fetch")) normalizedCapabilities.push("network:fetch");
5060
+ const canonical = normalizeCapabilities(capabilities);
5061
+ const normalizedCapabilities = [...canonical];
5062
+ if (canonical.includes("content:write") && !canonical.includes("content:read")) normalizedCapabilities.push("content:read");
5063
+ if (canonical.includes("media:write") && !canonical.includes("media:read")) normalizedCapabilities.push("media:read");
5064
+ if (canonical.includes("network:request:unrestricted") && !canonical.includes("network:request")) normalizedCapabilities.push("network:request");
5010
5065
  return {
5011
5066
  id,
5012
5067
  version,
@@ -6017,16 +6072,16 @@ var PluginContextFactory = class {
6017
6072
  const log = createLogAccess(plugin.id);
6018
6073
  const storage = createStorageAccess(this.db, plugin.id, plugin.storage);
6019
6074
  let content;
6020
- if (capabilities.has("write:content")) content = createContentAccessWithWrite(this.db);
6021
- else if (capabilities.has("read:content")) content = createContentAccess(this.db);
6075
+ if (capabilities.has("content:write")) content = createContentAccessWithWrite(this.db);
6076
+ else if (capabilities.has("content:read")) content = createContentAccess(this.db);
6022
6077
  let media;
6023
- if (capabilities.has("write:media") && this.getUploadUrl) media = createMediaAccessWithWrite(this.db, this.getUploadUrl, this.storage);
6024
- else if (capabilities.has("read:media")) media = createMediaAccess(this.db);
6078
+ if (capabilities.has("media:write") && this.getUploadUrl) media = createMediaAccessWithWrite(this.db, this.getUploadUrl, this.storage);
6079
+ else if (capabilities.has("media:read")) media = createMediaAccess(this.db);
6025
6080
  let http;
6026
- if (capabilities.has("network:fetch:any")) http = createUnrestrictedHttpAccess(plugin.id);
6027
- else if (capabilities.has("network:fetch")) http = createHttpAccess(plugin.id, plugin.allowedHosts);
6081
+ if (capabilities.has("network:request:unrestricted")) http = createUnrestrictedHttpAccess(plugin.id);
6082
+ else if (capabilities.has("network:request")) http = createHttpAccess(plugin.id, plugin.allowedHosts);
6028
6083
  let users;
6029
- if (capabilities.has("read:users")) users = createUserAccess(this.db);
6084
+ if (capabilities.has("users:read")) users = createUserAccess(this.db);
6030
6085
  let cron;
6031
6086
  if (this.cronReschedule) cron = new CronAccessImpl(this.db, plugin.id, this.cronReschedule);
6032
6087
  let email;
@@ -6172,22 +6227,22 @@ var HookPipeline = class HookPipeline {
6172
6227
  * capability will have that hook silently skipped at registration time.
6173
6228
  */
6174
6229
  static HOOK_REQUIRED_CAPABILITY = new Map([
6175
- ["email:beforeSend", "email:intercept"],
6176
- ["email:afterSend", "email:intercept"],
6177
- ["email:deliver", "email:provide"],
6178
- ["content:beforeSave", "write:content"],
6179
- ["content:afterSave", "read:content"],
6180
- ["content:beforeDelete", "read:content"],
6181
- ["content:afterDelete", "read:content"],
6182
- ["content:afterPublish", "read:content"],
6183
- ["content:afterUnpublish", "read:content"],
6184
- ["media:beforeUpload", "write:media"],
6185
- ["media:afterUpload", "read:media"],
6186
- ["comment:beforeCreate", "read:users"],
6187
- ["comment:moderate", "read:users"],
6188
- ["comment:afterCreate", "read:users"],
6189
- ["comment:afterModerate", "read:users"],
6190
- ["page:fragments", "page:inject"]
6230
+ ["email:beforeSend", "hooks.email-events:register"],
6231
+ ["email:afterSend", "hooks.email-events:register"],
6232
+ ["email:deliver", "hooks.email-transport:register"],
6233
+ ["content:beforeSave", "content:write"],
6234
+ ["content:afterSave", "content:read"],
6235
+ ["content:beforeDelete", "content:read"],
6236
+ ["content:afterDelete", "content:read"],
6237
+ ["content:afterPublish", "content:read"],
6238
+ ["content:afterUnpublish", "content:read"],
6239
+ ["media:beforeUpload", "media:write"],
6240
+ ["media:afterUpload", "media:read"],
6241
+ ["comment:beforeCreate", "users:read"],
6242
+ ["comment:moderate", "users:read"],
6243
+ ["comment:afterCreate", "users:read"],
6244
+ ["comment:afterModerate", "users:read"],
6245
+ ["page:fragments", "hooks.page-fragments:register"]
6191
6246
  ]);
6192
6247
  /**
6193
6248
  * Register a single plugin's hook by name
@@ -7786,18 +7841,6 @@ function createNoopSandboxRunner(_options) {
7786
7841
  return new NoopSandboxRunner();
7787
7842
  }
7788
7843
 
7789
- //#endregion
7790
- //#region src/plugins/types.ts
7791
- /**
7792
- * Check if a value is a StandardPluginDefinition (has hooks/routes but no id/version).
7793
- */
7794
- function isStandardPluginDefinition(value) {
7795
- if (typeof value !== "object" || value === null) return false;
7796
- const hasPluginShape = "hooks" in value || "routes" in value;
7797
- const hasNativeShape = "id" in value && "version" in value;
7798
- return hasPluginShape && !hasNativeShape;
7799
- }
7800
-
7801
7844
  //#endregion
7802
7845
  //#region src/import/sections.ts
7803
7846
  /**
@@ -8721,6 +8764,7 @@ registerSource(wxrSource);
8721
8764
  *
8722
8765
  * Creates preview URLs that include a signed token for accessing draft content.
8723
8766
  */
8767
+ const REPEATED_SLASHES = /\/{2,}/g;
8724
8768
  /**
8725
8769
  * Generate a preview URL for content
8726
8770
  *
@@ -8755,13 +8799,15 @@ registerSource(wxrSource);
8755
8799
  * ```
8756
8800
  */
8757
8801
  async function getPreviewUrl(options) {
8758
- const { collection, id, secret, expiresIn = "1h", baseUrl, pathPattern = "/{collection}/{id}" } = options;
8802
+ const { collection, id, secret, expiresIn = "1h", baseUrl, pathPattern = "/{collection}/{id}", locale = "" } = options;
8759
8803
  const token = await generatePreviewToken({
8760
8804
  contentId: `${collection}:${id}`,
8761
8805
  expiresIn,
8762
8806
  secret
8763
8807
  });
8764
- const path = pathPattern.replace("{collection}", collection).replace("{id}", id);
8808
+ let path = pathPattern.replace("{collection}", collection).replace("{id}", id).replace("{locale}", locale);
8809
+ path = path.replace(REPEATED_SLASHES, "/");
8810
+ if (path.length > 1 && path.endsWith("/")) path = path.slice(0, -1);
8765
8811
  const url = new URL(path, baseUrl || "http://placeholder");
8766
8812
  url.searchParams.set("_preview", token);
8767
8813
  if (!baseUrl) return `${url.pathname}${url.search}`;
@@ -9633,5 +9679,5 @@ function extractSearchableFields(entry, fields) {
9633
9679
  }
9634
9680
 
9635
9681
  //#endregion
9636
- export { prosemirrorToPortableText as $, isStandardPluginDefinition as A, handleContentSchedule as At, EmailPipeline as B, getAllSources as C, handleContentGet as Ct, probeUrl as D, handleContentPermanentDelete as Dt, getUrlSources as E, handleContentListTrashed as Et, createPluginManager as F, validateRev as Ft, extractRequestMeta as G, createHookPipeline as H, PluginRouteError as I, portableText as It, definePlugin as J, sanitizeHeadersForSandbox as K, PluginRouteRegistry as L, reference as Lt, SandboxNotAvailableError as M, handleContentUnpublish as Mt, createNoopSandboxRunner as N, handleContentUnschedule as Nt, registerSource as O, handleContentPublish as Ot, PluginManager as P, handleContentUpdate as Pt, portableTextToProsemirror as Q, DEV_CONSOLE_EMAIL_PLUGIN_ID as R, image as Rt, clearSources as S, handleContentDuplicate as St, getSource as T, handleContentList as Tt, resolveExclusiveHooks as U, HookPipeline as V, CronExecutor as W, parseWxrString as X, parseWxr as Y, after as Z, buildPreviewUrl as _, handleContentCountScheduled as _t, search as a, PluginStateRepository as at, parseWxrDate as b, handleContentDelete as bt, getWidgetArea as c, handleMediaDelete as ct, getMenu as d, handleMediaUpdate as dt, isSafeHref as et, getMenus as f, handleRevisionGet as ft, isPreviewRequest as g, handleContentCompare as gt, getPreviewToken as h, generateManifest as ht, getSuggestions as i, getSections as it, NoopSandboxRunner as j, handleContentTranslations as jt, importReusableBlocksAsSections as k, handleContentRestore as kt, getWidgetAreas as l, handleMediaGet as lt, getComments as m, handleRevisionRestore as mt, extractSearchableFields as n, loadBundleFromR2 as nt, searchCollection as o, getCollectionInfo as ot, getCommentCount as p, handleRevisionList as pt, getTrustedProxyHeaders as q, getSearchStats as r, getSection as rt, searchWithDb as s, handleMediaCreate as st, extractPlainText as t, sanitizeHref as tt, getWidgetComponents as u, handleMediaList as ut, getPreviewUrl as v, handleContentCountTrashed as vt, getFileSources as w, handleContentGetIncludingTrashed as wt, wxrSource as x, handleContentDiscardDraft as xt, wordpressRestSource as y, handleContentCreate as yt, devConsoleEmailDeliver as z };
9637
- //# sourceMappingURL=search-BoZYFuUk.mjs.map
9682
+ export { isSafeHref as $, NoopSandboxRunner as A, handleContentTranslations as At, HookPipeline as B, getAllSources as C, handleContentGetIncludingTrashed as Ct, probeUrl as D, handleContentPublish as Dt, getUrlSources as E, handleContentPermanentDelete as Et, PluginRouteError as F, portableText as Ft, sanitizeHeadersForSandbox as G, resolveExclusiveHooks as H, PluginRouteRegistry as I, reference as It, parseWxr as J, getTrustedProxyHeaders as K, DEV_CONSOLE_EMAIL_PLUGIN_ID as L, image as Lt, createNoopSandboxRunner as M, handleContentUnschedule as Mt, PluginManager as N, handleContentUpdate as Nt, registerSource as O, handleContentRestore as Ot, createPluginManager as P, validateRev as Pt, prosemirrorToPortableText as Q, devConsoleEmailDeliver as R, clearSources as S, handleContentGet as St, getSource as T, handleContentListTrashed as Tt, CronExecutor as U, createHookPipeline as V, extractRequestMeta as W, after as X, parseWxrString as Y, portableTextToProsemirror as Z, buildPreviewUrl as _, handleContentCountTrashed as _t, search as a, getCollectionInfo as at, parseWxrDate as b, handleContentDiscardDraft as bt, getWidgetArea as c, handleMediaGet as ct, getMenu as d, handleRevisionGet as dt, sanitizeHref as et, getMenus as f, handleRevisionList as ft, isPreviewRequest as g, handleContentCountScheduled as gt, getPreviewToken as h, handleContentCompare as ht, getSuggestions as i, PluginStateRepository as it, SandboxNotAvailableError as j, handleContentUnpublish as jt, importReusableBlocksAsSections as k, handleContentSchedule as kt, getWidgetAreas as l, handleMediaList as lt, getComments as m, generateManifest as mt, extractSearchableFields as n, getSection as nt, searchCollection as o, handleMediaCreate as ot, getCommentCount as p, handleRevisionRestore as pt, definePlugin as q, getSearchStats as r, getSections as rt, searchWithDb as s, handleMediaDelete as st, extractPlainText as t, loadBundleFromR2 as tt, getWidgetComponents as u, handleMediaUpdate as ut, getPreviewUrl as v, handleContentCreate as vt, getFileSources as w, handleContentList as wt, wxrSource as x, handleContentDuplicate as xt, wordpressRestSource as y, handleContentDelete as yt, EmailPipeline as z };
9683
+ //# sourceMappingURL=search-dOGEccMa.mjs.map