dineway 0.1.49 → 0.2.1

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 (434) hide show
  1. package/dist/activity-DUaz_w7p.mjs +79 -0
  2. package/dist/{activity-events-CwM7yxPW.mjs → activity-events-CJDvE2uc.mjs} +5 -113
  3. package/dist/actor-0QJ1Gbtf.mjs +37 -0
  4. package/dist/after-BfniwgIf.mjs +9 -0
  5. package/dist/{allowed-origins-CyGnbgBd.mjs → allowed-origins--OwHHiY8.mjs} +1 -1
  6. package/dist/api/route-utils.d.mts +9 -10
  7. package/dist/api/route-utils.mjs +16 -13
  8. package/dist/api/schemas/index.d.mts +2 -2
  9. package/dist/api/schemas/index.mjs +5 -4
  10. package/dist/{api-BMIxRIEN.mjs → api-B4PHIF4V.mjs} +93 -41
  11. package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-tbK_sORH.mjs} +6 -2
  12. package/dist/{apply-D_RlTYtC.mjs → apply-DjTqq6Ae.mjs} +117 -77
  13. package/dist/astro/image-endpoint.d.mts +7 -0
  14. package/dist/astro/image-endpoint.mjs +54 -0
  15. package/dist/astro/index.d.mts +34 -11
  16. package/dist/astro/index.mjs +163 -24
  17. package/dist/astro/integration/shims/use-sync-external-store-with-selector.js +71 -0
  18. package/dist/astro/integration/shims/use-sync-external-store.js +1 -0
  19. package/dist/astro/middleware/auth.d.mts +8 -18
  20. package/dist/astro/middleware/auth.mjs +42 -24
  21. package/dist/astro/middleware/redirect.mjs +13 -4
  22. package/dist/astro/middleware/request-context.mjs +8 -5
  23. package/dist/astro/middleware/seed.d.mts +1 -1
  24. package/dist/astro/middleware/seed.mjs +2 -2
  25. package/dist/astro/middleware/setup.mjs +1 -1
  26. package/dist/astro/middleware.mjs +389 -206
  27. package/dist/astro/routes/admin.astro +6 -1
  28. package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -6
  29. package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -6
  30. package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
  31. package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
  32. package/dist/astro/routes/api/admin/briefing.mjs +21 -17
  33. package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
  34. package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -8
  35. package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -8
  36. package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -8
  37. package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -14
  38. package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -14
  39. package/dist/astro/routes/api/admin/bylines/index.mjs +17 -14
  40. package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -12
  41. package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -5
  42. package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -9
  43. package/dist/astro/routes/api/admin/comments/counts.mjs +6 -5
  44. package/dist/astro/routes/api/admin/comments/index.mjs +11 -9
  45. package/dist/astro/routes/api/admin/context/_id_/history.mjs +27 -24
  46. package/dist/astro/routes/api/admin/context/_id_/index.mjs +27 -24
  47. package/dist/astro/routes/api/admin/context/_id_/review.mjs +32 -28
  48. package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +32 -28
  49. package/dist/astro/routes/api/admin/context/diff.mjs +31 -27
  50. package/dist/astro/routes/api/admin/context/index.mjs +32 -28
  51. package/dist/astro/routes/api/admin/context/stale.mjs +31 -27
  52. package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +27 -24
  53. package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +31 -27
  54. package/dist/astro/routes/api/admin/hitl-requests/index.mjs +31 -27
  55. package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +28 -25
  56. package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
  57. package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
  58. package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
  59. package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +56 -51
  60. package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +56 -51
  61. package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -43
  62. package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +54 -49
  63. package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +53 -48
  64. package/dist/astro/routes/api/admin/plugins/index.mjs +47 -43
  65. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
  66. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +46 -42
  67. package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +53 -48
  68. package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +46 -42
  69. package/dist/astro/routes/api/admin/plugins/updates.mjs +46 -42
  70. package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
  71. package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +32 -63
  72. package/dist/astro/routes/api/admin/review-requests/index.d.mts +2 -1
  73. package/dist/astro/routes/api/admin/review-requests/index.mjs +58 -10
  74. package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +46 -42
  75. package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
  76. package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +46 -42
  77. package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
  78. package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
  79. package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -7
  80. package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
  81. package/dist/astro/routes/api/admin/users/index.mjs +7 -6
  82. package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
  83. package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
  84. package/dist/astro/routes/api/auth/invite/complete.mjs +12 -11
  85. package/dist/astro/routes/api/auth/invite/index.mjs +9 -8
  86. package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -10
  87. package/dist/astro/routes/api/auth/logout.mjs +2 -2
  88. package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -10
  89. package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
  90. package/dist/astro/routes/api/auth/me.mjs +9 -8
  91. package/dist/astro/routes/api/auth/mode.mjs +1 -1
  92. package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
  93. package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
  94. package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -5
  95. package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
  96. package/dist/astro/routes/api/auth/passkey/options.mjs +12 -11
  97. package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -9
  98. package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -10
  99. package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -10
  100. package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
  101. package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
  102. package/dist/astro/routes/api/auth/signup/complete.mjs +12 -11
  103. package/dist/astro/routes/api/auth/signup/request.mjs +11 -10
  104. package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
  105. package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -13
  106. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +8 -0
  107. package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +160 -0
  108. package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
  109. package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +6 -5
  110. package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -5
  111. package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -5
  112. package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -10
  113. package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +49 -20
  114. package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -5
  115. package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
  116. package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +67 -32
  117. package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +16 -14
  118. package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
  119. package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +6 -5
  120. package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -9
  121. package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
  122. package/dist/astro/routes/api/content/_collection_/index.mjs +11 -9
  123. package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
  124. package/dist/astro/routes/api/dashboard.mjs +9 -8
  125. package/dist/astro/routes/api/dev/emails.mjs +2 -2
  126. package/dist/astro/routes/api/health.mjs +1 -1
  127. package/dist/astro/routes/api/import/probe.d.mts +3 -3
  128. package/dist/astro/routes/api/import/probe.mjs +22 -10
  129. package/dist/astro/routes/api/import/wordpress/analyze.mjs +9 -6
  130. package/dist/astro/routes/api/import/wordpress/execute.d.mts +18 -1
  131. package/dist/astro/routes/api/import/wordpress/execute.mjs +85 -37
  132. package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -1
  133. package/dist/astro/routes/api/import/wordpress/media.mjs +20 -14
  134. package/dist/astro/routes/api/import/wordpress/prepare.mjs +36 -32
  135. package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +17 -1
  136. package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +121 -100
  137. package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
  138. package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -12
  139. package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +55 -2
  140. package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +284 -55
  141. package/dist/astro/routes/api/manifest.mjs +14 -5
  142. package/dist/astro/routes/api/mcp.mjs +753 -170
  143. package/dist/astro/routes/api/media/_id_/confirm.mjs +38 -10
  144. package/dist/astro/routes/api/media/_id_.mjs +11 -7
  145. package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
  146. package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
  147. package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
  148. package/dist/astro/routes/api/media/providers/index.mjs +2 -2
  149. package/dist/astro/routes/api/media/upload-url.mjs +11 -10
  150. package/dist/astro/routes/api/media.mjs +28 -35
  151. package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +32 -28
  152. package/dist/astro/routes/api/menus/_name_/items.mjs +32 -28
  153. package/dist/astro/routes/api/menus/_name_/reorder.mjs +32 -28
  154. package/dist/astro/routes/api/menus/_name_/translations.mjs +32 -28
  155. package/dist/astro/routes/api/menus/_name_.mjs +32 -28
  156. package/dist/astro/routes/api/menus/index.mjs +32 -28
  157. package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
  158. package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
  159. package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
  160. package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
  161. package/dist/astro/routes/api/oauth/register.mjs +4 -4
  162. package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
  163. package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
  164. package/dist/astro/routes/api/oauth/token.mjs +6 -6
  165. package/dist/astro/routes/api/openapi.json.mjs +4 -3
  166. package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +46 -31
  167. package/dist/astro/routes/api/redirects/404s/index.mjs +11 -10
  168. package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -10
  169. package/dist/astro/routes/api/redirects/_id_.mjs +33 -29
  170. package/dist/astro/routes/api/redirects/index.mjs +33 -29
  171. package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
  172. package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
  173. package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +48 -43
  174. package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +48 -43
  175. package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +48 -43
  176. package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +48 -43
  177. package/dist/astro/routes/api/schema/collections/index.mjs +48 -43
  178. package/dist/astro/routes/api/schema/index.mjs +14 -15
  179. package/dist/astro/routes/api/schema/orphans/_slug_.mjs +46 -42
  180. package/dist/astro/routes/api/schema/orphans/index.mjs +46 -42
  181. package/dist/astro/routes/api/search/enable.mjs +11 -10
  182. package/dist/astro/routes/api/search/index.mjs +10 -9
  183. package/dist/astro/routes/api/search/rebuild.mjs +11 -10
  184. package/dist/astro/routes/api/search/stats.mjs +6 -6
  185. package/dist/astro/routes/api/search/suggest.mjs +10 -9
  186. package/dist/astro/routes/api/sections/_slug_.mjs +32 -28
  187. package/dist/astro/routes/api/sections/index.mjs +32 -28
  188. package/dist/astro/routes/api/settings/email.mjs +4 -4
  189. package/dist/astro/routes/api/settings.mjs +32 -28
  190. package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
  191. package/dist/astro/routes/api/setup/admin.mjs +12 -11
  192. package/dist/astro/routes/api/setup/dev-bypass.mjs +31 -25
  193. package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
  194. package/dist/astro/routes/api/setup/index.mjs +29 -25
  195. package/dist/astro/routes/api/setup/status.mjs +3 -3
  196. package/dist/astro/routes/api/snapshot.mjs +8 -7
  197. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +35 -31
  198. package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +35 -31
  199. package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +35 -31
  200. package/dist/astro/routes/api/taxonomies/index.mjs +35 -31
  201. package/dist/astro/routes/api/themes/preview.mjs +5 -5
  202. package/dist/astro/routes/api/typegen.mjs +4 -4
  203. package/dist/astro/routes/api/well-known/auth.mjs +3 -3
  204. package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
  205. package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
  206. package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +31 -27
  207. package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +32 -28
  208. package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +32 -28
  209. package/dist/astro/routes/api/widget-areas/_name_.mjs +29 -26
  210. package/dist/astro/routes/api/widget-areas/index.mjs +32 -28
  211. package/dist/astro/routes/api/widget-components.mjs +2 -2
  212. package/dist/astro/routes/robots.txt.mjs +8 -7
  213. package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -14
  214. package/dist/astro/routes/sitemap.xml.mjs +9 -8
  215. package/dist/astro/session-driver.d.mts +1 -1
  216. package/dist/astro/session-driver.mjs +2 -2
  217. package/dist/astro/types.d.mts +22 -13
  218. package/dist/{audit-BeNsSyfU.mjs → audit-B2pRxZ20.mjs} +1 -1
  219. package/dist/auth/providers/github.d.mts +1 -1
  220. package/dist/auth/providers/google.d.mts +1 -1
  221. package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-D71jourk.mjs} +1 -1
  222. package/dist/{authorize-BLO0m7fW.mjs → authorize-ZXPGPwKn.mjs} +1 -1
  223. package/dist/{briefing-CkTee1ex.mjs → briefing-0rf-su3-.mjs} +90 -28
  224. package/dist/{briefing-DJX6irto.mjs → briefing-kRhegBoF.mjs} +2 -1
  225. package/dist/bundle-CEcdUa1s.mjs +602 -0
  226. package/dist/{byline-BVC1lV6G.mjs → byline-7xR185Ly.mjs} +30 -62
  227. package/dist/{byline-fields-Cj39WhXC.mjs → byline-fields-BKzA0fJU.mjs} +1 -1
  228. package/dist/{byline-fields-uJlygdzM.d.mts → byline-fields-Ckeqd1OY.d.mts} +88 -35
  229. package/dist/{byline-fields-cNrLJVRs.mjs → byline-fields-WN7RQT4q.mjs} +10 -4
  230. package/dist/{byline-registry-4v6tXMNX.mjs → byline-registry-Ba54M74c.mjs} +2 -2
  231. package/dist/{bylines-LN9XISRo.mjs → bylines-C-EL6dh3.mjs} +9 -3
  232. package/dist/{bylines-DwokOFj6.mjs → bylines-CmZFCMr0.mjs} +5 -5
  233. package/dist/{cache-Bac05gBd.mjs → cache-DkVCKGio.mjs} +2 -2
  234. package/dist/{chunks-CuUt7K50.mjs → chunks-ChGNDY8r.mjs} +1 -1
  235. package/dist/cli/index.d.mts +29 -1
  236. package/dist/cli/index.mjs +1466 -1763
  237. package/dist/cli/plugin-kit.d.mts +75 -0
  238. package/dist/cli/plugin-kit.mjs +4 -0
  239. package/dist/client/external-auth-headers.d.mts +1 -1
  240. package/dist/client/index.d.mts +27 -52
  241. package/dist/client/index.mjs +34 -6
  242. package/dist/client-factory-BDD9azPJ.mjs +233 -0
  243. package/dist/{comment-Beue8-15.mjs → comment-DFALgsJD.mjs} +13 -3
  244. package/dist/comment-reaction-C37bf99u.mjs +58 -0
  245. package/dist/{comments-DcjFIfqX.mjs → comments-B3NwDBxl.mjs} +1 -1
  246. package/dist/{content-CBxYGWfL.mjs → content-DJcAYFhz.mjs} +51 -34
  247. package/dist/content-refresh-B4ZCmxgd.mjs +1576 -0
  248. package/dist/{context-Df1xVYyr.mjs → context-DnpXcp6Y.mjs} +2 -2
  249. package/dist/{context-CQVNZaR8.mjs → context-fSCYLL3c.mjs} +125 -53
  250. package/dist/{context-route-helpers-B9wj8Rmh.mjs → context-route-helpers-CI8XzcsK.mjs} +2 -1
  251. package/dist/{cron-DxCAU_Sn.mjs → cron-B1SL_lsb.mjs} +7 -3
  252. package/dist/{dashboard-B7ZUNuyF.mjs → dashboard-D0nj5oWg.mjs} +4 -4
  253. package/dist/db/index.d.mts +3 -3
  254. package/dist/db/index.mjs +1 -1
  255. package/dist/db/libsql.d.mts +1 -1
  256. package/dist/db/postgres.d.mts +1 -1
  257. package/dist/db/sqlite.d.mts +1 -1
  258. package/dist/{device-flow-BZVGftqi.mjs → device-flow-BJe6VEhP.mjs} +5 -5
  259. package/dist/{placeholder-d54Qr_7n.mjs → enrich-Ck9tfMqe.mjs} +36 -9
  260. package/dist/{error-DCSuUAZW.mjs → error-CSVaQNZy.mjs} +5 -0
  261. package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-GVhUgzEs.mjs} +1 -1
  262. package/dist/field-defs-cache-DL-T2XVS.mjs +49 -0
  263. package/dist/forgeway-seo-client-G5ddhVHd.mjs +456 -0
  264. package/dist/{fts-manager-B5l_qwrA.mjs → fts-manager-ewTGohf4.mjs} +1 -1
  265. package/dist/{hitl-requests-7NlzVeUA.mjs → hitl-requests-DEFj8e6u.mjs} +2 -2
  266. package/dist/{hitl-route-helpers-k---_H3-.mjs → hitl-route-helpers-C23JHaWz.mjs} +5 -4
  267. package/dist/import-CXXL5pip.mjs +1354 -0
  268. package/dist/index-DcnOCD1e.d.mts +375 -0
  269. package/dist/index.d.mts +15 -16
  270. package/dist/index.mjs +85 -70
  271. package/dist/{jsonld-DZ67souc.d.mts → jsonld-DzKbhRZ4.d.mts} +8 -4
  272. package/dist/{load-D9OiGr2m.mjs → load-CFtJRT3c.mjs} +1 -1
  273. package/dist/{loader--GOYux8M.mjs → loader-aWkkc1_o.mjs} +117 -31
  274. package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-uA6pRFXi.mjs} +38 -1
  275. package/dist/mcp-reviewed-executor-Dn52L_yY.mjs +558 -0
  276. package/dist/media/image-endpoint.d.mts +32 -0
  277. package/dist/media/image-endpoint.mjs +111 -0
  278. package/dist/media/index.d.mts +27 -2
  279. package/dist/media/index.mjs +5 -3
  280. package/dist/media/local-runtime.d.mts +15 -11
  281. package/dist/media/local-runtime.mjs +9 -7
  282. package/dist/{media-CbKyYukG.mjs → media-CVMOoywq.mjs} +3 -1
  283. package/dist/{media-allowlist-BYxJIcTO.mjs → media-allowlist-zDNJmXCo.mjs} +1 -1
  284. package/dist/media-url-BdoLPvg8.mjs +20 -0
  285. package/dist/{menus-C7F0sCrC.mjs → menus-CCG2z5um.mjs} +80 -15
  286. package/dist/{menus-BZbXf-ej.mjs → menus-CmyIkRG5.mjs} +19 -5
  287. package/dist/{normalize-ByemhhfW.mjs → normalize-Cyt7JdF7.mjs} +8 -1
  288. package/dist/{oauth-authorization-DF-LCsIA.mjs → oauth-authorization-B9H7X85L.mjs} +5 -5
  289. package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-Dwl32-Uj.mjs} +2 -2
  290. package/dist/object-cache/memory.d.mts +14 -0
  291. package/dist/object-cache/memory.mjs +55 -0
  292. package/dist/object-cache-D51qOseS.mjs +419 -0
  293. package/dist/output-DhBe5_Pi.mjs +68 -0
  294. package/dist/page/index.d.mts +10 -3
  295. package/dist/page/index.mjs +2 -2
  296. package/dist/{parse-CneSgl7-.mjs → parse-i15EFSAE.mjs} +1 -1
  297. package/dist/{parser-DxfsARXL.mjs → parser-06LLLL4E.mjs} +151 -9
  298. package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-DkWkXfDI.d.mts} +12 -4
  299. package/dist/plugin-utils.d.mts +8 -9
  300. package/dist/plugins/adapt-sandbox-entry.d.mts +8 -9
  301. package/dist/plugins/adapt-sandbox-entry.mjs +13 -2
  302. package/dist/{plugins-DzfqRREq.mjs → plugins-CPA2PtfY.mjs} +919 -66
  303. package/dist/{transport-LSdZVXHF.mjs → portable-text-BASHceim.mjs} +1 -134
  304. package/dist/portable-text-E79LyjGo.d.mts +45 -0
  305. package/dist/{preview-C-3YTX2U.mjs → preview-BjedZm8G.mjs} +4 -3
  306. package/dist/process-cache-CCDgti7j.mjs +106 -0
  307. package/dist/project-env-DKibmuP8.mjs +95 -0
  308. package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-DC2JdWeO.d.mts} +1 -1
  309. package/dist/{public-url-B4xV4rGa.d.mts → public-url-DQJCnYi9.d.mts} +1 -1
  310. package/dist/publication-authorization-RKiHXKtq.mjs +985 -0
  311. package/dist/{query-CZ3TH_Uu.mjs → query-C2U5u5_p.mjs} +11 -6
  312. package/dist/{query-Ds0EnMFX.mjs → query-DEv5x6yB.mjs} +281 -76
  313. package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-DglsAJSw.mjs} +2 -2
  314. package/dist/{redirect-CEACczxo.mjs → redirect-ubhEqQCQ.mjs} +2 -2
  315. package/dist/{redirects-ocRJmQHP.mjs → redirects-Bhpm8bRe.mjs} +35 -19
  316. package/dist/{redirects-DYj1yPxs.mjs → redirects-xs2yahLq.mjs} +47 -24
  317. package/dist/{registry-D7HACema.mjs → registry-BYYyb2tF.mjs} +148 -81
  318. package/dist/request-context.d.mts +2 -0
  319. package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CFe1tW2M.mjs} +1 -1
  320. package/dist/review-payload-BysRWpxS.mjs +111 -0
  321. package/dist/{review-requests-BW2NxY-l.mjs → review-requests-CTWGnWUt.mjs} +1 -1
  322. package/dist/review-requests-D42VEP1l.mjs +142 -0
  323. package/dist/review-route-helpers-C31vO6SI.mjs +41 -0
  324. package/dist/runner-BgmttQmD.mjs +7444 -0
  325. package/dist/{runner-09sTqtv0.d.mts → runner-D6hzs8L9.d.mts} +1 -1
  326. package/dist/runtime.d.mts +9 -10
  327. package/dist/runtime.mjs +3 -3
  328. package/dist/schema-DUtnZxjZ.mjs +8 -0
  329. package/dist/{search-Gdrqj582.mjs → search-DUKgZUlm.mjs} +5 -3
  330. package/dist/{secrets-CeGpBFV2.mjs → secrets-ZV5rd8yV.mjs} +14 -11
  331. package/dist/{sections-BOjU13Y-.mjs → sections-DvFgsnda.mjs} +2 -2
  332. package/dist/seed/index.d.mts +2 -2
  333. package/dist/seed/index.mjs +21 -18
  334. package/dist/seo/index.d.mts +1 -1
  335. package/dist/seo/index.mjs +3 -12
  336. package/dist/{seo-5lJOtB5J.mjs → seo-BLszyJxd.mjs} +22 -4
  337. package/dist/{seo-CLj8lS7Q.mjs → seo-BU8MLCS9.mjs} +5 -2
  338. package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-GnCuL1ML.mjs} +11 -3
  339. package/dist/{service-jGlhrICs.mjs → service-FL3fB0Rx.mjs} +2 -2
  340. package/dist/session-user-Ct6GBLvn.mjs +22 -0
  341. package/dist/{settings-CUXOxzsT.mjs → settings-BECcAIRH.mjs} +28 -55
  342. package/dist/{settings-DlBsT2VS.mjs → settings-EzADu-dd.mjs} +2 -2
  343. package/dist/{setup-complete-BRrdPYjZ.mjs → setup-complete-Da0axZEE.mjs} +1 -1
  344. package/dist/{site-activity-DONFrMBJ.mjs → site-activity-h8smOlYI.mjs} +1 -1
  345. package/dist/{site-context-C8Az_P_I.mjs → site-context-B8T1kpUP.mjs} +337 -530
  346. package/dist/{site-url-DIMD68go.mjs → site-url-DJEid0ml.mjs} +1 -1
  347. package/dist/stable-hash-DshcXvRE.mjs +19 -0
  348. package/dist/status-NqWOSFAD.mjs +21 -0
  349. package/dist/storage/local.d.mts +1 -1
  350. package/dist/storage/local.mjs +1 -1
  351. package/dist/storage/s3.d.mts +1 -1
  352. package/dist/storage/s3.mjs +1 -1
  353. package/dist/{taxonomies-D9Sw4wWM.mjs → taxonomies-BiM9NtgW.mjs} +36 -29
  354. package/dist/taxonomies-DSnY5nOa.mjs +443 -0
  355. package/dist/{taxonomy-B169Nm6B.mjs → taxonomy-0k_vRVsD.mjs} +44 -9
  356. package/dist/transport-C46KHLMP.mjs +134 -0
  357. package/dist/types-A8fPOJnl.mjs +69 -0
  358. package/dist/types-BLQCz46p.d.mts +118 -0
  359. package/dist/{types-CwawBUTa.d.mts → types-B_FlxIIl.d.mts} +4 -1
  360. package/dist/{types-CSgR9nQB.mjs → types-ChxYDRvx.mjs} +1 -1
  361. package/dist/{types-GaCtZ1k9.d.mts → types-Cw0PeCT_.d.mts} +18 -0
  362. package/dist/types-DuQn1G7-.d.mts +2973 -0
  363. package/dist/{runtime-C4-2lSFg.d.mts → types-DwoUifGE.d.mts} +5668 -3000
  364. package/dist/{types-DRIKLmJI.d.mts → types-opjX_kz6.d.mts} +17 -2
  365. package/dist/ui/server-runtime.d.mts +13 -15
  366. package/dist/ui/server-runtime.mjs +24 -20
  367. package/dist/url-guoXQQcV.mjs +33 -0
  368. package/dist/{user-DTLoZs16.mjs → user-BH-n01y3.mjs} +2 -2
  369. package/dist/{utils-B8hBJ9Oz.mjs → utils-D1SrKGtP.mjs} +129 -7
  370. package/dist/{validate-DzjCdy6v.d.mts → validate-CbVFoJgc.d.mts} +65 -8
  371. package/dist/{validate-DWmPO6oj.mjs → validate-D1HL-oLR.mjs} +11 -6
  372. package/dist/version-C3iVRuaF.mjs +6 -0
  373. package/dist/{widgets-BpJ8EpPd.mjs → widgets-BZrLrNgS.mjs} +46 -43
  374. package/dist/{wordpress-slugs-DHNR9LpG.mjs → wordpress-slugs-C3PWcowq.mjs} +1 -1
  375. package/dist/{zod-generator-K91-g665.mjs → zod-generator-C7AsLpSB.mjs} +42 -14
  376. package/package.json +38 -8
  377. package/src/components/Block.astro +50 -0
  378. package/src/components/Comments.astro +143 -1
  379. package/src/components/DinewayHead.astro +19 -2
  380. package/src/components/DinewayImage.astro +66 -33
  381. package/src/components/DinewayMedia.astro +1 -2
  382. package/src/components/Image.astro +85 -40
  383. package/src/components/InlinePortableTextEditor.tsx +12 -2
  384. package/src/components/JsonLdScript.astro +9 -0
  385. package/src/components/LiveSearch.astro +40 -4
  386. package/src/components/index.ts +4 -0
  387. package/src/components/live-search-routing.ts +30 -0
  388. package/src/components/portable-text-text-align.ts +15 -0
  389. package/src/ui.ts +2 -0
  390. package/dist/entity-aliases-4y93Yjuc.mjs +0 -51
  391. package/dist/import-4YBXbDkI.mjs +0 -684
  392. package/dist/index-CZiWCQDp.d.mts +0 -227
  393. package/dist/review-requests-Qum4713s.mjs +0 -79
  394. package/dist/runner-DzIpHGND.mjs +0 -2836
  395. package/dist/schema-Bsi-VpYv.mjs +0 -8
  396. package/dist/taxonomies-CZ-_DitR.mjs +0 -327
  397. package/dist/types-CuJOqHfM.d.mts +0 -758
  398. package/dist/types-DSPGWjxO.d.mts +0 -1247
  399. package/dist/types-nP9vGUFq.d.mts +0 -56
  400. package/dist/version-C4gfn0PJ.mjs +0 -6
  401. /package/dist/{adapters-OQCImOL7.d.mts → adapters-BiRymx02.d.mts} +0 -0
  402. /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-Ypaly90d.mjs} +0 -0
  403. /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-D5pSY2S1.mjs} +0 -0
  404. /package/dist/{components--pg6zBvu.mjs → components-DImzlLhb.mjs} +0 -0
  405. /package/dist/{context-types-r8oFvyOq.mjs → context-types-eBuMDAg-.mjs} +0 -0
  406. /package/dist/{default-B6iaLvP7.mjs → default-D4Vygcy_.mjs} +0 -0
  407. /package/dist/{email-console-BOVqIYpB.mjs → email-console-Bp0r68iF.mjs} +0 -0
  408. /package/dist/{escape-BDgouFFY.mjs → escape-DN4Qmjsl.mjs} +0 -0
  409. /package/dist/{hash-BPmX6P8I.mjs → hash-mxxx2oPW.mjs} +0 -0
  410. /package/dist/{mime-CbKsKDCB.mjs → mime-C0vOHFm7.mjs} +0 -0
  411. /package/dist/{mode-CZqCF9dZ.mjs → mode-C8yZnIlR.mjs} +0 -0
  412. /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CndT35iw.mjs} +0 -0
  413. /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-CMehAaKs.mjs} +0 -0
  414. /package/dist/{options-LsPjZlqD.mjs → options-DQPTH5n0.mjs} +0 -0
  415. /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-NYukYGed.mjs} +0 -0
  416. /package/dist/{patterns-DKAX6oqN.mjs → patterns-CoqlXUvk.mjs} +0 -0
  417. /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-BtfrrzfD.mjs} +0 -0
  418. /package/dist/{public-url-B_m9IwdV.mjs → public-url-Cp6hyjVR.mjs} +0 -0
  419. /package/dist/{redirect-BjIBtDWY.mjs → redirect-DrbEmU9a.mjs} +0 -0
  420. /package/dist/{request-cache-ho99schz.mjs → request-cache-CBFjCwSt.mjs} +0 -0
  421. /package/dist/{resolve-DTuDyYKs.mjs → resolve-DE71WcL9.mjs} +0 -0
  422. /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-BtkKnvxQ.mjs} +0 -0
  423. /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-Ctzfyyp-.mjs} +0 -0
  424. /package/dist/{slugify-BqebcqBg.mjs → slugify-KSsVD_D3.mjs} +0 -0
  425. /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-FJqwQzj4.mjs} +0 -0
  426. /package/dist/{tokens-SLmgowfd.mjs → tokens-BDQU29Vd.mjs} +0 -0
  427. /package/dist/{transaction-CFLhEOuH.mjs → transaction-0LEAAy8R.mjs} +0 -0
  428. /package/dist/{transport-BnsNxh2l.d.mts → transport-D9pKAzFP.d.mts} +0 -0
  429. /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-Dm7Mxvt6.mjs} +0 -0
  430. /package/dist/{types-CJ8DkL0q.mjs → types-B7TDDFMG.mjs} +0 -0
  431. /package/dist/{types-Dryvv7LH.d.mts → types-g0zMtraY.d.mts} +0 -0
  432. /package/dist/{types-Cg276-3z.mjs → types-mVVgRPaU.mjs} +0 -0
  433. /package/dist/{types-DZpT-PnG.d.mts → types-wFu80FrO.d.mts} +0 -0
  434. /package/dist/{url-w7Mp5qAD.mjs → url-EMAguGVk.mjs} +0 -0
