@prenta/core 8.17.1 → 8.18.1

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +13 -0
  4. package/dist/actions.js.map +1 -1
  5. package/dist/api/route-helpers/media.d.ts.map +1 -1
  6. package/dist/api/route-helpers/media.js +2 -1
  7. package/dist/api/route-helpers/media.js.map +1 -1
  8. package/dist/api/routes/ai-authoring.d.ts.map +1 -1
  9. package/dist/api/routes/ai-authoring.js +6 -1
  10. package/dist/api/routes/ai-authoring.js.map +1 -1
  11. package/dist/api/routes/folders.d.ts.map +1 -1
  12. package/dist/api/routes/folders.js +4 -1
  13. package/dist/api/routes/folders.js.map +1 -1
  14. package/dist/api/routes/media.d.ts.map +1 -1
  15. package/dist/api/routes/media.js +92 -118
  16. package/dist/api/routes/media.js.map +1 -1
  17. package/dist/api/routes/sections.d.ts.map +1 -1
  18. package/dist/api/routes/sections.js +29 -0
  19. package/dist/api/routes/sections.js.map +1 -1
  20. package/dist/api/validate-body.d.ts +1 -0
  21. package/dist/api/validate-body.d.ts.map +1 -1
  22. package/dist/api/validate-body.js +2 -0
  23. package/dist/api/validate-body.js.map +1 -1
  24. package/dist/config/types.d.ts +8 -0
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/generated/internal/class.js +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/media/library-membership.d.ts +46 -0
  32. package/dist/media/library-membership.d.ts.map +1 -0
  33. package/dist/media/library-membership.js +168 -0
  34. package/dist/media/library-membership.js.map +1 -0
  35. package/dist/media/public-url.d.ts +7 -0
  36. package/dist/media/public-url.d.ts.map +1 -0
  37. package/dist/media/public-url.js +12 -0
  38. package/dist/media/public-url.js.map +1 -0
  39. package/dist/media/reoptimize.d.ts.map +1 -1
  40. package/dist/media/reoptimize.js +22 -19
  41. package/dist/media/reoptimize.js.map +1 -1
  42. package/dist/media/storage-delete.d.ts +8 -0
  43. package/dist/media/storage-delete.d.ts.map +1 -0
  44. package/dist/media/storage-delete.js +41 -0
  45. package/dist/media/storage-delete.js.map +1 -0
  46. package/dist/media/storage-key.d.ts +43 -0
  47. package/dist/media/storage-key.d.ts.map +1 -0
  48. package/dist/media/storage-key.js +52 -0
  49. package/dist/media/storage-key.js.map +1 -0
  50. package/dist/sections/validate.d.ts.map +1 -1
  51. package/dist/sections/validate.js +6 -25
  52. package/dist/sections/validate.js.map +1 -1
  53. package/dist/security/sanitize.d.ts +5 -0
  54. package/dist/security/sanitize.d.ts.map +1 -1
  55. package/dist/security/sanitize.js +109 -0
  56. package/dist/security/sanitize.js.map +1 -1
  57. package/dist/security/upload.d.ts.map +1 -1
  58. package/dist/security/upload.js +19 -3
  59. package/dist/security/upload.js.map +1 -1
  60. package/dist/server-site.d.ts.map +1 -1
  61. package/dist/server-site.js +2 -1
  62. package/dist/server-site.js.map +1 -1
  63. package/package.json +1 -1
  64. package/prisma/schema.prisma +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"validate-body.d.ts","sourceRoot":"","sources":["../../src/api/validate-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAgCvB,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACjD,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,GACR;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAMjE;AAED,qEAAqE;AACrE,wBAAsB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACvD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,CAI1E;AAeD,eAAO,MAAM,eAAe;;;;iBAI1B,CAAA;AAEF,eAAO,MAAM,wBAAwB;;iBAEnC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;iBAKlC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;iBAE9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;iBAajC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;iBAEpC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;iBAKpB,CAAA;AAEhB,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAUnC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;iBAIpC,CAAA;AAIF,eAAO,MAAM,yBAAyB;;;iBAOpC,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB;;;;iBAUlB,CAAA;AAEhB,eAAO,MAAM,sBAAsB;;;;;;;;;iBAcjC,CAAA"}
