@sonicjs-cms/core 2.19.0 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/admin-documents-form.template-KN7JF66Q.cjs +19 -0
- package/dist/{admin-layout-catalyst.template-UMTIN66R.js.map → admin-documents-form.template-KN7JF66Q.cjs.map} +1 -1
- package/dist/admin-documents-form.template-NLSI6Z42.js +6 -0
- package/dist/{admin-layout-catalyst.template-HFD37TY5.cjs.map → admin-documents-form.template-NLSI6Z42.js.map} +1 -1
- package/dist/admin-layout-catalyst.template-WHJGSWWD.js +7 -0
- package/dist/admin-layout-catalyst.template-WHJGSWWD.js.map +1 -0
- package/dist/admin-layout-catalyst.template-ZK5HD545.cjs +17 -0
- package/dist/admin-layout-catalyst.template-ZK5HD545.cjs.map +1 -0
- package/dist/app-Bo0X1OWX.d.ts +1268 -0
- package/dist/app-Do66yCcV.d.cts +1268 -0
- package/dist/cache-DDARE4QE.js +4 -0
- package/dist/cache-DDARE4QE.js.map +1 -0
- package/dist/cache-LVYS4BPL.cjs +33 -0
- package/dist/cache-LVYS4BPL.cjs.map +1 -0
- package/dist/chunk-2CB4KY7I.cjs +771 -0
- package/dist/chunk-2CB4KY7I.cjs.map +1 -0
- package/dist/{chunk-55RDMDOP.js → chunk-3TB6AT6X.js} +148 -55
- package/dist/chunk-3TB6AT6X.js.map +1 -0
- package/dist/{chunk-ON5ZMSU4.js → chunk-6JQOUUOB.js} +3 -3
- package/dist/chunk-6JQOUUOB.js.map +1 -0
- package/dist/chunk-6OUHGKFD.js +387 -0
- package/dist/chunk-6OUHGKFD.js.map +1 -0
- package/dist/{chunk-7A4CB7T3.cjs → chunk-AAWNRBRB.cjs} +509 -91
- package/dist/chunk-AAWNRBRB.cjs.map +1 -0
- package/dist/chunk-AI663NBO.js +821 -0
- package/dist/chunk-AI663NBO.js.map +1 -0
- package/dist/chunk-BDDABDAB.cjs +1149 -0
- package/dist/chunk-BDDABDAB.cjs.map +1 -0
- package/dist/chunk-BLMTL57B.js +767 -0
- package/dist/chunk-BLMTL57B.js.map +1 -0
- package/dist/chunk-DNQCEKUK.cjs +327 -0
- package/dist/chunk-DNQCEKUK.cjs.map +1 -0
- package/dist/chunk-DSA4UX5B.cjs +276 -0
- package/dist/chunk-DSA4UX5B.cjs.map +1 -0
- package/dist/chunk-EF2NQUIQ.js +323 -0
- package/dist/chunk-EF2NQUIQ.js.map +1 -0
- package/dist/chunk-GCDZZNIN.js +192 -0
- package/dist/chunk-GCDZZNIN.js.map +1 -0
- package/dist/{chunk-ABB34XUS.cjs → chunk-H2AXVCLS.cjs} +667 -19
- package/dist/chunk-H2AXVCLS.cjs.map +1 -0
- package/dist/{chunk-XWIA3HVX.js → chunk-HDWE5FRJ.js} +6 -1249
- package/dist/chunk-HDWE5FRJ.js.map +1 -0
- package/dist/chunk-HIKBY7MS.cjs +70 -0
- package/dist/chunk-HIKBY7MS.cjs.map +1 -0
- package/dist/chunk-IESEVHXL.js +66 -0
- package/dist/chunk-IESEVHXL.js.map +1 -0
- package/dist/chunk-IVPRUGTY.js +242 -0
- package/dist/chunk-IVPRUGTY.js.map +1 -0
- package/dist/{chunk-JZVHLLSI.cjs → chunk-IXUHXTHW.cjs} +2 -151
- package/dist/chunk-IXUHXTHW.cjs.map +1 -0
- package/dist/chunk-J6JTWD2A.cjs +100 -0
- package/dist/chunk-J6JTWD2A.cjs.map +1 -0
- package/dist/chunk-JEQ7FLOD.cjs +199 -0
- package/dist/chunk-JEQ7FLOD.cjs.map +1 -0
- package/dist/chunk-K25XHMM3.js +566 -0
- package/dist/chunk-K25XHMM3.js.map +1 -0
- package/dist/chunk-LRZIAW7U.cjs +158 -0
- package/dist/chunk-LRZIAW7U.cjs.map +1 -0
- package/dist/{chunk-OHYBNCVL.cjs → chunk-MVIZJOO5.cjs} +10 -1256
- package/dist/chunk-MVIZJOO5.cjs.map +1 -0
- package/dist/{chunk-UYJ6TJHX.cjs → chunk-NAVPFIG5.cjs} +148 -55
- package/dist/chunk-NAVPFIG5.cjs.map +1 -0
- package/dist/chunk-NLJVSER2.js +273 -0
- package/dist/chunk-NLJVSER2.js.map +1 -0
- package/dist/chunk-NMPEMSU4.js +154 -0
- package/dist/chunk-NMPEMSU4.js.map +1 -0
- package/dist/chunk-NUKJ54GA.cjs +245 -0
- package/dist/chunk-NUKJ54GA.cjs.map +1 -0
- package/dist/{chunk-E4YFJBM2.cjs → chunk-QAYFOER6.cjs} +621 -829
- package/dist/chunk-QAYFOER6.cjs.map +1 -0
- package/dist/{chunk-BU7SFHGP.js → chunk-QZGABF2M.js} +3 -149
- package/dist/chunk-QZGABF2M.js.map +1 -0
- package/dist/chunk-RNZFGN4R.js +88 -0
- package/dist/chunk-RNZFGN4R.js.map +1 -0
- package/dist/{chunk-4NPCDK6B.js → chunk-RZ6H7OZK.js} +505 -90
- package/dist/chunk-RZ6H7OZK.js.map +1 -0
- package/dist/{chunk-OCL3HMEG.js → chunk-VD2EA3WT.js} +7004 -9807
- package/dist/chunk-VD2EA3WT.js.map +1 -0
- package/dist/{chunk-R4FOLLFB.cjs → chunk-VXE42MYF.cjs} +8730 -11520
- package/dist/chunk-VXE42MYF.cjs.map +1 -0
- package/dist/{chunk-4ZSNJDLS.cjs → chunk-WULONYGB.cjs} +9 -9
- package/dist/chunk-WULONYGB.cjs.map +1 -0
- package/dist/chunk-XW56B23A.cjs +408 -0
- package/dist/chunk-XW56B23A.cjs.map +1 -0
- package/dist/chunk-YA3TJ65D.cjs +575 -0
- package/dist/chunk-YA3TJ65D.cjs.map +1 -0
- package/dist/{chunk-TFNTM3OA.js → chunk-YHSQVQXX.js} +645 -15
- package/dist/chunk-YHSQVQXX.js.map +1 -0
- package/dist/chunk-YP7GW2G5.cjs +866 -0
- package/dist/chunk-YP7GW2G5.cjs.map +1 -0
- package/dist/{chunk-QFWHAFEO.js → chunk-ZEZ245PW.js} +148 -858
- package/dist/chunk-ZEZ245PW.js.map +1 -0
- package/dist/{chunk-JZV22DEV.js → chunk-ZGGXCFR6.js} +611 -817
- package/dist/chunk-ZGGXCFR6.js.map +1 -0
- package/dist/{collection-config-B4PG-AaF.d.cts → collection-config-JgHOpFCG.d.cts} +30 -2
- package/dist/{collection-config-B4PG-AaF.d.ts → collection-config-JgHOpFCG.d.ts} +30 -2
- package/dist/config-HFXANXCC.js +6 -0
- package/dist/config-HFXANXCC.js.map +1 -0
- package/dist/config-ON6FNMYX.cjs +19 -0
- package/dist/config-ON6FNMYX.cjs.map +1 -0
- package/dist/define-plugin-BzNHc1ZI.d.ts +1321 -0
- package/dist/define-plugin-IWDKYaVm.d.cts +1321 -0
- package/dist/document-projection-TDWRJX3Z.cjs +13 -0
- package/dist/document-projection-TDWRJX3Z.cjs.map +1 -0
- package/dist/document-projection-YYMC6I4U.js +4 -0
- package/dist/document-projection-YYMC6I4U.js.map +1 -0
- package/dist/index.cjs +13734 -4328
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +329 -492
- package/dist/index.d.ts +329 -492
- package/dist/index.js +13385 -3998
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +36 -32
- package/dist/middleware.d.cts +50 -7
- package/dist/middleware.d.ts +50 -7
- package/dist/middleware.js +7 -3
- package/dist/migrations-NJJWQUKK.cjs +13 -0
- package/dist/{migrations-566IIPS2.cjs.map → migrations-NJJWQUKK.cjs.map} +1 -1
- package/dist/migrations-WCAVBD7C.js +4 -0
- package/dist/{migrations-H5IXZNCO.js.map → migrations-WCAVBD7C.js.map} +1 -1
- package/dist/{plugin-bootstrap-DfVerYV4.d.cts → plugin-bootstrap-B8ThJU21.d.cts} +4315 -1661
- package/dist/{plugin-bootstrap-P_ciLp_C.d.ts → plugin-bootstrap-qu8hJgUt.d.ts} +4315 -1661
- package/dist/plugins.cjs +171 -12
- package/dist/plugins.d.cts +36 -2
- package/dist/plugins.d.ts +36 -2
- package/dist/plugins.js +5 -2
- package/dist/rbac-O73MFKDA.js +5 -0
- package/dist/rbac-O73MFKDA.js.map +1 -0
- package/dist/rbac-VONLJJKB.cjs +14 -0
- package/dist/rbac-VONLJJKB.cjs.map +1 -0
- package/dist/routes.cjs +41 -45
- package/dist/routes.d.cts +56 -146
- package/dist/routes.d.ts +56 -146
- package/dist/routes.js +17 -9
- package/dist/services.cjs +39 -72
- package/dist/services.d.cts +79 -54
- package/dist/services.d.ts +79 -54
- package/dist/services.js +6 -3
- package/dist/templates.cjs +17 -29
- package/dist/templates.d.cts +1 -66
- package/dist/templates.d.ts +1 -66
- package/dist/templates.js +3 -3
- package/dist/types-Dea1eNxU.d.cts +286 -0
- package/dist/types-Dea1eNxU.d.ts +286 -0
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.cjs +18 -17
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +2 -1
- package/migrations/0001_core.sql +184 -0
- package/migrations/0002_documents.sql +163 -0
- package/package.json +12 -7
- package/dist/admin-layout-catalyst.template-HFD37TY5.cjs +0 -17
- package/dist/admin-layout-catalyst.template-UMTIN66R.js +0 -7
- package/dist/app-C9esKLmh.d.cts +0 -112
- package/dist/app-C9esKLmh.d.ts +0 -112
- package/dist/chunk-4NPCDK6B.js.map +0 -1
- package/dist/chunk-4ZSNJDLS.cjs.map +0 -1
- package/dist/chunk-55RDMDOP.js.map +0 -1
- package/dist/chunk-635JAMSE.cjs +0 -653
- package/dist/chunk-635JAMSE.cjs.map +0 -1
- package/dist/chunk-7A4CB7T3.cjs.map +0 -1
- package/dist/chunk-ABB34XUS.cjs.map +0 -1
- package/dist/chunk-BU7SFHGP.js.map +0 -1
- package/dist/chunk-E4YFJBM2.cjs.map +0 -1
- package/dist/chunk-EXNEW5US.js +0 -648
- package/dist/chunk-EXNEW5US.js.map +0 -1
- package/dist/chunk-JZV22DEV.js.map +0 -1
- package/dist/chunk-JZVHLLSI.cjs.map +0 -1
- package/dist/chunk-OCL3HMEG.js.map +0 -1
- package/dist/chunk-OHYBNCVL.cjs.map +0 -1
- package/dist/chunk-ON5ZMSU4.js.map +0 -1
- package/dist/chunk-QFWHAFEO.js.map +0 -1
- package/dist/chunk-R4FOLLFB.cjs.map +0 -1
- package/dist/chunk-RLMUFFUD.cjs +0 -2219
- package/dist/chunk-RLMUFFUD.cjs.map +0 -1
- package/dist/chunk-TFNTM3OA.js.map +0 -1
- package/dist/chunk-UYJ6TJHX.cjs.map +0 -1
- package/dist/chunk-WAEQXGCX.cjs +0 -1898
- package/dist/chunk-WAEQXGCX.cjs.map +0 -1
- package/dist/chunk-XWIA3HVX.js.map +0 -1
- package/dist/chunk-ZYAYUIZE.js +0 -2217
- package/dist/chunk-ZYAYUIZE.js.map +0 -1
- package/dist/migrations-566IIPS2.cjs +0 -13
- package/dist/migrations-H5IXZNCO.js +0 -4
- package/dist/plugin-manager-BoM3Q7o7.d.cts +0 -328
- package/dist/plugin-manager-Efx9RyDX.d.ts +0 -328
- package/migrations/001_initial_schema.sql +0 -170
- package/migrations/002_faq_plugin.sql +0 -86
- package/migrations/003_stage5_enhancements.sql +0 -121
- package/migrations/004_stage6_user_management.sql +0 -183
- package/migrations/005_stage7_workflow_automation.sql +0 -294
- package/migrations/006_plugin_system.sql +0 -155
- package/migrations/007_demo_login_plugin.sql +0 -23
- package/migrations/008_fix_slug_validation.sql +0 -22
- package/migrations/009_system_logging.sql +0 -57
- package/migrations/011_config_managed_collections.sql +0 -15
- package/migrations/012_testimonials_plugin.sql +0 -80
- package/migrations/013_code_examples_plugin.sql +0 -177
- package/migrations/014_fix_plugin_registry.sql +0 -88
- package/migrations/015_add_remaining_plugins.sql +0 -89
- package/migrations/016_remove_duplicate_cache_plugin.sql +0 -17
- package/migrations/017_auth_configurable_fields.sql +0 -49
- package/migrations/018_settings_table.sql +0 -23
- package/migrations/019_remove_blog_posts_collection.sql +0 -15
- package/migrations/020_add_email_plugin.sql +0 -22
- package/migrations/021_add_magic_link_auth_plugin.sql +0 -42
- package/migrations/022_add_tinymce_plugin.sql +0 -25
- package/migrations/023_add_easy_mdx_plugin.sql +0 -25
- package/migrations/024_add_quill_editor_plugin.sql +0 -25
- package/migrations/025_add_easymde_plugin.sql +0 -25
- package/migrations/026_add_otp_login.sql +0 -42
- package/migrations/027_fix_slug_field_type.sql +0 -18
- package/migrations/028_fix_slug_field_type_in_schemas.sql +0 -30
- package/migrations/029_add_forms_system.sql +0 -184
- package/migrations/030_add_turnstile_to_forms.sql +0 -14
- package/migrations/031_ai_search_plugin.sql +0 -45
- package/migrations/032_user_profiles.sql +0 -37
- package/migrations/033_form_content_integration.sql +0 -19
- package/migrations/034_security_audit_plugin.sql +0 -27
- package/migrations/035_user_profiles_data_column.sql +0 -16
- package/migrations/036_analytics_events.sql +0 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/db/schema.ts","../../../node_modules/src/constants.ts","../../../node_modules/src/utils.ts","../../../node_modules/src/column.ts","../../../node_modules/src/schema.ts"],"names":["zod","z","integer","columns"],"mappings":"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","file":"chunk-AI663NBO.js","sourcesContent":["import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';\nimport { createInsertSchema, createSelectSchema } from 'drizzle-zod';\n\n// Users table for authentication and user management (v3: table name is auth_user)\nexport const authUser = sqliteTable('auth_user', {\n id: text('id').primaryKey(),\n email: text('email').notNull().unique(),\n firstName: text('first_name').notNull(),\n lastName: text('last_name').notNull(),\n passwordHash: text('password_hash'), // Hashed password, nullable for OAuth users\n name: text('name'), // Better Auth display name (required by Better Auth for registration)\n emailVerified: integer('email_verified', { mode: 'boolean' }).notNull().default(false), // Better Auth\n role: text('role').notNull().default('viewer'), // 'admin', 'editor', 'author', 'viewer'\n // Platform super-admin: bypasses the multi-tenant membership gate. Opt-in, default false.\n isSuperAdmin: integer('is_super_admin', { mode: 'boolean' }).notNull().default(false),\n avatar: text('avatar'),\n isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),\n lastLoginAt: integer('last_login_at'),\n // Password reset (routes/auth.ts)\n passwordResetToken: text('password_reset_token'),\n passwordResetExpires: integer('password_reset_expires'),\n // Invitation flow (routes/auth.ts accept-invitation)\n invitationToken: text('invitation_token'),\n invitedAt: integer('invited_at'),\n acceptedInvitationAt: integer('accepted_invitation_at'),\n // Account lockout: reset on success; set on threshold failures\n failedLoginCount: integer('failed_login_count').notNull().default(0),\n lockedUntil: integer('locked_until'),\n // 2FA enrollment flag (twoFactor BA plugin)\n twoFactorEnabled: integer('two_factor_enabled').notNull().default(0),\n // timestamp_ms so Better Auth's Date values round-trip; matches SonicJS's\n // existing Date.now() (ms) convention for these columns.\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n});\n\n// Backward-compat alias — all existing code using `users` continues to work.\nexport const users = authUser;\n\n// ── Better Auth tables ───────────────────────────────────────────────────────\n// Cookie-based sessions, credential/OAuth accounts, and verification tokens.\n\nexport const authSession = sqliteTable('auth_session', {\n id: text('id').primaryKey(),\n userId: text('user_id')\n .notNull()\n .references(() => authUser.id, { onDelete: 'cascade' }),\n token: text('token').notNull().unique(),\n expiresAt: integer('expires_at', { mode: 'timestamp_ms' }).notNull(),\n ipAddress: text('ip_address'),\n userAgent: text('user_agent'),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n});\n\nexport const authAccount = sqliteTable('auth_account', {\n id: text('id').primaryKey(),\n userId: text('user_id')\n .notNull()\n .references(() => authUser.id, { onDelete: 'cascade' }),\n accountId: text('account_id').notNull(),\n providerId: text('provider_id').notNull(),\n accessToken: text('access_token'),\n refreshToken: text('refresh_token'),\n accessTokenExpiresAt: integer('access_token_expires_at', { mode: 'timestamp_ms' }),\n refreshTokenExpiresAt: integer('refresh_token_expires_at', { mode: 'timestamp_ms' }),\n scope: text('scope'),\n idToken: text('id_token'),\n password: text('password'),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n});\n\nexport const authVerification = sqliteTable('auth_verification', {\n id: text('id').primaryKey(),\n identifier: text('identifier').notNull(),\n value: text('value').notNull(),\n expiresAt: integer('expires_at', { mode: 'timestamp_ms' }).notNull(),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n});\n\n// BA internal resolution aliases\nexport const session = authSession;\nexport const account = authAccount;\nexport const verification = authVerification;\n\n// ── Better Auth tenant (organization plugin) tables ──────────────────────────\nexport const authTenant = sqliteTable('auth_tenant', {\n id: text('id').primaryKey(),\n name: text('name').notNull(),\n slug: text('slug').notNull().unique(),\n logo: text('logo'),\n metadata: text('metadata'),\n status: text('status').notNull().default('active'),\n domain: text('domain'),\n notes: text('notes').notNull().default(''),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n})\n\nexport const authTenantMember = sqliteTable('auth_tenant_member', {\n id: text('id').primaryKey(),\n tenantId: text('tenant_id').notNull().references(() => authTenant.id, { onDelete: 'cascade' }),\n userId: text('user_id').notNull().references(() => authUser.id, { onDelete: 'cascade' }),\n role: text('role').notNull().default('member'),\n email: text('email'),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n})\n\nexport const authTenantInvitation = sqliteTable('auth_tenant_invitation', {\n id: text('id').primaryKey(),\n tenantId: text('tenant_id').notNull().references(() => authTenant.id, { onDelete: 'cascade' }),\n email: text('email').notNull(),\n role: text('role').notNull().default('member'),\n status: text('status').notNull().default('pending'),\n expiresAt: integer('expires_at', { mode: 'timestamp_ms' }).notNull(),\n inviterId: text('inviter_id').references(() => authUser.id, { onDelete: 'set null' }),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n})\n\nexport const authTenantTeam = sqliteTable('auth_tenant_team', {\n id: text('id').primaryKey(),\n name: text('name').notNull(),\n tenantId: text('tenant_id').notNull().references(() => authTenant.id, { onDelete: 'cascade' }),\n createdAt: integer('created_at', { mode: 'timestamp_ms' }).notNull(),\n updatedAt: integer('updated_at', { mode: 'timestamp_ms' }).notNull(),\n})\n\n// Collections are code-only — registered via `registerCollections()`. The\n// `collections` table was dropped in PR 4 of the drop-db-collections plan\n// (docs/ai/plans/drop-db-collections-plan.md). The in-memory CollectionRegistry\n// is now the source of truth for collection metadata.\n\n// Content items - actual content data (legacy; being decommissioned alongside\n// the rest of the pre-document-model schema). `collection_id` is retained as\n// a plain text column — no FK to the removed `collections` table.\nexport const content = sqliteTable('content', {\n id: text('id').primaryKey(),\n collectionId: text('collection_id').notNull(),\n slug: text('slug').notNull(),\n title: text('title').notNull(),\n data: text('data', { mode: 'json' }).notNull(), // JSON content data\n status: text('status').notNull().default('draft'), // 'draft', 'published', 'archived'\n publishedAt: integer('published_at', { mode: 'timestamp' }),\n authorId: text('author_id').notNull().references(() => authUser.id),\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n updatedAt: integer('updated_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n// Content versions for versioning system\nexport const contentVersions = sqliteTable('content_versions', {\n id: text('id').primaryKey(),\n contentId: text('content_id').notNull().references(() => content.id),\n version: integer('version').notNull(),\n data: text('data', { mode: 'json' }).notNull(),\n authorId: text('author_id').notNull().references(() => authUser.id),\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n// Media/Files table\nexport const media = sqliteTable('media', {\n id: text('id').primaryKey(),\n filename: text('filename').notNull(),\n originalName: text('original_name').notNull(),\n mimeType: text('mime_type').notNull(),\n size: integer('size').notNull(),\n width: integer('width'),\n height: integer('height'),\n folder: text('folder').notNull().default('uploads'),\n r2Key: text('r2_key').notNull(), // R2 storage key\n publicUrl: text('public_url').notNull(), // CDN URL\n thumbnailUrl: text('thumbnail_url'),\n alt: text('alt'),\n caption: text('caption'),\n tags: text('tags', { mode: 'json' }), // JSON array of tags\n uploadedBy: text('uploaded_by').notNull().references(() => authUser.id),\n uploadedAt: integer('uploaded_at').notNull(),\n updatedAt: integer('updated_at'),\n publishedAt: integer('published_at'),\n scheduledAt: integer('scheduled_at'),\n archivedAt: integer('archived_at'),\n deletedAt: integer('deleted_at'),\n});\n\n// API tokens for programmatic access\nexport const apiTokens = sqliteTable('auth_api_tokens', {\n id: text('id').primaryKey(),\n name: text('name').notNull(),\n token: text('token').notNull().unique(),\n userId: text('user_id').notNull().references(() => authUser.id),\n permissions: text('permissions', { mode: 'json' }).notNull(), // Array of permissions\n expiresAt: integer('expires_at', { mode: 'timestamp' }),\n lastUsedAt: integer('last_used_at', { mode: 'timestamp' }),\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n\n// Workflow history for content workflow tracking\nexport const workflowHistory = sqliteTable('workflow_history', {\n id: text('id').primaryKey(),\n contentId: text('content_id').notNull().references(() => content.id),\n action: text('action').notNull(),\n fromStatus: text('from_status').notNull(),\n toStatus: text('to_status').notNull(),\n userId: text('user_id').notNull().references(() => authUser.id),\n comment: text('comment'),\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n// Plugin system tables\nexport const plugins = sqliteTable('plugins', {\n id: text('id').primaryKey(),\n name: text('name').notNull().unique(),\n displayName: text('display_name').notNull(),\n description: text('description'),\n version: text('version').notNull(),\n author: text('author').notNull(),\n category: text('category').notNull(),\n icon: text('icon'),\n status: text('status').notNull().default('inactive'), // 'active', 'inactive', 'error'\n isCore: integer('is_core', { mode: 'boolean' }).notNull().default(false),\n settings: text('settings', { mode: 'json' }),\n permissions: text('permissions', { mode: 'json' }),\n dependencies: text('dependencies', { mode: 'json' }),\n downloadCount: integer('download_count').notNull().default(0),\n rating: integer('rating').notNull().default(0),\n installedAt: integer('installed_at').notNull(),\n activatedAt: integer('activated_at'),\n lastUpdated: integer('last_updated').notNull(),\n errorMessage: text('error_message'),\n createdAt: integer('created_at').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n updatedAt: integer('updated_at').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n});\n\nexport const pluginHooks = sqliteTable('plugin_hooks', {\n id: text('id').primaryKey(),\n pluginId: text('plugin_id').notNull().references(() => plugins.id),\n hookName: text('hook_name').notNull(),\n handlerName: text('handler_name').notNull(),\n priority: integer('priority').notNull().default(10),\n isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),\n createdAt: integer('created_at').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n});\n\nexport const pluginRoutes = sqliteTable('plugin_routes', {\n id: text('id').primaryKey(),\n pluginId: text('plugin_id').notNull().references(() => plugins.id),\n path: text('path').notNull(),\n method: text('method').notNull(),\n handlerName: text('handler_name').notNull(),\n middleware: text('middleware', { mode: 'json' }),\n isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),\n createdAt: integer('created_at').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n});\n\nexport const pluginAssets = sqliteTable('plugin_assets', {\n id: text('id').primaryKey(),\n pluginId: text('plugin_id').notNull().references(() => plugins.id),\n assetType: text('asset_type').notNull(), // 'css', 'js', 'image', 'font'\n assetPath: text('asset_path').notNull(),\n loadOrder: integer('load_order').notNull().default(100),\n loadLocation: text('load_location').notNull().default('footer'), // 'header', 'footer'\n isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),\n createdAt: integer('created_at').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n});\n\nexport const pluginActivityLog = sqliteTable('plugin_activity_log', {\n id: text('id').primaryKey(),\n pluginId: text('plugin_id').notNull().references(() => plugins.id),\n action: text('action').notNull(),\n userId: text('user_id'),\n details: text('details', { mode: 'json' }),\n timestamp: integer('timestamp').notNull().$defaultFn(() => Math.floor(Date.now() / 1000)),\n});\n\n// Zod schemas for validation\nexport const insertUserSchema = createInsertSchema(authUser, {\n email: (schema: any) => schema.email(),\n firstName: (schema: any) => schema.min(1),\n lastName: (schema: any) => schema.min(1),\n});\n\nexport const selectUserSchema = createSelectSchema(authUser);\n\n// Collection Zod schemas removed with the `collections` table — see\n// drop-db-collections plan PR 4. Use the CollectionConfig type from\n// `types/collection-config.ts` for code-defined collections.\n\nexport const insertContentSchema = createInsertSchema(content, {\n slug: (schema: any) => schema.min(1).regex(/^[a-zA-Z0-9_-]+$/, 'Slug must contain only letters, numbers, underscores, and hyphens'),\n title: (schema: any) => schema.min(1),\n status: (schema: any) => schema,\n});\n\nexport const selectContentSchema = createSelectSchema(content);\n\nexport const insertMediaSchema = createInsertSchema(media, {\n filename: (schema: any) => schema.min(1),\n originalName: (schema: any) => schema.min(1),\n mimeType: (schema: any) => schema.min(1),\n size: (schema: any) => schema.positive(),\n r2Key: (schema: any) => schema.min(1),\n publicUrl: (schema: any) => schema.url(),\n folder: (schema: any) => schema.min(1),\n});\n\nexport const selectMediaSchema = createSelectSchema(media);\n\n\nexport const insertWorkflowHistorySchema = createInsertSchema(workflowHistory, {\n action: (schema: any) => schema.min(1),\n fromStatus: (schema: any) => schema.min(1),\n toStatus: (schema: any) => schema.min(1),\n});\n\nexport const selectWorkflowHistorySchema = createSelectSchema(workflowHistory);\n\nexport const insertPluginSchema = createInsertSchema(plugins, {\n name: (schema: any) => schema.min(1),\n displayName: (schema: any) => schema.min(1),\n version: (schema: any) => schema.min(1),\n author: (schema: any) => schema.min(1),\n category: (schema: any) => schema.min(1),\n});\n\nexport const selectPluginSchema = createSelectSchema(plugins);\n\nexport const insertPluginHookSchema = createInsertSchema(pluginHooks, {\n hookName: (schema: any) => schema.min(1),\n handlerName: (schema: any) => schema.min(1),\n});\n\nexport const selectPluginHookSchema = createSelectSchema(pluginHooks);\n\nexport const insertPluginRouteSchema = createInsertSchema(pluginRoutes, {\n path: (schema: any) => schema.min(1),\n method: (schema: any) => schema.min(1),\n handlerName: (schema: any) => schema.min(1),\n});\n\nexport const selectPluginRouteSchema = createSelectSchema(pluginRoutes);\n\nexport const insertPluginAssetSchema = createInsertSchema(pluginAssets, {\n assetType: (schema: any) => schema.min(1),\n assetPath: (schema: any) => schema.min(1),\n});\n\nexport const selectPluginAssetSchema = createSelectSchema(pluginAssets);\n\nexport const insertPluginActivityLogSchema = createInsertSchema(pluginActivityLog, {\n action: (schema: any) => schema.min(1),\n});\n\nexport const selectPluginActivityLogSchema = createSelectSchema(pluginActivityLog);\n\n// System logs table for comprehensive logging\nexport const systemLogs = sqliteTable('system_logs', {\n id: text('id').primaryKey(),\n level: text('level').notNull(), // 'debug', 'info', 'warn', 'error', 'fatal'\n category: text('category').notNull(), // 'auth', 'api', 'workflow', 'plugin', 'media', 'system', etc.\n message: text('message').notNull(),\n data: text('data', { mode: 'json' }), // Additional structured data\n userId: text('user_id').references(() => authUser.id),\n sessionId: text('session_id'),\n requestId: text('request_id'),\n ipAddress: text('ip_address'),\n userAgent: text('user_agent'),\n method: text('method'), // HTTP method for API logs\n url: text('url'), // Request URL for API logs\n statusCode: integer('status_code'), // HTTP status code for API logs\n duration: integer('duration'), // Request duration in milliseconds\n stackTrace: text('stack_trace'), // Error stack trace for error logs\n tags: text('tags', { mode: 'json' }), // Array of tags for categorization\n source: text('source'), // Source component/module that generated the log\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n// Log configuration table\nexport const logConfig = sqliteTable('log_config', {\n id: text('id').primaryKey(),\n category: text('category').notNull().unique(),\n enabled: integer('enabled', { mode: 'boolean' }).notNull().default(true),\n level: text('level').notNull().default('info'), // minimum log level to store\n retention: integer('retention').notNull().default(30), // days to keep logs\n maxSize: integer('max_size').default(10000), // max number of logs per category\n createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n updatedAt: integer('updated_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),\n});\n\n// Insert and select schemas for system logs\nexport const insertSystemLogSchema = createInsertSchema(systemLogs, {\n level: (schema: any) => schema.min(1),\n category: (schema: any) => schema.min(1),\n message: (schema: any) => schema.min(1),\n});\n\nexport const selectSystemLogSchema = createSelectSchema(systemLogs);\n\nexport const insertLogConfigSchema = createInsertSchema(logConfig, {\n category: (schema: any) => schema.min(1),\n level: (schema: any) => schema.min(1),\n});\n\nexport const selectLogConfigSchema = createSelectSchema(logConfig);\n\n// Email log: one row per send attempt through the core EmailService.\n// Timestamps are plain epoch-ms integers (not Drizzle `timestamp` mode) because\n// the EmailService writes them via raw SQL; keeping the column type plain avoids\n// a seconds/ms mismatch between the raw insert and Drizzle reads.\nexport const emailLog = sqliteTable('email_log', {\n id: text('id').primaryKey(),\n toEmail: text('to_email').notNull(), // comma-joined recipients\n fromEmail: text('from_email').notNull(),\n subject: text('subject').notNull(),\n status: text('status').notNull().default('pending'), // 'pending' | 'sent' | 'failed'\n provider: text('provider'), // 'resend' | 'sendgrid' | 'console' | custom\n providerId: text('provider_id'), // provider-side message id\n error: text('error'),\n flow: text('flow'), // 'password-reset' | 'otp' | 'magic-link' | 'welcome' | 'test' | ...\n metadata: text('metadata', { mode: 'json' }),\n failedAtSend: integer('failed_at_send'), // epoch ms; set when the send failed immediately\n deliveryState: text('delivery_state'), // populated by the reconciliation cron\n deliverySyncedAt: integer('delivery_synced_at'), // epoch ms; reconciliation sync marker\n createdAt: integer('created_at').notNull(), // epoch ms\n});\n\nexport const insertEmailLogSchema = createInsertSchema(emailLog);\nexport const selectEmailLogSchema = createSelectSchema(emailLog);\n\n// Type exports\nexport type AuthUser = typeof authUser.$inferSelect;\nexport type User = typeof authUser.$inferSelect;\nexport type NewUser = typeof authUser.$inferInsert;\n// Collection type aliases removed with the `collections` table — see\n// drop-db-collections plan PR 4. Use CollectionConfig from\n// `types/collection-config.ts` or CollectionRecord from\n// `services/collection-registry.ts`.\nexport type Content = typeof content.$inferSelect;\nexport type NewContent = typeof content.$inferInsert;\nexport type Media = typeof media.$inferSelect;\nexport type NewMedia = typeof media.$inferInsert;\nexport type WorkflowHistory = typeof workflowHistory.$inferSelect;\nexport type NewWorkflowHistory = typeof workflowHistory.$inferInsert;\nexport type Plugin = typeof plugins.$inferSelect;\nexport type NewPlugin = typeof plugins.$inferInsert;\nexport type PluginHook = typeof pluginHooks.$inferSelect;\nexport type NewPluginHook = typeof pluginHooks.$inferInsert;\nexport type PluginRoute = typeof pluginRoutes.$inferSelect;\nexport type NewPluginRoute = typeof pluginRoutes.$inferInsert;\nexport type PluginAsset = typeof pluginAssets.$inferSelect;\nexport type NewPluginAsset = typeof pluginAssets.$inferInsert;\nexport type PluginActivityLog = typeof pluginActivityLog.$inferSelect;\nexport type NewPluginActivityLog = typeof pluginActivityLog.$inferInsert;\nexport type SystemLog = typeof systemLogs.$inferSelect;\nexport type NewSystemLog = typeof systemLogs.$inferInsert;\nexport type LogConfig = typeof logConfig.$inferSelect;\nexport type NewLogConfig = typeof logConfig.$inferInsert;\n\n// =====================================================\n// Security Audit Plugin Tables\n// =====================================================\n\nexport const securityEvents = sqliteTable('security_events', {\n id: text('id').primaryKey(),\n eventType: text('event_type').notNull(),\n severity: text('severity').notNull().default('info'),\n userId: text('user_id'),\n email: text('email'),\n ipAddress: text('ip_address'),\n userAgent: text('user_agent'),\n countryCode: text('country_code'),\n requestPath: text('request_path'),\n requestMethod: text('request_method'),\n details: text('details', { mode: 'json' }),\n fingerprint: text('fingerprint'),\n blocked: integer('blocked').notNull().default(0),\n createdAt: integer('created_at').notNull().$defaultFn(() => Date.now()),\n});\n\nexport const insertSecurityEventSchema = createInsertSchema(securityEvents, {\n eventType: (schema: any) => schema.min(1),\n severity: (schema: any) => schema.min(1),\n});\n\nexport const selectSecurityEventSchema = createSelectSchema(securityEvents);\n\nexport type SecurityEventRecord = typeof securityEvents.$inferSelect;\nexport type NewSecurityEventRecord = typeof securityEvents.$inferInsert;\n\n// =====================================================\n// Form.io Integration Tables\n// =====================================================\n\n// Forms table - stores Form.io form definitions\nexport const forms = sqliteTable('forms', {\n id: text('id').primaryKey(),\n name: text('name').notNull().unique(), // Machine name (e.g., \"contact-form\")\n displayName: text('display_name').notNull(), // Human name (e.g., \"Contact Form\")\n description: text('description'),\n category: text('category').notNull().default('general'), // contact, survey, registration, etc.\n \n // Form.io schema (JSON)\n formioSchema: text('formio_schema', { mode: 'json' }).notNull(), // Complete Form.io JSON schema\n \n // Settings (JSON)\n settings: text('settings', { mode: 'json' }), // emailNotifications, successMessage, etc.\n \n // Status & Management\n isActive: integer('is_active', { mode: 'boolean' }).notNull().default(true),\n isPublic: integer('is_public', { mode: 'boolean' }).notNull().default(true),\n managed: integer('managed', { mode: 'boolean' }).notNull().default(false),\n \n // Metadata\n icon: text('icon'),\n color: text('color'),\n tags: text('tags', { mode: 'json' }), // JSON array\n \n // Stats\n submissionCount: integer('submission_count').notNull().default(0),\n viewCount: integer('view_count').notNull().default(0),\n \n // Ownership\n createdBy: text('created_by').references(() => authUser.id),\n updatedBy: text('updated_by').references(() => authUser.id),\n \n // Timestamps\n createdAt: integer('created_at').notNull(),\n updatedAt: integer('updated_at').notNull(),\n});\n\n// Form submissions table\nexport const formSubmissions = sqliteTable('form_submissions', {\n id: text('id').primaryKey(),\n formId: text('form_id').notNull().references(() => forms.id, { onDelete: 'cascade' }),\n \n // Submission data\n submissionData: text('submission_data', { mode: 'json' }).notNull(), // The actual form data\n \n // Submission metadata\n status: text('status').notNull().default('pending'), // pending, reviewed, approved, rejected, spam\n submissionNumber: integer('submission_number'),\n \n // User information\n userId: text('user_id').references(() => authUser.id),\n userEmail: text('user_email'),\n \n // Tracking\n ipAddress: text('ip_address'),\n userAgent: text('user_agent'),\n referrer: text('referrer'),\n utmSource: text('utm_source'),\n utmMedium: text('utm_medium'),\n utmCampaign: text('utm_campaign'),\n \n // Review/Processing\n reviewedBy: text('reviewed_by').references(() => authUser.id),\n reviewedAt: integer('reviewed_at'),\n reviewNotes: text('review_notes'),\n \n // Flags\n isSpam: integer('is_spam', { mode: 'boolean' }).notNull().default(false),\n isArchived: integer('is_archived', { mode: 'boolean' }).notNull().default(false),\n\n // Content integration\n contentId: text('content_id').references(() => content.id), // Links submission to its content item\n\n // Timestamps\n submittedAt: integer('submitted_at').notNull(),\n updatedAt: integer('updated_at').notNull(),\n});\n\n// Form files table - links submissions to uploaded files\nexport const formFiles = sqliteTable('form_files', {\n id: text('id').primaryKey(),\n submissionId: text('submission_id').notNull().references(() => formSubmissions.id, { onDelete: 'cascade' }),\n mediaId: text('media_id').notNull().references(() => media.id, { onDelete: 'cascade' }),\n fieldName: text('field_name').notNull(), // Form field that uploaded this file\n uploadedAt: integer('uploaded_at').notNull(),\n});\n\n// Zod schemas for validation\nexport const insertFormSchema = createInsertSchema(forms);\nexport const selectFormSchema = createSelectSchema(forms);\nexport const insertFormSubmissionSchema = createInsertSchema(formSubmissions);\nexport const selectFormSubmissionSchema = createSelectSchema(formSubmissions);\nexport const insertFormFileSchema = createInsertSchema(formFiles);\nexport const selectFormFileSchema = createSelectSchema(formFiles);\n\n// TypeScript types\nexport type Form = typeof forms.$inferSelect;\nexport type NewForm = typeof forms.$inferInsert;\nexport type FormSubmission = typeof formSubmissions.$inferSelect;\nexport type NewFormSubmission = typeof formSubmissions.$inferInsert;\nexport type FormFile = typeof formFiles.$inferSelect;\nexport type NewFormFile = typeof formFiles.$inferInsert;\n",null,null,null,null]}
|