@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
301 lines (300 loc) • 14.1 kB
TypeScript
import { z } from 'zod';
import { Decision } from '../raw/debats.js';
/**
* Texte element - clean version
* Note: lienAdt array normalized by cleaner
*/
export declare const TexteCleanSchema: z.ZodType<TexteClean>;
export type TexteClean = {
_?: string;
id_syceron?: string;
stime?: string;
sup?: string;
lienAdt?: TexteClean[];
};
/**
* Orateur element - clean version
*/
export declare const OrateurElementCleanSchema: z.ZodObject<{
nom: z.ZodOptional<z.ZodString>;
id: z.ZodOptional<z.ZodString>;
qualite: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type OrateurElementClean = z.infer<typeof OrateurElementCleanSchema>;
/**
* Orateurs (list of speakers) - clean version
* Note: orateur array normalized by cleaner
*/
export declare const OrateursCleanSchema: z.ZodObject<{
orateur: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodObject<{
nom: z.ZodOptional<z.ZodString>;
id: z.ZodOptional<z.ZodString>;
qualite: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>>;
}, z.core.$strip>;
export type OrateursClean = z.infer<typeof OrateursCleanSchema>;
/**
* Point (recursive structure for debate sections) - clean version
* Note: All arrays normalized by cleaner
*/
export declare const PointCleanSchema: z.ZodType<PointClean>;
export type PointClean = {
id_preparation?: string;
ordre_absolu_seance?: string;
code_grammaire?: string;
sommaire?: string;
id_syceron?: string;
valeur_ptsodj?: string;
nivpoint?: string;
ordinal_prise?: string;
code_style?: string;
code_parole?: string;
valeur?: string;
orateurs?: OrateursClean | OrateurElementClean[] | OrateurElementClean | string;
texte?: TexteClean | string;
paragraphe?: PointClean[];
interExtraction?: PointClean[];
point?: PointClean[];
structure?: string;
id_acteur?: string;
id_mandat?: string;
id_nomination_oe?: string;
id_nomination_op?: string;
orateur?: string;
bibard?: string;
art?: string;
adt?: string;
ssadt?: string;
roledebat?: string;
changementPresidence?: PointClean[];
type_debat?: string;
decision?: Decision;
ouvertureSeance?: PointClean;
nom_orateur?: string;
qualite?: string;
};
/**
* Fin de séance - clean version
*/
export declare const FinSeanceCleanSchema: z.ZodObject<{
point: z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>;
}, z.core.$strip>;
export type FinSeanceClean = z.infer<typeof FinSeanceCleanSchema>;
/**
* Quantièmes (session dates) - clean version
*/
export declare const QuantiemesCleanSchema: z.ZodObject<{
journee: z.ZodString;
session: z.ZodString;
}, z.core.$strip>;
export type QuantiemesClean = z.infer<typeof QuantiemesCleanSchema>;
/**
* Contenu (main debate content) - clean version
* Note: Arrays normalized by cleaner
*/
export declare const ContenuCleanSchema: z.ZodObject<{
quantiemes: z.ZodObject<{
journee: z.ZodString;
session: z.ZodString;
}, z.core.$strip>;
ouvertureSeance: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
point: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>;
finSeance: z.ZodOptional<z.ZodObject<{
point: z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>;
}, z.core.$strip>>;
paragraphe: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
}, z.core.$strip>;
export type ContenuClean = z.infer<typeof ContenuCleanSchema>;
/**
* Titre de structure - clean version
*/
export declare const TitreStructCleanSchema: z.ZodObject<{
id_syceron: z.ZodString;
intitule: z.ZodOptional<z.ZodString>;
sousIntitule: z.ZodOptional<z.ZodString>;
type_debat: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type TitreStructClean = z.infer<typeof TitreStructCleanSchema>;
/**
* Sommaire element (recursive) - clean version
* Note: Arrays normalized by cleaner
*/
export declare const SommaireElementCleanSchema: z.ZodType<SommaireElementClean>;
export type SommaireElementClean = {
valeur_pts_odj?: string;
titreStruct: TitreStructClean;
para?: Array<TexteClean | string | unknown>;
sommaire2?: SommaireElementClean[];
sommaire3?: SommaireElementClean[];
presidentSeance?: TexteClean[];
type_debat?: string;
};
/**
* Sommaire (table of contents) - clean version
* Note: Arrays normalized by cleaner
*/
export declare const SommaireCleanSchema: z.ZodObject<{
presidentSeance: z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>;
sommaire1: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>;
sommaire3: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
sommaire2: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
para: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>>>>;
}, z.core.$strip>;
export type SommaireClean = z.infer<typeof SommaireCleanSchema>;
/**
* Métadonnées (metadata) - clean version
*/
export declare const MetadonneesCleanSchema: z.ZodObject<{
dateSeance: z.ZodString;
dateSeanceJour: z.ZodString;
numSeanceJour: z.ZodString;
numSeance: z.ZodString;
typeAssemblee: z.ZodString;
legislature: z.ZodString;
session: z.ZodString;
nomFichierJo: z.ZodString;
validite: z.ZodString;
etat: z.ZodString;
diffusion: z.ZodString;
version: z.ZodString;
environnement: z.ZodString;
heureGeneration: z.ZodOptional<z.ZodISODateTime>;
sommaire: z.ZodObject<{
presidentSeance: z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>;
sommaire1: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>;
sommaire3: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
sommaire2: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
para: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>>>>;
}, z.core.$strip>;
}, z.core.$strip>;
export type MetadonneesClean = z.infer<typeof MetadonneesCleanSchema>;
/**
* Compte Rendu (single debate transcript) - clean version
* Note: schemaVersion optional (from QuickType types)
*/
export declare const CompteRenduCleanSchema: z.ZodObject<{
schemaVersion: z.ZodOptional<z.ZodString>;
uid: z.ZodString;
seanceRef: z.ZodString;
sessionRef: z.ZodString;
metadonnees: z.ZodObject<{
dateSeance: z.ZodString;
dateSeanceJour: z.ZodString;
numSeanceJour: z.ZodString;
numSeance: z.ZodString;
typeAssemblee: z.ZodString;
legislature: z.ZodString;
session: z.ZodString;
nomFichierJo: z.ZodString;
validite: z.ZodString;
etat: z.ZodString;
diffusion: z.ZodString;
version: z.ZodString;
environnement: z.ZodString;
heureGeneration: z.ZodOptional<z.ZodISODateTime>;
sommaire: z.ZodObject<{
presidentSeance: z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>;
sommaire1: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>;
sommaire3: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
sommaire2: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
para: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>>>>;
}, z.core.$strip>;
}, z.core.$strip>;
contenu: z.ZodObject<{
quantiemes: z.ZodObject<{
journee: z.ZodString;
session: z.ZodString;
}, z.core.$strip>;
ouvertureSeance: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
point: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>;
finSeance: z.ZodOptional<z.ZodObject<{
point: z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>;
}, z.core.$strip>>;
paragraphe: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
}, z.core.$strip>;
videoUrl: z.ZodOptional<z.ZodString>;
videoTimecode: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type CompteRenduClean = z.infer<typeof CompteRenduCleanSchema>;
/**
* ComptesRendus (top-level wrapper) - clean version
*/
export declare const ComptesRendusCleanSchema: z.ZodObject<{
comptesRendus: z.ZodArray<z.ZodObject<{
schemaVersion: z.ZodOptional<z.ZodString>;
uid: z.ZodString;
seanceRef: z.ZodString;
sessionRef: z.ZodString;
metadonnees: z.ZodObject<{
dateSeance: z.ZodString;
dateSeanceJour: z.ZodString;
numSeanceJour: z.ZodString;
numSeance: z.ZodString;
typeAssemblee: z.ZodString;
legislature: z.ZodString;
session: z.ZodString;
nomFichierJo: z.ZodString;
validite: z.ZodString;
etat: z.ZodString;
diffusion: z.ZodString;
version: z.ZodString;
environnement: z.ZodString;
heureGeneration: z.ZodOptional<z.ZodISODateTime>;
sommaire: z.ZodObject<{
presidentSeance: z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>;
sommaire1: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>;
sommaire3: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
sommaire2: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<SommaireElementClean, unknown, z.core.$ZodTypeInternals<SommaireElementClean, unknown>>>>>;
para: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<TexteClean, unknown, z.core.$ZodTypeInternals<TexteClean, unknown>>>>>;
}, z.core.$strip>;
}, z.core.$strip>;
contenu: z.ZodObject<{
quantiemes: z.ZodObject<{
journee: z.ZodString;
session: z.ZodString;
}, z.core.$strip>;
ouvertureSeance: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
point: z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>;
finSeance: z.ZodOptional<z.ZodObject<{
point: z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>;
}, z.core.$strip>>;
paragraphe: z.ZodOptional<z.ZodPipe<z.ZodTransform<unknown[], unknown>, z.ZodArray<z.ZodType<PointClean, unknown, z.core.$ZodTypeInternals<PointClean, unknown>>>>>;
}, z.core.$strip>;
videoUrl: z.ZodOptional<z.ZodString>;
videoTimecode: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
}, z.core.$strip>;
export type ComptesRendusClean = z.infer<typeof ComptesRendusCleanSchema>;
/**
* Parse CompteRendu from JSON string
*/
export declare function parseCompteRenduClean(json: string): CompteRenduClean;
/**
* Parse ComptesRendus from JSON string
*/
export declare function parseComptesRendusClean(json: string): ComptesRendusClean;
/**
* Serialize CompteRendu to JSON string
*/
export declare function compteRenduCleanToJson(value: CompteRenduClean): string;
/**
* Serialize ComptesRendus to JSON string
*/
export declare function comptesRendusCleanToJson(value: ComptesRendusClean): string;
/**
* File-specific Convert object matching Quicktype's Convert class API
*
* @example
* ```typescript
* import { DebatsCleanConvert } from "@tricoteuses/assemblee/zod"
*
* const compteRendu = DebatsCleanConvert.toCompteRendu(json)
* const json = DebatsCleanConvert.compteRenduToJson(compteRendu)
* ```
*/
export declare const DebatsCleanConvert: {
toCompteRendu: typeof parseCompteRenduClean;
compteRenduToJson: typeof compteRenduCleanToJson;
toComptesRendus: typeof parseComptesRendusClean;
comptesRendusToJson: typeof comptesRendusCleanToJson;
};