1
+ {"version":3,"file":"validate-body.d.ts","sourceRoot":"","sources":["../../src/api/validate-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAgCvB,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACjD,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,CAAC,GACR;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAMjE;AAED,qEAAqE;AACrE,wBAAsB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACvD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC,CAI1E;AAeD,eAAO,MAAM,eAAe;;;;iBAI1B,CAAA;AAEF,eAAO,MAAM,wBAAwB;;iBAEnC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;iBAKlC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;iBAE9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;iBAajC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;iBAEpC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;iBAKpB,CAAA;AAEhB,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAUnC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;iBAIpC,CAAA;AAIF,eAAO,MAAM,yBAAyB;;;;iBASpC,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF,gFAAgF;AAChF,eAAO,MAAM,qBAAqB;;;;iBAUlB,CAAA;AAEhB,eAAO,MAAM,sBAAsB;;;;;;;;;iBAcjC,CAAA"}
@@ -128,6 +128,8 @@ export const mediaBulkDeleteBodySchema = z.object({
128
128
  confirm: z
129
129
  .boolean({ error: bulkDeleteConfirm })
130
130
  .refine((value) => value === true, { message: bulkDeleteConfirm }),
131
+ /** Required when the file is still referenced. Does not delete stored bytes. */
132
+ force: z.boolean().optional(),
131
133
  });
132
134
  const linkApplyRequired = 'sourceEntityId, targetEntityId, anchorText, and fingerprint are required';
133
135
  export const seoLinkApplyBodySchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"validate-body.js","sourceRoot":"","sources":["../../src/api/validate-body.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-body.js","sourceRoot":"","sources":["../../src/api/validate-body.ts"],"names":[],"mappings":"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"}
@@ -657,6 +657,14 @@ export interface PrentaCMSConfig {
657
657
  * `CollectionSEOConfig` overrides take precedence over these defaults.
658
658
  */
659
659
  seo?: SiteSEOConfig;
660
+ /**
661
+ * Media library policy. `enforceLibrary` defaults to `warn`: off-library
662
+ * images are reported on validate and do not block publish. `block` makes
663
+ * them a publish error for pages and posts.
664
+ */
665
+ media?: {
666
+ enforceLibrary?: 'warn' | 'block';
667
+ };
660
668
  /**
661
669
  * Forms system configuration. Governs which field types are allowed, default
662
670
  * spam protection, file-upload limits, notification/webhook availability, and
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ const config = {
18
18
  "clientVersion": "7.8.0",
19
19
  "engineVersion": "3c6e192761c0362d496ed980de936e2f3cebcd3a",
20
20
  "activeProvider": "postgresql",
21
- "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated\"\n // `relationJoins` is the Preview-feature flag that makes\n // `relationLoadStrategy: 'join'` a recognised argument on\n // findUnique / findMany / findFirst. Without it the option is\n // silently rejected as an \"Unknown argument\" by Prisma — which\n // is how the optimisation in PR #132 (dashboard recent-docs +\n // versions list + bench `doc_get`) went unnoticed in production:\n // `safeFindMany` swallowed the rejection and returned `[]`, the\n // versions endpoint returned 500, and the bench reported \"100/100\n // errors\" with no attached cause. Phase 5.5 #5 surfaced the\n // failure once the bench harness started recording the first\n // error message.\n //\n // The feature has been Preview since Prisma 5.7 and is documented\n // at https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries#relation-load-strategies\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n// ─── Enums ──────────────────────────────────────────────────────────\n\nenum DocumentStatus {\n DRAFT\n PUBLISHED\n ARCHIVED\n SCHEDULED\n SCHEDULED_UNPUBLISH\n}\n\nenum UserRole {\n ADMIN\n EDITOR\n AUTHOR\n CLIENT\n OWNER\n VIEWER\n}\n\nenum InviteStatus {\n PENDING\n ACCEPTED\n EXPIRED\n CANCELLED\n}\n\nenum ChangeType {\n CREATE\n UPDATE\n PUBLISH\n RESTORE\n DELETE\n}\n\nenum ContentIssueType {\n // Document is published but missing a `metaDescription` /\n // `seoDescription` field — the dashboard surfaces these so editors\n // can fix the SERP snippet before a competitor outranks them.\n MISSING_META_DESCRIPTION\n // Document HTML contains <img> tags without alt attributes. Hurts\n // both a11y and SEO. Counted per *document* not per image — so a\n // page with 5 alt-less images is 1 row, not 5, with `details.count`\n // capturing the per-document count.\n MISSING_ALT_TEXT\n // Internal link (same-origin URL or relative path) returned 404 /\n // 410 / DNS-failure when the link checker probed it. `details.url`\n // holds the offending URL.\n BROKEN_INTERNAL_LINK\n // Published document not touched in >90 days. Encourages refresh\n // of stale content — particularly important for \"best of YEAR\"\n // posts that decay rapidly.\n OUTDATED_CONTENT\n}\n\nenum WorkflowStage {\n DRAFT\n IN_REVIEW\n APPROVED\n PUBLISHED\n ARCHIVED\n}\n\n// ─── Models ─────────────────────────────────────────────────────────\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n name String\n avatarUrl String?\n role UserRole @default(AUTHOR)\n passwordHash String?\n totpSecret String?\n totpEnabled Boolean @default(false)\n // Last consumed TOTP time-step — enforces single-use so a captured code can't\n // be replayed within its validity window (#565). Null until the first TOTP login.\n lastTotpStep Int?\n backupCodes Json?\n authProvider String?\n isActive Boolean @default(true)\n isApproved Boolean @default(false)\n emailVerified Boolean @default(false)\n lastLoginAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Access-control lifecycle (Users management subsystem). All additive and\n // nullable/defaulted so existing rows migrate cleanly.\n suspendedAt DateTime?\n lockedAt DateTime?\n forcePasswordReset Boolean @default(false)\n mfaRequired Boolean @default(false)\n failedLoginCount Int @default(0)\n lastActiveAt DateTime?\n invitedById String?\n acceptedInviteAt DateTime?\n\n sessions Session[]\n oauthAccounts OAuthAccount[]\n apiKeys ApiKey[]\n mcpOauthGrants McpOauthGrant[]\n documents Document[] @relation(\"CreatedDocuments\")\n updatedDocuments Document[] @relation(\"UpdatedDocuments\")\n versions Version[]\n media Media[]\n contentLocks ContentLock[]\n notifications InAppNotification[]\n contentTemplates ContentTemplate[]\n passwordResetTokens PasswordResetToken[]\n documentComments DocumentComment[]\n documentNotifications DocumentNotification[]\n\n @@map(\"prenta_users\")\n}\n\nmodel OAuthAccount {\n id String @id @default(cuid())\n userId String\n provider String\n providerAccountId String\n accessToken String?\n refreshToken String?\n expiresAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"prenta_oauth_accounts\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n userId String\n token String @unique\n expiresAt DateTime\n revokedAt DateTime?\n ipAddress String?\n userAgent String?\n fingerprintHash String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([expiresAt])\n @@map(\"prenta_sessions\")\n}\n\nmodel ApiKey {\n id String @id @default(cuid())\n name String\n keyHash String @unique\n keyPrefix String\n userId String\n scopes Json\n ipRestrictions Json?\n expiresAt DateTime?\n lastUsedAt DateTime?\n revokedAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"prenta_api_keys\")\n}\n\nmodel AuditLog {\n id String @id @default(cuid())\n event String\n userId String?\n ipAddress String?\n userAgent String?\n details Json?\n timestamp DateTime @default(now())\n\n @@index([event])\n @@index([userId])\n @@index([timestamp])\n @@map(\"prenta_audit_logs\")\n}\n\nmodel Folder {\n id String @id @default(cuid())\n name String\n scope String\n parentId String?\n position Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n parent Folder? @relation(\"FolderTree\", fields: [parentId], references: [id], onDelete: Cascade)\n children Folder[] @relation(\"FolderTree\")\n\n documents Document[]\n media Media[]\n\n @@index([scope])\n @@index([parentId])\n @@map(\"prenta_folders\")\n}\n\nmodel Document {\n id String @id @default(cuid())\n collection String\n title String?\n slug String?\n data Json\n status DocumentStatus @default(DRAFT)\n locale String?\n localeGroupId String?\n createdById String\n updatedById String\n publishedAt DateTime?\n scheduledAt DateTime?\n scheduledUnpublishAt DateTime?\n deletedAt DateTime?\n plainText String?\n contentHash String?\n structuredData Json?\n templateId String?\n workflowStage WorkflowStage @default(DRAFT)\n reviewerId String?\n reviewNote String?\n folderId String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n createdBy User @relation(\"CreatedDocuments\", fields: [createdById], references: [id])\n updatedBy User @relation(\"UpdatedDocuments\", fields: [updatedById], references: [id])\n folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n versions Version[]\n mediaUsages MediaUsage[]\n contentLocks ContentLock[]\n contentIssues ContentIssue[]\n\n @@unique([collection, slug])\n @@index([collection, deletedAt, status])\n @@index([collection])\n @@index([status])\n @@index([deletedAt])\n @@index([publishedAt])\n @@index([folderId])\n @@index([scheduledAt])\n @@index([localeGroupId])\n @@index([createdById])\n @@map(\"prenta_documents\")\n}\n\nmodel Version {\n id String @id @default(cuid())\n documentId String\n data Json\n changedById String\n changeType ChangeType\n createdAt DateTime @default(now())\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n changedBy User @relation(fields: [changedById], references: [id])\n\n @@index([documentId])\n @@index([createdAt])\n @@map(\"prenta_versions\")\n}\n\nenum MediaStatus {\n PROCESSING\n READY\n FAILED\n}\n\nmodel Media {\n id String @id @default(cuid())\n filename String\n storageKey String @unique\n mimeType String\n fileSize Int\n width Int?\n height Int?\n altText String?\n title String?\n uploadedById String\n focalPointX Float?\n focalPointY Float?\n blurHash String?\n aiAltText String?\n aiTags Json?\n aiDescription String?\n folderId String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // ── Media Center additions ──────────────────────────────────────\n // All nullable / defaulted so they're safe to add to a populated DB\n // with no backfill. SEO score/issues are intentionally NOT stored —\n // they're derived on read by `calculateMediaSeoScore()` so they can\n // never drift from the metadata below.\n originalFileName String?\n caption String?\n description String?\n focusKeyword String?\n // WCAG decorative images use alt=\"\" intentionally. Persisted so the\n // media SEO scorer awards the alt weight instead of flagging missing-alt\n // (#714). Cleared automatically when a non-empty alt is saved.\n isDecorative Boolean @default(false)\n tags Json?\n // SHA-256 hex of the final stored bytes (post-optimize). Upload dedupe\n // matches this column (#718). Rows that predate it stay NULL — and dedupe\n // stays inert for them — until `prenta migrate:content-hash` fills them\n // in (#730). Nullable so the migration itself does not download every asset.\n contentHash String?\n // `storageKey` historically held the public URL; `publicUrl` splits\n // that concern out. New uploads populate both; legacy rows keep the\n // URL in `storageKey` and `mediaUrl()` still resolves it.\n publicUrl String?\n storageProvider String?\n durationSeconds Float?\n thumbnailUrl String?\n responsiveVariants Json?\n status MediaStatus @default(READY)\n deletedAt DateTime?\n\n uploadedBy User @relation(fields: [uploadedById], references: [id])\n folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n mediaUsages MediaUsage[]\n\n @@index([folderId])\n @@index([deletedAt])\n @@index([mimeType])\n @@index([contentHash])\n @@map(\"prenta_media\")\n}\n\nmodel MediaUsage {\n id String @id @default(cuid())\n mediaId String\n documentId String\n fieldPath String\n createdAt DateTime @default(now())\n\n media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade)\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n\n @@unique([mediaId, documentId, fieldPath])\n @@index([documentId])\n @@map(\"prenta_media_usages\")\n}\n\nmodel ContentLock {\n id String @id @default(cuid())\n documentId String\n userId String\n lockedAt DateTime @default(now())\n expiresAt DateTime\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id])\n\n @@unique([documentId])\n @@map(\"prenta_content_locks\")\n}\n\nmodel InAppNotification {\n id String @id @default(cuid())\n userId String\n type String\n title String\n message String?\n link String?\n read Boolean @default(false)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"prenta_notifications\")\n}\n\nmodel ContentTemplate {\n id String @id @default(cuid())\n name String\n collection String\n templateData Json\n createdById String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n createdBy User @relation(fields: [createdById], references: [id])\n\n @@map(\"prenta_content_templates\")\n}\n\nmodel Redirect {\n id String @id @default(cuid())\n source String\n destination String\n statusCode Int @default(301)\n isRegex Boolean @default(false)\n notes String?\n // Runtime + management metadata (added in 0009_seo). All defaulted so the\n // migration is safe to apply to a populated table with no backfill.\n enabled Boolean @default(true)\n priority Int @default(0)\n preserveQuery Boolean @default(false)\n // \"manual\" | \"import\" | \"ai-404-recovery\" | \"chain-flatten\"\n source_kind String @default(\"manual\")\n hits Int @default(0)\n lastHitAt DateTime?\n createdById String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([source])\n @@index([enabled])\n @@index([lastHitAt])\n @@map(\"prenta_redirects\")\n}\n\n// ─── SEO module (0009_seo) ──────────────────────────────────────────\n\nenum SeoAuditStatus {\n RUNNING\n COMPLETED\n FAILED\n}\n\nenum SeoIssueSeverity {\n critical\n warning\n info\n}\n\nenum SeoIssueStatus {\n open\n ignored\n resolved\n recurring\n}\n\nenum SeoIssueCategory {\n content\n technical\n redirects\n media\n performance\n schema\n social\n indexing\n}\n\n/// One execution of the SEO audit engine. Holds a snapshot of the site\n/// score and issue counts so the Audit tab can show run history without\n/// recomputing. Issues belong to a run via SEOIssue.auditRunId.\nmodel SeoAuditRun {\n id String @id @default(cuid())\n status SeoAuditStatus @default(RUNNING)\n scope String @default(\"full\")\n startedById String?\n startedAt DateTime @default(now())\n finishedAt DateTime?\n siteScoreBefore Int?\n siteScoreAfter Int?\n pagesScanned Int @default(0)\n issuesFound Int @default(0)\n criticalCount Int @default(0)\n warningCount Int @default(0)\n infoCount Int @default(0)\n errorMessage String?\n metadata Json?\n\n issues SeoIssue[]\n\n @@index([status])\n @@index([startedAt])\n @@map(\"prenta_seo_audit_runs\")\n}\n\n/// A single SEO problem detected by an audit run. `issueKey` is a stable\n/// hash of (type + entityId/url) used to carry status across runs so a\n/// resolved/ignored issue stays resolved/ignored when re-detected.\nmodel SeoIssue {\n id String @id @default(cuid())\n auditRunId String?\n issueKey String\n entityType String?\n entityId String?\n entityTitle String?\n url String?\n severity SeoIssueSeverity\n category SeoIssueCategory\n type String\n title String\n description String?\n impact String?\n recommendation String?\n status SeoIssueStatus @default(open)\n fixable Boolean @default(false)\n fixActionType String?\n relatedEntityIds Json?\n source String @default(\"audit\")\n firstDetectedAt DateTime @default(now())\n lastDetectedAt DateTime @default(now())\n resolvedAt DateTime?\n resolvedById String?\n metadata Json?\n\n auditRun SeoAuditRun? @relation(fields: [auditRunId], references: [id], onDelete: SetNull)\n\n @@index([auditRunId])\n @@index([status])\n @@index([severity])\n @@index([category])\n @@index([issueKey])\n @@index([entityId])\n @@map(\"prenta_seo_issues\")\n}\n\n/// A 404 hit observed by the redirect middleware. Aggregated per path so\n/// the Redirects tab can surface \"broken URLs still getting traffic\".\nmodel Redirect404Hit {\n id String @id @default(cuid())\n path String\n hits Int @default(1)\n referrer String?\n resolvedAt DateTime?\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n @@unique([path])\n @@index([lastSeenAt])\n @@map(\"prenta_redirect_404_hits\")\n}\n\n/// Aggregated AI-crawler activity for the admin \"AI crawler activity\" panel.\n/// One row per (bot token, surface), upserted on each hit so the table stays\n/// bounded (~known bots × surfaces) and needs no periodic pruning.\n/// `surface` ∈ \"llms\" | \"llms-full\" | \"md\" | \"honeypot\".\n/// `category` mirrors the ai-bots taxonomy: \"training\" | \"retrieval\" | \"other\".\nmodel AiCrawlerHit {\n id String @id @default(cuid())\n bot String\n surface String\n category String @default(\"other\")\n hits Int @default(1)\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n @@unique([bot, surface])\n @@index([lastSeenAt])\n @@map(\"prenta_ai_crawler_hits\")\n}\n\n/// One row per (page path, day) of Google Search Console search analytics,\n/// written by the nightly search sync. Dates are stored exactly as GSC\n/// reports them (property timezone) — never converted to UTC. Rolling\n/// 90-day window, pruned during sync.\nmodel SearchPerfDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n path String\n clicks Int @default(0)\n impressions Int @default(0)\n ctr Float @default(0)\n position Float @default(0)\n createdAt DateTime @default(now())\n\n @@unique([date, path])\n @@index([path])\n @@map(\"prenta_search_perf_daily\")\n}\n\n/// Per-page search insight snapshot: trailing-28-day totals + prior-window\n/// deltas (computed from SearchPerfDaily), top queries from GSC, and CrUX\n/// Core Web Vitals p75s. One row per normalized path, upserted by the sync.\n/// `cwvStatus` null means CrUX has no field data for the URL (normal for\n/// low-traffic pages), never an error.\nmodel SearchPageInsight {\n id String @id @default(cuid())\n path String @unique\n entityId String?\n entityType String?\n topQueries Json?\n clicks28d Int @default(0)\n impressions28d Int @default(0)\n avgPosition28d Float?\n clicksPrev28d Int @default(0)\n impressionsPrev28d Int @default(0)\n avgPositionPrev28d Float?\n lcpMs Int?\n inpMs Int?\n cls Float?\n cwvStatus String?\n cwvCollectedAt DateTime?\n createdAt DateTime @default(now())\n lastSyncedAt DateTime @updatedAt\n\n @@index([impressions28d])\n @@index([entityId])\n @@map(\"prenta_search_page_insights\")\n}\n\n/// GEO measurement: one row per (UTC day, crawler token, path) for known AI\n/// training / AI retrieval / search crawlers observed by the site middleware\n/// (spec 2026-09-08-geo-measurement-design.md §4). Distinct paths per\n/// (date, bot) are capped at GEO_CRAWL_PATH_CAP; overflow rolls into a\n/// single \"(other)\" row. Pruned by the cleanup cron after geoRetentionDays.\nmodel GeoCrawlDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n bot String\n category String\n path String\n hits Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([date, bot, path])\n @@index([date])\n @@index([bot, date])\n @@map(\"prenta_geo_crawl_daily\")\n}\n\n/// GEO measurement: one row per (UTC day, AI engine name, path) for visits\n/// referred by an answer engine (Referer host or utm_source). Distinct paths\n/// per (day, engine) are capped like GeoCrawlDaily — overflow rolls into a\n/// single path = \"(other)\" row — since the public beacon cannot prove a path\n/// exists on the site. Pruned with GeoCrawlDaily.\nmodel GeoReferralDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n engine String\n path String\n visits Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([date, engine, path])\n @@index([date])\n @@index([engine, date])\n @@map(\"prenta_geo_referral_daily\")\n}\n\n/// An AI/heuristic suggestion for a 404 destination. Confidence-scored and\n/// never auto-applied below the configured threshold.\nmodel RedirectSuggestion {\n id String @id @default(cuid())\n fromPath String\n toPath String\n confidence Int @default(0)\n reason String?\n // \"open\" | \"accepted\" | \"dismissed\"\n status String @default(\"open\")\n source String @default(\"ai-404-recovery\")\n metadata Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([status])\n @@index([fromPath])\n @@map(\"prenta_redirect_suggestions\")\n}\n\n/// One row per change SEO Autopilot wrote (spec 2026-09-07-auto-apply-policy-engine §4).\n/// `before`/`after` hold the field-level diff for issue fixes, or the created\n/// redirect (after) for redirects. `before` is null for redirects: autopilot\n/// never overwrites an existing redirect. Rows are never deleted; revert flips `status`.\nmodel SeoAutoApply {\n id String @id @default(cuid())\n // 'issue-fix' | 'redirect'\n kind String\n issueId String?\n // AutopilotIssueType\n issueType String\n entityId String?\n collection String?\n // Public path at apply time — outcome-watch key into prenta_search_perf_daily.\n path String?\n redirectId String?\n before Json?\n after Json\n // { source, brandAlignment, confidence, checks }\n gate Json\n // 'applied' | 'verify_failed' | 'reverted' | 'outcome_reverted'\n status String\n // 'pending' | 'held' | 'regressed' | 'insufficient_data' | 'skipped'\n outcome String @default(\"pending\")\n outcomeMetrics Json?\n outcomeCheckedAt DateTime?\n versionId String?\n appliedById String\n appliedAt DateTime @default(now())\n revertedAt DateTime?\n revertedById String?\n // 'verify_failed' | 'outcome_regression' | 'manual'\n revertReason String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([status, appliedAt])\n @@index([entityId])\n @@index([outcome, appliedAt])\n @@index([issueId])\n @@map(\"prenta_seo_auto_applies\")\n}\n\n// A versioned snapshot of a form's field schema. Saving a form's schema in\n// the admin creates a new row here; submissions reference the version they\n// were captured against so historical entries always render with the fields\n// that existed at submit time, even after the live form schema changes.\nmodel FormSchemaVersion {\n id String @id @default(cuid())\n formId String\n version Int\n fields Json\n notes String?\n createdById String?\n createdAt DateTime @default(now())\n\n @@unique([formId, version])\n @@index([formId])\n @@map(\"prenta_form_schema_versions\")\n}\n\nmodel FormSubmission {\n id String @id @default(cuid())\n // Per-instance sequential number shown in the UI (e.g. #00001). Assigned by\n // the submission service inside a transaction; nullable for legacy rows.\n entryNumber Int?\n formId String\n schemaVersionId String?\n data Json\n // Server-derived, type-coerced view of `data` (e.g. checkbox -> bool,\n // number -> number) used for export/search. `data` keeps the raw payload.\n normalizedData Json?\n attribution Json?\n senderName String?\n senderEmail String?\n senderPhone String?\n preview String?\n // Legacy free-form status ('new'); superseded by the booleans below but\n // retained so existing rows/integrations keep working.\n status String @default(\"new\")\n unread Boolean @default(true)\n starred Boolean @default(false)\n archived Boolean @default(false)\n spamStatus String @default(\"clean\")\n ipAddressHash String?\n userAgent String?\n referrer String?\n pageUrl String?\n utmSource String?\n utmMedium String?\n utmCampaign String?\n submittedAt DateTime @default(now())\n readAt DateTime?\n archivedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n files FormSubmissionFile[]\n deliveries FormDeliveryAttempt[]\n\n @@index([formId])\n @@index([submittedAt])\n @@index([senderEmail])\n @@index([formId, submittedAt])\n @@map(\"prenta_form_submissions\")\n}\n\n// File attachments for a submission. Files are stored via the configured\n// storage adapter (never inline in the DB); this row tracks metadata and the\n// storage key needed to mint a secure download link.\nmodel FormSubmissionFile {\n id String @id @default(cuid())\n submissionId String\n fieldKey String\n mediaAssetId String?\n fileName String\n mimeType String\n sizeBytes Int\n storageKey String\n publicUrl String?\n secureDownloadUrl String?\n createdAt DateTime @default(now())\n\n submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)\n\n @@index([submissionId])\n @@map(\"prenta_form_submission_files\")\n}\n\n// Per-form outbound webhook configuration. Distinct from the global\n// WebhookEndpoint registry so form owners can wire delivery without admin\n// access to site-wide webhooks.\nmodel FormWebhook {\n id String @id @default(cuid())\n formId String\n url String\n secret String\n /// Previous signing secret (encrypted) kept during rotation grace (#679).\n previousSecret String?\n previousSecretValidUntil DateTime?\n enabled Boolean @default(true)\n events Json\n retryCount Int @default(0)\n lastDeliveryAt DateTime?\n lastDeliveryStatus String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([formId])\n @@map(\"prenta_form_webhooks\")\n}\n\n/// Per-submission notify/webhook/email delivery attempts (#675).\n/// Fail-open: the lead is always persisted; this table tracks best-effort fan-out.\nmodel FormDeliveryAttempt {\n id String @id @default(cuid())\n submissionId String\n formId String\n /// email_notify | email_autoresponder | form_webhook\n channel String\n /// Recipient email or webhook URL (never secrets).\n destination String\n webhookId String?\n /// pending | retrying | success | failed | skipped\n status String @default(\"pending\")\n attempts Int @default(0)\n maxAttempts Int @default(3)\n lastAttemptAt DateTime?\n nextRetryAt DateTime?\n error String?\n responseStatus Int?\n skippedReason String?\n /// Webhook payload (or email meta) for retry without re-submitting.\n payload Json?\n /// When an operator alert email was sent for a permanent failure.\n alertedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)\n\n @@index([formId, status])\n @@index([submissionId])\n @@index([status, nextRetryAt])\n @@map(\"prenta_form_delivery_attempts\")\n}\n\nmodel WebhookEndpoint {\n id String @id @default(cuid())\n url String\n events Json\n secret String\n /// Previous signing secret (encrypted) kept during rotation grace (#679).\n previousSecret String?\n previousSecretValidUntil DateTime?\n active Boolean @default(true)\n name String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n deliveries WebhookDeliveryLog[]\n\n @@map(\"prenta_webhook_endpoints\")\n}\n\nmodel WebhookDeliveryLog {\n id String @id @default(cuid())\n endpointId String\n event String\n payload Json\n status String @default(\"pending\")\n attempts Int @default(0)\n maxAttempts Int @default(3)\n lastAttemptAt DateTime?\n nextRetryAt DateTime?\n responseStatus Int?\n responseBody String?\n createdAt DateTime @default(now())\n\n endpoint WebhookEndpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade)\n\n @@index([endpointId])\n @@index([status])\n @@index([nextRetryAt])\n @@map(\"prenta_webhook_deliveries\")\n}\n\nmodel PasswordResetToken {\n id String @id @default(cuid())\n userId String\n tokenHash String\n expiresAt DateTime\n usedAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([tokenHash])\n @@index([userId])\n @@map(\"prenta_password_reset_tokens\")\n}\n\nmodel Invite {\n id String @id @default(cuid())\n email String\n role UserRole\n status InviteStatus @default(PENDING)\n tokenHash String\n message String?\n // Stored as a bare id (not an FK relation) to mirror AuditLog: an inviter\n // being removed must never cascade-delete the invite history.\n invitedByUserId String?\n acceptedUserId String?\n expiresAt DateTime\n acceptedAt DateTime?\n cancelledAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([email])\n @@index([tokenHash])\n @@index([status])\n @@map(\"prenta_invites\")\n}\n\nmodel ScriptTag {\n id String @id @default(cuid())\n name String\n code String @db.Text\n placement String\n scope String\n targetPaths String[]\n priority Int @default(100)\n enabled Boolean @default(true)\n /// Inject `async` into external <script src> tags so they don't block render.\n loadAsync Boolean @default(false)\n /// Skip this tag when the page is rendered inside CMS preview mode.\n disableInPreview Boolean @default(true)\n /// Cookie-consent category gate: none | analytics | marketing | functional | preferences.\n consentCategory String @default(\"none\")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([enabled])\n @@index([placement])\n @@map(\"prenta_script_tags\")\n}\n\n// ─── Dashboard metrics ─────────────────────────────────────────────────────\n\n/// Per-minute pre-aggregated request counters that power the\n/// \"Delivery API\" dashboard tiles (request volume, error rate,\n/// average latency, p95). One row per (bucketStart × route × statusBucket).\n///\n/// Why pre-aggregated minute buckets and not per-request rows:\n/// - 24h of traffic at 10 req/s on 20 routes ≈ 17M raw rows; the\n/// equivalent minute-bucketed table is ≤ 28,800 rows (1440 × 20).\n/// - Vercel Functions are concurrency-bounded; an O(1) UPSERT per\n/// request is cheaper than O(write+query) per dashboard load.\n/// - 7-day retention is enforced by the\n/// `/api/cms/cron/api-metrics-prune` cron, so the table stays\n/// bounded.\n///\n/// `latencyHistogram` is a fixed 12-bucket log-scale array (ms):\n/// [<1, 1-2, 2-4, 4-8, 8-16, 16-32, 32-64, 64-128, 128-256,\n/// 256-512, 512-1024, >1024]\n/// Cumulative-sum to estimate p95 with ~10% accuracy without\n/// per-request samples. The `delivery-stats` reader merges\n/// histograms across buckets before estimating.\nmodel ApiRequestMetric {\n id String @id @default(cuid())\n /// UTC minute boundary (`floor(time, '1 minute')`). The unique\n /// constraint on `(bucketStart, route, statusBucket)` lets the\n /// request logger UPSERT in one round-trip per request.\n bucketStart DateTime\n /// Normalised request route (e.g. `/collections/posts` — never\n /// the per-document `/collections/posts/abc123`). Normalisation\n /// happens in `instrumentation.ts` so the cardinality stays\n /// bounded.\n route String\n /// HTTP status family — one of `2xx`, `3xx`, `4xx`, `5xx`,\n /// `other`. Storing the bucket rather than the raw status lets\n /// us answer \"error rate?\" with a single GROUP BY.\n statusBucket String\n count Int @default(0)\n /// Sum of `responseMs` across `count` requests. Average latency\n /// = `sum(sumLatencyMs) / sum(count)` over the window.\n sumLatencyMs Float @default(0)\n /// Max single-request latency in this bucket. Useful as a\n /// fast-path tail-latency indicator and as a sanity check on\n /// the histogram estimator.\n maxLatencyMs Float @default(0)\n /// 12-bucket log-scale histogram (see model doc). Stored as\n /// `Json` so the schema doesn't have to change when we revise\n /// bucket boundaries.\n latencyHistogram Json\n updatedAt DateTime @updatedAt\n\n @@unique([bucketStart, route, statusBucket])\n @@index([bucketStart])\n @@map(\"prenta_api_request_metrics\")\n}\n\n/// Persisted content-quality issues surfaced by the nightly\n/// content-health scan. The Dashboard's \"Content Health\" card\n/// aggregates these rows by `type` to produce the issue list.\n///\n/// Upsert key is `(documentId, type)` so the scanner is\n/// idempotent — re-running yields the same row count, and a row\n/// \"self-resolves\" by being absent from the next scan (the\n/// scanner uses a `firstScanAt`-watermark + delete pattern).\nmodel ContentIssue {\n id String @id @default(cuid())\n documentId String\n type ContentIssueType\n /// Per-issue count (e.g. 5 alt-less images = `count: 5` even\n /// though it's 1 row). Lets the dashboard show real numbers\n /// without re-scanning the document HTML on each page load.\n count Int @default(1)\n /// Type-specific payload — the broken URL, the page's\n /// `updatedAt`, the offending image src, etc. JSON so each\n /// issue type can carry its own shape without schema churn.\n details Json?\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n\n @@unique([documentId, type])\n @@index([type])\n @@index([documentId])\n @@map(\"prenta_content_issues\")\n}\n\n/// Persisted Yjs state for a document (`@prenta/realtime`). Optional: empty\n/// when collaboration is unused. Cms-core queries this from `/realtime/sync`.\nmodel DocumentCRDT {\n documentId String @id\n state Bytes\n stateVector Bytes\n version Int @default(0)\n lastUpdatedAt DateTime @default(now()) @updatedAt\n lastUpdatedById String?\n createdAt DateTime @default(now())\n\n @@index([lastUpdatedAt])\n @@map(\"prenta_document_crdts\")\n}\n\n/// Threaded inline comment. Soft-deletes keep replies attached. Optional.\nmodel DocumentComment {\n id String @id @default(cuid())\n documentId String\n parentId String?\n parent DocumentComment? @relation(\"CommentThread\", fields: [parentId], references: [id], onDelete: Cascade)\n replies DocumentComment[] @relation(\"CommentThread\")\n userId String?\n user User? @relation(fields: [userId], references: [id], onDelete: SetNull)\n body String @db.Text\n anchor Json?\n resolvedAt DateTime?\n resolvedById String?\n deletedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([documentId])\n @@index([documentId, resolvedAt])\n @@index([parentId])\n @@index([userId])\n @@index([createdAt])\n @@map(\"prenta_document_comments\")\n}\n\n/// Per-user notification feed for collaboration events.\nmodel DocumentNotification {\n id String @id @default(cuid())\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n kind String\n documentId String?\n commentId String?\n payload Json\n readAt DateTime?\n createdAt DateTime @default(now())\n\n @@index([userId, readAt])\n @@index([userId, createdAt])\n @@index([documentId])\n @@index([commentId])\n @@map(\"prenta_document_notifications\")\n}\n\n/// Background work for SEO audit, content health, and batch AI.\n/// `status` is queued | running | succeeded | dead | cancelled. Only queued\n/// rows are claimed: a dead row is the dead-letter and a cancelled row is\n/// final, so neither runs again. Ids are minted by the queue so a stub\n/// database that ignores `create` still returns a job id.\nmodel Job {\n id String @id\n type String\n payload Json\n status String\n attempts Int @default(0)\n maxAttempts Int @default(3)\n runAt DateTime\n lockedAt DateTime?\n lastError String?\n progress Json\n cancelRequestedAt DateTime?\n cancelledById String?\n /// Who queued it. Null for cron jobs and rows queued before 0026.\n createdById String?\n title String?\n scope String?\n tokensIn Int @default(0)\n tokensOut Int @default(0)\n explain String?\n summary String?\n results Json?\n finishedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n events JobEvent[]\n reviewItems JobReviewItem[]\n\n @@index([status, runAt])\n @@index([createdAt])\n @@map(\"prenta_jobs\")\n}\n\n/// Worker log for a job. The admin shows the newest 50; a job that ends keeps its newest 100.\nmodel JobEvent {\n id String @id @default(cuid())\n jobId String\n job Job @relation(fields: [jobId], references: [id], onDelete: Cascade)\n at DateTime @default(now())\n kind String\n message String\n detail String?\n durationMs Int?\n tokens Int?\n\n @@index([jobId, at])\n @@map(\"prenta_job_events\")\n}\n\n/// One proposed document change from a review-first batch AI job.\nmodel JobReviewItem {\n id String @id @default(cuid())\n jobId String\n job Job @relation(fields: [jobId], references: [id], onDelete: Cascade)\n documentId String\n documentTitle String\n url String @default(\"\")\n field String\n before String\n after String\n editedAfter String?\n status String @default(\"pending\")\n decidedById String?\n decidedAt DateTime?\n appliedRevisionId String?\n\n @@index([jobId, status])\n @@map(\"prenta_job_review_items\")\n}\n\n/// Machine-written state keyed by name, such as the job worker's last tick\n/// (`jobs.worker`). Separate from the `settings` global so a background write\n/// can never overwrite an admin's save, and no user id is needed.\nmodel SystemSetting {\n key String @id\n value Json\n updatedAt DateTime @updatedAt\n\n @@map(\"prenta_system_settings\")\n}\n\n/// Site chrome for Appearance > Header & Footer, one row per region.\n/// `header` and `footer` hold the code-first schema the site sends on deploy\n/// (`schema`, with `source.commit`; variants and fields are ordered pairs\n/// because JSONB doesn't keep key order), the site-default `variant`, the saved\n/// field `values`, and the values a schema change dropped (`orphans`, each with\n/// `orphanedAt`, kept 30 days). `announcement` holds the announcement bar in\n/// `values`, and in `state` the schedule boundaries that already revalidated\n/// the site. Every write is conditional on `version`, so a save and a schema\n/// read can't overwrite each other. `updatedAt` is set by the code, not\n/// `@updatedAt`'s default: it moves only when the saved values change.\nmodel ChromeRegion {\n region String @id\n schema Json?\n schemaHash String?\n variant String?\n values Json @default(\"{}\")\n orphans Json @default(\"[]\")\n state Json?\n version Int @default(0)\n updatedById String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"prenta_chrome_regions\")\n}\n\n/// One MCP OAuth grant. The authorization code and the current refresh token\n/// are stored only as SHA-256 hashes. `familyId` groups rotations; replaying a\n/// replaced refresh token revokes every row in the family.\nmodel McpOauthGrant {\n id String @id @default(cuid())\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n clientId String\n redirectUri String\n resource String\n scope String\n codeChallenge String\n codeHash String? @unique\n codeExpiresAt DateTime?\n codeConsumedAt DateTime?\n refreshHash String? @unique\n refreshExpiresAt DateTime?\n familyId String\n revokedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@index([familyId])\n @@index([clientId])\n @@map(\"prenta_mcp_oauth_grants\")\n}\n\n/// Hashes of refresh tokens that have already been rotated. Presenting one\n/// revokes the family.\nmodel McpOauthRefreshReplay {\n hash String @id\n familyId String\n createdAt DateTime @default(now())\n\n @@index([familyId])\n @@map(\"prenta_mcp_oauth_refresh_replays\")\n}\n\n/// Pending authorize request, before the person allows or denies it.\n/// Short-lived. The id is the browser transaction, not a credential.\nmodel McpOauthTransaction {\n id String @id\n clientId String\n clientName String\n redirectUri String\n resource String\n scope String\n codeChallenge String\n state String?\n expiresAt DateTime\n createdAt DateTime @default(now())\n\n @@index([expiresAt])\n @@map(\"prenta_mcp_oauth_transactions\")\n}\n",
21
+ "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated\"\n // `relationJoins` is the Preview-feature flag that makes\n // `relationLoadStrategy: 'join'` a recognised argument on\n // findUnique / findMany / findFirst. Without it the option is\n // silently rejected as an \"Unknown argument\" by Prisma — which\n // is how the optimisation in PR #132 (dashboard recent-docs +\n // versions list + bench `doc_get`) went unnoticed in production:\n // `safeFindMany` swallowed the rejection and returned `[]`, the\n // versions endpoint returned 500, and the bench reported \"100/100\n // errors\" with no attached cause. Phase 5.5 #5 surfaced the\n // failure once the bench harness started recording the first\n // error message.\n //\n // The feature has been Preview since Prisma 5.7 and is documented\n // at https://www.prisma.io/docs/orm/prisma-client/queries/relation-queries#relation-load-strategies\n previewFeatures = [\"fullTextSearchPostgres\", \"relationJoins\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n// ─── Enums ──────────────────────────────────────────────────────────\n\nenum DocumentStatus {\n DRAFT\n PUBLISHED\n ARCHIVED\n SCHEDULED\n SCHEDULED_UNPUBLISH\n}\n\nenum UserRole {\n ADMIN\n EDITOR\n AUTHOR\n CLIENT\n OWNER\n VIEWER\n}\n\nenum InviteStatus {\n PENDING\n ACCEPTED\n EXPIRED\n CANCELLED\n}\n\nenum ChangeType {\n CREATE\n UPDATE\n PUBLISH\n RESTORE\n DELETE\n}\n\nenum ContentIssueType {\n // Document is published but missing a `metaDescription` /\n // `seoDescription` field — the dashboard surfaces these so editors\n // can fix the SERP snippet before a competitor outranks them.\n MISSING_META_DESCRIPTION\n // Document HTML contains <img> tags without alt attributes. Hurts\n // both a11y and SEO. Counted per *document* not per image — so a\n // page with 5 alt-less images is 1 row, not 5, with `details.count`\n // capturing the per-document count.\n MISSING_ALT_TEXT\n // Internal link (same-origin URL or relative path) returned 404 /\n // 410 / DNS-failure when the link checker probed it. `details.url`\n // holds the offending URL.\n BROKEN_INTERNAL_LINK\n // Published document not touched in >90 days. Encourages refresh\n // of stale content — particularly important for \"best of YEAR\"\n // posts that decay rapidly.\n OUTDATED_CONTENT\n}\n\nenum WorkflowStage {\n DRAFT\n IN_REVIEW\n APPROVED\n PUBLISHED\n ARCHIVED\n}\n\n// ─── Models ─────────────────────────────────────────────────────────\n\nmodel User {\n id String @id @default(cuid())\n email String @unique\n name String\n avatarUrl String?\n role UserRole @default(AUTHOR)\n passwordHash String?\n totpSecret String?\n totpEnabled Boolean @default(false)\n // Last consumed TOTP time-step — enforces single-use so a captured code can't\n // be replayed within its validity window (#565). Null until the first TOTP login.\n lastTotpStep Int?\n backupCodes Json?\n authProvider String?\n isActive Boolean @default(true)\n isApproved Boolean @default(false)\n emailVerified Boolean @default(false)\n lastLoginAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // Access-control lifecycle (Users management subsystem). All additive and\n // nullable/defaulted so existing rows migrate cleanly.\n suspendedAt DateTime?\n lockedAt DateTime?\n forcePasswordReset Boolean @default(false)\n mfaRequired Boolean @default(false)\n failedLoginCount Int @default(0)\n lastActiveAt DateTime?\n invitedById String?\n acceptedInviteAt DateTime?\n\n sessions Session[]\n oauthAccounts OAuthAccount[]\n apiKeys ApiKey[]\n mcpOauthGrants McpOauthGrant[]\n documents Document[] @relation(\"CreatedDocuments\")\n updatedDocuments Document[] @relation(\"UpdatedDocuments\")\n versions Version[]\n media Media[]\n contentLocks ContentLock[]\n notifications InAppNotification[]\n contentTemplates ContentTemplate[]\n passwordResetTokens PasswordResetToken[]\n documentComments DocumentComment[]\n documentNotifications DocumentNotification[]\n\n @@map(\"prenta_users\")\n}\n\nmodel OAuthAccount {\n id String @id @default(cuid())\n userId String\n provider String\n providerAccountId String\n accessToken String?\n refreshToken String?\n expiresAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"prenta_oauth_accounts\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n userId String\n token String @unique\n expiresAt DateTime\n revokedAt DateTime?\n ipAddress String?\n userAgent String?\n fingerprintHash String?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@index([expiresAt])\n @@map(\"prenta_sessions\")\n}\n\nmodel ApiKey {\n id String @id @default(cuid())\n name String\n keyHash String @unique\n keyPrefix String\n userId String\n scopes Json\n ipRestrictions Json?\n expiresAt DateTime?\n lastUsedAt DateTime?\n revokedAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"prenta_api_keys\")\n}\n\nmodel AuditLog {\n id String @id @default(cuid())\n event String\n userId String?\n ipAddress String?\n userAgent String?\n details Json?\n timestamp DateTime @default(now())\n\n @@index([event])\n @@index([userId])\n @@index([timestamp])\n @@map(\"prenta_audit_logs\")\n}\n\nmodel Folder {\n id String @id @default(cuid())\n name String\n scope String\n parentId String?\n position Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n parent Folder? @relation(\"FolderTree\", fields: [parentId], references: [id], onDelete: Cascade)\n children Folder[] @relation(\"FolderTree\")\n\n documents Document[]\n media Media[]\n\n @@index([scope])\n @@index([parentId])\n @@map(\"prenta_folders\")\n}\n\nmodel Document {\n id String @id @default(cuid())\n collection String\n title String?\n slug String?\n data Json\n status DocumentStatus @default(DRAFT)\n locale String?\n localeGroupId String?\n createdById String\n updatedById String\n publishedAt DateTime?\n scheduledAt DateTime?\n scheduledUnpublishAt DateTime?\n deletedAt DateTime?\n plainText String?\n contentHash String?\n structuredData Json?\n templateId String?\n workflowStage WorkflowStage @default(DRAFT)\n reviewerId String?\n reviewNote String?\n folderId String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n createdBy User @relation(\"CreatedDocuments\", fields: [createdById], references: [id])\n updatedBy User @relation(\"UpdatedDocuments\", fields: [updatedById], references: [id])\n folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n versions Version[]\n mediaUsages MediaUsage[]\n contentLocks ContentLock[]\n contentIssues ContentIssue[]\n\n @@unique([collection, slug])\n @@index([collection, deletedAt, status])\n @@index([collection])\n @@index([status])\n @@index([deletedAt])\n @@index([publishedAt])\n @@index([folderId])\n @@index([scheduledAt])\n @@index([localeGroupId])\n @@index([createdById])\n @@map(\"prenta_documents\")\n}\n\nmodel Version {\n id String @id @default(cuid())\n documentId String\n data Json\n changedById String\n changeType ChangeType\n createdAt DateTime @default(now())\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n changedBy User @relation(fields: [changedById], references: [id])\n\n @@index([documentId])\n @@index([createdAt])\n @@map(\"prenta_versions\")\n}\n\nenum MediaStatus {\n PROCESSING\n READY\n FAILED\n}\n\nmodel Media {\n id String @id @default(cuid())\n filename String\n storageKey String @unique\n mimeType String\n fileSize Int\n width Int?\n height Int?\n altText String?\n title String?\n uploadedById String\n focalPointX Float?\n focalPointY Float?\n blurHash String?\n aiAltText String?\n aiTags Json?\n aiDescription String?\n folderId String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n // ── Media Center additions ──────────────────────────────────────\n // All nullable / defaulted so they're safe to add to a populated DB\n // with no backfill. SEO score/issues are intentionally NOT stored —\n // they're derived on read by `calculateMediaSeoScore()` so they can\n // never drift from the metadata below.\n originalFileName String?\n caption String?\n description String?\n focusKeyword String?\n // WCAG decorative images use alt=\"\" intentionally. Persisted so the\n // media SEO scorer awards the alt weight instead of flagging missing-alt\n // (#714). Cleared automatically when a non-empty alt is saved.\n isDecorative Boolean @default(false)\n tags Json?\n // SHA-256 hex of the final stored bytes (post-optimize). Upload dedupe\n // matches this column (#718). Rows that predate it stay NULL — and dedupe\n // stays inert for them — until `prenta migrate:content-hash` fills them\n // in (#730). Nullable so the migration itself does not download every asset.\n contentHash String?\n // `storageKey` is the object key (`prenta/media/…`). `publicUrl` is what\n // browsers fetch. Rows from before this split keep the URL in `storageKey`\n // until `backfillMediaStorageKeys` moves it. Readers use `publicUrl` first.\n publicUrl String?\n storageProvider String?\n durationSeconds Float?\n thumbnailUrl String?\n responsiveVariants Json?\n status MediaStatus @default(READY)\n deletedAt DateTime?\n\n uploadedBy User @relation(fields: [uploadedById], references: [id])\n folder Folder? @relation(fields: [folderId], references: [id], onDelete: SetNull)\n mediaUsages MediaUsage[]\n\n @@index([folderId])\n @@index([deletedAt])\n @@index([mimeType])\n @@index([contentHash])\n @@map(\"prenta_media\")\n}\n\nmodel MediaUsage {\n id String @id @default(cuid())\n mediaId String\n documentId String\n fieldPath String\n createdAt DateTime @default(now())\n\n media Media @relation(fields: [mediaId], references: [id], onDelete: Cascade)\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n\n @@unique([mediaId, documentId, fieldPath])\n @@index([documentId])\n @@map(\"prenta_media_usages\")\n}\n\nmodel ContentLock {\n id String @id @default(cuid())\n documentId String\n userId String\n lockedAt DateTime @default(now())\n expiresAt DateTime\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n user User @relation(fields: [userId], references: [id])\n\n @@unique([documentId])\n @@map(\"prenta_content_locks\")\n}\n\nmodel InAppNotification {\n id String @id @default(cuid())\n userId String\n type String\n title String\n message String?\n link String?\n read Boolean @default(false)\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"prenta_notifications\")\n}\n\nmodel ContentTemplate {\n id String @id @default(cuid())\n name String\n collection String\n templateData Json\n createdById String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n createdBy User @relation(fields: [createdById], references: [id])\n\n @@map(\"prenta_content_templates\")\n}\n\nmodel Redirect {\n id String @id @default(cuid())\n source String\n destination String\n statusCode Int @default(301)\n isRegex Boolean @default(false)\n notes String?\n // Runtime + management metadata (added in 0009_seo). All defaulted so the\n // migration is safe to apply to a populated table with no backfill.\n enabled Boolean @default(true)\n priority Int @default(0)\n preserveQuery Boolean @default(false)\n // \"manual\" | \"import\" | \"ai-404-recovery\" | \"chain-flatten\"\n source_kind String @default(\"manual\")\n hits Int @default(0)\n lastHitAt DateTime?\n createdById String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([source])\n @@index([enabled])\n @@index([lastHitAt])\n @@map(\"prenta_redirects\")\n}\n\n// ─── SEO module (0009_seo) ──────────────────────────────────────────\n\nenum SeoAuditStatus {\n RUNNING\n COMPLETED\n FAILED\n}\n\nenum SeoIssueSeverity {\n critical\n warning\n info\n}\n\nenum SeoIssueStatus {\n open\n ignored\n resolved\n recurring\n}\n\nenum SeoIssueCategory {\n content\n technical\n redirects\n media\n performance\n schema\n social\n indexing\n}\n\n/// One execution of the SEO audit engine. Holds a snapshot of the site\n/// score and issue counts so the Audit tab can show run history without\n/// recomputing. Issues belong to a run via SEOIssue.auditRunId.\nmodel SeoAuditRun {\n id String @id @default(cuid())\n status SeoAuditStatus @default(RUNNING)\n scope String @default(\"full\")\n startedById String?\n startedAt DateTime @default(now())\n finishedAt DateTime?\n siteScoreBefore Int?\n siteScoreAfter Int?\n pagesScanned Int @default(0)\n issuesFound Int @default(0)\n criticalCount Int @default(0)\n warningCount Int @default(0)\n infoCount Int @default(0)\n errorMessage String?\n metadata Json?\n\n issues SeoIssue[]\n\n @@index([status])\n @@index([startedAt])\n @@map(\"prenta_seo_audit_runs\")\n}\n\n/// A single SEO problem detected by an audit run. `issueKey` is a stable\n/// hash of (type + entityId/url) used to carry status across runs so a\n/// resolved/ignored issue stays resolved/ignored when re-detected.\nmodel SeoIssue {\n id String @id @default(cuid())\n auditRunId String?\n issueKey String\n entityType String?\n entityId String?\n entityTitle String?\n url String?\n severity SeoIssueSeverity\n category SeoIssueCategory\n type String\n title String\n description String?\n impact String?\n recommendation String?\n status SeoIssueStatus @default(open)\n fixable Boolean @default(false)\n fixActionType String?\n relatedEntityIds Json?\n source String @default(\"audit\")\n firstDetectedAt DateTime @default(now())\n lastDetectedAt DateTime @default(now())\n resolvedAt DateTime?\n resolvedById String?\n metadata Json?\n\n auditRun SeoAuditRun? @relation(fields: [auditRunId], references: [id], onDelete: SetNull)\n\n @@index([auditRunId])\n @@index([status])\n @@index([severity])\n @@index([category])\n @@index([issueKey])\n @@index([entityId])\n @@map(\"prenta_seo_issues\")\n}\n\n/// A 404 hit observed by the redirect middleware. Aggregated per path so\n/// the Redirects tab can surface \"broken URLs still getting traffic\".\nmodel Redirect404Hit {\n id String @id @default(cuid())\n path String\n hits Int @default(1)\n referrer String?\n resolvedAt DateTime?\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n @@unique([path])\n @@index([lastSeenAt])\n @@map(\"prenta_redirect_404_hits\")\n}\n\n/// Aggregated AI-crawler activity for the admin \"AI crawler activity\" panel.\n/// One row per (bot token, surface), upserted on each hit so the table stays\n/// bounded (~known bots × surfaces) and needs no periodic pruning.\n/// `surface` ∈ \"llms\" | \"llms-full\" | \"md\" | \"honeypot\".\n/// `category` mirrors the ai-bots taxonomy: \"training\" | \"retrieval\" | \"other\".\nmodel AiCrawlerHit {\n id String @id @default(cuid())\n bot String\n surface String\n category String @default(\"other\")\n hits Int @default(1)\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n @@unique([bot, surface])\n @@index([lastSeenAt])\n @@map(\"prenta_ai_crawler_hits\")\n}\n\n/// One row per (page path, day) of Google Search Console search analytics,\n/// written by the nightly search sync. Dates are stored exactly as GSC\n/// reports them (property timezone) — never converted to UTC. Rolling\n/// 90-day window, pruned during sync.\nmodel SearchPerfDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n path String\n clicks Int @default(0)\n impressions Int @default(0)\n ctr Float @default(0)\n position Float @default(0)\n createdAt DateTime @default(now())\n\n @@unique([date, path])\n @@index([path])\n @@map(\"prenta_search_perf_daily\")\n}\n\n/// Per-page search insight snapshot: trailing-28-day totals + prior-window\n/// deltas (computed from SearchPerfDaily), top queries from GSC, and CrUX\n/// Core Web Vitals p75s. One row per normalized path, upserted by the sync.\n/// `cwvStatus` null means CrUX has no field data for the URL (normal for\n/// low-traffic pages), never an error.\nmodel SearchPageInsight {\n id String @id @default(cuid())\n path String @unique\n entityId String?\n entityType String?\n topQueries Json?\n clicks28d Int @default(0)\n impressions28d Int @default(0)\n avgPosition28d Float?\n clicksPrev28d Int @default(0)\n impressionsPrev28d Int @default(0)\n avgPositionPrev28d Float?\n lcpMs Int?\n inpMs Int?\n cls Float?\n cwvStatus String?\n cwvCollectedAt DateTime?\n createdAt DateTime @default(now())\n lastSyncedAt DateTime @updatedAt\n\n @@index([impressions28d])\n @@index([entityId])\n @@map(\"prenta_search_page_insights\")\n}\n\n/// GEO measurement: one row per (UTC day, crawler token, path) for known AI\n/// training / AI retrieval / search crawlers observed by the site middleware\n/// (spec 2026-09-08-geo-measurement-design.md §4). Distinct paths per\n/// (date, bot) are capped at GEO_CRAWL_PATH_CAP; overflow rolls into a\n/// single \"(other)\" row. Pruned by the cleanup cron after geoRetentionDays.\nmodel GeoCrawlDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n bot String\n category String\n path String\n hits Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([date, bot, path])\n @@index([date])\n @@index([bot, date])\n @@map(\"prenta_geo_crawl_daily\")\n}\n\n/// GEO measurement: one row per (UTC day, AI engine name, path) for visits\n/// referred by an answer engine (Referer host or utm_source). Distinct paths\n/// per (day, engine) are capped like GeoCrawlDaily — overflow rolls into a\n/// single path = \"(other)\" row — since the public beacon cannot prove a path\n/// exists on the site. Pruned with GeoCrawlDaily.\nmodel GeoReferralDaily {\n id String @id @default(cuid())\n date DateTime @db.Date\n engine String\n path String\n visits Int @default(0)\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@unique([date, engine, path])\n @@index([date])\n @@index([engine, date])\n @@map(\"prenta_geo_referral_daily\")\n}\n\n/// An AI/heuristic suggestion for a 404 destination. Confidence-scored and\n/// never auto-applied below the configured threshold.\nmodel RedirectSuggestion {\n id String @id @default(cuid())\n fromPath String\n toPath String\n confidence Int @default(0)\n reason String?\n // \"open\" | \"accepted\" | \"dismissed\"\n status String @default(\"open\")\n source String @default(\"ai-404-recovery\")\n metadata Json?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([status])\n @@index([fromPath])\n @@map(\"prenta_redirect_suggestions\")\n}\n\n/// One row per change SEO Autopilot wrote (spec 2026-09-07-auto-apply-policy-engine §4).\n/// `before`/`after` hold the field-level diff for issue fixes, or the created\n/// redirect (after) for redirects. `before` is null for redirects: autopilot\n/// never overwrites an existing redirect. Rows are never deleted; revert flips `status`.\nmodel SeoAutoApply {\n id String @id @default(cuid())\n // 'issue-fix' | 'redirect'\n kind String\n issueId String?\n // AutopilotIssueType\n issueType String\n entityId String?\n collection String?\n // Public path at apply time — outcome-watch key into prenta_search_perf_daily.\n path String?\n redirectId String?\n before Json?\n after Json\n // { source, brandAlignment, confidence, checks }\n gate Json\n // 'applied' | 'verify_failed' | 'reverted' | 'outcome_reverted'\n status String\n // 'pending' | 'held' | 'regressed' | 'insufficient_data' | 'skipped'\n outcome String @default(\"pending\")\n outcomeMetrics Json?\n outcomeCheckedAt DateTime?\n versionId String?\n appliedById String\n appliedAt DateTime @default(now())\n revertedAt DateTime?\n revertedById String?\n // 'verify_failed' | 'outcome_regression' | 'manual'\n revertReason String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([status, appliedAt])\n @@index([entityId])\n @@index([outcome, appliedAt])\n @@index([issueId])\n @@map(\"prenta_seo_auto_applies\")\n}\n\n// A versioned snapshot of a form's field schema. Saving a form's schema in\n// the admin creates a new row here; submissions reference the version they\n// were captured against so historical entries always render with the fields\n// that existed at submit time, even after the live form schema changes.\nmodel FormSchemaVersion {\n id String @id @default(cuid())\n formId String\n version Int\n fields Json\n notes String?\n createdById String?\n createdAt DateTime @default(now())\n\n @@unique([formId, version])\n @@index([formId])\n @@map(\"prenta_form_schema_versions\")\n}\n\nmodel FormSubmission {\n id String @id @default(cuid())\n // Per-instance sequential number shown in the UI (e.g. #00001). Assigned by\n // the submission service inside a transaction; nullable for legacy rows.\n entryNumber Int?\n formId String\n schemaVersionId String?\n data Json\n // Server-derived, type-coerced view of `data` (e.g. checkbox -> bool,\n // number -> number) used for export/search. `data` keeps the raw payload.\n normalizedData Json?\n attribution Json?\n senderName String?\n senderEmail String?\n senderPhone String?\n preview String?\n // Legacy free-form status ('new'); superseded by the booleans below but\n // retained so existing rows/integrations keep working.\n status String @default(\"new\")\n unread Boolean @default(true)\n starred Boolean @default(false)\n archived Boolean @default(false)\n spamStatus String @default(\"clean\")\n ipAddressHash String?\n userAgent String?\n referrer String?\n pageUrl String?\n utmSource String?\n utmMedium String?\n utmCampaign String?\n submittedAt DateTime @default(now())\n readAt DateTime?\n archivedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n files FormSubmissionFile[]\n deliveries FormDeliveryAttempt[]\n\n @@index([formId])\n @@index([submittedAt])\n @@index([senderEmail])\n @@index([formId, submittedAt])\n @@map(\"prenta_form_submissions\")\n}\n\n// File attachments for a submission. Files are stored via the configured\n// storage adapter (never inline in the DB); this row tracks metadata and the\n// storage key needed to mint a secure download link.\nmodel FormSubmissionFile {\n id String @id @default(cuid())\n submissionId String\n fieldKey String\n mediaAssetId String?\n fileName String\n mimeType String\n sizeBytes Int\n storageKey String\n publicUrl String?\n secureDownloadUrl String?\n createdAt DateTime @default(now())\n\n submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)\n\n @@index([submissionId])\n @@map(\"prenta_form_submission_files\")\n}\n\n// Per-form outbound webhook configuration. Distinct from the global\n// WebhookEndpoint registry so form owners can wire delivery without admin\n// access to site-wide webhooks.\nmodel FormWebhook {\n id String @id @default(cuid())\n formId String\n url String\n secret String\n /// Previous signing secret (encrypted) kept during rotation grace (#679).\n previousSecret String?\n previousSecretValidUntil DateTime?\n enabled Boolean @default(true)\n events Json\n retryCount Int @default(0)\n lastDeliveryAt DateTime?\n lastDeliveryStatus String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([formId])\n @@map(\"prenta_form_webhooks\")\n}\n\n/// Per-submission notify/webhook/email delivery attempts (#675).\n/// Fail-open: the lead is always persisted; this table tracks best-effort fan-out.\nmodel FormDeliveryAttempt {\n id String @id @default(cuid())\n submissionId String\n formId String\n /// email_notify | email_autoresponder | form_webhook\n channel String\n /// Recipient email or webhook URL (never secrets).\n destination String\n webhookId String?\n /// pending | retrying | success | failed | skipped\n status String @default(\"pending\")\n attempts Int @default(0)\n maxAttempts Int @default(3)\n lastAttemptAt DateTime?\n nextRetryAt DateTime?\n error String?\n responseStatus Int?\n skippedReason String?\n /// Webhook payload (or email meta) for retry without re-submitting.\n payload Json?\n /// When an operator alert email was sent for a permanent failure.\n alertedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)\n\n @@index([formId, status])\n @@index([submissionId])\n @@index([status, nextRetryAt])\n @@map(\"prenta_form_delivery_attempts\")\n}\n\nmodel WebhookEndpoint {\n id String @id @default(cuid())\n url String\n events Json\n secret String\n /// Previous signing secret (encrypted) kept during rotation grace (#679).\n previousSecret String?\n previousSecretValidUntil DateTime?\n active Boolean @default(true)\n name String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n deliveries WebhookDeliveryLog[]\n\n @@map(\"prenta_webhook_endpoints\")\n}\n\nmodel WebhookDeliveryLog {\n id String @id @default(cuid())\n endpointId String\n event String\n payload Json\n status String @default(\"pending\")\n attempts Int @default(0)\n maxAttempts Int @default(3)\n lastAttemptAt DateTime?\n nextRetryAt DateTime?\n responseStatus Int?\n responseBody String?\n createdAt DateTime @default(now())\n\n endpoint WebhookEndpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade)\n\n @@index([endpointId])\n @@index([status])\n @@index([nextRetryAt])\n @@map(\"prenta_webhook_deliveries\")\n}\n\nmodel PasswordResetToken {\n id String @id @default(cuid())\n userId String\n tokenHash String\n expiresAt DateTime\n usedAt DateTime?\n createdAt DateTime @default(now())\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([tokenHash])\n @@index([userId])\n @@map(\"prenta_password_reset_tokens\")\n}\n\nmodel Invite {\n id String @id @default(cuid())\n email String\n role UserRole\n status InviteStatus @default(PENDING)\n tokenHash String\n message String?\n // Stored as a bare id (not an FK relation) to mirror AuditLog: an inviter\n // being removed must never cascade-delete the invite history.\n invitedByUserId String?\n acceptedUserId String?\n expiresAt DateTime\n acceptedAt DateTime?\n cancelledAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([email])\n @@index([tokenHash])\n @@index([status])\n @@map(\"prenta_invites\")\n}\n\nmodel ScriptTag {\n id String @id @default(cuid())\n name String\n code String @db.Text\n placement String\n scope String\n targetPaths String[]\n priority Int @default(100)\n enabled Boolean @default(true)\n /// Inject `async` into external <script src> tags so they don't block render.\n loadAsync Boolean @default(false)\n /// Skip this tag when the page is rendered inside CMS preview mode.\n disableInPreview Boolean @default(true)\n /// Cookie-consent category gate: none | analytics | marketing | functional | preferences.\n consentCategory String @default(\"none\")\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([enabled])\n @@index([placement])\n @@map(\"prenta_script_tags\")\n}\n\n// ─── Dashboard metrics ─────────────────────────────────────────────────────\n\n/// Per-minute pre-aggregated request counters that power the\n/// \"Delivery API\" dashboard tiles (request volume, error rate,\n/// average latency, p95). One row per (bucketStart × route × statusBucket).\n///\n/// Why pre-aggregated minute buckets and not per-request rows:\n/// - 24h of traffic at 10 req/s on 20 routes ≈ 17M raw rows; the\n/// equivalent minute-bucketed table is ≤ 28,800 rows (1440 × 20).\n/// - Vercel Functions are concurrency-bounded; an O(1) UPSERT per\n/// request is cheaper than O(write+query) per dashboard load.\n/// - 7-day retention is enforced by the\n/// `/api/cms/cron/api-metrics-prune` cron, so the table stays\n/// bounded.\n///\n/// `latencyHistogram` is a fixed 12-bucket log-scale array (ms):\n/// [<1, 1-2, 2-4, 4-8, 8-16, 16-32, 32-64, 64-128, 128-256,\n/// 256-512, 512-1024, >1024]\n/// Cumulative-sum to estimate p95 with ~10% accuracy without\n/// per-request samples. The `delivery-stats` reader merges\n/// histograms across buckets before estimating.\nmodel ApiRequestMetric {\n id String @id @default(cuid())\n /// UTC minute boundary (`floor(time, '1 minute')`). The unique\n /// constraint on `(bucketStart, route, statusBucket)` lets the\n /// request logger UPSERT in one round-trip per request.\n bucketStart DateTime\n /// Normalised request route (e.g. `/collections/posts` — never\n /// the per-document `/collections/posts/abc123`). Normalisation\n /// happens in `instrumentation.ts` so the cardinality stays\n /// bounded.\n route String\n /// HTTP status family — one of `2xx`, `3xx`, `4xx`, `5xx`,\n /// `other`. Storing the bucket rather than the raw status lets\n /// us answer \"error rate?\" with a single GROUP BY.\n statusBucket String\n count Int @default(0)\n /// Sum of `responseMs` across `count` requests. Average latency\n /// = `sum(sumLatencyMs) / sum(count)` over the window.\n sumLatencyMs Float @default(0)\n /// Max single-request latency in this bucket. Useful as a\n /// fast-path tail-latency indicator and as a sanity check on\n /// the histogram estimator.\n maxLatencyMs Float @default(0)\n /// 12-bucket log-scale histogram (see model doc). Stored as\n /// `Json` so the schema doesn't have to change when we revise\n /// bucket boundaries.\n latencyHistogram Json\n updatedAt DateTime @updatedAt\n\n @@unique([bucketStart, route, statusBucket])\n @@index([bucketStart])\n @@map(\"prenta_api_request_metrics\")\n}\n\n/// Persisted content-quality issues surfaced by the nightly\n/// content-health scan. The Dashboard's \"Content Health\" card\n/// aggregates these rows by `type` to produce the issue list.\n///\n/// Upsert key is `(documentId, type)` so the scanner is\n/// idempotent — re-running yields the same row count, and a row\n/// \"self-resolves\" by being absent from the next scan (the\n/// scanner uses a `firstScanAt`-watermark + delete pattern).\nmodel ContentIssue {\n id String @id @default(cuid())\n documentId String\n type ContentIssueType\n /// Per-issue count (e.g. 5 alt-less images = `count: 5` even\n /// though it's 1 row). Lets the dashboard show real numbers\n /// without re-scanning the document HTML on each page load.\n count Int @default(1)\n /// Type-specific payload — the broken URL, the page's\n /// `updatedAt`, the offending image src, etc. JSON so each\n /// issue type can carry its own shape without schema churn.\n details Json?\n firstSeenAt DateTime @default(now())\n lastSeenAt DateTime @default(now())\n\n document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)\n\n @@unique([documentId, type])\n @@index([type])\n @@index([documentId])\n @@map(\"prenta_content_issues\")\n}\n\n/// Persisted Yjs state for a document (`@prenta/realtime`). Optional: empty\n/// when collaboration is unused. Cms-core queries this from `/realtime/sync`.\nmodel DocumentCRDT {\n documentId String @id\n state Bytes\n stateVector Bytes\n version Int @default(0)\n lastUpdatedAt DateTime @default(now()) @updatedAt\n lastUpdatedById String?\n createdAt DateTime @default(now())\n\n @@index([lastUpdatedAt])\n @@map(\"prenta_document_crdts\")\n}\n\n/// Threaded inline comment. Soft-deletes keep replies attached. Optional.\nmodel DocumentComment {\n id String @id @default(cuid())\n documentId String\n parentId String?\n parent DocumentComment? @relation(\"CommentThread\", fields: [parentId], references: [id], onDelete: Cascade)\n replies DocumentComment[] @relation(\"CommentThread\")\n userId String?\n user User? @relation(fields: [userId], references: [id], onDelete: SetNull)\n body String @db.Text\n anchor Json?\n resolvedAt DateTime?\n resolvedById String?\n deletedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([documentId])\n @@index([documentId, resolvedAt])\n @@index([parentId])\n @@index([userId])\n @@index([createdAt])\n @@map(\"prenta_document_comments\")\n}\n\n/// Per-user notification feed for collaboration events.\nmodel DocumentNotification {\n id String @id @default(cuid())\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n kind String\n documentId String?\n commentId String?\n payload Json\n readAt DateTime?\n createdAt DateTime @default(now())\n\n @@index([userId, readAt])\n @@index([userId, createdAt])\n @@index([documentId])\n @@index([commentId])\n @@map(\"prenta_document_notifications\")\n}\n\n/// Background work for SEO audit, content health, and batch AI.\n/// `status` is queued | running | succeeded | dead | cancelled. Only queued\n/// rows are claimed: a dead row is the dead-letter and a cancelled row is\n/// final, so neither runs again. Ids are minted by the queue so a stub\n/// database that ignores `create` still returns a job id.\nmodel Job {\n id String @id\n type String\n payload Json\n status String\n attempts Int @default(0)\n maxAttempts Int @default(3)\n runAt DateTime\n lockedAt DateTime?\n lastError String?\n progress Json\n cancelRequestedAt DateTime?\n cancelledById String?\n /// Who queued it. Null for cron jobs and rows queued before 0026.\n createdById String?\n title String?\n scope String?\n tokensIn Int @default(0)\n tokensOut Int @default(0)\n explain String?\n summary String?\n results Json?\n finishedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n events JobEvent[]\n reviewItems JobReviewItem[]\n\n @@index([status, runAt])\n @@index([createdAt])\n @@map(\"prenta_jobs\")\n}\n\n/// Worker log for a job. The admin shows the newest 50; a job that ends keeps its newest 100.\nmodel JobEvent {\n id String @id @default(cuid())\n jobId String\n job Job @relation(fields: [jobId], references: [id], onDelete: Cascade)\n at DateTime @default(now())\n kind String\n message String\n detail String?\n durationMs Int?\n tokens Int?\n\n @@index([jobId, at])\n @@map(\"prenta_job_events\")\n}\n\n/// One proposed document change from a review-first batch AI job.\nmodel JobReviewItem {\n id String @id @default(cuid())\n jobId String\n job Job @relation(fields: [jobId], references: [id], onDelete: Cascade)\n documentId String\n documentTitle String\n url String @default(\"\")\n field String\n before String\n after String\n editedAfter String?\n status String @default(\"pending\")\n decidedById String?\n decidedAt DateTime?\n appliedRevisionId String?\n\n @@index([jobId, status])\n @@map(\"prenta_job_review_items\")\n}\n\n/// Machine-written state keyed by name, such as the job worker's last tick\n/// (`jobs.worker`). Separate from the `settings` global so a background write\n/// can never overwrite an admin's save, and no user id is needed.\nmodel SystemSetting {\n key String @id\n value Json\n updatedAt DateTime @updatedAt\n\n @@map(\"prenta_system_settings\")\n}\n\n/// Site chrome for Appearance > Header & Footer, one row per region.\n/// `header` and `footer` hold the code-first schema the site sends on deploy\n/// (`schema`, with `source.commit`; variants and fields are ordered pairs\n/// because JSONB doesn't keep key order), the site-default `variant`, the saved\n/// field `values`, and the values a schema change dropped (`orphans`, each with\n/// `orphanedAt`, kept 30 days). `announcement` holds the announcement bar in\n/// `values`, and in `state` the schedule boundaries that already revalidated\n/// the site. Every write is conditional on `version`, so a save and a schema\n/// read can't overwrite each other. `updatedAt` is set by the code, not\n/// `@updatedAt`'s default: it moves only when the saved values change.\nmodel ChromeRegion {\n region String @id\n schema Json?\n schemaHash String?\n variant String?\n values Json @default(\"{}\")\n orphans Json @default(\"[]\")\n state Json?\n version Int @default(0)\n updatedById String?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@map(\"prenta_chrome_regions\")\n}\n\n/// One MCP OAuth grant. The authorization code and the current refresh token\n/// are stored only as SHA-256 hashes. `familyId` groups rotations; replaying a\n/// replaced refresh token revokes every row in the family.\nmodel McpOauthGrant {\n id String @id @default(cuid())\n userId String\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n clientId String\n redirectUri String\n resource String\n scope String\n codeChallenge String\n codeHash String? @unique\n codeExpiresAt DateTime?\n codeConsumedAt DateTime?\n refreshHash String? @unique\n refreshExpiresAt DateTime?\n familyId String\n revokedAt DateTime?\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n\n @@index([userId])\n @@index([familyId])\n @@index([clientId])\n @@map(\"prenta_mcp_oauth_grants\")\n}\n\n/// Hashes of refresh tokens that have already been rotated. Presenting one\n/// revokes the family.\nmodel McpOauthRefreshReplay {\n hash String @id\n familyId String\n createdAt DateTime @default(now())\n\n @@index([familyId])\n @@map(\"prenta_mcp_oauth_refresh_replays\")\n}\n\n/// Pending authorize request, before the person allows or denies it.\n/// Short-lived. The id is the browser transaction, not a credential.\nmodel McpOauthTransaction {\n id String @id\n clientId String\n clientName String\n redirectUri String\n resource String\n scope String\n codeChallenge String\n state String?\n expiresAt DateTime\n createdAt DateTime @default(now())\n\n @@index([expiresAt])\n @@map(\"prenta_mcp_oauth_transactions\")\n}\n",
22
22
  "runtimeDataModel": {
23
23
  "models": {},
24
24
  "enums": {},
package/dist/index.d.ts CHANGED
@@ -50,6 +50,7 @@ export { migrateMetaFields } from './seo/migrate-meta.js';
50
50
  export { backfillMediaUsage, extractMediaReferences, resolveMediaReferences, syncMediaUsageForDocument, } from './media/usage-sync.js';
51
51
  export { reoptimizeMedia, backfillMediaOptimization } from './media/reoptimize.js';
52
52
  export { backfillMediaContentHash } from './media/content-hash-backfill.js';
53
+ export { backfillMediaStorageKeys, storageObjectKeyFromPublicUrl } from './media/storage-key.js';
53
54
  export { rewriteStoredMediaUrls, rewriteDocumentsForMediaUrl } from './media/rewrite-urls.js';
54
55
  export type { ReoptimizeResult, BackfillMediaOptimizationOptions, BackfillMediaOptimizationResult, } from './media/reoptimize.js';
55
56
  export type { BackfillMediaContentHashOptions, BackfillMediaContentHashResult, ContentHashCollision, } from './media/content-hash-backfill.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -51,6 +51,7 @@ export { migrateMetaFields } from './seo/migrate-meta.js';
51
51
  export { backfillMediaUsage, extractMediaReferences, resolveMediaReferences, syncMediaUsageForDocument, } from './media/usage-sync.js';
52
52
  export { reoptimizeMedia, backfillMediaOptimization } from './media/reoptimize.js';
53
53
  export { backfillMediaContentHash } from './media/content-hash-backfill.js';
54
+ export { backfillMediaStorageKeys, storageObjectKeyFromPublicUrl } from './media/storage-key.js';
54
55
  export { rewriteStoredMediaUrls, rewriteDocumentsForMediaUrl } from './media/rewrite-urls.js';
55
56
  // Next.js Integration
56
57
  export { withPrentaCMS, getAdminPath } from './next.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Decide whether a section image is in the media library.
3
+ *
4
+ * The synchronous check only flags obvious static paths. External URLs need a
5
+ * lookup (`libraryWarningsForSection`) because library files are also https.
6
+ * `enforceLibrary: 'block'` turns those findings into a publish error.
7
+ */
8
+ import type { PrentaCMSConfig } from '../config/types.js';
9
+ import type { CollectionDefinition } from '../config/types.js';
10
+ export type LibraryEnforcement = 'warn' | 'block';
11
+ export type MediaPlacement = 'empty' | 'library' | 'static' | 'external' | 'unchecked';
12
+ export interface KnownMedia {
13
+ urls: ReadonlySet<string>;
14
+ ids: ReadonlySet<string>;
15
+ }
16
+ export interface MediaSlot {
17
+ field: string;
18
+ value: string;
19
+ }
20
+ export interface LibraryFinding {
21
+ field: string;
22
+ placement: 'static' | 'external';
23
+ message: string;
24
+ }
25
+ export declare function resolveLibraryEnforcement(config: Pick<PrentaCMSConfig, 'media'> | null | undefined): LibraryEnforcement;
26
+ /** Obvious on-disk paths. `/media/…` is the local library and is not static. */
27
+ export declare function isStaticAssetPath(url: string): boolean;
28
+ export declare function classifyMediaReference(value: string, known?: KnownMedia): MediaPlacement;
29
+ /** Alt field that belongs next to a media field in the same field list. */
30
+ export declare function companionAltKey(mediaKey: string, fields: ReadonlyArray<{
31
+ key: string;
32
+ }>): string | undefined;
33
+ export declare function collectSectionMediaSlots(sectionType: string, content: Record<string, unknown> | null | undefined): MediaSlot[];
34
+ export declare function findingsForSlots(slots: MediaSlot[], known?: KnownMedia): LibraryFinding[];
35
+ export declare function libraryWarningsForSection(db: unknown, sectionType: string, content: Record<string, unknown> | null | undefined): Promise<LibraryFinding[]>;
36
+ /**
37
+ * On publish, `block` refuses off-library images. `warn` (the default) records
38
+ * them and does not stop the publish.
39
+ */
40
+ export declare function enforceLibraryOnPublish(params: {
41
+ db: unknown;
42
+ collectionDef: CollectionDefinition | null | undefined;
43
+ data: Record<string, unknown>;
44
+ config: Pick<PrentaCMSConfig, 'media'> | null | undefined;
45
+ }): Promise<string[]>;
46
+ //# sourceMappingURL=library-membership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-membership.d.ts","sourceRoot":"","sources":["../../src/media/library-membership.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAK9D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,CAAA;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACzB,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAChB;AAOD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACxD,kBAAkB,CAEpB;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQtD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,cAAc,CAQxF;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GACrC,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAClD,SAAS,EAAE,CA8Bb;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,cAAc,EAAE,CAWzF;AAyBD,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,OAAO,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAClD,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B3B;AAkBD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,EAAE,EAAE,OAAO,CAAA;IACX,aAAa,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAA;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAA;CAC1D,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBpB"}