UNPKG

gedcom-ts

Version:

TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.

47 lines (46 loc) 2.73 kB
import type { ReadGed } from "../import/ReadGed"; import type { Person } from "../commons/Person"; import type { CreateActInit } from "../edit/factories"; import { type CreateUnionFamilyOptions } from "./graphOps"; import type { ModelConsistencyIssue } from "./validation"; export type CommandOk<T = void> = { ok: true; value: T; warnings?: ModelConsistencyIssue[]; }; export type CommandFail = { ok: false; issues: ModelConsistencyIssue[]; }; export type CommandResult<T = void> = CommandOk<T> | CommandFail; /** Filtre les problèmes qui bloquent une commande (`severity === "error"`). */ export declare function commandBlockingIssues(issues: readonly ModelConsistencyIssue[]): ModelConsistencyIssue[]; /** Préconditions pour {@link tryAddPersonToReadGed} (sans effet de bord). */ export declare function validateAddPersonCommand(readGed: ReadGed, person: Person): ModelConsistencyIssue[]; /** * Ajoute une personne au graphe après validation des préconditions. * Effets en cas de succès : `mapPersons`, `persons`, lieux, `groupPartners()` (voir {@link addPersonToReadGed}). */ export declare function tryAddPersonToReadGed(readGed: ReadGed, person: Person): CommandResult; /** * Retire une personne par `INDI`. Si absent, `ok: false` et aucune mutation. */ export declare function tryRemovePersonFromReadGedByIndi(readGed: ReadGed, indi: number): CommandResult; /** Préconditions pour rattacher un enfant à une famille. */ export declare function validateLinkChildCommand(readGed: ReadGed, child: Person, familyId: number): ModelConsistencyIssue[]; /** * Rattache `child.FAMC = familyId` puis `groupPartners()`. * Les avertissements (famille sans conjoints) n’empêchent pas la mutation ; ils sont renvoyés dans `warnings`. */ export declare function tryLinkChildToFamily(readGed: ReadGed, child: Person, familyId: number): CommandResult; /** Préconditions pour {@link tryUnlinkChildFromFamily}. */ export declare function validateUnlinkChildCommand(readGed: ReadGed, child: Person): ModelConsistencyIssue[]; /** Retire `FAMC` sur l’enfant puis `groupPartners()`. */ export declare function tryUnlinkChildFromFamily(readGed: ReadGed, child: Person): CommandResult; /** Préconditions pour {@link tryCreateMarriageFamily}. */ export declare function validateCreateMarriageCommand(readGed: ReadGed, spouseA: Person, spouseB: Person): ModelConsistencyIssue[]; /** * Crée une union (nouvel id `F`, actes MARR) après validation. * @returns l’identifiant de famille en cas de succès. */ export declare function tryCreateMarriageFamily(readGed: ReadGed, spouseA: Person, spouseB: Person, init?: CreateActInit | null, unionOptions?: CreateUnionFamilyOptions | null): CommandResult<number>;