@tricoteuses/tisseuse 0.7.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/LICENSE.md +6 -2
  2. package/README.md +2 -2
  3. package/dist/html-B_uf_8Zi.js +12736 -0
  4. package/dist/index.js +1260 -5179
  5. package/dist/lib/alineas/alineas_numbers.d.ts +5 -0
  6. package/dist/lib/extractors/action_directives.d.ts +54 -0
  7. package/dist/lib/extractors/article_portions.d.ts +59 -0
  8. package/dist/lib/extractors/definitions.d.ts +3 -0
  9. package/dist/lib/{text_parsers → extractors}/links.d.ts +35 -20
  10. package/dist/lib/extractors/references.d.ts +8 -0
  11. package/dist/lib/{table_of_contents.d.ts → extractors/table_of_contents.d.ts} +10 -2
  12. package/dist/lib/index.d.ts +18 -6
  13. package/dist/lib/linkers/html.d.ts +45 -0
  14. package/dist/lib/linkers/markdown.d.ts +15 -0
  15. package/dist/lib/markdown.d.ts +1 -0
  16. package/dist/lib/server/alineas/alineas_images_utils.d.ts +88 -0
  17. package/dist/lib/server/config.d.ts +1 -1
  18. package/dist/lib/server/databases/index.d.ts +1 -5
  19. package/dist/lib/server/html_simplifier.d.ts +34 -0
  20. package/dist/lib/server/index.d.ts +3 -0
  21. package/dist/lib/server/linkers/html.d.ts +21 -0
  22. package/dist/lib/server/tables_of_contents.d.ts +2 -0
  23. package/dist/lib/text_parsers/actions.d.ts +11 -1
  24. package/dist/lib/text_parsers/articles.d.ts +15 -15
  25. package/dist/lib/text_parsers/ast.d.ts +8 -3
  26. package/dist/lib/text_parsers/citations.d.ts +4 -4
  27. package/dist/lib/text_parsers/dates.d.ts +10 -10
  28. package/dist/lib/text_parsers/divisions.d.ts +13 -13
  29. package/dist/lib/text_parsers/helpers.d.ts +2 -1
  30. package/dist/lib/text_parsers/numbers.d.ts +16 -15
  31. package/dist/lib/text_parsers/parsers.d.ts +17 -1
  32. package/dist/lib/text_parsers/portions.d.ts +25 -19
  33. package/dist/lib/text_parsers/prepositions.d.ts +7 -6
  34. package/dist/lib/text_parsers/references.d.ts +17 -15
  35. package/dist/lib/text_parsers/relative_locations.d.ts +9 -9
  36. package/dist/lib/text_parsers/search_queries.d.ts +7 -0
  37. package/dist/lib/text_parsers/search_queries.test.d.ts +1 -0
  38. package/dist/lib/text_parsers/separators.d.ts +3 -3
  39. package/dist/lib/text_parsers/texts.d.ts +14 -14
  40. package/dist/lib/text_parsers/transformers.d.ts +3 -2
  41. package/dist/lib/text_parsers/typography.d.ts +9 -9
  42. package/dist/scripts/add_links_to_senat_parsed_documents.d.ts +1 -0
  43. package/dist/scripts/{link_table_of_contents_to_simplified_html.d.ts → add_positions_to_table_of_contents.d.ts} +1 -13
  44. package/dist/scripts/enrich_assemblee_documents.d.ts +1 -0
  45. package/dist/scripts/extract_alineas_images.d.ts +71 -0
  46. package/dist/scripts/generate_alineas_numbers_review.d.ts +24 -0
  47. package/dist/scripts/{extract_texts_infos.d.ts → index_typesense.d.ts} +1 -0
  48. package/dist/scripts/merge_reviewed_alineas_numbers.d.ts +16 -0
  49. package/dist/scripts/simplify_word_html.d.ts +1 -0
  50. package/dist/server.js +19498 -74
  51. package/package.json +25 -17
  52. package/dist/lib/server/databases/tisseuse.d.ts +0 -1
  53. package/dist/lib/text_parsers/index.d.ts +0 -8
  54. package/dist/lib/text_parsers/text_titles_infos.json.d.ts +0 -4
  55. package/dist/scripts/configure.d.ts +0 -1
  56. package/dist/scripts/extract_assemblee_dossiers_et_documents_infos.d.ts +0 -6
  57. package/dist/scripts/test.d.ts +0 -0
  58. /package/dist/lib/{text_parsers/index.test.d.ts → extractors/action_directives.test.d.ts} +0 -0
  59. /package/dist/lib/{text_parsers/links.test.d.ts → extractors/article_portions.test.d.ts} +0 -0
  60. /package/dist/{scripts/add_links_to_assemblee_documents.d.ts → lib/extractors/links.test.d.ts} +0 -0
  61. /package/dist/{scripts/etude_natures_dates_et_titres_textes.d.ts → lib/extractors/references.test.d.ts} +0 -0
  62. /package/dist/{scripts/extract_jos_infos.d.ts → lib/server/html_simplifier.test.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Nom spécifique d’un article, par exemple « liminaire »
3
3
  */
4
- export declare const nomSpecialArticle: import('./parsers.js').TextParser;
4
+ export declare const nomSpecialArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
5
  /**
6
6
  * Type d'un article, issu :
7
7
  * - issu d’une loi organique (L.O.),
@@ -12,11 +12,11 @@ export declare const nomSpecialArticle: import('./parsers.js').TextParser;
12
12
  * Une étoile à la suite mentionne un décret pris en
13
13
  * Conseil des ministres, par exemple « L.O. » ou « D*. »
14
14
  */
15
- export declare const typeArticle: import('./parsers.js').TextParser;
15
+ export declare const typeArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
16
16
  /**
17
17
  * Numéro générique d’article, par exemple « L.O 113-1 » ou « L328-1 A bis-0 » ou « préliminaire »
18
18
  */
19
- export declare const nomArticle: import('./parsers.js').TextParser;
19
+ export declare const nomArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
20
20
  /**
21
21
  * Numéro d’article, utilisé lors de sa définition,
22
22
  * par exemple « L.O 113-1 » ou « L328-1 A bis-0 » ou « préliminaire »
@@ -25,7 +25,7 @@ export declare const nomArticle: import('./parsers.js').TextParser;
25
25
  * « Art. 235 ter XB - I. - 1. Il est institué une taxe […]
26
26
  * le numéro est 235 ter XB et I. et 1. sont des numéros de portions.
27
27
  */
28
- export declare const nomArticleDefinition: import('./parsers.js').TextParser;
28
+ export declare const nomArticleDefinition: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
29
29
  /**
30
30
  * Numéro d’article à l'intérieur d'un projet ou d'une proposition de loi
31
31
  *
@@ -34,35 +34,35 @@ export declare const nomArticleDefinition: import('./parsers.js').TextParser;
34
34
  * Dans les versions suivantes, le numéro d'article est un nombre éventuellement
35
35
  * suivi d'un adverbe multiplicatif latin.
36
36
  */
37
- export declare const nomArticleProjetOuPropositionLoi: import('./parsers.js').TextParser;
37
+ export declare const nomArticleProjetOuPropositionLoi: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
38
38
  /**
39
39
  * Déclaration d'un article au sein d'une citation dans un projet
40
40
  * ou une proposition de loi
41
41
  * Exemple : « Art. L. 322‑66. - blablabla… en début de ligne
42
42
  */
43
- export declare const definitionArticleDansCitation: import('./parsers.js').TextParser;
43
+ export declare const definitionArticleDansCitation: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
44
44
  /**
45
45
  * Déclaration d'un article dans un projet ou une proposition de loi
46
46
  * Exemple : « Article 2 » en début de ligne
47
47
  */
48
- export declare const definitionArticleDansProjetOuPropositionLoi: import('./parsers.js').TextParser;
48
+ export declare const definitionArticleDansProjetOuPropositionLoi: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
49
49
  /**
50
50
  * Désignation d’un article, de façon absolue (avec son numero ou nom) ou relative (précédent, suivant, …)
51
51
  */
52
- export declare const designationArticle: import('./parsers.js').TextParser;
53
- export declare const listeArticles1Internal: import('./parsers.js').TextParser;
52
+ export declare const designationArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
53
+ export declare const listeArticles1Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
54
54
  /**
55
55
  * Liste d’articles, comprenant au minimum deux articles
56
56
  */
57
- export declare const listeArticles: import('./parsers.js').TextParser;
58
- export declare const articles2Internal: import('./parsers.js').TextParser;
59
- export declare const articles1Internal: import('./parsers.js').TextParser;
57
+ export declare const listeArticles: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
58
+ export declare const articles2Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
59
+ export declare const articles1Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
60
60
  /**
61
61
  * Règle principale pour la reconnaissance d’une liste d’articles
62
62
  */
63
- export declare const articles: import('./parsers.js').TextParser;
64
- export declare const article1Internal: import('./parsers.js').TextParser;
63
+ export declare const articles: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
64
+ export declare const article1Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
65
65
  /**
66
66
  * Règle principale pour la reconnaissance d’un seul article
67
67
  */
68
- export declare const article: import('./parsers.js').TextParser;
68
+ export declare const article: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -1,5 +1,7 @@
1
1
  import { FragmentPosition, FragmentReverseTransformation } from './fragments.js';
2
2
  export type CompoundReferencesSeparator = (typeof compoundReferencesSeparators)[number];
3
+ export type ActionTarget = (typeof actionTargets)[number];
4
+ export declare const actionTargets: readonly ["article", "portion", "division", "texte", "unknown"];
3
5
  export type DivisionType = (typeof divisionTypes)[number];
4
6
  export type EuropeanLawNature = (typeof europeanLawNatures)[number];
5
7
  export type FrenchLawNature = (typeof frenchLawNatures)[number];
@@ -9,15 +11,17 @@ export type LocalizationAdverb = (typeof localizationAdverbs)[number];
9
11
  export type PortionType = (typeof portionTypes)[number];
10
12
  export type TextAst = boolean | null | number | string | TextAstAction | TextAstArticle | TextAstBoundedInterval | TextAstCitation | TextAstLocalization | TextAstNumber | TextAstPosition | TextAstReference | TextAstText | TextAstTextIdentification | TextAstTextInfos | Array<TextAst>;
11
13
  export interface TextAstAction {
12
- action: "CREATION" | "CREATION_OU_MODIFICATION" | "MODIFICATION" | "SUPPRESSION";
14
+ action: "abroger" | "ajouter" | "application" | "compléter" | "dérogation" | "devenir" | "insérer" | "mention" | "modifier" | "précision" | "prévision" | "remplacer" | "renuméroter" | "rédiger" | "référence_définition" | "rétablir" | "supprimer";
13
15
  actionInContent?: boolean;
14
16
  originalCitations?: TextAstCitation[];
17
+ target?: ActionTarget;
15
18
  }
16
19
  export type TextAstArticle = {
17
20
  definition?: boolean;
18
21
  definitionSuffix?: string;
19
22
  implicitText?: TextAstText | undefined;
20
23
  localizationAdverb?: LocalizationAdverb;
24
+ newOrOld?: "new" | "old";
21
25
  ofTheSaid?: boolean;
22
26
  type: "article";
23
27
  } & TextAstLocalization & TextAstPosition;
@@ -76,6 +80,7 @@ export type TextAstIncompleteHeader = {
76
80
  export interface TextAstLocalization {
77
81
  index?: number;
78
82
  num?: string;
83
+ present?: boolean;
79
84
  relative?: number | "+∞";
80
85
  }
81
86
  export type TextAstNumber = {
@@ -129,11 +134,11 @@ export type TextInfosByWordsTreeNode = {
129
134
  [word: string]: TextInfosByWordsTree;
130
135
  };
131
136
  export declare const compoundReferencesSeparators: readonly [",", "à", "et", "ou", "sauf"];
132
- export declare const europeanLawNatures: readonly ["DIRECTIVE_EURO", "REGLEMENTEUROPEEN"];
137
+ export declare const europeanLawNatures: readonly ["ARRETEEURO", "ARRETEURO", "AVISEURO", "DECISION_EURO", "DECLARATIONEURO", "DELIBERATIONEURO", "DIRECTIVE_EURO", "INFORMATIONEURO", "INSTRUCTIONEURO", "LETTREEURO", "REGLEMENTEUROPEEN"];
133
138
  export declare const frenchLawNatures: readonly ["ARRETE", "CIRCULAIRE", "CODE", "CONSTITUTION", "DECRET", "DECRET_LOI", "LOI", "LOI_CONSTIT", "LOI_ORGANIQUE", "ORDONNANCE"];
134
139
  export declare const internationalLawNatures: readonly ["CONVENTION"];
135
140
  export declare const divisionTypes: readonly ["partie", "livre", "titre", "sous-titre", "chapitre", "section", "sous-section", "paragraphe", "sous-paragraphe", "sous-sous-paragraphe"];
136
- export declare const lawNatures: readonly ["DIRECTIVE_EURO", "REGLEMENTEUROPEEN", "ARRETE", "CIRCULAIRE", "CODE", "CONSTITUTION", "DECRET", "DECRET_LOI", "LOI", "LOI_CONSTIT", "LOI_ORGANIQUE", "ORDONNANCE", "CONVENTION"];
141
+ export declare const lawNatures: readonly ["ARRETEEURO", "ARRETEURO", "AVISEURO", "DECISION_EURO", "DECLARATIONEURO", "DELIBERATIONEURO", "DIRECTIVE_EURO", "INFORMATIONEURO", "INSTRUCTIONEURO", "LETTREEURO", "REGLEMENTEUROPEEN", "ARRETE", "CIRCULAIRE", "CODE", "CONSTITUTION", "DECRET", "DECRET_LOI", "LOI", "LOI_CONSTIT", "LOI_ORGANIQUE", "ORDONNANCE", "CONVENTION"];
137
142
  /**
138
143
  * Portions are elements of an article.
139
144
  * "items" is a generic term for lines preceded with a number.
@@ -1,7 +1,7 @@
1
- import { TextAstCitation } from './ast.js';
1
+ import { TextAst, TextAstCitation } from './ast.js';
2
2
  import { TextParserContext } from './parsers.js';
3
3
  import { TransformationLeaf } from './transformers.js';
4
- export declare const citationLigne: import('./parsers.js').TextParser;
5
- export declare const citationSimple: import('./parsers.js').TextParser;
6
- export declare const citation: import('./parsers.js').TextParser;
4
+ export declare const citationLigne: import('./parsers.js').TextParser<TextAst>;
5
+ export declare const citationSimple: import('./parsers.js').TextParser<TextAst>;
6
+ export declare const citation: import('./parsers.js').TextParser<TextAst>;
7
7
  export declare function convertCitationToText(context: TextParserContext, citation: TextAstCitation): TransformationLeaf;
@@ -1,10 +1,10 @@
1
- export declare const annee: import('./parsers.js').TextParser;
2
- export declare const anneeCalendrierRepublicain: import('./parsers.js').TextParser;
3
- export declare const jour: import('./parsers.js').TextParser;
4
- export declare const jourCalendrierRepublicain: import('./parsers.js').TextParser;
5
- export declare const mois: import('./parsers.js').TextParser;
6
- export declare const moisCalendrierRepublicain: import('./parsers.js').TextParser;
7
- export declare const date: import('./parsers.js').TextParser;
8
- export declare const dateCalendrierRepublicain: import('./parsers.js').TextParser;
9
- export declare const duDate: import('./parsers.js').TextParser;
10
- export declare const espaceDuDate: import('./parsers.js').TextParser;
1
+ export declare const annee: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
+ export declare const anneeCalendrierRepublicain: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
3
+ export declare const jour: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
4
+ export declare const jourCalendrierRepublicain: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const mois: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const moisCalendrierRepublicain: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const date: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
8
+ export declare const dateCalendrierRepublicain: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
9
+ export declare const duDate: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
10
+ export declare const espaceDuDate: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -1,28 +1,28 @@
1
1
  /**
2
2
  * Divisions des textes : Divisions des textes supra-articles
3
3
  */
4
- export declare const natureDivisionSingulier: import('./parsers.js').TextParser;
5
- export declare const natureDivisionPluriel: import('./parsers.js').TextParser;
6
- export declare const nomDivision: import('./parsers.js').TextParser;
7
- export declare const numeroDivision: import('./parsers.js').TextParser;
4
+ export declare const natureDivisionSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const natureDivisionPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const nomDivision: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const numeroDivision: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
8
8
  /**
9
9
  * Déclaration d'une division
10
10
  */
11
- export declare const definitionDivision: import('./parsers.js').TextParser;
12
- export declare const designationDivision: import('./parsers.js').TextParser;
13
- export declare const division2Internal: import('./parsers.js').TextParser;
14
- export declare const division1Internal: import('./parsers.js').TextParser;
11
+ export declare const definitionDivision: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
12
+ export declare const designationDivision: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
13
+ export declare const division2Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
14
+ export declare const division1Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
15
15
  /**
16
16
  * Règle principale pour la reconnaissance d’une seule division
17
17
  */
18
- export declare const division: import('./parsers.js').TextParser;
18
+ export declare const division: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
19
19
  /**
20
20
  * Liste de divisions, comprenant au minimum deux divisions
21
21
  */
22
- export declare const listeDivisions: import('./parsers.js').TextParser;
23
- export declare const divisions2Internal: import('./parsers.js').TextParser;
24
- export declare const divisions1Internal: import('./parsers.js').TextParser;
22
+ export declare const listeDivisions: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
23
+ export declare const divisions2Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
24
+ export declare const divisions1Internal: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
25
25
  /**
26
26
  * Règle principale pour la reconnaissance d’une liste de divisions
27
27
  */
28
- export declare const divisions: import('./parsers.js').TextParser;
28
+ export declare const divisions: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -1,4 +1,4 @@
1
- import { CompoundReferencesSeparator, TextAstAtomicReference, TextAstParentChild, TextAstReference } from './ast.js';
1
+ import { ActionTarget, CompoundReferencesSeparator, TextAstAtomicReference, TextAstParentChild, TextAstReference } from './ast.js';
2
2
  import { FragmentPosition } from './fragments.js';
3
3
  export declare const addChildLeftToLastChild: (reference: TextAstReference, child: TextAstReference) => TextAstReference;
4
4
  export declare const createEnumerationOrBoundedInterval: (reference: TextAstReference, remaining: Array<[CompoundReferencesSeparator, TextAstReference]>, position: FragmentPosition) => TextAstReference;
@@ -8,6 +8,7 @@ export declare const getHighestAtomicType: (type1: TextAstAtomicReference["type"
8
8
  export declare const getReferenceHighestAtomicType: (reference: TextAstReference) => TextAstAtomicReference["type"];
9
9
  export declare function iterAtomicFirstParentReferences<T extends TextAstAtomicReference | TextAstParentChild>(reference: TextAstReference): Generator<T, void>;
10
10
  export declare function iterAtomicReferences(reference: TextAstReference): Generator<TextAstAtomicReference, void>;
11
+ export declare function actionTargetFromReference(reference: TextAstReference): ActionTarget;
11
12
  export declare function iterIncludedReferences(reference: TextAstReference, { citations }?: {
12
13
  citations?: boolean;
13
14
  }): Generator<TextAstReference, void>;
@@ -1,18 +1,19 @@
1
- export declare const eme: import('./parsers.js').TextParser;
1
+ import { TextAst } from './ast.js';
2
+ export declare const eme: import('./parsers.js').TextParser<TextAst>;
2
3
  /**
3
4
  * Nombre cardinal ou ordinal
4
5
  */
5
- export declare const nombreAsTextAstNumber: import('./parsers.js').TextParser;
6
- export declare const nombreCardinal: import('./parsers.js').TextParser;
7
- export declare const adjectifNumeralOrdinalCourt: import('./parsers.js').TextParser;
8
- export declare const nombreRomainCardinal: import('./parsers.js').TextParser;
9
- export declare const nombreRomainOrdinal: import('./parsers.js').TextParser;
10
- export declare const nombreRomainOu0iAsTextAstNumber: import('./parsers.js').TextParser;
11
- export declare const adjectifNumeralCardinalDix: import('./parsers.js').TextParser;
12
- export declare const adjectifNumeralCardinalDizaine: import('./parsers.js').TextParser;
13
- export declare const adjectifNumeralCardinalUnite: import('./parsers.js').TextParser;
14
- export declare const adjectifNumeralCardinalLong: import('./parsers.js').TextParser;
15
- export declare const adjectifNumeralCardinal: import('./parsers.js').TextParser;
16
- export declare const adjectifNumeralOrdinalLong: import('./parsers.js').TextParser;
17
- export declare const adjectifNumeralOrdinal: import('./parsers.js').TextParser;
18
- export declare const adverbeMultiplicatifLatin: import('./parsers.js').TextParser;
6
+ export declare const nombreAsTextAstNumber: import('./parsers.js').TextParser<TextAst>;
7
+ export declare const nombreCardinal: import('./parsers.js').TextParser<TextAst>;
8
+ export declare const adjectifNumeralOrdinalCourt: import('./parsers.js').TextParser<TextAst>;
9
+ export declare const nombreRomainCardinal: import('./parsers.js').TextParser<TextAst>;
10
+ export declare const nombreRomainOrdinal: import('./parsers.js').TextParser<TextAst>;
11
+ export declare const nombreRomainOu0iAsTextAstNumber: import('./parsers.js').TextParser<TextAst>;
12
+ export declare const adjectifNumeralCardinalDix: import('./parsers.js').TextParser<TextAst>;
13
+ export declare const adjectifNumeralCardinalDizaine: import('./parsers.js').TextParser<TextAst>;
14
+ export declare const adjectifNumeralCardinalUnite: import('./parsers.js').TextParser<TextAst>;
15
+ export declare const adjectifNumeralCardinalLong: import('./parsers.js').TextParser<TextAst>;
16
+ export declare const adjectifNumeralCardinal: import('./parsers.js').TextParser<TextAst>;
17
+ export declare const adjectifNumeralOrdinalLong: import('./parsers.js').TextParser<TextAst>;
18
+ export declare const adjectifNumeralOrdinal: import('./parsers.js').TextParser<TextAst>;
19
+ export declare const adverbeMultiplicatifLatin: import('./parsers.js').TextParser<TextAst>;
@@ -3,7 +3,13 @@ import { FragmentPosition } from './fragments.js';
3
3
  export type TextInfosConverter = (infos: TextAstTextInfos, context: TextParserContext) => TextAst | undefined;
4
4
  export type RegExpConverter = (match: RegExpExecArray, context: TextParserContext) => TextAst | undefined;
5
5
  export type TextAstConverter<T extends TextAst> = (ast: T, context: TextParserContext) => TextAst | undefined;
6
- export type TextParser = (context: TextParserContext) => TextAst | undefined;
6
+ export type TextParser<T extends TextAst = TextAst> = {
7
+ (context: TextParserContext): T | undefined;
8
+ extract?: (context: TextParserContext, options?: {
9
+ jumpExact?: boolean;
10
+ overlapWindow?: number;
11
+ }) => Generator<T, void, undefined>;
12
+ };
7
13
  export declare class TextParserContext {
8
14
  input: string;
9
15
  offset: number;
@@ -27,6 +33,16 @@ export declare const chain: (sequence: Array<TextParser | TextParser[]>, { expor
27
33
  export declare const convert: (parser: TextParser | TextParser[], { value }: {
28
34
  value: TextAst | TextAstConverter<TextAst>;
29
35
  }) => TextParser;
36
+ /**
37
+ * Executes a parser only if a fast-path regular expression matches ahead in the text.
38
+ * It checks if the `fastRegExp` pattern exists within a short window ahead of `context.offset`.
39
+ * If not, it skips evaluating the inner combinator tree, saving massive amounts of operations.
40
+ */
41
+ export declare const fastPath: <T extends TextAst = TextAst>(fastRegExpContent: string, parser: TextParser<T> | TextParser<T>[], windowSize?: number, globalRegExpContent?: string) => TextParser<T>;
42
+ export declare const lookBehind: (parser: TextParser | TextParser[], { lookbackLength, value, }?: {
43
+ lookbackLength?: number;
44
+ value?: TextAst | TextAstConverter<TextAst>;
45
+ }) => TextParser;
30
46
  export declare const optional: (parser: TextParser | TextParser[], { default: defaultValue, value, }: {
31
47
  default: TextAst | TextParser;
32
48
  value?: TextAst | TextAstConverter<TextAst>;
@@ -1,28 +1,34 @@
1
- export declare const naturePortionSingulier: import('./parsers.js').TextParser;
2
- export declare const naturePortionPluriel: import('./parsers.js').TextParser;
1
+ import { TextParser } from './parsers.js';
2
+ export declare const naturePortionSingulier: TextParser<import('./ast.js').TextAst>;
3
+ export declare const naturePortionPluriel: TextParser<import('./ast.js').TextAst>;
3
4
  /**
4
5
  * Numéro de portion d'article, par exemple « III » ou « c » ou « 3° »
5
6
  *
6
7
  * Au sein d'un article, une portion peut contenir des sous-…-portions ou des alinéas
7
- * NB: sil savère plus utile lors de la réutilisation de mieux séparer et structurer
8
+ * NB: s'il s'avère plus utile lors de la réutilisation de mieux séparer et structurer
8
9
  * ces différents cas, il faudrait découper cette règle en trois.
9
10
  */
10
- export declare const numeroPortion: import('./parsers.js').TextParser;
11
+ export declare const numeroPortion: TextParser<import('./ast.js').TextAst>;
11
12
  /**
12
13
  * Portion désignée !
13
14
  * - soit par un adjectif relatif (par exemple « même alinéa)
14
15
  * - soit par un nombre ordinal écrit en lettres (par exemple « troisième phrase »)
15
16
  * - soit par un npmbre cardinal (par exemple « alinéa 3 »)
16
17
  */
17
- export declare const unePortion: import('./parsers.js').TextParser;
18
- export declare const numeroPortionOuUnePortion: import('./parsers.js').TextParser;
19
- export declare const plusieursPortions: import('./parsers.js').TextParser;
18
+ export declare const unePortion: TextParser<import('./ast.js').TextAst>;
19
+ /**
20
+ * Parser pour gérer des formes comme "alinéas 2 et 3" ou "phrases 1, 2 et 3"
21
+ * C'est-à-dire: naturePortionPluriel suivi d'une énumération de numéros
22
+ */
23
+ export declare const quelquesPortionsNumerotees: TextParser<import('./ast.js').TextAst>;
24
+ export declare const numeroPortionOuUnePortion: TextParser<import('./ast.js').TextAst>;
25
+ export declare const plusieursPortions: TextParser<import('./ast.js').TextAst>;
20
26
  /**
21
27
  * Note: `listeQuelquesPortions`, `listePortion`, `listePortions`
22
28
  * et `listeQuelquesPortions` sont quasiment identiques.
23
29
  * TODO: Les fusionner ?
24
30
  */
25
- export declare const listePlusieursPortions: import('./parsers.js').TextParser;
31
+ export declare const listePlusieursPortions: TextParser<import('./ast.js').TextAst>;
26
32
  /**
27
33
  * TODO: Plus réfléchir aux différentes formulations possibles.
28
34
  * Attention à ne pas capturer « [elle] les a [reconnus] »,
@@ -32,24 +38,24 @@ export declare const listePlusieursPortions: import('./parsers.js').TextParser;
32
38
  * et `listeQuelquesPortions` sont quasiment identiques.
33
39
  * TODO: Les fusionner ?
34
40
  */
35
- export declare const listePortion: import('./parsers.js').TextParser;
41
+ export declare const listePortion: TextParser<import('./ast.js').TextAst>;
36
42
  /**
37
43
  * Note: `listeQuelquesPortions`, `listePortion`, `listePortions`
38
44
  * et `listeQuelquesPortions` sont quasiment identiques.
39
45
  * TODO: Les fusionner ?
40
46
  */
41
- export declare const listeQuelquesPortions: import('./parsers.js').TextParser;
47
+ export declare const listeQuelquesPortions: TextParser<import('./ast.js').TextAst>;
42
48
  /**
43
49
  * Note: `listeQuelquesPortions`, `listePortion`, `listePortions`
44
50
  * et `listeQuelquesPortions` sont quasiment identiques.
45
51
  * TODO: Les fusionner ?
46
52
  */
47
- export declare const listePortions: import('./parsers.js').TextParser;
48
- export declare const portionsEntreParenthesesOuVirgules: import('./parsers.js').TextParser;
49
- export declare const localisationPortion: import('./parsers.js').TextParser;
50
- export declare const portion: import('./parsers.js').TextParser;
51
- export declare const portions: import('./parsers.js').TextParser;
52
- export declare const auPortion: import('./parsers.js').TextParser;
53
- export declare const auxPortions: import('./parsers.js').TextParser;
54
- export declare const portionPrecisePluriel: import('./parsers.js').TextParser;
55
- export declare const portionPreciseSingulier: import('./parsers.js').TextParser;
53
+ export declare const listePortions: TextParser<import('./ast.js').TextAst>;
54
+ export declare const portionsEntreParenthesesOuVirgules: TextParser<import('./ast.js').TextAst>;
55
+ export declare const localisationPortion: TextParser<import('./ast.js').TextAst>;
56
+ export declare const portion: TextParser<import('./ast.js').TextAst>;
57
+ export declare const portions: TextParser<import('./ast.js').TextAst>;
58
+ export declare const auPortion: TextParser<import('./ast.js').TextAst>;
59
+ export declare const auxPortions: TextParser<import('./ast.js').TextAst>;
60
+ export declare const portionPrecisePluriel: TextParser<import('./ast.js').TextAst>;
61
+ export declare const portionPreciseSingulier: TextParser<import('./ast.js').TextAst>;
@@ -1,6 +1,7 @@
1
- export declare const introPluriel: import('./parsers.js').TextParser;
2
- export declare const introSingulier: import('./parsers.js').TextParser;
3
- export declare const liaisonPluriel: import('./parsers.js').TextParser;
4
- export declare const liaisonSingulier: import('./parsers.js').TextParser;
5
- export declare const ditPluriel: import('./parsers.js').TextParser;
6
- export declare const ditSingulier: import('./parsers.js').TextParser;
1
+ export declare const introPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
+ export declare const introSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
3
+ export declare const liaisonPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
4
+ export declare const liaisonSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const ditPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const ditSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const adjectifTemporelSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -1,15 +1,17 @@
1
- export declare const uniteBasePluriel: import('./parsers.js').TextParser;
2
- export declare const uniteBaseSingulier: import('./parsers.js').TextParser;
3
- export declare const uniteBasePreciseePluriel: import('./parsers.js').TextParser;
4
- export declare const uniteBasePreciseeSingulier: import('./parsers.js').TextParser;
5
- export declare const deUniteBasePreciseePluriel: import('./parsers.js').TextParser;
6
- export declare const deUniteBasePreciseeSingulier: import('./parsers.js').TextParser;
7
- export declare const deUniteBasePrecisee: import('./parsers.js').TextParser;
8
- export declare const referencePluriel2Internal: import('./parsers.js').TextParser;
9
- export declare const referenceSingulier2Internal: import('./parsers.js').TextParser;
10
- export declare const referencePluriel1Internal: import('./parsers.js').TextParser;
11
- export declare const referenceSingulier1Internal: import('./parsers.js').TextParser;
12
- export declare const reference1Internal: import('./parsers.js').TextParser;
13
- export declare const reference: import('./parsers.js').TextParser;
14
- export declare const referenceSeule: import('./parsers.js').TextParser;
15
- export declare const listeReferencesSeules: import('./parsers.js').TextParser;
1
+ import { TextAstReference } from './ast.js';
2
+ import { TextParser } from './parsers.js';
3
+ export declare const uniteBasePluriel: TextParser<import('./ast.js').TextAst>;
4
+ export declare const uniteBaseSingulier: TextParser<import('./ast.js').TextAst>;
5
+ export declare const uniteBasePreciseePluriel: TextParser<import('./ast.js').TextAst>;
6
+ export declare const uniteBasePreciseeSingulier: TextParser<import('./ast.js').TextAst>;
7
+ export declare const deUniteBasePreciseePluriel: TextParser<import('./ast.js').TextAst>;
8
+ export declare const deUniteBasePreciseeSingulier: TextParser<import('./ast.js').TextAst>;
9
+ export declare const deUniteBasePrecisee: TextParser<import('./ast.js').TextAst>;
10
+ export declare const referencePluriel2Internal: TextParser<import('./ast.js').TextAst>;
11
+ export declare const referenceSingulier2Internal: TextParser<import('./ast.js').TextAst>;
12
+ export declare const referencePluriel1Internal: TextParser<import('./ast.js').TextAst>;
13
+ export declare const referenceSingulier1Internal: TextParser<import('./ast.js').TextAst>;
14
+ export declare const reference1Internal: TextParser<import('./ast.js').TextAst>;
15
+ export declare const reference: TextParser<TextAstReference>;
16
+ export declare const referenceSeule: TextParser<import('./ast.js').TextAst>;
17
+ export declare const listeReferencesSeules: TextParser<import('./ast.js').TextAst>;
@@ -1,9 +1,9 @@
1
- export declare const adjectifRelatifPluriel: import('./parsers.js').TextParser;
2
- export declare const adjectifRelatifSingulier: import('./parsers.js').TextParser;
3
- export declare const adverbeRelatif: import('./parsers.js').TextParser;
4
- export declare const espaceAdverbeRelatif: import('./parsers.js').TextParser;
5
- export declare const espacePrecite: import('./parsers.js').TextParser;
6
- export declare const relatifPluriel: import('./parsers.js').TextParser;
7
- export declare const relatifPlurielPrepose: import('./parsers.js').TextParser;
8
- export declare const relatifSingulier: import('./parsers.js').TextParser;
9
- export declare const relatifSingulierPrepose: import('./parsers.js').TextParser;
1
+ export declare const adjectifRelatifPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
+ export declare const adjectifRelatifSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
3
+ export declare const adverbeRelatif: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
4
+ export declare const espaceAdverbeRelatif: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const espacePrecite: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const relatifPluriel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const relatifPlurielPrepose: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
8
+ export declare const relatifSingulier: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
9
+ export declare const relatifSingulierPrepose: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -0,0 +1,7 @@
1
+ export declare const searchArticleKeyword: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
+ export declare const searchArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
3
+ export declare const searchTexteAbbreviations: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
4
+ export declare const searchTexte: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const searchTexteLibreAvantArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const searchTexteLibreApresArticle: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const searchQueryReference: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,7 @@
1
- export declare const separateurEnumeration: import('./parsers.js').TextParser;
1
+ export declare const separateurEnumeration: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
2
  /**
3
3
  * Note: exclusion must be tested before enumeration (because of ",") and
4
4
  * before plage (because of "à").
5
5
  */
6
- export declare const separateurExclusion: import('./parsers.js').TextParser;
7
- export declare const separateurPlage: import('./parsers.js').TextParser;
6
+ export declare const separateurExclusion: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const separateurPlage: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -4,14 +4,14 @@
4
4
  * Note: Une majuscule est nécessaire à Constitution pour éviter des faux positifs
5
5
  * comme "Les quantités qui contribuent à la constitution d’une capacité d’effacement".
6
6
  */
7
- export declare const natureTexteFrancais: import('./parsers.js').TextParser;
7
+ export declare const natureTexteFrancais: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
8
8
  /**
9
9
  * Symbole « n° » + identifiant d’un texte français, par exemple « n° 2001-692 »
10
10
  */
11
- export declare const numeroTexteFrancais: import('./parsers.js').TextParser;
12
- export declare const numeroEtOuDateTexteFrancais: import('./parsers.js').TextParser;
13
- export declare const decisionConseilConstitutionnel: import('./parsers.js').TextParser;
14
- export declare const optionalEspaceDuTerritoire: import('./parsers.js').TextParser;
11
+ export declare const numeroTexteFrancais: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
12
+ export declare const numeroEtOuDateTexteFrancais: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
13
+ export declare const decisionConseilConstitutionnel: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
14
+ export declare const optionalEspaceDuTerritoire: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
15
15
  /**
16
16
  * Déclaration d’un (nom de) texte français
17
17
  *
@@ -19,33 +19,33 @@ export declare const optionalEspaceDuTerritoire: import('./parsers.js').TextPars
19
19
  * et qu'elle ne contient rien d'autre après..
20
20
  * Note: Ce parser n'utilise pas wordsTree car il sert à le générer.
21
21
  */
22
- export declare const definitionTexteFrancais: import('./parsers.js').TextParser;
22
+ export declare const definitionTexteFrancais: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
23
23
  /**
24
24
  * Règle principale pour la reconnaissance d’un texte français
25
25
  *
26
26
  * Note: Une majuscule est nécessaire à Constitution pour éviter des faux positifs
27
27
  * comme "Les quantités qui contribuent à la constitution d’une capacité d’effacement".
28
28
  */
29
- export declare const texteFrancais: import('./parsers.js').TextParser;
29
+ export declare const texteFrancais: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
30
30
  /**
31
31
  * Identifiant d’un texte européen, par exemple « 2002/22/CE »
32
32
  */
33
- export declare const identifiantTexteEuropeen: import('./parsers.js').TextParser;
33
+ export declare const identifiantTexteEuropeen: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
34
34
  /**
35
35
  * Numéro d’un texte européen, par exemple « n° 2002/22/CE » ou « 2002/22/CE »
36
36
  */
37
- export declare const numeroTexteEuropeen: import('./parsers.js').TextParser;
37
+ export declare const numeroTexteEuropeen: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
38
38
  /**
39
39
  * Identification d’un texte européen, c’est-à-dire son numero et/ou sa date (sa nature est traitée ailleurs)
40
40
  */
41
- export declare const identificationTexteEuropeen: import('./parsers.js').TextParser;
41
+ export declare const identificationTexteEuropeen: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
42
42
  /**
43
43
  * Nature d’un texte européen, par exemple « règlement (UE) »
44
44
  */
45
- export declare const natureTexteEuropeen: import('./parsers.js').TextParser;
45
+ export declare const natureTexteEuropeen: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
46
46
  /**
47
47
  * Règle principale pour la reconnaissance d’un texte européen
48
48
  */
49
- export declare const texteEuropeen: import('./parsers.js').TextParser;
50
- export declare const texteInternational: import('./parsers.js').TextParser;
51
- export declare const texte: import('./parsers.js').TextParser;
49
+ export declare const texteEuropeen: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
50
+ export declare const texteInternational: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
51
+ export declare const texte: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -44,7 +44,8 @@ export declare function chainTransformers(title: string, transformers: Array<Tra
44
44
  export declare function newReverseTransformationsMergedFromPositionsIterator(transformation: Transformation): Generator<FragmentReverseTransformation, void, FragmentPosition | undefined>;
45
45
  /**
46
46
  * Converts an array of transformed (e.g. simplified) positions to an array
47
- * of original (e.g. HTML) positions
47
+ * of arrays of original (e.g. HTML) positions (one array of original positions
48
+ * for each transformed position)
48
49
  *
49
50
  * Each position is split to ensure that it doesn't contain any HTML element.
50
51
  *
@@ -52,7 +53,7 @@ export declare function newReverseTransformationsMergedFromPositionsIterator(tra
52
53
  *
53
54
  * Use this function for diffs.
54
55
  */
55
- export declare function reversePositionsSplitFromPositions(transformation: Transformation, positions: Array<FragmentPosition[]>): Array<FragmentPosition[]>;
56
+ export declare function reversePositionsSplitFromPositions(transformation: Transformation, transformedPositions: FragmentPosition[]): Array<FragmentPosition[]>;
56
57
  /**
57
58
  * Converts an array of transformed (e.g. simplified) positions to an array
58
59
  * of original (e.g. HTML) positions
@@ -1,9 +1,9 @@
1
- export declare const apostrophe: import('./parsers.js').TextParser;
2
- export declare const espace: import('./parsers.js').TextParser;
3
- export declare const espaceOuRien: import('./parsers.js').TextParser;
4
- export declare const lettreAsciiMinuscule: import('./parsers.js').TextParser;
5
- export declare const nonLettre: import('./parsers.js').TextParser;
6
- export declare const numero: import('./parsers.js').TextParser;
7
- export declare const tiret: import('./parsers.js').TextParser;
8
- export declare const virgule: import('./parsers.js').TextParser;
9
- export declare const virguleOuEspace: import('./parsers.js').TextParser;
1
+ export declare const apostrophe: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
2
+ export declare const espace: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
3
+ export declare const espaceOuRien: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
4
+ export declare const lettreAscii: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
5
+ export declare const nonLettre: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
6
+ export declare const numero: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
7
+ export declare const tiret: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
8
+ export declare const virgule: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
9
+ export declare const virguleOuEspace: import('./parsers.js').TextParser<import('./ast.js').TextAst>;
@@ -1,18 +1,6 @@
1
1
  /**
2
2
  * TODO;
3
- * Ce script devrait travailler sur Documents_enrichi, mais ce n'est pas le seul.
4
- * Car il y a un script qui met les liens, etc.
5
- * Documents_enrichi doit contenir tout ce que contient Documents (sauf éventuellement des formats inutiles).
6
- * Il faut donc un script de syncronisation entre Documents et Documents_enrichi, qui (re)lance plusieurs scripts
7
- * quand quelque chose a changé entre les fichiers d'un Documents et ceux d'un Documents_enrichi.
8
- * Problème : le script de synchronisation devrait faire partie de @tricoteuses/assemblee.
9
- * Mais les scripts qui mettent les liens et ce script qui détecte la structure doit faire partie de @tricoteuses/tisseuse.
10
- * Quand le script de synchronisation détecte qu'une document (quelque soit son format a changé ou a été ajouté ou…) il devrait
11
- * lancer tisseuse.
12
- * Pas de problème car c'est tricoteuses-assemblee-update qui gère tout cela et tricoteuses-assemblee-update peut aussi bien
13
- * lancer des scripts assemblee que des scripts tisseuse.
14
- *
15
- * Ce script parse_bill_structure travaille sur un seul document (dans Documents_enrichi) dont le chemin lui est fourni.
3
+ * Ce script parse_bill_structure travaille sur un seul document (dans Documents_enrichis) dont le chemin lui est fourni.
16
4
  * Il suppose que le script simplify_assemblee_document, qui simplifie le document (et qui créé les fichiers intermédiaires
17
5
  * dans le répertoire) est déjà passé.
18
6
  *