@@ -0,0 +1,456 @@
1
+ import { i as getProjectEnvValue } from "./project-env-DKibmuP8.mjs";
2
+ import { randomUUID } from "node:crypto";
3
+ import { z } from "zod";
4
+ import { join } from "node:path";
5
+ import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
6
+ import { homedir } from "node:os";
7
+
8
+ //#region src/cli/commands/deploy/utils/forgeway-secrets.ts
9
+ const DINEWAY_USER_CONFIG_DIR_NAME = "dineway";
10
+ const TRAILING_SLASH_PATTERN$1 = /\/$/;
11
+ function getDinewayUserConfigDir() {
12
+ return join(process.env.XDG_CONFIG_HOME || join(homedir(), ".config"), DINEWAY_USER_CONFIG_DIR_NAME);
13
+ }
14
+ function getForgewayAccountSecretPath() {
15
+ return join(getDinewayUserConfigDir(), "forgeway.json");
16
+ }
17
+ function normalizePlatformApiUrl(platformApiUrl) {
18
+ return platformApiUrl.replace(TRAILING_SLASH_PATTERN$1, "");
19
+ }
20
+ function normalizeEmail$1(email) {
21
+ return email.trim().toLowerCase();
22
+ }
23
+ function accountKey(platformApiUrl, email) {
24
+ return `${normalizePlatformApiUrl(platformApiUrl)}#${normalizeEmail$1(email)}`;
25
+ }
26
+ function normalizeLookup(lookup) {
27
+ if (typeof lookup === "string") return { cwd: lookup };
28
+ return lookup ?? {};
29
+ }
30
+ async function readAccountStore() {
31
+ try {
32
+ const raw = await readFile(getForgewayAccountSecretPath(), "utf-8");
33
+ return JSON.parse(raw);
34
+ } catch {
35
+ return { version: 1 };
36
+ }
37
+ }
38
+ async function writeAccountStore(store) {
39
+ await mkdir(getDinewayUserConfigDir(), {
40
+ recursive: true,
41
+ mode: 448
42
+ });
43
+ const file = getForgewayAccountSecretPath();
44
+ await writeFile(file, JSON.stringify({
45
+ ...store,
46
+ version: 1
47
+ }, null, " ") + "\n", {
48
+ encoding: "utf-8",
49
+ mode: 384
50
+ });
51
+ await chmod(file, 384);
52
+ }
53
+ function accountMatches(credentials, lookup) {
54
+ if (lookup.platformApiUrl && normalizePlatformApiUrl(credentials.platformApiUrl) !== normalizePlatformApiUrl(lookup.platformApiUrl)) return false;
55
+ if (lookup.email && normalizeEmail$1(credentials.user?.email ?? "") !== normalizeEmail$1(lookup.email)) return false;
56
+ return true;
57
+ }
58
+ async function readForgewayCredentials(lookup) {
59
+ const normalizedLookup = normalizeLookup(lookup);
60
+ const store = await readAccountStore();
61
+ const accounts = Object.values(store.accounts ?? {}).filter((credentials) => accountMatches(credentials, normalizedLookup));
62
+ if (normalizedLookup.platformApiUrl && normalizedLookup.email) return store.accounts?.[accountKey(normalizedLookup.platformApiUrl, normalizedLookup.email)] ?? null;
63
+ if (accounts.length === 1) return accounts[0] ?? null;
64
+ return null;
65
+ }
66
+ async function writeForgewayCredentials(credentials, lookup) {
67
+ const normalizedLookup = normalizeLookup(lookup);
68
+ const platformApiUrl = normalizePlatformApiUrl(normalizedLookup.platformApiUrl ?? credentials.platformApiUrl);
69
+ const email = normalizeEmail$1(normalizedLookup.email ?? credentials.user?.email ?? "");
70
+ if (!email) throw new Error("Forgeway credentials require a user email before they can be stored.");
71
+ const key = accountKey(platformApiUrl, email);
72
+ const store = await readAccountStore();
73
+ store.accounts = {
74
+ ...store.accounts,
75
+ [key]: {
76
+ ...credentials,
77
+ platformApiUrl
78
+ }
79
+ };
80
+ store.lastAccountKey = key;
81
+ await writeAccountStore(store);
82
+ }
83
+ async function listForgewayCredentials(platformApiUrl) {
84
+ const lookup = platformApiUrl ? { platformApiUrl } : {};
85
+ const store = await readAccountStore();
86
+ return Object.values(store.accounts ?? {}).filter((credentials) => accountMatches(credentials, lookup));
87
+ }
88
+
89
+ //#endregion
90
+ //#region src/cli/commands/deploy/utils/config.ts
91
+ const DINEWAY_DIR_NAME = ".dineway";
92
+ const DEPLOY_STATE_FILE_NAME = "deploy.json";
93
+ function deployStatePath(cwd) {
94
+ return join(cwd, DINEWAY_DIR_NAME, DEPLOY_STATE_FILE_NAME);
95
+ }
96
+ function emptyDeployState() {
97
+ return { version: 1 };
98
+ }
99
+ async function readDeployPackageJson(cwd) {
100
+ const content = await readFile(join(cwd, "package.json"), "utf-8");
101
+ return JSON.parse(content);
102
+ }
103
+ async function readDeployState(cwd) {
104
+ try {
105
+ const content = await readFile(deployStatePath(cwd), "utf-8");
106
+ return {
107
+ ...emptyDeployState(),
108
+ ...JSON.parse(content),
109
+ version: 1
110
+ };
111
+ } catch (error) {
112
+ if (error && typeof error === "object" && error.code === "ENOENT") return emptyDeployState();
113
+ throw error;
114
+ }
115
+ }
116
+ async function writeDeployState(cwd, state) {
117
+ await mkdir(join(cwd, DINEWAY_DIR_NAME), { recursive: true });
118
+ await writeFile(deployStatePath(cwd), JSON.stringify({
119
+ ...state,
120
+ version: 1
121
+ }, null, " ") + "\n", "utf-8");
122
+ }
123
+ async function readSavedDeployTarget(cwd) {
124
+ return (await readDeployState(cwd)).target;
125
+ }
126
+ async function writeDeployTarget(cwd, target) {
127
+ await writeDeployState(cwd, {
128
+ ...await readDeployState(cwd),
129
+ target
130
+ });
131
+ }
132
+ async function readForgewayDeployMetadata(cwd) {
133
+ return (await readDeployState(cwd)).targets?.forgeway ?? {};
134
+ }
135
+ async function writeForgewayDeployMetadata(cwd, metadata) {
136
+ const state = await readDeployState(cwd);
137
+ await writeDeployState(cwd, {
138
+ ...state,
139
+ targets: {
140
+ ...state.targets,
141
+ forgeway: {
142
+ ...state.targets?.forgeway,
143
+ ...metadata
144
+ }
145
+ }
146
+ });
147
+ }
148
+
149
+ //#endregion
150
+ //#region src/seo/provider-evidence.ts
151
+ const httpUrlSchema = z.string().trim().min(1).max(2048).refine((value) => {
152
+ try {
153
+ const url = new URL(value);
154
+ return url.protocol === "http:" || url.protocol === "https:";
155
+ } catch {
156
+ return false;
157
+ }
158
+ }, "URL must use http or https");
159
+ const boundedText = (label, max) => z.string().trim().min(1, `${label} is required`).max(max);
160
+ const forceRefreshSchema = z.boolean().default(false);
161
+ const formatSchema = boundedText("format", 50);
162
+ const formatsSchema = z.array(formatSchema).min(1).max(10).default(["markdown"]);
163
+ const limitSchema = z.number().int().min(1).max(1e3);
164
+ const deviceSchema = z.enum(["desktop", "mobile"]);
165
+ const firecrawlScrapeInputSchema = z.object({
166
+ url: httpUrlSchema,
167
+ formats: formatsSchema,
168
+ onlyMainContent: z.boolean().default(true),
169
+ timeoutMs: z.number().int().min(1e3).max(12e4).default(6e4),
170
+ forceRefresh: forceRefreshSchema
171
+ }).strict();
172
+ const firecrawlMapInputSchema = z.object({
173
+ url: httpUrlSchema,
174
+ search: boundedText("search", 500).optional(),
175
+ sitemap: z.enum([
176
+ "skip",
177
+ "include",
178
+ "only"
179
+ ]).default("include"),
180
+ limit: limitSchema.default(100),
181
+ includeSubdomains: z.boolean().default(false),
182
+ ignoreQueryParameters: z.boolean().default(true),
183
+ forceRefresh: forceRefreshSchema
184
+ }).strict();
185
+ const firecrawlCrawlStartInputSchema = z.object({
186
+ url: httpUrlSchema,
187
+ limit: limitSchema.default(25),
188
+ maxDiscoveryDepth: z.number().int().min(0).max(20).default(3),
189
+ allowExternalLinks: z.boolean().default(false),
190
+ allowSubdomains: z.boolean().default(false),
191
+ scrapeFormats: formatsSchema,
192
+ forceRefresh: forceRefreshSchema
193
+ }).strict();
194
+ const firecrawlCrawlStatusInputSchema = z.object({ id: boundedText("crawl id", 500) }).strict();
195
+ const firecrawlSearchInputSchema = z.object({
196
+ query: boundedText("query", 1e3),
197
+ limit: limitSchema.default(10),
198
+ scrape: z.boolean().default(false),
199
+ forceRefresh: forceRefreshSchema
200
+ }).strict();
201
+ const dataForSeoCommonShape = {
202
+ locationCode: z.number().int().min(1).max(1e7).default(2840),
203
+ languageCode: boundedText("language code", 20).default("en"),
204
+ device: deviceSchema.default("desktop"),
205
+ forceRefresh: forceRefreshSchema
206
+ };
207
+ const dataForSeoSerpInputSchema = z.object({
208
+ keyword: boundedText("keyword", 1e3),
209
+ depth: z.number().int().min(1).max(100).default(10),
210
+ ...dataForSeoCommonShape
211
+ }).strict();
212
+ const dataForSeoMapsInputSchema = z.object({
213
+ keyword: boundedText("keyword", 1e3),
214
+ depth: z.number().int().min(1).max(100).default(10),
215
+ ...dataForSeoCommonShape
216
+ }).strict();
217
+ const dataForSeoKeywordsInputSchema = z.object({
218
+ keyword: boundedText("keyword", 1e3),
219
+ limit: limitSchema.default(20),
220
+ ...dataForSeoCommonShape
221
+ }).strict();
222
+ const dataForSeoCompetitorsInputSchema = z.object({
223
+ domain: boundedText("domain", 253),
224
+ limit: limitSchema.default(20),
225
+ ...dataForSeoCommonShape
226
+ }).strict();
227
+ const dataForSeoAiScrapeInputSchema = z.object({
228
+ keyword: boundedText("keyword", 1e3),
229
+ platform: z.enum([
230
+ "chat_gpt",
231
+ "gemini",
232
+ "perplexity"
233
+ ]).default("chat_gpt"),
234
+ ...dataForSeoCommonShape
235
+ }).strict();
236
+ const dataForSeoAiMentionsInputSchema = z.object({
237
+ domain: boundedText("domain", 253).optional(),
238
+ keyword: boundedText("keyword", 1e3).optional(),
239
+ platform: z.enum(["google", "chat_gpt"]).default("google"),
240
+ limit: limitSchema.default(20),
241
+ ...dataForSeoCommonShape
242
+ }).strict().refine((value) => value.domain || value.keyword, { message: "domain or keyword is required" });
243
+ var SeoProviderEvidenceService = class {
244
+ constructor(transport) {
245
+ this.transport = transport;
246
+ }
247
+ async firecrawlScrape(input) {
248
+ const parsed = firecrawlScrapeInputSchema.parse(input);
249
+ return this.transport.request("/api/firecrawl/scrape", parsed);
250
+ }
251
+ async firecrawlMap(input) {
252
+ const parsed = firecrawlMapInputSchema.parse(input);
253
+ return this.transport.request("/api/firecrawl/map", {
254
+ url: parsed.url,
255
+ ...parsed.search ? { search: parsed.search } : {},
256
+ sitemap: parsed.sitemap,
257
+ limit: parsed.limit,
258
+ includeSubdomains: parsed.includeSubdomains,
259
+ ignoreQueryParameters: parsed.ignoreQueryParameters,
260
+ forceRefresh: parsed.forceRefresh
261
+ });
262
+ }
263
+ async firecrawlCrawlStart(input) {
264
+ const parsed = firecrawlCrawlStartInputSchema.parse(input);
265
+ return this.transport.request("/api/firecrawl/crawl", parsed);
266
+ }
267
+ async firecrawlCrawlStatus(input) {
268
+ const parsed = firecrawlCrawlStatusInputSchema.parse(input);
269
+ return this.transport.request(`/api/firecrawl/crawl/${encodeURIComponent(parsed.id)}`, void 0, { method: "GET" });
270
+ }
271
+ async firecrawlSearch(input) {
272
+ const parsed = firecrawlSearchInputSchema.parse(input);
273
+ return this.transport.request("/api/firecrawl/search", parsed);
274
+ }
275
+ async dataForSeoSerp(input) {
276
+ const parsed = dataForSeoSerpInputSchema.parse(input);
277
+ return this.transport.request("/api/dataforseo/serp", parsed);
278
+ }
279
+ async dataForSeoMaps(input) {
280
+ const parsed = dataForSeoMapsInputSchema.parse(input);
281
+ return this.transport.request("/api/dataforseo/maps", parsed);
282
+ }
283
+ async dataForSeoKeywords(input) {
284
+ const parsed = dataForSeoKeywordsInputSchema.parse(input);
285
+ return this.transport.request("/api/dataforseo/keywords", {
286
+ keyword: parsed.keyword,
287
+ limit: parsed.limit,
288
+ includeSerpInfo: true,
289
+ includeSeedKeyword: true,
290
+ locationCode: parsed.locationCode,
291
+ languageCode: parsed.languageCode,
292
+ device: parsed.device,
293
+ forceRefresh: parsed.forceRefresh
294
+ });
295
+ }
296
+ async dataForSeoCompetitors(input) {
297
+ const parsed = dataForSeoCompetitorsInputSchema.parse(input);
298
+ return this.transport.request("/api/dataforseo/competitors", {
299
+ targetDomain: parsed.domain,
300
+ limit: parsed.limit,
301
+ locationCode: parsed.locationCode,
302
+ languageCode: parsed.languageCode,
303
+ device: parsed.device,
304
+ forceRefresh: parsed.forceRefresh
305
+ });
306
+ }
307
+ async dataForSeoAiScrape(input) {
308
+ const parsed = dataForSeoAiScrapeInputSchema.parse(input);
309
+ return this.transport.request("/api/dataforseo/ai-scrape", parsed);
310
+ }
311
+ async dataForSeoAiMentions(input) {
312
+ const parsed = dataForSeoAiMentionsInputSchema.parse(input);
313
+ return this.transport.request("/api/dataforseo/ai-mentions", {
314
+ ...parsed.domain ? { targetDomain: parsed.domain } : {},
315
+ ...parsed.keyword ? { keyword: parsed.keyword } : {},
316
+ platform: parsed.platform,
317
+ limit: parsed.limit,
318
+ locationCode: parsed.locationCode,
319
+ languageCode: parsed.languageCode,
320
+ device: parsed.device,
321
+ forceRefresh: parsed.forceRefresh
322
+ });
323
+ }
324
+ };
325
+
326
+ //#endregion
327
+ //#region src/cli/forgeway-seo-client.ts
328
+ const DEFAULT_DINEWAY_API_BASE_URL = "https://api.dineway.ai";
329
+ const TRAILING_SLASH_PATTERN = /\/$/;
330
+ const SHADOW_EMAIL_PATTERN = /^shadow_[a-f0-9]{16}@dineway\.ai$/i;
331
+ var ForgewaySeoApiError = class extends Error {
332
+ constructor(message, status, body) {
333
+ super(message);
334
+ this.status = status;
335
+ this.body = body;
336
+ this.name = "ForgewaySeoApiError";
337
+ }
338
+ };
339
+ function normalizeApiUrl(value) {
340
+ return (value || DEFAULT_DINEWAY_API_BASE_URL).replace(TRAILING_SLASH_PATTERN, "");
341
+ }
342
+ function resolveForgewaySeoApiUrl(savedPlatformApiUrl, cwd = process.cwd()) {
343
+ return normalizeApiUrl(getProjectEnvValue("DINEWAY_API_BASE_URL", cwd) ?? (typeof savedPlatformApiUrl === "string" ? savedPlatformApiUrl : void 0));
344
+ }
345
+ function normalizeEmail(value) {
346
+ return value?.trim().toLowerCase() ?? "";
347
+ }
348
+ function isShadowEmail(email) {
349
+ return Boolean(email && SHADOW_EMAIL_PATTERN.test(email));
350
+ }
351
+ function assertFormalUser(user) {
352
+ if (!user || user.emailVerified !== true || isShadowEmail(user.email)) throw new Error("Forgeway SEO provider access requires verified formal Forgeway credentials. Run `dineway deploy forgeway` and complete email verification first.");
353
+ return user;
354
+ }
355
+ function normalizeForgewayUser(user, fallback) {
356
+ if (!user?.id || !user.email) return fallback;
357
+ return {
358
+ id: user.id,
359
+ name: user.profile?.name ?? user.name ?? user.email,
360
+ email: user.email,
361
+ avatarUrl: user.profile?.avatar_url ?? user.avatarUrl ?? user.avatar_url ?? null,
362
+ emailVerified: user.emailVerified ?? user.email_verified ?? false
363
+ };
364
+ }
365
+ async function parseJsonResponse(response) {
366
+ const text = await response.text();
367
+ if (!text) return {};
368
+ try {
369
+ return JSON.parse(text);
370
+ } catch {
371
+ return { message: text };
372
+ }
373
+ }
374
+ function errorMessage(body, fallback) {
375
+ if (typeof body !== "object" || body === null) return fallback;
376
+ const record = body;
377
+ if (typeof record.message === "string") return record.message;
378
+ if (typeof record.error === "string") return record.error;
379
+ const nestedError = record.error;
380
+ if (typeof nestedError === "object" && nestedError !== null) {
381
+ const message = nestedError.message;
382
+ if (typeof message === "string") return message;
383
+ }
384
+ return fallback;
385
+ }
386
+ var ForgewaySeoGatewayClient = class {
387
+ fetchImpl;
388
+ readCredentials;
389
+ writeCredentials;
390
+ cwd;
391
+ constructor(deps = {}) {
392
+ this.fetchImpl = deps.fetch ?? fetch;
393
+ this.readCredentials = deps.readCredentials ?? readForgewayCredentials;
394
+ this.writeCredentials = deps.writeCredentials ?? writeForgewayCredentials;
395
+ this.cwd = deps.cwd ?? process.cwd();
396
+ }
397
+ async loadCredentials() {
398
+ const metadata = await readForgewayDeployMetadata(this.cwd).catch(() => ({}));
399
+ const platformApiUrl = resolveForgewaySeoApiUrl(metadata.platformApiUrl, this.cwd);
400
+ const credentials = await this.readCredentials({
401
+ cwd: this.cwd,
402
+ platformApiUrl,
403
+ email: typeof metadata.publisherEmail === "string" ? metadata.publisherEmail : void 0
404
+ });
405
+ if (!credentials?.accessToken) throw new Error("Forgeway SEO provider access requires stored Forgeway credentials. Run `dineway deploy forgeway` first.");
406
+ assertFormalUser(credentials.user);
407
+ if (!credentials.refreshToken) throw new Error("Forgeway SEO provider access requires a stored formal-account refresh token. Run `dineway deploy forgeway` again.");
408
+ return {
409
+ ...credentials,
410
+ platformApiUrl: resolveForgewaySeoApiUrl(credentials.platformApiUrl, this.cwd)
411
+ };
412
+ }
413
+ async refreshAccessToken(credentials) {
414
+ const response = await this.fetchImpl(`${credentials.platformApiUrl}/api/auth/refresh?client_type=server`, {
415
+ method: "POST",
416
+ headers: { "Content-Type": "application/json" },
417
+ body: JSON.stringify({ refreshToken: credentials.refreshToken })
418
+ });
419
+ const body = await parseJsonResponse(response);
420
+ if (!response.ok) throw new ForgewaySeoApiError(errorMessage(body, "Failed to refresh Forgeway formal account credentials. Run `dineway deploy forgeway` again."), response.status, body);
421
+ if (!body.accessToken) throw new Error("Forgeway refresh response was missing accessToken.");
422
+ const user = assertFormalUser(normalizeForgewayUser(body.user, credentials.user));
423
+ if (credentials.user?.email && normalizeEmail(user.email) !== normalizeEmail(credentials.user.email)) throw new Error("Forgeway refresh returned credentials for a different email.");
424
+ const updated = {
425
+ ...credentials,
426
+ accessToken: body.accessToken,
427
+ refreshToken: body.refreshToken ?? credentials.refreshToken,
428
+ user
429
+ };
430
+ await this.writeCredentials(updated, {
431
+ cwd: this.cwd,
432
+ platformApiUrl: updated.platformApiUrl,
433
+ email: user.email
434
+ });
435
+ return updated;
436
+ }
437
+ async request(path, body, init) {
438
+ const credentials = await this.refreshAccessToken(await this.loadCredentials());
439
+ const method = init?.method ?? "POST";
440
+ const response = await this.fetchImpl(`${credentials.platformApiUrl}${path}`, {
441
+ method,
442
+ headers: {
443
+ Authorization: `Bearer ${credentials.accessToken}`,
444
+ "Content-Type": "application/json",
445
+ "Idempotency-Key": init?.idempotencyKey ?? randomUUID()
446
+ },
447
+ body: method === "GET" ? void 0 : JSON.stringify(body ?? {})
448
+ });
449
+ const payload = await parseJsonResponse(response);
450
+ if (!response.ok) throw new ForgewaySeoApiError(errorMessage(payload, `Forgeway SEO request failed with status ${response.status}.`), response.status, payload);
451
+ return payload;
452
+ }
453
+ };
454
+
455
+ //#endregion
456
+ export { readSavedDeployTarget as a, listForgewayCredentials as c, readForgewayDeployMetadata as i, readForgewayCredentials as l, SeoProviderEvidenceService as n, writeDeployTarget as o, readDeployPackageJson as r, writeForgewayDeployMetadata as s, ForgewaySeoGatewayClient as t, writeForgewayCredentials as u };
@@ -1,4 +1,4 @@
1
- import { a as __exportAll } from "./runner-DzIpHGND.mjs";
1
+ import { a as __exportAll } from "./runner-BgmttQmD.mjs";
2
2
  import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
