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.
- package/dist/activity-DUaz_w7p.mjs +79 -0
- package/dist/{activity-events-CwM7yxPW.mjs → activity-events-CJDvE2uc.mjs} +5 -113
- package/dist/actor-0QJ1Gbtf.mjs +37 -0
- package/dist/after-BfniwgIf.mjs +9 -0
- package/dist/{allowed-origins-CyGnbgBd.mjs → allowed-origins--OwHHiY8.mjs} +1 -1
- package/dist/api/route-utils.d.mts +9 -10
- package/dist/api/route-utils.mjs +16 -13
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +5 -4
- package/dist/{api-BMIxRIEN.mjs → api-B4PHIF4V.mjs} +93 -41
- package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-tbK_sORH.mjs} +6 -2
- package/dist/{apply-D_RlTYtC.mjs → apply-DjTqq6Ae.mjs} +117 -77
- package/dist/astro/image-endpoint.d.mts +7 -0
- package/dist/astro/image-endpoint.mjs +54 -0
- package/dist/astro/index.d.mts +34 -11
- package/dist/astro/index.mjs +163 -24
- package/dist/astro/integration/shims/use-sync-external-store-with-selector.js +71 -0
- package/dist/astro/integration/shims/use-sync-external-store.js +1 -0
- package/dist/astro/middleware/auth.d.mts +8 -18
- package/dist/astro/middleware/auth.mjs +42 -24
- package/dist/astro/middleware/redirect.mjs +13 -4
- package/dist/astro/middleware/request-context.mjs +8 -5
- package/dist/astro/middleware/seed.d.mts +1 -1
- package/dist/astro/middleware/seed.mjs +2 -2
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.mjs +389 -206
- package/dist/astro/routes/admin.astro +6 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -6
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -6
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
- package/dist/astro/routes/api/admin/briefing.mjs +21 -17
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -8
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -8
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -8
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -14
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -14
- package/dist/astro/routes/api/admin/bylines/index.mjs +17 -14
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -12
- package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -5
- package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -9
- package/dist/astro/routes/api/admin/comments/counts.mjs +6 -5
- package/dist/astro/routes/api/admin/comments/index.mjs +11 -9
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +27 -24
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +27 -24
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +32 -28
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +32 -28
- package/dist/astro/routes/api/admin/context/diff.mjs +31 -27
- package/dist/astro/routes/api/admin/context/index.mjs +32 -28
- package/dist/astro/routes/api/admin/context/stale.mjs +31 -27
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +27 -24
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +31 -27
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +31 -27
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +28 -25
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +56 -51
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +56 -51
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -43
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +54 -49
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +53 -48
- package/dist/astro/routes/api/admin/plugins/index.mjs +47 -43
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +46 -42
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +53 -48
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +46 -42
- package/dist/astro/routes/api/admin/plugins/updates.mjs +46 -42
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +32 -63
- package/dist/astro/routes/api/admin/review-requests/index.d.mts +2 -1
- package/dist/astro/routes/api/admin/review-requests/index.mjs +58 -10
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +46 -42
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +46 -42
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -7
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
- package/dist/astro/routes/api/admin/users/index.mjs +7 -6
- package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
- package/dist/astro/routes/api/auth/invite/complete.mjs +12 -11
- package/dist/astro/routes/api/auth/invite/index.mjs +9 -8
- package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -10
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -10
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
- package/dist/astro/routes/api/auth/me.mjs +9 -8
- package/dist/astro/routes/api/auth/mode.mjs +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -5
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +12 -11
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -9
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -10
- package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -10
- package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
- package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/signup/complete.mjs +12 -11
- package/dist/astro/routes/api/auth/signup/request.mjs +11 -10
- package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -13
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +8 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +160 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +6 -5
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +6 -5
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +6 -5
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +11 -10
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +49 -20
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +6 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +67 -32
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +16 -14
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +6 -5
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -9
- package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/index.mjs +11 -9
- package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
- package/dist/astro/routes/api/dashboard.mjs +9 -8
- package/dist/astro/routes/api/dev/emails.mjs +2 -2
- package/dist/astro/routes/api/health.mjs +1 -1
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +22 -10
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +9 -6
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +18 -1
- package/dist/astro/routes/api/import/wordpress/execute.mjs +85 -37
- package/dist/astro/routes/api/import/wordpress/media.d.mts +12 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +20 -14
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +36 -32
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +17 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +121 -100
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -12
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +55 -2
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +284 -55
- package/dist/astro/routes/api/manifest.mjs +14 -5
- package/dist/astro/routes/api/mcp.mjs +753 -170
- package/dist/astro/routes/api/media/_id_/confirm.mjs +38 -10
- package/dist/astro/routes/api/media/_id_.mjs +11 -7
- package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
- package/dist/astro/routes/api/media/providers/index.mjs +2 -2
- package/dist/astro/routes/api/media/upload-url.mjs +11 -10
- package/dist/astro/routes/api/media.mjs +28 -35
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +32 -28
- package/dist/astro/routes/api/menus/_name_/items.mjs +32 -28
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +32 -28
- package/dist/astro/routes/api/menus/_name_/translations.mjs +32 -28
- package/dist/astro/routes/api/menus/_name_.mjs +32 -28
- package/dist/astro/routes/api/menus/index.mjs +32 -28
- package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
- package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
- package/dist/astro/routes/api/oauth/register.mjs +4 -4
- package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
- package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
- package/dist/astro/routes/api/oauth/token.mjs +6 -6
- package/dist/astro/routes/api/openapi.json.mjs +4 -3
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +46 -31
- package/dist/astro/routes/api/redirects/404s/index.mjs +11 -10
- package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -10
- package/dist/astro/routes/api/redirects/_id_.mjs +33 -29
- package/dist/astro/routes/api/redirects/index.mjs +33 -29
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +48 -43
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +48 -43
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +48 -43
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +48 -43
- package/dist/astro/routes/api/schema/collections/index.mjs +48 -43
- package/dist/astro/routes/api/schema/index.mjs +14 -15
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +46 -42
- package/dist/astro/routes/api/schema/orphans/index.mjs +46 -42
- package/dist/astro/routes/api/search/enable.mjs +11 -10
- package/dist/astro/routes/api/search/index.mjs +10 -9
- package/dist/astro/routes/api/search/rebuild.mjs +11 -10
- package/dist/astro/routes/api/search/stats.mjs +6 -6
- package/dist/astro/routes/api/search/suggest.mjs +10 -9
- package/dist/astro/routes/api/sections/_slug_.mjs +32 -28
- package/dist/astro/routes/api/sections/index.mjs +32 -28
- package/dist/astro/routes/api/settings/email.mjs +4 -4
- package/dist/astro/routes/api/settings.mjs +32 -28
- package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
- package/dist/astro/routes/api/setup/admin.mjs +12 -11
- package/dist/astro/routes/api/setup/dev-bypass.mjs +31 -25
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +29 -25
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +8 -7
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +35 -31
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +35 -31
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +35 -31
- package/dist/astro/routes/api/taxonomies/index.mjs +35 -31
- package/dist/astro/routes/api/themes/preview.mjs +5 -5
- package/dist/astro/routes/api/typegen.mjs +4 -4
- package/dist/astro/routes/api/well-known/auth.mjs +3 -3
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +31 -27
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +32 -28
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +32 -28
- package/dist/astro/routes/api/widget-areas/_name_.mjs +29 -26
- package/dist/astro/routes/api/widget-areas/index.mjs +32 -28
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +8 -7
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -14
- package/dist/astro/routes/sitemap.xml.mjs +9 -8
- package/dist/astro/session-driver.d.mts +1 -1
- package/dist/astro/session-driver.mjs +2 -2
- package/dist/astro/types.d.mts +22 -13
- package/dist/{audit-BeNsSyfU.mjs → audit-B2pRxZ20.mjs} +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-D71jourk.mjs} +1 -1
- package/dist/{authorize-BLO0m7fW.mjs → authorize-ZXPGPwKn.mjs} +1 -1
- package/dist/{briefing-CkTee1ex.mjs → briefing-0rf-su3-.mjs} +90 -28
- package/dist/{briefing-DJX6irto.mjs → briefing-kRhegBoF.mjs} +2 -1
- package/dist/bundle-CEcdUa1s.mjs +602 -0
- package/dist/{byline-BVC1lV6G.mjs → byline-7xR185Ly.mjs} +30 -62
- package/dist/{byline-fields-Cj39WhXC.mjs → byline-fields-BKzA0fJU.mjs} +1 -1
- package/dist/{byline-fields-uJlygdzM.d.mts → byline-fields-Ckeqd1OY.d.mts} +88 -35
- package/dist/{byline-fields-cNrLJVRs.mjs → byline-fields-WN7RQT4q.mjs} +10 -4
- package/dist/{byline-registry-4v6tXMNX.mjs → byline-registry-Ba54M74c.mjs} +2 -2
- package/dist/{bylines-LN9XISRo.mjs → bylines-C-EL6dh3.mjs} +9 -3
- package/dist/{bylines-DwokOFj6.mjs → bylines-CmZFCMr0.mjs} +5 -5
- package/dist/{cache-Bac05gBd.mjs → cache-DkVCKGio.mjs} +2 -2
- package/dist/{chunks-CuUt7K50.mjs → chunks-ChGNDY8r.mjs} +1 -1
- package/dist/cli/index.d.mts +29 -1
- package/dist/cli/index.mjs +1466 -1763
- package/dist/cli/plugin-kit.d.mts +75 -0
- package/dist/cli/plugin-kit.mjs +4 -0
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +27 -52
- package/dist/client/index.mjs +34 -6
- package/dist/client-factory-BDD9azPJ.mjs +233 -0
- package/dist/{comment-Beue8-15.mjs → comment-DFALgsJD.mjs} +13 -3
- package/dist/comment-reaction-C37bf99u.mjs +58 -0
- package/dist/{comments-DcjFIfqX.mjs → comments-B3NwDBxl.mjs} +1 -1
- package/dist/{content-CBxYGWfL.mjs → content-DJcAYFhz.mjs} +51 -34
- package/dist/content-refresh-B4ZCmxgd.mjs +1576 -0
- package/dist/{context-Df1xVYyr.mjs → context-DnpXcp6Y.mjs} +2 -2
- package/dist/{context-CQVNZaR8.mjs → context-fSCYLL3c.mjs} +125 -53
- package/dist/{context-route-helpers-B9wj8Rmh.mjs → context-route-helpers-CI8XzcsK.mjs} +2 -1
- package/dist/{cron-DxCAU_Sn.mjs → cron-B1SL_lsb.mjs} +7 -3
- package/dist/{dashboard-B7ZUNuyF.mjs → dashboard-D0nj5oWg.mjs} +4 -4
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{device-flow-BZVGftqi.mjs → device-flow-BJe6VEhP.mjs} +5 -5
- package/dist/{placeholder-d54Qr_7n.mjs → enrich-Ck9tfMqe.mjs} +36 -9
- package/dist/{error-DCSuUAZW.mjs → error-CSVaQNZy.mjs} +5 -0
- package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-GVhUgzEs.mjs} +1 -1
- package/dist/field-defs-cache-DL-T2XVS.mjs +49 -0
- package/dist/forgeway-seo-client-G5ddhVHd.mjs +456 -0
- package/dist/{fts-manager-B5l_qwrA.mjs → fts-manager-ewTGohf4.mjs} +1 -1
- package/dist/{hitl-requests-7NlzVeUA.mjs → hitl-requests-DEFj8e6u.mjs} +2 -2
- package/dist/{hitl-route-helpers-k---_H3-.mjs → hitl-route-helpers-C23JHaWz.mjs} +5 -4
- package/dist/import-CXXL5pip.mjs +1354 -0
- package/dist/index-DcnOCD1e.d.mts +375 -0
- package/dist/index.d.mts +15 -16
- package/dist/index.mjs +85 -70
- package/dist/{jsonld-DZ67souc.d.mts → jsonld-DzKbhRZ4.d.mts} +8 -4
- package/dist/{load-D9OiGr2m.mjs → load-CFtJRT3c.mjs} +1 -1
- package/dist/{loader--GOYux8M.mjs → loader-aWkkc1_o.mjs} +117 -31
- package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-uA6pRFXi.mjs} +38 -1
- package/dist/mcp-reviewed-executor-Dn52L_yY.mjs +558 -0
- package/dist/media/image-endpoint.d.mts +32 -0
- package/dist/media/image-endpoint.mjs +111 -0
- package/dist/media/index.d.mts +27 -2
- package/dist/media/index.mjs +5 -3
- package/dist/media/local-runtime.d.mts +15 -11
- package/dist/media/local-runtime.mjs +9 -7
- package/dist/{media-CbKyYukG.mjs → media-CVMOoywq.mjs} +3 -1
- package/dist/{media-allowlist-BYxJIcTO.mjs → media-allowlist-zDNJmXCo.mjs} +1 -1
- package/dist/media-url-BdoLPvg8.mjs +20 -0
- package/dist/{menus-C7F0sCrC.mjs → menus-CCG2z5um.mjs} +80 -15
- package/dist/{menus-BZbXf-ej.mjs → menus-CmyIkRG5.mjs} +19 -5
- package/dist/{normalize-ByemhhfW.mjs → normalize-Cyt7JdF7.mjs} +8 -1
- package/dist/{oauth-authorization-DF-LCsIA.mjs → oauth-authorization-B9H7X85L.mjs} +5 -5
- package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-Dwl32-Uj.mjs} +2 -2
- package/dist/object-cache/memory.d.mts +14 -0
- package/dist/object-cache/memory.mjs +55 -0
- package/dist/object-cache-D51qOseS.mjs +419 -0
- package/dist/output-DhBe5_Pi.mjs +68 -0
- package/dist/page/index.d.mts +10 -3
- package/dist/page/index.mjs +2 -2
- package/dist/{parse-CneSgl7-.mjs → parse-i15EFSAE.mjs} +1 -1
- package/dist/{parser-DxfsARXL.mjs → parser-06LLLL4E.mjs} +151 -9
- package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-DkWkXfDI.d.mts} +12 -4
- package/dist/plugin-utils.d.mts +8 -9
- package/dist/plugins/adapt-sandbox-entry.d.mts +8 -9
- package/dist/plugins/adapt-sandbox-entry.mjs +13 -2
- package/dist/{plugins-DzfqRREq.mjs → plugins-CPA2PtfY.mjs} +919 -66
- package/dist/{transport-LSdZVXHF.mjs → portable-text-BASHceim.mjs} +1 -134
- package/dist/portable-text-E79LyjGo.d.mts +45 -0
- package/dist/{preview-C-3YTX2U.mjs → preview-BjedZm8G.mjs} +4 -3
- package/dist/process-cache-CCDgti7j.mjs +106 -0
- package/dist/project-env-DKibmuP8.mjs +95 -0
- package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-DC2JdWeO.d.mts} +1 -1
- package/dist/{public-url-B4xV4rGa.d.mts → public-url-DQJCnYi9.d.mts} +1 -1
- package/dist/publication-authorization-RKiHXKtq.mjs +985 -0
- package/dist/{query-CZ3TH_Uu.mjs → query-C2U5u5_p.mjs} +11 -6
- package/dist/{query-Ds0EnMFX.mjs → query-DEv5x6yB.mjs} +281 -76
- package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-DglsAJSw.mjs} +2 -2
- package/dist/{redirect-CEACczxo.mjs → redirect-ubhEqQCQ.mjs} +2 -2
- package/dist/{redirects-ocRJmQHP.mjs → redirects-Bhpm8bRe.mjs} +35 -19
- package/dist/{redirects-DYj1yPxs.mjs → redirects-xs2yahLq.mjs} +47 -24
- package/dist/{registry-D7HACema.mjs → registry-BYYyb2tF.mjs} +148 -81
- package/dist/request-context.d.mts +2 -0
- package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CFe1tW2M.mjs} +1 -1
- package/dist/review-payload-BysRWpxS.mjs +111 -0
- package/dist/{review-requests-BW2NxY-l.mjs → review-requests-CTWGnWUt.mjs} +1 -1
- package/dist/review-requests-D42VEP1l.mjs +142 -0
- package/dist/review-route-helpers-C31vO6SI.mjs +41 -0
- package/dist/runner-BgmttQmD.mjs +7444 -0
- package/dist/{runner-09sTqtv0.d.mts → runner-D6hzs8L9.d.mts} +1 -1
- package/dist/runtime.d.mts +9 -10
- package/dist/runtime.mjs +3 -3
- package/dist/schema-DUtnZxjZ.mjs +8 -0
- package/dist/{search-Gdrqj582.mjs → search-DUKgZUlm.mjs} +5 -3
- package/dist/{secrets-CeGpBFV2.mjs → secrets-ZV5rd8yV.mjs} +14 -11
- package/dist/{sections-BOjU13Y-.mjs → sections-DvFgsnda.mjs} +2 -2
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +21 -18
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo/index.mjs +3 -12
- package/dist/{seo-5lJOtB5J.mjs → seo-BLszyJxd.mjs} +22 -4
- package/dist/{seo-CLj8lS7Q.mjs → seo-BU8MLCS9.mjs} +5 -2
- package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-GnCuL1ML.mjs} +11 -3
- package/dist/{service-jGlhrICs.mjs → service-FL3fB0Rx.mjs} +2 -2
- package/dist/session-user-Ct6GBLvn.mjs +22 -0
- package/dist/{settings-CUXOxzsT.mjs → settings-BECcAIRH.mjs} +28 -55
- package/dist/{settings-DlBsT2VS.mjs → settings-EzADu-dd.mjs} +2 -2
- package/dist/{setup-complete-BRrdPYjZ.mjs → setup-complete-Da0axZEE.mjs} +1 -1
- package/dist/{site-activity-DONFrMBJ.mjs → site-activity-h8smOlYI.mjs} +1 -1
- package/dist/{site-context-C8Az_P_I.mjs → site-context-B8T1kpUP.mjs} +337 -530
- package/dist/{site-url-DIMD68go.mjs → site-url-DJEid0ml.mjs} +1 -1
- package/dist/stable-hash-DshcXvRE.mjs +19 -0
- package/dist/status-NqWOSFAD.mjs +21 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/{taxonomies-D9Sw4wWM.mjs → taxonomies-BiM9NtgW.mjs} +36 -29
- package/dist/taxonomies-DSnY5nOa.mjs +443 -0
- package/dist/{taxonomy-B169Nm6B.mjs → taxonomy-0k_vRVsD.mjs} +44 -9
- package/dist/transport-C46KHLMP.mjs +134 -0
- package/dist/types-A8fPOJnl.mjs +69 -0
- package/dist/types-BLQCz46p.d.mts +118 -0
- package/dist/{types-CwawBUTa.d.mts → types-B_FlxIIl.d.mts} +4 -1
- package/dist/{types-CSgR9nQB.mjs → types-ChxYDRvx.mjs} +1 -1
- package/dist/{types-GaCtZ1k9.d.mts → types-Cw0PeCT_.d.mts} +18 -0
- package/dist/types-DuQn1G7-.d.mts +2973 -0
- package/dist/{runtime-C4-2lSFg.d.mts → types-DwoUifGE.d.mts} +5668 -3000
- package/dist/{types-DRIKLmJI.d.mts → types-opjX_kz6.d.mts} +17 -2
- package/dist/ui/server-runtime.d.mts +13 -15
- package/dist/ui/server-runtime.mjs +24 -20
- package/dist/url-guoXQQcV.mjs +33 -0
- package/dist/{user-DTLoZs16.mjs → user-BH-n01y3.mjs} +2 -2
- package/dist/{utils-B8hBJ9Oz.mjs → utils-D1SrKGtP.mjs} +129 -7
- package/dist/{validate-DzjCdy6v.d.mts → validate-CbVFoJgc.d.mts} +65 -8
- package/dist/{validate-DWmPO6oj.mjs → validate-D1HL-oLR.mjs} +11 -6
- package/dist/version-C3iVRuaF.mjs +6 -0
- package/dist/{widgets-BpJ8EpPd.mjs → widgets-BZrLrNgS.mjs} +46 -43
- package/dist/{wordpress-slugs-DHNR9LpG.mjs → wordpress-slugs-C3PWcowq.mjs} +1 -1
- package/dist/{zod-generator-K91-g665.mjs → zod-generator-C7AsLpSB.mjs} +42 -14
- package/package.json +38 -8
- package/src/components/Block.astro +50 -0
- package/src/components/Comments.astro +143 -1
- package/src/components/DinewayHead.astro +19 -2
- package/src/components/DinewayImage.astro +66 -33
- package/src/components/DinewayMedia.astro +1 -2
- package/src/components/Image.astro +85 -40
- package/src/components/InlinePortableTextEditor.tsx +12 -2
- package/src/components/JsonLdScript.astro +9 -0
- package/src/components/LiveSearch.astro +40 -4
- package/src/components/index.ts +4 -0
- package/src/components/live-search-routing.ts +30 -0
- package/src/components/portable-text-text-align.ts +15 -0
- package/src/ui.ts +2 -0
- package/dist/entity-aliases-4y93Yjuc.mjs +0 -51
- package/dist/import-4YBXbDkI.mjs +0 -684
- package/dist/index-CZiWCQDp.d.mts +0 -227
- package/dist/review-requests-Qum4713s.mjs +0 -79
- package/dist/runner-DzIpHGND.mjs +0 -2836
- package/dist/schema-Bsi-VpYv.mjs +0 -8
- package/dist/taxonomies-CZ-_DitR.mjs +0 -327
- package/dist/types-CuJOqHfM.d.mts +0 -758
- package/dist/types-DSPGWjxO.d.mts +0 -1247
- package/dist/types-nP9vGUFq.d.mts +0 -56
- package/dist/version-C4gfn0PJ.mjs +0 -6
- /package/dist/{adapters-OQCImOL7.d.mts → adapters-BiRymx02.d.mts} +0 -0
- /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-Ypaly90d.mjs} +0 -0
- /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-D5pSY2S1.mjs} +0 -0
- /package/dist/{components--pg6zBvu.mjs → components-DImzlLhb.mjs} +0 -0
- /package/dist/{context-types-r8oFvyOq.mjs → context-types-eBuMDAg-.mjs} +0 -0
- /package/dist/{default-B6iaLvP7.mjs → default-D4Vygcy_.mjs} +0 -0
- /package/dist/{email-console-BOVqIYpB.mjs → email-console-Bp0r68iF.mjs} +0 -0
- /package/dist/{escape-BDgouFFY.mjs → escape-DN4Qmjsl.mjs} +0 -0
- /package/dist/{hash-BPmX6P8I.mjs → hash-mxxx2oPW.mjs} +0 -0
- /package/dist/{mime-CbKsKDCB.mjs → mime-C0vOHFm7.mjs} +0 -0
- /package/dist/{mode-CZqCF9dZ.mjs → mode-C8yZnIlR.mjs} +0 -0
- /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CndT35iw.mjs} +0 -0
- /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-CMehAaKs.mjs} +0 -0
- /package/dist/{options-LsPjZlqD.mjs → options-DQPTH5n0.mjs} +0 -0
- /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-NYukYGed.mjs} +0 -0
- /package/dist/{patterns-DKAX6oqN.mjs → patterns-CoqlXUvk.mjs} +0 -0
- /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-BtfrrzfD.mjs} +0 -0
- /package/dist/{public-url-B_m9IwdV.mjs → public-url-Cp6hyjVR.mjs} +0 -0
- /package/dist/{redirect-BjIBtDWY.mjs → redirect-DrbEmU9a.mjs} +0 -0
- /package/dist/{request-cache-ho99schz.mjs → request-cache-CBFjCwSt.mjs} +0 -0
- /package/dist/{resolve-DTuDyYKs.mjs → resolve-DE71WcL9.mjs} +0 -0
- /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-BtkKnvxQ.mjs} +0 -0
- /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-Ctzfyyp-.mjs} +0 -0
- /package/dist/{slugify-BqebcqBg.mjs → slugify-KSsVD_D3.mjs} +0 -0
- /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-FJqwQzj4.mjs} +0 -0
- /package/dist/{tokens-SLmgowfd.mjs → tokens-BDQU29Vd.mjs} +0 -0
- /package/dist/{transaction-CFLhEOuH.mjs → transaction-0LEAAy8R.mjs} +0 -0
- /package/dist/{transport-BnsNxh2l.d.mts → transport-D9pKAzFP.d.mts} +0 -0
- /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-Dm7Mxvt6.mjs} +0 -0
- /package/dist/{types-CJ8DkL0q.mjs → types-B7TDDFMG.mjs} +0 -0
- /package/dist/{types-Dryvv7LH.d.mts → types-g0zMtraY.d.mts} +0 -0
- /package/dist/{types-Cg276-3z.mjs → types-mVVgRPaU.mjs} +0 -0
- /package/dist/{types-DZpT-PnG.d.mts → types-wFu80FrO.d.mts} +0 -0
- /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-
|
|
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 {
|
|
2
|
-
import {
|
|
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
|
|
2
|
-
import { t as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
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
|