@tricoteuses/tisseuse 0.20.0 → 0.21.1
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.
- package/README.md +113 -0
- package/dist/{html-C07GdZ0O.js → html-tp0cMUmA.js} +4170 -3730
- package/dist/index.js +136 -135
- package/dist/{resolver-4v_fWVor.js → resolver-CzmDH4S3.js} +138 -130
- package/dist/server-f-legi.js +73 -92
- package/dist/server.js +831 -793
- package/dist/src/lib/extractors/action_directives_cpu.test.d.ts +1 -0
- package/dist/src/lib/extractors/links.citation_scope.test.d.ts +1 -0
- package/dist/src/lib/extractors/links.d.ts +3 -1
- package/dist/src/lib/extractors/portion_references_cpu.test.d.ts +1 -0
- package/dist/src/lib/extractors/references.d.ts +12 -8
- package/dist/src/lib/f_legi/resolver.d.ts +0 -2
- package/dist/src/lib/index.d.ts +2 -1
- package/dist/src/lib/legi/canutes_article_preload.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_candidates.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_resolver.d.ts +5 -4
- package/dist/src/lib/legi/canutes_resolver_cache.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_root_cid_index.integration.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_section_roots.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_sql.d.ts +4 -0
- package/dist/src/lib/legi/canutes_text_titles_cache.d.ts +24 -0
- package/dist/src/lib/legi/canutes_text_titles_cache.integration.test.d.ts +1 -0
- package/dist/src/lib/legi/canutes_titles_metrics.d.ts +13 -0
- package/dist/src/lib/legi/text_titles_infos.d.ts +1 -0
- package/dist/src/lib/linkers/html.d.ts +6 -4
- package/dist/src/lib/linkers/markdown.d.ts +5 -3
- package/dist/src/lib/linkers/reference-mode.test.d.ts +1 -0
- package/dist/src/lib/server/akn_rendering.test.d.ts +1 -0
- package/dist/src/lib/server/bill_action_resolver_invariance.test.d.ts +1 -0
- package/dist/src/lib/server/bill_action_target_fixtures.d.ts +7 -0
- package/dist/src/lib/server/bill_citation_anaphora.test.d.ts +1 -0
- package/dist/src/lib/server/bill_comparison.d.ts +42 -0
- package/dist/src/lib/server/bill_comparison.test.d.ts +1 -0
- package/dist/src/lib/server/bill_target_scope.test.d.ts +1 -0
- package/dist/src/lib/server/canutes_legacy_candidates.d.ts +19 -0
- package/dist/src/lib/server/canutes_only_compatibility.test.d.ts +1 -0
- package/dist/src/lib/server/databases/canutes_root_cid_index.d.ts +11 -0
- package/dist/src/lib/server/databases/canutes_text_titles_cache.d.ts +8 -0
- package/dist/src/lib/server/flegi_profiling.d.ts +14 -0
- package/dist/src/lib/server/flegi_profiling.test.d.ts +1 -0
- package/dist/src/lib/server/masquage-typesense.test.d.ts +1 -0
- package/dist/src/lib/server/masquage_typesense.d.ts +36 -0
- package/dist/src/lib/server/sql_profiling.d.ts +30 -0
- package/dist/src/lib/server/sql_profiling.test.d.ts +1 -0
- package/dist/src/lib/text_parsers/action_words.d.ts +2 -0
- package/dist/src/lib/text_parsers/action_words.test.d.ts +1 -0
- package/dist/src/lib/text_parsers/texts.d.ts +1 -0
- package/dist/src/scripts/compare_legi_bills.d.ts +1 -0
- package/dist/src/scripts/configure_postgres_legi_resolver.d.ts +1 -0
- package/dist/src/scripts/configure_postgres_root_cid_index.d.ts +1 -0
- package/dist/src/scripts/profile_canutes_bill.d.ts +1 -0
- package/dist/src/scripts/test_canutes_titles_cache.d.ts +1 -0
- package/dist/src/scripts/warm_canutes_text_titles_cache.d.ts +1 -0
- package/package.json +9 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $ as e, $t as t, A as n, At as r, B as i, Bt as a, Ct as o, Dt as s, Et as c, F as l,
|
|
2
|
-
import { $ as
|
|
1
|
+
import { $ as e, $t as t, A as n, At as r, B as i, Bt as a, Ct as o, Dt as s, Et as c, F as l, Ft as u, Gt as d, H as f, Ht as p, I as m, J as ee, Jt as te, K as ne, Kt as re, L as ie, Lt as ae, Mt as oe, Nt as se, Ot as h, P as ce, Pt as le, Q as ue, Qt as de, R as fe, Rt as pe, St as me, T as he, Tt as ge, U as _e, Ut as ve, V as ye, Vt as be, Wt as xe, X as Se, Xt as Ce, Y as we, Yt as Te, Z as Ee, Zt as De, _ as Oe, _t as ke, a as g, at as Ae, b as je, bt as Me, c as Ne, ct as Pe, d as _, dt as Fe, en as Ie, et as Le, f as Re, ft as ze, g as Be, gt as Ve, ht as He, i as Ue, it as We, jt as Ge, kt as v, l as Ke, lt as qe, mt as Je, n as Ye, nn as Xe, nt as Ze, o as y, ot as Qe, p as $e, q as et, qt as tt, r as b, rn as nt, s as rt, st as it, t as at, tn as ot, tt as st, u as ct, ut as lt, v as ut, vt as dt, wt as ft, xt as pt, y as mt, yt as ht, z as gt, zt as _t } from "./html-tp0cMUmA.js";
|
|
2
|
+
import { $ as vt, A as yt, At as x, B as S, Bt as bt, C as xt, D as St, E as Ct, Et as wt, F as Tt, Ft as C, G as Et, It as Dt, L as Ot, Lt as w, M as kt, Mt as T, N as At, O as jt, Ot as Mt, P as Nt, Q as Pt, R as Ft, Rt as It, S as E, St as D, T as Lt, Tt as Rt, V as O, Vt as k, W as zt, X as Bt, Y as Vt, Z as Ht, _ as Ut, _t as Wt, at as Gt, b as Kt, c as qt, et as Jt, f as Yt, ft as Xt, g as Zt, gt as Qt, h as $t, ht as en, it as A, j, jt as M, k as tn, kt as N, l as nn, m as rn, mt as an, n as on, nt as sn, p as cn, q as ln, r as un, s as dn, st as fn, t as pn, tt as mn, u as hn, ut as gn, v as _n, vt as vn, w as yn, wt as bn, x as P, z as xn, zt as Sn } from "./resolver-CzmDH4S3.js";
|
|
3
3
|
//#region ../../node_modules/@tricoteuses/legifrance/dist/legal/index.js
|
|
4
|
-
function
|
|
4
|
+
function Cn(e, t) {
|
|
5
5
|
if (e != null) {
|
|
6
6
|
if (!Array.isArray(e)) return e;
|
|
7
7
|
for (let n of e) if (n["@debut"] <= t && t <= n["@fin"]) return n;
|
|
@@ -10,10 +10,10 @@ function Sn(e, t) {
|
|
|
10
10
|
}
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region src/lib/loaders/legifrance.ts
|
|
13
|
-
function
|
|
13
|
+
function F({ data: e, num: t }) {
|
|
14
14
|
return t !== null && (e.num = t), e;
|
|
15
15
|
}
|
|
16
|
-
async function
|
|
16
|
+
async function I(e, t, n) {
|
|
17
17
|
let r = t.get("ARTICLE");
|
|
18
18
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("ARTICLE", r));
|
|
19
19
|
let i = r.get(n);
|
|
@@ -21,9 +21,9 @@ async function F(e, t, n) {
|
|
|
21
21
|
SELECT data, num
|
|
22
22
|
FROM legifrance.article
|
|
23
23
|
WHERE id = ${n}
|
|
24
|
-
`).map(
|
|
24
|
+
`).map(F)[0], r.set(n, i ?? null)), i ?? void 0;
|
|
25
25
|
}
|
|
26
|
-
async function
|
|
26
|
+
async function wn(e, t, n) {
|
|
27
27
|
let r = t.get("JO");
|
|
28
28
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("JO", r));
|
|
29
29
|
let i = r.get(n);
|
|
@@ -34,7 +34,7 @@ async function Cn(e, t, n) {
|
|
|
34
34
|
WHERE id = ${n}
|
|
35
35
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
36
36
|
}
|
|
37
|
-
async function
|
|
37
|
+
async function L(e, t, n) {
|
|
38
38
|
let r = t.get("SECTION_TA");
|
|
39
39
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("SECTION_TA", r));
|
|
40
40
|
let i = r.get(n);
|
|
@@ -45,7 +45,7 @@ async function I(e, t, n) {
|
|
|
45
45
|
WHERE id = ${n}
|
|
46
46
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
47
47
|
}
|
|
48
|
-
async function
|
|
48
|
+
async function Tn(e, t, n) {
|
|
49
49
|
let r = t.get("SECTION_TA");
|
|
50
50
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("SECTION_TA", r));
|
|
51
51
|
let i = new Set(n), a = [];
|
|
@@ -61,7 +61,7 @@ async function wn(e, t, n) {
|
|
|
61
61
|
`).map(({ data: e }) => e)) r.set(t.ID, t), a.push(t);
|
|
62
62
|
return a;
|
|
63
63
|
}
|
|
64
|
-
async function
|
|
64
|
+
async function En(e, t, n) {
|
|
65
65
|
let r = t.get("TEXTELR");
|
|
66
66
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("TEXTELR", r));
|
|
67
67
|
let i = r.get(n);
|
|
@@ -72,7 +72,7 @@ async function Tn(e, t, n) {
|
|
|
72
72
|
WHERE id = ${n}
|
|
73
73
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
74
74
|
}
|
|
75
|
-
async function
|
|
75
|
+
async function Dn(e, t, n) {
|
|
76
76
|
let r = t.get("TEXTEKALI");
|
|
77
77
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("TEXTEKALI", r));
|
|
78
78
|
let i = r.get(n);
|
|
@@ -82,7 +82,7 @@ async function En(e, t, n) {
|
|
|
82
82
|
WHERE id = ${n}
|
|
83
83
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
84
84
|
}
|
|
85
|
-
async function
|
|
85
|
+
async function On(e, t, n) {
|
|
86
86
|
let r = t.get("TEXTELR");
|
|
87
87
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("TEXTELR", r));
|
|
88
88
|
let i = new Set(n), a = [];
|
|
@@ -97,7 +97,7 @@ async function Dn(e, t, n) {
|
|
|
97
97
|
`).map(({ data: e }) => e)) r.set(t.META.META_COMMUN.ID, t), a.push(t);
|
|
98
98
|
return a;
|
|
99
99
|
}
|
|
100
|
-
async function
|
|
100
|
+
async function kn(e, t, n) {
|
|
101
101
|
let r = t.get("TEXTE_VERSION");
|
|
102
102
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("TEXTE_VERSION", r));
|
|
103
103
|
let i = new Set(n), a = [];
|
|
@@ -112,7 +112,7 @@ async function On(e, t, n) {
|
|
|
112
112
|
`).map(({ data: e }) => e)) r.set(t.META.META_COMMUN.ID, t), a.push(t);
|
|
113
113
|
return a;
|
|
114
114
|
}
|
|
115
|
-
async function
|
|
115
|
+
async function An(e, t, n) {
|
|
116
116
|
let r = t.get("TEXTE_VERSION");
|
|
117
117
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("TEXTE_VERSION", r));
|
|
118
118
|
let i = r.get(n);
|
|
@@ -123,7 +123,7 @@ async function kn(e, t, n) {
|
|
|
123
123
|
WHERE id = ${n}
|
|
124
124
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
125
125
|
}
|
|
126
|
-
async function
|
|
126
|
+
async function jn(e, t, n) {
|
|
127
127
|
let r = t.get("ARTICLE");
|
|
128
128
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("ARTICLE", r));
|
|
129
129
|
let i = [];
|
|
@@ -131,80 +131,80 @@ async function An(e, t, n) {
|
|
|
131
131
|
SELECT data, num
|
|
132
132
|
FROM legifrance.article
|
|
133
133
|
${n}
|
|
134
|
-
`).map(
|
|
134
|
+
`).map(F)) r.set(t.META.META_COMMUN.ID, t), i.push(t);
|
|
135
135
|
return i;
|
|
136
136
|
}
|
|
137
137
|
//#endregion
|
|
138
138
|
//#region src/lib/articles.ts
|
|
139
|
-
var
|
|
140
|
-
function R(e) {
|
|
141
|
-
return [e, ...e.TM === void 0 ? [] : R(e.TM)];
|
|
142
|
-
}
|
|
139
|
+
var R = ["2222-02-22", "2999-01-01"];
|
|
143
140
|
function z(e) {
|
|
144
|
-
return e
|
|
141
|
+
return [e, ...e.TM === void 0 ? [] : z(e.TM)];
|
|
145
142
|
}
|
|
146
|
-
function
|
|
147
|
-
return
|
|
143
|
+
function B(e) {
|
|
144
|
+
return e !== void 0 && R.includes(e);
|
|
148
145
|
}
|
|
149
|
-
|
|
146
|
+
function Mn({ dateDebut: e, sourceDateDebut: t, sourceDateFin: n }) {
|
|
147
|
+
return t !== void 0 && n !== void 0 && !B(t) && !B(n) && n <= t ? "never_effective" : e === void 0 || B(e) ? "unknown" : n === "2999-01-01" ? "open_ended" : n === void 0 || B(n) ? "unknown" : n > e ? "dated" : "unknown";
|
|
148
|
+
}
|
|
149
|
+
var Nn = (e) => {
|
|
150
150
|
if (e !== void 0) for (let t = 0; t < e.length; ++t) {
|
|
151
|
-
let n = A(new
|
|
151
|
+
let n = A(new N(e, t));
|
|
152
152
|
if (typeof n == "string") return n;
|
|
153
153
|
}
|
|
154
|
-
},
|
|
154
|
+
}, V = (e) => (e === void 0 ? [] : Array.isArray(e) ? e : [e]).map((e) => Nn(e["#text"])).find((e) => e !== void 0), Pn = (e) => {
|
|
155
155
|
let t = e.META.META_SPEC.META_ARTICLE.DATE_DEBUT;
|
|
156
|
-
if (t !== void 0 && !
|
|
157
|
-
let n = e.CONTEXTE.TEXTE, r = n.TITRE_TXT, i = [...r === void 0 ? [] : (Array.isArray(r) ? r : [r]).map((e) => e["@debut"]), ...n.TM === void 0 ? [] :
|
|
156
|
+
if (t !== void 0 && !R.includes(t)) return t;
|
|
157
|
+
let n = e.CONTEXTE.TEXTE, r = n.TITRE_TXT, i = [...r === void 0 ? [] : (Array.isArray(r) ? r : [r]).map((e) => e["@debut"]), ...n.TM === void 0 ? [] : z(n.TM).map((e) => (Array.isArray(e.TITRE_TM) ? e.TITRE_TM : [e.TITRE_TM]).map((e) => e["@debut"])).flat()].filter((e) => !R.includes(e));
|
|
158
158
|
if (i.length > 0) return i.sort().at(-1);
|
|
159
159
|
let a = n["@date_publi"];
|
|
160
|
-
if (a !== void 0 && !
|
|
160
|
+
if (a !== void 0 && !R.includes(a)) return a;
|
|
161
161
|
let o = n["@date_signature"];
|
|
162
|
-
if (o !== void 0 && !
|
|
162
|
+
if (o !== void 0 && !R.includes(o)) return o;
|
|
163
163
|
let s = e.META.META_SPEC.META_ARTICLE.DATE_FIN;
|
|
164
|
-
if (s !== void 0 && !
|
|
165
|
-
let c =
|
|
164
|
+
if (s !== void 0 && !R.includes(s)) return s;
|
|
165
|
+
let c = V(r);
|
|
166
166
|
if (c !== void 0) return c;
|
|
167
|
-
if (
|
|
167
|
+
if (R.includes(t ?? "")) return t;
|
|
168
168
|
throw Error(`Missing date signature in article ${e.META.META_COMMUN.ID}`);
|
|
169
|
-
},
|
|
169
|
+
}, H = (e) => {
|
|
170
170
|
let t = e.META.META_SPEC.META_ARTICLE.DATE_DEBUT;
|
|
171
|
-
if (t !== void 0 && !
|
|
171
|
+
if (t !== void 0 && !R.includes(t)) return t;
|
|
172
172
|
let n = e.CONTEXTE.TEXTE, r = n["@date_signature"];
|
|
173
|
-
if (r !== void 0 && !
|
|
173
|
+
if (r !== void 0 && !R.includes(r)) return r;
|
|
174
174
|
let i = n["@date_publi"];
|
|
175
|
-
if (i !== void 0 && !
|
|
176
|
-
let a = n.TITRE_TXT, o = [...a === void 0 ? [] : (Array.isArray(a) ? a : [a]).map((e) => e["@debut"]), ...n.TM === void 0 ? [] :
|
|
175
|
+
if (i !== void 0 && !R.includes(i)) return i;
|
|
176
|
+
let a = n.TITRE_TXT, o = [...a === void 0 ? [] : (Array.isArray(a) ? a : [a]).map((e) => e["@debut"]), ...n.TM === void 0 ? [] : z(n.TM).map((e) => (Array.isArray(e.TITRE_TM) ? e.TITRE_TM : [e.TITRE_TM]).map((e) => e["@debut"])).flat()].filter((e) => !R.includes(e));
|
|
177
177
|
if (o.length > 0) return o.sort().at(-1);
|
|
178
178
|
let s = e.META.META_SPEC.META_ARTICLE.DATE_FIN;
|
|
179
|
-
if (s !== void 0 && !
|
|
180
|
-
let c =
|
|
179
|
+
if (s !== void 0 && !R.includes(s)) return s;
|
|
180
|
+
let c = V(a);
|
|
181
181
|
if (c !== void 0) return c;
|
|
182
|
-
if (
|
|
182
|
+
if (R.includes(t ?? "")) return t;
|
|
183
183
|
throw Error(`Missing date signature in article ${e.META.META_COMMUN.ID}`);
|
|
184
184
|
};
|
|
185
|
-
async function
|
|
186
|
-
let i = await
|
|
185
|
+
async function Fn(e, t, n, r) {
|
|
186
|
+
let i = await I(e, t, n);
|
|
187
187
|
if (i === void 0) return;
|
|
188
|
-
let a =
|
|
188
|
+
let a = H(i), o = i.META.META_COMMUN.ORIGINE;
|
|
189
189
|
if (o === "KALI") return;
|
|
190
190
|
let s = i.CONTEXTE.TEXTE;
|
|
191
191
|
if (s.TM === void 0) return;
|
|
192
|
-
let c =
|
|
192
|
+
let c = z(s.TM).reverse(), l;
|
|
193
193
|
switch (o) {
|
|
194
194
|
case "JORF":
|
|
195
195
|
l = c.map((e) => e.TITRE_TM["@id"]);
|
|
196
196
|
break;
|
|
197
197
|
case "LEGI":
|
|
198
|
-
l = c.map((e) =>
|
|
198
|
+
l = c.map((e) => Cn(e.TITRE_TM, a)?.["@id"]);
|
|
199
199
|
break;
|
|
200
|
-
default:
|
|
200
|
+
default: k("getOrLoadArticleSiblingId origine", o);
|
|
201
201
|
}
|
|
202
|
-
return await (r === -1 ?
|
|
202
|
+
return await (r === -1 ? q : K)(e, t, n, a, i.num, l);
|
|
203
203
|
}
|
|
204
|
-
async function
|
|
204
|
+
async function U(e, t, n, r, i, a) {
|
|
205
205
|
let o = r[n];
|
|
206
206
|
if (o === void 0) {
|
|
207
|
-
let s = await
|
|
207
|
+
let s = await L(e, t, n);
|
|
208
208
|
if (s === void 0) return;
|
|
209
209
|
let c = s.STRUCTURE_TA;
|
|
210
210
|
if (c === void 0) return;
|
|
@@ -232,8 +232,8 @@ async function H(e, t, n, r, i, a) {
|
|
|
232
232
|
}
|
|
233
233
|
return o;
|
|
234
234
|
}
|
|
235
|
-
async function
|
|
236
|
-
let r = await
|
|
235
|
+
async function W(e, t, n) {
|
|
236
|
+
let r = await L(e, t, n);
|
|
237
237
|
if (r === void 0) return;
|
|
238
238
|
let i = r.STRUCTURE_TA;
|
|
239
239
|
if (i === void 0) return;
|
|
@@ -241,26 +241,26 @@ async function U(e, t, n) {
|
|
|
241
241
|
if (a !== void 0) return a[0]["@id"];
|
|
242
242
|
let o = i.LIEN_SECTION_TA;
|
|
243
243
|
if (o !== void 0) for (let n of o) {
|
|
244
|
-
let r = await
|
|
244
|
+
let r = await W(e, t, n["@id"]);
|
|
245
245
|
if (r !== void 0) return r;
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
async function
|
|
249
|
-
let r = await
|
|
248
|
+
async function G(e, t, n) {
|
|
249
|
+
let r = await L(e, t, n);
|
|
250
250
|
if (r === void 0) return;
|
|
251
251
|
let i = r.STRUCTURE_TA;
|
|
252
252
|
if (i === void 0) return;
|
|
253
253
|
let a = i.LIEN_SECTION_TA;
|
|
254
254
|
if (a !== void 0) for (let n of a.toReversed()) {
|
|
255
|
-
let r = await
|
|
255
|
+
let r = await G(e, t, n["@id"]);
|
|
256
256
|
if (r !== void 0) return r;
|
|
257
257
|
}
|
|
258
258
|
return i.LIEN_ART?.at(-1)?.["@id"];
|
|
259
259
|
}
|
|
260
|
-
async function
|
|
260
|
+
async function K(e, t, n, r, i, a, o = 0, s = {}, c = void 0) {
|
|
261
261
|
let l = a[o];
|
|
262
262
|
if (l === void 0) return;
|
|
263
|
-
let u = await
|
|
263
|
+
let u = await U(e, t, l, s, n, c);
|
|
264
264
|
if (u === void 0) return;
|
|
265
265
|
let { area: d, index: f, sectionTa: p } = u, m = p.STRUCTURE_TA;
|
|
266
266
|
switch (d) {
|
|
@@ -269,32 +269,32 @@ async function G(e, t, n, r, i, a, o = 0, s = {}, c = void 0) {
|
|
|
269
269
|
for (let n = f + 1; n < c.length; n++) {
|
|
270
270
|
let a = c[n];
|
|
271
271
|
if (a["@num"] !== i) {
|
|
272
|
-
let n = await
|
|
273
|
-
if (n !== void 0 &&
|
|
272
|
+
let n = await I(e, t, a["@id"]);
|
|
273
|
+
if (n !== void 0 && H(n) <= r) return a["@id"];
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
let u = m.LIEN_SECTION_TA;
|
|
277
277
|
if (u !== void 0) for (let n of u) {
|
|
278
|
-
let r = await
|
|
278
|
+
let r = await W(e, t, n["@id"]);
|
|
279
279
|
if (r !== void 0) return r;
|
|
280
280
|
}
|
|
281
|
-
return await
|
|
281
|
+
return await K(e, t, n, r, i, a, o + 1, s, l);
|
|
282
282
|
}
|
|
283
283
|
case "LIEN_SECTION_TA": {
|
|
284
284
|
let c = m.LIEN_SECTION_TA;
|
|
285
285
|
for (let n = f + 1; n < c.length; n++) {
|
|
286
|
-
let r = await
|
|
286
|
+
let r = await W(e, t, c[n]["@id"]);
|
|
287
287
|
if (r !== void 0) return r;
|
|
288
288
|
}
|
|
289
|
-
return await
|
|
289
|
+
return await K(e, t, n, r, i, a, o + 1, s, l);
|
|
290
290
|
}
|
|
291
|
-
default:
|
|
291
|
+
default: k("moveToNextArticleId area", d);
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
|
-
async function
|
|
294
|
+
async function q(e, t, n, r, i, a, o = 0, s = {}, c = void 0) {
|
|
295
295
|
let l = a[o];
|
|
296
296
|
if (l === void 0) return;
|
|
297
|
-
let u = await
|
|
297
|
+
let u = await U(e, t, l, s, n, c);
|
|
298
298
|
if (u === void 0) return;
|
|
299
299
|
let { area: d, index: f, sectionTa: p } = u, m = p.STRUCTURE_TA;
|
|
300
300
|
switch (d) {
|
|
@@ -303,24 +303,24 @@ async function K(e, t, n, r, i, a, o = 0, s = {}, c = void 0) {
|
|
|
303
303
|
for (let n = f - 1; n >= 0; n--) {
|
|
304
304
|
let a = c[n];
|
|
305
305
|
if (a["@num"] !== i) {
|
|
306
|
-
let n = await
|
|
307
|
-
if (n !== void 0 &&
|
|
306
|
+
let n = await I(e, t, a["@id"]);
|
|
307
|
+
if (n !== void 0 && H(n) <= r) return a["@id"];
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
return await
|
|
310
|
+
return await q(e, t, n, r, i, a, o + 1, s, l);
|
|
311
311
|
}
|
|
312
312
|
case "LIEN_SECTION_TA": {
|
|
313
313
|
for (let n = f - 1; n >= 0; n--) {
|
|
314
|
-
let r = await
|
|
314
|
+
let r = await G(e, t, m.LIEN_SECTION_TA[n]["@id"]);
|
|
315
315
|
if (r !== void 0) return r;
|
|
316
316
|
}
|
|
317
317
|
let c = m.LIEN_ART;
|
|
318
|
-
return c === void 0 ? await
|
|
318
|
+
return c === void 0 ? await q(e, t, n, r, i, a, o + 1, s, l) : (u.area = "LIEN_ART", u.index = c.length, await q(e, t, n, r, i, a, o, s));
|
|
319
319
|
}
|
|
320
|
-
default:
|
|
320
|
+
default: k("moveToPreviousArticleId area", d);
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
|
-
var
|
|
323
|
+
var In = (e) => (t, n) => {
|
|
324
324
|
let r = e(t), i = e(n);
|
|
325
325
|
if (r !== i) return r.localeCompare(i);
|
|
326
326
|
let a = t.META.META_COMMUN, o = a.ORIGINE, s = n.META.META_COMMUN, c = s.ORIGINE;
|
|
@@ -339,43 +339,44 @@ var Fn = (e) => (t, n) => {
|
|
|
339
339
|
if (m <= i) return 1;
|
|
340
340
|
}
|
|
341
341
|
throw Error(`TODO: Unable to sort articles ${a.ID} & ${s.ID} by date.`);
|
|
342
|
-
},
|
|
343
|
-
assemblee:
|
|
344
|
-
legifrance:
|
|
345
|
-
}),
|
|
346
|
-
function
|
|
347
|
-
return
|
|
342
|
+
}, J = () => /* @__PURE__ */ new Map(), Ln = () => /* @__PURE__ */ new Map(), Rn = () => ({
|
|
343
|
+
assemblee: J(),
|
|
344
|
+
legifrance: Ln()
|
|
345
|
+
}), zn = new Intl.DateTimeFormat("fr-FR", { dateStyle: "long" });
|
|
346
|
+
function Bn(e) {
|
|
347
|
+
return zn.format(new Date(e)).replace(/^1 /, "1er ");
|
|
348
348
|
}
|
|
349
349
|
//#endregion
|
|
350
350
|
//#region src/lib/json.ts
|
|
351
|
-
var
|
|
351
|
+
var Vn = (e, t) => t instanceof Object && !Array.isArray(t) ? Object.keys(t).sort().reduce((e, n) => (e[n] = t[n], e), {}) : t;
|
|
352
352
|
//#endregion
|
|
353
353
|
//#region src/lib/markdown.ts
|
|
354
|
-
function
|
|
354
|
+
function Y(e) {
|
|
355
355
|
return e?.replace(/\s+/g, " ").replaceAll("[", "\\[").replaceAll("]", "\\]");
|
|
356
356
|
}
|
|
357
357
|
//#endregion
|
|
358
358
|
//#region src/lib/linkers/markdown.ts
|
|
359
|
-
async function
|
|
360
|
-
let
|
|
361
|
-
if (
|
|
362
|
-
await
|
|
363
|
-
let
|
|
364
|
-
|
|
365
|
-
let
|
|
359
|
+
async function Hn({ canutesDb: e, legiResolver: t, date: n, linkBaseUrl: r, linkType: i, parsingMode: a, previousContext: o, text: s }) {
|
|
360
|
+
let c = t ?? (e === void 0 ? void 0 : new $e(e));
|
|
361
|
+
if (c === void 0) throw Error("A Canutes database or legal resolver is required");
|
|
362
|
+
await c.preloadTextTitlesInfos();
|
|
363
|
+
let l = j(s), u = new N(l.output);
|
|
364
|
+
u.currentArticle = o?.currentArticle, u.currentText = o?.currentText;
|
|
365
|
+
let d = s, f = 0;
|
|
366
366
|
for await (let e of _({
|
|
367
|
-
legiResolver:
|
|
368
|
-
context:
|
|
367
|
+
legiResolver: c,
|
|
368
|
+
context: u,
|
|
369
369
|
date: n,
|
|
370
|
-
|
|
370
|
+
parsingMode: a,
|
|
371
|
+
transformation: l
|
|
371
372
|
})) switch (e.type) {
|
|
372
373
|
case "article_definition": break;
|
|
373
374
|
case "external_article": {
|
|
374
|
-
let { articleId: t, historyArticleId: n, originalTransformation: a } = e, o = t === void 0 ? n === void 0 ? void 0 : g(i, r, n) :
|
|
375
|
+
let { articleId: t, historyArticleId: n, originalTransformation: a } = e, o = t === void 0 ? n === void 0 ? void 0 : g(i, r, n) : y(i, r, t);
|
|
375
376
|
if (o !== void 0) {
|
|
376
377
|
if (a === void 0) throw Error(`Missing originalTransformation attribute in external article link: ${JSON.stringify(e, null, 2)}`);
|
|
377
|
-
let t =
|
|
378
|
-
|
|
378
|
+
let t = O(a, `[${Y(S(d, a, f))}](${o})`);
|
|
379
|
+
d = d.slice(0, a.position.start + f) + t + d.slice(a.position.stop + f), f += t.length - (a.position.stop - a.position.start);
|
|
379
380
|
}
|
|
380
381
|
break;
|
|
381
382
|
}
|
|
@@ -383,64 +384,64 @@ async function Vn({ canutesDb: e, legiResolver: t, date: n, linkBaseUrl: r, link
|
|
|
383
384
|
let { originalTransformation: t, sectionTaId: n } = e;
|
|
384
385
|
if (n !== void 0) {
|
|
385
386
|
if (t === void 0) throw Error(`Missing originalTransformation attribute in external division link: ${JSON.stringify(e, null, 2)}`);
|
|
386
|
-
let a =
|
|
387
|
-
|
|
387
|
+
let a = O(t, `[${Y(S(d, t, f))}](${y(i, r, n)})`);
|
|
388
|
+
d = d.slice(0, t.position.start + f) + a + d.slice(t.position.stop + f), f += a.length - (t.position.stop - t.position.start);
|
|
388
389
|
}
|
|
389
390
|
break;
|
|
390
391
|
}
|
|
391
392
|
case "external_text": {
|
|
392
393
|
let { originalTransformation: t, text: a } = e;
|
|
393
394
|
if (a.cid === void 0) {
|
|
394
|
-
a.relative !== 0 && console.error(`Link to text "${
|
|
395
|
+
a.relative !== 0 && console.error(`Link to text "${u.text(a.position)}" without CID: ${JSON.stringify(a, null, 2)}`);
|
|
395
396
|
continue;
|
|
396
397
|
}
|
|
397
398
|
if (t === void 0) throw Error(`Missing originalTransformation attribute in external text link: ${JSON.stringify(e, null, 2)}`);
|
|
398
|
-
let o =
|
|
399
|
+
let o = b(u.text(a.position)), s;
|
|
399
400
|
if (o !== void 0) {
|
|
400
|
-
let e = await
|
|
401
|
+
let e = await c.getActiveArticlesByTextAndNum({
|
|
401
402
|
date: n,
|
|
402
403
|
num: o,
|
|
403
404
|
textId: a.cid
|
|
404
405
|
}), t = e.filter(({ dateDebut: e, dateFin: t }) => e <= n && t > n);
|
|
405
|
-
if (t.length === 1)
|
|
406
|
+
if (t.length === 1) s = y(i, r, t[0].id);
|
|
406
407
|
else if (e.length > 0) {
|
|
407
|
-
let e = await
|
|
408
|
+
let e = await c.getArticleHistoryInfo({
|
|
408
409
|
num: o,
|
|
409
410
|
textId: a.cid
|
|
410
411
|
});
|
|
411
|
-
e !== void 0 && (
|
|
412
|
+
e !== void 0 && (s = g(i, r, e.articleId));
|
|
412
413
|
}
|
|
413
414
|
}
|
|
414
|
-
|
|
415
|
-
let
|
|
416
|
-
|
|
415
|
+
s === void 0 && (s = y(i, r, a.cid));
|
|
416
|
+
let l = O(t, `[${Y(S(d, t, f))}](${s})`);
|
|
417
|
+
d = d.slice(0, t.position.start + f) + l + d.slice(t.position.stop + f), f += l.length - (t.position.stop - t.position.start);
|
|
417
418
|
break;
|
|
418
419
|
}
|
|
419
420
|
case "internal_article": {
|
|
420
421
|
let { definition: t, originalTransformation: n } = e;
|
|
421
422
|
if (n === void 0) throw Error(`Missing originalTransformation attribute in internal article link: ${JSON.stringify(e, null, 2)}`);
|
|
422
|
-
let r =
|
|
423
|
-
|
|
423
|
+
let r = O(n, `[${Y(S(d, n, f))}](#definition_article_${t.textId}_${t.article.num.replaceAll(" ", "_")})`);
|
|
424
|
+
d = d.slice(0, n.position.start + f) + r + d.slice(n.position.stop + f), f += r.length - (n.position.stop - n.position.start);
|
|
424
425
|
break;
|
|
425
426
|
}
|
|
426
427
|
case "european_text": {
|
|
427
428
|
let { url: t, originalTransformation: n } = e;
|
|
428
429
|
if (t === void 0) continue;
|
|
429
430
|
if (n === void 0) throw Error(`Missing originalTransformation attribute in european text link: ${JSON.stringify(e, null, 2)}`);
|
|
430
|
-
let r =
|
|
431
|
-
|
|
431
|
+
let r = S(d, n, f), i = O(n, `<a class="lien_texte_european" href="${t}"${t.startsWith("/") ? "" : " target=\"_blank\""}>${r}</a>`);
|
|
432
|
+
d = d.slice(0, n.position.start + f) + i + d.slice(n.position.stop + f), f += i.length - (n.position.stop - n.position.start);
|
|
432
433
|
break;
|
|
433
434
|
}
|
|
434
|
-
default:
|
|
435
|
+
default: k("Link", e);
|
|
435
436
|
}
|
|
436
437
|
return {
|
|
437
|
-
context:
|
|
438
|
-
output:
|
|
438
|
+
context: u,
|
|
439
|
+
output: d === s ? null : d
|
|
439
440
|
};
|
|
440
441
|
}
|
|
441
442
|
//#endregion
|
|
442
443
|
//#region src/lib/loaders/assemblee.ts
|
|
443
|
-
async function
|
|
444
|
+
async function Un(e, t, n) {
|
|
444
445
|
let r = t.get("Document");
|
|
445
446
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("Document", r));
|
|
446
447
|
let i = r.get(n);
|
|
@@ -450,7 +451,7 @@ async function Hn(e, t, n) {
|
|
|
450
451
|
WHERE uid = ${n}
|
|
451
452
|
`)[0]?.data, r.set(n, i ?? null)), i ?? void 0;
|
|
452
453
|
}
|
|
453
|
-
async function
|
|
454
|
+
async function Wn(e, t, n) {
|
|
454
455
|
let r = t.get("Document");
|
|
455
456
|
return r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("Document", r)), (await e`
|
|
456
457
|
SELECT data, uid
|
|
@@ -458,7 +459,7 @@ async function Un(e, t, n) {
|
|
|
458
459
|
WHERE data ->> 'dossierRef' = ${n}
|
|
459
460
|
`).map(({ data: e, uid: t }) => (r.set(t, e ?? null), e));
|
|
460
461
|
}
|
|
461
|
-
async function
|
|
462
|
+
async function Gn(e, t, n) {
|
|
462
463
|
let r = t.get("DossierParlementaire");
|
|
463
464
|
r === void 0 && (r = /* @__PURE__ */ new Map(), t.set("DossierParlementaire", r));
|
|
464
465
|
let i = r.get(n);
|
|
@@ -470,15 +471,15 @@ async function Wn(e, t, n) {
|
|
|
470
471
|
}
|
|
471
472
|
//#endregion
|
|
472
473
|
//#region src/lib/text_parsers/search_queries.ts
|
|
473
|
-
var
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
474
|
+
var Kn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i" }), X = M([
|
|
475
|
+
Kn,
|
|
476
|
+
C(D, { default: "" }),
|
|
477
|
+
x(h, v)
|
|
477
478
|
], { value: (e, t) => ({
|
|
478
479
|
num: e[2],
|
|
479
480
|
position: t.position(),
|
|
480
481
|
type: "article"
|
|
481
|
-
}) }),
|
|
482
|
+
}) }), qn = x(w("c(?:ode|\\.)? ?civ(?:il)?", {
|
|
482
483
|
flags: "i",
|
|
483
484
|
value: (e, t) => ({
|
|
484
485
|
cid: "LEGITEXT000006070721",
|
|
@@ -586,13 +587,13 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
586
587
|
title: "Code de commerce",
|
|
587
588
|
type: "texte"
|
|
588
589
|
})
|
|
589
|
-
})), Z =
|
|
590
|
+
})), Z = x(qn, T(E, { value: (e, t) => e === void 0 ? void 0 : {
|
|
590
591
|
...e,
|
|
591
592
|
position: t.position()
|
|
592
|
-
} }),
|
|
593
|
+
} }), T(P, { value: (e, t) => ({
|
|
593
594
|
...e,
|
|
594
595
|
position: t.position()
|
|
595
|
-
}) })), Q =
|
|
596
|
+
}) })), Q = C(w(" (?:du |de la |de l'|des |de |d')?", { flags: "i" }), { default: "" }), Jn = w(".+?(?=\\s*(?:du |de la |de l'|des |de |d')?\\s*(?:art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?))", {
|
|
596
597
|
flags: "i",
|
|
597
598
|
value: (e, t) => ({
|
|
598
599
|
type: "texte",
|
|
@@ -606,10 +607,10 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
606
607
|
title: e[0].trim(),
|
|
607
608
|
position: t.position()
|
|
608
609
|
})
|
|
609
|
-
}),
|
|
610
|
+
}), Yn = x(M([
|
|
610
611
|
Z,
|
|
611
612
|
Q,
|
|
612
|
-
|
|
613
|
+
X
|
|
613
614
|
], { value: (e, t) => {
|
|
614
615
|
let n = e[0];
|
|
615
616
|
return {
|
|
@@ -618,8 +619,8 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
618
619
|
position: t.position(),
|
|
619
620
|
type: "parent-enfant"
|
|
620
621
|
};
|
|
621
|
-
} }),
|
|
622
|
-
|
|
622
|
+
} }), M([
|
|
623
|
+
X,
|
|
623
624
|
Q,
|
|
624
625
|
Z
|
|
625
626
|
], { value: (e, t) => ({
|
|
@@ -627,10 +628,10 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
627
628
|
parent: e[2],
|
|
628
629
|
position: t.position(),
|
|
629
630
|
type: "parent-enfant"
|
|
630
|
-
}) }),
|
|
631
|
-
|
|
631
|
+
}) }), M([
|
|
632
|
+
Jn,
|
|
632
633
|
Q,
|
|
633
|
-
|
|
634
|
+
X
|
|
634
635
|
], { value: (e, t) => {
|
|
635
636
|
let n = e[0];
|
|
636
637
|
return {
|
|
@@ -639,8 +640,8 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
639
640
|
position: t.position(),
|
|
640
641
|
type: "parent-enfant"
|
|
641
642
|
};
|
|
642
|
-
} }),
|
|
643
|
-
|
|
643
|
+
} }), M([
|
|
644
|
+
X,
|
|
644
645
|
Q,
|
|
645
646
|
$
|
|
646
647
|
], { value: (e, t) => ({
|
|
@@ -648,6 +649,6 @@ var Gn = w("art(?:icle|icl|ic|i|s)?\\.?|al(?:inéa|inea|in|i)?\\.?", { flags: "i
|
|
|
648
649
|
parent: e[2],
|
|
649
650
|
position: t.position(),
|
|
650
651
|
type: "parent-enfant"
|
|
651
|
-
}) }),
|
|
652
|
+
}) }), X, Z, $), Xn = Hn;
|
|
652
653
|
//#endregion
|
|
653
|
-
export {
|
|
654
|
+
export { pn as LegiResolver, N as TextParserContext, ue as action, he as actionDirective, d as actionTargets, _t as addChildLeftToLastChild, at as addLinksOrReferencesToHtmlPage, Ye as addLinksToHtml, Hn as addLinksToMarkdown, Xn as addLinksToText, rt as addPositionsToTableOfContentsItems, fn as adjectifNumeralCardinal, gn as adjectifNumeralOrdinalCourt, Bt as adjectifTemporelSingulier, Xt as adverbeMultiplicatifLatin, zt as adverbeRelatif, x as alternatives, pt as article, me as articles, k as assertNever, se as auPortion, le as auxPortions, on as buildAndInstallTextTitlesInfos, Qe as buildArticlePortionTreeFromHtml, un as buildTextTitlesInfos, M as chain, Nt as chainTransformers, e as citation, Le as citationLigne, st as citationSimple, Ze as citationToText, b as citedArticleNumFromTextCitation, Mn as classifyArticleTemporalStatus, dn as cleanTexteTitle, re as compoundReferencesSeparators, T as convert, yn as convertHtmlElementsToText, a as createEnumerationOrBoundedInterval, be as createParentChildTreeFromReferences, A as date, Lt as decodeNamedHtmlEntities, Ct as decodeNumericHtmlEntities, o as definitionArticleDansCitation, ft as definitionArticleDansProjetOuPropositionLoi, He as definitionDivision, Yt as definitionTexteFrancais, ge as designationArticle, Ve as designationDivision, Ht as ditPluriel, Pt as ditSingulier, ke as division, tt as divisionTypes, dt as divisions, Gt as duDate, D as espace, Et as espaceAdverbeRelatif, te as europeanLawNatures, F as extendLoadedArticle, Be as extractActionDirectiveAstsFromText, Oe as extractActionDirectivesFromHtml, ut as extractActionDirectivesFromText, c as extractArticleDefinitionsFromCitation, Je as extractBillDefinitions, ce as extractCitationReferences, We as extractFrenchCitations, it as extractPortionSelectors, l as extractReferences, m as extractReferencesWithOriginalTransformations, _ as extractTextLinks, n as findBoundaryPositionCue, Bn as formatLongDate, Te as frenchLawNatures, Pn as getArticleDateDebut, H as getArticleDateSignature, ie as getExtractedReferences, fe as getExtractedReferencesWithOriginalTransformations, Ne as getExtractedTableOfContentsFromTextBill, Pe as getLegalPhraseTextBounds, I as getOrLoadArticle, Fn as getOrLoadArticleSiblingId, Un as getOrLoadDocument, Wn as getOrLoadDocumentsByDossierParlementaireUid, Gn as getOrLoadDossierParlementaire, wn as getOrLoadJo, L as getOrLoadSectionTa, Tn as getOrLoadSectionsTa, An as getOrLoadTexteVersion, Dn as getOrLoadTextekali, En as getOrLoadTextelr, kn as getOrLoadTextesVersions, On as getOrLoadTexteslr, Ke as getTableOfContentsItems, qe as getTableUnitNoteRanges, qt as getTexteVersionDateDebut, nn as getTexteVersionDateSignature, cn as identificationTexteEuropeen, Ce as internationalLawNatures, vt as introPluriel, Jt as introSingulier, lt as isArticlePortionStructuralStart, B as isLegifranceSentinelDate, De as isTextAstAtomicReference, de as isTextAstDivision, t as isTextAstPortion, p as iterAtomicFirstParentReferences, ve as iterAtomicReferences, xe as iterIncludedReferences, Re as iterReferenceLinks, Vn as jsonReplacer, Ie as lawNatures, bn as lettreAscii, mn as liaisonPluriel, sn as liaisonSingulier, Ue as linkTypes, s as listeArticles, ne as listeReferencesSeules, jn as loadArticles, ot as localizationAdverbs, ht as natureDivisionSingulier, rn as natureTexteFrancais, J as newAssembleeObjectCache, Ln as newLegifranceObjectCache, Rn as newObjectCache, Tt as newReverseTransformationsMergedFromPositionsIterator, h as nomArticle, v as nomSpecialArticle, an as nombreAsTextAstNumber, en as nombreCardinal, Qt as nombreRomainCardinal, Wt as nombreRomainOrdinal, vn as nombreRomainOu0iAsTextAstNumber, Rt as nonLettre, r as normalizeBillArticleNumber, wt as numero, Me as numeroDivision, $t as numeroEtOuDateTexteFrancais, u as numeroPortion, Zt as numeroTexteEuropeen, Ut as numeroTexteFrancais, C as optional, _n as optionalEspaceDuTerritoire, Ge as parseArticleNumber, Fe as parseArticleSubdivisionMarker, oe as parseBillArticleLabel, Ae as parseFrenchCitationAt, Dt as parseText, Xe as portionTypes, ae as portions, et as reference, i as referenceDoctrinale, ye as referenceDoctrinaleArticleAvantSource, f as referenceDoctrinaleArticlesAvantSource, _e as referenceDoctrinaleSourceAvantArticle, gt as referenceParsingModes, ee as referenceSeule, w as regExp, ln as relatifPlurielPrepose, Vt as relatifSingulierPrepose, It as repeat, St as replaceHtmlPatterns, jt as replacePattern, tn as replaceTextPatterns, mt as resolveActionDirectivesFromHtml, je as resolveActionDirectivesFromText, ze as resolvePortionSelector, Ot as reversePositionsSplitFromPositions, Ft as reverseTransformationFromPosition, xn as reverseTransformationsMergedFromPositions, S as reverseTransformedInnerFragment, O as reverseTransformedReplacement, X as searchArticle, Kn as searchArticleKeyword, Yn as searchQueryReference, Z as searchTexte, qn as searchTexteAbbreviations, yt as simplifyHtml, j as simplifyPlainText, kt as simplifyText, At as simplifyUnicodeCharacters, In as sortArticlesByDate, hn as sortTextesVersionsByDate, nt as startCanutesTitlesMetrics, Kt as texte, P as texteEuropeen, E as texteFrancais, Ee as texteFrancaisAbrege, xt as texteInternational, pe as unePortion, we as uniteBasePreciseeSingulier, Se as uniteBaseSingulier, g as urlFromArticleVersionsId, y as urlFromLegalId, Sn as variable, Mt as virguleOuEspace, ct as walkTableOfContents, bt as wordsTree };
|