From ff5077faaa8b61b63d81c903a5ab8e8135279695 Mon Sep 17 00:00:00 2001 From: Emmanuel Raviart Date: Fri, 29 Nov 2024 10:11:48 +0100 Subject: [PATCH] Clean Structure of Textelr & SectionTa --- src/lib/legal/index.ts | 14 ++++++ src/lib/legal/jorf.ts | 99 ++++++++++++++++++++++----------------- src/lib/legal/legi.ts | 102 ++++++++++++++++++++++++----------------- 3 files changed, 132 insertions(+), 83 deletions(-) diff --git a/src/lib/legal/index.ts b/src/lib/legal/index.ts index 13c5a7b..55e24c2 100644 --- a/src/lib/legal/index.ts +++ b/src/lib/legal/index.ts @@ -44,15 +44,22 @@ export { type JorfArticleTexteNature, type JorfArticleType, type JorfSectionTa, + type JorfSectionTaLienArt, type JorfSectionTaLienArtEtat, + type JorfSectionTaLienSectionTa, + type JorfSectionTaLienSectionTaEtat, type JorfSectionTaTexteNature, + type JorfSectionTaStructure, type JorfTextelr, type JorfTextelrEtat, + type JorfTextelrLienArt, type JorfTextelrLienArtEtat, type JorfTextelrLienArtNature, type JorfTextelrLienArtOrigine, + type JorfTextelrLienSectionTa, type JorfTextelrNature, type JorfTextelrOrigine, + type JorfTextelrStructure, type JorfTexteVersion, type JorfTexteVersionLien, type JorfTexteVersionLienNature, @@ -95,15 +102,22 @@ export { type LegiArticleTexteNature, type LegiArticleType, type LegiSectionTa, + type LegiSectionTaLienArt, type LegiSectionTaLienArtEtat, + type LegiSectionTaLienSectionTa, + type LegiSectionTaLienSectionTaEtat, + type LegiSectionTaStructure, type LegiSectionTaTexteNature, type LegiTextelr, type LegiTextelrEtat, + type LegiTextelrLienArt, type LegiTextelrLienArtEtat, type LegiTextelrLienArtOrigine, + type LegiTextelrLienSectionTa, type LegiTextelrLienSectionTaEtat, type LegiTextelrNature, type LegiTextelrOrigine, + type LegiTextelrStructure, type LegiTexteVersion, type LegiTexteVersionEtat, type LegiTexteVersionLien, diff --git a/src/lib/legal/jorf.ts b/src/lib/legal/jorf.ts index 4ec01d5..038ebf7 100644 --- a/src/lib/legal/jorf.ts +++ b/src/lib/legal/jorf.ts @@ -117,6 +117,8 @@ export interface JorfArticleTm { export type JorfArticleType = (typeof allJorfArticleTypes)[number] +// Section Texte Article +// Correspond à un niveau d'une table des matières export interface JorfSectionTa { ID: string COMMENTAIRE?: string @@ -142,26 +144,16 @@ export interface JorfSectionTa { } } TITRE_TA?: string - STRUCTURE_TA?: Array<{ - LIEN_ART?: Array<{ - "@debut": string - "@etat"?: JorfSectionTaLienArtEtat - "@fin": string - "@id": string - "@num"?: string - "@origine"?: JorfSectionTaLienArtOrigine - }> - LIEN_SECTION_TA?: Array<{ - "#text"?: string - "@cid": string - "@debut": string - // "@etat"?: JorfSectionTaLienSectionTaEtat - "@fin": string - "@id": string - "@niv": number - "@url": string - }> - }> + STRUCTURE_TA?: JorfSectionTaStructure +} + +export interface JorfSectionTaLienArt { + "@debut": string + "@etat"?: JorfSectionTaLienArtEtat + "@fin": string + "@id": string + "@num"?: string + "@origine"?: JorfSectionTaLienArtOrigine } export type JorfSectionTaLienArtEtat = @@ -170,9 +162,27 @@ export type JorfSectionTaLienArtEtat = export type JorfSectionTaLienArtOrigine = (typeof allJorfSectionTaLienArtOrigines)[number] +export interface JorfSectionTaLienSectionTa { + "#text"?: string + "@cid": string + "@debut": string + // "@etat"?: JorfSectionTaLienSectionTaEtat + "@fin": string + "@id": string + "@niv": number + "@url": string +} + export type JorfSectionTaLienSectionTaEtat = (typeof allJorfSectionTaLienSectionTaEtats)[number] +// Structure d'une Section Texte Article +// Lien vers les sous-niveaux (articles ou Sections Texte Article) d'un niveau de table des matières +export interface JorfSectionTaStructure { + LIEN_ART?: JorfSectionTaLienArt[] + LIEN_SECTION_TA?: JorfSectionTaLienSectionTa[] +} + export type JorfSectionTaTexteNature = (typeof allJorfSectionTaTexteNatures)[number] @@ -214,27 +224,7 @@ export interface JorfTextelr { } } } - STRUCT?: { - LIEN_ART?: Array<{ - "@debut": string - "@etat"?: JorfTextelrLienArtEtat - "@fin": string - "@id": string - // "@nature"?: undefined - "@num"?: string - "@origine"?: JorfTextelrLienArtOrigine - }> - LIEN_SECTION_TA?: Array<{ - "#text"?: string - "@cid": string - "@debut": string - // "@etat"?: undefined - "@fin": string - "@id": string - "@niv": number - "@url": string - }> - } + STRUCT?: JorfTextelrStructure VERSIONS: { VERSION: Array<{ "@etat"?: JorfTextelrEtat @@ -250,6 +240,16 @@ export interface JorfTextelr { export type JorfTextelrEtat = (typeof allJorfTextelrEtats)[number] +export interface JorfTextelrLienArt { + "@debut": string + "@etat"?: JorfTextelrLienArtEtat + "@fin": string + "@id": string + // "@nature"?: undefined + "@num"?: string + "@origine"?: JorfTextelrLienArtOrigine +} + export type JorfTextelrLienArtEtat = (typeof allJorfTextelrLienArtEtats)[number] export type JorfTextelrLienArtNature = @@ -262,6 +262,23 @@ export type JorfTextelrNature = (typeof allJorfTextelrNatures)[number] export type JorfTextelrOrigine = (typeof allJorfTextelrOrigines)[number] +export interface JorfTextelrLienSectionTa { + "#text"?: string + "@cid": string + "@debut": string + // "@etat"?: undefined + "@fin": string + "@id": string + "@niv": number + "@url": string +} + +// Structure du JorfTextelr +// Premier niveau de table des matières +export interface JorfTextelrStructure { + LIEN_ART?: JorfTextelrLienArt[] + LIEN_SECTION_TA?: JorfTextelrLienSectionTa[] +} export interface JorfTexteVersion { ABRO?: { CONTENU: string // HTML diff --git a/src/lib/legal/legi.ts b/src/lib/legal/legi.ts index 3282894..c4a8863 100644 --- a/src/lib/legal/legi.ts +++ b/src/lib/legal/legi.ts @@ -104,6 +104,8 @@ export interface LegiArticleTm { export type LegiArticleType = (typeof allLegiArticleTypes)[number] +// Section Texte Article +// Correspond à un niveau d'une table des matières export interface LegiSectionTa { COMMENTAIRE?: string CONTEXTE: { @@ -128,27 +130,17 @@ export interface LegiSectionTa { } } ID: string - STRUCTURE_TA?: Array<{ - LIEN_ART?: Array<{ - "@debut": string - "@etat"?: LegiSectionTaLienArtEtat - "@fin": string - "@id": string - "@num"?: string - "@origine": LegiSectionTaLienArtOrigine - }> - LIEN_SECTION_TA?: Array<{ - "#text"?: string - "@cid": string - "@debut": string - "@etat"?: LegiSectionTaLienSectionTaEtat - "@fin": string - "@id": string - "@niv": number - "@url": string - }> - }> - TITRE_TA?: string + STRUCTURE_TA?: LegiSectionTaStructure + TITRE_TA?: string // Titre de la section (peut contenir des sauts de lignes à remplacer par des espaces) +} + +export interface LegiSectionTaLienArt { + "@debut": string + "@etat"?: LegiSectionTaLienArtEtat + "@fin": string + "@id": string + "@num"?: string + "@origine": LegiSectionTaLienArtOrigine } export type LegiSectionTaLienArtEtat = @@ -157,9 +149,27 @@ export type LegiSectionTaLienArtEtat = export type LegiSectionTaLienArtOrigine = (typeof allLegiSectionTaLienArtOrigines)[number] +export interface LegiSectionTaLienSectionTa { + "#text"?: string + "@cid": string + "@debut": string + "@etat"?: LegiSectionTaLienSectionTaEtat + "@fin": string + "@id": string + "@niv": number + "@url": string +} + export type LegiSectionTaLienSectionTaEtat = (typeof allLegiSectionTaLienSectionTaEtats)[number] +// Structure d'une Section Texte Article +// Lien vers les sous-niveaux (articles ou Sections Texte Article) d'un niveau de table des matières +export interface LegiSectionTaStructure { + LIEN_ART?: LegiSectionTaLienArt[] + LIEN_SECTION_TA?: LegiSectionTaLienSectionTa[] +} + export type LegiSectionTaTexteNature = (typeof allLegiSectionTaTexteNatures)[number] @@ -201,27 +211,7 @@ export interface LegiTextelr { } } } - STRUCT?: { - LIEN_ART?: Array<{ - "@debut": string - "@etat"?: LegiTextelrLienArtEtat - "@fin": string - "@id": string - // "@nature"?: undefined - "@num"?: string - "@origine": LegiTextelrLienArtOrigine - }> - LIEN_SECTION_TA?: Array<{ - "#text": string - "@cid": string - "@debut": string - "@etat"?: LegiTextelrLienSectionTaEtat - "@fin": string - "@id": string - "@niv": number - "@url": string - }> - } + STRUCT?: LegiTextelrStructure VERSIONS: { VERSION: Array<{ "@etat"?: LegiTextelrEtat @@ -237,11 +227,32 @@ export interface LegiTextelr { export type LegiTextelrEtat = (typeof allLegiTextelrEtats)[number] +export interface LegiTextelrLienArt { + "@debut": string + "@etat"?: LegiTextelrLienArtEtat + "@fin": string + "@id": string + // "@nature"?: undefined + "@num"?: string + "@origine": LegiTextelrLienArtOrigine +} + export type LegiTextelrLienArtEtat = (typeof allLegiTextelrLienArtEtats)[number] export type LegiTextelrLienArtOrigine = (typeof allLegiTextelrLienArtOrigines)[number] +export interface LegiTextelrLienSectionTa { + "#text": string // Titre de la section + "@cid": string // ID de la Section Texte Article que la Section Texte Article a modifée ou égal à @id si pas de modification + "@debut": string // Date de début + "@etat"?: LegiTextelrLienSectionTaEtat + "@fin": string // Date de fin + "@id": string // ID de la Section Texte Article + "@niv": number // Niveau de profondeur de la section dans l'arborescence + "@url": string // Chemin du fichier XML de la Section Texte Article dans l'archive +} + export type LegiTextelrLienSectionTaEtat = (typeof allLegiTextelrLienSectionTaEtats)[number] @@ -249,6 +260,13 @@ export type LegiTextelrNature = (typeof allLegiTextelrNatures)[number] export type LegiTextelrOrigine = (typeof allLegiTextelrOrigines)[number] +// Structure du LegiTextelr +// Premier niveau de table des matières +export interface LegiTextelrStructure { + LIEN_ART?: LegiTextelrLienArt[] + LIEN_SECTION_TA?: LegiTextelrLienSectionTa[] +} + export interface LegiTexteVersion { ABRO?: { CONTENU: string // HTML