diff --git a/dbal/development/src/core/entities/operations/core/workflow-operations.ts b/dbal/development/src/core/entities/operations/core/workflow-operations.ts index 7d73b2021..daaddf21c 100644 --- a/dbal/development/src/core/entities/operations/core/workflow-operations.ts +++ b/dbal/development/src/core/entities/operations/core/workflow-operations.ts @@ -65,7 +65,7 @@ const withWorkflowDefaults = (data: CreateWorkflowInput): Workflow => { id: data.id ?? randomUUID(), tenantId: data.tenantId ?? null, name: data.name, - description: data.description, + description: data.description ?? null, nodes: data.nodes, edges: data.edges, enabled: data.enabled, diff --git a/dbal/development/src/core/foundation/types/auth/index.ts b/dbal/development/src/core/foundation/types/auth/index.ts index 15d145153..5b229f7e8 100644 --- a/dbal/development/src/core/foundation/types/auth/index.ts +++ b/dbal/development/src/core/foundation/types/auth/index.ts @@ -4,6 +4,7 @@ export type Credential = GeneratedCredential export type Session = GeneratedSession export interface CreateSessionInput { + [key: string]: unknown id?: string userId: string token: string diff --git a/dbal/development/src/core/foundation/types/automation/index.ts b/dbal/development/src/core/foundation/types/automation/index.ts index 0ef3fe4d8..d337af30e 100644 --- a/dbal/development/src/core/foundation/types/automation/index.ts +++ b/dbal/development/src/core/foundation/types/automation/index.ts @@ -3,9 +3,11 @@ import type { Workflow as GeneratedWorkflow } from '../types.generated' export type Workflow = GeneratedWorkflow export interface CreateWorkflowInput { + [key: string]: unknown id?: string + tenantId?: string | null name: string - description?: string + description?: string | null nodes: string edges: string enabled: boolean @@ -13,13 +15,13 @@ export interface CreateWorkflowInput { createdAt?: bigint | null updatedAt?: bigint | null createdBy?: string | null - tenantId?: string | null } export interface UpdateWorkflowInput { [key: string]: unknown + tenantId?: string | null name?: string - description?: string + description?: string | null nodes?: string edges?: string enabled?: boolean @@ -27,5 +29,4 @@ export interface UpdateWorkflowInput { createdAt?: bigint | null updatedAt?: bigint | null createdBy?: string | null - tenantId?: string | null } diff --git a/dbal/development/src/core/foundation/types/content/index.ts b/dbal/development/src/core/foundation/types/content/index.ts index dfc80eafa..36f1a3fc5 100644 --- a/dbal/development/src/core/foundation/types/content/index.ts +++ b/dbal/development/src/core/foundation/types/content/index.ts @@ -3,6 +3,7 @@ import type { PageConfig as GeneratedPageConfig, ComponentNode as GeneratedCompo export type PageConfig = GeneratedPageConfig export interface CreatePageInput { + [key: string]: unknown id?: string tenantId?: string | null packageId?: string | null @@ -49,6 +50,7 @@ export interface UpdatePageInput { export type ComponentNode = GeneratedComponentNode export interface CreateComponentNodeInput { + [key: string]: unknown id?: string type: string parentId?: string | null diff --git a/dbal/development/src/core/foundation/types/packages/index.ts b/dbal/development/src/core/foundation/types/packages/index.ts index e3edcc4db..2bf08fbbe 100644 --- a/dbal/development/src/core/foundation/types/packages/index.ts +++ b/dbal/development/src/core/foundation/types/packages/index.ts @@ -3,6 +3,7 @@ import type { InstalledPackage as GeneratedInstalledPackage } from '../types.gen export type InstalledPackage = GeneratedInstalledPackage export interface CreatePackageInput { + [key: string]: unknown packageId: string tenantId?: string | null installedAt?: bigint @@ -12,6 +13,7 @@ export interface CreatePackageInput { } export interface UpdatePackageInput { + [key: string]: unknown tenantId?: string | null installedAt?: bigint version?: string diff --git a/dbal/development/src/core/foundation/types/users/index.ts b/dbal/development/src/core/foundation/types/users/index.ts index fc32b1738..02c88c0e2 100644 --- a/dbal/development/src/core/foundation/types/users/index.ts +++ b/dbal/development/src/core/foundation/types/users/index.ts @@ -5,6 +5,7 @@ export type UserRole = 'public' | 'user' | 'moderator' | 'admin' | 'god' | 'supe export type User = GeneratedUser export interface CreateUserInput { + [key: string]: unknown id?: string username: string email: string diff --git a/frontends/nextjs/src/app/api/v1/[...slug]/route.ts b/frontends/nextjs/src/app/api/v1/[...slug]/route.ts index 48853e2b2..41000e648 100644 --- a/frontends/nextjs/src/app/api/v1/[...slug]/route.ts +++ b/frontends/nextjs/src/app/api/v1/[...slug]/route.ts @@ -58,9 +58,9 @@ async function handleRequest( // Type-safe user with required fields const user = rawUser !== null ? { - id: String(rawUser.id ?? ''), - role: String(rawUser.role ?? 'public'), - tenantId: rawUser.tenantId !== undefined && rawUser.tenantId !== null ? String(rawUser.tenantId) : null, + id: typeof rawUser.id === 'string' ? rawUser.id : '', + role: typeof rawUser.role === 'string' ? rawUser.role : 'public', + tenantId: typeof rawUser.tenantId === 'string' ? rawUser.tenantId : null, } : null // 3. Validate package exists and user has required level diff --git a/frontends/nextjs/src/app/layout.tsx b/frontends/nextjs/src/app/layout.tsx index 1c27e0719..1360de94c 100644 --- a/frontends/nextjs/src/app/layout.tsx +++ b/frontends/nextjs/src/app/layout.tsx @@ -74,7 +74,8 @@ export default async function RootLayout({ children }: { children: React.ReactNo /> - + {/* TODO: Fix PackageStyleLoader to work with server-only compiler or create API route */} + {/* */} {/* Render a simple header/footer when package metadata is available */} {headerName !== undefined && headerName.length > 0 ? ( diff --git a/frontends/nextjs/src/lib/compiler/index.ts b/frontends/nextjs/src/lib/compiler/index.ts index 0bfb01b19..61a3f54e1 100644 --- a/frontends/nextjs/src/lib/compiler/index.ts +++ b/frontends/nextjs/src/lib/compiler/index.ts @@ -2,6 +2,7 @@ * Compiler utilities */ +import 'server-only' import { promises as fs } from 'fs' import path from 'path' diff --git a/frontends/nextjs/src/lib/config/prisma.ts b/frontends/nextjs/src/lib/config/prisma.ts index de7c0a3c9..fa5cba197 100644 --- a/frontends/nextjs/src/lib/config/prisma.ts +++ b/frontends/nextjs/src/lib/config/prisma.ts @@ -2,8 +2,8 @@ * Prisma Client singleton instance * Prevents multiple instances in development with hot reloading */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ + + /* eslint-disable @typescript-eslint/no-redundant-type-constituents */ // Prisma client types are generated; when they resolve as error types in linting, // these assignments/calls are safe for runtime but look unsafe to the linter. @@ -40,6 +40,7 @@ const createIntegrationPrisma = (): PrismaClient => { if (globalForPrisma.prismaTestDb === undefined) { globalForPrisma.prismaTestDb = new Database(':memory:') } + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument const adapter = new PrismaBetterSqlite3(globalForPrisma.prismaTestDb) return new PrismaClient({ adapter }) } diff --git a/frontends/nextjs/src/main.scss b/frontends/nextjs/src/main.scss index 48aa6f686..245e9906c 100644 --- a/frontends/nextjs/src/main.scss +++ b/frontends/nextjs/src/main.scss @@ -2,10 +2,19 @@ // Main SCSS Entry Point // ======================================== -// Import FakeMUI base styles -@import '../../fakemui/styles/base.scss'; -@import '../../fakemui/styles/components.scss'; +// TODO: Fix SCSS imports - causing build errors +// @use './styles/core/theme.scss' as *; +// @use './styles/variables.scss' as *; +// @import '../../fakemui/styles/base.scss'; +// @import '../../fakemui/styles/components.scss'; -// Theme & Variables (keep for any additional custom variables) -@use './styles/core/theme.scss' as *; -@use './styles/variables.scss' as *; +// Minimal styles for now +body { + margin: 0; + padding: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +}