import { z } from "zod"; import { type EntityIndex, type EntityJson } from "../types/types"; import { type AbsolutePath } from "../utils/path-utils"; import { type Entity } from "./entity"; export type EntityNamesRecord = Record<"fs" | "fsPlural" | "camel" | "camelPlural" | "capital" | "capitalPlural" | "upper" | "constant", string>; export type TableSpec = { name: string; uniqueIndexes: EntityIndex[]; jsonColumns: string[]; }; declare class EntityManagerClass { private entities; modulePaths: Map; private tableSpecs; isAutoloaded: boolean; autoload(_?: boolean): Promise; schemaValidate(json: unknown): z.ZodError<{ id: string; title: string; table: string; props: ({ type: "boolean" | "integer" | "integer[]" | "bigInteger" | "bigInteger[]" | "boolean[]" | "uuid" | "uuid[]" | "tsvector"; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "string"; name: string; length?: number | undefined; zodFormat?: "uuid" | "email" | "base64" | "base64url" | "hex" | "url" | "httpUrl" | "hostname" | "emoji" | "jwt" | "nanoid" | "cuid" | "cuid2" | "ulid" | "ipv4" | "ipv6" | "mac" | "cidrv4" | "cidrv6" | "hashMd5" | "hashSha1" | "hashSha256" | "hashSha384" | "hashSha512" | "isoDate" | "isoTime" | "isoDatetime" | "isoDuration" | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "string[]"; name: string; length?: number | undefined; zodFormat?: "uuid" | "email" | "base64" | "base64url" | "hex" | "url" | "httpUrl" | "hostname" | "emoji" | "jwt" | "nanoid" | "cuid" | "cuid2" | "ulid" | "ipv4" | "ipv6" | "mac" | "cidrv4" | "cidrv6" | "hashMd5" | "hashSha1" | "hashSha256" | "hashSha384" | "hashSha512" | "isoDate" | "isoTime" | "isoDatetime" | "isoDuration" | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "enum"; id: string; name: string; length?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "enum[]"; id: string; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "number"; name: string; numberType?: "numeric" | "real" | "double precision" | undefined; precision?: number | undefined; scale?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "number[]"; name: string; numberType?: "numeric" | "real" | "double precision" | undefined; precision?: number | undefined; scale?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "date"; name: string; precision?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "date[]"; name: string; precision?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "numeric"; name: string; precision?: number | undefined; scale?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "numeric[]"; name: string; precision?: number | undefined; scale?: number | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "json"; id: string; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "searchText"; sourceColumns: { name: string; caseInsensitive?: boolean | undefined; }[]; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "virtual"; id: string; name: string; virtualType?: "code" | "query" | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "vector"; dimensions: number; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { type: "vector[]"; dimensions: number; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { relationType: "BelongsToOne"; type: "relation"; with: string; name: string; customJoinClause?: string | undefined; useConstraint?: boolean | undefined; onUpdate?: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT" | undefined; onDelete?: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT" | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { relationType: "HasMany"; joinColumn: string; type: "relation"; with: string; name: string; fromColumn?: string | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { relationType: "ManyToMany"; joinTable: string; onUpdate: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT"; onDelete: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT"; type: "relation"; with: string; name: string; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; } | { relationType: "OneToOne"; type: "relation"; with: string; name: string; customJoinClause?: string | undefined; hasJoinColumn?: boolean | undefined; useConstraint?: boolean | undefined; onUpdate?: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT" | undefined; onDelete?: "CASCADE" | "SET NULL" | "NO ACTION" | "SET DEFAULT" | "RESTRICT" | undefined; desc?: string | undefined; nullable?: boolean | undefined; toFilter?: boolean | undefined; dbDefault?: string | number | boolean | undefined; generated?: { type: "STORED" | "VIRTUAL"; expression: string; } | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; })[]; indexes: { type: "unique" | "index" | "hnsw" | "ivfflat"; columns: { name: string; nullsFirst?: boolean | undefined; sortOrder?: "ASC" | "DESC" | undefined; vectorOps?: "vector_cosine_ops" | "vector_ip_ops" | "vector_l2_ops" | undefined; opclass?: string | undefined; }[]; name: string; using?: "btree" | "hash" | "gin" | "gist" | "pgroonga" | undefined; nullsNotDistinct?: boolean | undefined; m?: number | undefined; efConstruction?: number | undefined; lists?: number | undefined; }[]; subsets: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; }>; enums: Record | { values: Record; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; }>; parentId?: string | undefined; cone?: { [x: string]: unknown; note?: string | undefined; tags?: string[] | undefined; fixtureGenerator?: string | undefined; fixtureDefault?: unknown; fixtureStrategy?: "sequence" | undefined; fixtureCompanions?: { entity: string; overrides?: Record | undefined; count?: number | undefined; }[] | undefined; fixtureParentOverrides?: Record | undefined; dataSource?: { strategy: "file" | "sample" | "ids" | "query" | "recent" | "random"; config?: unknown; } | undefined; } | undefined; }> | null; reload(doSilent?: boolean): Promise; register(json: EntityJson, options?: { deferSearchTextJsonSourceValidation?: boolean; }): Promise; validateAllRegisteredSearchTextJsonSources(): Promise; private validateSearchTextJsonSources; private resolveSearchTextJsonSourceType; get(entityId: string): Entity; getByTable(table: string): Entity; exists(entityId: string): boolean; getAllIds(): string[]; getAllEntities(): Entity[]; getAllParentIds(): string[]; getChildrenIds(parentId: string): string[]; setModulePath(key: string, modulePath: string): void; getModulePath(key: string): string; setTableSpec(tableSpec: TableSpec): void; getTableSpec(key: string): TableSpec; getNamesFromId(entityId: string): EntityNamesRecord; /** * EntityId는 Model을 제외한 PascalCase 이름입니다. (ex. "User") * @param filePath * @returns */ getEntityIdFromPath(filePath: AbsolutePath): string; private registerNonEntityTypeModulePaths; private getModulePathFromTypeFilePath; } export declare const EntityManager: EntityManagerClass; export {}; //# sourceMappingURL=entity-manager.d.ts.map