dineway 0.2.39 → 0.2.41
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-LXZdjKwI.mjs → activity-BuhkMdv8.mjs} +2 -2
- package/dist/{activity-events-DoqeOM8x.mjs → activity-events-DkHsy7Y0.mjs} +1 -1
- package/dist/{allowed-origins-DiVrMLxh.mjs → allowed-origins-Clitkhiv.mjs} +1 -1
- package/dist/api/route-utils.d.mts +15 -12
- package/dist/api/route-utils.mjs +27 -20
- package/dist/api/schemas/index.d.mts +1 -1
- package/dist/api/schemas/index.mjs +10 -5
- package/dist/{api-COSxvdOi.mjs → api-CMbsIQ46.mjs} +41 -13
- package/dist/{api-tokens-CNHnKO57.mjs → api-tokens-ciHNTdN2.mjs} +1 -1
- package/dist/{apply-D4rZHDyg.mjs → apply-B5qoX19G.mjs} +62 -18
- package/dist/astro/index.d.mts +16 -13
- package/dist/astro/index.mjs +31 -5
- package/dist/astro/middleware/auth.d.mts +14 -11
- package/dist/astro/middleware/auth.mjs +8 -8
- package/dist/astro/middleware/redirect.mjs +10 -6
- package/dist/astro/middleware/request-context.mjs +5 -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.d.mts +2 -2
- package/dist/astro/middleware.mjs +266 -176
- package/dist/astro/routes/api/admin/allowed-domains/_domain_.mjs +12 -7
- package/dist/astro/routes/api/admin/allowed-domains/index.mjs +12 -7
- package/dist/astro/routes/api/admin/api-tokens/_id_.mjs +4 -4
- package/dist/astro/routes/api/admin/api-tokens/index.mjs +7 -7
- package/dist/astro/routes/api/admin/briefing.mjs +41 -22
- package/dist/astro/routes/api/admin/byline-fields/_slug_/usage.mjs +4 -4
- package/dist/astro/routes/api/admin/byline-fields/_slug_.mjs +14 -10
- package/dist/astro/routes/api/admin/byline-fields/index.mjs +14 -10
- package/dist/astro/routes/api/admin/byline-fields/reorder.mjs +14 -10
- package/dist/astro/routes/api/admin/bylines/_id_/index.mjs +25 -19
- package/dist/astro/routes/api/admin/bylines/_id_/translations.mjs +25 -19
- package/dist/astro/routes/api/admin/bylines/index.mjs +25 -19
- package/dist/astro/routes/api/admin/comments/_id_/status.mjs +20 -16
- package/dist/astro/routes/api/admin/comments/_id_.mjs +10 -7
- package/dist/astro/routes/api/admin/comments/bulk.mjs +18 -13
- package/dist/astro/routes/api/admin/comments/counts.mjs +10 -7
- package/dist/astro/routes/api/admin/comments/index.mjs +18 -13
- package/dist/astro/routes/api/admin/context/_id_/history.mjs +51 -39
- package/dist/astro/routes/api/admin/context/_id_/index.mjs +51 -39
- package/dist/astro/routes/api/admin/context/_id_/review.mjs +57 -44
- package/dist/astro/routes/api/admin/context/_id_/supersede.mjs +57 -44
- package/dist/astro/routes/api/admin/context/diff.mjs +56 -43
- package/dist/astro/routes/api/admin/context/index.mjs +57 -44
- package/dist/astro/routes/api/admin/context/stale.mjs +56 -43
- package/dist/astro/routes/api/admin/hitl-requests/_id_/index.mjs +51 -39
- package/dist/astro/routes/api/admin/hitl-requests/_id_/resolve.mjs +56 -43
- package/dist/astro/routes/api/admin/hitl-requests/index.mjs +56 -43
- package/dist/astro/routes/api/admin/hooks/exclusive/_hookName_.mjs +52 -40
- package/dist/astro/routes/api/admin/hooks/exclusive/index.mjs +3 -3
- package/dist/astro/routes/api/admin/oauth-clients/_id_.mjs +7 -7
- package/dist/astro/routes/api/admin/oauth-clients/index.mjs +7 -7
- package/dist/astro/routes/api/admin/plugins/_id_/disable.mjs +78 -68
- package/dist/astro/routes/api/admin/plugins/_id_/enable.mjs +78 -68
- package/dist/astro/routes/api/admin/plugins/_id_/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/_id_/uninstall.mjs +78 -67
- package/dist/astro/routes/api/admin/plugins/_id_/update.mjs +78 -67
- package/dist/astro/routes/api/admin/plugins/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/icon.mjs +2 -2
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/marketplace/_id_/install.mjs +78 -67
- package/dist/astro/routes/api/admin/plugins/marketplace/index.mjs +71 -60
- package/dist/astro/routes/api/admin/plugins/updates.mjs +71 -60
- package/dist/astro/routes/api/admin/review-requests/_id_/image.mjs +38 -23
- package/dist/astro/routes/api/admin/review-requests/_id_/index.mjs +46 -36
- package/dist/astro/routes/api/admin/review-requests/_id_/resolve.mjs +63 -52
- package/dist/astro/routes/api/admin/review-requests/_id_/revoke.mjs +9 -9
- package/dist/astro/routes/api/admin/review-requests/index.mjs +61 -50
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/index.mjs +71 -60
- package/dist/astro/routes/api/admin/themes/marketplace/_id_/thumbnail.mjs +2 -2
- package/dist/astro/routes/api/admin/themes/marketplace/index.mjs +71 -60
- package/dist/astro/routes/api/admin/users/_id_/disable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/enable.mjs +1 -1
- package/dist/astro/routes/api/admin/users/_id_/index.mjs +11 -7
- package/dist/astro/routes/api/admin/users/_id_/send-recovery.mjs +3 -3
- package/dist/astro/routes/api/admin/users/index.mjs +12 -7
- package/dist/astro/routes/api/auth/dev-bypass.mjs +4 -4
- package/dist/astro/routes/api/auth/invite/accept.mjs +1 -1
- package/dist/astro/routes/api/auth/invite/complete.mjs +17 -12
- package/dist/astro/routes/api/auth/invite/index.mjs +14 -9
- package/dist/astro/routes/api/auth/invite/register-options.mjs +16 -11
- package/dist/astro/routes/api/auth/logout.mjs +2 -2
- package/dist/astro/routes/api/auth/magic-link/send.mjs +17 -12
- package/dist/astro/routes/api/auth/magic-link/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/me.mjs +14 -11
- 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 +3 -3
- package/dist/astro/routes/api/auth/passkey/_id_.mjs +12 -7
- package/dist/astro/routes/api/auth/passkey/index.mjs +1 -1
- package/dist/astro/routes/api/auth/passkey/options.mjs +19 -14
- package/dist/astro/routes/api/auth/passkey/register/options.mjs +16 -11
- package/dist/astro/routes/api/auth/passkey/register/verify.mjs +17 -12
- package/dist/astro/routes/api/auth/passkey/verify.mjs +17 -12
- package/dist/astro/routes/api/auth/setup-token/index.mjs +6 -6
- package/dist/astro/routes/api/auth/setup-token/verify.mjs +2 -2
- package/dist/astro/routes/api/auth/signup/complete.mjs +17 -12
- package/dist/astro/routes/api/auth/signup/request.mjs +17 -12
- package/dist/astro/routes/api/auth/signup/verify.mjs +1 -1
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.d.mts +14 -11
- package/dist/astro/routes/api/comments/_collection_/_contentId_/index.mjs +23 -19
- package/dist/astro/routes/api/comments/_collection_/_contentId_/reactions.mjs +23 -18
- package/dist/astro/routes/api/content/_collection_/_id_/compare.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/discard-draft.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/duplicate.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/permanent.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/preview-url.mjs +25 -20
- package/dist/astro/routes/api/content/_collection_/_id_/publish.mjs +41 -31
- package/dist/astro/routes/api/content/_collection_/_id_/release-readiness.mjs +14 -9
- package/dist/astro/routes/api/content/_collection_/_id_/restore.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_/revisions.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/schedule.mjs +41 -31
- package/dist/astro/routes/api/content/_collection_/_id_/terms/_taxonomy_.mjs +30 -20
- package/dist/astro/routes/api/content/_collection_/_id_/translations.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/_id_/unpublish.mjs +8 -8
- package/dist/astro/routes/api/content/_collection_/_id_.mjs +25 -14
- package/dist/astro/routes/api/content/_collection_/authors.mjs +2 -2
- package/dist/astro/routes/api/content/_collection_/index.mjs +25 -14
- package/dist/astro/routes/api/content/_collection_/trash.mjs +13 -8
- package/dist/astro/routes/api/dashboard.mjs +21 -13
- 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 +30 -23
- package/dist/astro/routes/api/import/wordpress/analyze.mjs +13 -10
- package/dist/astro/routes/api/import/wordpress/execute.d.mts +14 -11
- package/dist/astro/routes/api/import/wordpress/execute.mjs +58 -47
- package/dist/astro/routes/api/import/wordpress/media.d.mts +14 -11
- package/dist/astro/routes/api/import/wordpress/media.mjs +17 -14
- package/dist/astro/routes/api/import/wordpress/prepare.mjs +61 -48
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.d.mts +15 -12
- package/dist/astro/routes/api/import/wordpress/rewrite-urls.mjs +58 -45
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.d.mts +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/analyze.mjs +32 -26
- package/dist/astro/routes/api/import/wordpress-plugin/callback.mjs +1 -1
- package/dist/astro/routes/api/import/wordpress-plugin/execute.d.mts +14 -11
- package/dist/astro/routes/api/import/wordpress-plugin/execute.mjs +63 -52
- package/dist/astro/routes/api/integration/artifact.mjs +9 -9
- package/dist/astro/routes/api/integration/dispatch.mjs +14 -14
- package/dist/astro/routes/api/integrations/_provider_.mjs +9 -9
- package/dist/astro/routes/api/integrations/index.mjs +8 -8
- package/dist/astro/routes/api/manifest.mjs +5 -5
- package/dist/astro/routes/api/mcp.mjs +141 -93
- package/dist/astro/routes/api/media/_id_/confirm.mjs +15 -12
- package/dist/astro/routes/api/media/_id_.mjs +14 -9
- package/dist/astro/routes/api/media/file/_...key_.mjs +1 -1
- package/dist/astro/routes/api/media/providers/_providerId_/_itemId_.mjs +2 -2
- package/dist/astro/routes/api/media/providers/_providerId_/index.mjs +2 -2
- package/dist/astro/routes/api/media/providers/index.mjs +2 -2
- package/dist/astro/routes/api/media/upload-url.mjs +16 -13
- package/dist/astro/routes/api/media.mjs +19 -16
- package/dist/astro/routes/api/menus/_name_/items/_id_.mjs +57 -44
- package/dist/astro/routes/api/menus/_name_/items.mjs +57 -44
- package/dist/astro/routes/api/menus/_name_/reorder.mjs +57 -44
- package/dist/astro/routes/api/menus/_name_/translations.mjs +57 -44
- package/dist/astro/routes/api/menus/_name_.mjs +57 -44
- package/dist/astro/routes/api/menus/index.mjs +57 -44
- package/dist/astro/routes/api/oauth/authorize.mjs +7 -7
- package/dist/astro/routes/api/oauth/device/authorize.mjs +5 -5
- 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 +5 -5
- package/dist/astro/routes/api/oauth/token/revoke.mjs +5 -5
- package/dist/astro/routes/api/oauth/token.mjs +6 -6
- package/dist/astro/routes/api/openapi.json.mjs +10 -5
- package/dist/astro/routes/api/plugins/_pluginId_/_...path_.mjs +4 -4
- package/dist/astro/routes/api/redirects/404s/index.mjs +15 -13
- package/dist/astro/routes/api/redirects/404s/summary.mjs +15 -13
- package/dist/astro/routes/api/redirects/_id_.mjs +57 -44
- package/dist/astro/routes/api/redirects/index.mjs +57 -44
- 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 +73 -62
- package/dist/astro/routes/api/schema/collections/_slug_/fields/index.mjs +73 -62
- package/dist/astro/routes/api/schema/collections/_slug_/fields/reorder.mjs +73 -62
- package/dist/astro/routes/api/schema/collections/_slug_/index.mjs +73 -62
- package/dist/astro/routes/api/schema/collections/index.mjs +73 -62
- package/dist/astro/routes/api/schema/index.mjs +13 -10
- package/dist/astro/routes/api/schema/orphans/_slug_.mjs +71 -60
- package/dist/astro/routes/api/schema/orphans/index.mjs +71 -60
- package/dist/astro/routes/api/search/enable.mjs +20 -13
- package/dist/astro/routes/api/search/index.mjs +19 -12
- package/dist/astro/routes/api/search/rebuild.mjs +20 -13
- package/dist/astro/routes/api/search/stats.mjs +12 -7
- package/dist/astro/routes/api/search/suggest.mjs +19 -12
- package/dist/astro/routes/api/sections/_slug_.mjs +57 -44
- package/dist/astro/routes/api/sections/index.mjs +57 -44
- package/dist/astro/routes/api/settings/email.mjs +5 -5
- package/dist/astro/routes/api/settings/reviews.mjs +11 -11
- package/dist/astro/routes/api/settings.mjs +57 -44
- package/dist/astro/routes/api/setup/admin-verify.mjs +19 -14
- package/dist/astro/routes/api/setup/admin.mjs +17 -12
- package/dist/astro/routes/api/setup/dev-bypass.mjs +44 -32
- package/dist/astro/routes/api/setup/dev-reset.mjs +2 -2
- package/dist/astro/routes/api/setup/index.mjs +47 -34
- package/dist/astro/routes/api/setup/status.mjs +3 -3
- package/dist/astro/routes/api/snapshot.mjs +9 -9
- package/dist/astro/routes/api/system/heartbeat.mjs +2 -2
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_/translations.mjs +60 -47
- package/dist/astro/routes/api/taxonomies/_name_/terms/_slug_.mjs +60 -47
- package/dist/astro/routes/api/taxonomies/_name_/terms/index.mjs +60 -47
- package/dist/astro/routes/api/taxonomies/index.mjs +60 -47
- package/dist/astro/routes/api/themes/preview.mjs +7 -7
- 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 +56 -43
- package/dist/astro/routes/api/widget-areas/_name_/widgets/_id_.mjs +57 -44
- package/dist/astro/routes/api/widget-areas/_name_/widgets.mjs +57 -44
- package/dist/astro/routes/api/widget-areas/_name_.mjs +53 -41
- package/dist/astro/routes/api/widget-areas/index.mjs +57 -44
- package/dist/astro/routes/api/widget-components.mjs +2 -2
- package/dist/astro/routes/robots.txt.mjs +14 -9
- package/dist/astro/routes/sitemap-_collection_.xml.mjs +20 -16
- package/dist/astro/routes/sitemap.xml.mjs +19 -15
- package/dist/astro/session-driver.d.mts +1 -1
- package/dist/astro/session-driver.mjs +8 -3
- package/dist/astro/types.d.mts +21 -14
- package/dist/{atomic-authority-CnBQJ14T.mjs → atomic-authority-Bf5QZboB.mjs} +2 -2
- package/dist/{audit-Cl495Ze3.mjs → audit-hXJBTPY0.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-DbjgJdlo.mjs → auth-control-guard-DpUP6Fs_.mjs} +1 -1
- package/dist/{authorize-DDmgmnW-.mjs → authorize-DWNOqMKq.mjs} +1 -1
- package/dist/{briefing-DsD-Ouwc.mjs → briefing-BzvBeIJh.mjs} +1 -1
- package/dist/{briefing-COw-WcYz.mjs → briefing-DYiV93rg.mjs} +995 -7
- package/dist/{bundle-bhiszAui.mjs → bundle-DWn5eFKz.mjs} +2 -2
- package/dist/{byline-TYk2kad6.mjs → byline-3qjp1-oa.mjs} +65 -14
- package/dist/{byline-fields-CKhPED5o.d.mts → byline-fields-Bne2v0ti.d.mts} +42 -38
- package/dist/{byline-fields-BKj5f3Ub.mjs → byline-fields-DRMCc0V_.mjs} +1 -1
- package/dist/{byline-fields-DZ46DF10.mjs → byline-fields-wWu2Cb3l.mjs} +3 -3
- package/dist/{byline-registry-CJihchD1.mjs → byline-registry-Caj0_gbU.mjs} +1 -1
- package/dist/{bylines-6T9iVC9j.mjs → bylines-BSn9O1Wx.mjs} +3 -3
- package/dist/{bylines-CvTSCAw9.mjs → bylines-CGuJi-zu.mjs} +5 -5
- package/dist/{patterns-Ay-4KImK.mjs → cache-DsEbwFVE.mjs} +51 -1
- package/dist/{chunks-C8vSD_5L.mjs → chunks-Bb56aCtB.mjs} +1 -1
- package/dist/cli/index.mjs +488 -58
- package/dist/cli/plugin-kit.d.mts +14 -11
- package/dist/cli/plugin-kit.mjs +2 -2
- package/dist/client/external-auth-headers.d.mts +1 -1
- package/dist/client/index.d.mts +16 -13
- package/dist/client/index.mjs +2 -2
- package/dist/{client-factory-C1ZQCMog.mjs → client-factory-BLbm250o.mjs} +1 -1
- package/dist/{comment-DAQfUjqt.mjs → comment-BWDG1nQm.mjs} +2 -2
- package/dist/{comment-reaction-Dp3G7UZc.mjs → comment-reaction-B7pLTlQ7.mjs} +1 -1
- package/dist/{comments-BrvIaRAx.mjs → comments-xkten8nV.mjs} +1 -1
- package/dist/config-6R0bchVE.mjs +125 -0
- package/dist/{content-CIKsrvU9.mjs → content-BigS8BAv.mjs} +302 -45
- package/dist/content-Dr22fzA_.mjs +390 -0
- package/dist/{content-refresh-BilzqcLt.mjs → content-refresh-DJuFIqQ4.mjs} +14 -8
- package/dist/content-storage/index.d.mts +180 -0
- package/dist/content-storage/index.mjs +29 -0
- package/dist/content-storage/store.d.mts +3 -0
- package/dist/content-storage/store.mjs +5 -0
- package/dist/{review-payload-Bap86e75.mjs → content-write-DAZCNKWl.mjs} +838 -131
- package/dist/{context-DAs_MZjJ.mjs → context-0806nV9h.mjs} +292 -23
- package/dist/{context-DVTvucNb.mjs → context-CCsI5nTK.mjs} +2 -2
- package/dist/{context-route-helpers-BP-UJ4u8.mjs → context-route-helpers-TP3EqxRQ.mjs} +2 -2
- package/dist/{dashboard-BAjWCGCP.mjs → dashboard-CSrnhBO6.mjs} +4 -4
- package/dist/database/batch.d.mts +1 -1
- package/dist/database/batch.mjs +1 -1
- package/dist/database/d1/index.d.mts +14 -11
- package/dist/database/d1/index.mjs +4 -4
- package/dist/database/instrumentation.mjs +3 -2
- 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-Dh0rNlh1.mjs → device-flow-SoZh-HvN.mjs} +3 -3
- package/dist/{discovery-V0e0Gg8j.mjs → discovery-49qXmdwv.mjs} +4 -4
- package/dist/{enrich-B7PIJ8Iy.mjs → enrich-CAMsD1aT.mjs} +1 -1
- package/dist/{error-B5a45Tfb.mjs → error-sL4aemcW.mjs} +2 -0
- package/dist/{evidence-Vnp_fQbC.mjs → evidence-B3O9_VKm.mjs} +7 -7
- package/dist/{field-defs-cache-aXUeXJdC.mjs → field-defs-cache-dn5Tw79A.mjs} +4 -4
- package/dist/{fts-manager-BrPpYtK0.mjs → fts-manager-Zu5ITic0.mjs} +1 -1
- package/dist/{hitl-requests-BxMMON3s.mjs → hitl-requests-B5vOPseK.mjs} +2 -2
- package/dist/{hitl-route-helpers-sdnjpx2k.mjs → hitl-route-helpers-C3icmGdj.mjs} +5 -5
- package/dist/hook-events-BQw73jc7.d.mts +32 -0
- package/dist/{import-C2-v4FCs.mjs → import-CKnKQj3f.mjs} +9 -9
- package/dist/{index-BVGe04wF.d.mts → index-CLj17kW9.d.mts} +12 -5
- package/dist/index.d.mts +19 -16
- package/dist/index.mjs +107 -98
- package/dist/{integration-credentials-DMEXZU2J.mjs → integration-credentials-DpuRw1kx.mjs} +2 -2
- package/dist/{jsonld-XWmmAoVo.d.mts → jsonld-CN91qtDw.d.mts} +2 -2
- package/dist/{load-DvCVppOF.mjs → load-CiRTddkJ.mjs} +1 -1
- package/dist/{loader-Dp6zLmQm.mjs → loader-CCwWFQSh.mjs} +16 -5
- package/dist/{manifest-schema-CCvogfrP.mjs → manifest-schema-DaQpgyTB.mjs} +1 -1
- package/dist/{mcp-reviewed-executor-B8Gbin3T.mjs → mcp-reviewed-executor-DA6Q9sDc.mjs} +6 -6
- package/dist/media/image-endpoint.mjs +1 -1
- package/dist/media/index.d.mts +1 -1
- package/dist/media/index.mjs +2 -2
- package/dist/media/local-runtime.d.mts +16 -13
- package/dist/media/local-runtime.mjs +3 -3
- package/dist/{media-C5ba8fvI.mjs → media-BjH5OD-A.mjs} +1 -1
- package/dist/{media-allowlist-DQvscVkS.mjs → media-allowlist-C8HJ2O61.mjs} +1 -1
- package/dist/{menus-CyNpBQrX.mjs → menus-CbBi7Ad7.mjs} +2 -2
- package/dist/{menus-w5xwT-f5.mjs → menus-D0c8CeVg.mjs} +7 -7
- package/dist/migration-DJuj7ZwN.mjs +526 -0
- package/dist/{migrations-CLlX25HO.mjs → migrations-BAjF60cl.mjs} +1 -1
- package/dist/{oauth-authorization-CdqJZUMf.mjs → oauth-authorization-CSSRMOKn.mjs} +4 -4
- package/dist/{oauth-clients-CHNb9MAZ.mjs → oauth-clients-DX5HIJJv.mjs} +2 -2
- package/dist/object-cache/memory.d.mts +1 -1
- package/dist/{object-cache-mxCW-Rpt.mjs → object-cache-DyI1SOBK.mjs} +3 -1
- package/dist/owned-metadata-BPmUjZqI.mjs +69 -0
- package/dist/page/index.d.mts +15 -12
- package/dist/page/index.mjs +1 -1
- package/dist/{parse-THHCpJLB.mjs → parse-C6kCR1OT.mjs} +1 -1
- package/dist/plugin-utils.d.mts +14 -11
- package/dist/plugins/adapt-sandbox-entry.d.mts +14 -11
- package/dist/plugins/adapt-sandbox-entry.mjs +1 -1
- package/dist/{plugins-pfraURNp.mjs → plugins-V0W65r3v.mjs} +16 -962
- package/dist/{policy-B6mVa7ib.mjs → policy-DbceGc4P.mjs} +2 -2
- package/dist/{preview-Bh7D7F27.mjs → preview-CWiIjMDi.mjs} +2 -2
- package/dist/{provider-loader-DT7vQ5FI.d.mts → provider-loader-oLKm1AU8.d.mts} +1 -1
- package/dist/{public-url-Ccv0Xmue.d.mts → public-url-CEC1vj02.d.mts} +2 -2
- package/dist/{public-url-BvnTaacI.d.mts → public-url-CKrUov8D.d.mts} +1 -1
- package/dist/{publication-authorization-B_HJSnzR.mjs → publication-authorization-wMR-tEQ_.mjs} +43 -17
- package/dist/{query-xspvw7Ui.mjs → query-DDi367tF.mjs} +14 -14
- package/dist/{query-DLeahg3x.mjs → query-DLnnpEuf.mjs} +4 -4
- package/dist/{rate-limit-BsBr_U9g.mjs → rate-limit-DeVLLe4z.mjs} +2 -2
- package/dist/{redirect-BQFa1THe.mjs → redirect-CJ-FAbNK.mjs} +2 -2
- package/dist/{redirects-DJcsgz_X.mjs → redirects-BKi6mek4.mjs} +4 -5
- package/dist/{redirects-CVfxefrz.mjs → redirects-I78-ZYLV.mjs} +5 -386
- package/dist/{registry-Dclv9iHv.mjs → registry-zXXZezu-.mjs} +7 -7
- package/dist/{release-B3Q-9B7N.mjs → release-Cpi0-Bzq.mjs} +173 -22
- package/dist/request-context.d.mts +30 -0
- package/dist/{request-meta-CjORiJQ_.mjs → request-meta-DZYuLXx_.mjs} +1 -1
- package/dist/review-payload-Bhi52CbI.mjs +112 -0
- package/dist/{review-requests-CcSUTm_l.mjs → review-requests-C-ScxD9n.mjs} +2 -2
- package/dist/{review-requests-CUVn0RBl.mjs → review-requests-DZYM51yI.mjs} +2 -2
- package/dist/{review-route-helpers-CKBfGKCi.mjs → review-route-helpers-DXNDyx_q.mjs} +2 -2
- package/dist/{revision-W6FDfDqx.mjs → revision-B_HYO2AE.mjs} +42 -7
- package/dist/revisions-CQ7rMP5d.mjs +55 -0
- package/dist/{revocation-C_ZQvGRT.mjs → revocation-4we8kfBg.mjs} +2 -2
- package/dist/{runner-CRU7BXjr.mjs → runner-CuG8o1uW.mjs} +558 -487
- package/dist/{runner-SoP1rphP.d.mts → runner-DXQkyPeX.d.mts} +1 -1
- package/dist/{runs-BtaAiLTw.mjs → runs-BjgLfqCn.mjs} +5 -5
- package/dist/runtime-Bs2JMbb2.d.mts +45 -0
- package/dist/runtime-Ch5G-tnG.mjs +400 -0
- package/dist/runtime.d.mts +15 -12
- package/dist/runtime.mjs +9 -4
- package/dist/schema-BA05k0TN.mjs +8 -0
- package/dist/{search-BI9uKr7U.mjs → search-DMrzhfx_.mjs} +4 -98
- package/dist/{secrets-D_pergcD.mjs → secrets-CIYcw9T9.mjs} +4 -4
- package/dist/{sections-BqqYq9RW.mjs → sections-BTrSEhqB.mjs} +2 -2
- package/dist/seed/index.d.mts +2 -2
- package/dist/seed/index.mjs +38 -26
- package/dist/seo/index.d.mts +3 -3
- package/dist/seo/index.mjs +12 -9
- package/dist/{seo-Bs_DUxJf.mjs → seo-Cv7ud_m2.mjs} +44 -5
- package/dist/{seo-B-5PsaJO.mjs → seo-DkjtBh-y.mjs} +1 -1
- package/dist/{service-W2xuGLgw.mjs → service-BBJM08uD.mjs} +2 -2
- package/dist/{service-B65aJsN7.mjs → service-CkMuD5AE.mjs} +3 -3
- package/dist/{settings-DsBzKeUQ.mjs → settings-BUONaNnG.mjs} +7 -7
- package/dist/{settings-CyJ2-MKx.mjs → settings-CI-NtWEc.mjs} +2 -2
- package/dist/{setup-complete-DeivSVJi.mjs → setup-complete-DoVbVrHx.mjs} +1 -1
- package/dist/{site-activity-DU0UPDji.mjs → site-activity-hpfJkmxQ.mjs} +1 -1
- package/dist/{site-context-Dic2jHuw.mjs → site-context-BW3GRCJH.mjs} +15 -15
- package/dist/{site-url-Tw6CfBB2.mjs → site-url-CYatfe3q.mjs} +1 -1
- package/dist/{state-DM7blWfT.mjs → state-CKkqoA6i.mjs} +1 -1
- package/dist/storage/local.d.mts +1 -1
- package/dist/storage/local.mjs +1 -1
- package/dist/storage/s3.d.mts +1 -1
- package/dist/storage/s3.mjs +2 -2
- package/dist/{store-32e6dfD-.mjs → store-BzaAtszy.mjs} +3 -3
- package/dist/submission-DLgjQ_Ew.mjs +205 -0
- package/dist/{taxonomies-BFsUR7kc.mjs → taxonomies-C02-Vuh3.mjs} +3 -3
- package/dist/{taxonomies-lWGNLKgn.mjs → taxonomies-D5wO9zmB.mjs} +7 -7
- package/dist/{taxonomy-DN6i1upz.mjs → taxonomy-BK7JmHlo.mjs} +53 -3
- package/dist/terms-EskuqbKE.mjs +104 -0
- package/dist/text-extraction-CdqMGYQK.mjs +96 -0
- package/dist/{tokens-D-StaTAQ.mjs → tokens-D8HEH277.mjs} +1 -1
- package/dist/{trusted-proxy-hYufGFPK.mjs → trusted-proxy-Dg3U9Lrv.mjs} +1 -1
- package/dist/{types-RFzE_V1M.mjs → types-BI3ULB3A.mjs} +2 -2
- package/dist/{types-CJynaYg1.d.mts → types-C3jUu4Bc.d.mts} +90 -34
- package/dist/{types-B--VyN3n.d.mts → types-Dpv_MvwZ.d.mts} +1 -1
- package/dist/{types-CgcOeaiQ.d.mts → types-ex-UrNlz.d.mts} +1 -1
- package/dist/types-qOEot0UQ.d.mts +83 -0
- package/dist/ui/server-runtime.d.mts +18 -15
- package/dist/ui/server-runtime.mjs +29 -25
- package/dist/{user-Btai9rl3.mjs → user-Bl2_8rhJ.mjs} +2 -2
- package/dist/{utils-CYxGuO_P.mjs → utils-CklSLz9F.mjs} +2 -2
- package/dist/{validate-C05z0m7M.mjs → validate-C-yk7mmX.mjs} +3 -3
- package/dist/{validate-kmN2lS8H.d.mts → validate-DUscf6VG.d.mts} +3 -3
- package/dist/version-BlE1LEPb.mjs +6 -0
- package/dist/version-store-BXv2D0de.mjs +208 -0
- package/dist/version-store-B_THJCc0.d.mts +98 -0
- package/dist/{widgets-BOrDZdQ3.mjs → widgets-9xHBhL_L.mjs} +3 -3
- package/dist/{wordpress-slugs-ROzITIBK.mjs → wordpress-slugs-yaeD7cxn.mjs} +1 -1
- package/dist/{worker-Bg35R37I.mjs → worker-CC_Rt1pB.mjs} +10 -10
- package/dist/write-intent-DuHVqks9.mjs +108 -0
- package/dist/{zod-generator-DkrWuID7.mjs → zod-generator-B5Pt8fv0.mjs} +2 -2
- package/package.json +16 -4
- package/dist/cache-B5NSHhxG.mjs +0 -52
- package/dist/cron-C7HCJPPl.mjs +0 -271
- package/dist/schema-CosVhHJt.mjs +0 -8
- package/dist/submission-DJmRejGR.mjs +0 -411
- package/dist/version-BnLdwIT1.mjs +0 -6
- /package/dist/{actor-DxUAJgQX.mjs → actor-D0AW80ld.mjs} +0 -0
- /package/dist/{adapter-symbols-Bq3JsWGM.d.mts → adapter-symbols-B9mi-BUh.d.mts} +0 -0
- /package/dist/{adapters-C8nRpUuj.d.mts → adapters-lDnJjNDz.d.mts} +0 -0
- /package/dist/{api-tokens-0N3nafqZ.mjs → api-tokens-CdfsE9PL.mjs} +0 -0
- /package/dist/{base64-Cz-aU0X1.mjs → base64-qvSs0Gxy.mjs} +0 -0
- /package/dist/{challenge-store-BPn3goP9.mjs → challenge-store-7IZ_NqWg.mjs} +0 -0
- /package/dist/{components-rFN8NH3N.mjs → components-JA6tFHmE.mjs} +0 -0
- /package/dist/{context-types-CPWAJRs5.mjs → context-types-DDIJhGLs.mjs} +0 -0
- /package/dist/{default-BS6VQRkB.mjs → default-C2azCFSB.mjs} +0 -0
- /package/dist/{email-console-GqK6hgMJ.mjs → email-console-BYQp_5Qr.mjs} +0 -0
- /package/dist/{escape-CE7xOWzJ.mjs → escape-4_NNa6GR.mjs} +0 -0
- /package/dist/{experimental-workflows-BbxpWwBy.mjs → experimental-workflows-CPNiI2EL.mjs} +0 -0
- /package/dist/{forgeway-account-DcTxh3Gw.mjs → forgeway-account-YzraapbX.mjs} +0 -0
- /package/dist/{hash-D2Rqd2J2.mjs → hash-qSYPMJ8w.mjs} +0 -0
- /package/dist/{media-url-D9kdpoLS.mjs → media-url-D5E1a47B.mjs} +0 -0
- /package/dist/{mime-BnVhH671.mjs → mime-FkfazULS.mjs} +0 -0
- /package/dist/{mode-D0gePRtf.mjs → mode-C3RI5Z5t.mjs} +0 -0
- /package/dist/{normalize-aTwryvvi.mjs → normalize-DrmlLn40.mjs} +0 -0
- /package/dist/{oauth-authority-P5YMSk2z.mjs → oauth-authority-DVlLFhsZ.mjs} +0 -0
- /package/dist/{oauth-state-store-CMqLdo4I.mjs → oauth-state-store-nf-78RbK.mjs} +0 -0
- /package/dist/{options-JiLWB6Bt.mjs → options-yFkLUuTw.mjs} +0 -0
- /package/dist/{output-7HDrYTSQ.mjs → output-ljHaxIHX.mjs} +0 -0
- /package/dist/{parser-kettsjWc.mjs → parser-CTlxybRo.mjs} +0 -0
- /package/dist/{passkey-config-DVzQ3dv3.mjs → passkey-config-BLon3ct9.mjs} +0 -0
- /package/dist/{placeholder-DJLP_HY7.d.mts → placeholder-DdZV3I8x.d.mts} +0 -0
- /package/dist/{portable-text-tQhvPLf1.mjs → portable-text-CSbRjM-T.mjs} +0 -0
- /package/dist/{portable-text-BE7nszX6.d.mts → portable-text-HNmwL-7L.d.mts} +0 -0
- /package/dist/{process-cache-C19OA3am.mjs → process-cache-CMy5M80h.mjs} +0 -0
- /package/dist/{provider-loader-DERzBMUz.mjs → provider-loader-DlaT1usE.mjs} +0 -0
- /package/dist/{public-discovery-BGyhuD5U.mjs → public-discovery-BnqYofSK.mjs} +0 -0
- /package/dist/{public-url-DFXUU6Wp.mjs → public-url-BHjYWuaN.mjs} +0 -0
- /package/dist/{public-url-sR8SVmTt.mjs → public-url-GQygrYmg.mjs} +0 -0
- /package/dist/{redirect-BxacnBYL.mjs → redirect-CokmLN5o.mjs} +0 -0
- /package/dist/{request-cache-8_ifFzVw.mjs → request-cache-CizvDoxV.mjs} +0 -0
- /package/dist/{resolve-DEKC4qVa.mjs → resolve-BxFGSKYu.mjs} +0 -0
- /package/dist/{runtime-env-CPTzh0mZ.mjs → runtime-env-DpYGy4pT.mjs} +0 -0
- /package/dist/{scheduled-publish-BxdShRGs.d.mts → scheduled-publish-eCNGpvNm.d.mts} +0 -0
- /package/dist/{seo-contributions-LEFs1d7w.mjs → seo-contributions-ZKqrqsdT.mjs} +0 -0
- /package/dist/{service-kQ5ljRzX.mjs → service-DeX1PRNt.mjs} +0 -0
- /package/dist/{session-user-eweCNKzW.mjs → session-user-D36BRaZY.mjs} +0 -0
- /package/dist/{setup-nonce-B6A5Y1ea.mjs → setup-nonce-B9IO7PbK.mjs} +0 -0
- /package/dist/{sidecar-client-BwPhhz-F.mjs → sidecar-client-2hx5G46s.mjs} +0 -0
- /package/dist/{slugify-kD31VIv2.mjs → slugify-DvoaEPtL.mjs} +0 -0
- /package/dist/{ssrf-C9dyjU8O.mjs → ssrf-DcD8vn3E.mjs} +0 -0
- /package/dist/{stable-hash-B9Tbb2f_.mjs → stable-hash-9RDJgfif.mjs} +0 -0
- /package/dist/{status-Bjf_uSrW.mjs → status-B2xUokyJ.mjs} +0 -0
- /package/dist/{transport-BrU1aDY5.mjs → transport-BHYE4pox.mjs} +0 -0
- /package/dist/{transport-CZbtxgKZ.d.mts → transport-CVU5rp7W.d.mts} +0 -0
- /package/dist/{types-DNBL-4Sn.mjs → types-B3Uq7Czg.mjs} +0 -0
- /package/dist/{types-DsJTXStN.d.mts → types-BJztoTbF.d.mts} +0 -0
- /package/dist/{types-COvyXIp7.mjs → types-BgUxCuwu.mjs} +0 -0
- /package/dist/{types-KFzuijKE.d.mts → types-C0heD9oI.d.mts} +0 -0
- /package/dist/{types-B03h5jt_.d.mts → types-DheoByey.d.mts} +0 -0
- /package/dist/{types-SlLXjRpg.d.mts → types-I5LHzk_M.d.mts} +0 -0
- /package/dist/{types-PLJ9hlhh.mjs → types-Nm0cMxEh.mjs} +0 -0
- /package/dist/{types-CtGSEKEJ.d.mts → types-PxxPTFSl.d.mts} +0 -0
- /package/dist/{url-DGG3hw_h.mjs → url-Coamqvs4.mjs} +0 -0
- /package/dist/{url-DUz3LbCs.mjs → url-dn4mFfCI.mjs} +0 -0
- /package/dist/{workers-build-5UQ4j69Q.mjs → workers-build-4926MPc0.mjs} +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { atomicBatch } from "./database/batch.mjs";
|
|
2
2
|
import { n as validateJsonFieldName } from "./validate-Co3j6T_K.mjs";
|
|
3
3
|
import { c as jsonExtractExpr } from "./dialect-helpers-C6xtO-Ui.mjs";
|
|
4
|
-
import { i as encodeCursor, r as decodeCursor } from "./types-
|
|
5
|
-
import { t as contentWriteChecks } from "./atomic-authority-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { t as MediaRepository } from "./media-
|
|
9
|
-
import { t as UserRepository } from "./user-
|
|
10
|
-
import { t as OptionsRepository } from "./options-
|
|
11
|
-
import { t as enrichImageMetadata } from "./enrich-
|
|
12
|
-
import { t as SeoRepository } from "./seo-
|
|
13
|
-
import { o as prepareContentMediaUsageCollectionStale } from "./content-refresh-
|
|
14
|
-
import { a as validateExternalUrl, i as stripCredentialHeaders, t as SsrfError } from "./ssrf-
|
|
15
|
-
import { t as CronAccessImpl } from "./cron-C7HCJPPl.mjs";
|
|
4
|
+
import { i as encodeCursor, r as decodeCursor } from "./types-BI3ULB3A.mjs";
|
|
5
|
+
import { t as contentWriteChecks } from "./atomic-authority-Bf5QZboB.mjs";
|
|
6
|
+
import { t as ContentRepository } from "./content-BigS8BAv.mjs";
|
|
7
|
+
import { o as invalidateCollectionCache } from "./object-cache-DyI1SOBK.mjs";
|
|
8
|
+
import { t as MediaRepository } from "./media-BjH5OD-A.mjs";
|
|
9
|
+
import { t as UserRepository } from "./user-Bl2_8rhJ.mjs";
|
|
10
|
+
import { t as OptionsRepository } from "./options-yFkLUuTw.mjs";
|
|
11
|
+
import { t as enrichImageMetadata } from "./enrich-CAMsD1aT.mjs";
|
|
12
|
+
import { t as SeoRepository } from "./seo-Cv7ud_m2.mjs";
|
|
13
|
+
import { o as prepareContentMediaUsageCollectionStale } from "./content-refresh-DJuFIqQ4.mjs";
|
|
14
|
+
import { a as validateExternalUrl, i as stripCredentialHeaders, t as SsrfError } from "./ssrf-DcD8vn3E.mjs";
|
|
16
15
|
import { sql } from "kysely";
|
|
17
16
|
import { ulid } from "ulidx";
|
|
17
|
+
import { Cron } from "croner";
|
|
18
18
|
|
|
19
19
|
//#region src/plugins/storage-query.ts
|
|
20
20
|
/**
|
|
@@ -222,7 +222,7 @@ var PluginStorageRepository = class {
|
|
|
222
222
|
/**
|
|
223
223
|
* Store multiple documents
|
|
224
224
|
*/
|
|
225
|
-
async putMany(items) {
|
|
225
|
+
async putMany(items, options = {}) {
|
|
226
226
|
if (items.length === 0) return;
|
|
227
227
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
228
228
|
await atomicBatch(this.db, { statements: items.map((item) => {
|
|
@@ -234,14 +234,17 @@ var PluginStorageRepository = class {
|
|
|
234
234
|
data: jsonData,
|
|
235
235
|
created_at: now,
|
|
236
236
|
updated_at: now
|
|
237
|
-
}).onConflict((oc) =>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
237
|
+
}).onConflict((oc) => {
|
|
238
|
+
const key = oc.columns([
|
|
239
|
+
"plugin_id",
|
|
240
|
+
"collection",
|
|
241
|
+
"id"
|
|
242
|
+
]);
|
|
243
|
+
return options.ifAbsent ? key.doNothing() : key.doUpdateSet({
|
|
244
|
+
data: jsonData,
|
|
245
|
+
updated_at: now
|
|
246
|
+
});
|
|
247
|
+
}).compile();
|
|
245
248
|
}) });
|
|
246
249
|
}
|
|
247
250
|
/**
|
|
@@ -327,6 +330,272 @@ var PluginStorageRepository = class {
|
|
|
327
330
|
}
|
|
328
331
|
};
|
|
329
332
|
|
|
333
|
+
//#endregion
|
|
334
|
+
//#region src/plugins/cron.ts
|
|
335
|
+
/**
|
|
336
|
+
* Plugin Cron System
|
|
337
|
+
*
|
|
338
|
+
* Provides scheduled task execution for plugins:
|
|
339
|
+
* - CronExecutor: claims overdue tasks, invokes per-plugin cron hook, updates next run.
|
|
340
|
+
* - CronAccessImpl: per-plugin API for schedule/cancel/list.
|
|
341
|
+
*
|
|
342
|
+
*/
|
|
343
|
+
/** Stale lock threshold in minutes */
|
|
344
|
+
const STALE_LOCK_MINUTES = 10;
|
|
345
|
+
const MAX_ONESHOT_RETRIES = 5;
|
|
346
|
+
/**
|
|
347
|
+
* Executes overdue cron tasks.
|
|
348
|
+
*
|
|
349
|
+
* Called by schedulers (NodeCronScheduler, PiggybackScheduler). Stateless —
|
|
350
|
+
* all state lives in the database.
|
|
351
|
+
*/
|
|
352
|
+
var CronExecutor = class {
|
|
353
|
+
resolveDb;
|
|
354
|
+
constructor(db, invokeCronHook) {
|
|
355
|
+
this.invokeCronHook = invokeCronHook;
|
|
356
|
+
this.resolveDb = typeof db === "function" ? db : () => db;
|
|
357
|
+
}
|
|
358
|
+
get db() {
|
|
359
|
+
return this.resolveDb();
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Process all overdue tasks.
|
|
363
|
+
*
|
|
364
|
+
* 1. Atomically claim tasks whose next_run_at <= now, status = idle, enabled = 1.
|
|
365
|
+
* 2. For each claimed task, invoke the plugin's cron hook.
|
|
366
|
+
* 3. On success: compute next_run_at and reset to idle, or delete one-shots.
|
|
367
|
+
* 4. On failure: reset to idle (retry on next tick).
|
|
368
|
+
*/
|
|
369
|
+
async tick() {
|
|
370
|
+
let processed = 0;
|
|
371
|
+
for (let index = 0; index < 10; index++) {
|
|
372
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
373
|
+
const lease = ulid();
|
|
374
|
+
const task = (await sql`
|
|
375
|
+
UPDATE _dineway_cron_tasks
|
|
376
|
+
SET status = 'running', locked_at = ${now}, lease_token = ${lease}
|
|
377
|
+
WHERE status = 'idle' AND enabled = 1 AND next_run_at <= ${now} AND id IN (
|
|
378
|
+
SELECT id FROM _dineway_cron_tasks
|
|
379
|
+
WHERE next_run_at <= ${now}
|
|
380
|
+
AND status = 'idle'
|
|
381
|
+
AND enabled = 1
|
|
382
|
+
ORDER BY next_run_at ASC
|
|
383
|
+
LIMIT 1
|
|
384
|
+
)
|
|
385
|
+
RETURNING id, plugin_id, task_name, schedule, is_oneshot, data, next_run_at
|
|
386
|
+
`.execute(this.db)).rows[0];
|
|
387
|
+
if (!task) break;
|
|
388
|
+
const ownedOccurrence = sql`id = ${task.id} AND status = 'running' AND enabled = 1 AND lease_token = ${lease}
|
|
389
|
+
AND schedule = ${task.schedule} AND next_run_at = ${task.next_run_at} AND data IS NOT DISTINCT FROM ${task.data}`;
|
|
390
|
+
let parsedData;
|
|
391
|
+
if (task.data) try {
|
|
392
|
+
parsedData = JSON.parse(task.data);
|
|
393
|
+
} catch {
|
|
394
|
+
console.error(`[cron] Invalid JSON data for ${task.plugin_id}:${task.task_name}, skipping`);
|
|
395
|
+
await sql`
|
|
396
|
+
UPDATE _dineway_cron_tasks
|
|
397
|
+
SET status = 'failed', enabled = 0, locked_at = NULL, lease_token = NULL
|
|
398
|
+
WHERE ${ownedOccurrence}
|
|
399
|
+
`.execute(this.db);
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
const event = {
|
|
403
|
+
executionId: `${task.id}:${task.is_oneshot ? task.schedule : task.next_run_at}`,
|
|
404
|
+
name: task.task_name,
|
|
405
|
+
data: parsedData,
|
|
406
|
+
scheduledAt: task.next_run_at
|
|
407
|
+
};
|
|
408
|
+
let hookFailed = false;
|
|
409
|
+
try {
|
|
410
|
+
await this.invokeCronHook(task.plugin_id, event);
|
|
411
|
+
} catch (error) {
|
|
412
|
+
hookFailed = true;
|
|
413
|
+
console.error(`[cron] Hook failed for ${task.plugin_id}:${task.task_name}:`, error);
|
|
414
|
+
}
|
|
415
|
+
if (task.is_oneshot) if (hookFailed) {
|
|
416
|
+
const retryMeta = parsedData?.__dineway != null && typeof parsedData.__dineway === "object" ? parsedData.__dineway : void 0;
|
|
417
|
+
const rawRetryCount = retryMeta?.retryCount;
|
|
418
|
+
const retryCount = typeof rawRetryCount === "number" && Number.isFinite(rawRetryCount) && rawRetryCount > 0 ? Math.floor(rawRetryCount) : 0;
|
|
419
|
+
if (retryCount >= MAX_ONESHOT_RETRIES) {
|
|
420
|
+
console.error(`[cron] One-shot task ${task.plugin_id}:${task.task_name} exceeded ${MAX_ONESHOT_RETRIES} retries, retaining failed task`);
|
|
421
|
+
await sql`
|
|
422
|
+
UPDATE _dineway_cron_tasks SET status = 'failed', enabled = 0, locked_at = NULL, lease_token = NULL WHERE ${ownedOccurrence}
|
|
423
|
+
`.execute(this.db);
|
|
424
|
+
} else {
|
|
425
|
+
const backoffMs = 6e4 * Math.pow(2, retryCount);
|
|
426
|
+
await sql`
|
|
427
|
+
UPDATE _dineway_cron_tasks
|
|
428
|
+
SET status = 'idle', locked_at = NULL, lease_token = NULL, next_run_at = ${new Date(Date.now() + backoffMs).toISOString()}, data = ${JSON.stringify({
|
|
429
|
+
...parsedData,
|
|
430
|
+
__dineway: {
|
|
431
|
+
...retryMeta,
|
|
432
|
+
retryCount: retryCount + 1
|
|
433
|
+
}
|
|
434
|
+
})}
|
|
435
|
+
WHERE ${ownedOccurrence}
|
|
436
|
+
`.execute(this.db);
|
|
437
|
+
}
|
|
438
|
+
} else await sql`
|
|
439
|
+
DELETE FROM _dineway_cron_tasks WHERE ${ownedOccurrence}
|
|
440
|
+
`.execute(this.db);
|
|
441
|
+
else await sql`
|
|
442
|
+
UPDATE _dineway_cron_tasks
|
|
443
|
+
SET status = 'idle',
|
|
444
|
+
locked_at = NULL, lease_token = NULL,
|
|
445
|
+
last_run_at = ${now},
|
|
446
|
+
next_run_at = ${nextCronTime(task.schedule)}
|
|
447
|
+
WHERE ${ownedOccurrence}
|
|
448
|
+
`.execute(this.db);
|
|
449
|
+
await sql`UPDATE _dineway_cron_tasks SET status = 'idle', locked_at = NULL, lease_token = NULL
|
|
450
|
+
WHERE id = ${task.id} AND status = 'running' AND lease_token = ${lease}`.execute(this.db);
|
|
451
|
+
processed++;
|
|
452
|
+
}
|
|
453
|
+
return processed;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Recover tasks stuck in 'running' for more than STALE_LOCK_MINUTES.
|
|
457
|
+
* These likely crashed mid-execution.
|
|
458
|
+
*/
|
|
459
|
+
async recoverStaleLocks() {
|
|
460
|
+
const result = await sql`
|
|
461
|
+
UPDATE _dineway_cron_tasks
|
|
462
|
+
SET status = 'idle', locked_at = NULL, lease_token = NULL
|
|
463
|
+
WHERE status = 'running'
|
|
464
|
+
AND locked_at < ${(/* @__PURE__ */ new Date(Date.now() - STALE_LOCK_MINUTES * 60 * 1e3)).toISOString()}
|
|
465
|
+
`.execute(this.db);
|
|
466
|
+
return Number(result.numAffectedRows ?? 0);
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Get the next due time across all enabled tasks.
|
|
470
|
+
* Returns null if no tasks are scheduled.
|
|
471
|
+
*/
|
|
472
|
+
async getNextDueTime() {
|
|
473
|
+
return (await sql`
|
|
474
|
+
SELECT MIN(next_run_at) as next
|
|
475
|
+
FROM _dineway_cron_tasks
|
|
476
|
+
WHERE status = 'idle' AND enabled = 1
|
|
477
|
+
`.execute(this.db)).rows[0]?.next ?? null;
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
/**
|
|
481
|
+
* Per-plugin cron API implementation.
|
|
482
|
+
* Scoped to a single plugin ID — plugins cannot see or modify other plugins' tasks.
|
|
483
|
+
*/
|
|
484
|
+
var CronAccessImpl = class {
|
|
485
|
+
constructor(db, pluginId, reschedule) {
|
|
486
|
+
this.db = db;
|
|
487
|
+
this.pluginId = pluginId;
|
|
488
|
+
this.reschedule = reschedule;
|
|
489
|
+
}
|
|
490
|
+
async schedule(name, opts) {
|
|
491
|
+
validateTaskName(name);
|
|
492
|
+
validateSchedule(opts.schedule);
|
|
493
|
+
const oneshot = isOneShot(opts.schedule);
|
|
494
|
+
const schedule = oneshot ? new Date(opts.schedule).toISOString() : opts.schedule;
|
|
495
|
+
const nextRun = oneshot ? schedule : nextCronTime(schedule);
|
|
496
|
+
const dataJson = opts.data ? JSON.stringify(opts.data) : null;
|
|
497
|
+
await sql`
|
|
498
|
+
INSERT INTO _dineway_cron_tasks (id, plugin_id, task_name, schedule, is_oneshot, data, next_run_at, status, enabled)
|
|
499
|
+
VALUES (${ulid()}, ${this.pluginId}, ${name}, ${schedule}, ${oneshot ? 1 : 0}, ${dataJson}, ${nextRun}, 'idle', 1)
|
|
500
|
+
ON CONFLICT (plugin_id, task_name) DO UPDATE SET
|
|
501
|
+
schedule = ${schedule},
|
|
502
|
+
is_oneshot = ${oneshot ? 1 : 0},
|
|
503
|
+
data = ${dataJson},
|
|
504
|
+
next_run_at = ${nextRun},
|
|
505
|
+
status = CASE WHEN _dineway_cron_tasks.status = 'running' THEN 'running' ELSE 'idle' END,
|
|
506
|
+
locked_at = CASE WHEN _dineway_cron_tasks.status = 'running' THEN _dineway_cron_tasks.locked_at ELSE NULL END,
|
|
507
|
+
lease_token = CASE WHEN _dineway_cron_tasks.status = 'running' THEN _dineway_cron_tasks.lease_token ELSE NULL END,
|
|
508
|
+
enabled = 1
|
|
509
|
+
`.execute(this.db);
|
|
510
|
+
this.reschedule();
|
|
511
|
+
}
|
|
512
|
+
async cancel(name) {
|
|
513
|
+
await sql`
|
|
514
|
+
DELETE FROM _dineway_cron_tasks
|
|
515
|
+
WHERE plugin_id = ${this.pluginId} AND task_name = ${name}
|
|
516
|
+
`.execute(this.db);
|
|
517
|
+
this.reschedule();
|
|
518
|
+
}
|
|
519
|
+
async list() {
|
|
520
|
+
return (await sql`
|
|
521
|
+
SELECT task_name, schedule, next_run_at, last_run_at, status
|
|
522
|
+
FROM _dineway_cron_tasks
|
|
523
|
+
WHERE plugin_id = ${this.pluginId} AND (enabled = 1 OR status = 'failed')
|
|
524
|
+
ORDER BY next_run_at ASC
|
|
525
|
+
`.execute(this.db)).rows.map((row) => ({
|
|
526
|
+
name: row.task_name,
|
|
527
|
+
status: row.status,
|
|
528
|
+
schedule: row.schedule,
|
|
529
|
+
nextRunAt: row.next_run_at,
|
|
530
|
+
lastRunAt: row.last_run_at
|
|
531
|
+
}));
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
/**
|
|
535
|
+
* Enable or disable all cron tasks for a plugin.
|
|
536
|
+
* Called by admin disable/enable endpoints and PluginManager lifecycle.
|
|
537
|
+
* Gracefully handles the cron table not existing yet (pre-migration).
|
|
538
|
+
*/
|
|
539
|
+
async function setCronTasksEnabled(db, pluginId, enabled) {
|
|
540
|
+
try {
|
|
541
|
+
await sql`
|
|
542
|
+
UPDATE _dineway_cron_tasks
|
|
543
|
+
SET enabled = ${enabled ? 1 : 0}
|
|
544
|
+
WHERE plugin_id = ${pluginId}
|
|
545
|
+
`.execute(db);
|
|
546
|
+
} catch {}
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Compute the next fire time for a cron expression.
|
|
550
|
+
* Supports standard cron (5-field), extended (6-field with seconds), and
|
|
551
|
+
* aliases like @daily, @weekly, @hourly, @monthly, @yearly.
|
|
552
|
+
*/
|
|
553
|
+
function nextCronTime(expression) {
|
|
554
|
+
const next = new Cron(expression).nextRun();
|
|
555
|
+
if (!next) throw new Error(`Invalid cron expression or no future run: "${expression}"`);
|
|
556
|
+
return next.toISOString();
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Check whether a string is a valid cron expression.
|
|
560
|
+
*/
|
|
561
|
+
function isCronExpression(schedule) {
|
|
562
|
+
try {
|
|
563
|
+
new Cron(schedule);
|
|
564
|
+
return true;
|
|
565
|
+
} catch {
|
|
566
|
+
return false;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
const ISO_DATETIME = /^\d{4}-\d{2}-\d{2}T/;
|
|
570
|
+
/** Croner accepts ISO timestamps too; distinguish those before testing cron patterns. */
|
|
571
|
+
function isOneShot(schedule) {
|
|
572
|
+
if (ISO_DATETIME.test(schedule)) return !isNaN(Date.parse(schedule));
|
|
573
|
+
if (schedule.startsWith("@") || isCronExpression(schedule)) return false;
|
|
574
|
+
return !isNaN(Date.parse(schedule));
|
|
575
|
+
}
|
|
576
|
+
/** Max length for a task name */
|
|
577
|
+
const MAX_TASK_NAME_LENGTH = 128;
|
|
578
|
+
/** Task name pattern: alphanumeric, dashes, underscores */
|
|
579
|
+
const TASK_NAME_RE = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
|
|
580
|
+
/**
|
|
581
|
+
* Validate a cron task name.
|
|
582
|
+
* Must be non-empty, ≤128 chars, alphanumeric with dashes/underscores.
|
|
583
|
+
*/
|
|
584
|
+
function validateTaskName(name) {
|
|
585
|
+
if (!name || name.length > MAX_TASK_NAME_LENGTH) throw new Error(`Invalid task name: must be 1-${MAX_TASK_NAME_LENGTH} characters, got ${name.length}`);
|
|
586
|
+
if (!TASK_NAME_RE.test(name)) throw new Error(`Invalid task name "${name}": must start with a letter and contain only letters, numbers, dashes, or underscores`);
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Validate a schedule string at registration time.
|
|
590
|
+
* Must be a valid cron expression or a parseable ISO 8601 datetime.
|
|
591
|
+
*/
|
|
592
|
+
function validateSchedule(schedule) {
|
|
593
|
+
if (!schedule || schedule.length > 256) throw new Error(`Invalid schedule: must be 1-256 characters, got ${schedule.length}`);
|
|
594
|
+
if (isCronExpression(schedule)) return;
|
|
595
|
+
const parsed = Date.parse(schedule);
|
|
596
|
+
if (isNaN(parsed)) throw new Error(`Invalid schedule "${schedule}": must be a valid cron expression or ISO 8601 datetime`);
|
|
597
|
+
}
|
|
598
|
+
|
|
330
599
|
//#endregion
|
|
331
600
|
//#region src/plugins/context.ts
|
|
332
601
|
/**
|
|
@@ -375,7 +644,7 @@ function createStorageCollection(db, pluginId, collectionName, indexes) {
|
|
|
375
644
|
delete: (id) => repo.delete(id),
|
|
376
645
|
exists: (id) => repo.exists(id),
|
|
377
646
|
getMany: (ids) => repo.getMany(ids),
|
|
378
|
-
putMany: (items) => repo.putMany(items),
|
|
647
|
+
putMany: (items, options) => repo.putMany(items, options),
|
|
379
648
|
deleteMany: (ids) => repo.deleteMany(ids),
|
|
380
649
|
count: (where) => repo.count(where),
|
|
381
650
|
async query(options) {
|
|
@@ -939,4 +1208,4 @@ function createPluginContext(options, plugin) {
|
|
|
939
1208
|
}
|
|
940
1209
|
|
|
941
1210
|
//#endregion
|
|
942
|
-
export { createPluginContext as n, createStorageAccess as r, PluginContextFactory as t };
|
|
1211
|
+
export { setCronTasksEnabled as a, CronExecutor as i, createPluginContext as n, createStorageAccess as r, PluginContextFactory as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ as toPublicContextDiff, v as toPublicContextEntry, y as toPublicContextEntryPage } from "./site-context-
|
|
2
|
-
import {
|
|
1
|
+
import { _ as toPublicContextDiff, v as toPublicContextEntry, y as toPublicContextEntryPage } from "./site-context-BW3GRCJH.mjs";
|
|
2
|
+
import { i as parseSiteBriefingScope, m as ContextRepository, n as SiteBriefingError } from "./briefing-DYiV93rg.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/api/handlers/context.ts
|
|
5
5
|
async function handleContextEntryList(db, input = {}) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as resolveActorIdentity } from "./actor-
|
|
2
|
-
import { p as logSiteActivitySafely } from "./activity-events-
|
|
1
|
+
import { i as resolveActorIdentity } from "./actor-D0AW80ld.mjs";
|
|
2
|
+
import { p as logSiteActivitySafely } from "./activity-events-DkHsy7Y0.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/api/context-route-helpers.ts
|
|
5
5
|
function resolveContextRouteActor(locals) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as validateIdentifier } from "./validate-Co3j6T_K.mjs";
|
|
2
|
-
import { t as ContentRepository } from "./content-
|
|
3
|
-
import { t as MediaRepository } from "./media-
|
|
4
|
-
import { t as UserRepository } from "./user-
|
|
5
|
-
import { r as ReviewRequestRepository } from "./review-requests-
|
|
2
|
+
import { t as ContentRepository } from "./content-BigS8BAv.mjs";
|
|
3
|
+
import { t as MediaRepository } from "./media-BjH5OD-A.mjs";
|
|
4
|
+
import { t as UserRepository } from "./user-Bl2_8rhJ.mjs";
|
|
5
|
+
import { r as ReviewRequestRepository } from "./review-requests-DZYM51yI.mjs";
|
|
6
6
|
import { sql } from "kysely";
|
|
7
7
|
|
|
8
8
|
//#region src/api/handlers/dashboard.ts
|
package/dist/database/batch.mjs
CHANGED
|
@@ -46,8 +46,8 @@ function assertQueryLimits(query) {
|
|
|
46
46
|
}
|
|
47
47
|
/** Executes precompiled writes once; conflicts and unknown commit outcomes are never replayed. */
|
|
48
48
|
async function atomicBatch(db, batch) {
|
|
49
|
-
if (!batch.statements.length && !batch.checks?.length) return [];
|
|
50
49
|
const checks = [...await getRequestContext()?.prepareWriteChecks?.(db) ?? [], ...batch.checks ?? []];
|
|
50
|
+
if (!batch.statements.length && !checks.length) return [];
|
|
51
51
|
const binding = d1Database(db);
|
|
52
52
|
if (!binding) {
|
|
53
53
|
const execute = async (transaction) => {
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { At as ResolvedPlugin, ac as assertD1Migrations, cc as compileD1Schema, ic as D1MigrationOptions, oc as migrateD1, rc as D1Migration, sc as D1SchemaObject } from "../../types-
|
|
2
|
-
import "../../types-
|
|
3
|
-
import "../../runner-
|
|
4
|
-
import "../../index-
|
|
5
|
-
import "../../types-
|
|
6
|
-
import "../../
|
|
7
|
-
import "../../
|
|
8
|
-
import "../../
|
|
9
|
-
import "../../
|
|
10
|
-
import "../../
|
|
11
|
-
import "../../
|
|
1
|
+
import { At as ResolvedPlugin, ac as assertD1Migrations, cc as compileD1Schema, ic as D1MigrationOptions, oc as migrateD1, rc as D1Migration, sc as D1SchemaObject } from "../../types-C3jUu4Bc.mjs";
|
|
2
|
+
import "../../types-Dpv_MvwZ.mjs";
|
|
3
|
+
import "../../runner-DXQkyPeX.mjs";
|
|
4
|
+
import "../../index-CLj17kW9.mjs";
|
|
5
|
+
import "../../types-qOEot0UQ.mjs";
|
|
6
|
+
import "../../types-DheoByey.mjs";
|
|
7
|
+
import "../../adapters-lDnJjNDz.mjs";
|
|
8
|
+
import "../../runtime-Bs2JMbb2.mjs";
|
|
9
|
+
import "../../hook-events-BQw73jc7.mjs";
|
|
10
|
+
import "../../scheduled-publish-eCNGpvNm.mjs";
|
|
11
|
+
import "../../public-url-CEC1vj02.mjs";
|
|
12
|
+
import "../../validate-DUscf6VG.mjs";
|
|
13
|
+
import "../../byline-fields-Bne2v0ti.mjs";
|
|
14
|
+
import "../../types-BJztoTbF.mjs";
|
|
12
15
|
import { Kysely } from "kysely";
|
|
13
16
|
|
|
14
17
|
//#region src/database/d1/release.d.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { o as assertD1Migrations, s as migrateD1 } from "../../runner-
|
|
1
|
+
import { o as assertD1Migrations, s as migrateD1 } from "../../runner-CuG8o1uW.mjs";
|
|
2
2
|
import "../../d1-binding-DrLMBUxu.mjs";
|
|
3
3
|
import "../../dialect-helpers-C6xtO-Ui.mjs";
|
|
4
|
-
import "../../migrations-
|
|
5
|
-
import "../../state-
|
|
6
|
-
import { n as compileD1Schema, t as migrateD1Release } from "../../release-
|
|
4
|
+
import "../../migrations-BAjF60cl.mjs";
|
|
5
|
+
import "../../state-CKkqoA6i.mjs";
|
|
6
|
+
import { n as compileD1Schema, t as migrateD1Release } from "../../release-Cpi0-Bzq.mjs";
|
|
7
7
|
|
|
8
8
|
export { assertD1Migrations, compileD1Schema, migrateD1, migrateD1Release };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getRequestContext } from "../request-context.mjs";
|
|
2
|
+
import { t as readRuntimeEnv } from "../runtime-env-DpYGy4pT.mjs";
|
|
2
3
|
|
|
3
4
|
//#region src/database/instrumentation.ts
|
|
4
5
|
const QUERY_LOG_ENV = "DINEWAY_QUERY_LOG";
|
|
@@ -26,10 +27,10 @@ function flushRecorder(recorder) {
|
|
|
26
27
|
for (const event of recorder.events) console.log(`${QUERY_LOG_PREFIX} ${JSON.stringify(event)}`);
|
|
27
28
|
}
|
|
28
29
|
function isInstrumentationEnabled() {
|
|
29
|
-
return
|
|
30
|
+
return readRuntimeEnv(QUERY_LOG_ENV) === "1";
|
|
30
31
|
}
|
|
31
32
|
function isServerTimingEnabled() {
|
|
32
|
-
return
|
|
33
|
+
return readRuntimeEnv(SERVER_TIMING_ENV) === "1";
|
|
33
34
|
}
|
|
34
35
|
function formatServerTimingHeader(metrics) {
|
|
35
36
|
return metrics.map((metric) => {
|
package/dist/db/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../types-
|
|
2
|
-
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-
|
|
3
|
-
import { a as RequestScopedDb, c as libsql, i as PostgresConfig, l as postgres, n as DatabaseDialectType, o as RequestScopedDbOpts, r as LibsqlConfig, s as SqliteConfig, t as DatabaseDescriptor, u as sqlite } from "../adapters-
|
|
1
|
+
import "../types-Dpv_MvwZ.mjs";
|
|
2
|
+
import { i as runMigrations, n as getMigrationStatus, r as rollbackMigration, t as MigrationStatus } from "../runner-DXQkyPeX.mjs";
|
|
3
|
+
import { a as RequestScopedDb, c as libsql, i as PostgresConfig, l as postgres, n as DatabaseDialectType, o as RequestScopedDbOpts, r as LibsqlConfig, s as SqliteConfig, t as DatabaseDescriptor, u as sqlite } from "../adapters-lDnJjNDz.mjs";
|
|
4
4
|
export { type DatabaseDescriptor, type DatabaseDialectType, type LibsqlConfig, type MigrationStatus, type PostgresConfig, type RequestScopedDb, type RequestScopedDbOpts, type SqliteConfig, getMigrationStatus, libsql, postgres, rollbackMigration, runMigrations, sqlite };
|
package/dist/db/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as runMigrations, i as rollbackMigration, r as getMigrationStatus } from "../runner-
|
|
1
|
+
import { a as runMigrations, i as rollbackMigration, r as getMigrationStatus } from "../runner-CuG8o1uW.mjs";
|
|
2
2
|
import "../d1-binding-DrLMBUxu.mjs";
|
|
3
3
|
import "../dialect-helpers-C6xtO-Ui.mjs";
|
|
4
4
|
|
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
1
|
import { AtomicWriteConflict, atomicBatch, rowUnchanged } from "./database/batch.mjs";
|
|
2
2
|
import { r as currentIsoTimestampValue } from "./dialect-helpers-C6xtO-Ui.mjs";
|
|
3
|
-
import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-
|
|
4
|
-
import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-
|
|
5
|
-
import { t as readTokenAuthority } from "./oauth-authority-
|
|
3
|
+
import { a as hashApiToken, n as TOKEN_PREFIXES, r as generatePrefixedToken, t as ALL_VALID_SCOPES } from "./api-tokens-CdfsE9PL.mjs";
|
|
4
|
+
import { a as filterExperimentalSiteContextWorkflowScopes, i as experimentalSiteContextWorkflowsEnabled, o as getExperimentalSiteContextWorkflowScopesDisabledMessage, r as disabledExperimentalSiteContextWorkflowScopes } from "./experimental-workflows-CPNiI2EL.mjs";
|
|
5
|
+
import { t as readTokenAuthority } from "./oauth-authority-DVlLFhsZ.mjs";
|
|
6
6
|
import { sql } from "kysely";
|
|
7
7
|
import { clampScopes, toRoleLevel } from "@dineway-ai/auth";
|
|
8
8
|
import { generateCodeVerifier } from "arctic";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as validateIdentifier } from "./validate-Co3j6T_K.mjs";
|
|
2
|
-
import { i as encodeCursor, r as decodeCursor } from "./types-
|
|
3
|
-
import { n as publicDiscoveryExclusions } from "./public-discovery-
|
|
4
|
-
import { n as SchemaRegistry } from "./registry-
|
|
5
|
-
import { t as resolveContentUrl } from "./public-url-
|
|
2
|
+
import { i as encodeCursor, r as decodeCursor } from "./types-BI3ULB3A.mjs";
|
|
3
|
+
import { n as publicDiscoveryExclusions } from "./public-discovery-BnqYofSK.mjs";
|
|
4
|
+
import { n as SchemaRegistry } from "./registry-zXXZezu-.mjs";
|
|
5
|
+
import { t as resolveContentUrl } from "./public-url-BHjYWuaN.mjs";
|
|
6
6
|
import { sql } from "kysely";
|
|
7
7
|
|
|
8
8
|
//#region src/seo/canonical-url.ts
|
|
@@ -29,6 +29,7 @@ const ErrorCode = {
|
|
|
29
29
|
INTEGRATION_CREDENTIAL_KEY_UNAVAILABLE: "INTEGRATION_CREDENTIAL_KEY_UNAVAILABLE",
|
|
30
30
|
INTEGRATION_CREDENTIAL_DECRYPT_FAILED: "INTEGRATION_CREDENTIAL_DECRYPT_FAILED",
|
|
31
31
|
INTEGRATION_CREDENTIAL_VERSION_UNSUPPORTED: "INTEGRATION_CREDENTIAL_VERSION_UNSUPPORTED",
|
|
32
|
+
CONTENT_STORAGE_UNAVAILABLE: "CONTENT_STORAGE_UNAVAILABLE",
|
|
32
33
|
CONTENT_CREATE_ERROR: "CONTENT_CREATE_ERROR",
|
|
33
34
|
CONTENT_UPDATE_ERROR: "CONTENT_UPDATE_ERROR",
|
|
34
35
|
CONTENT_DELETE_ERROR: "CONTENT_DELETE_ERROR",
|
|
@@ -286,6 +287,7 @@ const ErrorCode = {
|
|
|
286
287
|
*/
|
|
287
288
|
function mapErrorStatus(code) {
|
|
288
289
|
switch (code) {
|
|
290
|
+
case ErrorCode.CONTENT_STORAGE_UNAVAILABLE: return 503;
|
|
289
291
|
case ErrorCode.VALIDATION_ERROR:
|
|
290
292
|
case ErrorCode.INVALID_INPUT:
|
|
291
293
|
case ErrorCode.INVALID_JSON:
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { i as encodeBase64url } from "./base64-
|
|
2
|
-
import { t as MediaRepository } from "./media-
|
|
3
|
-
import { t as buildStableHash } from "./stable-hash-
|
|
4
|
-
import { a as selectActiveBriefingContextEntries,
|
|
5
|
-
import { n as sha256, s as readBoundedBytes } from "./runs-
|
|
6
|
-
import { c as loadContentMediaUsageFields } from "./content-refresh-
|
|
7
|
-
import { r as ssrfSafeFetch } from "./ssrf-
|
|
1
|
+
import { i as encodeBase64url } from "./base64-qvSs0Gxy.mjs";
|
|
2
|
+
import { t as MediaRepository } from "./media-BjH5OD-A.mjs";
|
|
3
|
+
import { t as buildStableHash } from "./stable-hash-9RDJgfif.mjs";
|
|
4
|
+
import { a as selectActiveBriefingContextEntries, i as parseSiteBriefingScope, m as ContextRepository } from "./briefing-DYiV93rg.mjs";
|
|
5
|
+
import { n as sha256, s as readBoundedBytes } from "./runs-BjgLfqCn.mjs";
|
|
6
|
+
import { c as loadContentMediaUsageFields } from "./content-refresh-DJuFIqQ4.mjs";
|
|
7
|
+
import { r as ssrfSafeFetch } from "./ssrf-DcD8vn3E.mjs";
|
|
8
8
|
import { imageSize } from "image-size";
|
|
9
9
|
|
|
10
10
|
//#region src/review-automation/evidence.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { c as __exportAll } from "./runner-
|
|
1
|
+
import { c as __exportAll } from "./runner-CuG8o1uW.mjs";
|
|
2
2
|
import { getRequestContext } from "./request-context.mjs";
|
|
3
3
|
import { after } from "./after.mjs";
|
|
4
|
-
import { r as requestCached } from "./request-cache-
|
|
5
|
-
import { n as BylineSchemaRegistry } from "./byline-registry-
|
|
6
|
-
import { n as invalidateProcessCache, r as processCachedAsync, t as createProcessCache } from "./process-cache-
|
|
4
|
+
import { r as requestCached } from "./request-cache-CizvDoxV.mjs";
|
|
5
|
+
import { n as BylineSchemaRegistry } from "./byline-registry-Caj0_gbU.mjs";
|
|
6
|
+
import { n as invalidateProcessCache, r as processCachedAsync, t as createProcessCache } from "./process-cache-CMy5M80h.mjs";
|
|
7
7
|
|
|
8
8
|
//#region src/bylines/field-defs-cache.ts
|
|
9
9
|
var field_defs_cache_exports = /* @__PURE__ */ __exportAll({ getBylineFieldDefs: () => getBylineFieldDefs });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as __exportAll } from "./runner-
|
|
1
|
+
import { c as __exportAll } from "./runner-CuG8o1uW.mjs";
|
|
2
2
|
import { atomicBatch } from "./database/batch.mjs";
|
|
3
3
|
import { t as validateIdentifier } from "./validate-Co3j6T_K.mjs";
|
|
4
4
|
import { s as isSqlite, u as tableExists } from "./dialect-helpers-C6xtO-Ui.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b as HitlRequestService } from "./site-context-
|
|
2
|
-
import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-
|
|
1
|
+
import { b as HitlRequestService } from "./site-context-BW3GRCJH.mjs";
|
|
2
|
+
import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CPNiI2EL.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/api/handlers/hitl-requests.ts
|
|
5
5
|
const HITL_NOT_FOUND_RE = /not found/i;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as resolveActorIdentity } from "./actor-
|
|
2
|
-
import { t as WorkflowHitlCoordinator } from "./site-context-
|
|
3
|
-
import { t as apiError } from "./error-
|
|
4
|
-
import { p as logSiteActivitySafely } from "./activity-events-
|
|
5
|
-
import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-
|
|
1
|
+
import { i as resolveActorIdentity } from "./actor-D0AW80ld.mjs";
|
|
2
|
+
import { t as WorkflowHitlCoordinator } from "./site-context-BW3GRCJH.mjs";
|
|
3
|
+
import { t as apiError } from "./error-sL4aemcW.mjs";
|
|
4
|
+
import { p as logSiteActivitySafely } from "./activity-events-DkHsy7Y0.mjs";
|
|
5
|
+
import { t as ExperimentalSiteContextWorkflowDisabledError } from "./experimental-workflows-CPNiI2EL.mjs";
|
|
6
6
|
import { Role } from "@dineway-ai/auth";
|
|
7
7
|
|
|
8
8
|
//#region src/api/hitl-route-helpers.ts
|