@prenta/core 0.118.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/CHANGELOG.md +2974 -0
- package/LICENSE +21 -0
- package/README.md +33 -0
- package/dist/a11y/index.d.ts +25 -0
- package/dist/a11y/index.d.ts.map +1 -0
- package/dist/a11y/index.js +91 -0
- package/dist/a11y/index.js.map +1 -0
- package/dist/actions.d.ts +130 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +1324 -0
- package/dist/actions.js.map +1 -0
- package/dist/ai/brand-voice-alignment.d.ts +17 -0
- package/dist/ai/brand-voice-alignment.d.ts.map +1 -0
- package/dist/ai/brand-voice-alignment.js +40 -0
- package/dist/ai/brand-voice-alignment.js.map +1 -0
- package/dist/ai/brand-voice-analyze.d.ts +71 -0
- package/dist/ai/brand-voice-analyze.d.ts.map +1 -0
- package/dist/ai/brand-voice-analyze.js +151 -0
- package/dist/ai/brand-voice-analyze.js.map +1 -0
- package/dist/ai/brand-voice-document.d.ts +56 -0
- package/dist/ai/brand-voice-document.d.ts.map +1 -0
- package/dist/ai/brand-voice-document.js +335 -0
- package/dist/ai/brand-voice-document.js.map +1 -0
- package/dist/ai/brand-voice-fix.d.ts +26 -0
- package/dist/ai/brand-voice-fix.d.ts.map +1 -0
- package/dist/ai/brand-voice-fix.js +97 -0
- package/dist/ai/brand-voice-fix.js.map +1 -0
- package/dist/ai/brand-voice-save.d.ts +11 -0
- package/dist/ai/brand-voice-save.d.ts.map +1 -0
- package/dist/ai/brand-voice-save.js +51 -0
- package/dist/ai/brand-voice-save.js.map +1 -0
- package/dist/ai/brand-voice-sources.d.ts +16 -0
- package/dist/ai/brand-voice-sources.d.ts.map +1 -0
- package/dist/ai/brand-voice-sources.js +106 -0
- package/dist/ai/brand-voice-sources.js.map +1 -0
- package/dist/ai/brand-voice-structured.d.ts +87 -0
- package/dist/ai/brand-voice-structured.d.ts.map +1 -0
- package/dist/ai/brand-voice-structured.js +438 -0
- package/dist/ai/brand-voice-structured.js.map +1 -0
- package/dist/ai/brand-voice.d.ts +40 -0
- package/dist/ai/brand-voice.d.ts.map +1 -0
- package/dist/ai/brand-voice.js +103 -0
- package/dist/ai/brand-voice.js.map +1 -0
- package/dist/ai/catalog.d.ts +35 -0
- package/dist/ai/catalog.d.ts.map +1 -0
- package/dist/ai/catalog.js +370 -0
- package/dist/ai/catalog.js.map +1 -0
- package/dist/ai/config-store.d.ts +55 -0
- package/dist/ai/config-store.d.ts.map +1 -0
- package/dist/ai/config-store.js +177 -0
- package/dist/ai/config-store.js.map +1 -0
- package/dist/ai/content-writing-generate.d.ts +19 -0
- package/dist/ai/content-writing-generate.d.ts.map +1 -0
- package/dist/ai/content-writing-generate.js +64 -0
- package/dist/ai/content-writing-generate.js.map +1 -0
- package/dist/ai/feature-defaults.d.ts +20 -0
- package/dist/ai/feature-defaults.d.ts.map +1 -0
- package/dist/ai/feature-defaults.js +104 -0
- package/dist/ai/feature-defaults.js.map +1 -0
- package/dist/ai/index.d.ts +24 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +24 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/models.d.ts +37 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +126 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/providers/anthropic.d.ts +10 -0
- package/dist/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/ai/providers/anthropic.js +63 -0
- package/dist/ai/providers/anthropic.js.map +1 -0
- package/dist/ai/providers/custom.d.ts +12 -0
- package/dist/ai/providers/custom.d.ts.map +1 -0
- package/dist/ai/providers/custom.js +76 -0
- package/dist/ai/providers/custom.js.map +1 -0
- package/dist/ai/providers/http.d.ts +66 -0
- package/dist/ai/providers/http.d.ts.map +1 -0
- package/dist/ai/providers/http.js +185 -0
- package/dist/ai/providers/http.js.map +1 -0
- package/dist/ai/providers/index.d.ts +18 -0
- package/dist/ai/providers/index.d.ts.map +1 -0
- package/dist/ai/providers/index.js +28 -0
- package/dist/ai/providers/index.js.map +1 -0
- package/dist/ai/providers/openai.d.ts +11 -0
- package/dist/ai/providers/openai.d.ts.map +1 -0
- package/dist/ai/providers/openai.js +44 -0
- package/dist/ai/providers/openai.js.map +1 -0
- package/dist/ai/providers/xai.d.ts +10 -0
- package/dist/ai/providers/xai.d.ts.map +1 -0
- package/dist/ai/providers/xai.js +38 -0
- package/dist/ai/providers/xai.js.map +1 -0
- package/dist/ai/resolve.d.ts +41 -0
- package/dist/ai/resolve.d.ts.map +1 -0
- package/dist/ai/resolve.js +143 -0
- package/dist/ai/resolve.js.map +1 -0
- package/dist/ai/runtime.d.ts +88 -0
- package/dist/ai/runtime.d.ts.map +1 -0
- package/dist/ai/runtime.js +192 -0
- package/dist/ai/runtime.js.map +1 -0
- package/dist/ai/sampling.d.ts +17 -0
- package/dist/ai/sampling.d.ts.map +1 -0
- package/dist/ai/sampling.js +51 -0
- package/dist/ai/sampling.js.map +1 -0
- package/dist/ai/types.d.ts +193 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +11 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/usage.d.ts +18 -0
- package/dist/ai/usage.d.ts.map +1 -0
- package/dist/ai/usage.js +70 -0
- package/dist/ai/usage.js.map +1 -0
- package/dist/api/collection-introspection.d.ts +46 -0
- package/dist/api/collection-introspection.d.ts.map +1 -0
- package/dist/api/collection-introspection.js +82 -0
- package/dist/api/collection-introspection.js.map +1 -0
- package/dist/api/guarded-db.d.ts +14 -0
- package/dist/api/guarded-db.d.ts.map +1 -0
- package/dist/api/guarded-db.js +62 -0
- package/dist/api/guarded-db.js.map +1 -0
- package/dist/api/handler-factory.d.ts +7 -0
- package/dist/api/handler-factory.d.ts.map +1 -0
- package/dist/api/handler-factory.js +380 -0
- package/dist/api/handler-factory.js.map +1 -0
- package/dist/api/handlers.d.ts +8 -0
- package/dist/api/handlers.d.ts.map +1 -0
- package/dist/api/handlers.js +62 -0
- package/dist/api/handlers.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/openapi.d.ts +3 -0
- package/dist/api/openapi.d.ts.map +1 -0
- package/dist/api/openapi.js +539 -0
- package/dist/api/openapi.js.map +1 -0
- package/dist/api/route-helpers.d.ts +369 -0
- package/dist/api/route-helpers.d.ts.map +1 -0
- package/dist/api/route-helpers.js +1574 -0
- package/dist/api/route-helpers.js.map +1 -0
- package/dist/api/router.d.ts +21 -0
- package/dist/api/router.d.ts.map +1 -0
- package/dist/api/router.js +75 -0
- package/dist/api/router.js.map +1 -0
- package/dist/api/routes/ai-seo.d.ts +3 -0
- package/dist/api/routes/ai-seo.d.ts.map +1 -0
- package/dist/api/routes/ai-seo.js +482 -0
- package/dist/api/routes/ai-seo.js.map +1 -0
- package/dist/api/routes/ai-settings.d.ts +3 -0
- package/dist/api/routes/ai-settings.d.ts.map +1 -0
- package/dist/api/routes/ai-settings.js +1078 -0
- package/dist/api/routes/ai-settings.js.map +1 -0
- package/dist/api/routes/auth.d.ts +3 -0
- package/dist/api/routes/auth.d.ts.map +1 -0
- package/dist/api/routes/auth.js +877 -0
- package/dist/api/routes/auth.js.map +1 -0
- package/dist/api/routes/collab.d.ts +3 -0
- package/dist/api/routes/collab.d.ts.map +1 -0
- package/dist/api/routes/collab.js +426 -0
- package/dist/api/routes/collab.js.map +1 -0
- package/dist/api/routes/dashboard.d.ts +7 -0
- package/dist/api/routes/dashboard.d.ts.map +1 -0
- package/dist/api/routes/dashboard.js +540 -0
- package/dist/api/routes/dashboard.js.map +1 -0
- package/dist/api/routes/documents.d.ts +11 -0
- package/dist/api/routes/documents.d.ts.map +1 -0
- package/dist/api/routes/documents.js +340 -0
- package/dist/api/routes/documents.js.map +1 -0
- package/dist/api/routes/email-settings.d.ts +3 -0
- package/dist/api/routes/email-settings.d.ts.map +1 -0
- package/dist/api/routes/email-settings.js +248 -0
- package/dist/api/routes/email-settings.js.map +1 -0
- package/dist/api/routes/folders.d.ts +3 -0
- package/dist/api/routes/folders.d.ts.map +1 -0
- package/dist/api/routes/folders.js +195 -0
- package/dist/api/routes/folders.js.map +1 -0
- package/dist/api/routes/forms.d.ts +3 -0
- package/dist/api/routes/forms.d.ts.map +1 -0
- package/dist/api/routes/forms.js +776 -0
- package/dist/api/routes/forms.js.map +1 -0
- package/dist/api/routes/globals.d.ts +3 -0
- package/dist/api/routes/globals.d.ts.map +1 -0
- package/dist/api/routes/globals.js +157 -0
- package/dist/api/routes/globals.js.map +1 -0
- package/dist/api/routes/media.d.ts +3 -0
- package/dist/api/routes/media.d.ts.map +1 -0
- package/dist/api/routes/media.js +807 -0
- package/dist/api/routes/media.js.map +1 -0
- package/dist/api/routes/meta.d.ts +3 -0
- package/dist/api/routes/meta.d.ts.map +1 -0
- package/dist/api/routes/meta.js +97 -0
- package/dist/api/routes/meta.js.map +1 -0
- package/dist/api/routes/navigations.d.ts +7 -0
- package/dist/api/routes/navigations.d.ts.map +1 -0
- package/dist/api/routes/navigations.js +81 -0
- package/dist/api/routes/navigations.js.map +1 -0
- package/dist/api/routes/page-templates.d.ts +3 -0
- package/dist/api/routes/page-templates.d.ts.map +1 -0
- package/dist/api/routes/page-templates.js +265 -0
- package/dist/api/routes/page-templates.js.map +1 -0
- package/dist/api/routes/presence.d.ts +3 -0
- package/dist/api/routes/presence.d.ts.map +1 -0
- package/dist/api/routes/presence.js +35 -0
- package/dist/api/routes/presence.js.map +1 -0
- package/dist/api/routes/preview.d.ts +3 -0
- package/dist/api/routes/preview.d.ts.map +1 -0
- package/dist/api/routes/preview.js +111 -0
- package/dist/api/routes/preview.js.map +1 -0
- package/dist/api/routes/redirects.d.ts +3 -0
- package/dist/api/routes/redirects.d.ts.map +1 -0
- package/dist/api/routes/redirects.js +937 -0
- package/dist/api/routes/redirects.js.map +1 -0
- package/dist/api/routes/saved-sections.d.ts +3 -0
- package/dist/api/routes/saved-sections.d.ts.map +1 -0
- package/dist/api/routes/saved-sections.js +1071 -0
- package/dist/api/routes/saved-sections.js.map +1 -0
- package/dist/api/routes/scheduling.d.ts +3 -0
- package/dist/api/routes/scheduling.d.ts.map +1 -0
- package/dist/api/routes/scheduling.js +391 -0
- package/dist/api/routes/scheduling.js.map +1 -0
- package/dist/api/routes/sections.d.ts +3 -0
- package/dist/api/routes/sections.d.ts.map +1 -0
- package/dist/api/routes/sections.js +512 -0
- package/dist/api/routes/sections.js.map +1 -0
- package/dist/api/routes/security-center.d.ts +3 -0
- package/dist/api/routes/security-center.d.ts.map +1 -0
- package/dist/api/routes/security-center.js +71 -0
- package/dist/api/routes/security-center.js.map +1 -0
- package/dist/api/routes/seo-public.d.ts +14 -0
- package/dist/api/routes/seo-public.d.ts.map +1 -0
- package/dist/api/routes/seo-public.js +1366 -0
- package/dist/api/routes/seo-public.js.map +1 -0
- package/dist/api/routes/seo.d.ts +8 -0
- package/dist/api/routes/seo.d.ts.map +1 -0
- package/dist/api/routes/seo.js +2256 -0
- package/dist/api/routes/seo.js.map +1 -0
- package/dist/api/routes/system.d.ts +3 -0
- package/dist/api/routes/system.d.ts.map +1 -0
- package/dist/api/routes/system.js +353 -0
- package/dist/api/routes/system.js.map +1 -0
- package/dist/api/routes/url-resolution.d.ts +3 -0
- package/dist/api/routes/url-resolution.d.ts.map +1 -0
- package/dist/api/routes/url-resolution.js +522 -0
- package/dist/api/routes/url-resolution.js.map +1 -0
- package/dist/api/routes/users.d.ts +3 -0
- package/dist/api/routes/users.d.ts.map +1 -0
- package/dist/api/routes/users.js +1177 -0
- package/dist/api/routes/users.js.map +1 -0
- package/dist/api/routes/webhooks.d.ts +3 -0
- package/dist/api/routes/webhooks.d.ts.map +1 -0
- package/dist/api/routes/webhooks.js +422 -0
- package/dist/api/routes/webhooks.js.map +1 -0
- package/dist/appearance/color.d.ts +24 -0
- package/dist/appearance/color.d.ts.map +1 -0
- package/dist/appearance/color.js +90 -0
- package/dist/appearance/color.js.map +1 -0
- package/dist/appearance/favicon-icon.d.ts +12 -0
- package/dist/appearance/favicon-icon.d.ts.map +1 -0
- package/dist/appearance/favicon-icon.js +58 -0
- package/dist/appearance/favicon-icon.js.map +1 -0
- package/dist/appearance/favicon-paths.d.ts +6 -0
- package/dist/appearance/favicon-paths.d.ts.map +1 -0
- package/dist/appearance/favicon-paths.js +6 -0
- package/dist/appearance/favicon-paths.js.map +1 -0
- package/dist/appearance/index.d.ts +15 -0
- package/dist/appearance/index.d.ts.map +1 -0
- package/dist/appearance/index.js +7 -0
- package/dist/appearance/index.js.map +1 -0
- package/dist/appearance/logo-shape.d.ts +26 -0
- package/dist/appearance/logo-shape.d.ts.map +1 -0
- package/dist/appearance/logo-shape.js +62 -0
- package/dist/appearance/logo-shape.js.map +1 -0
- package/dist/appearance/resolve.d.ts +52 -0
- package/dist/appearance/resolve.d.ts.map +1 -0
- package/dist/appearance/resolve.js +219 -0
- package/dist/appearance/resolve.js.map +1 -0
- package/dist/appearance/theme-tokens.d.ts +49 -0
- package/dist/appearance/theme-tokens.d.ts.map +1 -0
- package/dist/appearance/theme-tokens.js +229 -0
- package/dist/appearance/theme-tokens.js.map +1 -0
- package/dist/appearance/types.d.ts +110 -0
- package/dist/appearance/types.d.ts.map +1 -0
- package/dist/appearance/types.js +16 -0
- package/dist/appearance/types.js.map +1 -0
- package/dist/astro-cache.d.ts +80 -0
- package/dist/astro-cache.d.ts.map +1 -0
- package/dist/astro-cache.js +108 -0
- package/dist/astro-cache.js.map +1 -0
- package/dist/astro-content.d.ts +81 -0
- package/dist/astro-content.d.ts.map +1 -0
- package/dist/astro-content.js +151 -0
- package/dist/astro-content.js.map +1 -0
- package/dist/astro-redirects.d.ts +38 -0
- package/dist/astro-redirects.d.ts.map +1 -0
- package/dist/astro-redirects.js +45 -0
- package/dist/astro-redirects.js.map +1 -0
- package/dist/astro-security.d.ts +34 -0
- package/dist/astro-security.d.ts.map +1 -0
- package/dist/astro-security.js +31 -0
- package/dist/astro-security.js.map +1 -0
- package/dist/astro-site.d.ts +69 -0
- package/dist/astro-site.d.ts.map +1 -0
- package/dist/astro-site.js +81 -0
- package/dist/astro-site.js.map +1 -0
- package/dist/auth/index.d.ts +17 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +12 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/invite-email.d.ts +12 -0
- package/dist/auth/invite-email.d.ts.map +1 -0
- package/dist/auth/invite-email.js +57 -0
- package/dist/auth/invite-email.js.map +1 -0
- package/dist/auth/invites.d.ts +72 -0
- package/dist/auth/invites.d.ts.map +1 -0
- package/dist/auth/invites.js +279 -0
- package/dist/auth/invites.js.map +1 -0
- package/dist/auth/mfa-pending.d.ts +24 -0
- package/dist/auth/mfa-pending.d.ts.map +1 -0
- package/dist/auth/mfa-pending.js +38 -0
- package/dist/auth/mfa-pending.js.map +1 -0
- package/dist/auth/oauth.d.ts +139 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/oauth.js +376 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/password.d.ts +57 -0
- package/dist/auth/password.d.ts.map +1 -0
- package/dist/auth/password.js +150 -0
- package/dist/auth/password.js.map +1 -0
- package/dist/auth/providers/github.d.ts +9 -0
- package/dist/auth/providers/github.d.ts.map +1 -0
- package/dist/auth/providers/github.js +10 -0
- package/dist/auth/providers/github.js.map +1 -0
- package/dist/auth/providers/google.d.ts +9 -0
- package/dist/auth/providers/google.d.ts.map +1 -0
- package/dist/auth/providers/google.js +10 -0
- package/dist/auth/providers/google.js.map +1 -0
- package/dist/auth/providers/microsoft.d.ts +9 -0
- package/dist/auth/providers/microsoft.d.ts.map +1 -0
- package/dist/auth/providers/microsoft.js +11 -0
- package/dist/auth/providers/microsoft.js.map +1 -0
- package/dist/auth/reset-email.d.ts +10 -0
- package/dist/auth/reset-email.d.ts.map +1 -0
- package/dist/auth/reset-email.js +30 -0
- package/dist/auth/reset-email.js.map +1 -0
- package/dist/auth/reset.d.ts +42 -0
- package/dist/auth/reset.d.ts.map +1 -0
- package/dist/auth/reset.js +142 -0
- package/dist/auth/reset.js.map +1 -0
- package/dist/auth/roles.d.ts +51 -0
- package/dist/auth/roles.d.ts.map +1 -0
- package/dist/auth/roles.js +159 -0
- package/dist/auth/roles.js.map +1 -0
- package/dist/auth/session.d.ts +38 -0
- package/dist/auth/session.d.ts.map +1 -0
- package/dist/auth/session.js +106 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/auth/team.d.ts +99 -0
- package/dist/auth/team.d.ts.map +1 -0
- package/dist/auth/team.js +327 -0
- package/dist/auth/team.js.map +1 -0
- package/dist/auth/totp.d.ts +31 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth/totp.js +134 -0
- package/dist/auth/totp.js.map +1 -0
- package/dist/auth/user-admin.d.ts +119 -0
- package/dist/auth/user-admin.d.ts.map +1 -0
- package/dist/auth/user-admin.js +292 -0
- package/dist/auth/user-admin.js.map +1 -0
- package/dist/backup/index.d.ts +19 -0
- package/dist/backup/index.d.ts.map +1 -0
- package/dist/backup/index.js +24 -0
- package/dist/backup/index.js.map +1 -0
- package/dist/billing/stripe-meter.d.ts +22 -0
- package/dist/billing/stripe-meter.d.ts.map +1 -0
- package/dist/billing/stripe-meter.js +101 -0
- package/dist/billing/stripe-meter.js.map +1 -0
- package/dist/brand-voice/index.d.ts +7 -0
- package/dist/brand-voice/index.d.ts.map +1 -0
- package/dist/brand-voice/index.js +7 -0
- package/dist/brand-voice/index.js.map +1 -0
- package/dist/cache/http.d.ts +140 -0
- package/dist/cache/http.d.ts.map +1 -0
- package/dist/cache/http.js +213 -0
- package/dist/cache/http.js.map +1 -0
- package/dist/cache/index.d.ts +15 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +32 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/client.d.ts +51 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +59 -0
- package/dist/client.js.map +1 -0
- package/dist/codegen/index.d.ts +4 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +366 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/collections/index.d.ts +19 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +30 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/presets.d.ts +90 -0
- package/dist/collections/presets.d.ts.map +1 -0
- package/dist/collections/presets.js +573 -0
- package/dist/collections/presets.js.map +1 -0
- package/dist/config/define.d.ts +8 -0
- package/dist/config/define.d.ts.map +1 -0
- package/dist/config/define.js +7 -0
- package/dist/config/define.js.map +1 -0
- package/dist/config/index.d.ts +31 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +196 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/runtime.d.ts +107 -0
- package/dist/config/runtime.d.ts.map +1 -0
- package/dist/config/runtime.js +77 -0
- package/dist/config/runtime.js.map +1 -0
- package/dist/config/types.d.ts +924 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/content/ai-api.d.ts +21 -0
- package/dist/content/ai-api.d.ts.map +1 -0
- package/dist/content/ai-api.js +25 -0
- package/dist/content/ai-api.js.map +1 -0
- package/dist/content/content-graph.d.ts +25 -0
- package/dist/content/content-graph.d.ts.map +1 -0
- package/dist/content/content-graph.js +40 -0
- package/dist/content/content-graph.js.map +1 -0
- package/dist/content/extract.d.ts +7 -0
- package/dist/content/extract.d.ts.map +1 -0
- package/dist/content/extract.js +33 -0
- package/dist/content/extract.js.map +1 -0
- package/dist/content/index.d.ts +9 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +6 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/slug.d.ts +40 -0
- package/dist/content/slug.d.ts.map +1 -0
- package/dist/content/slug.js +78 -0
- package/dist/content/slug.js.map +1 -0
- package/dist/content/structured-data.d.ts +163 -0
- package/dist/content/structured-data.d.ts.map +1 -0
- package/dist/content/structured-data.js +479 -0
- package/dist/content/structured-data.js.map +1 -0
- package/dist/content-health/cron.d.ts +68 -0
- package/dist/content-health/cron.d.ts.map +1 -0
- package/dist/content-health/cron.js +167 -0
- package/dist/content-health/cron.js.map +1 -0
- package/dist/content-health/scanner.d.ts +119 -0
- package/dist/content-health/scanner.d.ts.map +1 -0
- package/dist/content-health/scanner.js +257 -0
- package/dist/content-health/scanner.js.map +1 -0
- package/dist/cron/index.d.ts +90 -0
- package/dist/cron/index.d.ts.map +1 -0
- package/dist/cron/index.js +299 -0
- package/dist/cron/index.js.map +1 -0
- package/dist/db/adapters/mysql.d.ts +5 -0
- package/dist/db/adapters/mysql.d.ts.map +1 -0
- package/dist/db/adapters/mysql.js +26 -0
- package/dist/db/adapters/mysql.js.map +1 -0
- package/dist/db/adapters/postgres.d.ts +7 -0
- package/dist/db/adapters/postgres.d.ts.map +1 -0
- package/dist/db/adapters/postgres.js +25 -0
- package/dist/db/adapters/postgres.js.map +1 -0
- package/dist/db/adapters/sqlite.d.ts +5 -0
- package/dist/db/adapters/sqlite.d.ts.map +1 -0
- package/dist/db/adapters/sqlite.js +27 -0
- package/dist/db/adapters/sqlite.js.map +1 -0
- package/dist/db/client-types.d.ts +75 -0
- package/dist/db/client-types.d.ts.map +1 -0
- package/dist/db/client-types.js +2 -0
- package/dist/db/client-types.js.map +1 -0
- package/dist/db/create-adapter.d.ts +11 -0
- package/dist/db/create-adapter.d.ts.map +1 -0
- package/dist/db/create-adapter.js +43 -0
- package/dist/db/create-adapter.js.map +1 -0
- package/dist/db/find-in-batches.d.ts +12 -0
- package/dist/db/find-in-batches.d.ts.map +1 -0
- package/dist/db/find-in-batches.js +20 -0
- package/dist/db/find-in-batches.js.map +1 -0
- package/dist/db/index.d.ts +9 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +5 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/model-types.d.ts +602 -0
- package/dist/db/model-types.d.ts.map +1 -0
- package/dist/db/model-types.js +14 -0
- package/dist/db/model-types.js.map +1 -0
- package/dist/db.d.ts +20 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +35 -0
- package/dist/db.js.map +1 -0
- package/dist/diagnostics/api-metrics.d.ts +135 -0
- package/dist/diagnostics/api-metrics.d.ts.map +1 -0
- package/dist/diagnostics/api-metrics.js +376 -0
- package/dist/diagnostics/api-metrics.js.map +1 -0
- package/dist/diagnostics/env.d.ts +44 -0
- package/dist/diagnostics/env.d.ts.map +1 -0
- package/dist/diagnostics/env.js +354 -0
- package/dist/diagnostics/env.js.map +1 -0
- package/dist/diagnostics/logger.d.ts +38 -0
- package/dist/diagnostics/logger.d.ts.map +1 -0
- package/dist/diagnostics/logger.js +89 -0
- package/dist/diagnostics/logger.js.map +1 -0
- package/dist/diagnostics/sentry.d.ts +8 -0
- package/dist/diagnostics/sentry.d.ts.map +1 -0
- package/dist/diagnostics/sentry.js +54 -0
- package/dist/diagnostics/sentry.js.map +1 -0
- package/dist/email/resolve.d.ts +27 -0
- package/dist/email/resolve.d.ts.map +1 -0
- package/dist/email/resolve.js +68 -0
- package/dist/email/resolve.js.map +1 -0
- package/dist/email/sender.d.ts +71 -0
- package/dist/email/sender.d.ts.map +1 -0
- package/dist/email/sender.js +41 -0
- package/dist/email/sender.js.map +1 -0
- package/dist/email/settings-store.d.ts +116 -0
- package/dist/email/settings-store.d.ts.map +1 -0
- package/dist/email/settings-store.js +222 -0
- package/dist/email/settings-store.js.map +1 -0
- package/dist/fields/component-block.d.ts +23 -0
- package/dist/fields/component-block.d.ts.map +1 -0
- package/dist/fields/component-block.js +137 -0
- package/dist/fields/component-block.js.map +1 -0
- package/dist/fields/index.d.ts +19 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/index.js +95 -0
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/presets.d.ts +144 -0
- package/dist/fields/presets.d.ts.map +1 -0
- package/dist/fields/presets.js +350 -0
- package/dist/fields/presets.js.map +1 -0
- package/dist/fields/relations.d.ts +87 -0
- package/dist/fields/relations.d.ts.map +1 -0
- package/dist/fields/relations.js +231 -0
- package/dist/fields/relations.js.map +1 -0
- package/dist/forms/analytics.d.ts +62 -0
- package/dist/forms/analytics.d.ts.map +1 -0
- package/dist/forms/analytics.js +95 -0
- package/dist/forms/analytics.js.map +1 -0
- package/dist/forms/attribution.d.ts +175 -0
- package/dist/forms/attribution.d.ts.map +1 -0
- package/dist/forms/attribution.js +577 -0
- package/dist/forms/attribution.js.map +1 -0
- package/dist/forms/client-validation.d.ts +50 -0
- package/dist/forms/client-validation.d.ts.map +1 -0
- package/dist/forms/client-validation.js +215 -0
- package/dist/forms/client-validation.js.map +1 -0
- package/dist/forms/delivery.d.ts +89 -0
- package/dist/forms/delivery.d.ts.map +1 -0
- package/dist/forms/delivery.js +477 -0
- package/dist/forms/delivery.js.map +1 -0
- package/dist/forms/encryption.d.ts +20 -0
- package/dist/forms/encryption.d.ts.map +1 -0
- package/dist/forms/encryption.js +80 -0
- package/dist/forms/encryption.js.map +1 -0
- package/dist/forms/entries.d.ts +68 -0
- package/dist/forms/entries.d.ts.map +1 -0
- package/dist/forms/entries.js +557 -0
- package/dist/forms/entries.js.map +1 -0
- package/dist/forms/files.d.ts +38 -0
- package/dist/forms/files.d.ts.map +1 -0
- package/dist/forms/files.js +134 -0
- package/dist/forms/files.js.map +1 -0
- package/dist/forms/index.d.ts +21 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +20 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/notify.d.ts +80 -0
- package/dist/forms/notify.d.ts.map +1 -0
- package/dist/forms/notify.js +357 -0
- package/dist/forms/notify.js.map +1 -0
- package/dist/forms/prefetch.d.ts +17 -0
- package/dist/forms/prefetch.d.ts.map +1 -0
- package/dist/forms/prefetch.js +36 -0
- package/dist/forms/prefetch.js.map +1 -0
- package/dist/forms/public-html.d.ts +22 -0
- package/dist/forms/public-html.d.ts.map +1 -0
- package/dist/forms/public-html.js +145 -0
- package/dist/forms/public-html.js.map +1 -0
- package/dist/forms/service.d.ts +102 -0
- package/dist/forms/service.d.ts.map +1 -0
- package/dist/forms/service.js +625 -0
- package/dist/forms/service.js.map +1 -0
- package/dist/forms/spam.d.ts +33 -0
- package/dist/forms/spam.d.ts.map +1 -0
- package/dist/forms/spam.js +93 -0
- package/dist/forms/spam.js.map +1 -0
- package/dist/forms/submission.d.ts +132 -0
- package/dist/forms/submission.d.ts.map +1 -0
- package/dist/forms/submission.js +348 -0
- package/dist/forms/submission.js.map +1 -0
- package/dist/forms/types.d.ts +259 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +20 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/forms/validation.d.ts +19 -0
- package/dist/forms/validation.d.ts.map +1 -0
- package/dist/forms/validation.js +166 -0
- package/dist/forms/validation.js.map +1 -0
- package/dist/forms/webhooks.d.ts +60 -0
- package/dist/forms/webhooks.d.ts.map +1 -0
- package/dist/forms/webhooks.js +360 -0
- package/dist/forms/webhooks.js.map +1 -0
- package/dist/forms/webmcp.d.ts +36 -0
- package/dist/forms/webmcp.d.ts.map +1 -0
- package/dist/forms/webmcp.js +67 -0
- package/dist/forms/webmcp.js.map +1 -0
- package/dist/forms/xlsx.d.ts +10 -0
- package/dist/forms/xlsx.d.ts.map +1 -0
- package/dist/forms/xlsx.js +207 -0
- package/dist/forms/xlsx.js.map +1 -0
- package/dist/generated/browser.d.ts +220 -0
- package/dist/generated/browser.js +17 -0
- package/dist/generated/client.d.ts +239 -0
- package/dist/generated/client.js +34 -0
- package/dist/generated/commonInputTypes.d.ts +887 -0
- package/dist/generated/commonInputTypes.js +10 -0
- package/dist/generated/enums.d.ts +83 -0
- package/dist/generated/enums.js +81 -0
- package/dist/generated/internal/class.d.ts +517 -0
- package/dist/generated/internal/class.js +52 -0
- package/dist/generated/internal/prismaNamespace.d.ts +4184 -0
- package/dist/generated/internal/prismaNamespace.js +932 -0
- package/dist/generated/internal/prismaNamespaceBrowser.d.ts +968 -0
- package/dist/generated/internal/prismaNamespaceBrowser.js +903 -0
- package/dist/generated/models/AiCrawlerHit.d.ts +1115 -0
- package/dist/generated/models/AiCrawlerHit.js +1 -0
- package/dist/generated/models/ApiKey.d.ts +1388 -0
- package/dist/generated/models/ApiKey.js +1 -0
- package/dist/generated/models/ApiRequestMetric.d.ts +1229 -0
- package/dist/generated/models/ApiRequestMetric.js +1 -0
- package/dist/generated/models/AuditLog.d.ts +1062 -0
- package/dist/generated/models/AuditLog.js +1 -0
- package/dist/generated/models/BackupRecord.d.ts +1100 -0
- package/dist/generated/models/BackupRecord.js +1 -0
- package/dist/generated/models/ContentIssue.d.ts +1318 -0
- package/dist/generated/models/ContentIssue.js +1 -0
- package/dist/generated/models/ContentLock.d.ts +1295 -0
- package/dist/generated/models/ContentLock.js +1 -0
- package/dist/generated/models/ContentTemplate.d.ts +1254 -0
- package/dist/generated/models/ContentTemplate.js +1 -0
- package/dist/generated/models/Document.d.ts +3443 -0
- package/dist/generated/models/Document.js +1 -0
- package/dist/generated/models/Folder.d.ts +1689 -0
- package/dist/generated/models/Folder.js +1 -0
- package/dist/generated/models/FormDeliveryAttempt.d.ts +1705 -0
- package/dist/generated/models/FormDeliveryAttempt.js +1 -0
- package/dist/generated/models/FormSchemaVersion.d.ts +1105 -0
- package/dist/generated/models/FormSchemaVersion.js +1 -0
- package/dist/generated/models/FormSubmission.d.ts +2125 -0
- package/dist/generated/models/FormSubmission.js +1 -0
- package/dist/generated/models/FormSubmissionFile.d.ts +1438 -0
- package/dist/generated/models/FormSubmissionFile.js +1 -0
- package/dist/generated/models/FormWebhook.d.ts +1271 -0
- package/dist/generated/models/FormWebhook.js +1 -0
- package/dist/generated/models/InAppNotification.d.ts +1295 -0
- package/dist/generated/models/InAppNotification.js +1 -0
- package/dist/generated/models/Invite.d.ts +1240 -0
- package/dist/generated/models/Invite.js +1 -0
- package/dist/generated/models/Media.d.ts +2759 -0
- package/dist/generated/models/Media.js +1 -0
- package/dist/generated/models/MediaUsage.d.ts +1301 -0
- package/dist/generated/models/MediaUsage.js +1 -0
- package/dist/generated/models/OAuthAccount.d.ts +1300 -0
- package/dist/generated/models/OAuthAccount.js +1 -0
- package/dist/generated/models/PageTemplate.d.ts +1118 -0
- package/dist/generated/models/PageTemplate.js +1 -0
- package/dist/generated/models/PasswordResetToken.d.ts +1225 -0
- package/dist/generated/models/PasswordResetToken.js +1 -0
- package/dist/generated/models/Redirect.d.ts +1342 -0
- package/dist/generated/models/Redirect.js +1 -0
- package/dist/generated/models/Redirect404Hit.d.ts +1107 -0
- package/dist/generated/models/Redirect404Hit.js +1 -0
- package/dist/generated/models/RedirectSuggestion.d.ts +1185 -0
- package/dist/generated/models/RedirectSuggestion.js +1 -0
- package/dist/generated/models/SavedSection.d.ts +1156 -0
- package/dist/generated/models/SavedSection.js +1 -0
- package/dist/generated/models/ScriptTag.d.ts +1291 -0
- package/dist/generated/models/ScriptTag.js +1 -0
- package/dist/generated/models/SeoAuditRun.d.ts +1570 -0
- package/dist/generated/models/SeoAuditRun.js +1 -0
- package/dist/generated/models/SeoIssue.d.ts +1873 -0
- package/dist/generated/models/SeoIssue.js +1 -0
- package/dist/generated/models/Session.d.ts +1330 -0
- package/dist/generated/models/Session.js +1 -0
- package/dist/generated/models/Site.d.ts +1062 -0
- package/dist/generated/models/Site.js +1 -0
- package/dist/generated/models/User.d.ts +4344 -0
- package/dist/generated/models/User.js +1 -0
- package/dist/generated/models/Version.d.ts +1334 -0
- package/dist/generated/models/Version.js +1 -0
- package/dist/generated/models/WebhookDeliveryLog.d.ts +1479 -0
- package/dist/generated/models/WebhookDeliveryLog.js +1 -0
- package/dist/generated/models/WebhookEndpoint.d.ts +1331 -0
- package/dist/generated/models/WebhookEndpoint.js +1 -0
- package/dist/generated/models/WorkflowState.d.ts +1436 -0
- package/dist/generated/models/WorkflowState.js +1 -0
- package/dist/generated/models.d.ts +37 -0
- package/dist/generated/models.js +1 -0
- package/dist/graphql/index.d.ts +11 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +74 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/resolvers.d.ts +8 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +89 -0
- package/dist/graphql/resolvers.js.map +1 -0
- package/dist/graphql/schema-builder.d.ts +3 -0
- package/dist/graphql/schema-builder.d.ts.map +1 -0
- package/dist/graphql/schema-builder.js +103 -0
- package/dist/graphql/schema-builder.js.map +1 -0
- package/dist/health/index.d.ts +27 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +43 -0
- package/dist/health/index.js.map +1 -0
- package/dist/i18n/index.d.ts +22 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +37 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +125 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +132 -0
- package/dist/index.js.map +1 -0
- package/dist/media/content-hash.d.ts +3 -0
- package/dist/media/content-hash.d.ts.map +1 -0
- package/dist/media/content-hash.js +11 -0
- package/dist/media/content-hash.js.map +1 -0
- package/dist/media/denormalize.d.ts +23 -0
- package/dist/media/denormalize.d.ts.map +1 -0
- package/dist/media/denormalize.js +170 -0
- package/dist/media/denormalize.js.map +1 -0
- package/dist/media/index.d.ts +8 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +5 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/merge-document-media.d.ts +23 -0
- package/dist/media/merge-document-media.d.ts.map +1 -0
- package/dist/media/merge-document-media.js +146 -0
- package/dist/media/merge-document-media.js.map +1 -0
- package/dist/media/metadata-patch.d.ts +21 -0
- package/dist/media/metadata-patch.d.ts.map +1 -0
- package/dist/media/metadata-patch.js +37 -0
- package/dist/media/metadata-patch.js.map +1 -0
- package/dist/media/optimize.d.ts +61 -0
- package/dist/media/optimize.d.ts.map +1 -0
- package/dist/media/optimize.js +168 -0
- package/dist/media/optimize.js.map +1 -0
- package/dist/media/seo.d.ts +110 -0
- package/dist/media/seo.d.ts.map +1 -0
- package/dist/media/seo.js +263 -0
- package/dist/media/seo.js.map +1 -0
- package/dist/media/usage-sync.d.ts +37 -0
- package/dist/media/usage-sync.d.ts.map +1 -0
- package/dist/media/usage-sync.js +234 -0
- package/dist/media/usage-sync.js.map +1 -0
- package/dist/middleware.d.ts +17 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +159 -0
- package/dist/middleware.js.map +1 -0
- package/dist/multisite/index.d.ts +20 -0
- package/dist/multisite/index.d.ts.map +1 -0
- package/dist/multisite/index.js +26 -0
- package/dist/multisite/index.js.map +1 -0
- package/dist/navigation/unresolved-targets.d.ts +35 -0
- package/dist/navigation/unresolved-targets.d.ts.map +1 -0
- package/dist/navigation/unresolved-targets.js +109 -0
- package/dist/navigation/unresolved-targets.js.map +1 -0
- package/dist/next/preview.d.ts +10 -0
- package/dist/next/preview.d.ts.map +1 -0
- package/dist/next/preview.js +17 -0
- package/dist/next/preview.js.map +1 -0
- package/dist/next/script-tags.d.ts +15 -0
- package/dist/next/script-tags.d.ts.map +1 -0
- package/dist/next/script-tags.js +58 -0
- package/dist/next/script-tags.js.map +1 -0
- package/dist/next-site.d.ts +29 -0
- package/dist/next-site.d.ts.map +1 -0
- package/dist/next-site.js +60 -0
- package/dist/next-site.js.map +1 -0
- package/dist/next.d.ts +33 -0
- package/dist/next.d.ts.map +1 -0
- package/dist/next.js +142 -0
- package/dist/next.js.map +1 -0
- package/dist/notifications/index.d.ts +20 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +22 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/page-builder/a11y-fix.d.ts +20 -0
- package/dist/page-builder/a11y-fix.d.ts.map +1 -0
- package/dist/page-builder/a11y-fix.js +182 -0
- package/dist/page-builder/a11y-fix.js.map +1 -0
- package/dist/page-builder/ai-pipeline.d.ts +43 -0
- package/dist/page-builder/ai-pipeline.d.ts.map +1 -0
- package/dist/page-builder/ai-pipeline.js +165 -0
- package/dist/page-builder/ai-pipeline.js.map +1 -0
- package/dist/page-builder/blocks.d.ts +27 -0
- package/dist/page-builder/blocks.d.ts.map +1 -0
- package/dist/page-builder/blocks.js +313 -0
- package/dist/page-builder/blocks.js.map +1 -0
- package/dist/page-builder/design-scorer.d.ts +27 -0
- package/dist/page-builder/design-scorer.d.ts.map +1 -0
- package/dist/page-builder/design-scorer.js +612 -0
- package/dist/page-builder/design-scorer.js.map +1 -0
- package/dist/page-builder/index.d.ts +18 -0
- package/dist/page-builder/index.d.ts.map +1 -0
- package/dist/page-builder/index.js +20 -0
- package/dist/page-builder/index.js.map +1 -0
- package/dist/page-builder/schema.d.ts +107 -0
- package/dist/page-builder/schema.d.ts.map +1 -0
- package/dist/page-builder/schema.js +90 -0
- package/dist/page-builder/schema.js.map +1 -0
- package/dist/page-builder/seo-analyzer.d.ts +61 -0
- package/dist/page-builder/seo-analyzer.d.ts.map +1 -0
- package/dist/page-builder/seo-analyzer.js +778 -0
- package/dist/page-builder/seo-analyzer.js.map +1 -0
- package/dist/page-builder/templates.d.ts +9 -0
- package/dist/page-builder/templates.d.ts.map +1 -0
- package/dist/page-builder/templates.js +742 -0
- package/dist/page-builder/templates.js.map +1 -0
- package/dist/page-builder/tree.d.ts +17 -0
- package/dist/page-builder/tree.d.ts.map +1 -0
- package/dist/page-builder/tree.js +160 -0
- package/dist/page-builder/tree.js.map +1 -0
- package/dist/page-builder/types.d.ts +112 -0
- package/dist/page-builder/types.d.ts.map +1 -0
- package/dist/page-builder/types.js +4 -0
- package/dist/page-builder/types.js.map +1 -0
- package/dist/page-builder/validate.d.ts +6 -0
- package/dist/page-builder/validate.d.ts.map +1 -0
- package/dist/page-builder/validate.js +87 -0
- package/dist/page-builder/validate.js.map +1 -0
- package/dist/plan/features.d.ts +17 -0
- package/dist/plan/features.d.ts.map +1 -0
- package/dist/plan/features.js +73 -0
- package/dist/plan/features.js.map +1 -0
- package/dist/posts/query.d.ts +50 -0
- package/dist/posts/query.d.ts.map +1 -0
- package/dist/posts/query.js +105 -0
- package/dist/posts/query.js.map +1 -0
- package/dist/presence/index.d.ts +24 -0
- package/dist/presence/index.d.ts.map +1 -0
- package/dist/presence/index.js +99 -0
- package/dist/presence/index.js.map +1 -0
- package/dist/preview/event-bus.d.ts +39 -0
- package/dist/preview/event-bus.d.ts.map +1 -0
- package/dist/preview/event-bus.js +73 -0
- package/dist/preview/event-bus.js.map +1 -0
- package/dist/preview/index.d.ts +36 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +68 -0
- package/dist/preview/index.js.map +1 -0
- package/dist/preview/sse-stream.d.ts +47 -0
- package/dist/preview/sse-stream.d.ts.map +1 -0
- package/dist/preview/sse-stream.js +111 -0
- package/dist/preview/sse-stream.js.map +1 -0
- package/dist/privacy/index.d.ts +33 -0
- package/dist/privacy/index.d.ts.map +1 -0
- package/dist/privacy/index.js +15 -0
- package/dist/privacy/index.js.map +1 -0
- package/dist/public-redirects.d.ts +78 -0
- package/dist/public-redirects.d.ts.map +1 -0
- package/dist/public-redirects.js +187 -0
- package/dist/public-redirects.js.map +1 -0
- package/dist/public-security-headers.d.ts +27 -0
- package/dist/public-security-headers.d.ts.map +1 -0
- package/dist/public-security-headers.js +40 -0
- package/dist/public-security-headers.js.map +1 -0
- package/dist/publishing/publish-sync.d.ts +50 -0
- package/dist/publishing/publish-sync.d.ts.map +1 -0
- package/dist/publishing/publish-sync.js +124 -0
- package/dist/publishing/publish-sync.js.map +1 -0
- package/dist/purge/adapters.d.ts +60 -0
- package/dist/purge/adapters.d.ts.map +1 -0
- package/dist/purge/adapters.js +81 -0
- package/dist/purge/adapters.js.map +1 -0
- package/dist/purge/index.d.ts +12 -0
- package/dist/purge/index.d.ts.map +1 -0
- package/dist/purge/index.js +10 -0
- package/dist/purge/index.js.map +1 -0
- package/dist/purge/receiver.d.ts +95 -0
- package/dist/purge/receiver.d.ts.map +1 -0
- package/dist/purge/receiver.js +176 -0
- package/dist/purge/receiver.js.map +1 -0
- package/dist/realtime/comments.d.ts +217 -0
- package/dist/realtime/comments.d.ts.map +1 -0
- package/dist/realtime/comments.js +282 -0
- package/dist/realtime/comments.js.map +1 -0
- package/dist/realtime/gateway.d.ts +107 -0
- package/dist/realtime/gateway.d.ts.map +1 -0
- package/dist/realtime/gateway.js +215 -0
- package/dist/realtime/gateway.js.map +1 -0
- package/dist/realtime/index.d.ts +21 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +27 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/notification-bus.d.ts +60 -0
- package/dist/realtime/notification-bus.d.ts.map +1 -0
- package/dist/realtime/notification-bus.js +77 -0
- package/dist/realtime/notification-bus.js.map +1 -0
- package/dist/realtime/notification-stream.d.ts +50 -0
- package/dist/realtime/notification-stream.d.ts.map +1 -0
- package/dist/realtime/notification-stream.js +148 -0
- package/dist/realtime/notification-stream.js.map +1 -0
- package/dist/realtime/notifications.d.ts +201 -0
- package/dist/realtime/notifications.d.ts.map +1 -0
- package/dist/realtime/notifications.js +233 -0
- package/dist/realtime/notifications.js.map +1 -0
- package/dist/realtime/persistence.d.ts +72 -0
- package/dist/realtime/persistence.d.ts.map +1 -0
- package/dist/realtime/persistence.js +53 -0
- package/dist/realtime/persistence.js.map +1 -0
- package/dist/realtime/sse.d.ts +20 -0
- package/dist/realtime/sse.d.ts.map +1 -0
- package/dist/realtime/sse.js +31 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/redirects/auto.d.ts +45 -0
- package/dist/redirects/auto.d.ts.map +1 -0
- package/dist/redirects/auto.js +60 -0
- package/dist/redirects/auto.js.map +1 -0
- package/dist/redirects/fix-link.d.ts +15 -0
- package/dist/redirects/fix-link.d.ts.map +1 -0
- package/dist/redirects/fix-link.js +66 -0
- package/dist/redirects/fix-link.js.map +1 -0
- package/dist/redirects/graph.d.ts +92 -0
- package/dist/redirects/graph.d.ts.map +1 -0
- package/dist/redirects/graph.js +176 -0
- package/dist/redirects/graph.js.map +1 -0
- package/dist/redirects/index.d.ts +17 -0
- package/dist/redirects/index.d.ts.map +1 -0
- package/dist/redirects/index.js +10 -0
- package/dist/redirects/index.js.map +1 -0
- package/dist/redirects/legitimacy.d.ts +23 -0
- package/dist/redirects/legitimacy.d.ts.map +1 -0
- package/dist/redirects/legitimacy.js +64 -0
- package/dist/redirects/legitimacy.js.map +1 -0
- package/dist/redirects/recovery.d.ts +92 -0
- package/dist/redirects/recovery.d.ts.map +1 -0
- package/dist/redirects/recovery.js +210 -0
- package/dist/redirects/recovery.js.map +1 -0
- package/dist/redirects/rerank.d.ts +24 -0
- package/dist/redirects/rerank.d.ts.map +1 -0
- package/dist/redirects/rerank.js +82 -0
- package/dist/redirects/rerank.js.map +1 -0
- package/dist/redirects/suggest.d.ts +23 -0
- package/dist/redirects/suggest.d.ts.map +1 -0
- package/dist/redirects/suggest.js +80 -0
- package/dist/redirects/suggest.js.map +1 -0
- package/dist/redirects/typo.d.ts +10 -0
- package/dist/redirects/typo.d.ts.map +1 -0
- package/dist/redirects/typo.js +51 -0
- package/dist/redirects/typo.js.map +1 -0
- package/dist/redirects/validate-destination.d.ts +13 -0
- package/dist/redirects/validate-destination.d.ts.map +1 -0
- package/dist/redirects/validate-destination.js +51 -0
- package/dist/redirects/validate-destination.js.map +1 -0
- package/dist/relationships/index.d.ts +13 -0
- package/dist/relationships/index.d.ts.map +1 -0
- package/dist/relationships/index.js +12 -0
- package/dist/relationships/index.js.map +1 -0
- package/dist/scheduling/index.d.ts +45 -0
- package/dist/scheduling/index.d.ts.map +1 -0
- package/dist/scheduling/index.js +141 -0
- package/dist/scheduling/index.js.map +1 -0
- package/dist/script-tags/index.d.ts +3 -0
- package/dist/script-tags/index.d.ts.map +1 -0
- package/dist/script-tags/index.js +3 -0
- package/dist/script-tags/index.js.map +1 -0
- package/dist/script-tags/invalidate.d.ts +3 -0
- package/dist/script-tags/invalidate.d.ts.map +1 -0
- package/dist/script-tags/invalidate.js +16 -0
- package/dist/script-tags/invalidate.js.map +1 -0
- package/dist/script-tags/resolve.d.ts +41 -0
- package/dist/script-tags/resolve.d.ts.map +1 -0
- package/dist/script-tags/resolve.js +130 -0
- package/dist/script-tags/resolve.js.map +1 -0
- package/dist/search/index.d.ts +25 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +189 -0
- package/dist/search/index.js.map +1 -0
- package/dist/sections/bridge.d.ts +8 -0
- package/dist/sections/bridge.d.ts.map +1 -0
- package/dist/sections/bridge.js +211 -0
- package/dist/sections/bridge.js.map +1 -0
- package/dist/sections/define.d.ts +21 -0
- package/dist/sections/define.d.ts.map +1 -0
- package/dist/sections/define.js +160 -0
- package/dist/sections/define.js.map +1 -0
- package/dist/sections/embed.d.ts +24 -0
- package/dist/sections/embed.d.ts.map +1 -0
- package/dist/sections/embed.js +78 -0
- package/dist/sections/embed.js.map +1 -0
- package/dist/sections/fields.d.ts +37 -0
- package/dist/sections/fields.d.ts.map +1 -0
- package/dist/sections/fields.js +50 -0
- package/dist/sections/fields.js.map +1 -0
- package/dist/sections/helpers.d.ts +149 -0
- package/dist/sections/helpers.d.ts.map +1 -0
- package/dist/sections/helpers.js +373 -0
- package/dist/sections/helpers.js.map +1 -0
- package/dist/sections/index.d.ts +22 -0
- package/dist/sections/index.d.ts.map +1 -0
- package/dist/sections/index.js +18 -0
- package/dist/sections/index.js.map +1 -0
- package/dist/sections/media-enrich.d.ts +45 -0
- package/dist/sections/media-enrich.d.ts.map +1 -0
- package/dist/sections/media-enrich.js +137 -0
- package/dist/sections/media-enrich.js.map +1 -0
- package/dist/sections/migrate.d.ts +42 -0
- package/dist/sections/migrate.d.ts.map +1 -0
- package/dist/sections/migrate.js +66 -0
- package/dist/sections/migrate.js.map +1 -0
- package/dist/sections/registry.d.ts +46 -0
- package/dist/sections/registry.d.ts.map +1 -0
- package/dist/sections/registry.js +598 -0
- package/dist/sections/registry.js.map +1 -0
- package/dist/sections/types.d.ts +192 -0
- package/dist/sections/types.d.ts.map +1 -0
- package/dist/sections/types.js +21 -0
- package/dist/sections/types.js.map +1 -0
- package/dist/sections/validate.d.ts +12 -0
- package/dist/sections/validate.d.ts.map +1 -0
- package/dist/sections/validate.js +186 -0
- package/dist/sections/validate.js.map +1 -0
- package/dist/sections/widget-embed.d.ts +45 -0
- package/dist/sections/widget-embed.d.ts.map +1 -0
- package/dist/sections/widget-embed.js +129 -0
- package/dist/sections/widget-embed.js.map +1 -0
- package/dist/security/access.d.ts +35 -0
- package/dist/security/access.d.ts.map +1 -0
- package/dist/security/access.js +133 -0
- package/dist/security/access.js.map +1 -0
- package/dist/security/anomaly-detection.d.ts +17 -0
- package/dist/security/anomaly-detection.d.ts.map +1 -0
- package/dist/security/anomaly-detection.js +39 -0
- package/dist/security/anomaly-detection.js.map +1 -0
- package/dist/security/api-key-enhanced.d.ts +68 -0
- package/dist/security/api-key-enhanced.d.ts.map +1 -0
- package/dist/security/api-key-enhanced.js +76 -0
- package/dist/security/api-key-enhanced.js.map +1 -0
- package/dist/security/audit.d.ts +46 -0
- package/dist/security/audit.d.ts.map +1 -0
- package/dist/security/audit.js +67 -0
- package/dist/security/audit.js.map +1 -0
- package/dist/security/breach-check.d.ts +3 -0
- package/dist/security/breach-check.d.ts.map +1 -0
- package/dist/security/breach-check.js +27 -0
- package/dist/security/breach-check.js.map +1 -0
- package/dist/security/captcha.d.ts +67 -0
- package/dist/security/captcha.d.ts.map +1 -0
- package/dist/security/captcha.js +186 -0
- package/dist/security/captcha.js.map +1 -0
- package/dist/security/center/gather.d.ts +20 -0
- package/dist/security/center/gather.d.ts.map +1 -0
- package/dist/security/center/gather.js +240 -0
- package/dist/security/center/gather.js.map +1 -0
- package/dist/security/center/index.d.ts +13 -0
- package/dist/security/center/index.d.ts.map +1 -0
- package/dist/security/center/index.js +4 -0
- package/dist/security/center/index.js.map +1 -0
- package/dist/security/center/settings.d.ts +48 -0
- package/dist/security/center/settings.d.ts.map +1 -0
- package/dist/security/center/settings.js +218 -0
- package/dist/security/center/settings.js.map +1 -0
- package/dist/security/center/status.d.ts +10 -0
- package/dist/security/center/status.d.ts.map +1 -0
- package/dist/security/center/status.js +249 -0
- package/dist/security/center/status.js.map +1 -0
- package/dist/security/center/summaries.d.ts +21 -0
- package/dist/security/center/summaries.d.ts.map +1 -0
- package/dist/security/center/summaries.js +65 -0
- package/dist/security/center/summaries.js.map +1 -0
- package/dist/security/center/types.d.ts +142 -0
- package/dist/security/center/types.d.ts.map +1 -0
- package/dist/security/center/types.js +12 -0
- package/dist/security/center/types.js.map +1 -0
- package/dist/security/client-ip.d.ts +23 -0
- package/dist/security/client-ip.d.ts.map +1 -0
- package/dist/security/client-ip.js +97 -0
- package/dist/security/client-ip.js.map +1 -0
- package/dist/security/cors.d.ts +11 -0
- package/dist/security/cors.d.ts.map +1 -0
- package/dist/security/cors.js +33 -0
- package/dist/security/cors.js.map +1 -0
- package/dist/security/csp-nonces.d.ts +5 -0
- package/dist/security/csp-nonces.d.ts.map +1 -0
- package/dist/security/csp-nonces.js +24 -0
- package/dist/security/csp-nonces.js.map +1 -0
- package/dist/security/csrf.d.ts +5 -0
- package/dist/security/csrf.d.ts.map +1 -0
- package/dist/security/csrf.js +20 -0
- package/dist/security/csrf.js.map +1 -0
- package/dist/security/encrypted-fields.d.ts +14 -0
- package/dist/security/encrypted-fields.d.ts.map +1 -0
- package/dist/security/encrypted-fields.js +94 -0
- package/dist/security/encrypted-fields.js.map +1 -0
- package/dist/security/headers.d.ts +11 -0
- package/dist/security/headers.d.ts.map +1 -0
- package/dist/security/headers.js +32 -0
- package/dist/security/headers.js.map +1 -0
- package/dist/security/index.d.ts +40 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +26 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/internal-keys.d.ts +15 -0
- package/dist/security/internal-keys.d.ts.map +1 -0
- package/dist/security/internal-keys.js +33 -0
- package/dist/security/internal-keys.js.map +1 -0
- package/dist/security/ip-allowlist.d.ts +15 -0
- package/dist/security/ip-allowlist.d.ts.map +1 -0
- package/dist/security/ip-allowlist.js +141 -0
- package/dist/security/ip-allowlist.js.map +1 -0
- package/dist/security/ip-canon.d.ts +71 -0
- package/dist/security/ip-canon.d.ts.map +1 -0
- package/dist/security/ip-canon.js +352 -0
- package/dist/security/ip-canon.js.map +1 -0
- package/dist/security/middleware.d.ts +20 -0
- package/dist/security/middleware.d.ts.map +1 -0
- package/dist/security/middleware.js +45 -0
- package/dist/security/middleware.js.map +1 -0
- package/dist/security/rate-limit-policy.d.ts +40 -0
- package/dist/security/rate-limit-policy.d.ts.map +1 -0
- package/dist/security/rate-limit-policy.js +57 -0
- package/dist/security/rate-limit-policy.js.map +1 -0
- package/dist/security/rate-limit.d.ts +55 -0
- package/dist/security/rate-limit.d.ts.map +1 -0
- package/dist/security/rate-limit.js +298 -0
- package/dist/security/rate-limit.js.map +1 -0
- package/dist/security/reauth.d.ts +16 -0
- package/dist/security/reauth.d.ts.map +1 -0
- package/dist/security/reauth.js +56 -0
- package/dist/security/reauth.js.map +1 -0
- package/dist/security/redact.d.ts +12 -0
- package/dist/security/redact.d.ts.map +1 -0
- package/dist/security/redact.js +44 -0
- package/dist/security/redact.js.map +1 -0
- package/dist/security/safe-fetch.d.ts +57 -0
- package/dist/security/safe-fetch.d.ts.map +1 -0
- package/dist/security/safe-fetch.js +71 -0
- package/dist/security/safe-fetch.js.map +1 -0
- package/dist/security/sanitize-document.d.ts +14 -0
- package/dist/security/sanitize-document.d.ts.map +1 -0
- package/dist/security/sanitize-document.js +117 -0
- package/dist/security/sanitize-document.js.map +1 -0
- package/dist/security/sanitize.d.ts +13 -0
- package/dist/security/sanitize.d.ts.map +1 -0
- package/dist/security/sanitize.js +64 -0
- package/dist/security/sanitize.js.map +1 -0
- package/dist/security/secret-storage.d.ts +22 -0
- package/dist/security/secret-storage.d.ts.map +1 -0
- package/dist/security/secret-storage.js +75 -0
- package/dist/security/secret-storage.js.map +1 -0
- package/dist/security/security-txt.d.ts +12 -0
- package/dist/security/security-txt.d.ts.map +1 -0
- package/dist/security/security-txt.js +19 -0
- package/dist/security/security-txt.js.map +1 -0
- package/dist/security/session-limits.d.ts +17 -0
- package/dist/security/session-limits.d.ts.map +1 -0
- package/dist/security/session-limits.js +14 -0
- package/dist/security/session-limits.js.map +1 -0
- package/dist/security/upload.d.ts +32 -0
- package/dist/security/upload.d.ts.map +1 -0
- package/dist/security/upload.js +129 -0
- package/dist/security/upload.js.map +1 -0
- package/dist/security/webhook.d.ts +30 -0
- package/dist/security/webhook.d.ts.map +1 -0
- package/dist/security/webhook.js +133 -0
- package/dist/security/webhook.js.map +1 -0
- package/dist/seo/ai-bots.d.ts +56 -0
- package/dist/seo/ai-bots.d.ts.map +1 -0
- package/dist/seo/ai-bots.js +125 -0
- package/dist/seo/ai-bots.js.map +1 -0
- package/dist/seo/ai-crawler-log.d.ts +14 -0
- package/dist/seo/ai-crawler-log.d.ts.map +1 -0
- package/dist/seo/ai-crawler-log.js +48 -0
- package/dist/seo/ai-crawler-log.js.map +1 -0
- package/dist/seo/alt-text.d.ts +39 -0
- package/dist/seo/alt-text.d.ts.map +1 -0
- package/dist/seo/alt-text.js +67 -0
- package/dist/seo/alt-text.js.map +1 -0
- package/dist/seo/analysis.d.ts +75 -0
- package/dist/seo/analysis.d.ts.map +1 -0
- package/dist/seo/analysis.js +641 -0
- package/dist/seo/analysis.js.map +1 -0
- package/dist/seo/audit-engine.d.ts +124 -0
- package/dist/seo/audit-engine.d.ts.map +1 -0
- package/dist/seo/audit-engine.js +534 -0
- package/dist/seo/audit-engine.js.map +1 -0
- package/dist/seo/audit-runner.d.ts +84 -0
- package/dist/seo/audit-runner.d.ts.map +1 -0
- package/dist/seo/audit-runner.js +372 -0
- package/dist/seo/audit-runner.js.map +1 -0
- package/dist/seo/audit-signals.d.ts +28 -0
- package/dist/seo/audit-signals.d.ts.map +1 -0
- package/dist/seo/audit-signals.js +133 -0
- package/dist/seo/audit-signals.js.map +1 -0
- package/dist/seo/config-store.d.ts +99 -0
- package/dist/seo/config-store.d.ts.map +1 -0
- package/dist/seo/config-store.js +194 -0
- package/dist/seo/config-store.js.map +1 -0
- package/dist/seo/confirm-broken-links.d.ts +48 -0
- package/dist/seo/confirm-broken-links.d.ts.map +1 -0
- package/dist/seo/confirm-broken-links.js +135 -0
- package/dist/seo/confirm-broken-links.js.map +1 -0
- package/dist/seo/content-markdown.d.ts +26 -0
- package/dist/seo/content-markdown.d.ts.map +1 -0
- package/dist/seo/content-markdown.js +235 -0
- package/dist/seo/content-markdown.js.map +1 -0
- package/dist/seo/document-content.d.ts +18 -0
- package/dist/seo/document-content.d.ts.map +1 -0
- package/dist/seo/document-content.js +80 -0
- package/dist/seo/document-content.js.map +1 -0
- package/dist/seo/document-path.d.ts +33 -0
- package/dist/seo/document-path.d.ts.map +1 -0
- package/dist/seo/document-path.js +44 -0
- package/dist/seo/document-path.js.map +1 -0
- package/dist/seo/feeds.d.ts +44 -0
- package/dist/seo/feeds.d.ts.map +1 -0
- package/dist/seo/feeds.js +95 -0
- package/dist/seo/feeds.js.map +1 -0
- package/dist/seo/fix-brief-export.d.ts +47 -0
- package/dist/seo/fix-brief-export.d.ts.map +1 -0
- package/dist/seo/fix-brief-export.js +224 -0
- package/dist/seo/fix-brief-export.js.map +1 -0
- package/dist/seo/index-status.d.ts +56 -0
- package/dist/seo/index-status.d.ts.map +1 -0
- package/dist/seo/index-status.js +193 -0
- package/dist/seo/index-status.js.map +1 -0
- package/dist/seo/index.d.ts +68 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +36 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/issue-batch-briefs.d.ts +37 -0
- package/dist/seo/issue-batch-briefs.d.ts.map +1 -0
- package/dist/seo/issue-batch-briefs.js +85 -0
- package/dist/seo/issue-batch-briefs.js.map +1 -0
- package/dist/seo/issue-content-brief.d.ts +51 -0
- package/dist/seo/issue-content-brief.d.ts.map +1 -0
- package/dist/seo/issue-content-brief.js +267 -0
- package/dist/seo/issue-content-brief.js.map +1 -0
- package/dist/seo/issue-content-research.d.ts +51 -0
- package/dist/seo/issue-content-research.d.ts.map +1 -0
- package/dist/seo/issue-content-research.js +303 -0
- package/dist/seo/issue-content-research.js.map +1 -0
- package/dist/seo/issue-fix-ai.d.ts +39 -0
- package/dist/seo/issue-fix-ai.d.ts.map +1 -0
- package/dist/seo/issue-fix-ai.js +320 -0
- package/dist/seo/issue-fix-ai.js.map +1 -0
- package/dist/seo/issue-fix-redirect.d.ts +18 -0
- package/dist/seo/issue-fix-redirect.d.ts.map +1 -0
- package/dist/seo/issue-fix-redirect.js +153 -0
- package/dist/seo/issue-fix-redirect.js.map +1 -0
- package/dist/seo/issue-fix.d.ts +72 -0
- package/dist/seo/issue-fix.d.ts.map +1 -0
- package/dist/seo/issue-fix.js +266 -0
- package/dist/seo/issue-fix.js.map +1 -0
- package/dist/seo/link-graph.d.ts +54 -0
- package/dist/seo/link-graph.d.ts.map +1 -0
- package/dist/seo/link-graph.js +0 -0
- package/dist/seo/link-graph.js.map +1 -0
- package/dist/seo/link-probe.d.ts +49 -0
- package/dist/seo/link-probe.d.ts.map +1 -0
- package/dist/seo/link-probe.js +147 -0
- package/dist/seo/link-probe.js.map +1 -0
- package/dist/seo/llms-select.d.ts +34 -0
- package/dist/seo/llms-select.d.ts.map +1 -0
- package/dist/seo/llms-select.js +67 -0
- package/dist/seo/llms-select.js.map +1 -0
- package/dist/seo/llms-txt.d.ts +40 -0
- package/dist/seo/llms-txt.d.ts.map +1 -0
- package/dist/seo/llms-txt.js +177 -0
- package/dist/seo/llms-txt.js.map +1 -0
- package/dist/seo/meta-tags.d.ts +108 -0
- package/dist/seo/meta-tags.d.ts.map +1 -0
- package/dist/seo/meta-tags.js +353 -0
- package/dist/seo/meta-tags.js.map +1 -0
- package/dist/seo/migrate-meta.d.ts +23 -0
- package/dist/seo/migrate-meta.d.ts.map +1 -0
- package/dist/seo/migrate-meta.js +114 -0
- package/dist/seo/migrate-meta.js.map +1 -0
- package/dist/seo/migrate-schema.d.ts +28 -0
- package/dist/seo/migrate-schema.d.ts.map +1 -0
- package/dist/seo/migrate-schema.js +119 -0
- package/dist/seo/migrate-schema.js.map +1 -0
- package/dist/seo/page-meta.d.ts +179 -0
- package/dist/seo/page-meta.d.ts.map +1 -0
- package/dist/seo/page-meta.js +710 -0
- package/dist/seo/page-meta.js.map +1 -0
- package/dist/seo/public-site-url.d.ts +16 -0
- package/dist/seo/public-site-url.d.ts.map +1 -0
- package/dist/seo/public-site-url.js +39 -0
- package/dist/seo/public-site-url.js.map +1 -0
- package/dist/seo/resolve-path.d.ts +22 -0
- package/dist/seo/resolve-path.d.ts.map +1 -0
- package/dist/seo/resolve-path.js +53 -0
- package/dist/seo/resolve-path.js.map +1 -0
- package/dist/seo/rewrite-public-origin.d.ts +12 -0
- package/dist/seo/rewrite-public-origin.d.ts.map +1 -0
- package/dist/seo/rewrite-public-origin.js +17 -0
- package/dist/seo/rewrite-public-origin.js.map +1 -0
- package/dist/seo/robots.d.ts +45 -0
- package/dist/seo/robots.d.ts.map +1 -0
- package/dist/seo/robots.js +90 -0
- package/dist/seo/robots.js.map +1 -0
- package/dist/seo/schema-sync.d.ts +65 -0
- package/dist/seo/schema-sync.d.ts.map +1 -0
- package/dist/seo/schema-sync.js +163 -0
- package/dist/seo/schema-sync.js.map +1 -0
- package/dist/seo/score.d.ts +132 -0
- package/dist/seo/score.d.ts.map +1 -0
- package/dist/seo/score.js +216 -0
- package/dist/seo/score.js.map +1 -0
- package/dist/seo/serving-origin.d.ts +42 -0
- package/dist/seo/serving-origin.d.ts.map +1 -0
- package/dist/seo/serving-origin.js +83 -0
- package/dist/seo/serving-origin.js.map +1 -0
- package/dist/seo/site-identity.d.ts +60 -0
- package/dist/seo/site-identity.d.ts.map +1 -0
- package/dist/seo/site-identity.js +109 -0
- package/dist/seo/site-identity.js.map +1 -0
- package/dist/seo/sitemap-notify.d.ts +123 -0
- package/dist/seo/sitemap-notify.d.ts.map +1 -0
- package/dist/seo/sitemap-notify.js +270 -0
- package/dist/seo/sitemap-notify.js.map +1 -0
- package/dist/seo/sitemap-public.d.ts +43 -0
- package/dist/seo/sitemap-public.d.ts.map +1 -0
- package/dist/seo/sitemap-public.js +213 -0
- package/dist/seo/sitemap-public.js.map +1 -0
- package/dist/seo/title-templates.d.ts +80 -0
- package/dist/seo/title-templates.d.ts.map +1 -0
- package/dist/seo/title-templates.js +175 -0
- package/dist/seo/title-templates.js.map +1 -0
- package/dist/server-site.d.ts +55 -0
- package/dist/server-site.d.ts.map +1 -0
- package/dist/server-site.js +184 -0
- package/dist/server-site.js.map +1 -0
- package/dist/setup/index.d.ts +68 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +153 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/site.d.ts +178 -0
- package/dist/site.d.ts.map +1 -0
- package/dist/site.js +222 -0
- package/dist/site.js.map +1 -0
- package/dist/storage/auto-wire.d.ts +14 -0
- package/dist/storage/auto-wire.d.ts.map +1 -0
- package/dist/storage/auto-wire.js +60 -0
- package/dist/storage/auto-wire.js.map +1 -0
- package/dist/storage/index.d.ts +21 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +14 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/templates/index.d.ts +16 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +23 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/upgrade/changelog.d.ts +18 -0
- package/dist/upgrade/changelog.d.ts.map +1 -0
- package/dist/upgrade/changelog.js +60 -0
- package/dist/upgrade/changelog.js.map +1 -0
- package/dist/upgrade/index.d.ts +7 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +4 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/upgrade/upgrade-pr.d.ts +16 -0
- package/dist/upgrade/upgrade-pr.d.ts.map +1 -0
- package/dist/upgrade/upgrade-pr.js +128 -0
- package/dist/upgrade/upgrade-pr.js.map +1 -0
- package/dist/upgrade/version-check.d.ts +59 -0
- package/dist/upgrade/version-check.d.ts.map +1 -0
- package/dist/upgrade/version-check.js +142 -0
- package/dist/upgrade/version-check.js.map +1 -0
- package/dist/validation/publish.d.ts +53 -0
- package/dist/validation/publish.d.ts.map +1 -0
- package/dist/validation/publish.js +75 -0
- package/dist/validation/publish.js.map +1 -0
- package/dist/webhooks/index.d.ts +99 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +387 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/signing.d.ts +68 -0
- package/dist/webhooks/signing.d.ts.map +1 -0
- package/dist/webhooks/signing.js +98 -0
- package/dist/webhooks/signing.js.map +1 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +56 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflows/index.d.ts +30 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +14 -0
- package/dist/workflows/index.js.map +1 -0
- package/package.json +250 -0
- package/prisma/migrations/0001_init/migration.sql +941 -0
- package/prisma/migrations/0002_media_usage_field_path/migration.sql +11 -0
- package/prisma/migrations/0003_ai_crawler_hits/migration.sql +21 -0
- package/prisma/migrations/0004_drop_search_vector/migration.sql +4 -0
- package/prisma/migrations/0005_script_tag_delivery_controls/migration.sql +8 -0
- package/prisma/migrations/0006_totp_last_step/migration.sql +4 -0
- package/prisma/migrations/0007_workflow_fk_drop_dead_enums/migration.sql +27 -0
- package/prisma/migrations/0008_form_delivery_attempts/migration.sql +29 -0
- package/prisma/migrations/0009_webhook_secret_rotation/migration.sql +6 -0
- package/prisma/migrations/0010_media_is_decorative/migration.sql +3 -0
- package/prisma/migrations/0011_media_content_hash/migration.sql +4 -0
- package/prisma/migrations/0012_rename_to_prenta/migration.sql +89 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +995 -0
- package/prisma/seed.ts +82 -0
- package/schema-fragments/cms-schema.prisma +526 -0
|
@@ -0,0 +1,995 @@
|
|
|
1
|
+
generator client {
|
|
2
|
+
provider = "prisma-client"
|
|
3
|
+
output = "../generated"
|
|
4
|
+
// `relationJoins` is the Preview-feature flag that makes
|
|
5
|
+
// `relationLoadStrategy: 'join'` a recognised argument on
|
|
6
|
+
// findUnique / findMany / findFirst. Without it the option is
|
|
7
|
+
// silently rejected as an "Unknown argument" by Prisma — which
|
|
8
|
+
// is how the optimisation in PR #132 (dashboard recent-docs +
|
|
9
|
+
// versions list + bench `doc_get`) went unnoticed in production:
|
|
10
|
+
// `safeFindMany` swallowed the rejection and returned `[]`, the
|
|
11
|
+
// versions endpoint returned 500, and the bench reported "100/100
|
|
12
|
+
// errors" with no attached cause. Phase 5.5 #5 surfaced the
|
|
13
|
+
// failure once the bench harness started recording the first
|
|
14
|
+
// error message.
|
|
15
|
+
//
|
|
16
|
+
// The feature has been Preview since Prisma 5.7 and is documented
|
|
17
|
+
// at https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries#relation-load-strategies
|
|
18
|
+
previewFeatures = ["fullTextSearchPostgres", "relationJoins"]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
datasource db {
|
|
22
|
+
provider = "postgresql"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// ─── Enums ──────────────────────────────────────────────────────────
|
|
26
|
+
|
|
27
|
+
enum DocumentStatus {
|
|
28
|
+
DRAFT
|
|
29
|
+
PUBLISHED
|
|
30
|
+
ARCHIVED
|
|
31
|
+
SCHEDULED
|
|
32
|
+
SCHEDULED_UNPUBLISH
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
enum UserRole {
|
|
36
|
+
ADMIN
|
|
37
|
+
EDITOR
|
|
38
|
+
AUTHOR
|
|
39
|
+
CLIENT
|
|
40
|
+
OWNER
|
|
41
|
+
VIEWER
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
enum InviteStatus {
|
|
45
|
+
PENDING
|
|
46
|
+
ACCEPTED
|
|
47
|
+
EXPIRED
|
|
48
|
+
CANCELLED
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
enum ChangeType {
|
|
52
|
+
CREATE
|
|
53
|
+
UPDATE
|
|
54
|
+
PUBLISH
|
|
55
|
+
RESTORE
|
|
56
|
+
DELETE
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
enum ContentIssueType {
|
|
60
|
+
// Document is published but missing a `metaDescription` /
|
|
61
|
+
// `seoDescription` field — the dashboard surfaces these so editors
|
|
62
|
+
// can fix the SERP snippet before a competitor outranks them.
|
|
63
|
+
MISSING_META_DESCRIPTION
|
|
64
|
+
// Document HTML contains <img> tags without alt attributes. Hurts
|
|
65
|
+
// both a11y and SEO. Counted per *document* not per image — so a
|
|
66
|
+
// page with 5 alt-less images is 1 row, not 5, with `details.count`
|
|
67
|
+
// capturing the per-document count.
|
|
68
|
+
MISSING_ALT_TEXT
|
|
69
|
+
// Internal link (same-origin URL or relative path) returned 404 /
|
|
70
|
+
// 410 / DNS-failure when the link checker probed it. `details.url`
|
|
71
|
+
// holds the offending URL.
|
|
72
|
+
BROKEN_INTERNAL_LINK
|
|
73
|
+
// Published document not touched in >90 days. Encourages refresh
|
|
74
|
+
// of stale content — particularly important for "best of YEAR"
|
|
75
|
+
// posts that decay rapidly.
|
|
76
|
+
OUTDATED_CONTENT
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
enum WorkflowStage {
|
|
80
|
+
DRAFT
|
|
81
|
+
IN_REVIEW
|
|
82
|
+
APPROVED
|
|
83
|
+
PUBLISHED
|
|
84
|
+
ARCHIVED
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// ─── Models ─────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
model User {
|
|
90
|
+
id String @id @default(cuid())
|
|
91
|
+
email String @unique
|
|
92
|
+
name String
|
|
93
|
+
avatarUrl String?
|
|
94
|
+
role UserRole @default(AUTHOR)
|
|
95
|
+
passwordHash String?
|
|
96
|
+
totpSecret String?
|
|
97
|
+
totpEnabled Boolean @default(false)
|
|
98
|
+
// Last consumed TOTP time-step — enforces single-use so a captured code can't
|
|
99
|
+
// be replayed within its validity window (#565). Null until the first TOTP login.
|
|
100
|
+
lastTotpStep Int?
|
|
101
|
+
backupCodes Json?
|
|
102
|
+
authProvider String?
|
|
103
|
+
isActive Boolean @default(true)
|
|
104
|
+
isApproved Boolean @default(false)
|
|
105
|
+
emailVerified Boolean @default(false)
|
|
106
|
+
lastLoginAt DateTime?
|
|
107
|
+
createdAt DateTime @default(now())
|
|
108
|
+
updatedAt DateTime @updatedAt
|
|
109
|
+
|
|
110
|
+
// Access-control lifecycle (Users management subsystem). All additive and
|
|
111
|
+
// nullable/defaulted so existing rows migrate cleanly.
|
|
112
|
+
suspendedAt DateTime?
|
|
113
|
+
lockedAt DateTime?
|
|
114
|
+
forcePasswordReset Boolean @default(false)
|
|
115
|
+
mfaRequired Boolean @default(false)
|
|
116
|
+
failedLoginCount Int @default(0)
|
|
117
|
+
lastActiveAt DateTime?
|
|
118
|
+
invitedById String?
|
|
119
|
+
acceptedInviteAt DateTime?
|
|
120
|
+
|
|
121
|
+
sessions Session[]
|
|
122
|
+
oauthAccounts OAuthAccount[]
|
|
123
|
+
apiKeys ApiKey[]
|
|
124
|
+
documents Document[] @relation("CreatedDocuments")
|
|
125
|
+
updatedDocuments Document[] @relation("UpdatedDocuments")
|
|
126
|
+
versions Version[]
|
|
127
|
+
media Media[]
|
|
128
|
+
contentLocks ContentLock[]
|
|
129
|
+
notifications InAppNotification[]
|
|
130
|
+
contentTemplates ContentTemplate[]
|
|
131
|
+
workflowAssigned WorkflowState[]
|
|
132
|
+
passwordResetTokens PasswordResetToken[]
|
|
133
|
+
|
|
134
|
+
@@map("prenta_users")
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
model OAuthAccount {
|
|
138
|
+
id String @id @default(cuid())
|
|
139
|
+
userId String
|
|
140
|
+
provider String
|
|
141
|
+
providerAccountId String
|
|
142
|
+
accessToken String?
|
|
143
|
+
refreshToken String?
|
|
144
|
+
expiresAt DateTime?
|
|
145
|
+
createdAt DateTime @default(now())
|
|
146
|
+
|
|
147
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
148
|
+
|
|
149
|
+
@@unique([provider, providerAccountId])
|
|
150
|
+
@@map("prenta_oauth_accounts")
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
model Session {
|
|
154
|
+
id String @id @default(cuid())
|
|
155
|
+
userId String
|
|
156
|
+
token String @unique
|
|
157
|
+
expiresAt DateTime
|
|
158
|
+
revokedAt DateTime?
|
|
159
|
+
ipAddress String?
|
|
160
|
+
userAgent String?
|
|
161
|
+
fingerprintHash String?
|
|
162
|
+
createdAt DateTime @default(now())
|
|
163
|
+
|
|
164
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
165
|
+
|
|
166
|
+
@@index([userId])
|
|
167
|
+
@@index([expiresAt])
|
|
168
|
+
@@map("prenta_sessions")
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
model ApiKey {
|
|
172
|
+
id String @id @default(cuid())
|
|
173
|
+
name String
|
|
174
|
+
keyHash String @unique
|
|
175
|
+
keyPrefix String
|
|
176
|
+
userId String
|
|
177
|
+
scopes Json
|
|
178
|
+
ipRestrictions Json?
|
|
179
|
+
expiresAt DateTime?
|
|
180
|
+
lastUsedAt DateTime?
|
|
181
|
+
revokedAt DateTime?
|
|
182
|
+
createdAt DateTime @default(now())
|
|
183
|
+
|
|
184
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
185
|
+
|
|
186
|
+
@@map("prenta_api_keys")
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
model AuditLog {
|
|
190
|
+
id String @id @default(cuid())
|
|
191
|
+
event String
|
|
192
|
+
userId String?
|
|
193
|
+
ipAddress String?
|
|
194
|
+
userAgent String?
|
|
195
|
+
details Json?
|
|
196
|
+
timestamp DateTime @default(now())
|
|
197
|
+
|
|
198
|
+
@@index([event])
|
|
199
|
+
@@index([userId])
|
|
200
|
+
@@index([timestamp])
|
|
201
|
+
@@map("prenta_audit_logs")
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
model Folder {
|
|
205
|
+
id String @id @default(cuid())
|
|
206
|
+
name String
|
|
207
|
+
scope String
|
|
208
|
+
parentId String?
|
|
209
|
+
position Int @default(0)
|
|
210
|
+
createdAt DateTime @default(now())
|
|
211
|
+
updatedAt DateTime @updatedAt
|
|
212
|
+
|
|
213
|
+
parent Folder? @relation("FolderTree", fields: [parentId], references: [id], onDelete: Cascade)
|
|
214
|
+
children Folder[] @relation("FolderTree")
|
|
215
|
+
|
|
216
|
+
documents Document[]
|
|
217
|
+
media Media[]
|
|
218
|
+
|
|
219
|
+
@@index([scope])
|
|
220
|
+
@@index([parentId])
|
|
221
|
+
@@map("prenta_folders")
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
model Document {
|
|
225
|
+
id String @id @default(cuid())
|
|
226
|
+
collection String
|
|
227
|
+
title String?
|
|
228
|
+
slug String?
|
|
229
|
+
data Json
|
|
230
|
+
status DocumentStatus @default(DRAFT)
|
|
231
|
+
locale String?
|
|
232
|
+
localeGroupId String?
|
|
233
|
+
createdById String
|
|
234
|
+
updatedById String
|
|
235
|
+
publishedAt DateTime?
|
|
236
|
+
scheduledAt DateTime?
|
|
237
|
+
scheduledUnpublishAt DateTime?
|
|
238
|
+
deletedAt DateTime?
|
|
239
|
+
plainText String?
|
|
240
|
+
contentHash String?
|
|
241
|
+
structuredData Json?
|
|
242
|
+
contentGraph Json?
|
|
243
|
+
siteId String?
|
|
244
|
+
templateId String?
|
|
245
|
+
workflowStage WorkflowStage @default(DRAFT)
|
|
246
|
+
reviewerId String?
|
|
247
|
+
reviewNote String?
|
|
248
|
+
folderId String?
|
|
249
|
+
createdAt DateTime @default(now())
|
|
250
|
+
updatedAt DateTime @updatedAt
|
|
251
|
+
|
|
252
|
+
createdBy User @relation("CreatedDocuments", fields: [createdById], references: [id])
|
|
253
|
+
updatedBy User @relation("UpdatedDocuments", fields: [updatedById], references: [id])
|
|
254
|
+
folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)
|
|
255
|
+
versions Version[]
|
|
256
|
+
mediaUsages MediaUsage[]
|
|
257
|
+
contentLocks ContentLock[]
|
|
258
|
+
contentIssues ContentIssue[]
|
|
259
|
+
workflowState WorkflowState?
|
|
260
|
+
|
|
261
|
+
@@unique([collection, slug])
|
|
262
|
+
@@index([collection])
|
|
263
|
+
@@index([status])
|
|
264
|
+
@@index([deletedAt])
|
|
265
|
+
@@index([publishedAt])
|
|
266
|
+
@@index([folderId])
|
|
267
|
+
@@index([scheduledAt])
|
|
268
|
+
@@index([localeGroupId])
|
|
269
|
+
@@index([createdById])
|
|
270
|
+
@@map("prenta_documents")
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
model Version {
|
|
274
|
+
id String @id @default(cuid())
|
|
275
|
+
documentId String
|
|
276
|
+
data Json
|
|
277
|
+
changedById String
|
|
278
|
+
changeType ChangeType
|
|
279
|
+
createdAt DateTime @default(now())
|
|
280
|
+
|
|
281
|
+
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
282
|
+
changedBy User @relation(fields: [changedById], references: [id])
|
|
283
|
+
|
|
284
|
+
@@index([documentId])
|
|
285
|
+
@@map("prenta_versions")
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
enum MediaStatus {
|
|
289
|
+
PROCESSING
|
|
290
|
+
READY
|
|
291
|
+
FAILED
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
model Media {
|
|
295
|
+
id String @id @default(cuid())
|
|
296
|
+
filename String
|
|
297
|
+
storageKey String @unique
|
|
298
|
+
mimeType String
|
|
299
|
+
fileSize Int
|
|
300
|
+
width Int?
|
|
301
|
+
height Int?
|
|
302
|
+
altText String?
|
|
303
|
+
title String?
|
|
304
|
+
uploadedById String
|
|
305
|
+
focalPointX Float?
|
|
306
|
+
focalPointY Float?
|
|
307
|
+
blurHash String?
|
|
308
|
+
aiAltText String?
|
|
309
|
+
aiTags Json?
|
|
310
|
+
aiDescription String?
|
|
311
|
+
folderId String?
|
|
312
|
+
createdAt DateTime @default(now())
|
|
313
|
+
updatedAt DateTime @updatedAt
|
|
314
|
+
|
|
315
|
+
// ── Media Center additions ──────────────────────────────────────
|
|
316
|
+
// All nullable / defaulted so they're safe to add to a populated DB
|
|
317
|
+
// with no backfill. SEO score/issues are intentionally NOT stored —
|
|
318
|
+
// they're derived on read by `calculateMediaSeoScore()` so they can
|
|
319
|
+
// never drift from the metadata below.
|
|
320
|
+
originalFileName String?
|
|
321
|
+
caption String?
|
|
322
|
+
description String?
|
|
323
|
+
focusKeyword String?
|
|
324
|
+
// WCAG decorative images use alt="" intentionally. Persisted so the
|
|
325
|
+
// media SEO scorer awards the alt weight instead of flagging missing-alt
|
|
326
|
+
// (#714). Cleared automatically when a non-empty alt is saved.
|
|
327
|
+
isDecorative Boolean @default(false)
|
|
328
|
+
tags Json?
|
|
329
|
+
// SHA-256 hex of the final stored bytes (post-optimize). Used to make
|
|
330
|
+
// re-uploads / seed re-runs idempotent instead of creating byte-identical
|
|
331
|
+
// twins (#718). Nullable so legacy rows need no backfill.
|
|
332
|
+
contentHash String?
|
|
333
|
+
// `storageKey` historically held the public URL; `publicUrl` splits
|
|
334
|
+
// that concern out. New uploads populate both; legacy rows keep the
|
|
335
|
+
// URL in `storageKey` and `mediaUrl()` still resolves it.
|
|
336
|
+
publicUrl String?
|
|
337
|
+
storageProvider String?
|
|
338
|
+
durationSeconds Float?
|
|
339
|
+
thumbnailUrl String?
|
|
340
|
+
responsiveVariants Json?
|
|
341
|
+
status MediaStatus @default(READY)
|
|
342
|
+
deletedAt DateTime?
|
|
343
|
+
|
|
344
|
+
uploadedBy User @relation(fields: [uploadedById], references: [id])
|
|
345
|
+
folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)
|
|
346
|
+
mediaUsages MediaUsage[]
|
|
347
|
+
|
|
348
|
+
@@index([folderId])
|
|
349
|
+
@@index([deletedAt])
|
|
350
|
+
@@index([mimeType])
|
|
351
|
+
@@index([contentHash])
|
|
352
|
+
@@map("prenta_media")
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
model MediaUsage {
|
|
356
|
+
id String @id @default(cuid())
|
|
357
|
+
mediaId String
|
|
358
|
+
documentId String
|
|
359
|
+
fieldPath String
|
|
360
|
+
createdAt DateTime @default(now())
|
|
361
|
+
|
|
362
|
+
media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade)
|
|
363
|
+
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
364
|
+
|
|
365
|
+
@@unique([mediaId, documentId, fieldPath])
|
|
366
|
+
@@index([documentId])
|
|
367
|
+
@@map("prenta_media_usages")
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
model ContentLock {
|
|
371
|
+
id String @id @default(cuid())
|
|
372
|
+
documentId String
|
|
373
|
+
userId String
|
|
374
|
+
lockedAt DateTime @default(now())
|
|
375
|
+
expiresAt DateTime
|
|
376
|
+
|
|
377
|
+
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
378
|
+
user User @relation(fields: [userId], references: [id])
|
|
379
|
+
|
|
380
|
+
@@map("prenta_content_locks")
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
model InAppNotification {
|
|
384
|
+
id String @id @default(cuid())
|
|
385
|
+
userId String
|
|
386
|
+
type String
|
|
387
|
+
title String
|
|
388
|
+
message String?
|
|
389
|
+
link String?
|
|
390
|
+
read Boolean @default(false)
|
|
391
|
+
createdAt DateTime @default(now())
|
|
392
|
+
|
|
393
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
394
|
+
|
|
395
|
+
@@map("prenta_notifications")
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
model ContentTemplate {
|
|
399
|
+
id String @id @default(cuid())
|
|
400
|
+
name String
|
|
401
|
+
collection String
|
|
402
|
+
templateData Json
|
|
403
|
+
createdById String
|
|
404
|
+
createdAt DateTime @default(now())
|
|
405
|
+
updatedAt DateTime @updatedAt
|
|
406
|
+
|
|
407
|
+
createdBy User @relation(fields: [createdById], references: [id])
|
|
408
|
+
|
|
409
|
+
@@map("prenta_content_templates")
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
model Site {
|
|
413
|
+
id String @id @default(cuid())
|
|
414
|
+
domain String @unique
|
|
415
|
+
name String
|
|
416
|
+
configOverrides Json?
|
|
417
|
+
isDefault Boolean @default(false)
|
|
418
|
+
createdAt DateTime @default(now())
|
|
419
|
+
updatedAt DateTime @updatedAt
|
|
420
|
+
|
|
421
|
+
@@map("prenta_sites")
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
model WorkflowState {
|
|
425
|
+
id String @id @default(cuid())
|
|
426
|
+
documentId String @unique
|
|
427
|
+
currentStep Int @default(0)
|
|
428
|
+
assignedToId String?
|
|
429
|
+
status String @default("pending")
|
|
430
|
+
definition Json
|
|
431
|
+
createdAt DateTime @default(now())
|
|
432
|
+
updatedAt DateTime @updatedAt
|
|
433
|
+
|
|
434
|
+
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
435
|
+
assignedTo User? @relation(fields: [assignedToId], references: [id])
|
|
436
|
+
|
|
437
|
+
@@map("prenta_workflow_states")
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
model Redirect {
|
|
441
|
+
id String @id @default(cuid())
|
|
442
|
+
source String
|
|
443
|
+
destination String
|
|
444
|
+
statusCode Int @default(301)
|
|
445
|
+
isRegex Boolean @default(false)
|
|
446
|
+
notes String?
|
|
447
|
+
// Runtime + management metadata (added in 0009_seo). All defaulted so the
|
|
448
|
+
// migration is safe to apply to a populated table with no backfill.
|
|
449
|
+
enabled Boolean @default(true)
|
|
450
|
+
priority Int @default(0)
|
|
451
|
+
preserveQuery Boolean @default(false)
|
|
452
|
+
// "manual" | "import" | "ai-404-recovery" | "chain-flatten"
|
|
453
|
+
source_kind String @default("manual")
|
|
454
|
+
hits Int @default(0)
|
|
455
|
+
lastHitAt DateTime?
|
|
456
|
+
createdById String?
|
|
457
|
+
createdAt DateTime @default(now())
|
|
458
|
+
updatedAt DateTime @updatedAt
|
|
459
|
+
|
|
460
|
+
@@unique([source])
|
|
461
|
+
@@index([enabled])
|
|
462
|
+
@@index([lastHitAt])
|
|
463
|
+
@@map("prenta_redirects")
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
// ─── SEO module (0009_seo) ──────────────────────────────────────────
|
|
467
|
+
|
|
468
|
+
enum SeoAuditStatus {
|
|
469
|
+
RUNNING
|
|
470
|
+
COMPLETED
|
|
471
|
+
FAILED
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
enum SeoIssueSeverity {
|
|
475
|
+
critical
|
|
476
|
+
warning
|
|
477
|
+
info
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
enum SeoIssueStatus {
|
|
481
|
+
open
|
|
482
|
+
ignored
|
|
483
|
+
resolved
|
|
484
|
+
recurring
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
enum SeoIssueCategory {
|
|
488
|
+
content
|
|
489
|
+
technical
|
|
490
|
+
redirects
|
|
491
|
+
media
|
|
492
|
+
performance
|
|
493
|
+
schema
|
|
494
|
+
social
|
|
495
|
+
indexing
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
/// One execution of the SEO audit engine. Holds a snapshot of the site
|
|
499
|
+
/// score and issue counts so the Audit tab can show run history without
|
|
500
|
+
/// recomputing. Issues belong to a run via SEOIssue.auditRunId.
|
|
501
|
+
model SeoAuditRun {
|
|
502
|
+
id String @id @default(cuid())
|
|
503
|
+
status SeoAuditStatus @default(RUNNING)
|
|
504
|
+
scope String @default("full")
|
|
505
|
+
startedById String?
|
|
506
|
+
startedAt DateTime @default(now())
|
|
507
|
+
finishedAt DateTime?
|
|
508
|
+
siteScoreBefore Int?
|
|
509
|
+
siteScoreAfter Int?
|
|
510
|
+
pagesScanned Int @default(0)
|
|
511
|
+
issuesFound Int @default(0)
|
|
512
|
+
criticalCount Int @default(0)
|
|
513
|
+
warningCount Int @default(0)
|
|
514
|
+
infoCount Int @default(0)
|
|
515
|
+
errorMessage String?
|
|
516
|
+
metadata Json?
|
|
517
|
+
|
|
518
|
+
issues SeoIssue[]
|
|
519
|
+
|
|
520
|
+
@@index([status])
|
|
521
|
+
@@index([startedAt])
|
|
522
|
+
@@map("prenta_seo_audit_runs")
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/// A single SEO problem detected by an audit run. `issueKey` is a stable
|
|
526
|
+
/// hash of (type + entityId/url) used to carry status across runs so a
|
|
527
|
+
/// resolved/ignored issue stays resolved/ignored when re-detected.
|
|
528
|
+
model SeoIssue {
|
|
529
|
+
id String @id @default(cuid())
|
|
530
|
+
auditRunId String?
|
|
531
|
+
issueKey String
|
|
532
|
+
entityType String?
|
|
533
|
+
entityId String?
|
|
534
|
+
entityTitle String?
|
|
535
|
+
url String?
|
|
536
|
+
severity SeoIssueSeverity
|
|
537
|
+
category SeoIssueCategory
|
|
538
|
+
type String
|
|
539
|
+
title String
|
|
540
|
+
description String?
|
|
541
|
+
impact String?
|
|
542
|
+
recommendation String?
|
|
543
|
+
status SeoIssueStatus @default(open)
|
|
544
|
+
fixable Boolean @default(false)
|
|
545
|
+
fixActionType String?
|
|
546
|
+
relatedEntityIds Json?
|
|
547
|
+
source String @default("audit")
|
|
548
|
+
firstDetectedAt DateTime @default(now())
|
|
549
|
+
lastDetectedAt DateTime @default(now())
|
|
550
|
+
resolvedAt DateTime?
|
|
551
|
+
resolvedById String?
|
|
552
|
+
metadata Json?
|
|
553
|
+
|
|
554
|
+
auditRun SeoAuditRun? @relation(fields: [auditRunId], references: [id], onDelete: SetNull)
|
|
555
|
+
|
|
556
|
+
@@index([auditRunId])
|
|
557
|
+
@@index([status])
|
|
558
|
+
@@index([severity])
|
|
559
|
+
@@index([category])
|
|
560
|
+
@@index([issueKey])
|
|
561
|
+
@@map("prenta_seo_issues")
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
/// A 404 hit observed by the redirect middleware. Aggregated per path so
|
|
565
|
+
/// the Redirects tab can surface "broken URLs still getting traffic".
|
|
566
|
+
model Redirect404Hit {
|
|
567
|
+
id String @id @default(cuid())
|
|
568
|
+
path String
|
|
569
|
+
hits Int @default(1)
|
|
570
|
+
referrer String?
|
|
571
|
+
resolvedAt DateTime?
|
|
572
|
+
firstSeenAt DateTime @default(now())
|
|
573
|
+
lastSeenAt DateTime @default(now())
|
|
574
|
+
|
|
575
|
+
@@unique([path])
|
|
576
|
+
@@index([lastSeenAt])
|
|
577
|
+
@@map("prenta_redirect_404_hits")
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
/// Aggregated AI-crawler activity for the admin "AI crawler activity" panel.
|
|
581
|
+
/// One row per (bot token, surface), upserted on each hit so the table stays
|
|
582
|
+
/// bounded (~known bots × surfaces) and needs no periodic pruning.
|
|
583
|
+
/// `surface` ∈ "llms" | "llms-full" | "md" | "honeypot".
|
|
584
|
+
/// `category` mirrors the ai-bots taxonomy: "training" | "retrieval" | "other".
|
|
585
|
+
model AiCrawlerHit {
|
|
586
|
+
id String @id @default(cuid())
|
|
587
|
+
bot String
|
|
588
|
+
surface String
|
|
589
|
+
category String @default("other")
|
|
590
|
+
hits Int @default(1)
|
|
591
|
+
firstSeenAt DateTime @default(now())
|
|
592
|
+
lastSeenAt DateTime @default(now())
|
|
593
|
+
|
|
594
|
+
@@unique([bot, surface])
|
|
595
|
+
@@index([lastSeenAt])
|
|
596
|
+
@@map("prenta_ai_crawler_hits")
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/// An AI/heuristic suggestion for a 404 destination. Confidence-scored and
|
|
600
|
+
/// never auto-applied below the configured threshold.
|
|
601
|
+
model RedirectSuggestion {
|
|
602
|
+
id String @id @default(cuid())
|
|
603
|
+
fromPath String
|
|
604
|
+
toPath String
|
|
605
|
+
confidence Int @default(0)
|
|
606
|
+
reason String?
|
|
607
|
+
// "open" | "accepted" | "dismissed"
|
|
608
|
+
status String @default("open")
|
|
609
|
+
source String @default("ai-404-recovery")
|
|
610
|
+
metadata Json?
|
|
611
|
+
createdAt DateTime @default(now())
|
|
612
|
+
updatedAt DateTime @updatedAt
|
|
613
|
+
|
|
614
|
+
@@index([status])
|
|
615
|
+
@@index([fromPath])
|
|
616
|
+
@@map("prenta_redirect_suggestions")
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
// A versioned snapshot of a form's field schema. Saving a form's schema in
|
|
620
|
+
// the admin creates a new row here; submissions reference the version they
|
|
621
|
+
// were captured against so historical entries always render with the fields
|
|
622
|
+
// that existed at submit time, even after the live form schema changes.
|
|
623
|
+
model FormSchemaVersion {
|
|
624
|
+
id String @id @default(cuid())
|
|
625
|
+
formId String
|
|
626
|
+
version Int
|
|
627
|
+
fields Json
|
|
628
|
+
notes String?
|
|
629
|
+
createdById String?
|
|
630
|
+
createdAt DateTime @default(now())
|
|
631
|
+
|
|
632
|
+
@@unique([formId, version])
|
|
633
|
+
@@index([formId])
|
|
634
|
+
@@map("prenta_form_schema_versions")
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
model FormSubmission {
|
|
638
|
+
id String @id @default(cuid())
|
|
639
|
+
// Per-instance sequential number shown in the UI (e.g. #00001). Assigned by
|
|
640
|
+
// the submission service inside a transaction; nullable for legacy rows.
|
|
641
|
+
entryNumber Int?
|
|
642
|
+
formId String
|
|
643
|
+
schemaVersionId String?
|
|
644
|
+
data Json
|
|
645
|
+
// Server-derived, type-coerced view of `data` (e.g. checkbox -> bool,
|
|
646
|
+
// number -> number) used for export/search. `data` keeps the raw payload.
|
|
647
|
+
normalizedData Json?
|
|
648
|
+
attribution Json?
|
|
649
|
+
senderName String?
|
|
650
|
+
senderEmail String?
|
|
651
|
+
senderPhone String?
|
|
652
|
+
preview String?
|
|
653
|
+
// Legacy free-form status ('new'); superseded by the booleans below but
|
|
654
|
+
// retained so existing rows/integrations keep working.
|
|
655
|
+
status String @default("new")
|
|
656
|
+
unread Boolean @default(true)
|
|
657
|
+
starred Boolean @default(false)
|
|
658
|
+
archived Boolean @default(false)
|
|
659
|
+
spamStatus String @default("clean")
|
|
660
|
+
ipAddressHash String?
|
|
661
|
+
userAgent String?
|
|
662
|
+
referrer String?
|
|
663
|
+
pageUrl String?
|
|
664
|
+
utmSource String?
|
|
665
|
+
utmMedium String?
|
|
666
|
+
utmCampaign String?
|
|
667
|
+
submittedAt DateTime @default(now())
|
|
668
|
+
readAt DateTime?
|
|
669
|
+
archivedAt DateTime?
|
|
670
|
+
createdAt DateTime @default(now())
|
|
671
|
+
updatedAt DateTime @updatedAt
|
|
672
|
+
|
|
673
|
+
files FormSubmissionFile[]
|
|
674
|
+
deliveries FormDeliveryAttempt[]
|
|
675
|
+
|
|
676
|
+
@@index([formId])
|
|
677
|
+
@@index([status])
|
|
678
|
+
@@index([unread])
|
|
679
|
+
@@index([starred])
|
|
680
|
+
@@index([archived])
|
|
681
|
+
@@index([spamStatus])
|
|
682
|
+
@@index([submittedAt])
|
|
683
|
+
@@index([senderEmail])
|
|
684
|
+
@@map("prenta_form_submissions")
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
// File attachments for a submission. Files are stored via the configured
|
|
688
|
+
// storage adapter (never inline in the DB); this row tracks metadata and the
|
|
689
|
+
// storage key needed to mint a secure download link.
|
|
690
|
+
model FormSubmissionFile {
|
|
691
|
+
id String @id @default(cuid())
|
|
692
|
+
submissionId String
|
|
693
|
+
fieldKey String
|
|
694
|
+
mediaAssetId String?
|
|
695
|
+
fileName String
|
|
696
|
+
mimeType String
|
|
697
|
+
sizeBytes Int
|
|
698
|
+
storageKey String
|
|
699
|
+
publicUrl String?
|
|
700
|
+
secureDownloadUrl String?
|
|
701
|
+
createdAt DateTime @default(now())
|
|
702
|
+
|
|
703
|
+
submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
|
704
|
+
|
|
705
|
+
@@index([submissionId])
|
|
706
|
+
@@map("prenta_form_submission_files")
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
// Per-form outbound webhook configuration. Distinct from the global
|
|
710
|
+
// WebhookEndpoint registry so form owners can wire delivery without admin
|
|
711
|
+
// access to site-wide webhooks.
|
|
712
|
+
model FormWebhook {
|
|
713
|
+
id String @id @default(cuid())
|
|
714
|
+
formId String
|
|
715
|
+
url String
|
|
716
|
+
secret String
|
|
717
|
+
/// Previous signing secret (encrypted) kept during rotation grace (#679).
|
|
718
|
+
previousSecret String?
|
|
719
|
+
previousSecretValidUntil DateTime?
|
|
720
|
+
enabled Boolean @default(true)
|
|
721
|
+
events Json
|
|
722
|
+
retryCount Int @default(0)
|
|
723
|
+
lastDeliveryAt DateTime?
|
|
724
|
+
lastDeliveryStatus String?
|
|
725
|
+
createdAt DateTime @default(now())
|
|
726
|
+
updatedAt DateTime @updatedAt
|
|
727
|
+
|
|
728
|
+
@@index([formId])
|
|
729
|
+
@@map("prenta_form_webhooks")
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
/// Per-submission notify/webhook/email delivery attempts (#675).
|
|
733
|
+
/// Fail-open: the lead is always persisted; this table tracks best-effort fan-out.
|
|
734
|
+
model FormDeliveryAttempt {
|
|
735
|
+
id String @id @default(cuid())
|
|
736
|
+
submissionId String
|
|
737
|
+
formId String
|
|
738
|
+
/// email_notify | email_autoresponder | form_webhook
|
|
739
|
+
channel String
|
|
740
|
+
/// Recipient email or webhook URL (never secrets).
|
|
741
|
+
destination String
|
|
742
|
+
webhookId String?
|
|
743
|
+
/// pending | retrying | success | failed | skipped
|
|
744
|
+
status String @default("pending")
|
|
745
|
+
attempts Int @default(0)
|
|
746
|
+
maxAttempts Int @default(3)
|
|
747
|
+
lastAttemptAt DateTime?
|
|
748
|
+
nextRetryAt DateTime?
|
|
749
|
+
error String?
|
|
750
|
+
responseStatus Int?
|
|
751
|
+
skippedReason String?
|
|
752
|
+
/// Webhook payload (or email meta) for retry without re-submitting.
|
|
753
|
+
payload Json?
|
|
754
|
+
/// When an operator alert email was sent for a permanent failure.
|
|
755
|
+
alertedAt DateTime?
|
|
756
|
+
createdAt DateTime @default(now())
|
|
757
|
+
updatedAt DateTime @updatedAt
|
|
758
|
+
|
|
759
|
+
submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
|
760
|
+
|
|
761
|
+
@@index([formId, status])
|
|
762
|
+
@@index([submissionId])
|
|
763
|
+
@@index([status, nextRetryAt])
|
|
764
|
+
@@map("prenta_form_delivery_attempts")
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
model BackupRecord {
|
|
768
|
+
id String @id @default(cuid())
|
|
769
|
+
filename String
|
|
770
|
+
storageKey String
|
|
771
|
+
sizeBytes Int
|
|
772
|
+
type String
|
|
773
|
+
metadata Json?
|
|
774
|
+
createdAt DateTime @default(now())
|
|
775
|
+
|
|
776
|
+
@@map("prenta_backup_records")
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
model WebhookEndpoint {
|
|
780
|
+
id String @id @default(cuid())
|
|
781
|
+
url String
|
|
782
|
+
events Json
|
|
783
|
+
secret String
|
|
784
|
+
/// Previous signing secret (encrypted) kept during rotation grace (#679).
|
|
785
|
+
previousSecret String?
|
|
786
|
+
previousSecretValidUntil DateTime?
|
|
787
|
+
active Boolean @default(true)
|
|
788
|
+
name String?
|
|
789
|
+
createdAt DateTime @default(now())
|
|
790
|
+
updatedAt DateTime @updatedAt
|
|
791
|
+
|
|
792
|
+
deliveries WebhookDeliveryLog[]
|
|
793
|
+
|
|
794
|
+
@@map("prenta_webhook_endpoints")
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
model WebhookDeliveryLog {
|
|
798
|
+
id String @id @default(cuid())
|
|
799
|
+
endpointId String
|
|
800
|
+
event String
|
|
801
|
+
payload Json
|
|
802
|
+
status String @default("pending")
|
|
803
|
+
attempts Int @default(0)
|
|
804
|
+
maxAttempts Int @default(3)
|
|
805
|
+
lastAttemptAt DateTime?
|
|
806
|
+
nextRetryAt DateTime?
|
|
807
|
+
responseStatus Int?
|
|
808
|
+
responseBody String?
|
|
809
|
+
createdAt DateTime @default(now())
|
|
810
|
+
|
|
811
|
+
endpoint WebhookEndpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade)
|
|
812
|
+
|
|
813
|
+
@@index([endpointId])
|
|
814
|
+
@@index([status])
|
|
815
|
+
@@index([nextRetryAt])
|
|
816
|
+
@@map("prenta_webhook_deliveries")
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
model PasswordResetToken {
|
|
820
|
+
id String @id @default(cuid())
|
|
821
|
+
userId String
|
|
822
|
+
tokenHash String
|
|
823
|
+
expiresAt DateTime
|
|
824
|
+
usedAt DateTime?
|
|
825
|
+
createdAt DateTime @default(now())
|
|
826
|
+
|
|
827
|
+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
828
|
+
|
|
829
|
+
@@index([tokenHash])
|
|
830
|
+
@@index([userId])
|
|
831
|
+
@@map("prenta_password_reset_tokens")
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
model Invite {
|
|
835
|
+
id String @id @default(cuid())
|
|
836
|
+
email String
|
|
837
|
+
role UserRole
|
|
838
|
+
status InviteStatus @default(PENDING)
|
|
839
|
+
tokenHash String
|
|
840
|
+
message String?
|
|
841
|
+
// Stored as a bare id (not an FK relation) to mirror AuditLog: an inviter
|
|
842
|
+
// being removed must never cascade-delete the invite history.
|
|
843
|
+
invitedByUserId String?
|
|
844
|
+
acceptedUserId String?
|
|
845
|
+
expiresAt DateTime
|
|
846
|
+
acceptedAt DateTime?
|
|
847
|
+
cancelledAt DateTime?
|
|
848
|
+
createdAt DateTime @default(now())
|
|
849
|
+
updatedAt DateTime @updatedAt
|
|
850
|
+
|
|
851
|
+
@@index([email])
|
|
852
|
+
@@index([tokenHash])
|
|
853
|
+
@@index([status])
|
|
854
|
+
@@map("prenta_invites")
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
model ScriptTag {
|
|
858
|
+
id String @id @default(cuid())
|
|
859
|
+
name String
|
|
860
|
+
code String @db.Text
|
|
861
|
+
placement String
|
|
862
|
+
scope String
|
|
863
|
+
targetPaths String[]
|
|
864
|
+
priority Int @default(100)
|
|
865
|
+
enabled Boolean @default(true)
|
|
866
|
+
/// Inject `async` into external <script src> tags so they don't block render.
|
|
867
|
+
loadAsync Boolean @default(false)
|
|
868
|
+
/// Skip this tag when the page is rendered inside CMS preview mode.
|
|
869
|
+
disableInPreview Boolean @default(true)
|
|
870
|
+
/// Cookie-consent category gate: none | analytics | marketing | functional | preferences.
|
|
871
|
+
consentCategory String @default("none")
|
|
872
|
+
createdAt DateTime @default(now())
|
|
873
|
+
updatedAt DateTime @updatedAt
|
|
874
|
+
|
|
875
|
+
@@index([enabled])
|
|
876
|
+
@@index([placement])
|
|
877
|
+
@@map("prenta_script_tags")
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
model PageTemplate {
|
|
881
|
+
id String @id @default(cuid())
|
|
882
|
+
name String
|
|
883
|
+
description String?
|
|
884
|
+
category String @default("content")
|
|
885
|
+
tree Json
|
|
886
|
+
thumbnail String?
|
|
887
|
+
builtIn Boolean @default(false)
|
|
888
|
+
createdAt DateTime @default(now())
|
|
889
|
+
updatedAt DateTime @updatedAt
|
|
890
|
+
|
|
891
|
+
@@index([category])
|
|
892
|
+
@@index([builtIn])
|
|
893
|
+
@@map("prenta_page_templates")
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
model SavedSection {
|
|
897
|
+
id String @id @default(cuid())
|
|
898
|
+
name String
|
|
899
|
+
description String?
|
|
900
|
+
category String @default("content")
|
|
901
|
+
tree Json
|
|
902
|
+
thumbnail String?
|
|
903
|
+
usageCount Int @default(0)
|
|
904
|
+
createdAt DateTime @default(now())
|
|
905
|
+
updatedAt DateTime @updatedAt
|
|
906
|
+
|
|
907
|
+
@@index([category])
|
|
908
|
+
@@map("prenta_saved_sections")
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
// ─── Dashboard metrics ─────────────────────────────────────────────────────
|
|
912
|
+
|
|
913
|
+
/// Per-minute pre-aggregated request counters that power the
|
|
914
|
+
/// "Delivery API" dashboard tiles (request volume, error rate,
|
|
915
|
+
/// average latency, p95). One row per (bucketStart × route × statusBucket).
|
|
916
|
+
///
|
|
917
|
+
/// Why pre-aggregated minute buckets and not per-request rows:
|
|
918
|
+
/// - 24h of traffic at 10 req/s on 20 routes ≈ 17M raw rows; the
|
|
919
|
+
/// equivalent minute-bucketed table is ≤ 28,800 rows (1440 × 20).
|
|
920
|
+
/// - Vercel Functions are concurrency-bounded; an O(1) UPSERT per
|
|
921
|
+
/// request is cheaper than O(write+query) per dashboard load.
|
|
922
|
+
/// - 7-day retention is enforced by the
|
|
923
|
+
/// `/api/cms/cron/api-metrics-prune` cron, so the table stays
|
|
924
|
+
/// bounded.
|
|
925
|
+
///
|
|
926
|
+
/// `latencyHistogram` is a fixed 12-bucket log-scale array (ms):
|
|
927
|
+
/// [<1, 1-2, 2-4, 4-8, 8-16, 16-32, 32-64, 64-128, 128-256,
|
|
928
|
+
/// 256-512, 512-1024, >1024]
|
|
929
|
+
/// Cumulative-sum to estimate p95 with ~10% accuracy without
|
|
930
|
+
/// per-request samples. The `delivery-stats` reader merges
|
|
931
|
+
/// histograms across buckets before estimating.
|
|
932
|
+
model ApiRequestMetric {
|
|
933
|
+
id String @id @default(cuid())
|
|
934
|
+
/// UTC minute boundary (`floor(time, '1 minute')`). The unique
|
|
935
|
+
/// constraint on `(bucketStart, route, statusBucket)` lets the
|
|
936
|
+
/// request logger UPSERT in one round-trip per request.
|
|
937
|
+
bucketStart DateTime
|
|
938
|
+
/// Normalised request route (e.g. `/collections/posts` — never
|
|
939
|
+
/// the per-document `/collections/posts/abc123`). Normalisation
|
|
940
|
+
/// happens in `instrumentation.ts` so the cardinality stays
|
|
941
|
+
/// bounded.
|
|
942
|
+
route String
|
|
943
|
+
/// HTTP status family — one of `2xx`, `3xx`, `4xx`, `5xx`,
|
|
944
|
+
/// `other`. Storing the bucket rather than the raw status lets
|
|
945
|
+
/// us answer "error rate?" with a single GROUP BY.
|
|
946
|
+
statusBucket String
|
|
947
|
+
count Int @default(0)
|
|
948
|
+
/// Sum of `responseMs` across `count` requests. Average latency
|
|
949
|
+
/// = `sum(sumLatencyMs) / sum(count)` over the window.
|
|
950
|
+
sumLatencyMs Float @default(0)
|
|
951
|
+
/// Max single-request latency in this bucket. Useful as a
|
|
952
|
+
/// fast-path tail-latency indicator and as a sanity check on
|
|
953
|
+
/// the histogram estimator.
|
|
954
|
+
maxLatencyMs Float @default(0)
|
|
955
|
+
/// 12-bucket log-scale histogram (see model doc). Stored as
|
|
956
|
+
/// `Json` so the schema doesn't have to change when we revise
|
|
957
|
+
/// bucket boundaries.
|
|
958
|
+
latencyHistogram Json
|
|
959
|
+
updatedAt DateTime @updatedAt
|
|
960
|
+
|
|
961
|
+
@@unique([bucketStart, route, statusBucket])
|
|
962
|
+
@@index([bucketStart])
|
|
963
|
+
@@map("prenta_api_request_metrics")
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
/// Persisted content-quality issues surfaced by the nightly
|
|
967
|
+
/// content-health scan. The Dashboard's "Content Health" card
|
|
968
|
+
/// aggregates these rows by `type` to produce the issue list.
|
|
969
|
+
///
|
|
970
|
+
/// Upsert key is `(documentId, type)` so the scanner is
|
|
971
|
+
/// idempotent — re-running yields the same row count, and a row
|
|
972
|
+
/// "self-resolves" by being absent from the next scan (the
|
|
973
|
+
/// scanner uses a `firstScanAt`-watermark + delete pattern).
|
|
974
|
+
model ContentIssue {
|
|
975
|
+
id String @id @default(cuid())
|
|
976
|
+
documentId String
|
|
977
|
+
type ContentIssueType
|
|
978
|
+
/// Per-issue count (e.g. 5 alt-less images = `count: 5` even
|
|
979
|
+
/// though it's 1 row). Lets the dashboard show real numbers
|
|
980
|
+
/// without re-scanning the document HTML on each page load.
|
|
981
|
+
count Int @default(1)
|
|
982
|
+
/// Type-specific payload — the broken URL, the page's
|
|
983
|
+
/// `updatedAt`, the offending image src, etc. JSON so each
|
|
984
|
+
/// issue type can carry its own shape without schema churn.
|
|
985
|
+
details Json?
|
|
986
|
+
firstSeenAt DateTime @default(now())
|
|
987
|
+
lastSeenAt DateTime @default(now())
|
|
988
|
+
|
|
989
|
+
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
|
|
990
|
+
|
|
991
|
+
@@unique([documentId, type])
|
|
992
|
+
@@index([type])
|
|
993
|
+
@@index([documentId])
|
|
994
|
+
@@map("prenta_content_issues")
|
|
995
|
+
}
|