/** * Prisma Schema Parser * Extracts model information from Prisma schema files */ import type { Field, Model, Schema } from '../types/schema.js'; export type PrismaField = Field; export type PrismaModel = Model; export type PrismaSchema = Schema; export declare function parsePrismaSchema(schemaPath: string): PrismaSchema; export declare function parseSchemaContent(content: string): PrismaSchema; /** * Un champ est-il sensible par son nom ? Prédicat UNIQUE, partagé par * `getDisplayFields` (liste) et par le module de recherche/filtre * (`query/listQuery.ts`) — sans ce partage, les deux heuristiques * divergeraient tôt ou tard et un champ masqué de la liste redeviendrait * cherchable/filtrable par URL forgée. */ export declare function isSensitiveFieldName(name: string): boolean; /** * Restreint `isSensitiveFieldName` aux colonnes de texte, pour le chemin * formulaire/écriture. * * Le prédicat de nom matche par sous-chaîne : sans le filtre de type, un * `tokenCount` ou un `hashtagCount` (`Int`) serait traité comme un secret et * deviendrait impossible à éditer dans l'admin. Un mot de passe, un secret, * un token sont du texte ; un compteur ne l'est pas. * * Volontairement plus étroit que `isSensitiveFieldName` seul, qui reste le * prédicat utilisé pour l'affichage, la recherche, les filtres et l'audit : * là, ne pas montrer un `tokenCount` est sans conséquence, alors qu'ici ça * retirerait une capacité. */ export declare function isSensitiveStringField(field: Pick): boolean; /** * Get display fields for a model (fields suitable for list view) */ export declare function getDisplayFields(model: Pick): PrismaField[];