dineway 0.1.49 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{activity-events-CwM7yxPW.mjs → activity-events-y6eT8UW6.mjs} +6 -38
- package/dist/actor-CrObAPV0.mjs +37 -0
- package/dist/after-BfniwgIf.mjs +9 -0
- package/dist/{allowed-origins-CyGnbgBd.mjs → allowed-origins-_oeyP6x-.mjs} +1 -1
- package/dist/api/route-utils.d.mts +10 -10
- package/dist/api/route-utils.mjs +16 -13
- package/dist/api/schemas/index.d.mts +2 -2
- package/dist/api/schemas/index.mjs +5 -4
- package/dist/{api-BMIxRIEN.mjs → api-ByrU2q-Z.mjs} +60 -36
- package/dist/{api-tokens-DtvdtIkm.mjs → api-tokens-CjVMQT-X.mjs} +6 -2
- package/dist/{apply-D_RlTYtC.mjs → apply-bZswmZPm.mjs} +117 -77
- package/dist/astro/image-endpoint.d.mts +7 -0
- package/dist/astro/image-endpoint.mjs +54 -0
- package/dist/astro/index.d.mts +35 -11
- package/dist/astro/index.mjs +157 -23
- package/dist/astro/integration/shims/use-sync-external-store-with-selector.js +71 -0
- package/dist/astro/integration/shims/use-sync-external-store.js +1 -0
- package/dist/astro/middleware/auth.d.mts +10 -10
- package/dist/astro/middleware/auth.mjs +42 -24
- package/dist/astro/middleware/redirect.mjs +13 -4
- package/dist/astro/middleware/request-context.mjs +8 -5
- package/dist/astro/middleware/seed.d.mts +1 -1
- package/dist/astro/middleware/seed.mjs +2 -2
- package/dist/astro/middleware/setup.mjs +1 -1
- package/dist/astro/middleware.mjs +333 -192
- package/dist/astro/routes/admin.astro +6 -1
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +7 -6
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +7 -6
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +6 -6
- package/dist/astro/routes/api/admin/briefing.mjs +21 -17
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +9 -8
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +9 -8
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +9 -8
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +17 -14
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +17 -14
- package/dist/astro/routes/api/admin/bylines/index.mjs +17 -14
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +14 -12
- package/dist/astro/routes/api/admin/comments/_id_.mjs +6 -5
- package/dist/astro/routes/api/admin/comments/bulk.mjs +11 -9
- package/dist/astro/routes/api/admin/comments/counts.mjs +6 -5
- package/dist/astro/routes/api/admin/comments/index.mjs +11 -9
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +26 -24
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +26 -24
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +31 -28
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +31 -28
- package/dist/astro/routes/api/admin/context/diff.mjs +30 -27
- package/dist/astro/routes/api/admin/context/index.mjs +31 -28
- package/dist/astro/routes/api/admin/context/stale.mjs +30 -27
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +26 -24
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +30 -27
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +30 -27
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +27 -25
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +6 -6
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +6 -6
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +55 -51
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +55 -51
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +47 -43
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +53 -49
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +52 -48
- package/dist/astro/routes/api/admin/plugins/index.mjs +47 -43
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +46 -42
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +52 -48
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +46 -42
- package/dist/astro/routes/api/admin/plugins/updates.mjs +46 -42
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +5 -5
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +31 -27
- package/dist/astro/routes/api/admin/review-requests/index.mjs +10 -9
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +46 -42
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +46 -42
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +3 -3
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +2 -2
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +8 -7
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +4 -4
- package/dist/astro/routes/api/admin/users/index.mjs +7 -6
- package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/accept.mjs +2 -2
- package/dist/astro/routes/api/auth/invite/complete.mjs +12 -11
- package/dist/astro/routes/api/auth/invite/index.mjs +9 -8
- package/dist/astro/routes/api/auth/invite/register-options.mjs +11 -10
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +11 -10
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +3 -3
- package/dist/astro/routes/api/auth/me.mjs +9 -8
- package/dist/astro/routes/api/auth/mode.mjs +1 -1
- package/dist/astro/routes/api/auth/oauth/_provider_/callback.mjs +3 -3
- package/dist/astro/routes/api/auth/oauth/_provider_.mjs +2 -2
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +6 -5
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +12 -11
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +10 -9
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +11 -10
- package/dist/astro/routes/api/auth/passkey/verify.mjs +11 -10
- package/dist/astro/routes/api/auth/setup-token/index.mjs +5 -5
- package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/signup/complete.mjs +12 -11
- package/dist/astro/routes/api/auth/signup/request.mjs +11 -10
- package/dist/astro/routes/api/auth/signup/verify.mjs +2 -2
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +15 -13
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.d.mts +8 -0
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +160 -0
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +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 +11 -10
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +10 -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 +10 -9
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +16 -14
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +5 -5
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +10 -9
- package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/index.mjs +10 -9
- package/dist/astro/routes/api/content/_collection_/trash.mjs +7 -6
- package/dist/astro/routes/api/dashboard.mjs +9 -8
- package/dist/astro/routes/api/dev/emails.mjs +2 -2
- package/dist/astro/routes/api/health.mjs +1 -1
- package/dist/astro/routes/api/import/probe.d.mts +3 -3
- package/dist/astro/routes/api/import/probe.mjs +22 -10
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +9 -6
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +19 -1
- package/dist/astro/routes/api/import/wordpress/execute.mjs +84 -37
- package/dist/astro/routes/api/import/wordpress/media.d.mts +13 -1
- package/dist/astro/routes/api/import/wordpress/media.mjs +19 -13
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +35 -32
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +18 -1
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +120 -100
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +24 -12
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +56 -2
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +283 -55
- package/dist/astro/routes/api/manifest.mjs +14 -5
- package/dist/astro/routes/api/mcp.mjs +265 -69
- package/dist/astro/routes/api/media/_id_/confirm.mjs +38 -10
- package/dist/astro/routes/api/media/_id_.mjs +11 -7
- package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
- package/dist/astro/routes/api/media/providers/index.mjs +2 -2
- package/dist/astro/routes/api/media/upload-url.mjs +11 -10
- package/dist/astro/routes/api/media.mjs +27 -34
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +31 -28
- package/dist/astro/routes/api/menus/_name_/items.mjs +31 -28
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +31 -28
- package/dist/astro/routes/api/menus/_name_/translations.mjs +31 -28
- package/dist/astro/routes/api/menus/_name_.mjs +31 -28
- package/dist/astro/routes/api/menus/index.mjs +31 -28
- package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/authorize.mjs +6 -6
- package/dist/astro/routes/api/oauth/device/code.mjs +9 -9
- package/dist/astro/routes/api/oauth/device/token.mjs +8 -8
- package/dist/astro/routes/api/oauth/register.mjs +4 -4
- package/dist/astro/routes/api/oauth/token/refresh.mjs +6 -6
- package/dist/astro/routes/api/oauth/token/revoke.mjs +6 -6
- package/dist/astro/routes/api/oauth/token.mjs +6 -6
- package/dist/astro/routes/api/openapi.json.mjs +4 -3
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +30 -30
- package/dist/astro/routes/api/redirects/404s/index.mjs +11 -10
- package/dist/astro/routes/api/redirects/404s/summary.mjs +11 -10
- package/dist/astro/routes/api/redirects/_id_.mjs +32 -29
- package/dist/astro/routes/api/redirects/index.mjs +32 -29
- package/dist/astro/routes/api/revisions/_revisionId_/index.mjs +2 -2
- package/dist/astro/routes/api/revisions/_revisionId_/restore.mjs +2 -2
- package/dist/astro/routes/api/schema/collections/_slug_/fields/_fieldSlug_.mjs +47 -43
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +47 -43
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +47 -43
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +47 -43
- package/dist/astro/routes/api/schema/collections/index.mjs +47 -43
- package/dist/astro/routes/api/schema/index.mjs +13 -14
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +46 -42
- package/dist/astro/routes/api/schema/orphans/index.mjs +46 -42
- package/dist/astro/routes/api/search/enable.mjs +11 -10
- package/dist/astro/routes/api/search/index.mjs +10 -9
- package/dist/astro/routes/api/search/rebuild.mjs +11 -10
- package/dist/astro/routes/api/search/stats.mjs +6 -6
- package/dist/astro/routes/api/search/suggest.mjs +10 -9
- package/dist/astro/routes/api/sections/_slug_.mjs +31 -28
- package/dist/astro/routes/api/sections/index.mjs +31 -28
- package/dist/astro/routes/api/settings/email.mjs +4 -4
- package/dist/astro/routes/api/settings.mjs +31 -28
- package/dist/astro/routes/api/setup/admin-verify.mjs +14 -13
- package/dist/astro/routes/api/setup/admin.mjs +12 -11
- package/dist/astro/routes/api/setup/dev-bypass.mjs +31 -25
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +29 -25
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +8 -7
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +34 -31
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +34 -31
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +34 -31
- package/dist/astro/routes/api/taxonomies/index.mjs +34 -31
- package/dist/astro/routes/api/themes/preview.mjs +5 -5
- package/dist/astro/routes/api/typegen.mjs +4 -4
- package/dist/astro/routes/api/well-known/auth.mjs +3 -3
- package/dist/astro/routes/api/well-known/oauth-authorization-server.mjs +3 -3
- package/dist/astro/routes/api/well-known/oauth-protected-resource.mjs +3 -3
- package/dist/astro/routes/api/widget-areas/_name_/reorder.mjs +30 -27
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +31 -28
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +31 -28
- package/dist/astro/routes/api/widget-areas/_name_.mjs +28 -26
- package/dist/astro/routes/api/widget-areas/index.mjs +31 -28
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +8 -7
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +23 -14
- package/dist/astro/routes/sitemap.xml.mjs +9 -8
- package/dist/astro/session-driver.d.mts +1 -1
- package/dist/astro/session-driver.mjs +2 -2
- package/dist/astro/types.d.mts +21 -13
- package/dist/{audit-BeNsSyfU.mjs → audit-ByVKIwWF.mjs} +1 -1
- package/dist/auth/providers/github.d.mts +1 -1
- package/dist/auth/providers/google.d.mts +1 -1
- package/dist/{auth-control-guard-Dr14I98m.mjs → auth-control-guard-CqeUmQsv.mjs} +1 -1
- package/dist/{authorize-BLO0m7fW.mjs → authorize-CcBxcHtz.mjs} +1 -1
- package/dist/{briefing-DJX6irto.mjs → briefing-BJaJI8dm.mjs} +2 -1
- package/dist/{briefing-CkTee1ex.mjs → briefing-CawZ59CY.mjs} +90 -28
- package/dist/bundle-7C_DpkEq.mjs +602 -0
- package/dist/{byline-BVC1lV6G.mjs → byline-e51-fWRs.mjs} +30 -62
- package/dist/{byline-fields-uJlygdzM.d.mts → byline-fields-CUvbslGc.d.mts} +80 -37
- package/dist/{byline-fields-Cj39WhXC.mjs → byline-fields-D-N5qVIG.mjs} +1 -1
- package/dist/{byline-fields-cNrLJVRs.mjs → byline-fields-DOJO16Gm.mjs} +3 -3
- package/dist/{byline-registry-4v6tXMNX.mjs → byline-registry-87nNnYl4.mjs} +2 -2
- package/dist/{bylines-LN9XISRo.mjs → bylines-CMQNCNFh.mjs} +9 -3
- package/dist/{bylines-DwokOFj6.mjs → bylines-y4LO-dTj.mjs} +5 -5
- package/dist/{cache-Bac05gBd.mjs → cache-C-FNTFYK.mjs} +2 -2
- package/dist/{chunks-CuUt7K50.mjs → chunks-CxBt-GxR.mjs} +1 -1
- package/dist/cli/index.mjs +94 -659
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.mjs +2 -1
- package/dist/{comment-Beue8-15.mjs → comment-DlA4iChg.mjs} +13 -3
- package/dist/comment-reaction-DfFao1ST.mjs +58 -0
- package/dist/{comments-DcjFIfqX.mjs → comments-DApFGMsP.mjs} +1 -1
- package/dist/{content-CBxYGWfL.mjs → content-Bh4BDjv8.mjs} +51 -34
- package/dist/content-refresh-CgutSUfO.mjs +1576 -0
- package/dist/{context-CQVNZaR8.mjs → context-C5W3G18y.mjs} +111 -50
- package/dist/{context-Df1xVYyr.mjs → context-CK4ym2Sf.mjs} +2 -2
- package/dist/{context-route-helpers-B9wj8Rmh.mjs → context-route-helpers-MASyGgWf.mjs} +2 -1
- package/dist/{cron-DxCAU_Sn.mjs → cron-cKcNTix_.mjs} +7 -3
- package/dist/{dashboard-B7ZUNuyF.mjs → dashboard-DQkVT7Ei.mjs} +4 -4
- package/dist/db/index.d.mts +3 -3
- package/dist/db/index.mjs +1 -1
- package/dist/db/libsql.d.mts +1 -1
- package/dist/db/postgres.d.mts +1 -1
- package/dist/db/sqlite.d.mts +1 -1
- package/dist/{device-flow-BZVGftqi.mjs → device-flow-BnqRH-T9.mjs} +5 -5
- package/dist/{placeholder-d54Qr_7n.mjs → enrich-DIFIFA8O.mjs} +36 -9
- package/dist/{error-DCSuUAZW.mjs → error-CytFlgcd.mjs} +5 -0
- package/dist/field-defs-cache-DRNdhBJv.mjs +49 -0
- package/dist/{fts-manager-B5l_qwrA.mjs → fts-manager-Crzypjqu.mjs} +1 -1
- package/dist/hitl-Hw1RmWOq.mjs +677 -0
- package/dist/{hitl-requests-7NlzVeUA.mjs → hitl-requests-B4Vbcmaq.mjs} +2 -2
- package/dist/{hitl-route-helpers-k---_H3-.mjs → hitl-route-helpers-hEVzvP8l.mjs} +5 -4
- package/dist/import-Bh9biJfx.mjs +1354 -0
- package/dist/{index-CZiWCQDp.d.mts → index-D4y6NGiy.d.mts} +75 -3
- package/dist/index.d.mts +17 -16
- package/dist/index.mjs +80 -68
- package/dist/{jsonld-DZ67souc.d.mts → jsonld-Dq0gsnOH.d.mts} +8 -4
- package/dist/{load-D9OiGr2m.mjs → load-DmYeniXl.mjs} +1 -1
- package/dist/{loader--GOYux8M.mjs → loader-CjWqjweO.mjs} +117 -31
- package/dist/{manifest-schema-qh2P7RDX.mjs → manifest-schema-BxVPYMJR.mjs} +34 -1
- package/dist/mcp-reviewed-executor-TwVbMzG6.mjs +555 -0
- package/dist/media/image-endpoint.d.mts +32 -0
- package/dist/media/image-endpoint.mjs +111 -0
- package/dist/media/index.d.mts +27 -2
- package/dist/media/index.mjs +5 -3
- package/dist/media/local-runtime.d.mts +16 -11
- package/dist/media/local-runtime.mjs +9 -7
- package/dist/{media-CbKyYukG.mjs → media-DMj0grzC.mjs} +3 -1
- package/dist/{media-allowlist-BYxJIcTO.mjs → media-allowlist-BlVCSzHx.mjs} +1 -1
- package/dist/media-url-lEKSrpr9.mjs +20 -0
- package/dist/{menus-BZbXf-ej.mjs → menus-TaW1gKnk.mjs} +19 -5
- package/dist/{menus-C7F0sCrC.mjs → menus-xvsnVZXw.mjs} +80 -15
- package/dist/{normalize-ByemhhfW.mjs → normalize-5ek_z7de.mjs} +8 -1
- package/dist/{oauth-authorization-DF-LCsIA.mjs → oauth-authorization-DiaGvRVz.mjs} +5 -5
- package/dist/{oauth-clients-Du-V0fEm.mjs → oauth-clients-Dl9E8dEM.mjs} +2 -2
- package/dist/object-cache/memory.d.mts +14 -0
- package/dist/object-cache/memory.mjs +55 -0
- package/dist/object-cache-D51qOseS.mjs +419 -0
- package/dist/page/index.d.mts +4 -3
- package/dist/page/index.mjs +2 -2
- package/dist/{parse-CneSgl7-.mjs → parse-CbymENaR.mjs} +1 -1
- package/dist/{parser-DxfsARXL.mjs → parser-C1nYd-81.mjs} +151 -9
- package/dist/{placeholder-CXfoCtCd.d.mts → placeholder-uvNRZBX9.d.mts} +12 -4
- 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 +11 -2
- package/dist/{plugins-DzfqRREq.mjs → plugins-BolVa-tl.mjs} +831 -63
- package/dist/{transport-LSdZVXHF.mjs → portable-text-dA_UlJwW.mjs} +1 -134
- package/dist/{preview-C-3YTX2U.mjs → preview-vSVg6fwG.mjs} +4 -3
- package/dist/process-cache-7xgAO9JY.mjs +106 -0
- package/dist/{provider-loader-9it4vd6L.d.mts → provider-loader-MD8zAbnH.d.mts} +1 -1
- package/dist/{public-url-B4xV4rGa.d.mts → public-url-gsp3oUbu.d.mts} +1 -1
- package/dist/{query-Ds0EnMFX.mjs → query-CfRCdaL3.mjs} +281 -76
- package/dist/{query-CZ3TH_Uu.mjs → query-jaAmw8E1.mjs} +11 -6
- package/dist/{rate-limit-i0G3IAOX.mjs → rate-limit-ZLdyWoZF.mjs} +2 -2
- package/dist/{redirect-CEACczxo.mjs → redirect-BAjt4Z6b.mjs} +2 -2
- package/dist/{redirects-DYj1yPxs.mjs → redirects-BTdwpQtE.mjs} +47 -24
- package/dist/{redirects-ocRJmQHP.mjs → redirects-CA-xylPG.mjs} +19 -11
- package/dist/{registry-D7HACema.mjs → registry-CtyVedcN.mjs} +130 -77
- package/dist/request-context.d.mts +2 -0
- package/dist/{request-meta-DAb6xaP9.mjs → request-meta-CUypToDJ.mjs} +1 -1
- package/dist/{review-requests-Qum4713s.mjs → review-requests-C9Ff11Vq.mjs} +1 -1
- package/dist/{review-requests-BW2NxY-l.mjs → review-requests-DUyEmtmG.mjs} +1 -1
- package/dist/{runner-09sTqtv0.d.mts → runner-1tC2tIRV.d.mts} +1 -1
- package/dist/runner-DB7CRfOF.mjs +6740 -0
- package/dist/{runtime-C4-2lSFg.d.mts → runtime-BOeiQsCv.d.mts} +1952 -1489
- package/dist/runtime.d.mts +10 -10
- package/dist/runtime.mjs +3 -3
- package/dist/schema-DXdYj4R3.mjs +8 -0
- package/dist/{search-Gdrqj582.mjs → search-DSaLgEFI.mjs} +5 -3
- package/dist/{secrets-CeGpBFV2.mjs → secrets-CDZo2k8L.mjs} +14 -11
- package/dist/{sections-BOjU13Y-.mjs → sections-PVVXHGfp.mjs} +2 -2
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +21 -18
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo/index.mjs +3 -12
- package/dist/{seo-CLj8lS7Q.mjs → seo-CQG3GCHQ.mjs} +5 -2
- package/dist/{seo-contributions-CqVvReEj.mjs → seo-contributions-C1EnikHB.mjs} +11 -3
- package/dist/{seo-5lJOtB5J.mjs → seo-qa7Dn0jK.mjs} +22 -4
- package/dist/{service-jGlhrICs.mjs → service-DiN4ZuPp.mjs} +2 -2
- package/dist/session-user-CAKImna3.mjs +22 -0
- package/dist/{settings-CUXOxzsT.mjs → settings-BbqgHWpU.mjs} +28 -55
- package/dist/{settings-DlBsT2VS.mjs → settings-i4VPP8bT.mjs} +2 -2
- package/dist/{setup-complete-BRrdPYjZ.mjs → setup-complete-B8fl-mjV.mjs} +1 -1
- package/dist/{site-activity-DONFrMBJ.mjs → site-activity-Dy3FROs0.mjs} +1 -1
- package/dist/{site-context-C8Az_P_I.mjs → site-context-DQiL8Fl5.mjs} +23 -652
- package/dist/{site-url-DIMD68go.mjs → site-url-BML3GQYm.mjs} +1 -1
- package/dist/status-DANd8ERo.mjs +21 -0
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +1 -1
- package/dist/{taxonomies-D9Sw4wWM.mjs → taxonomies-9s-v03H-.mjs} +36 -29
- package/dist/taxonomies-DRiixp_E.mjs +443 -0
- package/dist/{taxonomy-B169Nm6B.mjs → taxonomy-Dvsw6BOs.mjs} +44 -9
- package/dist/transport-BNmCqLu7.mjs +134 -0
- package/dist/types-4garmdWa.mjs +66 -0
- package/dist/{types-DSPGWjxO.d.mts → types-C8XW6L19.d.mts} +225 -4
- package/dist/{types-GaCtZ1k9.d.mts → types-CDpH6MA4.d.mts} +18 -0
- package/dist/{types-DRIKLmJI.d.mts → types-C_ly5eTp.d.mts} +17 -2
- package/dist/types-DF7ZuGGk.d.mts +118 -0
- package/dist/types-DU0bU2Wu.d.mts +2392 -0
- package/dist/{types-CwawBUTa.d.mts → types-DW_-sFyz.d.mts} +2 -1
- package/dist/{types-CSgR9nQB.mjs → types-Dq1qT19x.mjs} +1 -1
- package/dist/ui/server-runtime.d.mts +15 -15
- package/dist/ui/server-runtime.mjs +24 -20
- package/dist/url-Cac7a9QZ.mjs +33 -0
- package/dist/{user-DTLoZs16.mjs → user-BIZPzCb9.mjs} +2 -2
- package/dist/{utils-B8hBJ9Oz.mjs → utils-CMDhr5Xd.mjs} +129 -7
- package/dist/{validate-DzjCdy6v.d.mts → validate-CZvb-BKB.d.mts} +10 -7
- package/dist/{validate-DWmPO6oj.mjs → validate-DNs0pTSc.mjs} +11 -6
- package/dist/version-BTvfRGc6.mjs +6 -0
- package/dist/{widgets-BpJ8EpPd.mjs → widgets-f0ibZUIq.mjs} +46 -43
- package/dist/{wordpress-slugs-DHNR9LpG.mjs → wordpress-slugs-BhHJX8XE.mjs} +1 -1
- package/dist/{zod-generator-K91-g665.mjs → zod-generator-B7TMjyFJ.mjs} +41 -13
- package/package.json +30 -8
- package/src/components/Block.astro +50 -0
- package/src/components/Comments.astro +143 -1
- package/src/components/DinewayHead.astro +19 -2
- package/src/components/DinewayImage.astro +66 -33
- package/src/components/DinewayMedia.astro +1 -2
- package/src/components/Image.astro +85 -40
- package/src/components/InlinePortableTextEditor.tsx +12 -2
- package/src/components/JsonLdScript.astro +9 -0
- package/src/components/LiveSearch.astro +40 -4
- package/src/components/index.ts +4 -0
- package/src/components/live-search-routing.ts +30 -0
- package/src/components/portable-text-text-align.ts +15 -0
- package/src/ui.ts +2 -0
- package/dist/entity-aliases-4y93Yjuc.mjs +0 -51
- package/dist/import-4YBXbDkI.mjs +0 -684
- package/dist/runner-DzIpHGND.mjs +0 -2836
- package/dist/schema-Bsi-VpYv.mjs +0 -8
- package/dist/taxonomies-CZ-_DitR.mjs +0 -327
- package/dist/types-CuJOqHfM.d.mts +0 -758
- package/dist/version-C4gfn0PJ.mjs +0 -6
- /package/dist/{adapters-OQCImOL7.d.mts → adapters-NVSs4UH7.d.mts} +0 -0
- /package/dist/{api-tokens-CYUoFGo7.mjs → api-tokens-2r7OWi_I.mjs} +0 -0
- /package/dist/{challenge-store-DFxX0_15.mjs → challenge-store-Bjlepa2E.mjs} +0 -0
- /package/dist/{components--pg6zBvu.mjs → components-Bclf98Be.mjs} +0 -0
- /package/dist/{context-types-r8oFvyOq.mjs → context-types-DqTo6C79.mjs} +0 -0
- /package/dist/{default-B6iaLvP7.mjs → default--K40jqm0.mjs} +0 -0
- /package/dist/{email-console-BOVqIYpB.mjs → email-console-ChgKFO8-.mjs} +0 -0
- /package/dist/{escape-BDgouFFY.mjs → escape-Bd4P_xKg.mjs} +0 -0
- /package/dist/{experimental-workflows-CSMffP6q.mjs → experimental-workflows-BMsUnIAw.mjs} +0 -0
- /package/dist/{mime-CbKsKDCB.mjs → mime-CA7Lgovc.mjs} +0 -0
- /package/dist/{mode-CZqCF9dZ.mjs → mode-C4CIyjtR.mjs} +0 -0
- /package/dist/{oauth-state-store-qncPB_IU.mjs → oauth-state-store-CNoXafF7.mjs} +0 -0
- /package/dist/{oauth-user-lookup-BFjWF8wK.mjs → oauth-user-lookup-Ygw4bNyt.mjs} +0 -0
- /package/dist/{options-LsPjZlqD.mjs → options-DQPTH5n0.mjs} +0 -0
- /package/dist/{passkey-config-DzHQK90v.mjs → passkey-config-BUwu8BA3.mjs} +0 -0
- /package/dist/{patterns-DKAX6oqN.mjs → patterns-BhAvqO0S.mjs} +0 -0
- /package/dist/{provider-loader-DzUxejk7.mjs → provider-loader-D0w9dqjm.mjs} +0 -0
- /package/dist/{public-url-B_m9IwdV.mjs → public-url-BEz_sM9n.mjs} +0 -0
- /package/dist/{redirect-BjIBtDWY.mjs → redirect-wphRBv4y.mjs} +0 -0
- /package/dist/{request-cache-ho99schz.mjs → request-cache-D9GQBxMP.mjs} +0 -0
- /package/dist/{resolve-DTuDyYKs.mjs → resolve-Cb6Dbz-C.mjs} +0 -0
- /package/dist/{setup-nonce-pyGfc9hV.mjs → setup-nonce-CoyjILvW.mjs} +0 -0
- /package/dist/{sidecar-client-mJxwayYN.mjs → sidecar-client-C3mqXg4C.mjs} +0 -0
- /package/dist/{slugify-BqebcqBg.mjs → slugify-KSsVD_D3.mjs} +0 -0
- /package/dist/{ssrf-DiKqWd3N.mjs → ssrf-DWe8jwAp.mjs} +0 -0
- /package/dist/{tokens-SLmgowfd.mjs → tokens-1RK1n6ED.mjs} +0 -0
- /package/dist/{transaction-CFLhEOuH.mjs → transaction-C2EOMTJA.mjs} +0 -0
- /package/dist/{transport-BnsNxh2l.d.mts → transport-CcJu3Co8.d.mts} +0 -0
- /package/dist/{trusted-proxy-BgIIcbsN.mjs → trusted-proxy-DTXQ2IMv.mjs} +0 -0
- /package/dist/{types-CJ8DkL0q.mjs → types-B3t5cxhU.mjs} +0 -0
- /package/dist/{types-nP9vGUFq.d.mts → types-C46EvNdc.d.mts} +0 -0
- /package/dist/{types-Cg276-3z.mjs → types-C5CVgwsV.mjs} +0 -0
- /package/dist/{types-DZpT-PnG.d.mts → types-POH8PQZh.d.mts} +0 -0
- /package/dist/{types-Dryvv7LH.d.mts → types-Rc3gQqqw.d.mts} +0 -0
- /package/dist/{url-w7Mp5qAD.mjs → url-CpyFDFpO.mjs} +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { n as validateJsonFieldName } from "./validate-VPnKoIzW.mjs";
|
|
2
2
|
import { c as jsonExtractExpr } from "./dialect-helpers-fk43GbDb.mjs";
|
|
3
|
-
import { i as encodeCursor, r as decodeCursor } from "./types-
|
|
4
|
-
import { t as ContentRepository } from "./content-
|
|
5
|
-
import { t as MediaRepository } from "./media-
|
|
6
|
-
import { t as UserRepository } from "./user-
|
|
7
|
-
import { t as OptionsRepository } from "./options-
|
|
8
|
-
import { t as withTransaction } from "./transaction-
|
|
9
|
-
import { t as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
3
|
+
import { i as encodeCursor, r as decodeCursor } from "./types-Dq1qT19x.mjs";
|
|
4
|
+
import { t as ContentRepository } from "./content-Bh4BDjv8.mjs";
|
|
5
|
+
import { t as MediaRepository } from "./media-DMj0grzC.mjs";
|
|
6
|
+
import { t as UserRepository } from "./user-BIZPzCb9.mjs";
|
|
7
|
+
import { t as OptionsRepository } from "./options-DQPTH5n0.mjs";
|
|
8
|
+
import { t as withTransaction } from "./transaction-C2EOMTJA.mjs";
|
|
9
|
+
import { t as enrichImageMetadata } from "./enrich-DIFIFA8O.mjs";
|
|
10
|
+
import { t as SeoRepository } from "./seo-CQG3GCHQ.mjs";
|
|
11
|
+
import { a as markContentMediaUsageCollectionStaleSafely } from "./content-refresh-CgutSUfO.mjs";
|
|
12
|
+
import { a as validateExternalUrl, i as stripCredentialHeaders, t as SsrfError } from "./ssrf-DWe8jwAp.mjs";
|
|
13
|
+
import { t as CronAccessImpl } from "./cron-cKcNTix_.mjs";
|
|
12
14
|
import { sql } from "kysely";
|
|
13
15
|
import { ulid } from "ulidx";
|
|
14
16
|
|
|
@@ -486,37 +488,58 @@ function createContentAccessWithWrite(db) {
|
|
|
486
488
|
...createContentAccess(db),
|
|
487
489
|
async create(collection, data) {
|
|
488
490
|
const { fields, seo } = splitSeoFromInput(data);
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
const
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
491
|
+
let contentMutated = false;
|
|
492
|
+
try {
|
|
493
|
+
const created = await withTransaction(db, async (trx) => {
|
|
494
|
+
const trxContentRepo = new ContentRepository(trx);
|
|
495
|
+
const trxSeoRepo = new SeoRepository(trx);
|
|
496
|
+
const hasSeo = await assertSeoEnabled(trxSeoRepo, collection, seo);
|
|
497
|
+
const item = await trxContentRepo.create({
|
|
498
|
+
type: collection,
|
|
499
|
+
data: fields
|
|
500
|
+
});
|
|
501
|
+
contentMutated = true;
|
|
502
|
+
const result = toPluginContentItem(item);
|
|
503
|
+
if (hasSeo) result.seo = seo !== void 0 ? await trxSeoRepo.upsert(collection, item.id, seo) : await trxSeoRepo.get(collection, item.id);
|
|
504
|
+
return result;
|
|
496
505
|
});
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
506
|
+
await markContentMediaUsageCollectionStaleSafely(db, collection, "CONTENT_USAGE_STALE");
|
|
507
|
+
return created;
|
|
508
|
+
} catch (error) {
|
|
509
|
+
if (contentMutated) await markContentMediaUsageCollectionStaleSafely(db, collection, "CONTENT_USAGE_STALE");
|
|
510
|
+
throw error;
|
|
511
|
+
}
|
|
501
512
|
},
|
|
502
513
|
async update(collection, id, data) {
|
|
503
514
|
const { fields, seo } = splitSeoFromInput(data);
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
const
|
|
508
|
-
|
|
509
|
-
const
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
515
|
+
const hasFieldUpdates = Object.keys(fields).length > 0;
|
|
516
|
+
let contentMutated = false;
|
|
517
|
+
try {
|
|
518
|
+
const updated = await withTransaction(db, async (trx) => {
|
|
519
|
+
const trxContentRepo = new ContentRepository(trx);
|
|
520
|
+
const trxSeoRepo = new SeoRepository(trx);
|
|
521
|
+
const hasSeo = await assertSeoEnabled(trxSeoRepo, collection, seo);
|
|
522
|
+
const item = hasFieldUpdates ? await trxContentRepo.update(collection, id, { data: fields }) : await (async () => {
|
|
523
|
+
const existing = await trxContentRepo.findById(collection, id);
|
|
524
|
+
if (!existing) throw new Error("Content not found");
|
|
525
|
+
return existing;
|
|
526
|
+
})();
|
|
527
|
+
if (hasFieldUpdates) contentMutated = true;
|
|
528
|
+
const result = toPluginContentItem(item);
|
|
529
|
+
if (hasSeo) result.seo = seo !== void 0 ? await trxSeoRepo.upsert(collection, item.id, seo) : await trxSeoRepo.get(collection, item.id);
|
|
530
|
+
return result;
|
|
531
|
+
});
|
|
532
|
+
if (hasFieldUpdates) await markContentMediaUsageCollectionStaleSafely(db, collection, "CONTENT_USAGE_STALE");
|
|
533
|
+
return updated;
|
|
534
|
+
} catch (error) {
|
|
535
|
+
if (contentMutated) await markContentMediaUsageCollectionStaleSafely(db, collection, "CONTENT_USAGE_STALE");
|
|
536
|
+
throw error;
|
|
537
|
+
}
|
|
517
538
|
},
|
|
518
539
|
async delete(collection, id) {
|
|
519
|
-
|
|
540
|
+
const deleted = await new ContentRepository(db).delete(collection, id);
|
|
541
|
+
if (deleted) await markContentMediaUsageCollectionStaleSafely(db, collection, "CONTENT_USAGE_STALE");
|
|
542
|
+
return deleted;
|
|
520
543
|
}
|
|
521
544
|
};
|
|
522
545
|
}
|
|
@@ -561,13 +584,38 @@ function createMediaAccess(db) {
|
|
|
561
584
|
}
|
|
562
585
|
/**
|
|
563
586
|
* Create full media access with write operations.
|
|
564
|
-
*
|
|
587
|
+
*
|
|
588
|
+
* `getUploadUrlFn` is optional. When it is omitted and storage is configured,
|
|
589
|
+
* `getUploadUrl()` is derived from storage by creating a pending media row and
|
|
590
|
+
* signed upload URL, matching the REST signed-upload path. `upload()` only
|
|
591
|
+
* needs storage. If storage is not provided, both throw at call time.
|
|
565
592
|
*/
|
|
566
593
|
function createMediaAccessWithWrite(db, getUploadUrlFn, storage) {
|
|
567
594
|
const mediaRepo = new MediaRepository(db);
|
|
595
|
+
const readAccess = createMediaAccess(db);
|
|
596
|
+
const getUploadUrl = getUploadUrlFn ?? (async (filename, contentType) => {
|
|
597
|
+
if (!storage) throw new Error("Media getUploadUrl() requires a storage backend. Configure storage in PluginContextFactoryOptions.");
|
|
598
|
+
const basename = filename.split("/").pop() ?? filename;
|
|
599
|
+
const dotIdx = basename.lastIndexOf(".");
|
|
600
|
+
const ext = dotIdx > 0 ? basename.slice(dotIdx).toLowerCase() : "";
|
|
601
|
+
const storageKey = `${ulid()}${ext}`;
|
|
602
|
+
const media = await mediaRepo.createPending({
|
|
603
|
+
filename: basename,
|
|
604
|
+
mimeType: contentType,
|
|
605
|
+
storageKey
|
|
606
|
+
});
|
|
607
|
+
return {
|
|
608
|
+
uploadUrl: (await storage.getSignedUploadUrl({
|
|
609
|
+
key: storageKey,
|
|
610
|
+
contentType,
|
|
611
|
+
expiresIn: 3600
|
|
612
|
+
})).url,
|
|
613
|
+
mediaId: media.id
|
|
614
|
+
};
|
|
615
|
+
});
|
|
568
616
|
return {
|
|
569
|
-
...
|
|
570
|
-
getUploadUrl
|
|
617
|
+
...readAccess,
|
|
618
|
+
getUploadUrl,
|
|
571
619
|
async upload(filename, contentType, bytes) {
|
|
572
620
|
if (!storage) throw new Error("Media upload() requires a storage backend. Configure storage in PluginContextFactoryOptions.");
|
|
573
621
|
const keyPrefix = ulid();
|
|
@@ -579,6 +627,7 @@ function createMediaAccessWithWrite(db, getUploadUrlFn, storage) {
|
|
|
579
627
|
body: new Uint8Array(bytes),
|
|
580
628
|
contentType
|
|
581
629
|
});
|
|
630
|
+
const enriched = await enrichImageMetadata(new Uint8Array(bytes), contentType);
|
|
582
631
|
let media;
|
|
583
632
|
try {
|
|
584
633
|
media = await mediaRepo.create({
|
|
@@ -586,7 +635,11 @@ function createMediaAccessWithWrite(db, getUploadUrlFn, storage) {
|
|
|
586
635
|
mimeType: contentType,
|
|
587
636
|
size: bytes.byteLength,
|
|
588
637
|
storageKey,
|
|
589
|
-
status: "ready"
|
|
638
|
+
status: "ready",
|
|
639
|
+
width: enriched.width,
|
|
640
|
+
height: enriched.height,
|
|
641
|
+
blurhash: enriched.blurhash,
|
|
642
|
+
dominantColor: enriched.dominantColor
|
|
590
643
|
});
|
|
591
644
|
} catch (error) {
|
|
592
645
|
try {
|
|
@@ -774,17 +827,17 @@ function createUserAccess(db) {
|
|
|
774
827
|
* Factory for creating plugin contexts
|
|
775
828
|
*/
|
|
776
829
|
var PluginContextFactory = class {
|
|
777
|
-
|
|
778
|
-
db;
|
|
830
|
+
resolveDb;
|
|
779
831
|
storage;
|
|
780
832
|
getUploadUrl;
|
|
781
833
|
site;
|
|
782
834
|
urlHelper;
|
|
783
835
|
cronReschedule;
|
|
784
836
|
emailPipeline;
|
|
837
|
+
warnedMissingMediaBackend = /* @__PURE__ */ new Set();
|
|
785
838
|
constructor(options) {
|
|
786
|
-
|
|
787
|
-
this.
|
|
839
|
+
const fixedDb = options.db;
|
|
840
|
+
this.resolveDb = options.getDb ?? (() => fixedDb);
|
|
788
841
|
this.storage = options.storage;
|
|
789
842
|
this.getUploadUrl = options.getUploadUrl;
|
|
790
843
|
this.site = createSiteInfo(options.siteInfo ?? {});
|
|
@@ -797,22 +850,30 @@ var PluginContextFactory = class {
|
|
|
797
850
|
*/
|
|
798
851
|
createContext(plugin) {
|
|
799
852
|
const capabilities = new Set(plugin.capabilities);
|
|
800
|
-
const
|
|
853
|
+
const db = this.resolveDb();
|
|
854
|
+
const kv = createKVAccess(new OptionsRepository(db), plugin.id);
|
|
801
855
|
const log = createLogAccess(plugin.id);
|
|
802
|
-
const storage = createStorageAccess(
|
|
856
|
+
const storage = createStorageAccess(db, plugin.id, plugin.storage);
|
|
803
857
|
let content;
|
|
804
|
-
if (capabilities.has("content:write")) content = createContentAccessWithWrite(
|
|
805
|
-
else if (capabilities.has("content:read")) content = createContentAccess(
|
|
858
|
+
if (capabilities.has("content:write")) content = createContentAccessWithWrite(db);
|
|
859
|
+
else if (capabilities.has("content:read")) content = createContentAccess(db);
|
|
806
860
|
let media;
|
|
807
|
-
if (capabilities.has("media:write")
|
|
808
|
-
else
|
|
861
|
+
if (capabilities.has("media:write")) if (this.getUploadUrl || this.storage) media = createMediaAccessWithWrite(db, this.getUploadUrl, this.storage);
|
|
862
|
+
else {
|
|
863
|
+
if (!this.warnedMissingMediaBackend.has(plugin.id)) {
|
|
864
|
+
this.warnedMissingMediaBackend.add(plugin.id);
|
|
865
|
+
log.warn("declares the media:write capability but no storage backend is configured; upload() is unavailable.");
|
|
866
|
+
}
|
|
867
|
+
if (capabilities.has("media:read")) media = createMediaAccess(db);
|
|
868
|
+
}
|
|
869
|
+
else if (capabilities.has("media:read")) media = createMediaAccess(db);
|
|
809
870
|
let http;
|
|
810
871
|
if (capabilities.has("network:request:unrestricted")) http = createUnrestrictedHttpAccess(plugin.id);
|
|
811
872
|
else if (capabilities.has("network:request")) http = createHttpAccess(plugin.id, plugin.allowedHosts);
|
|
812
873
|
let users;
|
|
813
|
-
if (capabilities.has("users:read")) users = createUserAccess(
|
|
874
|
+
if (capabilities.has("users:read")) users = createUserAccess(db);
|
|
814
875
|
let cron;
|
|
815
|
-
if (this.cronReschedule) cron = new CronAccessImpl(
|
|
876
|
+
if (this.cronReschedule) cron = new CronAccessImpl(db, plugin.id, this.cronReschedule);
|
|
816
877
|
let email;
|
|
817
878
|
if (capabilities.has("email:send") && this.emailPipeline?.isAvailable()) {
|
|
818
879
|
const pipeline = this.emailPipeline;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as ContextRepository, i as parseSiteBriefingScope, n as SiteBriefingError } from "./briefing-
|
|
2
|
-
import { b as
|
|
1
|
+
import { a as ContextRepository, i as parseSiteBriefingScope, n as SiteBriefingError } from "./briefing-CawZ59CY.mjs";
|
|
2
|
+
import { b as toPublicContextEntryPage, v as toPublicContextDiff, y as toPublicContextEntry } from "./site-context-DQiL8Fl5.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/api/handlers/context.ts
|
|
5
5
|
async function handleContextEntryList(db, input = {}) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as resolveActorIdentity } from "./actor-CrObAPV0.mjs";
|
|
2
|
+
import { p as logSiteActivitySafely } from "./activity-events-y6eT8UW6.mjs";
|
|
2
3
|
|
|
3
4
|
//#region src/api/context-route-helpers.ts
|
|
4
5
|
function resolveContextRouteActor(locals) {
|
|
@@ -17,13 +17,17 @@ const MAX_ONESHOT_RETRIES = 5;
|
|
|
17
17
|
/**
|
|
18
18
|
* Executes overdue cron tasks.
|
|
19
19
|
*
|
|
20
|
-
* Called by
|
|
21
|
-
*
|
|
20
|
+
* Called by schedulers (NodeCronScheduler, PiggybackScheduler). Stateless —
|
|
21
|
+
* all state lives in the database.
|
|
22
22
|
*/
|
|
23
23
|
var CronExecutor = class {
|
|
24
|
+
resolveDb;
|
|
24
25
|
constructor(db, invokeCronHook) {
|
|
25
|
-
this.db = db;
|
|
26
26
|
this.invokeCronHook = invokeCronHook;
|
|
27
|
+
this.resolveDb = typeof db === "function" ? db : () => db;
|
|
28
|
+
}
|
|
29
|
+
get db() {
|
|
30
|
+
return this.resolveDb();
|
|
27
31
|
}
|
|
28
32
|
/**
|
|
29
33
|
* Process all overdue tasks.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
|
|
2
|
-
import { t as ContentRepository } from "./content-
|
|
3
|
-
import { t as MediaRepository } from "./media-
|
|
4
|
-
import { t as UserRepository } from "./user-
|
|
5
|
-
import { t as ReviewRequestRepository } from "./review-requests-
|
|
2
|
+
import { t as ContentRepository } from "./content-Bh4BDjv8.mjs";
|
|
3
|
+
import { t as MediaRepository } from "./media-DMj0grzC.mjs";
|
|
4
|
+
import { t as UserRepository } from "./user-BIZPzCb9.mjs";
|
|
5
|
+
import { t as ReviewRequestRepository } from "./review-requests-DUyEmtmG.mjs";
|
|
6
6
|
import { sql } from "kysely";
|
|
7
7
|
|
|
8
8
|
//#region src/api/handlers/dashboard.ts
|
package/dist/db/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../types-
|
|
2
|
-
import { a as SqliteConfig, c as sqlite, i as PostgresConfig, n as DatabaseDialectType, o as libsql, r as LibsqlConfig, s as postgres, t as DatabaseDescriptor } from "../adapters-
|
|
3
|
-
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-
|
|
1
|
+
import "../types-DU0bU2Wu.mjs";
|
|
2
|
+
import { a as SqliteConfig, c as sqlite, i as PostgresConfig, n as DatabaseDialectType, o as libsql, r as LibsqlConfig, s as postgres, t as DatabaseDescriptor } from "../adapters-NVSs4UH7.mjs";
|
|
3
|
+
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-1tC2tIRV.mjs";
|
|
4
4
|
export { type DatabaseDescriptor, type DatabaseDialectType, type LibsqlConfig, type MigrationStatus, type PostgresConfig, type SqliteConfig, getMigrationStatus, libsql, postgres, rollbackMigration, runMigrations, sqlite };
|
package/dist/db/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration } from "../runner-
|
|
1
|
+
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration } from "../runner-DB7CRfOF.mjs";
|
|
2
2
|
import "../dialect-helpers-fk43GbDb.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/db/adapters.ts
|
package/dist/db/libsql.d.mts
CHANGED
package/dist/db/postgres.d.mts
CHANGED
package/dist/db/sqlite.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as withTransaction } from "./transaction-
|
|
2
|
-
import { a as
|
|
3
|
-
import { a as
|
|
4
|
-
import { o as lookupOAuthClient } from "./oauth-clients-
|
|
5
|
-
import { t as lookupUserRoleAndStatus } from "./oauth-user-lookup-
|
|
1
|
+
import { t as withTransaction } from "./transaction-C2EOMTJA.mjs";
|
|
2
|
+
import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-2r7OWi_I.mjs";
|
|
3
|
+
import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-BMsUnIAw.mjs";
|
|
4
|
+
import { o as lookupOAuthClient } from "./oauth-clients-Dl9E8dEM.mjs";
|
|
5
|
+
import { t as lookupUserRoleAndStatus } from "./oauth-user-lookup-Ygw4bNyt.mjs";
|
|
6
6
|
import { clampScopes } from "@dineway-ai/auth";
|
|
7
7
|
import { generateCodeVerifier } from "arctic";
|
|
8
8
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { n as normalizeMime } from "./mime-CA7Lgovc.mjs";
|
|
1
2
|
import { encode } from "blurhash";
|
|
2
3
|
import { imageSize } from "image-size";
|
|
3
4
|
|
|
@@ -67,8 +68,9 @@ function extractDominantColor(data, width, height) {
|
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
69
70
|
* Read image dimensions from headers without decoding pixel data.
|
|
71
|
+
* Returns null when the header cannot be parsed.
|
|
70
72
|
*/
|
|
71
|
-
function
|
|
73
|
+
function readDimensions(buffer) {
|
|
72
74
|
try {
|
|
73
75
|
const result = imageSize(buffer);
|
|
74
76
|
if (result.width != null && result.height != null) return {
|
|
@@ -84,17 +86,18 @@ function getImageDimensions(buffer) {
|
|
|
84
86
|
* Generate blurhash and dominant color from an image buffer.
|
|
85
87
|
* Returns null for non-image MIME types or on failure.
|
|
86
88
|
*
|
|
87
|
-
* @param dimensions - Optional pre-known dimensions.
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
89
|
+
* @param dimensions - Optional pre-known dimensions. When present they are
|
|
90
|
+
* trusted as bounds for the buffer that will be decoded; otherwise dimensions
|
|
91
|
+
* are read from this buffer's header. Generation is skipped when no dimensions
|
|
92
|
+
* are available or when the decoded size exceeds MAX_DECODED_BYTES.
|
|
91
93
|
*/
|
|
92
94
|
async function generatePlaceholder(buffer, mimeType, dimensions) {
|
|
93
|
-
const format = SUPPORTED_TYPES[mimeType];
|
|
95
|
+
const format = SUPPORTED_TYPES[normalizeMime(mimeType)];
|
|
94
96
|
if (!format) return null;
|
|
95
97
|
try {
|
|
96
|
-
const dims =
|
|
97
|
-
if (dims
|
|
98
|
+
const dims = dimensions ?? readDimensions(buffer);
|
|
99
|
+
if (!dims) return null;
|
|
100
|
+
if (dims.width * dims.height * 4 > MAX_DECODED_BYTES) return null;
|
|
98
101
|
const { width, height, data } = format === "jpeg" ? await decodeJpeg(buffer) : await decodePng(buffer);
|
|
99
102
|
if (width === 0 || height === 0) return null;
|
|
100
103
|
let encodePixels;
|
|
@@ -139,4 +142,28 @@ function downsample(src, srcW, srcH, dstW, dstH) {
|
|
|
139
142
|
}
|
|
140
143
|
|
|
141
144
|
//#endregion
|
|
142
|
-
|
|
145
|
+
//#region src/media/enrich.ts
|
|
146
|
+
/**
|
|
147
|
+
* Image Metadata Enrichment
|
|
148
|
+
*
|
|
149
|
+
* Derives dimensions and LQIP placeholders from image bytes. Server-side media
|
|
150
|
+
* creation paths share this helper so direct uploads, signed upload confirms,
|
|
151
|
+
* imports, and plugin uploads store consistent image metadata.
|
|
152
|
+
*/
|
|
153
|
+
async function enrichImageMetadata(bytes, contentType, opts) {
|
|
154
|
+
const normalizedContentType = normalizeMime(contentType);
|
|
155
|
+
if (!normalizedContentType.startsWith("image/")) return {};
|
|
156
|
+
const headerDims = readDimensions(bytes) ?? void 0;
|
|
157
|
+
const recordDims = opts?.knownDimensions ?? headerDims;
|
|
158
|
+
const override = opts?.placeholder;
|
|
159
|
+
const placeholder = await generatePlaceholder(override ? override.bytes : bytes, override ? normalizeMime(override.contentType) : normalizedContentType, override ? void 0 : headerDims);
|
|
160
|
+
return {
|
|
161
|
+
width: recordDims?.width,
|
|
162
|
+
height: recordDims?.height,
|
|
163
|
+
blurhash: placeholder?.blurhash,
|
|
164
|
+
dominantColor: placeholder?.dominantColor
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
//#endregion
|
|
169
|
+
export { generatePlaceholder as n, enrichImageMetadata as t };
|
|
@@ -61,6 +61,7 @@ const ErrorCode = {
|
|
|
61
61
|
URL_PATTERN_EXISTS: "URL_PATTERN_EXISTS",
|
|
62
62
|
TABLE_NOT_FOUND: "TABLE_NOT_FOUND",
|
|
63
63
|
FIELD_EXISTS: "FIELD_EXISTS",
|
|
64
|
+
FIELD_TYPE_COLUMN_CHANGE: "FIELD_TYPE_COLUMN_CHANGE",
|
|
64
65
|
RESERVED_SLUG: "RESERVED_SLUG",
|
|
65
66
|
INVALID_SLUG: "INVALID_SLUG",
|
|
66
67
|
INVALID_URL_PATTERN: "INVALID_URL_PATTERN",
|
|
@@ -98,6 +99,9 @@ const ErrorCode = {
|
|
|
98
99
|
COMMENTS_DISABLED: "COMMENTS_DISABLED",
|
|
99
100
|
COMMENTS_CLOSED: "COMMENTS_CLOSED",
|
|
100
101
|
COMMENT_REJECTED: "COMMENT_REJECTED",
|
|
102
|
+
COMMENT_NOT_APPROVED: "COMMENT_NOT_APPROVED",
|
|
103
|
+
REACTION_TOGGLE_ERROR: "REACTION_TOGGLE_ERROR",
|
|
104
|
+
REACTION_COUNTS_ERROR: "REACTION_COUNTS_ERROR",
|
|
101
105
|
ACCOUNT_DISABLED: "ACCOUNT_DISABLED",
|
|
102
106
|
ADMIN_EXISTS: "ADMIN_EXISTS",
|
|
103
107
|
SETUP_COMPLETE: "SETUP_COMPLETE",
|
|
@@ -309,6 +313,7 @@ function mapErrorStatus(code) {
|
|
|
309
313
|
case ErrorCode.COMMENTS_DISABLED:
|
|
310
314
|
case ErrorCode.COMMENTS_CLOSED:
|
|
311
315
|
case ErrorCode.COMMENT_REJECTED:
|
|
316
|
+
case ErrorCode.COMMENT_NOT_APPROVED:
|
|
312
317
|
case ErrorCode.DOMAIN_NOT_ALLOWED:
|
|
313
318
|
case ErrorCode.INSUFFICIENT_ROLE:
|
|
314
319
|
case ErrorCode.CAPABILITY_ESCALATION:
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
|
|
2
|
+
import { getRequestContext } from "./request-context.mjs";
|
|
3
|
+
import { t as after } from "./after-BfniwgIf.mjs";
|
|
4
|
+
import { r as requestCached } from "./request-cache-D9GQBxMP.mjs";
|
|
5
|
+
import { n as BylineSchemaRegistry } from "./byline-registry-87nNnYl4.mjs";
|
|
6
|
+
import { n as invalidateProcessCache, r as processCachedAsync, t as createProcessCache } from "./process-cache-7xgAO9JY.mjs";
|
|
7
|
+
|
|
8
|
+
//#region src/bylines/field-defs-cache.ts
|
|
9
|
+
var field_defs_cache_exports = /* @__PURE__ */ __exportAll({ getBylineFieldDefs: () => getBylineFieldDefs });
|
|
10
|
+
const HOLDER_KEY = Symbol.for("dineway:byline-field-defs");
|
|
11
|
+
const REQUEST_CACHE_KEY_VERSION = "byline-fields-version";
|
|
12
|
+
const REQUEST_CACHE_KEY_DEFS_PREFIX = "byline-field-defs:";
|
|
13
|
+
function getHolder() {
|
|
14
|
+
const existing = Reflect.get(globalThis, HOLDER_KEY);
|
|
15
|
+
if (isFieldDefsHolder(existing)) return existing;
|
|
16
|
+
const holder = {
|
|
17
|
+
cache: createProcessCache(),
|
|
18
|
+
cachedVersion: -1
|
|
19
|
+
};
|
|
20
|
+
Reflect.set(globalThis, HOLDER_KEY, holder);
|
|
21
|
+
return holder;
|
|
22
|
+
}
|
|
23
|
+
function isFieldDefsHolder(value) {
|
|
24
|
+
if (value && typeof value === "object" && "cache" in value && "cachedVersion" in value) {
|
|
25
|
+
const cache = value.cache;
|
|
26
|
+
return typeof value.cachedVersion === "number" && !!cache && typeof cache === "object" && "lock" in cache;
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const holder = getHolder();
|
|
31
|
+
async function getBylineFieldsVersion(db) {
|
|
32
|
+
return requestCached(REQUEST_CACHE_KEY_VERSION, () => new BylineSchemaRegistry(db).getVersion());
|
|
33
|
+
}
|
|
34
|
+
async function getBylineFieldDefs(db) {
|
|
35
|
+
const hasDbOverride = !!getRequestContext()?.db;
|
|
36
|
+
const version = await getBylineFieldsVersion(db);
|
|
37
|
+
const dirty = version % 2 !== 0;
|
|
38
|
+
return requestCached(`${REQUEST_CACHE_KEY_DEFS_PREFIX}${version}`, async () => {
|
|
39
|
+
if (hasDbOverride || dirty) return new BylineSchemaRegistry(db).listFields();
|
|
40
|
+
if (holder.cachedVersion !== version) {
|
|
41
|
+
invalidateProcessCache(holder.cache);
|
|
42
|
+
holder.cachedVersion = version;
|
|
43
|
+
}
|
|
44
|
+
return processCachedAsync(holder.cache, () => new BylineSchemaRegistry(db).listFields(), { anchor: (promise) => after(() => promise) });
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { getBylineFieldDefs as n, field_defs_cache_exports as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as __exportAll } from "./runner-
|
|
1
|
+
import { a as __exportAll } from "./runner-DB7CRfOF.mjs";
|
|
2
2
|
import { t as validateIdentifier } from "./validate-VPnKoIzW.mjs";
|
|
3
3
|
import { s as isSqlite, u as tableExists } from "./dialect-helpers-fk43GbDb.mjs";
|
|
4
4
|
import { sql } from "kysely";
|