emdash 0.0.0-b → 0.0.2
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/README.md +87 -43
- package/dist/adapters-BLMa4JGD.d.mts +106 -0
- package/dist/adapters-BLMa4JGD.d.mts.map +1 -0
- package/dist/apply-Bjfq_b4-.mjs +1293 -0
- package/dist/apply-Bjfq_b4-.mjs.map +1 -0
- package/dist/astro/index.d.mts +51 -0
- package/dist/astro/index.d.mts.map +1 -0
- package/dist/astro/index.mjs +1336 -0
- package/dist/astro/index.mjs.map +1 -0
- package/dist/astro/middleware/auth.d.mts +31 -0
- package/dist/astro/middleware/auth.d.mts.map +1 -0
- package/dist/astro/middleware/auth.mjs +654 -0
- package/dist/astro/middleware/auth.mjs.map +1 -0
- package/dist/astro/middleware/redirect.d.mts +22 -0
- package/dist/astro/middleware/redirect.d.mts.map +1 -0
- package/dist/astro/middleware/redirect.mjs +63 -0
- package/dist/astro/middleware/redirect.mjs.map +1 -0
- package/dist/astro/middleware/request-context.d.mts +18 -0
- package/dist/astro/middleware/request-context.d.mts.map +1 -0
- package/dist/astro/middleware/request-context.mjs +1310 -0
- package/dist/astro/middleware/request-context.mjs.map +1 -0
- package/dist/astro/middleware/setup.d.mts +20 -0
- package/dist/astro/middleware/setup.d.mts.map +1 -0
- package/dist/astro/middleware/setup.mjs +47 -0
- package/dist/astro/middleware/setup.mjs.map +1 -0
- package/dist/astro/middleware.d.mts +13 -0
- package/dist/astro/middleware.d.mts.map +1 -0
- package/dist/astro/middleware.mjs +1613 -0
- package/dist/astro/middleware.mjs.map +1 -0
- package/dist/astro/types.d.mts +250 -0
- package/dist/astro/types.d.mts.map +1 -0
- package/dist/astro/types.mjs +1 -0
- package/dist/base64-MBPo9ozB.mjs +59 -0
- package/dist/base64-MBPo9ozB.mjs.map +1 -0
- package/dist/byline-CL847F26.mjs +213 -0
- package/dist/byline-CL847F26.mjs.map +1 -0
- package/dist/bylines-C2a-2TGt.mjs +136 -0
- package/dist/bylines-C2a-2TGt.mjs.map +1 -0
- package/dist/chunk-ClPoSABd.mjs +21 -0
- package/dist/cli/index.d.mts +1 -0
- package/dist/cli/index.mjs +3909 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/client/cf-access.d.mts +60 -0
- package/dist/client/cf-access.d.mts.map +1 -0
- package/dist/client/cf-access.mjs +179 -0
- package/dist/client/cf-access.mjs.map +1 -0
- package/dist/client/index.d.mts +398 -0
- package/dist/client/index.d.mts.map +1 -0
- package/dist/client/index.mjs +346 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/config-CKE8p9xM.mjs +55 -0
- package/dist/config-CKE8p9xM.mjs.map +1 -0
- package/dist/connection-B4zVnQIa.mjs +40 -0
- package/dist/connection-B4zVnQIa.mjs.map +1 -0
- package/dist/content-D6C2WsZC.mjs +824 -0
- package/dist/content-D6C2WsZC.mjs.map +1 -0
- package/dist/db/index.d.mts +4 -0
- package/dist/db/index.mjs +62 -0
- package/dist/db/index.mjs.map +1 -0
- package/dist/db/libsql.d.mts +11 -0
- package/dist/db/libsql.d.mts.map +1 -0
- package/dist/db/libsql.mjs +17 -0
- package/dist/db/libsql.mjs.map +1 -0
- package/dist/db/postgres.d.mts +11 -0
- package/dist/db/postgres.d.mts.map +1 -0
- package/dist/db/postgres.mjs +30 -0
- package/dist/db/postgres.mjs.map +1 -0
- package/dist/db/sqlite.d.mts +11 -0
- package/dist/db/sqlite.d.mts.map +1 -0
- package/dist/db/sqlite.mjs +16 -0
- package/dist/db/sqlite.mjs.map +1 -0
- package/dist/default-Cyi4aAxu.mjs +81 -0
- package/dist/default-Cyi4aAxu.mjs.map +1 -0
- package/dist/dialect-helpers-B9uSp2GJ.mjs +90 -0
- package/dist/dialect-helpers-B9uSp2GJ.mjs.map +1 -0
- package/dist/error-Cxz0tQeO.mjs +27 -0
- package/dist/error-Cxz0tQeO.mjs.map +1 -0
- package/dist/index-C1xF3OGh.d.mts +4527 -0
- package/dist/index-C1xF3OGh.d.mts.map +1 -0
- package/dist/index.d.mts +16 -0
- package/dist/index.mjs +30 -0
- package/dist/load-yOOlckBj.mjs +28 -0
- package/dist/load-yOOlckBj.mjs.map +1 -0
- package/dist/loader-fz8Q_3EO.mjs +447 -0
- package/dist/loader-fz8Q_3EO.mjs.map +1 -0
- package/dist/manifest-schema-Dcl0R6nM.mjs +184 -0
- package/dist/manifest-schema-Dcl0R6nM.mjs.map +1 -0
- package/dist/media/index.d.mts +26 -0
- package/dist/media/index.d.mts.map +1 -0
- package/dist/media/index.mjs +55 -0
- package/dist/media/index.mjs.map +1 -0
- package/dist/media/local-runtime.d.mts +39 -0
- package/dist/media/local-runtime.d.mts.map +1 -0
- package/dist/media/local-runtime.mjs +133 -0
- package/dist/media/local-runtime.mjs.map +1 -0
- package/dist/media-DqHVh136.mjs +200 -0
- package/dist/media-DqHVh136.mjs.map +1 -0
- package/dist/mode-C2EzN1uE.mjs +23 -0
- package/dist/mode-C2EzN1uE.mjs.map +1 -0
- package/dist/page/index.d.mts +140 -0
- package/dist/page/index.d.mts.map +1 -0
- package/dist/page/index.mjs +416 -0
- package/dist/page/index.mjs.map +1 -0
- package/dist/placeholder-CmGAmqeO.d.mts +276 -0
- package/dist/placeholder-CmGAmqeO.d.mts.map +1 -0
- package/dist/placeholder-SmpOx-_v.mjs +243 -0
- package/dist/placeholder-SmpOx-_v.mjs.map +1 -0
- package/dist/plugin-utils.d.mts +58 -0
- package/dist/plugin-utils.d.mts.map +1 -0
- package/dist/plugin-utils.mjs +78 -0
- package/dist/plugin-utils.mjs.map +1 -0
- package/dist/plugins/adapt-sandbox-entry.d.mts +22 -0
- package/dist/plugins/adapt-sandbox-entry.d.mts.map +1 -0
- package/dist/plugins/adapt-sandbox-entry.mjs +113 -0
- package/dist/plugins/adapt-sandbox-entry.mjs.map +1 -0
- package/dist/query-CS_iSj34.mjs +460 -0
- package/dist/query-CS_iSj34.mjs.map +1 -0
- package/dist/redirect-DIfIni3r.mjs +329 -0
- package/dist/redirect-DIfIni3r.mjs.map +1 -0
- package/dist/registry-D_w5HW4G.mjs +863 -0
- package/dist/registry-D_w5HW4G.mjs.map +1 -0
- package/dist/request-context.d.mts +49 -0
- package/dist/request-context.d.mts.map +1 -0
- package/dist/request-context.mjs +43 -0
- package/dist/request-context.mjs.map +1 -0
- package/dist/runner-C0hCbYnD.mjs +1412 -0
- package/dist/runner-C0hCbYnD.mjs.map +1 -0
- package/dist/runner-EAtf0ZIe.d.mts +27 -0
- package/dist/runner-EAtf0ZIe.d.mts.map +1 -0
- package/dist/runtime.d.mts +26 -0
- package/dist/runtime.d.mts.map +1 -0
- package/dist/runtime.mjs +42 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/search-DG603UrT.mjs +9211 -0
- package/dist/search-DG603UrT.mjs.map +1 -0
- package/dist/seed/index.d.mts +3 -0
- package/dist/seed/index.mjs +15 -0
- package/dist/seo/index.d.mts +70 -0
- package/dist/seo/index.d.mts.map +1 -0
- package/dist/seo/index.mjs +70 -0
- package/dist/seo/index.mjs.map +1 -0
- package/dist/storage/local.d.mts +39 -0
- package/dist/storage/local.d.mts.map +1 -0
- package/dist/storage/local.mjs +166 -0
- package/dist/storage/local.mjs.map +1 -0
- package/dist/storage/s3.d.mts +32 -0
- package/dist/storage/s3.d.mts.map +1 -0
- package/dist/storage/s3.mjs +175 -0
- package/dist/storage/s3.mjs.map +1 -0
- package/dist/tokens-DpgrkrXK.mjs +171 -0
- package/dist/tokens-DpgrkrXK.mjs.map +1 -0
- package/dist/transport-BFGblqwG.d.mts +42 -0
- package/dist/transport-BFGblqwG.d.mts.map +1 -0
- package/dist/transport-yxiQsi8I.mjs +418 -0
- package/dist/transport-yxiQsi8I.mjs.map +1 -0
- package/dist/types-BRuPJGdV.d.mts +102 -0
- package/dist/types-BRuPJGdV.d.mts.map +1 -0
- package/dist/types-C4-fAxN3.d.mts +182 -0
- package/dist/types-C4-fAxN3.d.mts.map +1 -0
- package/dist/types-CMMN0pNg.mjs +31 -0
- package/dist/types-CMMN0pNg.mjs.map +1 -0
- package/dist/types-CUBbjgmP.mjs +16 -0
- package/dist/types-CUBbjgmP.mjs.map +1 -0
- package/dist/types-DRjfYOEv.d.mts +426 -0
- package/dist/types-DRjfYOEv.d.mts.map +1 -0
- package/dist/types-DY5zk5HN.mjs +73 -0
- package/dist/types-DY5zk5HN.mjs.map +1 -0
- package/dist/types-DaNLHo_T.d.mts +184 -0
- package/dist/types-DaNLHo_T.d.mts.map +1 -0
- package/dist/types-DvhsUmSJ.d.mts +1111 -0
- package/dist/types-DvhsUmSJ.d.mts.map +1 -0
- package/dist/validate-CpBtVMsD.d.mts +378 -0
- package/dist/validate-CpBtVMsD.d.mts.map +1 -0
- package/dist/validate-CqRJb_xU.mjs +97 -0
- package/dist/validate-CqRJb_xU.mjs.map +1 -0
- package/dist/validate-O7PWmlnq.mjs +328 -0
- package/dist/validate-O7PWmlnq.mjs.map +1 -0
- package/locals.d.ts +46 -0
- package/package.json +233 -19
- package/src/api/authorize.ts +63 -0
- package/src/api/csrf.ts +48 -0
- package/src/api/error.ts +99 -0
- package/src/api/errors.ts +445 -0
- package/src/api/escape.ts +9 -0
- package/src/api/handlers/api-tokens.ts +240 -0
- package/src/api/handlers/comments.ts +314 -0
- package/src/api/handlers/content.ts +1315 -0
- package/src/api/handlers/dashboard.ts +205 -0
- package/src/api/handlers/device-flow.ts +684 -0
- package/src/api/handlers/index.ts +163 -0
- package/src/api/handlers/manifest.ts +158 -0
- package/src/api/handlers/marketplace.ts +930 -0
- package/src/api/handlers/media.ts +207 -0
- package/src/api/handlers/menus.ts +493 -0
- package/src/api/handlers/oauth-authorization.ts +429 -0
- package/src/api/handlers/oauth-clients.ts +349 -0
- package/src/api/handlers/oauth-user-lookup.ts +39 -0
- package/src/api/handlers/plugins.ts +254 -0
- package/src/api/handlers/redirects.ts +360 -0
- package/src/api/handlers/revision.ts +145 -0
- package/src/api/handlers/schema.ts +534 -0
- package/src/api/handlers/sections.ts +289 -0
- package/src/api/handlers/seo.ts +115 -0
- package/src/api/handlers/settings.ts +49 -0
- package/src/api/handlers/snapshot.ts +350 -0
- package/src/api/handlers/taxonomies.ts +523 -0
- package/src/api/index.ts +6 -0
- package/src/api/openapi/document.ts +2368 -0
- package/src/api/openapi/index.ts +1 -0
- package/src/api/parse.ts +139 -0
- package/src/api/redirect.ts +14 -0
- package/src/api/rev.ts +67 -0
- package/src/api/schemas/auth.ts +112 -0
- package/src/api/schemas/bylines.ts +85 -0
- package/src/api/schemas/comments.ts +117 -0
- package/src/api/schemas/common.ts +89 -0
- package/src/api/schemas/content.ts +191 -0
- package/src/api/schemas/import.ts +52 -0
- package/src/api/schemas/index.ts +17 -0
- package/src/api/schemas/media.ts +116 -0
- package/src/api/schemas/menus.ts +111 -0
- package/src/api/schemas/redirects.ts +155 -0
- package/src/api/schemas/schema.ts +203 -0
- package/src/api/schemas/search.ts +63 -0
- package/src/api/schemas/sections.ts +67 -0
- package/src/api/schemas/settings.ts +63 -0
- package/src/api/schemas/setup.ts +37 -0
- package/src/api/schemas/taxonomies.ts +113 -0
- package/src/api/schemas/users.ts +96 -0
- package/src/api/schemas/widgets.ts +80 -0
- package/src/api/site-url.ts +25 -0
- package/src/api/types.ts +82 -0
- package/src/astro/index.ts +27 -0
- package/src/astro/integration/index.ts +303 -0
- package/src/astro/integration/routes.ts +834 -0
- package/src/astro/integration/runtime.ts +338 -0
- package/src/astro/integration/virtual-modules.ts +469 -0
- package/src/astro/integration/vite-config.ts +335 -0
- package/src/astro/middleware/auth.ts +743 -0
- package/src/astro/middleware/redirect.ts +89 -0
- package/src/astro/middleware/request-context.ts +129 -0
- package/src/astro/middleware/setup.ts +89 -0
- package/src/astro/middleware.ts +398 -0
- package/src/astro/routes/PluginRegistry.tsx +15 -0
- package/src/astro/routes/admin.astro +81 -0
- package/src/astro/routes/api/admin/allowed-domains/[domain].ts +112 -0
- package/src/astro/routes/api/admin/allowed-domains/index.ts +108 -0
- package/src/astro/routes/api/admin/api-tokens/[id].ts +40 -0
- package/src/astro/routes/api/admin/api-tokens/index.ts +68 -0
- package/src/astro/routes/api/admin/bylines/[id]/index.ts +87 -0
- package/src/astro/routes/api/admin/bylines/index.ts +72 -0
- package/src/astro/routes/api/admin/comments/[id]/status.ts +116 -0
- package/src/astro/routes/api/admin/comments/[id].ts +64 -0
- package/src/astro/routes/api/admin/comments/bulk.ts +42 -0
- package/src/astro/routes/api/admin/comments/counts.ts +30 -0
- package/src/astro/routes/api/admin/comments/index.ts +46 -0
- package/src/astro/routes/api/admin/hooks/exclusive/[hookName].ts +91 -0
- package/src/astro/routes/api/admin/hooks/exclusive/index.ts +51 -0
- package/src/astro/routes/api/admin/oauth-clients/[id].ts +110 -0
- package/src/astro/routes/api/admin/oauth-clients/index.ts +71 -0
- package/src/astro/routes/api/admin/plugins/[id]/disable.ts +39 -0
- package/src/astro/routes/api/admin/plugins/[id]/enable.ts +39 -0
- package/src/astro/routes/api/admin/plugins/[id]/index.ts +38 -0
- package/src/astro/routes/api/admin/plugins/[id]/uninstall.ts +48 -0
- package/src/astro/routes/api/admin/plugins/[id]/update.ts +59 -0
- package/src/astro/routes/api/admin/plugins/index.ts +32 -0
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/icon.ts +61 -0
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/index.ts +33 -0
- package/src/astro/routes/api/admin/plugins/marketplace/[id]/install.ts +62 -0
- package/src/astro/routes/api/admin/plugins/marketplace/index.ts +38 -0
- package/src/astro/routes/api/admin/plugins/updates.ts +28 -0
- package/src/astro/routes/api/admin/themes/marketplace/[id]/index.ts +33 -0
- package/src/astro/routes/api/admin/themes/marketplace/[id]/thumbnail.ts +61 -0
- package/src/astro/routes/api/admin/themes/marketplace/index.ts +45 -0
- package/src/astro/routes/api/admin/users/[id]/disable.ts +69 -0
- package/src/astro/routes/api/admin/users/[id]/enable.ts +48 -0
- package/src/astro/routes/api/admin/users/[id]/index.ts +146 -0
- package/src/astro/routes/api/admin/users/[id]/send-recovery.ts +72 -0
- package/src/astro/routes/api/admin/users/index.ts +66 -0
- package/src/astro/routes/api/auth/dev-bypass.ts +139 -0
- package/src/astro/routes/api/auth/invite/accept.ts +52 -0
- package/src/astro/routes/api/auth/invite/complete.ts +84 -0
- package/src/astro/routes/api/auth/invite/index.ts +99 -0
- package/src/astro/routes/api/auth/logout.ts +40 -0
- package/src/astro/routes/api/auth/magic-link/send.ts +89 -0
- package/src/astro/routes/api/auth/magic-link/verify.ts +71 -0
- package/src/astro/routes/api/auth/me.ts +60 -0
- package/src/astro/routes/api/auth/oauth/[provider]/callback.ts +219 -0
- package/src/astro/routes/api/auth/oauth/[provider].ts +119 -0
- package/src/astro/routes/api/auth/passkey/[id].ts +124 -0
- package/src/astro/routes/api/auth/passkey/index.ts +54 -0
- package/src/astro/routes/api/auth/passkey/options.ts +82 -0
- package/src/astro/routes/api/auth/passkey/register/options.ts +86 -0
- package/src/astro/routes/api/auth/passkey/register/verify.ts +115 -0
- package/src/astro/routes/api/auth/passkey/verify.ts +66 -0
- package/src/astro/routes/api/auth/signup/complete.ts +85 -0
- package/src/astro/routes/api/auth/signup/request.ts +77 -0
- package/src/astro/routes/api/auth/signup/verify.ts +53 -0
- package/src/astro/routes/api/comments/[collection]/[contentId]/index.ts +312 -0
- package/src/astro/routes/api/content/[collection]/[id]/compare.ts +28 -0
- package/src/astro/routes/api/content/[collection]/[id]/discard-draft.ts +54 -0
- package/src/astro/routes/api/content/[collection]/[id]/duplicate.ts +61 -0
- package/src/astro/routes/api/content/[collection]/[id]/permanent.ts +33 -0
- package/src/astro/routes/api/content/[collection]/[id]/preview-url.ts +107 -0
- package/src/astro/routes/api/content/[collection]/[id]/publish.ts +56 -0
- package/src/astro/routes/api/content/[collection]/[id]/restore.ts +54 -0
- package/src/astro/routes/api/content/[collection]/[id]/revisions.ts +31 -0
- package/src/astro/routes/api/content/[collection]/[id]/schedule.ts +101 -0
- package/src/astro/routes/api/content/[collection]/[id]/terms/[taxonomy].ts +140 -0
- package/src/astro/routes/api/content/[collection]/[id]/translations.ts +30 -0
- package/src/astro/routes/api/content/[collection]/[id]/unpublish.ts +56 -0
- package/src/astro/routes/api/content/[collection]/[id].ts +137 -0
- package/src/astro/routes/api/content/[collection]/index.ts +59 -0
- package/src/astro/routes/api/content/[collection]/trash.ts +33 -0
- package/src/astro/routes/api/dashboard.ts +32 -0
- package/src/astro/routes/api/dev/emails.ts +36 -0
- package/src/astro/routes/api/import/probe.ts +47 -0
- package/src/astro/routes/api/import/wordpress/analyze.ts +510 -0
- package/src/astro/routes/api/import/wordpress/execute.ts +283 -0
- package/src/astro/routes/api/import/wordpress/media.ts +338 -0
- package/src/astro/routes/api/import/wordpress/prepare.ts +181 -0
- package/src/astro/routes/api/import/wordpress/rewrite-urls.ts +393 -0
- package/src/astro/routes/api/import/wordpress-plugin/analyze.ts +111 -0
- package/src/astro/routes/api/import/wordpress-plugin/callback.ts +58 -0
- package/src/astro/routes/api/import/wordpress-plugin/execute.ts +347 -0
- package/src/astro/routes/api/manifest.ts +62 -0
- package/src/astro/routes/api/mcp.ts +124 -0
- package/src/astro/routes/api/media/[id]/confirm.ts +93 -0
- package/src/astro/routes/api/media/[id].ts +145 -0
- package/src/astro/routes/api/media/file/[key].ts +79 -0
- package/src/astro/routes/api/media/providers/[providerId]/[itemId].ts +86 -0
- package/src/astro/routes/api/media/providers/[providerId]/index.ts +111 -0
- package/src/astro/routes/api/media/providers/index.ts +30 -0
- package/src/astro/routes/api/media/upload-url.ts +137 -0
- package/src/astro/routes/api/media.ts +190 -0
- package/src/astro/routes/api/menus/[name]/items.ts +87 -0
- package/src/astro/routes/api/menus/[name]/reorder.ts +33 -0
- package/src/astro/routes/api/menus/[name].ts +65 -0
- package/src/astro/routes/api/menus/index.ts +47 -0
- package/src/astro/routes/api/oauth/authorize.ts +412 -0
- package/src/astro/routes/api/oauth/device/authorize.ts +45 -0
- package/src/astro/routes/api/oauth/device/code.ts +51 -0
- package/src/astro/routes/api/oauth/device/token.ts +69 -0
- package/src/astro/routes/api/oauth/token/refresh.ts +38 -0
- package/src/astro/routes/api/oauth/token/revoke.ts +38 -0
- package/src/astro/routes/api/oauth/token.ts +184 -0
- package/src/astro/routes/api/openapi.json.ts +32 -0
- package/src/astro/routes/api/plugins/[pluginId]/[...path].ts +92 -0
- package/src/astro/routes/api/redirects/404s/index.ts +72 -0
- package/src/astro/routes/api/redirects/404s/summary.ts +33 -0
- package/src/astro/routes/api/redirects/[id].ts +84 -0
- package/src/astro/routes/api/redirects/index.ts +52 -0
- package/src/astro/routes/api/revisions/[revisionId]/index.ts +29 -0
- package/src/astro/routes/api/revisions/[revisionId]/restore.ts +58 -0
- package/src/astro/routes/api/schema/collections/[slug]/fields/[fieldSlug].ts +76 -0
- package/src/astro/routes/api/schema/collections/[slug]/fields/index.ts +52 -0
- package/src/astro/routes/api/schema/collections/[slug]/fields/reorder.ts +32 -0
- package/src/astro/routes/api/schema/collections/[slug]/index.ts +80 -0
- package/src/astro/routes/api/schema/collections/index.ts +47 -0
- package/src/astro/routes/api/schema/index.ts +109 -0
- package/src/astro/routes/api/schema/orphans/[slug].ts +36 -0
- package/src/astro/routes/api/schema/orphans/index.ts +26 -0
- package/src/astro/routes/api/search/enable.ts +64 -0
- package/src/astro/routes/api/search/index.ts +55 -0
- package/src/astro/routes/api/search/rebuild.ts +72 -0
- package/src/astro/routes/api/search/stats.ts +35 -0
- package/src/astro/routes/api/search/suggest.ts +53 -0
- package/src/astro/routes/api/sections/[slug].ts +84 -0
- package/src/astro/routes/api/sections/index.ts +52 -0
- package/src/astro/routes/api/settings/email.ts +150 -0
- package/src/astro/routes/api/settings.ts +67 -0
- package/src/astro/routes/api/setup/admin-verify.ts +100 -0
- package/src/astro/routes/api/setup/admin.ts +94 -0
- package/src/astro/routes/api/setup/dev-bypass.ts +199 -0
- package/src/astro/routes/api/setup/dev-reset.ts +40 -0
- package/src/astro/routes/api/setup/index.ts +126 -0
- package/src/astro/routes/api/setup/status.ts +122 -0
- package/src/astro/routes/api/snapshot.ts +75 -0
- package/src/astro/routes/api/taxonomies/[name]/terms/[slug].ts +95 -0
- package/src/astro/routes/api/taxonomies/[name]/terms/index.ts +69 -0
- package/src/astro/routes/api/taxonomies/index.ts +59 -0
- package/src/astro/routes/api/themes/preview.ts +77 -0
- package/src/astro/routes/api/typegen.ts +114 -0
- package/src/astro/routes/api/well-known/auth.ts +68 -0
- package/src/astro/routes/api/well-known/oauth-authorization-server.ts +44 -0
- package/src/astro/routes/api/well-known/oauth-protected-resource.ts +37 -0
- package/src/astro/routes/api/widget-areas/[name]/reorder.ts +68 -0
- package/src/astro/routes/api/widget-areas/[name]/widgets/[id].ts +127 -0
- package/src/astro/routes/api/widget-areas/[name]/widgets.ts +80 -0
- package/src/astro/routes/api/widget-areas/[name].ts +87 -0
- package/src/astro/routes/api/widget-areas/index.ts +99 -0
- package/src/astro/routes/api/widget-components.ts +22 -0
- package/src/astro/routes/robots.txt.ts +77 -0
- package/src/astro/routes/sitemap.xml.ts +97 -0
- package/src/astro/storage/adapters.ts +74 -0
- package/src/astro/storage/index.ts +19 -0
- package/src/astro/storage/types.ts +60 -0
- package/src/astro/types.ts +346 -0
- package/src/auth/api-tokens.ts +25 -0
- package/src/auth/challenge-store.ts +80 -0
- package/src/auth/mode.ts +96 -0
- package/src/auth/oauth-state-store.ts +96 -0
- package/src/auth/passkey-config.ts +27 -0
- package/src/auth/rate-limit.ts +158 -0
- package/src/auth/scopes.ts +33 -0
- package/src/auth/types.ts +104 -0
- package/src/aws-sdk.d.ts +100 -0
- package/src/bylines/index.ts +237 -0
- package/src/cleanup.ts +153 -0
- package/src/cli/client-factory.ts +100 -0
- package/src/cli/commands/auth.ts +46 -0
- package/src/cli/commands/bundle-utils.ts +247 -0
- package/src/cli/commands/bundle.ts +609 -0
- package/src/cli/commands/content.ts +442 -0
- package/src/cli/commands/dev.ts +191 -0
- package/src/cli/commands/doctor.ts +211 -0
- package/src/cli/commands/export-seed.ts +630 -0
- package/src/cli/commands/import/wordpress.ts +1056 -0
- package/src/cli/commands/init.ts +192 -0
- package/src/cli/commands/login.ts +547 -0
- package/src/cli/commands/media.ts +165 -0
- package/src/cli/commands/menu.ts +67 -0
- package/src/cli/commands/plugin-init.ts +291 -0
- package/src/cli/commands/plugin-validate.ts +31 -0
- package/src/cli/commands/plugin.ts +33 -0
- package/src/cli/commands/publish.ts +697 -0
- package/src/cli/commands/schema.ts +233 -0
- package/src/cli/commands/search-cmd.ts +54 -0
- package/src/cli/commands/seed.ts +286 -0
- package/src/cli/commands/taxonomy.ts +128 -0
- package/src/cli/commands/types.ts +68 -0
- package/src/cli/credentials.ts +236 -0
- package/src/cli/index.ts +70 -0
- package/src/cli/output.ts +75 -0
- package/src/cli/wxr/parser.ts +969 -0
- package/src/client/cf-access.ts +193 -0
- package/src/client/index.ts +854 -0
- package/src/client/portable-text.ts +413 -0
- package/src/client/transport.ts +200 -0
- package/src/comments/moderator.ts +46 -0
- package/src/comments/notifications.ts +144 -0
- package/src/comments/query.ts +105 -0
- package/src/comments/service.ts +213 -0
- package/src/components/Break.astro +45 -0
- package/src/components/Button.astro +71 -0
- package/src/components/Buttons.astro +49 -0
- package/src/components/Code.astro +59 -0
- package/src/components/Columns.astro +59 -0
- package/src/components/CommentForm.astro +315 -0
- package/src/components/Comments.astro +232 -0
- package/src/components/Cover.astro +128 -0
- package/src/components/EmDashBodyEnd.astro +32 -0
- package/src/components/EmDashBodyStart.astro +32 -0
- package/src/components/EmDashHead.astro +53 -0
- package/src/components/EmDashImage.astro +178 -0
- package/src/components/EmDashMedia.astro +167 -0
- package/src/components/Embed.astro +128 -0
- package/src/components/File.astro +122 -0
- package/src/components/Gallery.astro +93 -0
- package/src/components/HtmlBlock.astro +33 -0
- package/src/components/Image.astro +178 -0
- package/src/components/InlineEditor.astro +27 -0
- package/src/components/InlinePortableTextEditor.tsx +1905 -0
- package/src/components/LiveSearch.astro +614 -0
- package/src/components/PortableText.astro +51 -0
- package/src/components/Pullquote.astro +51 -0
- package/src/components/Table.astro +108 -0
- package/src/components/WidgetArea.astro +22 -0
- package/src/components/WidgetRenderer.astro +72 -0
- package/src/components/index.ts +116 -0
- package/src/components/marks/Link.astro +31 -0
- package/src/components/marks/StrikeThrough.astro +7 -0
- package/src/components/marks/Subscript.astro +7 -0
- package/src/components/marks/Superscript.astro +7 -0
- package/src/components/marks/Underline.astro +7 -0
- package/src/components/widgets/Archives.astro +65 -0
- package/src/components/widgets/Categories.astro +35 -0
- package/src/components/widgets/RecentPosts.astro +51 -0
- package/src/components/widgets/Search.astro +18 -0
- package/src/components/widgets/Tags.astro +38 -0
- package/src/content/converters/index.ts +9 -0
- package/src/content/converters/portable-text-to-prosemirror.ts +385 -0
- package/src/content/converters/prosemirror-to-portable-text.ts +413 -0
- package/src/content/converters/types.ts +120 -0
- package/src/content/index.ts +5 -0
- package/src/database/connection.ts +67 -0
- package/src/database/dialect-helpers.ts +138 -0
- package/src/database/index.ts +5 -0
- package/src/database/migrations/001_initial.ts +170 -0
- package/src/database/migrations/002_media_status.ts +26 -0
- package/src/database/migrations/003_schema_registry.ts +79 -0
- package/src/database/migrations/004_plugins.ts +62 -0
- package/src/database/migrations/005_menus.ts +67 -0
- package/src/database/migrations/006_taxonomy_defs.ts +51 -0
- package/src/database/migrations/007_widgets.ts +42 -0
- package/src/database/migrations/008_auth.ts +194 -0
- package/src/database/migrations/009_user_disabled.ts +27 -0
- package/src/database/migrations/011_sections.ts +65 -0
- package/src/database/migrations/012_search.ts +25 -0
- package/src/database/migrations/013_scheduled_publishing.ts +51 -0
- package/src/database/migrations/014_draft_revisions.ts +72 -0
- package/src/database/migrations/015_indexes.ts +82 -0
- package/src/database/migrations/016_api_tokens.ts +89 -0
- package/src/database/migrations/017_authorization_codes.ts +45 -0
- package/src/database/migrations/018_seo.ts +56 -0
- package/src/database/migrations/019_i18n.ts +618 -0
- package/src/database/migrations/020_collection_url_pattern.ts +23 -0
- package/src/database/migrations/021_remove_section_categories.ts +43 -0
- package/src/database/migrations/022_marketplace_plugin_state.ts +46 -0
- package/src/database/migrations/023_plugin_metadata.ts +33 -0
- package/src/database/migrations/024_media_placeholders.ts +32 -0
- package/src/database/migrations/025_oauth_clients.ts +28 -0
- package/src/database/migrations/026_cron_tasks.ts +49 -0
- package/src/database/migrations/027_comments.ts +87 -0
- package/src/database/migrations/028_drop_author_url.ts +9 -0
- package/src/database/migrations/029_redirects.ts +67 -0
- package/src/database/migrations/030_widen_scheduled_index.ts +48 -0
- package/src/database/migrations/031_bylines.ts +90 -0
- package/src/database/migrations/032_rate_limits.ts +39 -0
- package/src/database/migrations/runner.ts +170 -0
- package/src/database/repositories/audit.ts +294 -0
- package/src/database/repositories/byline.ts +387 -0
- package/src/database/repositories/comment.ts +458 -0
- package/src/database/repositories/content.ts +1144 -0
- package/src/database/repositories/index.ts +30 -0
- package/src/database/repositories/media.ts +347 -0
- package/src/database/repositories/options.ts +150 -0
- package/src/database/repositories/plugin-storage.ts +373 -0
- package/src/database/repositories/redirect.ts +480 -0
- package/src/database/repositories/revision.ts +200 -0
- package/src/database/repositories/seo.ts +176 -0
- package/src/database/repositories/taxonomy.ts +294 -0
- package/src/database/repositories/types.ts +132 -0
- package/src/database/repositories/user.ts +258 -0
- package/src/database/transaction.ts +54 -0
- package/src/database/types.ts +501 -0
- package/src/database/validate.ts +138 -0
- package/src/db/adapters.ts +125 -0
- package/src/db/index.ts +37 -0
- package/src/db/libsql.ts +23 -0
- package/src/db/postgres.ts +30 -0
- package/src/db/sqlite.ts +27 -0
- package/src/emdash-runtime.ts +2096 -0
- package/src/fields/boolean.ts +34 -0
- package/src/fields/datetime.ts +44 -0
- package/src/fields/file.ts +41 -0
- package/src/fields/image.ts +34 -0
- package/src/fields/index.ts +42 -0
- package/src/fields/integer.ts +50 -0
- package/src/fields/json.ts +37 -0
- package/src/fields/multiselect.ts +48 -0
- package/src/fields/number.ts +52 -0
- package/src/fields/portable-text.ts +33 -0
- package/src/fields/reference.ts +29 -0
- package/src/fields/richtext.ts +31 -0
- package/src/fields/select.ts +46 -0
- package/src/fields/slug.ts +38 -0
- package/src/fields/text.ts +55 -0
- package/src/fields/textarea.ts +52 -0
- package/src/fields/types.ts +64 -0
- package/src/i18n/config.ts +68 -0
- package/src/import/index.ts +90 -0
- package/src/import/menus.ts +436 -0
- package/src/import/registry.ts +111 -0
- package/src/import/sections.ts +103 -0
- package/src/import/settings.ts +281 -0
- package/src/import/sources/wordpress-plugin.ts +641 -0
- package/src/import/sources/wordpress-rest.ts +191 -0
- package/src/import/sources/wxr.ts +330 -0
- package/src/import/ssrf.ts +260 -0
- package/src/import/types.ts +418 -0
- package/src/import/utils.ts +412 -0
- package/src/index.ts +481 -0
- package/src/loader.ts +770 -0
- package/src/mcp/server.ts +1463 -0
- package/src/media/index.ts +32 -0
- package/src/media/local-runtime.ts +213 -0
- package/src/media/local.ts +46 -0
- package/src/media/normalize.ts +190 -0
- package/src/media/placeholder.ts +150 -0
- package/src/media/provider-loader.ts +78 -0
- package/src/media/types.ts +279 -0
- package/src/menus/index.ts +324 -0
- package/src/menus/types.ts +112 -0
- package/src/page/context.ts +93 -0
- package/src/page/fragments.ts +89 -0
- package/src/page/index.ts +58 -0
- package/src/page/jsonld.ts +94 -0
- package/src/page/metadata.ts +185 -0
- package/src/page/seo-contributions.ts +136 -0
- package/src/plugin-utils.ts +80 -0
- package/src/plugins/adapt-sandbox-entry.ts +207 -0
- package/src/plugins/context.ts +833 -0
- package/src/plugins/cron.ts +361 -0
- package/src/plugins/define-plugin.ts +259 -0
- package/src/plugins/email-console.ts +73 -0
- package/src/plugins/email.ts +209 -0
- package/src/plugins/hooks.ts +1273 -0
- package/src/plugins/index.ts +193 -0
- package/src/plugins/manager.ts +595 -0
- package/src/plugins/manifest-schema.ts +230 -0
- package/src/plugins/marketplace.ts +460 -0
- package/src/plugins/request-meta.ts +139 -0
- package/src/plugins/routes.ts +302 -0
- package/src/plugins/sandbox/index.ts +18 -0
- package/src/plugins/sandbox/noop.ts +76 -0
- package/src/plugins/sandbox/types.ts +173 -0
- package/src/plugins/scheduler/node.ts +122 -0
- package/src/plugins/scheduler/piggyback.ts +71 -0
- package/src/plugins/scheduler/types.ts +27 -0
- package/src/plugins/state.ts +208 -0
- package/src/plugins/storage-indexes.ts +326 -0
- package/src/plugins/storage-query.ts +240 -0
- package/src/plugins/types.ts +1284 -0
- package/src/preview/helpers.ts +27 -0
- package/src/preview/index.ts +40 -0
- package/src/preview/tokens.ts +279 -0
- package/src/preview/urls.ts +118 -0
- package/src/query.ts +674 -0
- package/src/redirects/patterns.ts +224 -0
- package/src/request-context.ts +67 -0
- package/src/runtime.ts +21 -0
- package/src/schema/index.ts +29 -0
- package/src/schema/query.ts +44 -0
- package/src/schema/registry.ts +965 -0
- package/src/schema/types.ts +276 -0
- package/src/schema/zod-generator.ts +413 -0
- package/src/search/fts-manager.ts +452 -0
- package/src/search/index.ts +26 -0
- package/src/search/query.ts +396 -0
- package/src/search/text-extraction.ts +162 -0
- package/src/search/types.ts +114 -0
- package/src/sections/index.ts +226 -0
- package/src/sections/types.ts +86 -0
- package/src/seed/apply.ts +1141 -0
- package/src/seed/default.ts +86 -0
- package/src/seed/index.ts +28 -0
- package/src/seed/load.ts +35 -0
- package/src/seed/types.ts +341 -0
- package/src/seed/validate.ts +642 -0
- package/src/seo/index.ts +179 -0
- package/src/settings/index.ts +203 -0
- package/src/settings/types.ts +58 -0
- package/src/storage/index.ts +28 -0
- package/src/storage/local.ts +249 -0
- package/src/storage/s3.ts +263 -0
- package/src/storage/types.ts +204 -0
- package/src/taxonomies/index.ts +309 -0
- package/src/taxonomies/types.ts +61 -0
- package/src/ui.ts +75 -0
- package/src/utils/base64.ts +73 -0
- package/src/utils/hash.ts +36 -0
- package/src/utils/sanitize.ts +20 -0
- package/src/utils/slugify.ts +29 -0
- package/src/utils/url.ts +48 -0
- package/src/virtual-modules.d.ts +111 -0
- package/src/visual-editing/editable.ts +108 -0
- package/src/visual-editing/toolbar.ts +1229 -0
- package/src/widgets/components.ts +105 -0
- package/src/widgets/index.ts +131 -0
- package/src/widgets/types.ts +81 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite Plugin Configuration
|
|
3
|
+
*
|
|
4
|
+
* Defines the Vite plugin that handles virtual modules and other
|
|
5
|
+
* Vite-specific configuration for EmDash.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { createRequire } from "node:module";
|
|
9
|
+
import { dirname, resolve } from "node:path";
|
|
10
|
+
import { fileURLToPath } from "node:url";
|
|
11
|
+
|
|
12
|
+
import type { AstroConfig } from "astro";
|
|
13
|
+
import type { Plugin } from "vite";
|
|
14
|
+
|
|
15
|
+
import type { EmDashConfig, PluginDescriptor } from "./runtime.js";
|
|
16
|
+
import {
|
|
17
|
+
VIRTUAL_CONFIG_ID,
|
|
18
|
+
RESOLVED_VIRTUAL_CONFIG_ID,
|
|
19
|
+
VIRTUAL_DIALECT_ID,
|
|
20
|
+
RESOLVED_VIRTUAL_DIALECT_ID,
|
|
21
|
+
VIRTUAL_STORAGE_ID,
|
|
22
|
+
RESOLVED_VIRTUAL_STORAGE_ID,
|
|
23
|
+
VIRTUAL_ADMIN_REGISTRY_ID,
|
|
24
|
+
RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID,
|
|
25
|
+
VIRTUAL_PLUGINS_ID,
|
|
26
|
+
RESOLVED_VIRTUAL_PLUGINS_ID,
|
|
27
|
+
VIRTUAL_SANDBOX_RUNNER_ID,
|
|
28
|
+
RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID,
|
|
29
|
+
VIRTUAL_SANDBOXED_PLUGINS_ID,
|
|
30
|
+
RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID,
|
|
31
|
+
VIRTUAL_AUTH_ID,
|
|
32
|
+
RESOLVED_VIRTUAL_AUTH_ID,
|
|
33
|
+
VIRTUAL_MEDIA_PROVIDERS_ID,
|
|
34
|
+
RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID,
|
|
35
|
+
VIRTUAL_BLOCK_COMPONENTS_ID,
|
|
36
|
+
RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID,
|
|
37
|
+
VIRTUAL_SEED_ID,
|
|
38
|
+
RESOLVED_VIRTUAL_SEED_ID,
|
|
39
|
+
generateSeedModule,
|
|
40
|
+
generateConfigModule,
|
|
41
|
+
generateDialectModule,
|
|
42
|
+
generateStorageModule,
|
|
43
|
+
generateAuthModule,
|
|
44
|
+
generatePluginsModule,
|
|
45
|
+
generateAdminRegistryModule,
|
|
46
|
+
generateSandboxRunnerModule,
|
|
47
|
+
generateSandboxedPluginsModule,
|
|
48
|
+
generateMediaProvidersModule,
|
|
49
|
+
generateBlockComponentsModule,
|
|
50
|
+
} from "./virtual-modules.js";
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Resolve path to the admin package dist directory.
|
|
54
|
+
* Used for Vite alias to ensure the package is found in pnpm's isolated node_modules.
|
|
55
|
+
*/
|
|
56
|
+
function resolveAdminDist(): string {
|
|
57
|
+
const require = createRequire(import.meta.url);
|
|
58
|
+
const adminPath = require.resolve("@emdash-cms/admin");
|
|
59
|
+
// Return the directory containing the built package (dist/)
|
|
60
|
+
return dirname(adminPath);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Resolve path to the admin package source directory.
|
|
65
|
+
* In dev mode, we alias @emdash-cms/admin to the source so Vite processes it
|
|
66
|
+
* directly — giving instant HMR instead of requiring a rebuild + restart.
|
|
67
|
+
*/
|
|
68
|
+
function resolveAdminSource(): string | undefined {
|
|
69
|
+
const require = createRequire(import.meta.url);
|
|
70
|
+
const adminPath = require.resolve("@emdash-cms/admin");
|
|
71
|
+
// dist/index.js -> go up to package root, then into src/
|
|
72
|
+
const packageRoot = resolve(dirname(adminPath), "..");
|
|
73
|
+
const srcEntry = resolve(packageRoot, "src", "index.ts");
|
|
74
|
+
|
|
75
|
+
// Only use source alias if the source directory actually exists
|
|
76
|
+
// (won't exist in published packages, only in the monorepo)
|
|
77
|
+
try {
|
|
78
|
+
// Use require.resolve mechanics — if the file exists, return the source dir
|
|
79
|
+
// eslint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- CJS require returns any
|
|
80
|
+
const fs = require("node:fs") as typeof import("node:fs");
|
|
81
|
+
if (fs.existsSync(srcEntry)) {
|
|
82
|
+
return resolve(packageRoot, "src");
|
|
83
|
+
}
|
|
84
|
+
} catch {
|
|
85
|
+
// Not in monorepo — fall back to dist
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface VitePluginOptions {
|
|
91
|
+
/** Serializable config (database, storage, auth descriptors) */
|
|
92
|
+
serializableConfig: Record<string, unknown>;
|
|
93
|
+
/** Resolved EmDash config */
|
|
94
|
+
resolvedConfig: EmDashConfig;
|
|
95
|
+
/** Plugin descriptors */
|
|
96
|
+
pluginDescriptors: PluginDescriptor[];
|
|
97
|
+
/** Astro config */
|
|
98
|
+
astroConfig: AstroConfig;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Creates the EmDash virtual modules Vite plugin.
|
|
103
|
+
*/
|
|
104
|
+
export function createVirtualModulesPlugin(options: VitePluginOptions): Plugin {
|
|
105
|
+
const { serializableConfig, resolvedConfig, pluginDescriptors, astroConfig } = options;
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
name: "emdash-virtual-modules",
|
|
109
|
+
resolveId(id: string) {
|
|
110
|
+
if (id === VIRTUAL_CONFIG_ID) {
|
|
111
|
+
return RESOLVED_VIRTUAL_CONFIG_ID;
|
|
112
|
+
}
|
|
113
|
+
if (id === VIRTUAL_DIALECT_ID) {
|
|
114
|
+
return RESOLVED_VIRTUAL_DIALECT_ID;
|
|
115
|
+
}
|
|
116
|
+
if (id === VIRTUAL_STORAGE_ID) {
|
|
117
|
+
return RESOLVED_VIRTUAL_STORAGE_ID;
|
|
118
|
+
}
|
|
119
|
+
if (id === VIRTUAL_ADMIN_REGISTRY_ID) {
|
|
120
|
+
return RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID;
|
|
121
|
+
}
|
|
122
|
+
if (id === VIRTUAL_PLUGINS_ID) {
|
|
123
|
+
return RESOLVED_VIRTUAL_PLUGINS_ID;
|
|
124
|
+
}
|
|
125
|
+
if (id === VIRTUAL_SANDBOX_RUNNER_ID) {
|
|
126
|
+
return RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID;
|
|
127
|
+
}
|
|
128
|
+
if (id === VIRTUAL_SANDBOXED_PLUGINS_ID) {
|
|
129
|
+
return RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID;
|
|
130
|
+
}
|
|
131
|
+
if (id === VIRTUAL_AUTH_ID) {
|
|
132
|
+
return RESOLVED_VIRTUAL_AUTH_ID;
|
|
133
|
+
}
|
|
134
|
+
if (id === VIRTUAL_MEDIA_PROVIDERS_ID) {
|
|
135
|
+
return RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID;
|
|
136
|
+
}
|
|
137
|
+
if (id === VIRTUAL_BLOCK_COMPONENTS_ID) {
|
|
138
|
+
return RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID;
|
|
139
|
+
}
|
|
140
|
+
if (id === VIRTUAL_SEED_ID) {
|
|
141
|
+
return RESOLVED_VIRTUAL_SEED_ID;
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
load(id: string) {
|
|
145
|
+
if (id === RESOLVED_VIRTUAL_CONFIG_ID) {
|
|
146
|
+
return generateConfigModule(serializableConfig);
|
|
147
|
+
}
|
|
148
|
+
// Generate a module that statically imports the configured dialect
|
|
149
|
+
// This allows Vite to properly resolve and bundle it
|
|
150
|
+
if (id === RESOLVED_VIRTUAL_DIALECT_ID) {
|
|
151
|
+
return generateDialectModule(
|
|
152
|
+
resolvedConfig.database?.entrypoint,
|
|
153
|
+
resolvedConfig.database?.type,
|
|
154
|
+
resolvedConfig.database?.config,
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
// Generate a module that statically imports the configured storage
|
|
158
|
+
if (id === RESOLVED_VIRTUAL_STORAGE_ID) {
|
|
159
|
+
return generateStorageModule(resolvedConfig.storage?.entrypoint);
|
|
160
|
+
}
|
|
161
|
+
// Generate plugins module that imports and instantiates all plugins
|
|
162
|
+
if (id === RESOLVED_VIRTUAL_PLUGINS_ID) {
|
|
163
|
+
return generatePluginsModule(pluginDescriptors);
|
|
164
|
+
}
|
|
165
|
+
// Generate admin registry module with plugin components
|
|
166
|
+
if (id === RESOLVED_VIRTUAL_ADMIN_REGISTRY_ID) {
|
|
167
|
+
// Include both trusted and sandboxed plugins
|
|
168
|
+
const allDescriptors = [...pluginDescriptors, ...(resolvedConfig.sandboxed ?? [])];
|
|
169
|
+
return generateAdminRegistryModule(allDescriptors);
|
|
170
|
+
}
|
|
171
|
+
// Generate sandbox runner module
|
|
172
|
+
if (id === RESOLVED_VIRTUAL_SANDBOX_RUNNER_ID) {
|
|
173
|
+
return generateSandboxRunnerModule(resolvedConfig.sandboxRunner);
|
|
174
|
+
}
|
|
175
|
+
// Generate sandboxed plugins config module
|
|
176
|
+
if (id === RESOLVED_VIRTUAL_SANDBOXED_PLUGINS_ID) {
|
|
177
|
+
// Pass project root for proper module resolution
|
|
178
|
+
const projectRoot = fileURLToPath(astroConfig.root);
|
|
179
|
+
return generateSandboxedPluginsModule(resolvedConfig.sandboxed ?? [], projectRoot);
|
|
180
|
+
}
|
|
181
|
+
// Generate auth module that statically imports the configured auth provider
|
|
182
|
+
if (id === RESOLVED_VIRTUAL_AUTH_ID) {
|
|
183
|
+
const authDescriptor = resolvedConfig.auth;
|
|
184
|
+
if (!authDescriptor || !("entrypoint" in authDescriptor)) {
|
|
185
|
+
return generateAuthModule(undefined);
|
|
186
|
+
}
|
|
187
|
+
return generateAuthModule(authDescriptor.entrypoint);
|
|
188
|
+
}
|
|
189
|
+
// Generate media providers module
|
|
190
|
+
if (id === RESOLVED_VIRTUAL_MEDIA_PROVIDERS_ID) {
|
|
191
|
+
return generateMediaProvidersModule(resolvedConfig.mediaProviders ?? []);
|
|
192
|
+
}
|
|
193
|
+
// Generate block components module (plugin rendering components for PortableText)
|
|
194
|
+
if (id === RESOLVED_VIRTUAL_BLOCK_COMPONENTS_ID) {
|
|
195
|
+
return generateBlockComponentsModule(pluginDescriptors);
|
|
196
|
+
}
|
|
197
|
+
// Generate seed module — embeds user seed or default at build time
|
|
198
|
+
if (id === RESOLVED_VIRTUAL_SEED_ID) {
|
|
199
|
+
const projectRoot = fileURLToPath(astroConfig.root);
|
|
200
|
+
return generateSeedModule(projectRoot);
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Modules that contain native Node.js addons or Node-only code.
|
|
208
|
+
* These must be external in SSR to avoid bundling failures on Node.
|
|
209
|
+
* On Cloudflare, the adapter handles its own externalization — setting
|
|
210
|
+
* ssr.external there conflicts with @cloudflare/vite-plugin's validation.
|
|
211
|
+
*/
|
|
212
|
+
const NODE_NATIVE_EXTERNALS = [
|
|
213
|
+
"better-sqlite3",
|
|
214
|
+
"bindings",
|
|
215
|
+
"file-uri-to-path",
|
|
216
|
+
"@libsql/kysely-libsql",
|
|
217
|
+
"pg",
|
|
218
|
+
];
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Detect whether the Cloudflare adapter is being used.
|
|
222
|
+
*/
|
|
223
|
+
function isCloudflareAdapter(astroConfig: AstroConfig): boolean {
|
|
224
|
+
return astroConfig.adapter?.name === "@astrojs/cloudflare";
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Creates the Vite config update for EmDash.
|
|
229
|
+
*/
|
|
230
|
+
export function createViteConfig(
|
|
231
|
+
options: VitePluginOptions,
|
|
232
|
+
command: "dev" | "build" | "preview" | "sync",
|
|
233
|
+
): NonNullable<AstroConfig["vite"]> {
|
|
234
|
+
const adminDistPath = resolveAdminDist();
|
|
235
|
+
const cloudflare = isCloudflareAdapter(options.astroConfig);
|
|
236
|
+
const isDev = command === "dev";
|
|
237
|
+
|
|
238
|
+
// In dev mode within the monorepo, alias JS imports to source for instant HMR.
|
|
239
|
+
// CSS always comes from dist/ (pre-compiled by @tailwindcss/cli) since Tailwind's
|
|
240
|
+
// Vite plugin has native deps that don't bundle well. Run `pnpm dev` in packages/admin
|
|
241
|
+
// alongside the demo server to get CSS watch-rebuilds too.
|
|
242
|
+
const adminSourcePath = isDev ? resolveAdminSource() : undefined;
|
|
243
|
+
const useSource = adminSourcePath !== undefined;
|
|
244
|
+
|
|
245
|
+
return {
|
|
246
|
+
resolve: {
|
|
247
|
+
dedupe: ["@emdash-cms/admin", "react", "react-dom"],
|
|
248
|
+
// Array form so more-specific entries are checked first.
|
|
249
|
+
// The styles.css alias must come before the package alias, otherwise
|
|
250
|
+
// Vite's prefix matching on "@emdash-cms/admin" would resolve
|
|
251
|
+
// "@emdash-cms/admin/styles.css" through the source directory.
|
|
252
|
+
alias: [
|
|
253
|
+
// CSS: always dist (pre-compiled by @tailwindcss/cli)
|
|
254
|
+
{ find: "@emdash-cms/admin/styles.css", replacement: resolve(adminDistPath, "styles.css") },
|
|
255
|
+
// JS: source in dev (HMR), dist in build
|
|
256
|
+
{ find: "@emdash-cms/admin", replacement: useSource ? adminSourcePath : adminDistPath },
|
|
257
|
+
],
|
|
258
|
+
},
|
|
259
|
+
// eslint-disable-next-line typescript-eslint(no-unsafe-type-assertion) -- Monorepo has both vite 6 (docs) and vite 7 (core). tsgo resolves correctly.
|
|
260
|
+
plugins: [createVirtualModulesPlugin(options)] as NonNullable<AstroConfig["vite"]>["plugins"],
|
|
261
|
+
// Handle native modules for SSR.
|
|
262
|
+
// On Node: external keeps native addons out of the SSR bundle.
|
|
263
|
+
// On Cloudflare: skip — the adapter handles externalization, and setting
|
|
264
|
+
// ssr.external conflicts with @cloudflare/vite-plugin's resolve.external validation.
|
|
265
|
+
ssr: cloudflare
|
|
266
|
+
? {
|
|
267
|
+
noExternal: ["emdash", "@emdash-cms/admin"],
|
|
268
|
+
// Pre-bundle EmDash's runtime deps for workerd. Without this,
|
|
269
|
+
// Vite discovers them one-by-one on first request, causing workerd
|
|
270
|
+
// to enter "worker cancelled" state on cold cache.
|
|
271
|
+
optimizeDeps: {
|
|
272
|
+
// Exclude EmDash virtual modules from esbuild's dependency
|
|
273
|
+
// scan. These are resolved by the Vite plugin at transform time,
|
|
274
|
+
// but esbuild encounters them when crawling emdash's dist files
|
|
275
|
+
// during pre-bundling and can't resolve them. Vite's exclude
|
|
276
|
+
// uses prefix matching (id.startsWith(m + "/")), so
|
|
277
|
+
// "virtual:emdash" matches all "virtual:emdash/*" imports.
|
|
278
|
+
exclude: ["virtual:emdash"],
|
|
279
|
+
include: [
|
|
280
|
+
// EmDash direct deps
|
|
281
|
+
"emdash > @portabletext/toolkit",
|
|
282
|
+
"emdash > @unpic/placeholder",
|
|
283
|
+
"emdash > blurhash",
|
|
284
|
+
"emdash > croner",
|
|
285
|
+
"emdash > image-size",
|
|
286
|
+
"emdash > jose",
|
|
287
|
+
"emdash > jpeg-js",
|
|
288
|
+
"emdash > kysely",
|
|
289
|
+
"emdash > mime/lite",
|
|
290
|
+
"emdash > modern-tar",
|
|
291
|
+
"emdash > sanitize-html",
|
|
292
|
+
"emdash > ulidx",
|
|
293
|
+
"emdash > upng-js",
|
|
294
|
+
"emdash > astro-portabletext",
|
|
295
|
+
"emdash > sax",
|
|
296
|
+
// Deeper transitive deps
|
|
297
|
+
"emdash > sanitize-html > parse5",
|
|
298
|
+
"emdash > @emdash-cms/gutenberg-to-portable-text > @wordpress/block-serialization-default-parser",
|
|
299
|
+
"emdash > @emdash-cms/auth > @oslojs/crypto/ecdsa",
|
|
300
|
+
"emdash > @emdash-cms/auth > @oslojs/crypto/sha2",
|
|
301
|
+
"emdash > @emdash-cms/auth > @oslojs/webauthn",
|
|
302
|
+
// React (commonly used, may be hoisted)
|
|
303
|
+
"react",
|
|
304
|
+
"react/jsx-dev-runtime",
|
|
305
|
+
"react/jsx-runtime",
|
|
306
|
+
"react-dom",
|
|
307
|
+
"react-dom/server",
|
|
308
|
+
// Top-level deps (use astro > path for pnpm compat)
|
|
309
|
+
"astro > zod/v4",
|
|
310
|
+
"astro > zod/v4/core",
|
|
311
|
+
"@emdash-cms/cloudflare > kysely-d1",
|
|
312
|
+
// Astro internal deps not covered by @astrojs/cloudflare adapter
|
|
313
|
+
"astro/virtual-modules/middleware.js",
|
|
314
|
+
"astro/virtual-modules/live-config",
|
|
315
|
+
"astro/content/runtime",
|
|
316
|
+
"astro/assets/utils/inferRemoteSize.js",
|
|
317
|
+
"astro/assets/fonts/runtime.js",
|
|
318
|
+
"@astrojs/cloudflare/image-service",
|
|
319
|
+
],
|
|
320
|
+
},
|
|
321
|
+
}
|
|
322
|
+
: {
|
|
323
|
+
external: NODE_NATIVE_EXTERNALS,
|
|
324
|
+
noExternal: ["emdash", "@emdash-cms/admin"],
|
|
325
|
+
},
|
|
326
|
+
optimizeDeps: {
|
|
327
|
+
// When using source, don't pre-bundle JS — let Vite transform on the fly for HMR.
|
|
328
|
+
// When using dist, pre-bundle to avoid re-optimization on first hydration.
|
|
329
|
+
include: useSource
|
|
330
|
+
? ["@astrojs/react/client.js"]
|
|
331
|
+
: ["@emdash-cms/admin", "@astrojs/react/client.js"],
|
|
332
|
+
exclude: cloudflare ? ["virtual:emdash"] : [...NODE_NATIVE_EXTERNALS, "virtual:emdash"],
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
}
|