UNPKG

@tricoteuses/assemblee

Version:

Retrieve, clean up & handle French Assemblée nationale's open data

1,202 lines 65.1 kB
import { C as e, D as t, E as n, S as r, T as i, b as a, w as o, x as s } from "./amendements-D3Jr9MQa.js"; import { z as c } from "zod"; //#region src/legislatures.ts var l = /* @__PURE__ */ function(e) { return e[e.Quatorze = 14] = "Quatorze", e[e.Quinze = 15] = "Quinze", e[e.Seize = 16] = "Seize", e[e.DixSept = 17] = "DixSept", e[e.DixHuit = 18] = "DixHuit", e[e.All = 0] = "All", e; }({}), ee = [ l.Quatorze, l.Quinze, l.Seize, l.DixSept, l.DixHuit ], te = /* @__PURE__ */ "API.ASSEMBLEE.BUREAU.CIRCONSCRIPTION.CJR.CMP.CNPE.CNPS.COMNL.COMPER.COMSENAT.COMSPSENAT.CONFPT.CONSTITU.DELEG.DELEGBUREAU.DELEGSENAT.GA.GE.GEVI.GOUVERNEMENT.GP.GROUPESENAT.HCJ.MINISTERE.MISAPPL.MISEVAL.MISGRTR.MISINFO.MISINFOCOM.MISINFOPRE.OFFPAR.ORGAINT.ORGEXTPARL.PARPOL.PRESREP.SENAT".split("."), u = c.enum(te), ne = ["M.", "Mme"], d = c.enum(ne).meta({ description: "Civilité" }), re = [ "H", "M", "O", "T" ], ie = c.enum(re), ae = /* @__PURE__ */ "Ain.Aisne.Allier.Alpes-de-Haute-Provence.Alpes-Maritimes.Ardennes.Ardèche.Ariège.Aube.Aude.Aveyron.Bas-Rhin.Bouches-du-Rhône.Calvados.Cantal.Charente.Charente-Maritime.Cher.Comores.Corrèze.Corse.Corse-du-Sud.Creuse.Côte-d'Or.Côtes-d'Armor.Côtes-du-Nord.Deux-Sèvres.Dordogne.Doubs.Drôme.Essonne.Eure.Eure-et-Loir.Finistère.Français établis hors de France.Gard.Gers.Gironde.Guadeloupe.Guyane.Haut-Rhin.Haute-Corse.Haute-Garonne.Haute-Loire.Haute-Marne.Haute-Savoie.Haute-Saône.Haute-Vienne.Hautes-Alpes.Hautes-Pyrénées.Hauts-de-Seine.Hérault.Ille-et-Vilaine.Indre.Indre-et-Loire.Isère.Jura.Landes.Loir-et-Cher.Loire.Loire-Atlantique.Loiret.Lot.Lot-et-Garonne.Lozère.Maine-et-Loire.Manche.Marne.Martinique.Mayenne.Mayotte.Meurthe-et-Moselle.Meuse.Morbihan.Moselle.Nièvre.Nord.Nouvelle-Calédonie.Oise.Orne.Paris.Pas-de-Calais.Polynésie Française.Puy-de-Dôme.Pyrénées-Atlantiques.Pyrénées-Orientales.Rhône.Réunion.Saint-Barthélemy et Saint-Martin.Saint-Martin.Saint-Pierre-et-Miquelon.Sarthe.Savoie.Saône-et-Loire.Seine-et-Marne.Seine-Inférieure.Seine-Maritime.Seine-Saint-Denis.Somme.Tarn.Tarn-et-Garonne.Territoire de Belfort.Val-d'Oise.Val-de-Marne.Var.Vaucluse.Vendée.Vienne.Vosges.Wallis-et-Futuna.Yonne.Yvelines".split("."), f = c.enum(ae), oe = [ "Agriculteurs exploitants", "Artisans, commerçants, chefs d'entreprises", "Artisans, commerçants et chefs d'entreprise", "Autres personnes sans activité professionnelle", "Cadres et professions intellectuelles supérieures", "Employés", "Ouvriers", "Professions intermédiaires", "Professions Intermédiaires", "Retraités", "Sans profession déclarée" ], se = c.enum(oe).meta({ description: "Famille socio professionelle de l'INSEE." }), ce = [ "Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne", "Centre-Val de Loire", "Corse", "Français établis hors de France", "Grand Est", "Guadeloupe", "Guyane", "Hauts-de-France", "Ile-de-France", "Martinique", "Mayotte", "Normandie", "Nouvelle-Aquitaine", "Nouvelle-Calédonie", "Occitanie", "Pays de la Loire", "Polynésie française", "Provence-Alpes-Côte d'Azur", "Réunion", "Saint-Barthélemy et Saint-Martin", "Saint-Pierre-et-Miquelon", "Wallis-et-Futuna" ], le = c.enum(ce), ue = [ "MandatAvecSuppleant_Type", "MandatMission_Type", "MandatParlementaire_type", "MandatSimple_Type" ], de = c.enum(ue), fe = [ "GroupePolitique_type", "OrganeCirconscription_type", "OrganeExterne_Type", "OrganeExtraParlementaire_type", "OrganeParlementaireInternational", "OrganeParlementaire_Type" ], p = c.enum(fe), pe = [ "Majoritaire", "Minoritaire", "Opposition" ], m = c.enum(pe).meta({ description: "Position politique, uniquement pour les groupes politiques (dont le codeType est égal à GP)." }), me = [ "Assemblée consultative provisoire", "Assemblées nationales constituantes", "3ème République", "4ème République", "5ème République" ], h = c.enum(me).meta({ description: "Nom du régime politique républicain sous lequel l'organe a été créé. Le 20 aout 1944 le régime de vichy est remplacé par l'assemblée consultative provisoire. Le 21 octobre 1945 une assemblée constituante est créée et sera remplacée par la {@link https://fr.wikipedia.org/wiki/Quatri%C3%A8me_R%C3%A9publique_(France) | 4ème République} le 27 octobre 1946." }), he = [ "Collectivités d'outre-mer et Nouvelle-Calédonie", "Dom", "Français établis hors de France", "Métropolitain" ], g = c.enum(he).meta({ description: "Type de territoire de la circonscription du député ({@link https://fr.wikipedia.org/wiki/R%C3%A9gion_fran%C3%A7aise | Métropolitain}, {@link https://fr.wikipedia.org/wiki/D%C3%A9partement_et_r%C3%A9gion_d%27outre-mer | Dom}, {@link https://fr.wikipedia.org/wiki/Collectivit%C3%A9_d%27outre-mer | Collectivités d'outre-mer et Nouvelle-Calédonie} ou {@link https://fr.wikipedia.org/wiki/Fran%C3%A7ais_%C3%A9tablis_hors_de_France | Français établis hors de France})" }), ge = c.enum(["IdActeur_type"]), _ = c.object({ "@xmlns:xsi": c.string(), "@xsi:nil": c.string() }), _e = c.object({ "@xmlns:xsi": c.string().optional(), "@xsi:type": ge, "#text": c.string() }), ve = c.object({ civ: d, prenom: c.string(), nom: c.string(), alpha: c.string(), trigramme: c.union([_, c.string()]).nullable().optional() }), ye = c.object({ dateNais: c.union([_, s()]).nullable(), villeNais: c.union([_, c.string()]).nullable().optional(), depNais: c.union([_, f]).nullable().optional(), paysNais: c.union([_, c.string()]).nullable().optional() }), be = c.object({ ident: ve, infoNaissance: ye.optional(), dateDeces: c.union([_, s()]).nullable() }), xe = c.object({ catSocPro: c.union([_, c.string()]).nullable().optional(), famSocPro: c.union([_, se]).nullable().optional() }), Se = c.object({ libelleCourant: c.union([_, c.string()]).nullable().optional(), socProcINSEE: xe.optional() }), Ce = c.object({ adresse: e(c.record(c.string(), c.string().nullable())).optional(), "@xmlns:xsi": c.string().optional(), "@xsi:nil": c.string().optional() }), we = c.object({ codeQualite: c.string().nullable(), libQualite: c.string(), libQualiteSex: c.string().nullable() }), Te = c.object({ organeRef: e(o()) }), Ee = c.object({ dateDebut: r(), dateFin: s().nullable(), suppleantRef: a() }), De = c.object({ suppleant: Ee }), Oe = c.object({ region: le.nullable(), regionType: g.nullable(), departement: f.nullable(), numDepartement: c.string().nullable(), numCirco: c.string().nullable() }), ke = c.object({ lieu: Oe, causeMandat: c.string().nullable(), refCirconscription: c.string().nullable().optional() }), Ae = c.object({ qualite: d.nullable(), prenom: c.string(), nom: c.string(), dateDebut: c.null(), dateFin: c.null() }), je = c.object({ collaborateur: e(Ae) }), Me = c.object({ HATVP_URI: c.null() }), Ne = c.object({ datePriseFonction: s().nullable(), causeFin: c.string().nullable(), premiereElection: c.string().nullable(), placeHemicycle: c.string().nullable(), mandatRemplaceRef: c.string().nullable().optional(), matriculeVote: c.string().nullable().optional() }), Pe = c.object({ "@xmlns:xsi": c.string().optional(), "@xsi:type": de.optional(), uid: t(), acteurRef: a(), legislature: c.string().nullable(), typeOrgane: u, dateDebut: r(), datePublication: s().nullable(), dateFin: s().nullable(), preseance: c.string().nullable(), nominPrincipale: c.string(), infosQualite: we, organes: Te, libelle: c.string().nullable().optional(), missionSuivanteRef: c.string().nullable().optional(), missionPrecedenteRef: c.string().nullable().optional(), suppleants: De.nullable().optional(), chambre: c.null().optional(), election: ke.optional(), InfosHorsSIAN: Me.optional(), mandature: Ne.optional(), collaborateurs: c.union([c.array(c.null()), je]).nullable().optional() }), Fe = c.object({ mandat: e(Pe) }), Ie = c.object({ "@xmlns": c.string().optional(), uid: _e, etatCivil: be, profession: Se, uri_hatvp: c.union([_, c.string()]).nullable().optional(), adresses: Ce.nullable(), mandats: Fe.optional(), "@xmlns:xsi": c.string().optional() }); c.object({ acteur: Ie }); var Le = c.object({ uid: _e, etatCivil: be, uri_hatvp: c.string().nullable().optional(), mandats: Fe }), Re = c.object({ acteur: c.array(Le) }), ze = c.object({ dateDebut: s().nullable(), dateAgrement: s().nullable(), dateFin: s().nullable() }), Be = c.object({ secretaire01: c.string().nullable(), secretaire02: c.string().nullable() }), Ve = c.object({ codeNatureDep: ie.nullable(), code: c.string().nullable(), libelle: f.nullable() }), He = c.object({ type: g.nullable(), libelle: le.nullable() }), Ue = c.object({ region: He, departement: Ve }), We = c.object({ paysRef: e(c.string()) }), Ge = c.object({ "@xmlns": c.string().optional(), "@xmlns:xsi": c.string(), "@xsi:type": p.optional(), uid: t(), codeType: u, libelle: c.string(), libelleEdition: c.string().nullable(), libelleAbrege: c.string(), libelleAbrev: c.string(), viMoDe: ze, organeParent: o().nullable().optional(), organePrecedentRef: o().nullable().optional(), chambre: c.null().optional(), regime: h.nullable().optional(), legislature: c.string().nullable().optional(), regimeJuridique: c.string().nullable().optional(), siteInternet: c.string().nullable().optional(), nombreReunionsAnnuelles: c.string().nullable().optional(), secretariat: Be.optional(), numero: c.string().nullable().optional(), lieu: Ue.optional(), positionPolitique: m.nullable().optional(), preseance: c.string().nullable().optional(), couleurAssociee: c.string().nullable().optional(), listePays: We.nullable().optional() }); c.object({ organe: Ge }); var Ke = c.object({ "@xsi:type": p, uid: t(), codeType: u, libelle: c.string(), libelleEdition: c.string().nullable(), libelleAbrege: c.string(), libelleAbrev: c.string(), viMoDe: ze, regimeJuridique: c.string().nullable().optional(), regime: h.nullable().optional(), legislature: c.string().nullable().optional(), secretariat: Be.optional(), positionPolitique: m.nullable().optional() }), qe = c.object({ organe: c.array(Ke) }), v = c.object({ code: c.string(), libelle: c.string() }), Je = c.object({ type: v, referenceTextuelle: c.string(), references: c.null() }), Ye = c.object({ "@xmlns": c.string(), "@xmlns:xsi": c.string(), uid: t(), chronotag: c.string(), legislature: c.string(), refActeur: a(), dateCreation: r(), datePublication: s(), portee: v, lecture: v, instance: v, cible: Je, explication: c.string().nullable() }); c.object({ deport: Ye }), c.object({ mandat: Pe }); var Xe = c.object({ "@xmlns:xsi": c.string(), organes: qe, acteurs: Re }); c.object({ export: Xe }); //#endregion //#region src/schemas/raw/agendas.ts var Ze = [ "AuditionExterne", "AuditionParPresidentCommission", "AuditionParRapporteur", "Ordinaire" ], y = c.enum(Ze), Qe = ["ODJPR", "ODJSN"], b = c.enum(Qe), $e = ["podjReunion_type", "podjSeanceConfPres_type"], x = c.enum($e), et = [ "absent", "excusé", "présent" ], S = c.enum(et), tt = [ "discussion générale commune", "procédure d'examen simplifiée-Article 103", "procédure d'examen simplifiée-Article 106", "procédure d'examen simplifiée-Article 107", "procédure de législation en commission-Article 107-1" ], nt = c.enum(tt), rt = [ "Deuxième", "Première", "Troisième", "Unique" ], it = c.enum(rt), at = [ "reunionCommission_type", "reunionInitParlementaire_type", "seance_type" ], ot = c.enum(at), st = /* @__PURE__ */ "Amendements (Art. 88),Amendements (Art. 91),Audition,Audition ministre,Audition ministre ouverte à la presse,Audition ouverte à la presse,Communication,Constitution de mission d'information,Discussion,Débat d'initiative parlementaire,Déclaration du Gouvernement suivie d'un débat,Echanges de vues,Examen,Explications de vote des groupes et vote par scrutin public,Explications de vote et vote par scrutin public,Fixation de l'ordre du jour,Nomination bureau,Nomination candidats organisme extraparlementaire,Nomination d'un membre d'une mission d'information,Nomination rapporteur,Nomination rapporteur d'application,Nomination rapporteur d'information,Nomination rapporteur pour avis,Ouverture et clôture de session,Questions au Gouvernement,Questions orales sans débat,Rapport,Rapport d'information,Rapport pour avis,Séances réservées à un groupe de l'opposition ou minoritaire,Suite de la discussion,Table ronde,Vote par scrutin public,Vote solennel".split(","), C = c.enum(st), ct = [ "DEP", "GA", "GE", "GEVI", "GP", "HÉ Aurélien" ], w = c.enum(ct), lt = [ "Annulé", "Confirmé", "Eventuel", "Supprimé" ], ut = c.enum(lt), dt = ["IdActeur_type", "IdPersonneExterne_type"], ft = c.enum(dt), pt = c.object({ creation: c.string(), cloture: c.string().nullable() }), T = c.object({ etat: ut, chrono: pt }), mt = c.object({ dossierRef: e(c.string()) }), ht = c.object({ item: e(c.string()) }), gt = c.object({ "@xsi:type": x, uid: t(), cycleDeVie: T, objet: c.string(), demandeurPoint: c.null(), procedure: nt.nullable(), dossiersLegislatifsRefs: c.union([mt, c.null()]), typePointODJ: C, comiteSecret: c.string(), textesAssocies: c.null(), natureTravauxODJ: b.optional(), dateConfPres: i(), dateLettreMinistre: i() }), _t = c.object({ pointODJ: e(gt) }), vt = c.object({ convocationODJ: ht.nullable(), resumeODJ: ht.nullable(), pointsODJ: _t.nullable().optional() }), yt = c.object({ nom: c.string().nullable(), acteurRef: a() }), bt = c.object({ nom: c.string(), organeRef: o() }), xt = c.object({ acteur: yt.optional(), organe: bt.optional() }), St = c.object({ acteur: e(yt).optional(), organe: bt.optional() }), Ct = c.object({ paysRef: e(c.string()) }), wt = c.object({ estReunionInternationale: c.string(), listePays: Ct.nullable(), informationsComplementaires: c.string().nullable().optional() }), Tt = c.object({ code: c.string().nullable().optional(), libelleCourt: c.string().nullable().optional(), libelleLong: c.string().nullable(), lieuRef: c.string().nullable().optional() }), Et = c.object({ acteurRef: a(), presence: S }), Dt = c.object({ participantInterne: e(Et) }), Ot = c.object({ participantInterne: c.array(Et) }), kt = c.object({ personneAuditionnee: c.array(c.null()).nullable() }), At = c.object({ "@xsi:type": ft, "#text": c.string() }), jt = c.object({ civ: d, prenom: c.string(), nom: c.string(), alpha: i(), trigramme: c.string().nullable().optional() }), Mt = c.object({ uid: At, ident: jt, dateNais: s().nullable() }), Nt = c.object({ personneAuditionnee: e(Mt) }), Pt = c.object({ participantsInternes: c.union([Dt, c.null()]), personnesAuditionnees: c.union([kt, c.null()]) }), Ft = c.object({ participantsInternes: c.union([Ot, c.null()]), personnesAuditionnees: c.union([Nt, c.null()]) }), It = c.object({ numSeanceJO: c.string().nullable(), idJO: c.string().nullable(), quantieme: it, DateSeance: c.string() }), Lt = c.object({ "@xmlns": c.string(), "@xmlns:xsi": c.string(), "@xsi:type": ot, uid: t(), timeStampDebut: r(), timeStampFin: i(), lieu: Tt.optional(), cycleDeVie: T, demandeurs: St.nullable().optional(), organeReuniRef: c.string().nullable(), typeReunion: w.optional(), demandeur: xt.nullable().optional(), participants: Pt.nullable().optional(), visioConference: c.string().nullable().optional(), ODJ: vt.nullable().optional(), sessionRef: c.string().nullable().optional(), ouverturePresse: i(), captationVideo: i(), compteRenduRef: c.string().nullable().optional(), formatReunion: y.optional(), infosReunionsInternationale: wt.optional(), identifiants: It.optional() }); c.object({ reunion: Lt }); var Rt = c.object({ uid: t(), timeStampDebut: r(), timeStampFin: i(), lieu: Tt, cycleDeVie: T, demandeurs: St.nullable().optional(), organeReuniRef: c.string().nullable(), typeReunion: w.optional(), "@xmlns:xsi": i(), demandeur: c.null().optional(), participants: Ft.nullable().optional(), sessionRef: c.string().nullable().optional(), ouverturePresse: i(), ODJ: vt.optional(), compteRenduRef: c.string().nullable().optional(), identifiants: It.optional() }), zt = c.object({ reunion: c.array(Rt) }); c.object({ reunions: zt }); //#endregion //#region src/schemas/raw/debats.ts var Bt = [ "", "ADOPTION amendement (main levée) adt", "ADOPTION d’un article (vote à main levée)", "ADOPTION d’un sous-amendement (main levée) ss-adt", "ADOPTION de plusieurs amendements (main levée) adts", "ADOPTION de plusieurs sous-amendements (main levée) ss-adts", "REJET d’un amendement (main levée) adt", "REJET d’un article (vote à main levée)", "REJET d’un sous-amendement (main levée) ss-adt", "REJET de plusieurs amendements (main levée) adts", "REJET de plusieurs sous-amendements (main levée) ss-adts", "REJET motion de rejet préalable (main levée)" ], Vt = c.enum(Bt), E = c.lazy(() => c.object({ _: i(), id_syceron: i(), stime: i(), sup: i(), lienAdt: e(E).optional() })), Ht = c.object({ nom: i(), id: n(), qualite: i() }), Ut = c.object({ orateur: e(Ht) }), D = c.lazy(() => c.object({ id_preparation: i(), ordre_absolu_seance: i(), code_grammaire: i(), sommaire: i(), id_syceron: i(), valeur_ptsodj: i(), nivpoint: i(), ordinal_prise: i(), code_style: i(), code_parole: i(), valeur: i(), orateurs: c.union([Ut, c.string()]).optional(), texte: c.union([E, c.string()]).optional(), paragraphe: e(D).optional(), interExtraction: e(D).optional(), point: e(D).optional(), structure: i(), id_acteur: i(), id_mandat: i(), id_nomination_oe: i(), id_nomination_op: i(), orateur: i(), bibard: i(), art: i(), adt: i(), ssadt: i(), roledebat: i(), changementPresidence: e(D).optional(), type_debat: i(), decision: Vt.optional(), ouvertureSeance: D.optional(), qualite: i(), nom_orateur: i() })), Wt = c.object({ point: D }), Gt = c.object({ journee: c.string(), session: c.string() }), Kt = c.object({ quantiemes: Gt, ouvertureSeance: e(D).optional(), point: e(D), finSeance: Wt.optional(), paragraphe: e(D).optional() }), qt = c.object({ id_syceron: c.string(), intitule: i(), sousIntitule: i(), type_debat: i() }), O = c.lazy(() => c.object({ valeur_pts_odj: i(), titreStruct: qt, para: e(c.union([E, c.string()])).optional(), sommaire2: e(O).optional(), sommaire3: e(O).optional(), presidentSeance: e(E).optional(), type_debat: i() })), Jt = c.object({ presidentSeance: E, sommaire1: e(O), sommaire2: e(O).optional(), sommaire3: e(O).optional(), para: e(E).optional() }), Yt = c.object({ dateSeance: c.string(), dateSeanceJour: c.string(), numSeanceJour: c.string(), numSeance: c.string(), typeAssemblee: c.string(), legislature: c.string(), session: c.string(), nomFichierJo: c.string(), validite: c.string(), etat: c.string(), diffusion: c.string(), version: c.string(), environnement: c.string(), heureGeneration: c.iso.datetime({ offset: !0 }), sommaire: Jt }), k = c.object({ xmlns: c.string(), uid: t(), seanceRef: c.string(), sessionRef: c.string(), metadonnees: Yt, contenu: Kt }); c.object({ compteRendu: k }); var Xt = c.object({ compteRendu: e(k) }); c.object({ compteRendu: Xt }); //#endregion //#region src/schemas/raw/dossiers_legislatifs.ts var Zt = /* @__PURE__ */ "AN1.AN1-ACIN.AN1-AVCE.AN1-COM.AN1-COM-AVIS.AN1-COM-AVIS-NOMIN.AN1-COM-AVIS-RAPPORT.AN1-COM-AVIS-REUNION.AN1-COM-AVIS-SAISIE.AN1-COM-FOND.AN1-COM-FOND-NOMIN.AN1-COM-FOND-RAPPORT.AN1-COM-FOND-REUNION.AN1-COM-FOND-SAISIE.AN1-DEBATS.AN1-DEBATS-DEC.AN1-DEBATS-MOTION.AN1-DEBATS-MOTION-VOTE.AN1-DEBATS-SEANCE.AN1-DEPOT.AN1-DGVT.AN1-DPTLETTRECT.AN1-ETI.AN1-MOTION.AN1-MOTION-VOTE.AN1-PROCACC.AN1-RECBUREAU.AN1-RTRINI.AN2.AN20.AN20-COMENQ.AN20-COMENQ-CREA.AN20-COMENQ-NOMIN.AN20-COMENQ-RAPPORT.AN20-MISINF.AN20-MISINF-CREA.AN20-MISINF-NOMIN.AN20-MISINF-RAPPORT.AN20-RAPPORT.AN21.AN21-APAN.AN21-DEBATS.AN21-DEBATS-MOTION-VOTE.AN21-DEBATS-SEANCE.AN21-DGVT.AN21-MOTION.AN21-MOTION-VOTE.AN21-MPR.AN2-COM.AN2-COM-AVIS.AN2-COM-AVIS-RAPPORT.AN2-COM-AVIS-REUNION.AN2-COM-AVIS-SAISIE.AN2-COM-FOND.AN2-COM-FOND-NOMIN.AN2-COM-FOND-RAPPORT.AN2-COM-FOND-REUNION.AN2-COM-FOND-SAISIE.AN2-DEBATS.AN2-DEBATS-DEC.AN2-DEBATS-SEANCE.AN2-DEPOT.AN3.AN3-COM.AN3-COM-FOND.AN3-COM-FOND-NOMIN.AN3-COM-FOND-RAPPORT.AN3-COM-FOND-REUNION.AN3-COM-FOND-SAISIE.AN3-DEBATS.AN3-DEBATS-DEC.AN3-DEBATS-SEANCE.AN3-DEPOT.AN-APPLI.AN-APPLI-RAPPORT.ANLDEF.ANLDEF-COM.ANLDEF-COM-FOND.ANLDEF-COM-FOND-RAPPORT.ANLDEF-COM-FOND-REUNION.ANLDEF-COM-FOND-SAISIE.ANLDEF-DEBATS.ANLDEF-DEBATS-DEC.ANLDEF-DEBATS-MOTION-VOTE.ANLDEF-DEBATS-SEANCE.ANLDEF-DEPOT.ANLDEF-DGVT.ANLDEF-MOTION.ANLDEF-MOTION-VOTE.ANLUNI.ANLUNI-COM.ANLUNI-COM-CAE.ANLUNI-COM-CAE-DEC.ANLUNI-COM-CAE-NOMIN.ANLUNI-COM-CAE-RAPPORT.ANLUNI-COM-CAE-REUNION.ANLUNI-COM-CAE-SAISIE.ANLUNI-COM-FOND.ANLUNI-COM-FOND-NOMIN.ANLUNI-COM-FOND-RAPPORT.ANLUNI-COM-FOND-REUNION.ANLUNI-COM-FOND-SAISIE.ANLUNI-DEBATS.ANLUNI-DEBATS-DEC.ANLUNI-DEBATS-SEANCE.ANLUNI-DEPOT.ANLUNI-RTRINI.ANNLEC.ANNLEC-COM.ANNLEC-COM-AVIS.ANNLEC-COM-AVIS-NOMIN.ANNLEC-COM-AVIS-RAPPORT.ANNLEC-COM-AVIS-REUNION.ANNLEC-COM-AVIS-SAISIE.ANNLEC-COM-FOND.ANNLEC-COM-FOND-NOMIN.ANNLEC-COM-FOND-RAPPORT.ANNLEC-COM-FOND-REUNION.ANNLEC-COM-FOND-SAISIE.ANNLEC-DEBATS.ANNLEC-DEBATS-DEC.ANNLEC-DEBATS-MOTION-VOTE.ANNLEC-DEBATS-SEANCE.ANNLEC-DEPOT.ANNLEC-DGVT.ANNLEC-MOTION.ANNLEC-MOTION-VOTE.CC.CC-CONCLUSION.CC-SAISIE-AN.CC-SAISIE-DROIT.CC-SAISIE-PAN.CC-SAISIE-PM.CC-SAISIE-PR.CC-SAISIE-PSN.CC-SAISIE-SN.CG22.CG22-CONV.CG22-DEBATS.CG22-DEBATS-DEC.CG22-DEBATS-SEANCE.CMP.CMP-COM.CMP-COM-NOMIN.CMP-COM-RAPPORT-AN.CMP-COM-RAPPORT-SN.CMP-DEBATS.CMP-DEBATS-AN.CMP-DEBATS-AN-DEC.CMP-DEBATS-AN-SEANCE.CMP-DEBATS-DEC.CMP-DEBATS-SN.CMP-DEBATS-SN-DEC.CMP-DEBATS-SN-SEANCE.CMP-DEC.CMP-DEPOT.CMP-DGVT.CMP-MOTION.CMP-MOTION-VOTE.CMP-SAISIE.EU.EU-DEC.MOTION.MOTION-VOTE.PROM.PROM-PUB.SN1.SN1-AVCE.SN1-COM.SN1-COM-AVIS.SN1-COM-AVIS-NOMIN.SN1-COM-AVIS-RAPPORT.SN1-COM-AVIS-SAISIE.SN1-COM-FOND.SN1-COM-FOND-NOMIN.SN1-COM-FOND-RAPPORT.SN1-COM-FOND-SAISIE.SN1-DEBATS.SN1-DEBATS-DEC.SN1-DEBATS-MOTION.SN1-DEBATS-MOTION-VOTE.SN1-DEBATS-SEANCE.SN1-DEPOT.SN1-DPTLETTRECT.SN1-ETI.SN1-PROCACC.SN1-RTRINI.SN2.SN2-COM.SN2-COM-AVIS.SN2-COM-AVIS-NOMIN.SN2-COM-AVIS-RAPPORT.SN2-COM-AVIS-SAISIE.SN2-COM-FOND.SN2-COM-FOND-NOMIN.SN2-COM-FOND-RAPPORT.SN2-COM-FOND-SAISIE.SN2-DEBATS.SN2-DEBATS-DEC.SN2-DEBATS-SEANCE.SN2-DEPOT.SN3.SN3-COM.SN3-COM-FOND.SN3-COM-FOND-RAPPORT.SN3-COM-FOND-SAISIE.SN3-DEBATS.SN3-DEBATS-DEC.SN3-DEBATS-SEANCE.SN3-DEPOT.SNNLEC.SNNLEC-COM.SNNLEC-COM-FOND.SNNLEC-COM-FOND-NOMIN.SNNLEC-COM-FOND-RAPPORT.SNNLEC-COM-FOND-SAISIE.SNNLEC-DEBATS.SNNLEC-DEBATS-DEC.SNNLEC-DEBATS-SEANCE.SNNLEC-DEPOT".split("."), A = c.enum(Zt), j = c.enum([ "accordInternational_Type", "avisConseilEtat_Type", "documentEtudeImpact_Type", "rapportParlementaire_Type", "texteLoi_Type" ]), M = c.enum([ "auteur", "cosignataire", "rapporteur", "rapporteur général", "rapporteur pour avis", "rapporteur spécial" ]), Qt = /* @__PURE__ */ "ACCPRESRP.APPART1515.APPART341.APPLOI.AUE.AUTRATCONV.AVECVOTE.CENSURE492.CENSURE493.COMENQ.COMPA.COMSPCPTE.CONST.CTRLBUDG.DIVERS.ENGRESPTXT.ENQU.FIN.FINGEST.FINRECT.FINSSOC.FINSSOCREC.IMPACTLOIS.LEGDELEGAN.MINFOCOMPER.MODREGLTAN.NOTEOPECST.OFFPARL.ORG.PETITION.PRESIDAGE.PRESIDASS.PRESIDREP.PROPACTCOM.PRPDIT.RECT.REFART11.RGLTBUDG.RGLTBUDG2.SUPP.SUSPOURS.TVXINSTITEUROP".split("."), $t = c.enum(Qt), en = c.enum([ "ADOPTCOM", "ADOPTSEANCE", "REJETSEANCE" ]), tn = c.enum(["Rectifié"]), N = c.enum([ "Allocution", "Avis", "Déclaration", "Lettre", "Message", "Motion", "Projet de loi", "Proposition de loi", "Proposition de résolution", "Rapport", "Rapport d'information", "Résolution" ]), P = c.enum([ "Commission", "Séance", "Texte Déposé" ]), nn = c.enum([ "DossierCommissionEnquete_Type", "DossierIniativeExecutif_Type", "DossierLegislatif_Type", "DossierMissionControle_Type", "DossierMissionInformation_Type", "DossierResolutionAN" ]), rn = c.enum([ "Budget annexe", "Budget général", "Compte de concours financier", "Compte spécial", "Première partie" ]), an = c.enum([ "mission principale", "mission secondaire", "partie de mission" ]), on = /* @__PURE__ */ "Adoption_Europe_Type.ConclusionEtapeCC_Type.ConvocationCongres_Type.CreationOrganeTemporaire_Type.DecisionMotionCensure_Type.DecisionRecevabiliteBureau_Type.Decision_Type.DeclarationGouvernement_Type.DepotAccordInternational_Type.DepotAvisConseilEtat_Type.DepotInitiativeNavette_Type.DepotInitiative_Type.DepotLettreRectificative_Type.DepotMotionCensure_Type.DepotMotionReferendaire_Type.DepotRapport_Type.DiscussionCommission_Type.DiscussionSeancePublique_Type.Etape_Type.EtudeImpact_Type.MotionProcedure_Type.NominRapporteurs_Type.ProcedureAccelere_Type.Promulgation_Type.RenvoiPrealable_Type.RenvoiCMP_Type.RetraitInitiative_Type.SaisieComAvis_Type.SaisieComFond_Type.SaisineConseilConstit_Type".split("."), sn = c.enum(on), cn = c.enum(["BTA", "TAP"]), ln = c.enum(["En application de l'article 61§2 de la Constitution"]), un = c.enum(["JO_LOI_DECRET"]), dn = c.enum(["Dossier absorbé", "Examen commun"]), fn = c.enum(["Décret"]), F = c.object({ code: c.string(), libelle: c.string() }), pn = c.object({ code: $t, libelle: i(), libelleEdition: i() }), mn = c.object({ depot: F, classe: F, espece: F.optional() }), I = c.object({ famille: mn.nullable(), type: F, sousType: pn.nullable(), statutAdoption: en.nullable() }), hn = c.object({ dateCreation: s(), dateDepot: s(), datePublication: s(), datePublicationWeb: s() }), L = c.object({ chrono: hn }), R = c.object({ titrePrincipal: c.string(), titrePrincipalCourt: c.string() }), gn = c.object({ acteurRef: a(), qualite: M }), _n = c.object({ organeRef: o() }), vn = c.object({ acteur: gn.optional(), organe: _n.optional() }), yn = c.object({ auteur: e(vn) }), z = c.object({ typeCorrection: tn, niveauCorrection: i() }), B = c.object({ numNotice: i(), formule: i(), adoptionConforme: c.string() }), V = c.object({ DIAN: c.string().nullable().optional(), ISBN: c.string().nullable().optional(), ISSN: c.string().nullable().optional(), nbPage: c.string().nullable().optional(), prix: c.string().nullable() }), bn = c.object({ libelleTheme: c.string() }), xn = c.object({ "@niveau": c.string(), theme: bn }), H = c.object({ themes: xn }), Sn = c.object({ organeRef: e(o()) }), Cn = c.object({ acteurRef: a() }), wn = c.object({ organeRef: o(), etApparentes: c.string() }), Tn = c.object({ acteur: Cn.optional(), dateCosignature: c.string(), dateRetraitCosignature: c.string().nullable(), edite: c.string(), organe: wn.optional() }), En = c.object({ coSignataire: e(Tn) }), Dn = c.object({ amendable: c.string(), dateLimiteDepot: c.null() }), On = c.object({ organeRef: o(), amendable: c.string(), dateLimiteDepot: c.null() }), kn = c.object({ commission: e(On) }), An = c.object({ amendementsSeance: Dn, amendementsCommission: kn.optional() }), jn = c.lazy(() => c.object({ "@xsi:type": j, uid: t(), legislature: c.string().nullable(), cycleDeVie: L, denominationStructurelle: c.string(), titres: R, divisions: U.nullable(), dossierRef: c.string(), redacteur: c.null(), classification: I, auteurs: yn, organesReferents: Sn.nullable().optional(), correction: z.nullable(), notice: B, indexation: H.nullable(), imprimerie: V.nullable(), coSignataires: c.null().optional(), depotAmendements: c.null().optional(), rapportPublie: c.union([ c.literal("true"), c.literal("false"), c.literal("undefined") ]).optional() })), U = c.object({ division: e(jn) }), Mn = c.object({ dateSuppression: r() }), Nn = c.object({ "@xmlns": c.string(), "@xmlns:xsi": c.string(), "@xsi:type": j, uid: t(), metadatas: Mn }), Pn = c.object({ "@xmlns": c.string(), "@xmlns:xsi": c.string(), "@xsi:type": j, uid: t(), legislature: c.string().nullable(), cycleDeVie: L, denominationStructurelle: N, provenance: P.optional(), titres: R, divisions: U.nullable(), dossierRef: c.string(), redacteur: c.null(), classification: I, auteurs: yn, correction: z.nullable(), notice: B, indexation: H.nullable(), imprimerie: V.nullable(), coSignataires: En.nullable().optional(), depotAmendements: An.nullable().optional(), organesReferents: Sn.nullable().optional(), rapportPublie: c.union([ c.literal("true"), c.literal("false"), c.literal("undefined") ]).optional() }); c.object({ document: c.union([Pn, Nn]) }); var Fn = c.object({ "@xsi:type": j, uid: t(), legislature: c.string().nullable(), cycleDeVie: L, denominationStructurelle: N, provenance: P.optional(), titres: R, divisions: U.nullable(), dossierRef: c.string(), redacteur: c.null(), classification: I, auteurs: yn, correction: z.nullable(), notice: B, indexation: H.nullable(), imprimerie: V.nullable(), coSignataires: En.nullable().optional(), depotAmendements: An.nullable().optional(), rapportPublie: c.union([ c.literal("true"), c.literal("false"), c.literal("undefined") ]).optional() }), In = c.object({ document: c.array(Fn) }), Ln = c.object({ titre: c.string(), titreChemin: c.string().nullable(), senatChemin: c.string().nullable() }), Rn = c.object({ uid: t() }), zn = c.object({ organeRef: Rn }), Bn = c.object({ organe: zn }), Vn = c.object({ acteurRef: a(), mandatRef: c.string() }), Hn = c.object({ acteur: e(Vn) }), W = c.object({ acteurs: Hn.optional(), organes: Bn.optional() }), Un = c.object({ acteurRef: i(), organeRef: i() }), Wn = c.object({ cause: dn, dossierAbsorbantRef: c.string() }), G = c.object({ acteurRef: a(), typeRapporteur: M, etudePLFRef: i() }), Gn = c.object({ rapporteur: e(G) }), Kn = c.lazy(() => c.object({ typeMission: an, codeMission: i(), libelleLong: n(), libelleCourt: n(), typeBudget: rn, missions: qn.optional() })), qn = c.object({ mission: e(Kn) }), Jn = c.object({ uid: t(), organeRef: o(), texteAssocie: i(), rapporteur: c.union([e(G), G]).optional(), missionMinefi: Kn.optional(), ordreDIQS: c.string(), ordreCommission: c.string() }), Yn = c.object({ EtudePLF: c.array(Jn) }), K = c.object({ fam_code: c.string(), libelle: i() }), Xn = c.object({ nomCanonique: c.string(), libelleCourt: i() }), Zn = c.object({ dateFermeture: c.string().nullable(), dateOuverture: i() }), Qn = c.object({ voteRef: e(c.string()) }), $n = c.object({ typeTexte: cn, refTexteAssocie: c.string() }), er = c.object({ texteAssocie: e($n) }), tr = c.object({ acteurRef: e(a()) }), nr = c.object({ typeJO: un, dateJO: c.string(), pageJO: c.null(), numJO: c.string(), urlLegifrance: n(), referenceNOR: i() }), rr = c.object({ typeTexteEuropeen: c.string(), titreTexteEuropeen: c.string() }), ir = c.object({ refJOCE: c.string(), dateJOCE: c.string() }), ar = c.object({ typeDoc: fn, texteRef: c.string(), titreDoc: c.string(), urlDoc: c.string() }), or = c.lazy(() => c.object({ "@xsi:type": sn, uid: t(), codeActe: A, libelleActe: Xn, organeRef: i(), dateActe: s(), actesLegislatifs: sr.nullable().optional(), texteAssocie: i(), contributionInternaute: Zn.optional(), provenance: i(), depotInitialLectureDefinitiveRef: c.union([c.null(), c.string()]).optional(), initiateur: W.optional(), statutConclusion: K.optional(), reunionRef: c.string().nullable().optional(), odjRef: c.string().nullable().optional(), odSeancejRef: c.null().optional(), voteRefs: Qn.nullable().optional(), textesAssocies: er.optional(), rapporteurs: Gn.optional(), reunion: c.null().optional(), texteAdopte: c.string().nullable().optional(), casSaisine: K.optional(), decision: K.optional(), formuleDecision: i(), initiateurs: Un.nullable().optional(), motif: ln.optional(), urlConclusion: i(), numDecision: i(), anneeDecision: i(), typeDeclaration: K.optional(), typeMotionCensure: K.optional(), auteurs: tr.nullable().optional(), typeMotion: K.optional(), auteurMotion: i(), dateRetrait: c.null().optional(), texteLoiRef: i(), infoJO: nr.nullable().optional(), urlEcheancierLoi: c.string().nullable().optional(), codeLoi: i(), titreLoi: c.string().nullable().optional(), infoJORect: c.union([e(nr), nr]).optional(), texteEuropeen: rr.optional(), infoJOCE: ir.optional(), statutAdoption: K.optional(), urlLegifrance: i(), referenceNOR: i(), texteExterneAssocie: ar.optional() })), sr = c.object({ acteLegislatif: e(or) }), cr = c.object({ "@xmlns": c.string(), "@xmlns:xsi": c.string(), "@xsi:type": nn, uid: t(), legislature: c.string(), titreDossier: Ln, procedureParlementaire: F, initiateur: W.nullable(), actesLegislatifs: sr.nullable(), indexation: H.optional(), fusionDossier: Wn.nullable(), PLF: Yn.optional() }); c.object({ dossierParlementaire: cr }); var lr = c.object({ "@xsi:type": nn.optional(), uid: t(), legislature: c.string(), titreDossier: Ln, procedureParlementaire: F, initiateur: W.nullable(), actesLegislatifs: sr, indexation: H.optional(), fusionDossier: Wn.nullable(), PLF: Yn.optional() }), ur = c.object({ dossierParlementaire: lr }), dr = c.object({ dossier: c.array(ur) }), fr = c.object({ "@xmlns:xsi": c.string(), textesLegislatifs: In, dossiersLegislatifs: dr }); c.object({ export: fr }); //#endregion //#region src/schemas/raw/questions.ts var pr = [ "QuestionEcrite_Type", "QuestionGouvernement_Type", "QuestionOrale_Type" ], mr = c.enum(pr), hr = [ "QE", "QG", "QOSD" ], gr = c.enum(hr), _r = gr, vr = c.enum([ "JO_QUESTION", "JO_LOI_DECRET", "JO_DEBAT" ]), yr = c.object({ numero: c.string(), regime: c.string(), legislature: c.string() }), br = c.object({ organeRef: o().meta({ description: "Référence à l'organe." }), abrege: c.string(), developpe: c.string() }), xr = c.object({ acteurRef: a().meta({ description: "Référence à l'acteur." }), mandatRef: c.string() }), Sr = c.object({ identite: xr, groupe: br }), q = c.object({ typeJO: vr.nullable(), dateJO: r().describe("Date de publication au Journal Officiel"), pageJO: n().nullable(), numJO: n().nullable(), urlLegifrance: n().nullable(), referenceNOR: n().nullable() }), Cr = c.object({ analyse: n().nullable() }), wr = c.object({ rubrique: n().nullable(), teteAnalyse: c.null(), analyses: Cr }), Tr = c.object({ infoJO: q, denomination: br }), Er = c.object({ minAttrib: e(Tr) }), Dr = c.object({ infoJO: q, texte: n().nullable(), erratum: c.string().optional() }), Or = c.object({ texteQuestion: e(Dr) }), kr = c.object({ texteReponse: e(Dr) }), Ar = c.object({ codeCloture: c.string(), libelleCloture: c.string(), dateCloture: s(), infoJO: q.nullable() }), jr = c.object({ dateDepotSignal: r().describe("Date de dépôt du signalement"), infoJO: q }), Mr = c.object({ infoJO: q }), Nr = c.object({ renouvellement: e(Mr) }), J = c.object({ "@xmlns": c.string().optional(), "@xmlns:xsi": c.string(), "@xsi:type": mr, uid: t().meta({ description: "Identifiant unique de la question." }), identifiant: yr, type: _r, indexationAN: wr, auteur: Sr, minInt: br, minAttribs: Er, textesQuestion: Or.nullable().optional(), textesReponse: kr.nullable().optional(), cloture: Ar.nullable().optional(), signalement: jr.nullable().optional(), renouvellements: Nr.nullable().optional() }); c.object({ question: J }); var Pr = c.object({ question: c.array(J) }); c.object({ questions: Pr }); //#endregion //#region src/schemas/raw/scrutins.ts var Fr = [ "MG", "PAN", "PSE" ], Ir = c.enum(Fr), Lr = ["adopté", "rejeté"], Rr = c.enum(Lr), zr = [ "MOC", "SAT", "SPO", "SPS", "SSG" ], Br = c.enum(zr), Vr = [ "l'Assemblée nationale a adopté", "L'Assemblée nationale n'a pas adopté", "Le Congrès du Parlement a adopté", "Le Congrès du Parlement n'a pas adopté" ], Hr = c.enum(Vr), Ur = [ "motion de censure", "scrutin public ordinaire", "scrutin public solennel", "scrutin à la tribune", "Scrutin solennel congrès" ], Wr = c.enum(Ur), Gr = [ "Congrès", "Hémicycle", "Salons" ], Kr = c.enum(Gr), qr = ["DecompteDissidentsPositionGroupe", "DecompteNominatif"], Jr = c.enum(qr), Yr = [ "abstention", "contre", "pour" ], Xr = c.enum(Yr), Zr = [ "Majorité absolue des suffrages exprimés", "majorité absolue des suffrages exprimés", "majorité des membres composant l'Assemblée nationale", "majorité des membres composants composant l'Assemblée", "majorité des membres composants composant l'Assemblée nationale", "Majorité requise pour un Congrès", "Majorité requise pour une motion de censure" ], Qr = c.enum(Zr), $r = Rr, ei = Hr, ti = c.object({ texte: c.string().nullable(), referenceLegislative: c.null() }), ni = c.object({ libelle: c.string(), dossierRef: c.string() }), ri = c.object({ libelle: c.string(), referenceLegislative: c.null(), dossierLegislatif: c.union([ni, c.null()]).optional() }), ii = c.object({ code: $r, libelle: ei }), ai = c.object({ codeTypeVote: Br, libelleTypeVote: Wr, typeMajorite: Qr }), oi = c.object({ pour: c.string(), contre: c.string(), abstentions: c.string(), nonVotants: c.string().nullable(), nonVotantsVolontaires: c.string().optional() }), si = c.object({ nombreVotants: c.string(), suffragesExprimes: c.string(), nbrSuffragesRequis: c.string(), annonce: ei, decompte: oi }), ci = c.object({ acteurRef: a(), mandatRef: c.string(), parDelegation: c.string().optional(), numPlace: c.string().nullable().optional(), causePositionVote: Ir.optional() }), Y = c.object({ votant: e(ci) }), li = c.object({ pour: c.string(), contre: c.string(), abstention: c.string().optional(), nonVotant: c.string().nullable().optional(), nonVotants: c.string().optional(), abstentions: c.string().optional(), nonVotantsVolontaires: c.string().optional() }), ui = c.object({ nonVotant: c.null().optional(), nonVotants: c.union([Y, c.string()]).nullable().optional(), pour: Y.nullable().optional(), contre: Y.nullable().optional(), abstention: Y.nullable().optional(), abstentions: Y.nullable().optional(), pours: Y.nullable().optional(), contres: Y.nullable().optional() }), di = c.object({ positionMajoritaire: Xr, decompteVoix: li, decompteNominatif: ui }), fi = c.object({ organeRef: o(), nombreMembresGroupe: c.string(), vote: di }), pi = c.object({ groupe: e(fi) }), mi = c.object({ organeRef: o(), groupes: pi }), hi = c.object({ organe: mi }), gi = c.object({ nonVotants: Y.nullable(), pour: Y.nullable(), contre: Y.nullable(), abstentions: Y.nullable(), nonVotantsVolontaires: Y.nullable() }), _i = c.object({ nonVotants: e(Y.nullable()).nullable(), pour: Y.nullable().optional(), contre: Y.nullable().optional(), abstentions: e(Y.nullable()).optional(), nonVotantsVolontaires: e(Y.nullable()).optional(), pours: Y.nullable().optional(), contres: Y.nullable().optional(), dysfonctionnement: gi.optional() }), vi = c.object({ "@xmlns:xsi": c.string(), "@xmlns": c.string().optional(), uid: t(), numero: c.string(), organeRef: o(), legislature: c.string(), sessionRef: c.string(), seanceRef: c.string(), dateScrutin: r(), quantiemeJourSeance: c.string(), typeVote: ai, sort: ii, titre: c.string(), demandeur: ti, objet: ri, modePublicationDesVotes: Jr, syntheseVote: si, ventilationVotes: hi, miseAuPoint: _i.nullable(), lieuVote: Kr.optional() }); c.object({ scrutin: vi }); var yi = c.object({ scrutin: e(vi) }); c.object({ scrutins: yi }); //#endregion //#region src/uids.ts var bi = /^((?<documentType>ACIN|ALCN|AVCE|AVIS|DECL|ETDI|LETT|MESS|MION|PION|PNRE|PRJL|RAPP|RINF|RION)(?<chambre>AN|CG|SN)(?<republique>R\d+)[LS](?<legislature>\d+)(?<etat>B|BTA|BTC|TAP)(?<numero>\d+)(-.*)?)|((?<documentType2>MION)(?<chambre2>AN|SN)(?<republique2>R\d+)[LS](?<legislature2>\d+)-N(?<numero2>\d+))$/, xi = /^DL(R\d+)(L\d+)N(\d+)$/, Si = /^RU(AN|CG|SN)(R\d+)(L\d+)([AS]\d{4})(IDC|IDFL?|IDS)(\d+)$/, Ci = /^VT(AN|CG)(R\d+)(L\d+)V(\d+)$/, wi = /^CR(S|C)(AN|CG)(R\d+)(L\d+)(S\d+)((?:O|E|D|PO)\d+)(N\d+)$/, Ti = /^QAN(R\d+)(L\d+)Q(E|G|OSD)(\d+)$/, Ei = [ "Annulé", "Confirmé", "Eventuel", "Supprimé" ], Di = c.enum(Ei), Oi = ["IdActeur_type", "IdPersonneExterne_type"], ki = c.enum(Oi), Ai = c.object({ creation: c.union([c.date(), c.iso.datetime({ offset: !0 }).pipe(c.coerce.date())]).meta({ description: "Date de création." }), cloture: c.union([c.date(), c.iso.datetime({ offset: !0 }).pipe(c.coerce.date())]).optional().meta({ description: "Date de fin." }) }), ji = c.object({ etat: Di.meta({ description: "La réunion ou le point de l'ordre du est valide si le champ contient la valeur 'Eventuel' ou 'Confirmé'. Si la valeur est 'Annulé' ou 'Supprimé', aucun des champs de la réunion ou de l'ordre du jour n'a de signification définie. Par exemple, si une réunion est 'Annulé' et que le champ concernant l'ordre du jour est présent, il doit être ignoré car son contenu n'est pas nécessairement cohérent." }), chrono: Ai }), Mi = c.object({ xsiType: x.meta({ description: "Pour les réunions dont xsiType est 'seance_type', c'est à dire une séance publique, chaque point de l'ordre du jour est fixé par la {@link https://fr.wikipedia.org/wiki/Conf%C3%A9rence_des_pr%C3%A9sidents_de_l%27Assembl%C3%A9e_nationale | conférence des présidents} et a donc la valeur 'podjSeanceConfPres_type' pour le champ xsiType. Dans tout les autres cas la valeur est 'podjReunion_type'" }), uid: t().meta({ description: "Identifiant unique du point ODJ" }), cycleDeVie: ji.meta({ description: "Cycle de vie du point de l'ordre du jour." }), objet: c.string().meta({ description: "Description du point de l'ordre du jour en texte libre." }), procedure: nt.optional().meta({ description: "L'article du {@link http://www2.assemblee-nationale.fr/content/download/73698/754101/version/2/file/reglement.pdf | règlement de l'assemblée nationale} qui justifie ce point de l'ordre du jour (par exemple: la {@link http://www2.assemblee-nationale.fr/decouvrir-l-assemblee/textes-de-reference/reglement-de-l-assemblee-nationale/titre-ii/premiere-partie/chapitre-v | procédure d'examen simplifiée})." }), dossiersLegislatifsRefs: c.array(c.string()).optional().meta({ description: "Pour les réunions dont xsiType est 'seance_type', c'est à dire une séance publique ou bien 'reunionCommission_type', c'est à dire une commission, liste des identifiants uniques (uid) des {@link DossierParlementaire | dossiers législatifs} dont il sera question." }), typePointOdj: C.meta({ description: "Type de point de l'ordre du jour (par exemple: Discussion, Examen, Suite de la discussion, Amendements (Art. 88), etc." }), comiteSecret: c.boolean().meta({ description: "Le contenu de ce champ n'est pas défini." }), natureTravauxOdj: b.optional().meta({ description: "Vaut ODJPR pour les ordre du jour prioritaires (quel que soit le lieu ou se tient la réunion) et ODJSN pour les ordre du jour des réunions qui se tiennent au Sénat." }), dateConfPres: c.union([c.date(), c.iso.date().pipe(c.coerce.date())]).optional().meta({ description: "Pour les réunions dont xsiType est 'seance_type', c'est à dire une séance publique, date à laquelle la {@link https://fr.wikipedia.org/wiki/Conf%C3%A9rence_des_pr%C3%A9sidents_de_l%27Assembl%C3%A9e_nationale | conférence des présidents} a ajouté ce point à l'ordre du jour." }), dateLettreMinistre: c.union([c.date(), c.iso.date().pipe(c.coerce.date())]).optional().meta({ description: "Pour les réunions dont xsiType est 'seance_type', c'est à dire une séance publique, date de la lettre du premier ministre qui demande l'inscription d'un texte à l'ordre du jour {@link http://www2.assemblee-nationale.fr/decouvrir-l-assemblee/role-et-pouvoirs-de-l-assemblee-nationale/l-organisation-des-travaux-de-l-assemblee-nationale/la-fixation-de-l-ordre-du-jour-et-la-conference-des-presidents | au nom du gouvernement}." }) }), Ni = c.object({ convocationOdj: c.array(c.string()).optional().meta({ description: "Texte décrivant l'objet de la réunion." }), resumeOdj: c.array(c.string()).optional().meta({ description: "Texte court décrivant l'objet de la réunion." }), pointsOdj: c.array(Mi).optional().meta({ description: "Liste des points inscrits à l'ordre du jour de la réunion" }) }), Pi = c.object({ nom: c.string().optional().meta({ description: "Civilité Prénom Nom {@link Acteur | de l'acteur}." }), acteurRef: a().meta({ description: "Référence à l'acteur" }) }), Fi = c.object({ nom: c.string().meta({ description: "Nom de l'{@link Organe | organe}" }), organeRef: o().meta({ description: "Référence à l'organe" }) }), Ii = c.object({ acteurs: c.array(Pi).optional().meta({ description: "Liste des {@link Acteur | personnes} à l'initiative de la réunion." }), organe: Fi.optional() }), Li = c.object({ code: c.string().optional().meta({ description: "Code du lieu de la réunion: S pour sénat, AN pour assemblée nationale, CG pour congrès, SALREU* pour les salles de réunion." }), libelleCourt: c.string().optional().meta({ description: "Nom du lieu de la réunion." }), libelleLong: c.string().optional().meta({ description: "Nom du lieu de la réunion et une indication sur son addresse." }), lieuRef: c.string().optional() }), Ri = c.object({ acteurRef: a().meta({ description: "Référence à l'acteur participant" }), presence: S.meta({ description: "La valeur est 'absent' ou 'excusé' si la personne n'a pas participé à la réunion, 'présent' sinon." }) }), zi = c.object({ civ: d.meta({ description: "Civilité." }), prenom: c.string().meta({ description: "Prénom." }), nom: c.string().meta({ description: "Nom de famille." }), alpha: c.string().optional().meta({ description: "Le contenu de ce champ n'est pas défini." }), trigramme: c.string().optional().meta({ description: "Le contenu de ce champ n'est pas défini." }) }), Bi = c.object({ xsiType: ki.meta({ description: "Type de personne auditionnée (acteur interne ou personne externe)." }), uid: c.string().meta({ description: "Identifiant unique de l'{@link Acteur | acteur} ou bien, dans le cas ou il ne s'agit pas d'un acteur, un identifiant unique de personne externe débutant par PE qui est utilisé uniquement dans ce contexte." }), ident: zi, dateNais: c.union([c.date(), c.iso.datetime({ offset: !0 }).pipe(c.coerce.date())]).optional().meta({ description: "Date de naissance." }) }), Vi = c.object({ participantsInternes: c.array(Ri).optional().meta({ description: "Liste des personnes participant à la réunion." }), personnesAuditionnees: c.array(Bi).optional().meta({ description: "Liste des personnes auditionnées durant la réunion." }) }), Hi = c.object({ numSeanceJo: c.string().optional().meta({ description: "Numérotation de la séance selon l'ordre du journal officiel." }), idJo: c.string().optional().meta({ description: "Identifiant du journal officiel composé de l'année sur quatre chiffres et du numéro de séance (**numSeanceJo**) sur quatre chiffres (exemple: 20190053)." }), quantieme: it.meta({ description: "Numéro de la séance dans la journée." }), dateSeance: c.union([c.date(), c.iso.date().pipe(c.coerce.date())]).meta({ description: "Date à laquelle la séance publique a lieu." }) }), Ui = c.object({ estReunionInternationale: c.boolean().meta({ description: "'false' si la réunion ne concerne pas l'international, 'true' sinon." }), listePays: c.array(c.string()).optional().meta({ description: "Le contenu de ce champ n'est pas défini." }), informationsComplementaires: c.string().optional().meta({ description: "Contient parfois le nom de la personne qui organise la réunion." }) }), Wi = c.object({ schemaVersion: c.string().optional().meta({ description: "Le contenu de ce champ n'est pas défini." }), xsiType: ot.optional(), uid: t().meta({ description: "Identifiant unique de la réunion" }), timestampDebut: c.union([c.date(), c.iso.datetime({ offset: !0 }).pipe(c.coerce.date())]).meta({ description: "Date et heure du début de la réunion." }), timestampFin: c.union([ c.date(), c.iso.date().pipe(c.coerce.date()), c.iso.datetime({ offset: !0 }).pipe(c.coerce.date()) ]).optional().meta({ description: "Date et heure de la fin de la réunion." }), lieu: Li.optional().meta({ description: "Lieu de la réunion." }), cycleDeVie: ji.meta({ description: "Cycle de vie de la réunion." }), demandeurs: Ii.optional().meta({ description: "Le cas échéant l'{@link Organe | organe} et/ou les {@link Acteur | acteurs} à l'initiative de la réunion." }), organeReuniRef: c.string().optional().meta({ description: "Le cas échéant, l'organe qui se réunit. Ce n'est pas nécessairement identique au demandeur. Par exemple le président de l'assemblée nationale convoque la conférence des présidents." }), typeReunion: w.optional().meta({ description: "Le contenu de ce champ n'est pas défini." }), participants: Vi.optional(), sessionRef: c.string().optional(), ouverturePresse: c.boolean().optional().meta({ description: "'true' si la réunion est accessible à la presse, 'false' sinon" }), odj: Ni.optional(), compteRenduRef: c.string().optional().meta({ description: "Identifiant unique du {@link http://data.assemblee-nationale.fr/travaux-parlementaires/debats | compte rendu} d'une séance publique. Uniquement si xsiType égal à 'seance_type'." }), transcriptionRef: c.string().optional(), identifiants: Hi.optional().meta({ description: "Identifiant de la séance publique. Uniquement si xsiType égal à 'seance_type'." }), formatReunion: y.optional().meta({ description: "Le contenu de ce champ n'est pas défini." }), infosReunionsInternationale: Ui.optional().meta({ description: "Informations sur les personnes et pays concernées par une réunion de commission qui concerne l'international, le cas échéant. Uniquement si xsiType égal à 'reunionCommission_type'." }), captationVideo: c.boolean().optional().meta({ description: "Vrai si la réunion est enregistrée en vidéo." }), visioConference: c.string().optional(), urlVideo: c.string().optional().meta({ description: "Lien m3u8 de la video de la réunion." }), urlPageVideo: c.string().optional().meta({ description: "Lien vers la page de la vidéo de la réunion sur le site de l'assemblée nationale. Ce lien est différent du lien m3u8 qui est dans le champ urlVideo et qui permet d'accéder directement au flux vidéo." }), timecodeDebutVideo: c.number().optional().meta({ description: "Timecode de début de la vidéo de la réunion." }) }), Gi = c.object({ reunions: c.array(Wi) }); function Ki(e) { let t = Wi.safeParse(JSON.parse(e)); if (!t.succes