3
3
  import { s as isSqlite, u as tableExists } from "./dialect-helpers-fk43GbDb.mjs";
4
4
  import { sql } from "kysely";
@@ -1,5 +1,5 @@
1
- import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CSMffP6q.mjs";
2
- import { n as HitlRequestService } from "./site-context-C8Az_P_I.mjs";
1
+ import { b as HitlRequestService } from "./site-context-B8T1kpUP.mjs";
2
+ import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-GVhUgzEs.mjs";
3
3
 
4
4
  //#region src/api/handlers/hitl-requests.ts
5
5
  const HITL_NOT_FOUND_RE = /not found/i;
@@ -1,7 +1,8 @@
1
- import { t as apiError } from "./error-DCSuUAZW.mjs";
2
- import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CSMffP6q.mjs";
3
- import { t as WorkflowHitlCoordinator } from "./site-context-C8Az_P_I.mjs";
4
- import { T as resolveActorIdentity, p as logSiteActivitySafely } from "./activity-events-CwM7yxPW.mjs";
1
+ import { t as WorkflowHitlCoordinator } from "./site-context-B8T1kpUP.mjs";
2
+ import { t as apiError } from "./error-CSVaQNZy.mjs";
3
+ import { n as resolveActorIdentity } from "./actor-0QJ1Gbtf.mjs";
4
+ import { p as logSiteActivitySafely } from "./activity-events-CJDvE2uc.mjs";
5
+ import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-GVhUgzEs.mjs";
5
6
  import { Role } from "@dineway-ai/auth";
6
7
 
7
8
  //#region src/api/hitl-route-helpers.ts