dineway 0.2.26 → 0.2.27
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-C6JLcUzM.mjs → activity-DWlF3FUa.mjs} +2 -2
- package/dist/{activity-events-u9wIH8CQ.mjs → activity-events-BYksOnTL.mjs} +1 -1
- package/dist/{adapters-BZWb3OVu.d.mts → adapters-C-iHnQYy.d.mts} +8 -1
- package/dist/{allowed-origins-CjTNO3cD.mjs → allowed-origins-DeknDs56.mjs} +1 -1
- package/dist/api/route-utils.d.mts +10 -10
- package/dist/api/route-utils.mjs +15 -14
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +5 -5
- package/dist/{api-COtLcrtJ.mjs → api-BTrQ7bjs.mjs} +19 -18
- package/dist/{api-tokens-CI5sgE1g.mjs → api-tokens-d43xs7C1.mjs} +1 -1
- package/dist/{apply-DNy1dp8W.mjs → apply-CS_138du.mjs} +19 -18
- package/dist/astro/index.d.mts +11 -11
- package/dist/astro/index.mjs +29 -7
- package/dist/astro/middleware/auth.d.mts +9 -9
- package/dist/astro/middleware/auth.mjs +6 -6
- package/dist/astro/middleware/redirect.mjs +3 -3
- package/dist/astro/middleware/request-context.mjs +3 -3
- package/dist/astro/middleware/seed.d.mts +1 -1
- package/dist/astro/middleware/seed.mjs +1 -1
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.mjs +91 -90
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -7
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -7
- 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 +18 -18
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +10 -10
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +10 -10
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +10 -10
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +15 -15
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +15 -15
- package/dist/astro/routes/api/admin/bylines/index.mjs +15 -15
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +13 -13
- package/dist/astro/routes/api/admin/comments/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/comments/bulk.mjs +10 -10
- package/dist/astro/routes/api/admin/comments/counts.mjs +4 -4
- package/dist/astro/routes/api/admin/comments/index.mjs +10 -10
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +26 -25
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +26 -25
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +31 -30
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +31 -30
- package/dist/astro/routes/api/admin/context/diff.mjs +30 -29
- package/dist/astro/routes/api/admin/context/index.mjs +31 -30
- package/dist/astro/routes/api/admin/context/stale.mjs +30 -29
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +26 -25
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +30 -29
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +30 -29
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +27 -26
- 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 +57 -56
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +57 -56
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +49 -48
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +56 -55
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +56 -55
- package/dist/astro/routes/api/admin/plugins/index.mjs +49 -48
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +49 -48
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +56 -55
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +49 -48
- package/dist/astro/routes/api/admin/plugins/updates.mjs +49 -48
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +4 -4
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +31 -30
- package/dist/astro/routes/api/admin/review-requests/index.mjs +31 -30
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +49 -48
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +49 -48
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -8
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
- package/dist/astro/routes/api/admin/users/index.mjs +7 -7
- package/dist/astro/routes/api/auth/dev-bypass.mjs +3 -3
- package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +12 -12
- package/dist/astro/routes/api/auth/invite/index.mjs +9 -9
- package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -11
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -11
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/me.mjs +9 -9
- package/dist/astro/routes/api/auth/mode.mjs +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +2 -2
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +7 -7
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +13 -13
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +11 -11
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +12 -12
- package/dist/astro/routes/api/auth/passkey/verify.mjs +12 -12
- package/dist/astro/routes/api/auth/setup-token/index.mjs +4 -4
- package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/signup/complete.mjs +12 -12
- package/dist/astro/routes/api/auth/signup/request.mjs +11 -11
- package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +14 -14
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +13 -13
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +54 -16
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/release-readiness.mjs +9 -9
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +17 -17
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +14 -13
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/index.mjs +11 -11
- package/dist/astro/routes/api/content/_collection_/trash.mjs +8 -8
- package/dist/astro/routes/api/dashboard.mjs +8 -7
- 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 +19 -19
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +8 -8
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +9 -9
- package/dist/astro/routes/api/import/wordpress/execute.mjs +36 -35
- package/dist/astro/routes/api/import/wordpress/media.d.mts +9 -9
- package/dist/astro/routes/api/import/wordpress/media.mjs +12 -12
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +35 -34
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +10 -10
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +32 -31
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +22 -22
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +9 -9
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +41 -40
- package/dist/astro/routes/api/integrations/_provider_.mjs +7 -7
- package/dist/astro/routes/api/integrations/index.mjs +6 -6
- package/dist/astro/routes/api/manifest.mjs +5 -5
- package/dist/astro/routes/api/mcp.mjs +67 -66
- package/dist/astro/routes/api/media/_id_/confirm.mjs +10 -10
- package/dist/astro/routes/api/media/_id_.mjs +9 -9
- 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 -11
- package/dist/astro/routes/api/media.mjs +14 -14
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +31 -30
- package/dist/astro/routes/api/menus/_name_/items.mjs +31 -30
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +31 -30
- package/dist/astro/routes/api/menus/_name_/translations.mjs +31 -30
- package/dist/astro/routes/api/menus/_name_.mjs +31 -30
- package/dist/astro/routes/api/menus/index.mjs +31 -30
- 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 +5 -5
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
- package/dist/astro/routes/api/redirects/404s/index.mjs +11 -11
- package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -11
- package/dist/astro/routes/api/redirects/_id_.mjs +32 -31
- package/dist/astro/routes/api/redirects/index.mjs +32 -31
- 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 +51 -50
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +51 -50
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +51 -50
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +51 -50
- package/dist/astro/routes/api/schema/collections/index.mjs +51 -50
- package/dist/astro/routes/api/schema/index.mjs +8 -8
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +49 -48
- package/dist/astro/routes/api/schema/orphans/index.mjs +49 -48
- package/dist/astro/routes/api/search/enable.mjs +10 -10
- package/dist/astro/routes/api/search/index.mjs +9 -9
- package/dist/astro/routes/api/search/rebuild.mjs +10 -10
- package/dist/astro/routes/api/search/stats.mjs +4 -4
- package/dist/astro/routes/api/search/suggest.mjs +9 -9
- package/dist/astro/routes/api/sections/_slug_.mjs +31 -30
- package/dist/astro/routes/api/sections/index.mjs +31 -30
- package/dist/astro/routes/api/settings/email.mjs +4 -4
- package/dist/astro/routes/api/settings.mjs +31 -30
- package/dist/astro/routes/api/setup/admin-verify.mjs +14 -14
- package/dist/astro/routes/api/setup/admin.mjs +12 -12
- package/dist/astro/routes/api/setup/dev-bypass.mjs +25 -24
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +27 -26
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +7 -7
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +34 -33
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +34 -33
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +34 -33
- package/dist/astro/routes/api/taxonomies/index.mjs +34 -33
- 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 +30 -29
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +31 -30
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +31 -30
- package/dist/astro/routes/api/widget-areas/_name_.mjs +28 -27
- package/dist/astro/routes/api/widget-areas/index.mjs +31 -30
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +5 -5
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +12 -12
- package/dist/astro/routes/sitemap.xml.mjs +11 -11
- package/dist/astro/session-driver.d.mts +1 -1
- package/dist/astro/types.d.mts +12 -12
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{auth-control-guard-BQLSUQd7.mjs → auth-control-guard-Bg93z3D6.mjs} +1 -1
- package/dist/{authorize-D8etr-1g.mjs → authorize-Dg75h4BN.mjs} +1 -1
- package/dist/{briefing-Yao75K3z.mjs → briefing-BoIXsh3Y.mjs} +1 -1
- package/dist/{briefing-DcDVI-0v.mjs → briefing-Cd2HhhHi.mjs} +6 -6
- package/dist/{bundle-MGZ2MLSb.mjs → bundle-DicQY2p2.mjs} +1 -1
- package/dist/{byline-CbFno1Kd.mjs → byline-MGIfM2Is.mjs} +4 -4
- package/dist/{byline-fields-CjCCA-Wn.d.mts → byline-fields-BJ5_tYj8.d.mts} +14 -14
- package/dist/{byline-fields-C0IOddTf.mjs → byline-fields-C4OeOttq.mjs} +3 -3
- package/dist/{byline-fields-CS1Hi2N4.mjs → byline-fields-GoUVaGw4.mjs} +1 -1
- package/dist/{byline-registry-BLgrU3dA.mjs → byline-registry-CF9nobxT.mjs} +2 -2
- package/dist/{bylines-DXXMlc1A.mjs → bylines-CL8Z6AxI.mjs} +3 -3
- package/dist/{bylines-BotyuTdY.mjs → bylines-t_uHsP44.mjs} +1 -1
- package/dist/{cache-Cf5yPNNw.mjs → cache-DrNKKDn0.mjs} +1 -1
- package/dist/cli/index.d.mts +1 -1
- package/dist/cli/index.mjs +395 -133
- package/dist/cli/plugin-kit.d.mts +9 -9
- package/dist/cli/plugin-kit.mjs +2 -2
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +11 -11
- package/dist/client/index.mjs +2 -2
- package/dist/{client-factory-BDDerNBz.mjs → client-factory-DXfeovxp.mjs} +2 -1
- package/dist/{comment-reaction-mHuRHspq.mjs → comment-reaction-NZjadbiB.mjs} +1 -1
- package/dist/{comments-BFbF0xaG.mjs → comments-Csi3B9JI.mjs} +1 -1
- package/dist/{connection-CiJWiWya.mjs → connection-DJ3GzHVH.mjs} +2 -3
- package/dist/{content-C0qGd2Nt.mjs → content-CzUrmMC3.mjs} +3 -115
- package/dist/{content-refresh-BkGWtwUN.mjs → content-refresh-C_jcjzOr.mjs} +4 -4
- package/dist/{context-BEgiPeP-.mjs → context-BET1jeas.mjs} +10 -10
- package/dist/{context-CnCdZ2xZ.mjs → context-D1WiuHGe.mjs} +2 -2
- package/dist/{context-route-helpers-CXxj6-jq.mjs → context-route-helpers-CgVXswZ_.mjs} +2 -2
- package/dist/{dashboard-B8Sk45s8.mjs → dashboard-CKAH1KwM.mjs} +4 -4
- package/dist/db/index.d.mts +4 -4
- package/dist/db/index.mjs +9 -1
- package/dist/db/libsql-http.d.mts +27 -0
- package/dist/db/libsql-http.mjs +29 -0
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/libsql.mjs +3 -43
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{device-flow-DCbF6FAE.mjs → device-flow-BED7L-O7.mjs} +5 -5
- package/dist/{discovery-CUX99M46.mjs → discovery-SVnRaAxj.mjs} +4 -48
- package/dist/{enrich-Ck9tfMqe.mjs → enrich-Uw_OA9Ve.mjs} +1 -1
- package/dist/{field-defs-cache-7Ka899yA.mjs → field-defs-cache-BIHTU5Yj.mjs} +3 -3
- package/dist/{hitl-requests-DU4wJSml.mjs → hitl-requests-D117gyhv.mjs} +2 -2
- package/dist/{hitl-route-helpers-CkRqaLaJ.mjs → hitl-route-helpers-BasbaWwG.mjs} +5 -5
- package/dist/{import-BcSW07F1.mjs → import-BCY1k1zB.mjs} +8 -8
- package/dist/{index-C7X4h_27.d.mts → index-DNNw5fp0.d.mts} +3 -3
- package/dist/index.d.mts +15 -15
- package/dist/index.mjs +84 -82
- package/dist/{integration-credentials-ylo0bguS.mjs → integration-credentials-CTrvXgEc.mjs} +2 -2
- package/dist/{jsonld-thSA4Rua.d.mts → jsonld-CxMRDv02.d.mts} +2 -2
- package/dist/libsql-dialect-DMqpBfJI.mjs +47 -0
- package/dist/{manifest-schema-VGSvatoU.mjs → manifest-schema-owbEUmv1.mjs} +1 -1
- package/dist/{mcp-reviewed-executor-lqfDtcFo.mjs → mcp-reviewed-executor-BwI0ylf3.mjs} +6 -6
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +2 -2
- package/dist/media/local-runtime.d.mts +11 -11
- package/dist/media/local-runtime.mjs +1 -1
- package/dist/{media-allowlist-D3AHS_q3.mjs → media-allowlist-BdbIzYO3.mjs} +1 -1
- package/dist/{menus-oIJaGGUU.mjs → menus-CRmcWAM5.mjs} +1 -1
- package/dist/{menus-D_pqSYJ3.mjs → menus-Cu3TUXyl.mjs} +5 -5
- package/dist/{oauth-authorization-DHeVHdGr.mjs → oauth-authorization-TG2Kxgur.mjs} +5 -5
- package/dist/{oauth-clients-8cVhd-8W.mjs → oauth-clients-DLJMG4h7.mjs} +2 -2
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/page/index.d.mts +10 -10
- package/dist/page/index.mjs +1 -1
- package/dist/{parse-RN_EgAxL.mjs → parse-CJC9DGe9.mjs} +1 -1
- package/dist/plugin-utils.d.mts +9 -9
- package/dist/plugins/adapt-sandbox-entry.d.mts +9 -9
- package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
- package/dist/{plugins-DMImBiT9.mjs → plugins-BC9Rb6PJ.mjs} +6 -6
- package/dist/{preview-DDtW5YuZ.mjs → preview-CjL_29aE.mjs} +3 -3
- package/dist/{provider-loader-DZ9uy48J.d.mts → provider-loader-CGoW_-Bs.d.mts} +1 -1
- package/dist/{public-url-Binfty0i.d.mts → public-url-BPnL5sTj.d.mts} +1 -1
- package/dist/public-url-DjWfilkD.mjs +46 -0
- package/dist/{public-url-BuERxOoY.d.mts → public-url-UpDevWVD.d.mts} +2 -2
- package/dist/{publication-authorization-DYAGeWto.mjs → publication-authorization-Bq4B0KIL.mjs} +6 -6
- package/dist/{query-DzsPhsZk.mjs → query-BAfn0Uxp.mjs} +7 -7
- package/dist/{query-qvv6Rar8.mjs → query-MvFwA1uK.mjs} +2 -2
- package/dist/{rate-limit-BIuuIxP3.mjs → rate-limit-JhnJUEno.mjs} +2 -2
- package/dist/{redirect-B_9GwIZd.mjs → redirect-CnG6nJ4H.mjs} +1 -1
- package/dist/{redirects-Cj4lrY_X.mjs → redirects-C9pg6Dcg.mjs} +3 -3
- package/dist/{redirects-DvsWZIiC.mjs → redirects-lCwNKPUn.mjs} +5 -5
- package/dist/{registry-BwcF6gAj.mjs → registry-QxrUJAWY.mjs} +7 -7
- package/dist/{request-meta-C0druWvK.mjs → request-meta-DnZm9Kbu.mjs} +1 -1
- package/dist/{review-payload-Cg9dtFgV.mjs → review-payload-BuLgXTY6.mjs} +1 -1
- package/dist/{review-requests-B2tCLjdA.mjs → review-requests-uI-yUXcr.mjs} +2 -2
- package/dist/{review-route-helpers-CeYzVpNa.mjs → review-route-helpers-BvX04ahf.mjs} +2 -2
- package/dist/revision-De7OmYVD.mjs +118 -0
- package/dist/{runner-DnswPQIl.d.mts → runner-o39FihbH.d.mts} +1 -1
- package/dist/runtime.d.mts +10 -10
- package/dist/runtime.mjs +1 -1
- package/dist/{schema-86uC3yVE.mjs → schema-CD3EA3nN.mjs} +1 -1
- package/dist/{search-CeXUu1KD.mjs → search-BtCHwx_Z.mjs} +1 -1
- package/dist/{secrets-re9BzPUD.mjs → secrets-MqvM60s_.mjs} +2 -2
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +20 -19
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +7 -6
- package/dist/{seo-BpuKUrBs.mjs → seo-BhMH6i2e.mjs} +1 -1
- package/dist/{seo-BVmdKP7v.mjs → seo-CTXMR4YD.mjs} +1 -1
- package/dist/{service-CSeV_04p.mjs → service-evnf21UO.mjs} +2 -2
- package/dist/{settings-DXp6vRdV.mjs → settings-CCqefqC9.mjs} +5 -5
- package/dist/{settings-ClnGCe1a.mjs → settings-COtVNdOx.mjs} +1 -1
- package/dist/{setup-complete-BcjodOdW.mjs → setup-complete-C8LTo8cO.mjs} +1 -1
- package/dist/{site-context-DRSrU7hX.mjs → site-context-D2DmqFnD.mjs} +14 -14
- package/dist/{site-url-C1PUhgWO.mjs → site-url-AGgA46Lw.mjs} +1 -1
- 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/{store-C6bydUdt.mjs → store-BtCoeap4.mjs} +1 -1
- package/dist/{taxonomies-CHHgZFzB.mjs → taxonomies-DxtqEjcj.mjs} +2 -2
- package/dist/{taxonomies-Dfmkapin.mjs → taxonomies-xvaQ7gVM.mjs} +4 -4
- package/dist/{taxonomy-BUo9B6qp.mjs → taxonomy--vcXXfwc.mjs} +1 -1
- package/dist/{types-ZDyMKdrZ.d.mts → types-BcpWwh4c.d.mts} +10 -10
- package/dist/{types-DCkWipbM.d.mts → types-m37xNtUj.d.mts} +1 -1
- package/dist/ui/server-runtime.d.mts +13 -13
- package/dist/ui/server-runtime.mjs +21 -21
- package/dist/{user-BprdjWGE.mjs → user-Dn3wV227.mjs} +1 -1
- package/dist/{utils-D_bwAtcb.mjs → utils-iGiCys50.mjs} +1 -1
- package/dist/{validate-Cdvc9APD.mjs → validate-BHVQSpUy.mjs} +2 -2
- package/dist/{validate-SXACKtqW.d.mts → validate-BiPYhXNZ.d.mts} +3 -3
- package/dist/version-BbuynKOY.mjs +6 -0
- package/dist/{widgets-DMzBMhsO.mjs → widgets-CBCHUg_u.mjs} +2 -2
- package/dist/{wordpress-slugs-CuizIp_V.mjs → wordpress-slugs-BYW2B_5x.mjs} +1 -1
- package/dist/{zod-generator-C0nwBbg8.mjs → zod-generator-DMlY4cI3.mjs} +1 -1
- package/package.json +9 -2
- package/src/components/DinewayImage.astro +4 -0
- package/dist/version-BjNGau7O.mjs +0 -6
- /package/dist/{actor-Bu9whHez.mjs → actor-BraTCiOp.mjs} +0 -0
- /package/dist/{api-tokens-BkXlt3V6.mjs → api-tokens-CZ472rzA.mjs} +0 -0
- /package/dist/{audit-BGHS3IuK.mjs → audit-CmiNnrbj.mjs} +0 -0
- /package/dist/{challenge-store-DvRxUsXv.mjs → challenge-store-ugPhBaVf.mjs} +0 -0
- /package/dist/{chunks-Dh8yqZt3.mjs → chunks-Bw3_BuVW.mjs} +0 -0
- /package/dist/{comment-eqM9KHbj.mjs → comment-DuDtCn-f.mjs} +0 -0
- /package/dist/{components-D5HxUv7y.mjs → components-CINP4h-l.mjs} +0 -0
- /package/dist/{context-types-eBuMDAg-.mjs → context-types-fEeyXC1D.mjs} +0 -0
- /package/dist/{cron-fQf7oVvf.mjs → cron-DIsnItPn.mjs} +0 -0
- /package/dist/{default-CnbyLh9W.mjs → default-D8jeKsT3.mjs} +0 -0
- /package/dist/{email-console-vFj2FFuJ.mjs → email-console-DRb6jkoC.mjs} +0 -0
- /package/dist/{error-DWL9Pwyt.mjs → error-BPA9T0AW.mjs} +0 -0
- /package/dist/{escape-DBggE3jq.mjs → escape-DgNqnHuj.mjs} +0 -0
- /package/dist/{experimental-workflows-Dvn_xgew.mjs → experimental-workflows-DOo7QDRn.mjs} +0 -0
- /package/dist/{fts-manager-D4K5mA0j.mjs → fts-manager-BB44uXMm.mjs} +0 -0
- /package/dist/{hash-mxxx2oPW.mjs → hash-CEky-IDp.mjs} +0 -0
- /package/dist/{load-B1cm00WU.mjs → load-C-cMlsPv.mjs} +0 -0
- /package/dist/{media-DNde5-Am.mjs → media-4xtXwq7L.mjs} +0 -0
- /package/dist/{media-url-LSeVcoln.mjs → media-url-BhbJfG3Y.mjs} +0 -0
- /package/dist/{mime-C0vOHFm7.mjs → mime-Bg7yUeHW.mjs} +0 -0
- /package/dist/{mode-DYsXVFoY.mjs → mode-CgD_xAEJ.mjs} +0 -0
- /package/dist/{normalize-Cyt7JdF7.mjs → normalize-BY2gOygP.mjs} +0 -0
- /package/dist/{oauth-state-store-CUU4azTF.mjs → oauth-state-store-Dbj-J0K5.mjs} +0 -0
- /package/dist/{oauth-user-lookup-CRFHKN_W.mjs → oauth-user-lookup-D2NAYPjU.mjs} +0 -0
- /package/dist/{options-DQPTH5n0.mjs → options-1dBRkoCl.mjs} +0 -0
- /package/dist/{output-13u4dvu-.mjs → output-A4ZfzzA0.mjs} +0 -0
- /package/dist/{parser-Co69H1x-.mjs → parser-C3ux7a3Y.mjs} +0 -0
- /package/dist/{passkey-config-e-0KLl2R.mjs → passkey-config-DUc1iP_-.mjs} +0 -0
- /package/dist/{patterns-CoqlXUvk.mjs → patterns-CP9gkiCE.mjs} +0 -0
- /package/dist/{placeholder-DeJydgkj.d.mts → placeholder-0cGpMonY.d.mts} +0 -0
- /package/dist/{portable-text-B7E-ali_.d.mts → portable-text-Cu4n_8zI.d.mts} +0 -0
- /package/dist/{portable-text-C8Tvp4_g.mjs → portable-text-U85hOafW.mjs} +0 -0
- /package/dist/{process-cache-CCDgti7j.mjs → process-cache-DsMwJ3LM.mjs} +0 -0
- /package/dist/{provider-loader-BIxppPHS.mjs → provider-loader-BPHG3BR5.mjs} +0 -0
- /package/dist/{public-discovery-BlJ80Hoh.mjs → public-discovery-CyDzK1-S.mjs} +0 -0
- /package/dist/{public-url-jFEiiLag.mjs → public-url-CmBKcpsJ.mjs} +0 -0
- /package/dist/{redirect-C2bJtYhP.mjs → redirect-D_bb_Cc3.mjs} +0 -0
- /package/dist/{request-cache-CBFjCwSt.mjs → request-cache-DoT2mKBT.mjs} +0 -0
- /package/dist/{resolve-Doh2USIE.mjs → resolve-BDWXnk_V.mjs} +0 -0
- /package/dist/{review-requests-Bo4jcxtU.mjs → review-requests-DaYnr3XR.mjs} +0 -0
- /package/dist/{sections-BQdtDQUw.mjs → sections-BM88PvRO.mjs} +0 -0
- /package/dist/{seo-contributions-CPDwm9MH.mjs → seo-contributions-DzusM9lG.mjs} +0 -0
- /package/dist/{service-CY0aH6eI.mjs → service-BB1n90wh.mjs} +0 -0
- /package/dist/{session-user-DTopk3zO.mjs → session-user-BQZHuGOS.mjs} +0 -0
- /package/dist/{setup-nonce-C76FNEst.mjs → setup-nonce-220YhE1R.mjs} +0 -0
- /package/dist/{sidecar-client-CQF4fcO7.mjs → sidecar-client-SDgPreXV.mjs} +0 -0
- /package/dist/{site-activity-By0wWO0g.mjs → site-activity-kfZ9X0no.mjs} +0 -0
- /package/dist/{ssrf-CxOWiF0p.mjs → ssrf-D00lPvtF.mjs} +0 -0
- /package/dist/{stable-hash-DshcXvRE.mjs → stable-hash-_A3p1ln2.mjs} +0 -0
- /package/dist/{status-DvSRKIiF.mjs → status-BdZSXIP_.mjs} +0 -0
- /package/dist/{tokens-COJxRo8q.mjs → tokens-ShJZm_QS.mjs} +0 -0
- /package/dist/{transaction-Chz7SBGr.mjs → transaction-L0tzAOfM.mjs} +0 -0
- /package/dist/{transport-BDQ73F0l.mjs → transport-DtrY0-hI.mjs} +0 -0
- /package/dist/{transport-BfF60P73.d.mts → transport-SoRbXDM4.d.mts} +0 -0
- /package/dist/{trusted-proxy-j2KYPN4r.mjs → trusted-proxy-9b2fSXK2.mjs} +0 -0
- /package/dist/{types-B0P-ECRI.d.mts → types-B-KSspMO.d.mts} +0 -0
- /package/dist/{types-DA4L0OLk.mjs → types-B-nDjnzA.mjs} +0 -0
- /package/dist/{types-gG3syKwc.d.mts → types-B2W3CeZN.d.mts} +0 -0
- /package/dist/{types-C0hcZkqG.d.mts → types-BdsNqnHA.d.mts} +0 -0
- /package/dist/{types-VkWKA-R2.d.mts → types-Cd_2Jeqp.d.mts} +0 -0
- /package/dist/{types-B7TDDFMG.mjs → types-D1l9cCKM.mjs} +0 -0
- /package/dist/{types-DN82MbYv.d.mts → types-D8iukuuI.d.mts} +0 -0
- /package/dist/{types-Cnz2EIEp.d.mts → types-ZdWRfUsC.d.mts} +0 -0
- /package/dist/{types-gnLXQcvx.mjs → types-dgGPmsl_.mjs} +0 -0
- /package/dist/{url-Bm__30we.mjs → url-C_pLSrGZ.mjs} +0 -0
- /package/dist/{url-BG-3f-Vy.mjs → url-CmjWycVK.mjs} +0 -0
package/dist/cli/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { i as runMigrations, n as getMigrationStatus, t as getMigrationFingerprint } from "../runner-CQnzfBpD.mjs";
|
|
3
|
-
import { t as createDatabase } from "../connection-
|
|
3
|
+
import { t as createDatabase } from "../connection-DJ3GzHVH.mjs";
|
|
4
4
|
import { t as validateIdentifier } from "../validate-VPnKoIzW.mjs";
|
|
5
5
|
import { l as listTablesLike } from "../dialect-helpers-fk43GbDb.mjs";
|
|
6
6
|
import { n as getI18nConfig, r as isI18nEnabled } from "../config-CVssduLe.mjs";
|
|
@@ -9,47 +9,52 @@ import "../types-CFvpEEOl.mjs";
|
|
|
9
9
|
import { o as isMissingTableError } from "../loader-CsX5pTud.mjs";
|
|
10
10
|
import "../object-cache-D51qOseS.mjs";
|
|
11
11
|
import { n as slugify } from "../slugify-KSsVD_D3.mjs";
|
|
12
|
-
import
|
|
13
|
-
import { t as
|
|
14
|
-
import { t as
|
|
15
|
-
import { t as
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import "../
|
|
19
|
-
import "../
|
|
20
|
-
import
|
|
21
|
-
import "../
|
|
22
|
-
import "../
|
|
23
|
-
import "../
|
|
24
|
-
import
|
|
25
|
-
import "../
|
|
26
|
-
import
|
|
27
|
-
import {
|
|
28
|
-
import { t as
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import { t as
|
|
32
|
-
import { t as
|
|
33
|
-
import {
|
|
34
|
-
import { n as
|
|
12
|
+
import "../revision-De7OmYVD.mjs";
|
|
13
|
+
import { t as ContentRepository } from "../content-CzUrmMC3.mjs";
|
|
14
|
+
import { t as MediaRepository } from "../media-4xtXwq7L.mjs";
|
|
15
|
+
import { t as TaxonomyRepository } from "../taxonomy--vcXXfwc.mjs";
|
|
16
|
+
import { t as OptionsRepository } from "../options-1dBRkoCl.mjs";
|
|
17
|
+
import "../redirect-CnG6nJ4H.mjs";
|
|
18
|
+
import "../request-cache-DoT2mKBT.mjs";
|
|
19
|
+
import "../byline-registry-CF9nobxT.mjs";
|
|
20
|
+
import "../field-defs-cache-BIHTU5Yj.mjs";
|
|
21
|
+
import { t as BylineRepository } from "../byline-MGIfM2Is.mjs";
|
|
22
|
+
import "../content-refresh-C_jcjzOr.mjs";
|
|
23
|
+
import "../fts-manager-BB44uXMm.mjs";
|
|
24
|
+
import "../public-discovery-CyDzK1-S.mjs";
|
|
25
|
+
import { n as SchemaRegistry } from "../registry-QxrUJAWY.mjs";
|
|
26
|
+
import "../settings-CCqefqC9.mjs";
|
|
27
|
+
import { n as VERSION } from "../version-BbuynKOY.mjs";
|
|
28
|
+
import { i as parseEncryptionKeys, n as fingerprintKey, r as generateEncryptionKey, t as DinewaySecretsError } from "../secrets-MqvM60s_.mjs";
|
|
29
|
+
import { t as IntegrationCredentialStore } from "../store-BtCoeap4.mjs";
|
|
30
|
+
import { a as reconcileManifestAccess, i as pluginManifestSchema } from "../manifest-schema-owbEUmv1.mjs";
|
|
31
|
+
import { n as resolveAndValidateExternalUrl, t as SsrfError } from "../ssrf-D00lPvtF.mjs";
|
|
32
|
+
import { t as validateSeed } from "../validate-BHVQSpUy.mjs";
|
|
33
|
+
import { t as applySeed } from "../apply-CS_138du.mjs";
|
|
34
|
+
import { _ as readForgewayCredentials, a as InvalidForgewayAccountCredentialsError, c as getForgewayDinewayAccount, d as normalizeForgewayEmail, f as readStoredForgewayAccount, g as listForgewayCredentials, h as sendForgewayAccountLoginLink, i as DEFAULT_FORGEWAY_API_BASE_URL, l as normalizeDinewayWebUrl, m as removeStoredForgewayAccount, n as DinewayToolsService, o as completeForgewayAccountLogin, p as refreshForgewayAccountCredentials, r as DEFAULT_DINEWAY_WEB_URL, s as createForgewayAccountClient, t as DinewayToolsError, u as normalizeForgewayApiUrl, v as writeForgewayCredentials } from "../service-BB1n90wh.mjs";
|
|
35
|
+
import { n as output, t as configureOutputMode } from "../output-A4ZfzzA0.mjs";
|
|
35
36
|
import { createHeaderAwareFetch, isRedirectResponse, resolveCustomHeaders } from "../client/external-auth-headers.mjs";
|
|
36
|
-
import { t as convertDataForRead } from "../portable-text-
|
|
37
|
-
import { _ as saveMarketplaceCredential, a as ensureProjectGitignoreDinewayLocalState, c as resolveDinewayBaseUrl, d as getCredentials, f as getMarketplaceCredential, g as saveCredentials, h as resolveCredentialKey, i as DEFAULT_DINEWAY_URL, l as resolveDinewayToken, m as removeMarketplaceCredential, n as connectionArgs, o as ensureProjectGitignoreEntry, p as removeCredentials, r as createClientFromArgs, s as readProjectEnv, u as upsertProjectEnv } from "../client-factory-
|
|
37
|
+
import { t as convertDataForRead } from "../portable-text-U85hOafW.mjs";
|
|
38
|
+
import { _ as saveMarketplaceCredential, a as ensureProjectGitignoreDinewayLocalState, c as resolveDinewayBaseUrl, d as getCredentials, f as getMarketplaceCredential, g as saveCredentials, h as resolveCredentialKey, i as DEFAULT_DINEWAY_URL, l as resolveDinewayToken, m as removeMarketplaceCredential, n as connectionArgs, o as ensureProjectGitignoreEntry, p as removeCredentials, r as createClientFromArgs, s as readProjectEnv, u as upsertProjectEnv } from "../client-factory-DXfeovxp.mjs";
|
|
38
39
|
import { LocalStorage } from "../storage/local.mjs";
|
|
39
|
-
import { r as fileExists$11, t as bundleCommand } from "../bundle-
|
|
40
|
+
import { r as fileExists$11, t as bundleCommand } from "../bundle-DicQY2p2.mjs";
|
|
40
41
|
import { createRequire } from "node:module";
|
|
41
42
|
import { createHash } from "node:crypto";
|
|
42
43
|
import { sql } from "kysely";
|
|
44
|
+
import { z } from "zod";
|
|
43
45
|
import { createGzipDecoder, unpackTar } from "modern-tar";
|
|
44
|
-
import { createReadStream, existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
45
|
-
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
46
|
+
import { createReadStream, createWriteStream, existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
47
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
46
48
|
import sax from "sax";
|
|
47
49
|
import { pathToFileURL } from "node:url";
|
|
48
50
|
import { defineCommand, runCommand, runMain } from "citty";
|
|
49
51
|
import { createInterface } from "node:readline/promises";
|
|
50
52
|
import consola, { consola as consola$1 } from "consola";
|
|
51
53
|
import pc from "picocolors";
|
|
52
|
-
import { access, mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
54
|
+
import { access, cp, lstat, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
55
|
+
import { pipeline } from "node:stream/promises";
|
|
56
|
+
import { createGzip } from "node:zlib";
|
|
57
|
+
import { packTar } from "modern-tar/fs";
|
|
53
58
|
import { spawn } from "node:child_process";
|
|
54
59
|
import { parse } from "parse5";
|
|
55
60
|
|
|
@@ -1012,6 +1017,12 @@ async function handleCliPaywall(input) {
|
|
|
1012
1017
|
|
|
1013
1018
|
//#endregion
|
|
1014
1019
|
//#region src/cli/commands/deploy/utils/astro-adapter.ts
|
|
1020
|
+
const CLOUDFLARE_ADAPTER_PACKAGE = "@astrojs/cloudflare";
|
|
1021
|
+
const CLOUDFLARE_ADAPTER_VERSION = "14.0.0";
|
|
1022
|
+
const CLOUDFLARE_IMPORT_PATTERN = /^import\s+cloudflare\s+from\s+["']@astrojs\/cloudflare["'];\n?/m;
|
|
1023
|
+
const CLOUDFLARE_ADAPTER_PROPERTY_PATTERN = /\badapter\s*:\s*cloudflare\s*\(/;
|
|
1024
|
+
const ANY_ADAPTER_PROPERTY_PATTERN = /\badapter\s*:/;
|
|
1025
|
+
const SESSION_PROPERTY_PATTERN = /\bsession\s*:/;
|
|
1015
1026
|
const NODE_ADAPTER_PACKAGE = "@astrojs/node";
|
|
1016
1027
|
const VERCEL_ADAPTER_PACKAGE = "@astrojs/vercel";
|
|
1017
1028
|
const NODE_ADAPTER_VERSION = "^10.1.0";
|
|
@@ -1021,7 +1032,7 @@ const VERCEL_IMPORT_PATTERN = /^import\s+vercel\s+from\s+["']@astrojs\/vercel["'
|
|
|
1021
1032
|
const CONDITIONAL_ADAPTER_FLAG_PATTERN = /^const\s+isVercelDeploy\s*=\s*process\.env\.VERCEL\s*===\s*["']1["']\s*\|\|\s*process\.env\.DINEWAY_DEPLOY_TARGET\s*===\s*["']forgeway["'];\n?/m;
|
|
1022
1033
|
const SERVER_OUTPUT_PATTERN = /output:\s*["']server["'],/;
|
|
1023
1034
|
const KNOWN_ADAPTER_FLAG_PATTERN = /\bisVercelDeploy\b/;
|
|
1024
|
-
const KNOWN_ADAPTER_CALL_PATTERN = /\b(?:node|vercel)\s*\(/;
|
|
1035
|
+
const KNOWN_ADAPTER_CALL_PATTERN = /\b(?:node|vercel|cloudflare)\s*\(/;
|
|
1025
1036
|
const ADAPTER_PROPERTY_PATTERN = /\n?[ \t]*adapter\s*:/g;
|
|
1026
1037
|
const COLLECT_UPLOAD_FUNCTION_PATTERN = /\bfunction\s+collectUploadIncludeFiles\s*\(/;
|
|
1027
1038
|
const TRAILING_NEWLINES_PATTERN = /\n+$/;
|
|
@@ -1177,24 +1188,36 @@ function removeGeneratedVercelUploadHelper(source) {
|
|
|
1177
1188
|
for (const statement of GENERATED_UPLOAD_HELPER_IMPORTS) next = next.replace(`${statement}\n`, "");
|
|
1178
1189
|
return next;
|
|
1179
1190
|
}
|
|
1191
|
+
function ensureWorkersSession(source) {
|
|
1192
|
+
return SESSION_PROPERTY_PATTERN.test(source) ? source : source.replace(SERVER_OUTPUT_PATTERN, (match) => `${match}\n\tsession: { driver: { entrypoint: "dineway/astro/session-driver" } },`);
|
|
1193
|
+
}
|
|
1180
1194
|
function configureAstroConfigSource(source, adapter) {
|
|
1195
|
+
if (adapter === "cloudflare" && CLOUDFLARE_IMPORT_PATTERN.test(source) && CLOUDFLARE_ADAPTER_PROPERTY_PATTERN.test(source)) return ensureWorkersSession(source);
|
|
1181
1196
|
let next = source.replace(CONDITIONAL_ADAPTER_FLAG_PATTERN, "").replace(adapter === "vercel" ? NODE_IMPORT_PATTERN : VERCEL_IMPORT_PATTERN, "");
|
|
1182
|
-
if (adapter
|
|
1183
|
-
|
|
1184
|
-
|
|
1197
|
+
if (adapter !== "cloudflare") next = next.replace(CLOUDFLARE_IMPORT_PATTERN, "");
|
|
1198
|
+
if (adapter === "cloudflare") next = next.replace(NODE_IMPORT_PATTERN, "");
|
|
1199
|
+
if (adapter !== "vercel") next = removeGeneratedVercelUploadHelper(next);
|
|
1200
|
+
const wantedImport = adapter === "cloudflare" ? `import cloudflare from "${CLOUDFLARE_ADAPTER_PACKAGE}";` : adapter === "vercel" ? `import vercel from "${VERCEL_ADAPTER_PACKAGE}";` : `import node from "${NODE_ADAPTER_PACKAGE}";`;
|
|
1201
|
+
const wantedAdapter = adapter === "cloudflare" ? "adapter: cloudflare({ imageService: \"passthrough\" })," : adapter === "vercel" ? createVercelAdapterConfig() : "adapter: node({ mode: \"standalone\" }),";
|
|
1185
1202
|
if (!next.includes(wantedImport)) next = insertImport(next, wantedImport);
|
|
1186
1203
|
if (adapter === "vercel") next = ensureGeneratedVercelUploadHelper(next);
|
|
1187
1204
|
const adapterReplacement = replaceKnownAdapterEntries(next, wantedAdapter);
|
|
1188
1205
|
next = adapterReplacement.source;
|
|
1189
1206
|
if (!adapterReplacement.replaced) {
|
|
1207
|
+
if (adapter === "cloudflare" && ANY_ADAPTER_PROPERTY_PATTERN.test(next)) throw new Error("Cannot safely replace the custom Astro adapter. Configure @astrojs/cloudflare manually.");
|
|
1190
1208
|
if (!SERVER_OUTPUT_PATTERN.test(next)) throw new Error("astro.config.mjs must include output: \"server\" before deploy adapter setup.");
|
|
1191
1209
|
next = next.replace(SERVER_OUTPUT_PATTERN, (match) => `${match}\n\t${wantedAdapter}`);
|
|
1192
1210
|
}
|
|
1193
|
-
return next;
|
|
1211
|
+
return adapter === "cloudflare" ? ensureWorkersSession(next) : next;
|
|
1194
1212
|
}
|
|
1195
1213
|
function configurePackageJson(pkg, adapter) {
|
|
1196
1214
|
const dependencies = { ...pkg.dependencies };
|
|
1197
|
-
if (adapter
|
|
1215
|
+
if (adapter !== "cloudflare") delete dependencies[CLOUDFLARE_ADAPTER_PACKAGE];
|
|
1216
|
+
if (adapter === "cloudflare") {
|
|
1217
|
+
delete dependencies[NODE_ADAPTER_PACKAGE];
|
|
1218
|
+
delete dependencies[VERCEL_ADAPTER_PACKAGE];
|
|
1219
|
+
dependencies[CLOUDFLARE_ADAPTER_PACKAGE] = dependencies[CLOUDFLARE_ADAPTER_PACKAGE] ?? CLOUDFLARE_ADAPTER_VERSION;
|
|
1220
|
+
} else if (adapter === "vercel") {
|
|
1198
1221
|
delete dependencies[NODE_ADAPTER_PACKAGE];
|
|
1199
1222
|
dependencies[VERCEL_ADAPTER_PACKAGE] = dependencies[VERCEL_ADAPTER_PACKAGE] ?? VERCEL_ADAPTER_VERSION;
|
|
1200
1223
|
} else {
|
|
@@ -1250,6 +1273,331 @@ async function configureAstroDeployAdapter(cwd, adapter, dryRun = false) {
|
|
|
1250
1273
|
return [...await configureAstroConfig(cwd, adapter, dryRun), ...await configurePackage(cwd, adapter, dryRun)];
|
|
1251
1274
|
}
|
|
1252
1275
|
|
|
1276
|
+
//#endregion
|
|
1277
|
+
//#region src/cli/commands/deploy/utils/workers.ts
|
|
1278
|
+
const WORKERS_BUILD_CONFIG = "dist/server/wrangler.json";
|
|
1279
|
+
const INVALID_NAME = /[^a-z0-9-]+/g;
|
|
1280
|
+
const EDGE_HYPHENS = /^-+|-+$/g;
|
|
1281
|
+
const workerBuildSchema = z.object({
|
|
1282
|
+
main: z.string().min(1),
|
|
1283
|
+
compatibility_date: z.string(),
|
|
1284
|
+
compatibility_flags: z.array(z.string()),
|
|
1285
|
+
no_bundle: z.literal(true),
|
|
1286
|
+
assets: z.object({
|
|
1287
|
+
binding: z.literal("ASSETS"),
|
|
1288
|
+
directory: z.string().min(1)
|
|
1289
|
+
})
|
|
1290
|
+
}).passthrough();
|
|
1291
|
+
async function exists(path) {
|
|
1292
|
+
try {
|
|
1293
|
+
await access(path);
|
|
1294
|
+
return true;
|
|
1295
|
+
} catch {
|
|
1296
|
+
return false;
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
async function writeNewFile(cwd, path, content, dryRun = false) {
|
|
1300
|
+
if (await exists(join(cwd, path))) return {
|
|
1301
|
+
path,
|
|
1302
|
+
action: "exists"
|
|
1303
|
+
};
|
|
1304
|
+
if (dryRun) return {
|
|
1305
|
+
path,
|
|
1306
|
+
action: "skipped"
|
|
1307
|
+
};
|
|
1308
|
+
await mkdir(dirname(join(cwd, path)), { recursive: true });
|
|
1309
|
+
await assertInsideDirectory(cwd, dirname(join(cwd, path)));
|
|
1310
|
+
await writeFile(join(cwd, path), content, "utf-8");
|
|
1311
|
+
return {
|
|
1312
|
+
path,
|
|
1313
|
+
action: "created"
|
|
1314
|
+
};
|
|
1315
|
+
}
|
|
1316
|
+
async function generateWorkersConfig(cwd, dryRun = false) {
|
|
1317
|
+
const files = await configureAstroDeployAdapter(cwd, "cloudflare", dryRun);
|
|
1318
|
+
for (const path of [
|
|
1319
|
+
"wrangler.jsonc",
|
|
1320
|
+
"wrangler.json",
|
|
1321
|
+
"wrangler.toml"
|
|
1322
|
+
]) if (await exists(join(cwd, path))) return [...files, {
|
|
1323
|
+
path,
|
|
1324
|
+
action: "exists"
|
|
1325
|
+
}];
|
|
1326
|
+
const config = {
|
|
1327
|
+
name: (z.object({ name: z.string().optional() }).parse(JSON.parse(await readFile(join(cwd, "package.json"), "utf-8"))).name?.split("/").at(-1) ?? "dineway").toLowerCase().replace(INVALID_NAME, "-").replace(EDGE_HYPHENS, "").slice(0, 63).replace(EDGE_HYPHENS, "") || "dineway",
|
|
1328
|
+
main: "@astrojs/cloudflare/entrypoints/server",
|
|
1329
|
+
compatibility_date: "2026-09-01",
|
|
1330
|
+
compatibility_flags: ["nodejs_compat"],
|
|
1331
|
+
assets: { binding: "ASSETS" }
|
|
1332
|
+
};
|
|
1333
|
+
files.push(await writeNewFile(cwd, "wrangler.jsonc", JSON.stringify(config, null, " ") + "\n", dryRun));
|
|
1334
|
+
return files;
|
|
1335
|
+
}
|
|
1336
|
+
async function assertInsideDirectory(root, path) {
|
|
1337
|
+
if (!isInside(relative(await realpath(root), await realpath(path)))) throw new Error("Workers build files must stay inside the project output directory.");
|
|
1338
|
+
}
|
|
1339
|
+
function isInside(relativePath) {
|
|
1340
|
+
return relativePath !== ".." && !relativePath.startsWith(`..${sep}`) && !isAbsolute(relativePath);
|
|
1341
|
+
}
|
|
1342
|
+
async function readWorkersBuild(cwd) {
|
|
1343
|
+
const configPath = join(cwd, WORKERS_BUILD_CONFIG);
|
|
1344
|
+
if (!await exists(configPath)) throw new Error("Missing Cloudflare Worker build. Install @astrojs/cloudflare and wrangler, then run the Astro build before deploying.");
|
|
1345
|
+
await assertInsideDirectory(cwd, join(cwd, "dist"));
|
|
1346
|
+
await assertInsideDirectory(join(cwd, "dist"), configPath);
|
|
1347
|
+
const config = workerBuildSchema.parse(JSON.parse(await readFile(configPath, "utf-8")));
|
|
1348
|
+
if (!config.compatibility_flags.includes("nodejs_compat")) throw new Error("Dineway Workers require compatibility_flags: [\"nodejs_compat\"].");
|
|
1349
|
+
const serverDir = dirname(configPath);
|
|
1350
|
+
const entrypoint = resolve(serverDir, config.main);
|
|
1351
|
+
const assetsDir = resolve(serverDir, config.assets.directory);
|
|
1352
|
+
await assertInsideDirectory(serverDir, entrypoint);
|
|
1353
|
+
await assertInsideDirectory(join(cwd, "dist"), assetsDir);
|
|
1354
|
+
const [realServer, realAssets] = await Promise.all([realpath(serverDir), realpath(assetsDir)]);
|
|
1355
|
+
if (isInside(relative(realServer, realAssets)) || isInside(relative(realAssets, realServer))) throw new Error("Worker server modules and public assets must use separate output directories.");
|
|
1356
|
+
return {
|
|
1357
|
+
config,
|
|
1358
|
+
configPath,
|
|
1359
|
+
serverDir,
|
|
1360
|
+
entrypoint,
|
|
1361
|
+
assetsDir
|
|
1362
|
+
};
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
//#endregion
|
|
1366
|
+
//#region src/cli/commands/deploy/targets/chatgpt-sites.ts
|
|
1367
|
+
const HOSTING_PATH = ".openai/hosting.json";
|
|
1368
|
+
const externalPersistence = z.unknown().refine((value) => value == null, "This Dineway Sites target uses external HTTP libSQL and S3; native D1/R2 bindings are not supported.");
|
|
1369
|
+
const hostingSchema = z.object({
|
|
1370
|
+
project_id: z.string().min(1),
|
|
1371
|
+
static: z.null().optional(),
|
|
1372
|
+
d1: externalPersistence.optional(),
|
|
1373
|
+
r2: externalPersistence.optional(),
|
|
1374
|
+
capabilities: z.array(z.string()).optional()
|
|
1375
|
+
}).strict();
|
|
1376
|
+
const NON_RUNTIME_ENTRIES = new Set([
|
|
1377
|
+
".prerender",
|
|
1378
|
+
".vite",
|
|
1379
|
+
"wrangler.json",
|
|
1380
|
+
".dev.vars",
|
|
1381
|
+
".env"
|
|
1382
|
+
]);
|
|
1383
|
+
const BINDING_KEYS = [
|
|
1384
|
+
"kv_namespaces",
|
|
1385
|
+
"d1_databases",
|
|
1386
|
+
"r2_buckets",
|
|
1387
|
+
"services",
|
|
1388
|
+
"hyperdrive",
|
|
1389
|
+
"vectorize",
|
|
1390
|
+
"workflows",
|
|
1391
|
+
"worker_loaders",
|
|
1392
|
+
"queues",
|
|
1393
|
+
"durable_objects",
|
|
1394
|
+
"images",
|
|
1395
|
+
"ai"
|
|
1396
|
+
];
|
|
1397
|
+
async function readHosting(cwd, projectId) {
|
|
1398
|
+
await assertInsideDirectory(cwd, join(cwd, HOSTING_PATH));
|
|
1399
|
+
if (!(await lstat(join(cwd, HOSTING_PATH))).isFile()) throw new Error("Sites hosting.json must be a regular file.");
|
|
1400
|
+
const config = hostingSchema.parse(JSON.parse(await readFile(join(cwd, HOSTING_PATH), "utf-8")));
|
|
1401
|
+
if (projectId && projectId !== config.project_id) throw new Error("--site does not match .openai/hosting.json. Reuse the existing Sites project ID.");
|
|
1402
|
+
return config;
|
|
1403
|
+
}
|
|
1404
|
+
async function assertRegularTree(path) {
|
|
1405
|
+
const stat = await lstat(path);
|
|
1406
|
+
if (stat.isDirectory()) for (const entry of await readdir(path)) await assertRegularTree(join(path, entry));
|
|
1407
|
+
else if (!stat.isFile()) throw new Error("Sites build output must not contain symlinks or special files.");
|
|
1408
|
+
}
|
|
1409
|
+
function hasBinding(value) {
|
|
1410
|
+
if (Array.isArray(value)) return value.length > 0;
|
|
1411
|
+
if (value && typeof value === "object") return Object.values(value).some(hasBinding);
|
|
1412
|
+
return value !== void 0 && value !== null && value !== false && value !== "";
|
|
1413
|
+
}
|
|
1414
|
+
const chatgptSitesTarget = {
|
|
1415
|
+
name: "chatgpt-sites",
|
|
1416
|
+
label: "ChatGPT Sites",
|
|
1417
|
+
description: "Prepare an Astro Worker archive for publishing through the Sites connector.",
|
|
1418
|
+
supportLevel: "experimental",
|
|
1419
|
+
async generateConfig(cwd, options) {
|
|
1420
|
+
if (await exists(join(cwd, HOSTING_PATH))) await readHosting(cwd, options.site);
|
|
1421
|
+
else if (!options.site && !options.dryRun) throw new Error("Register or select a Site with the Sites connector first, then pass its exact project ID with --site or save it in .openai/hosting.json.");
|
|
1422
|
+
const files = await generateWorkersConfig(cwd, options.dryRun);
|
|
1423
|
+
files.push(await writeNewFile(cwd, HOSTING_PATH, JSON.stringify({ project_id: options.site }, null, " ") + "\n", options.dryRun));
|
|
1424
|
+
return files;
|
|
1425
|
+
},
|
|
1426
|
+
async deploy(cwd, options) {
|
|
1427
|
+
if (options.dryRun) return { message: "[dry-run] Would prepare dist/server/index.js and dist/.openai/hosting.json for the Sites hosting skill. Publishing uses the Sites connector." };
|
|
1428
|
+
const hosting = await readHosting(cwd, options.site);
|
|
1429
|
+
if (await exists(join(cwd, "drizzle")) || await exists(join(cwd, "dist/.openai/drizzle"))) throw new Error("This Dineway Sites target does not support Drizzle/D1 migrations. Use external HTTP libSQL with Dineway's runtime migrations.");
|
|
1430
|
+
const build = await readWorkersBuild(cwd);
|
|
1431
|
+
const unsupported = BINDING_KEYS.filter((key) => hasBinding(build.config[key]));
|
|
1432
|
+
if (unsupported.length) throw new Error(`Sites cannot provision this Worker's Wrangler bindings: ${unsupported.join(", ")}. Use Dineway database sessions, libsqlHttp(), and S3 storage. Manage Sites bindings with the Sites connector.`);
|
|
1433
|
+
await assertRegularTree(build.serverDir);
|
|
1434
|
+
await assertRegularTree(build.assetsDir);
|
|
1435
|
+
await mkdir(join(cwd, ".dineway"), { recursive: true });
|
|
1436
|
+
await assertInsideDirectory(cwd, join(cwd, ".dineway"));
|
|
1437
|
+
const stage = await mkdtemp(join(cwd, ".dineway/sites-"));
|
|
1438
|
+
try {
|
|
1439
|
+
const dist = join(stage, "upload/dist");
|
|
1440
|
+
await mkdir(join(dist, ".openai"), { recursive: true });
|
|
1441
|
+
await cp(build.serverDir, join(dist, "server"), {
|
|
1442
|
+
recursive: true,
|
|
1443
|
+
filter: (path) => !NON_RUNTIME_ENTRIES.has(basename(path))
|
|
1444
|
+
});
|
|
1445
|
+
await cp(build.assetsDir, join(dist, "client"), { recursive: true });
|
|
1446
|
+
if (build.entrypoint !== join(build.serverDir, "index.js")) {
|
|
1447
|
+
const entry = "./" + relative(build.serverDir, build.entrypoint).split(sep).join("/");
|
|
1448
|
+
await writeFile(join(dist, "server/index.js"), `export { default } from ${JSON.stringify(entry)};\n`);
|
|
1449
|
+
}
|
|
1450
|
+
await writeFile(join(dist, ".openai/hosting.json"), JSON.stringify(hosting, null, " ") + "\n");
|
|
1451
|
+
const archivePath = join(cwd, ".dineway/sites-deploy.tar.gz");
|
|
1452
|
+
const preparedArchive = join(stage, "site.tar.gz");
|
|
1453
|
+
await pipeline(packTar(join(stage, "upload")), createGzip(), createWriteStream(preparedArchive, { mode: 384 }));
|
|
1454
|
+
await rename(preparedArchive, archivePath);
|
|
1455
|
+
return { message: `Sites archive prepared: ${archivePath}. Not published yet. Use the sites-hosting skill to push the matching source, save this version, and deploy through the Sites connector.` };
|
|
1456
|
+
} finally {
|
|
1457
|
+
await rm(stage, {
|
|
1458
|
+
recursive: true,
|
|
1459
|
+
force: true
|
|
1460
|
+
});
|
|
1461
|
+
}
|
|
1462
|
+
}
|
|
1463
|
+
};
|
|
1464
|
+
|
|
1465
|
+
//#endregion
|
|
1466
|
+
//#region src/cli/commands/deploy/utils/spawn.ts
|
|
1467
|
+
async function runCommand$1(command, args, options) {
|
|
1468
|
+
return new Promise((resolve, reject) => {
|
|
1469
|
+
const child = spawn(command, args, {
|
|
1470
|
+
cwd: options.cwd,
|
|
1471
|
+
env: {
|
|
1472
|
+
...process.env,
|
|
1473
|
+
...options.env
|
|
1474
|
+
},
|
|
1475
|
+
stdio: options.stdio === "inherit" ? "inherit" : [
|
|
1476
|
+
"ignore",
|
|
1477
|
+
"pipe",
|
|
1478
|
+
"pipe"
|
|
1479
|
+
],
|
|
1480
|
+
shell: false
|
|
1481
|
+
});
|
|
1482
|
+
let stdout = "";
|
|
1483
|
+
let stderr = "";
|
|
1484
|
+
if (options.stdio !== "inherit") {
|
|
1485
|
+
child.stdout?.on("data", (chunk) => {
|
|
1486
|
+
stdout += chunk.toString();
|
|
1487
|
+
});
|
|
1488
|
+
child.stderr?.on("data", (chunk) => {
|
|
1489
|
+
stderr += chunk.toString();
|
|
1490
|
+
});
|
|
1491
|
+
}
|
|
1492
|
+
child.on("error", reject);
|
|
1493
|
+
child.on("close", (code) => {
|
|
1494
|
+
resolve({
|
|
1495
|
+
code: code ?? 0,
|
|
1496
|
+
stdout,
|
|
1497
|
+
stderr
|
|
1498
|
+
});
|
|
1499
|
+
});
|
|
1500
|
+
});
|
|
1501
|
+
}
|
|
1502
|
+
async function runCommandOrThrow(command, args, options) {
|
|
1503
|
+
const result = await runCommand$1(command, args, options);
|
|
1504
|
+
if (result.code !== 0) {
|
|
1505
|
+
const detail = result.stderr.trim() || result.stdout.trim() || `exit code ${result.code}`;
|
|
1506
|
+
throw new Error(`${command} ${args.join(" ")} failed: ${detail}`);
|
|
1507
|
+
}
|
|
1508
|
+
return result;
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
//#endregion
|
|
1512
|
+
//#region src/cli/commands/deploy/utils/cli-resolver.ts
|
|
1513
|
+
async function confirm(message) {
|
|
1514
|
+
if (!process.stdin.isTTY) return false;
|
|
1515
|
+
const rl = createInterface({
|
|
1516
|
+
input: process.stdin,
|
|
1517
|
+
output: process.stdout
|
|
1518
|
+
});
|
|
1519
|
+
try {
|
|
1520
|
+
const answer = await rl.question(`${message} [y/N] `);
|
|
1521
|
+
return answer.trim().toLowerCase() === "y" || answer.trim().toLowerCase() === "yes";
|
|
1522
|
+
} finally {
|
|
1523
|
+
rl.close();
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
function resolveProviderCli(cwd, binary) {
|
|
1527
|
+
const local = join(cwd, "node_modules", ".bin", process.platform === "win32" ? `${binary}.cmd` : binary);
|
|
1528
|
+
return existsSync(local) ? local : binary;
|
|
1529
|
+
}
|
|
1530
|
+
async function ensureTargetCli(target, cwd, options = {}) {
|
|
1531
|
+
if (!target.cli) return;
|
|
1532
|
+
if ((await runCommand$1(resolveProviderCli(cwd, target.cli.versionCommand.command), target.cli.versionCommand.args, { cwd }).catch(() => ({
|
|
1533
|
+
code: 1,
|
|
1534
|
+
stdout: "",
|
|
1535
|
+
stderr: ""
|
|
1536
|
+
}))).code === 0) return;
|
|
1537
|
+
if (options.dryRun) {
|
|
1538
|
+
consola.info(`[dry-run] Would verify ${target.cli.binary} CLI with ${target.cli.versionCommand.command} ${target.cli.versionCommand.args.join(" ")}`);
|
|
1539
|
+
if (target.cli.npmPackage) consola.info(`[dry-run] Would offer to install ${target.cli.npmPackage}`);
|
|
1540
|
+
else consola.info(`[dry-run] ${target.cli.installHint ?? `Install ${target.cli.binary} before deploying.`}`);
|
|
1541
|
+
return;
|
|
1542
|
+
}
|
|
1543
|
+
if (!target.cli.npmPackage) throw new Error(`${target.label} CLI is required. ${target.cli.installHint ?? `Install ${target.cli.binary} and try again.`}`);
|
|
1544
|
+
if (options.yes) throw new Error(`Install ${target.cli.npmPackage} and run this command again. The --yes flag does not approve global CLI installation.`);
|
|
1545
|
+
if (!await confirm(`${target.label} CLI is not installed. Install ${target.cli.npmPackage} globally now?`)) throw new Error(`Install ${target.cli.npmPackage} and run this command again.`);
|
|
1546
|
+
await runCommandOrThrow("npm", [
|
|
1547
|
+
"install",
|
|
1548
|
+
"--global",
|
|
1549
|
+
target.cli.npmPackage
|
|
1550
|
+
], {
|
|
1551
|
+
cwd,
|
|
1552
|
+
stdio: "inherit"
|
|
1553
|
+
});
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
//#endregion
|
|
1557
|
+
//#region src/cli/commands/deploy/targets/cloudflare.ts
|
|
1558
|
+
const cloudflareTarget = {
|
|
1559
|
+
name: "cloudflare",
|
|
1560
|
+
label: "Cloudflare Workers",
|
|
1561
|
+
description: "Deploy an Astro Worker with Wrangler and remote libSQL/object storage.",
|
|
1562
|
+
supportLevel: "experimental",
|
|
1563
|
+
cli: {
|
|
1564
|
+
npmPackage: null,
|
|
1565
|
+
binary: "wrangler",
|
|
1566
|
+
versionCommand: {
|
|
1567
|
+
command: "wrangler",
|
|
1568
|
+
args: ["--version"]
|
|
1569
|
+
},
|
|
1570
|
+
installHint: "Install wrangler in this project (for example: pnpm add -D wrangler@^4.131.1)."
|
|
1571
|
+
},
|
|
1572
|
+
async checkAuth(cwd) {
|
|
1573
|
+
return (await runCommand$1(resolveProviderCli(cwd, "wrangler"), ["whoami", "--json"], { cwd })).code === 0;
|
|
1574
|
+
},
|
|
1575
|
+
async login(cwd) {
|
|
1576
|
+
if (!process.stdin.isTTY) throw new Error("Cloudflare authentication is required. Set CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID or run wrangler login interactively.");
|
|
1577
|
+
await runCommandOrThrow(resolveProviderCli(cwd, "wrangler"), ["login"], {
|
|
1578
|
+
cwd,
|
|
1579
|
+
stdio: "inherit"
|
|
1580
|
+
});
|
|
1581
|
+
},
|
|
1582
|
+
generateConfig(cwd, options) {
|
|
1583
|
+
return generateWorkersConfig(cwd, options.dryRun);
|
|
1584
|
+
},
|
|
1585
|
+
async deploy(cwd, options) {
|
|
1586
|
+
if (options.dryRun) return { message: `[dry-run] Would run wrangler deploy --config ${WORKERS_BUILD_CONFIG}.` };
|
|
1587
|
+
await readWorkersBuild(cwd);
|
|
1588
|
+
await runCommandOrThrow(resolveProviderCli(cwd, "wrangler"), [
|
|
1589
|
+
"deploy",
|
|
1590
|
+
"--config",
|
|
1591
|
+
WORKERS_BUILD_CONFIG
|
|
1592
|
+
], {
|
|
1593
|
+
cwd,
|
|
1594
|
+
env: options.env,
|
|
1595
|
+
stdio: "inherit"
|
|
1596
|
+
});
|
|
1597
|
+
return { message: "Cloudflare deployment complete. Wrangler printed the deployed URL above." };
|
|
1598
|
+
}
|
|
1599
|
+
};
|
|
1600
|
+
|
|
1253
1601
|
//#endregion
|
|
1254
1602
|
//#region src/cli/commands/deploy/utils/dockerfile.ts
|
|
1255
1603
|
const NODE_START_COMMAND = "node ./dist/server/entry.mjs";
|
|
@@ -1380,52 +1728,6 @@ const dockerTarget = {
|
|
|
1380
1728
|
}
|
|
1381
1729
|
};
|
|
1382
1730
|
|
|
1383
|
-
//#endregion
|
|
1384
|
-
//#region src/cli/commands/deploy/utils/spawn.ts
|
|
1385
|
-
async function runCommand$1(command, args, options) {
|
|
1386
|
-
return new Promise((resolve, reject) => {
|
|
1387
|
-
const child = spawn(command, args, {
|
|
1388
|
-
cwd: options.cwd,
|
|
1389
|
-
env: {
|
|
1390
|
-
...process.env,
|
|
1391
|
-
...options.env
|
|
1392
|
-
},
|
|
1393
|
-
stdio: options.stdio === "inherit" ? "inherit" : [
|
|
1394
|
-
"ignore",
|
|
1395
|
-
"pipe",
|
|
1396
|
-
"pipe"
|
|
1397
|
-
],
|
|
1398
|
-
shell: false
|
|
1399
|
-
});
|
|
1400
|
-
let stdout = "";
|
|
1401
|
-
let stderr = "";
|
|
1402
|
-
if (options.stdio !== "inherit") {
|
|
1403
|
-
child.stdout?.on("data", (chunk) => {
|
|
1404
|
-
stdout += chunk.toString();
|
|
1405
|
-
});
|
|
1406
|
-
child.stderr?.on("data", (chunk) => {
|
|
1407
|
-
stderr += chunk.toString();
|
|
1408
|
-
});
|
|
1409
|
-
}
|
|
1410
|
-
child.on("error", reject);
|
|
1411
|
-
child.on("close", (code) => {
|
|
1412
|
-
resolve({
|
|
1413
|
-
code: code ?? 0,
|
|
1414
|
-
stdout,
|
|
1415
|
-
stderr
|
|
1416
|
-
});
|
|
1417
|
-
});
|
|
1418
|
-
});
|
|
1419
|
-
}
|
|
1420
|
-
async function runCommandOrThrow(command, args, options) {
|
|
1421
|
-
const result = await runCommand$1(command, args, options);
|
|
1422
|
-
if (result.code !== 0) {
|
|
1423
|
-
const detail = result.stderr.trim() || result.stdout.trim() || `exit code ${result.code}`;
|
|
1424
|
-
throw new Error(`${command} ${args.join(" ")} failed: ${detail}`);
|
|
1425
|
-
}
|
|
1426
|
-
return result;
|
|
1427
|
-
}
|
|
1428
|
-
|
|
1429
1731
|
//#endregion
|
|
1430
1732
|
//#region src/cli/commands/deploy/targets/fly.ts
|
|
1431
1733
|
const FLY_URL_RE = /https:\/\/[^\s"]+\.fly\.dev[^\s"]*/;
|
|
@@ -3169,47 +3471,6 @@ const railwayTarget = {
|
|
|
3169
3471
|
}
|
|
3170
3472
|
};
|
|
3171
3473
|
|
|
3172
|
-
//#endregion
|
|
3173
|
-
//#region src/cli/commands/deploy/utils/cli-resolver.ts
|
|
3174
|
-
async function confirm(message) {
|
|
3175
|
-
if (!process.stdin.isTTY) return false;
|
|
3176
|
-
const rl = createInterface({
|
|
3177
|
-
input: process.stdin,
|
|
3178
|
-
output: process.stdout
|
|
3179
|
-
});
|
|
3180
|
-
try {
|
|
3181
|
-
const answer = await rl.question(`${message} [y/N] `);
|
|
3182
|
-
return answer.trim().toLowerCase() === "y" || answer.trim().toLowerCase() === "yes";
|
|
3183
|
-
} finally {
|
|
3184
|
-
rl.close();
|
|
3185
|
-
}
|
|
3186
|
-
}
|
|
3187
|
-
async function ensureTargetCli(target, cwd, options = {}) {
|
|
3188
|
-
if (!target.cli) return;
|
|
3189
|
-
if ((await runCommand$1(target.cli.versionCommand.command, target.cli.versionCommand.args, { cwd }).catch(() => ({
|
|
3190
|
-
code: 1,
|
|
3191
|
-
stdout: "",
|
|
3192
|
-
stderr: ""
|
|
3193
|
-
}))).code === 0) return;
|
|
3194
|
-
if (options.dryRun) {
|
|
3195
|
-
consola.info(`[dry-run] Would verify ${target.cli.binary} CLI with ${target.cli.versionCommand.command} ${target.cli.versionCommand.args.join(" ")}`);
|
|
3196
|
-
if (target.cli.npmPackage) consola.info(`[dry-run] Would offer to install ${target.cli.npmPackage}`);
|
|
3197
|
-
else consola.info(`[dry-run] ${target.cli.installHint ?? `Install ${target.cli.binary} before deploying.`}`);
|
|
3198
|
-
return;
|
|
3199
|
-
}
|
|
3200
|
-
if (!target.cli.npmPackage) throw new Error(`${target.label} CLI is required. ${target.cli.installHint ?? `Install ${target.cli.binary} and try again.`}`);
|
|
3201
|
-
if (options.yes) throw new Error(`Install ${target.cli.npmPackage} and run this command again. The --yes flag does not approve global CLI installation.`);
|
|
3202
|
-
if (!await confirm(`${target.label} CLI is not installed. Install ${target.cli.npmPackage} globally now?`)) throw new Error(`Install ${target.cli.npmPackage} and run this command again.`);
|
|
3203
|
-
await runCommandOrThrow("npm", [
|
|
3204
|
-
"install",
|
|
3205
|
-
"--global",
|
|
3206
|
-
target.cli.npmPackage
|
|
3207
|
-
], {
|
|
3208
|
-
cwd,
|
|
3209
|
-
stdio: "inherit"
|
|
3210
|
-
});
|
|
3211
|
-
}
|
|
3212
|
-
|
|
3213
3474
|
//#endregion
|
|
3214
3475
|
//#region src/cli/commands/deploy/index.ts
|
|
3215
3476
|
const targets = [
|
|
@@ -3217,7 +3478,9 @@ const targets = [
|
|
|
3217
3478
|
railwayTarget,
|
|
3218
3479
|
dockerTarget,
|
|
3219
3480
|
flyTarget,
|
|
3220
|
-
gcpTarget
|
|
3481
|
+
gcpTarget,
|
|
3482
|
+
cloudflareTarget,
|
|
3483
|
+
chatgptSitesTarget
|
|
3221
3484
|
];
|
|
3222
3485
|
const DEFAULT_TARGET = "forgeway";
|
|
3223
3486
|
function getTarget(name) {
|
|
@@ -3267,7 +3530,7 @@ async function resolveTarget(cwd, explicitTarget) {
|
|
|
3267
3530
|
const deployCommand = defineCommand({
|
|
3268
3531
|
meta: {
|
|
3269
3532
|
name: "deploy",
|
|
3270
|
-
description: "Deploy a Dineway
|
|
3533
|
+
description: "Deploy a Dineway site to a hosting provider"
|
|
3271
3534
|
},
|
|
3272
3535
|
args: {
|
|
3273
3536
|
target: {
|
|
@@ -3303,7 +3566,7 @@ const deployCommand = defineCommand({
|
|
|
3303
3566
|
},
|
|
3304
3567
|
site: {
|
|
3305
3568
|
type: "string",
|
|
3306
|
-
description: "Forgeway
|
|
3569
|
+
description: "Forgeway site ID/slug or exact ChatGPT Sites project ID",
|
|
3307
3570
|
required: false
|
|
3308
3571
|
},
|
|
3309
3572
|
"place-id": {
|
|
@@ -3397,10 +3660,8 @@ const deployCommand = defineCommand({
|
|
|
3397
3660
|
const build = options.dryRun ? null : await runBuild(cwd, options.env);
|
|
3398
3661
|
consola.info(options.dryRun ? "[dry-run] Would run build" : `Built with ${build?.display}`);
|
|
3399
3662
|
}
|
|
3400
|
-
if (!options.dryRun)
|
|
3401
|
-
|
|
3402
|
-
await writeDeployTarget(cwd, target.name);
|
|
3403
|
-
} else {
|
|
3663
|
+
if (!options.dryRun) await ensureProjectGitignoreDinewayLocalState(cwd);
|
|
3664
|
+
else {
|
|
3404
3665
|
consola.info("[dry-run] Would ensure Dineway local state entries in .gitignore");
|
|
3405
3666
|
consola.info(`[dry-run] Would save .dineway/deploy.json target=${target.name}`);
|
|
3406
3667
|
}
|
|
@@ -3419,6 +3680,7 @@ const deployCommand = defineCommand({
|
|
|
3419
3680
|
})) process.exit(2);
|
|
3420
3681
|
throw error;
|
|
3421
3682
|
});
|
|
3683
|
+
if (!options.dryRun) await writeDeployTarget(cwd, target.name);
|
|
3422
3684
|
if (result.url) consola.success(result.url);
|
|
3423
3685
|
consola.success(result.message);
|
|
3424
3686
|
}
|
|
@@ -3546,7 +3808,7 @@ const devCommand = defineCommand({
|
|
|
3546
3808
|
const remoteUrl = pkg.dineway?.url || process.env.DINEWAY_URL;
|
|
3547
3809
|
if (!remoteUrl) consola.warn("No remote URL configured. Set DINEWAY_URL or dineway.url in package.json");
|
|
3548
3810
|
else try {
|
|
3549
|
-
const { createClientFromArgs } = await import("../client-factory-
|
|
3811
|
+
const { createClientFromArgs } = await import("../client-factory-DXfeovxp.mjs").then((n) => n.t);
|
|
3550
3812
|
const client = createClientFromArgs({ url: remoteUrl });
|
|
3551
3813
|
const schema = await client.schemaExport();
|
|
3552
3814
|
const types = await client.schemaTypes();
|
|
@@ -5542,7 +5804,7 @@ const publishCommand = defineCommand({
|
|
|
5542
5804
|
const pluginDir = resolve(args.dir);
|
|
5543
5805
|
try {
|
|
5544
5806
|
const { runCommand } = await import("citty");
|
|
5545
|
-
const { bundleCommand } = await import("../bundle-
|
|
5807
|
+
const { bundleCommand } = await import("../bundle-DicQY2p2.mjs").then((n) => n.n);
|
|
5546
5808
|
await runCommand(bundleCommand, { rawArgs: ["--dir", pluginDir] });
|
|
5547
5809
|
} catch {
|
|
5548
5810
|
consola.error("Build failed");
|
|
@@ -7855,7 +8117,7 @@ function isFileNotFound(error) {
|
|
|
7855
8117
|
* - search: Full-text search
|
|
7856
8118
|
* - taxonomy: Manage taxonomies and terms
|
|
7857
8119
|
* - menu: Manage navigation menus
|
|
7858
|
-
* - deploy: Deploy a
|
|
8120
|
+
* - deploy: Deploy a Dineway site to a hosting provider
|
|
7859
8121
|
* - plugin: Plugin management (init, bundle, validate, publish, login, logout)
|
|
7860
8122
|
*/
|
|
7861
8123
|
const builtInCommands = {
|