import xlsx from "xlsx"; import { Semaphore } from "@chriscdn/promise-semaphore"; import { différenceTableaux, donnéesTableauExportation, élémentBdListeDonnées, élémentDonnées } from "./tableaux.js"; import { RecursivePartial, TraducsNom, schémaFonctionOublier, schémaFonctionSuivi, schémaStatut, élémentsBd } from "./types.js"; import { Constellation } from "./client.js"; import { ComposanteClientListe } from "./composanteClient.js"; import type { ÉpingleBd, ÉpingleFavorisAvecId } from "./favoris.js"; import type { objRôles } from "./acc\u00E8s/types.js"; import type { JSONSchemaType } from "ajv"; export interface schémaSpécificationBd { licence: string; licenceContenu?: string; métadonnées?: string; motsClefs?: string[]; nuées?: string[]; statut?: schémaStatut; tableaux: { cols: { idColonne: string; idVariable?: string; index?: boolean; optionnelle?: boolean; }[]; clef: string; }[]; } export interface infoScore { accès?: number; couverture?: number; valide?: number; licence?: number; total: number; } export type donnéesBdExportation = { nomBd: string; tableaux: donnéesTableauExportation[]; }; export interface donnéesBdExportées { doc: xlsx.WorkBook; fichiersSFIP: Set; nomFichier: string; } export type schémaCopiéDe = { id: string; }; export type structureBdBd = { type: string; licence: string; licenceContenu?: string; image?: string; métadonnées?: string; noms: string; descriptions: string; tableaux: string; motsClefs: string; nuées: string; statut: schémaStatut; copiéDe?: schémaCopiéDe; }; export type différenceBds = différenceBDTableauSupplémentaire | différenceBDTableauManquant | différenceTableauxBds; export type différenceBDTableauManquant = { type: "tableauManquant"; sévère: true; clefManquante: string; }; export type différenceBDTableauSupplémentaire = { type: "tableauSupplémentaire"; sévère: false; clefExtra: string; }; export type différenceTableauxBds = { type: "tableau"; sévère: T["sévère"]; idTableau: string; différence: T; }; export type infoTableauAvecId = { clef: string; id: string; }; export declare const schémaInfoTableau: JSONSchemaType<{ clef: string; }>; export declare const schémaBdTableauxDeBd: JSONSchemaType<{ [idTableau: string]: { clef: string; }; }>; export declare const MAX_TAILLE_IMAGE: number; export declare const MAX_TAILLE_IMAGE_VIS: number; export declare class BDs extends ComposanteClientListe { verrouBdUnique: Semaphore; constructor({ client }: { client: Constellation; }); suivreRésolutionÉpingle({ épingle, f, }: { épingle: ÉpingleFavorisAvecId<ÉpingleBd>; f: schémaFonctionSuivi>; }): Promise; suivreBds({ f, idCompte, }: { f: schémaFonctionSuivi; idCompte?: string; }): Promise; créerBd({ licence, licenceContenu, épingler, }: { licence: string; licenceContenu?: string; épingler?: boolean; }): Promise; créerBdDeNuée({ idNuée, licence, licenceContenu, épingler, }: { idNuée: string; licence: string; licenceContenu?: string; épingler?: boolean; }): Promise; ajouterÀMesBds({ idBd }: { idBd: string; }): Promise; enleverDeMesBds({ idBd }: { idBd: string; }): Promise; épinglerBd({ idBd, options, }: { idBd: string; options?: RecursivePartial<ÉpingleBd>; }): Promise; suivreÉpingleBd({ idBd, f, idCompte, }: { idBd: string; f: schémaFonctionSuivi<ÉpingleBd | undefined>; idCompte?: string; }): Promise; copierBd({ idBd, copierDonnées, }: { idBd: string; copierDonnées?: boolean; }): Promise; créerBdDeSchéma({ schéma, épingler, }: { schéma: schémaSpécificationBd; épingler?: boolean; }): Promise; _confirmerPermission({ idBd }: { idBd: string; }): Promise; suivreParent({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi<{ id: string; } | undefined>; }): Promise; suivreNuéesBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; rechercherBdsParMotsClefs({ motsClefs, f, idCompte, }: { motsClefs: string[]; f: schémaFonctionSuivi; idCompte?: string; }): Promise; rechercherBdsParNuée({ idNuée, f, idCompte, }: { idNuée: string; f: schémaFonctionSuivi; idCompte?: string; }): Promise; combinerBds({ idBdBase, idBd2, patience, }: { idBdBase: string; idBd2: string; patience?: number; }): Promise; suivreIdTableauParClef({ idBd, clef, f, }: { idBd: string; clef: string; f: schémaFonctionSuivi; }): Promise; suivreClefTableauParId({ idBd, idTableau, f, }: { idBd: string; idTableau: string; f: schémaFonctionSuivi; }): Promise; suivreBdUnique({ schéma, idNuéeUnique, f, }: { schéma: schémaSpécificationBd; idNuéeUnique: string; f: schémaFonctionSuivi; }): Promise; suivreIdTableauParClefDeBdUnique({ schémaBd, idNuéeUnique, clefTableau, f, }: { schémaBd: schémaSpécificationBd; idNuéeUnique: string; clefTableau: string; f: schémaFonctionSuivi; }): Promise; suivreDonnéesDeTableauUnique({ schémaBd, idNuéeUnique, clefTableau, f, }: { schémaBd: schémaSpécificationBd; idNuéeUnique: string; clefTableau: string; f: schémaFonctionSuivi<élémentDonnées[]>; }): Promise; ajouterÉlémentÀTableauUnique({ schémaBd, idNuéeUnique, clefTableau, vals, }: { schémaBd: schémaSpécificationBd; idNuéeUnique: string; clefTableau: string; vals: T | T[]; }): Promise; modifierÉlémentDeTableauUnique({ vals, schémaBd, idNuéeUnique, clefTableau, idÉlément, }: { vals: { [key: string]: élémentsBd | undefined; }; schémaBd: schémaSpécificationBd; idNuéeUnique: string; clefTableau: string; idÉlément: string; }): Promise; effacerÉlémentDeTableauUnique({ schémaBd, idNuéeUnique, clefTableau, idÉlément, }: { schémaBd: schémaSpécificationBd; idNuéeUnique: string; clefTableau: string; idÉlément: string; }): Promise; suivreDonnéesDeTableauParClef({ idBd, clefTableau, f, }: { idBd: string; clefTableau: string; f: schémaFonctionSuivi<élémentDonnées[]>; }): Promise; ajouterÉlémentÀTableauParClef({ idBd, clefTableau, vals, }: { idBd: string; clefTableau: string; vals: T | T[]; }): Promise; modifierÉlémentDeTableauParClef({ idBd, clefTableau, idÉlément, vals, }: { idBd: string; clefTableau: string; idÉlément: string; vals: { [key: string]: élémentsBd | undefined; }; }): Promise; effacerÉlémentDeTableauParClef({ idBd, clefTableau, idÉlément, }: { idBd: string; clefTableau: string; idÉlément: string; }): Promise; sauvegarderMétadonnéesBd({ idBd, métadonnées, }: { idBd: string; métadonnées: { [key: string]: élémentsBd; }; }): Promise; sauvegarderMétadonnéeBd({ idBd, clef, métadonnée, }: { idBd: string; clef: string; métadonnée: string; }): Promise; effacerMétadonnéeBd({ idBd, clef, }: { idBd: string; clef: string; }): Promise; suivreMétadonnéesBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi<{ [key: string]: élémentsBd; }>; }): Promise; sauvegarderNomsBd({ idBd, noms, }: { idBd: string; noms: { [key: string]: string; }; }): Promise; sauvegarderNomBd({ idBd, langue, nom, }: { idBd: string; langue: string; nom: string; }): Promise; effacerNomBd({ idBd, langue, }: { idBd: string; langue: string; }): Promise; sauvegarderDescriptionsBd({ idBd, descriptions, }: { idBd: string; descriptions: { [key: string]: string; }; }): Promise; sauvegarderDescriptionBd({ idBd, langue, description, }: { idBd: string; langue: string; description: string; }): Promise; effacerDescriptionBd({ idBd, langue, }: { idBd: string; langue: string; }): Promise; changerLicenceBd({ idBd, licence, }: { idBd: string; licence: string; }): Promise; changerLicenceContenuBd({ idBd, licenceContenu, }: { idBd: string; licenceContenu?: string; }): Promise; ajouterMotsClefsBd({ idBd, idsMotsClefs, }: { idBd: string; idsMotsClefs: string | string[]; }): Promise; effacerMotClefBd({ idBd, idMotClef, }: { idBd: string; idMotClef: string; }): Promise; rejoindreNuées({ idBd, idsNuées, }: { idBd: string; idsNuées: string | string[]; }): Promise; quitterNuée({ idBd, idNuée, }: { idBd: string; idNuée: string; }): Promise; réordonnerTableauBd({ idBd, idTableau, position, }: { idBd: string; idTableau: string; position: number; }): Promise; ajouterTableauBd({ idBd, clefTableau, }: { idBd: string; clefTableau?: string; }): Promise; effacerTableauBd({ idBd, idTableau, }: { idBd: string; idTableau: string; }): Promise; spécifierClefTableau({ idBd, idTableau, clef, }: { idBd: string; idTableau: string; clef: string; }): Promise; changerStatutBd({ idBd, statut, }: { idBd: string; statut: schémaStatut; }): Promise; suivreStatutBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; marquerObsolète({ idBd, idNouvelle, }: { idBd: string; idNouvelle?: string; }): Promise; marquerActive({ idBd }: { idBd: string; }): Promise; marquerJouet({ idBd }: { idBd: string; }): Promise; marquerInterne({ idBd }: { idBd: string; }): Promise; suivreLicenceBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreLicenceContenuBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; inviterAuteur({ idBd, idCompteAuteur, rôle, }: { idBd: string; idCompteAuteur: string; rôle: keyof objRôles; }): Promise; sauvegarderImage({ idBd, image, }: { idBd: string; image: { contenu: Uint8Array; nomFichier: string; }; }): Promise; effacerImage({ idBd }: { idBd: string; }): Promise; suivreImage({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi<{ image: Uint8Array; idImage: string; } | null>; }): Promise; suivreNomsBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi<{ [key: string]: string; }>; }): Promise; suivreDescriptionsBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi<{ [key: string]: string; }>; }): Promise; suivreMotsClefsBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreTableauxBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreNomsTableau({ idBd, idTableau, f, }: { idBd: string; idTableau: string; f: schémaFonctionSuivi; }): Promise; suivreScoreAccèsBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreScoreCouvertureBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreScoreValideBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreQualitéBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreVariablesBd({ idBd, f, }: { idBd: string; f: schémaFonctionSuivi; }): Promise; suivreDonnéesExportation({ idBd, langues, f, }: { idBd: string; langues?: string[]; f: schémaFonctionSuivi; }): Promise; exporterDonnées({ idBd, langues, nomFichier, patience, }: { idBd: string; langues?: string[]; nomFichier?: string; patience?: number; }): Promise; documentDonnéesÀFichier({ données, formatDoc, dossier, inclureDocuments, }: { données: donnéesBdExportées; formatDoc: xlsx.BookType | "xls"; dossier?: string; inclureDocuments?: boolean; }): Promise; exporterBdÀFichier({ idBd, langues, nomFichier, patience, formatDoc, dossier, inclureDocuments, }: { idBd: string; langues?: string[]; nomFichier?: string; patience?: number; formatDoc: xlsx.BookType | "xls"; dossier?: string; inclureDocuments?: boolean; }): Promise; effacerBd({ idBd }: { idBd: string; }): Promise; }