@tricoteuses/tisseuse 0.18.0 → 0.19.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/dist/server.js CHANGED
@@ -1,11 +1,11 @@
1
- import { $ as e, A as t, Bt as n, C as r, D as i, Dt as a, E as o, Et as s, I as c, M as l, Mt as u, O as d, Ot as f, Q as p, S as m, St as h, V as g, Y as _, b as v, c as y, g as b, h as x, j as S, k as C, kt as ee, lt as w, m as te, n as ne, p as re, rt as ie, s as ae, st as oe, t as se, u as ce, v as le, w as ue, x as de, z as fe, zt as pe } from "./html-B0V8X0v6.js";
2
- import { At as me, Dt as T, Et as E, F as he, I as ge, Mt as D, N as _e, O as ve, Ot as O, Pt as k, gt as ye, k as be, lt as xe, n as Se, o as Ce, r as we, t as Te, tt as Ee, yt as A } from "./resolver-cn-qJE70.js";
1
+ import { $ as e, At as t, B as n, Bt as r, C as i, Ct as a, D as o, Dt as s, E as c, H as l, L as u, M as d, N as f, Nt as p, O as m, Ot as h, S as g, Vt as _, X as v, b as y, c as b, ct as x, et as ee, g as S, h as te, it as ne, j as re, k as ie, kt as C, m as ae, n as oe, p as se, s as ce, t as le, u as ue, ut as w, v as de, w as fe, x as pe } from "./html-EuDDYMr2.js";
2
+ import { A as me, Dt as T, Ft as E, I as he, L as ge, Nt as D, Ot as O, P as _e, _t as ve, bt as k, jt as ye, k as be, kt as A, n as xe, nt as Se, o as Ce, r as we, t as Te, ut as Ee } from "./resolver-tBQRf8TL.js";
3
3
  import * as De from "node:crypto";
4
4
  import { createHash as Oe } from "node:crypto";
5
5
  import j from "fs-extra";
6
- import M from "node:path";
6
+ import ke from "node:path";
7
7
  //#region src/lib/server/assemblee_amendment_search.ts
8
- function ke(e, t) {
8
+ function Ae(e, t) {
9
9
  let n = e;
10
10
  for (let e of t) {
11
11
  if (typeof n != "object" || !n) return null;
@@ -13,34 +13,34 @@ function ke(e, t) {
13
13
  }
14
14
  return typeof n == "string" && n.trim() ? n.trim() : null;
15
15
  }
16
- function Ae(e) {
17
- return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
18
- }
19
16
  function je(e) {
20
- return Ae(w(e).text());
17
+ return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
21
18
  }
22
19
  function Me(e) {
23
- let t = Ae([
24
- ke(e, [
20
+ return je(w(e).text());
21
+ }
22
+ function Ne(e) {
23
+ let t = je([
24
+ Ae(e, [
25
25
  "corps",
26
26
  "contenuAuteur",
27
27
  "dispositif"
28
28
  ]),
29
- ke(e, [
29
+ Ae(e, [
30
30
  "corps",
31
31
  "contenuAuteur",
32
32
  "dispositifAmdtCreditPLF"
33
33
  ]),
34
- ke(e, [
34
+ Ae(e, [
35
35
  "corps",
36
36
  "contenuAuteur",
37
37
  "dispositifAmdtCreditPLFR"
38
38
  ])
39
- ].filter((e) => e !== null).map((e) => je(e)).join("\n")), n = ke(e, [
39
+ ].filter((e) => e !== null).map((e) => Me(e)).join("\n")), n = Ae(e, [
40
40
  "corps",
41
41
  "contenuAuteur",
42
42
  "exposeSommaire"
43
- ]), r = n === null ? "" : je(n);
43
+ ]), r = n === null ? "" : Me(n);
44
44
  return [...t ? [{
45
45
  content: t,
46
46
  itemKind: "dispositif",
@@ -51,7 +51,7 @@ function Me(e) {
51
51
  label: "Exposé sommaire"
52
52
  }] : []];
53
53
  }
54
- function Ne(e, t) {
54
+ function Pe(e, t) {
55
55
  return Oe("sha256").update(JSON.stringify({
56
56
  item: e,
57
57
  metadata: t
@@ -59,16 +59,16 @@ function Ne(e, t) {
59
59
  }
60
60
  //#endregion
61
61
  //#region src/lib/extractors/article_action_targets.ts
62
- function N(e) {
62
+ function M(e) {
63
63
  switch (e.type) {
64
- case "reference_et_action": return N(e.reference);
65
- case "enumeration": return [...N(e.left), ...N(e.right)];
64
+ case "reference_et_action": return M(e.reference);
65
+ case "enumeration": return [...M(e.left), ...M(e.right)];
66
66
  case "parent-enfant": {
67
- let t = [...pe(e.parent)].filter((e) => e.type === "article");
67
+ let t = [...r(e.parent)].filter((e) => e.type === "article");
68
68
  return t.length === 1 ? [{
69
69
  article: t[0],
70
70
  reference: e
71
- }] : t.length > 1 ? [] : N(e.child).map((t) => ({
71
+ }] : t.length > 1 ? [] : M(e.child).map((t) => ({
72
72
  article: t.article,
73
73
  reference: {
74
74
  ...e,
@@ -89,11 +89,11 @@ function N(e) {
89
89
  }
90
90
  //#endregion
91
91
  //#region src/lib/extractors/article_action_effects.ts
92
- function Pe(e, t) {
92
+ function Fe(e, t) {
93
93
  if (t < 2) return null;
94
- let n = be(e), r = b(e);
94
+ let n = me(e), r = S(e);
95
95
  if (r.length !== t) return null;
96
- let i = c(new E(n.output)), a = (e) => ge(n, [e])[0].position;
96
+ let i = u(new T(n.output)), a = (e) => ge(n, [e])[0].position;
97
97
  return r.map((t, n) => ({
98
98
  sourceText: e,
99
99
  referencePosition: a({
@@ -103,24 +103,24 @@ function Pe(e, t) {
103
103
  actionPosition: a(t.position)
104
104
  }));
105
105
  }
106
- function Fe(e, t, n) {
106
+ function Ie(e, t, n) {
107
107
  if (t.length < 2) return null;
108
- let r = be(e), i = r.output, a = (e) => ge(r, [e])[0].position, o = c(new E(i)), s = o.flatMap(N);
108
+ let r = me(e), i = r.output, a = (e) => ge(r, [e])[0].position, o = u(new T(i)), s = o.flatMap(M);
109
109
  if (s.length !== t.length || s.length < 2) return null;
110
- let l = de(i);
111
- if (l.length > 0) return n?.kind !== "replace_portion" || l.length !== s.length || l.some((e, t) => {
110
+ let c = pe(i);
111
+ if (c.length > 0) return n?.kind !== "replace_portion" || c.length !== s.length || c.some((e, t) => {
112
112
  let n = s[t];
113
- return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !ie(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
113
+ return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !ne(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
114
114
  }) ? null : s.map((r, i) => ({
115
115
  targetId: t[i],
116
116
  directive: {
117
117
  ...n,
118
118
  reference: r.reference,
119
- portionSelectors: ie(r.reference),
119
+ portionSelectors: ne(r.reference),
120
120
  tableTarget: {
121
121
  type: "table",
122
- rowIndex: l[i].rowIndex,
123
- rowEndIndex: l[i].rowEndIndex
122
+ rowIndex: c[i].rowIndex,
123
+ rowEndIndex: c[i].rowEndIndex
124
124
  }
125
125
  },
126
126
  sourceAnnotation: {
@@ -132,11 +132,11 @@ function Fe(e, t, n) {
132
132
  }
133
133
  }
134
134
  }));
135
- let u = s.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
- if (u.length > 0 && u.length < s.length) {
137
- let n = s.filter((e) => !u.includes(e));
135
+ let l = s.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
+ if (l.length > 0 && l.length < s.length) {
137
+ let n = s.filter((e) => !l.includes(e));
138
138
  if (n.length !== 1) return null;
139
- let r = n[0], o = t[s.indexOf(r)], c = v(i);
139
+ let r = n[0], o = t[s.indexOf(r)], c = y(i);
140
140
  return !o || c.length !== 1 || c[0].kind === "compound" ? null : [{
141
141
  targetId: o,
142
142
  sourceAnnotation: {
@@ -161,17 +161,17 @@ function Fe(e, t, n) {
161
161
  let d = [], f = 0;
162
162
  for (let e = 1; e < o.length; e += 1) {
163
163
  let t = o[e];
164
- t.type !== "reference_et_action" || N(t).length === 0 || o.slice(f, e).flatMap(N).length === 0 || v(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && v(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
164
+ t.type !== "reference_et_action" || M(t).length === 0 || o.slice(f, e).flatMap(M).length === 0 || y(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && y(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
165
165
  }
166
166
  d.push(o.length - 1);
167
167
  let p = [], m = 0, h = 0;
168
168
  for (let n of d) {
169
- let r = o.slice(m, n + 1).flatMap(N);
169
+ let r = o.slice(m, n + 1).flatMap(M);
170
170
  if (r.length === 0) {
171
171
  m = n + 1;
172
172
  continue;
173
173
  }
174
- let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = v(i.slice(s, c));
174
+ let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = y(i.slice(s, c));
175
175
  if (l.length !== 1 || l[0].kind === "compound") return null;
176
176
  let u = l[0];
177
177
  for (let n of r) {
@@ -195,7 +195,7 @@ function Fe(e, t, n) {
195
195
  stop: i.length
196
196
  },
197
197
  reference: n.reference,
198
- portionSelectors: ie(n.reference)
198
+ portionSelectors: ne(n.reference)
199
199
  }
200
200
  });
201
201
  }
@@ -203,46 +203,46 @@ function Fe(e, t, n) {
203
203
  }
204
204
  return h === t.length ? p : null;
205
205
  }
206
- var Ie = me("dans sa rédaction", O([O([k("dans sa rédaction ", { flags: "i" }), T(k("issue ", { flags: "i" }), k("résultante ", { flags: "i" }), k("résultant ", { flags: "i" }))], { value: "qualified-version-redaction" }), T(O([k("de l'", { flags: "i" }), g], { value: (e) => e[1] }), fe)], { value: (e) => e[1] }));
206
+ var Le = ye("dans sa rédaction", A([A([E("dans sa rédaction ", { flags: "i" }), O(E("issue ", { flags: "i" }), E("résultante ", { flags: "i" }), E("résultant ", { flags: "i" }))], { value: "qualified-version-redaction" }), O(A([E("de l'", { flags: "i" }), l], { value: (e) => e[1] }), n)], { value: (e) => e[1] }));
207
207
  //#endregion
208
208
  //#region src/lib/extractors/qualified_versions.ts
209
- function Le(e) {
210
- let t = be(e), r = [];
211
- for (let e of Ie.extract(new E(t.output), { jumpExact: !0 })) for (let i of n(e)) {
209
+ function Re(e) {
210
+ let t = me(e), n = [];
211
+ for (let e of Le.extract(new T(t.output), { jumpExact: !0 })) for (let i of _(e)) {
212
212
  if (i.type !== "parent-enfant" || i.parent.type !== "texte" || i.parent.nature !== "LOI") continue;
213
- let e = [...pe(i.child)].filter((e) => e.type === "article" && e.position.start < i.parent.position.start);
213
+ let e = [...r(i.child)].filter((e) => e.type === "article" && e.position.start < i.parent.position.start);
214
214
  if (e.length === 1) {
215
- r.push(ge(t, [e[0].position])[0].position);
215
+ n.push(ge(t, [e[0].position])[0].position);
216
216
  break;
217
217
  }
218
218
  }
219
- return r;
219
+ return n;
220
220
  }
221
221
  //#endregion
222
222
  //#region src/lib/server/parsed_bills.ts
223
- var Re = /^expos[ée]\s+des\s+motifs\b/iu;
224
- function P(e) {
223
+ var ze = /^expos[ée]\s+des\s+motifs\b/iu;
224
+ function N(e) {
225
225
  return (e ?? "").replace(/\u00a0/g, " ").replace(/\s+/g, " ").trim();
226
226
  }
227
- function F(e) {
228
- return P(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
227
+ function P(e) {
228
+ return N(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
229
229
  }
230
- function ze(e) {
231
- return s(P(e));
230
+ function Be(e) {
231
+ return s(N(e));
232
232
  }
233
- function I(e) {
234
- return `_TocArt${ze(e).replace(/\s+/gu, "")}`;
233
+ function F(e) {
234
+ return `_TocArt${Be(e).replace(/\s+/gu, "")}`;
235
235
  }
236
- function Be(e, t) {
236
+ function Ve(e, t) {
237
237
  return e(t).closest(".assnatTOC6,.assnatTOC5,.assnatTOC4").length > 0;
238
238
  }
239
- function Ve(e) {
240
- return F(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
241
- }
242
239
  function He(e) {
243
- return Ve(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
240
+ return P(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
244
241
  }
245
242
  function Ue(e) {
243
+ return He(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
244
+ }
245
+ function We(e) {
246
246
  switch (e.kind) {
247
247
  case "insert_after":
248
248
  case "insert_before": return e.insertText;
@@ -260,12 +260,12 @@ function Ue(e) {
260
260
  default: return;
261
261
  }
262
262
  }
263
- function We(e) {
264
- let t = P(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
265
- if (n?.[1] !== void 0) return a(n[1]);
266
- }
267
263
  function Ge(e) {
268
- let t = Ue(e), n = h(t ?? "");
264
+ let t = N(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
265
+ if (n?.[1] !== void 0) return h(n[1]);
266
+ }
267
+ function Ke(e) {
268
+ let t = We(e), n = a(t ?? "");
269
269
  if (n.length > 0 && t !== void 0) return n.map((e, r) => {
270
270
  let i = e.start, a = n[r + 1]?.start ?? t.length, o = t.slice(i, a).trim();
271
271
  return {
@@ -273,58 +273,58 @@ function Ge(e) {
273
273
  text: o
274
274
  };
275
275
  });
276
- let r = We(e);
276
+ let r = Ge(e);
277
277
  return r === void 0 ? [] : [{
278
278
  num: r,
279
279
  text: t ?? e.sourceText
280
280
  }];
281
281
  }
282
- function Ke(e, t = /* @__PURE__ */ new Set()) {
282
+ function qe(e, t = /* @__PURE__ */ new Set()) {
283
283
  if (e == null) return t;
284
284
  if (Array.isArray(e)) {
285
- for (let n of e) Ke(n, t);
285
+ for (let n of e) qe(n, t);
286
286
  return t;
287
287
  }
288
288
  if (typeof e != "object") return t;
289
289
  let n = e;
290
290
  n.type === "article" && typeof n.num == "string" && t.add(n.num);
291
- for (let e of Object.values(n)) Ke(e, t);
291
+ for (let e of Object.values(n)) qe(e, t);
292
292
  return t;
293
293
  }
294
- function qe(e) {
295
- let t = F(e.sourceText);
294
+ function Je(e) {
295
+ let t = P(e.sourceText);
296
296
  return /\b(?:cree|cree[e]?s?|resultant|issu|prevu|mentionne)\b[\s\S]{0,80}\b(?:present|presente|pjl|projet\s+de\s+loi)\b/u.test(t);
297
297
  }
298
- function Je(e) {
299
- return P(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
298
+ function Ye(e) {
299
+ return N(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
300
300
  }
301
- function Ye(e, t) {
302
- let n = new E(e, t), r = Ee(n);
301
+ function Xe(e, t) {
302
+ let n = new T(e, t), r = Se(n);
303
303
  return typeof r != "string" || n.offset <= t ? null : {
304
304
  date: r,
305
305
  start: t,
306
306
  stop: n.offset
307
307
  };
308
308
  }
309
- function Xe(e, t) {
309
+ function Ze(e, t) {
310
310
  let n = /\d/u.exec(e.slice(t));
311
311
  if (!n) return null;
312
312
  let r = t + n.index;
313
- return e.slice(t, r).trim().length > 0 ? null : Ye(e, r);
313
+ return e.slice(t, r).trim().length > 0 ? null : Xe(e, r);
314
314
  }
315
- function Ze(e) {
315
+ function Qe(e) {
316
316
  let t = /^la présente loi (?:s['’]appli(?:que|quent)|entr(?:e|ent) en vigueur) (?:[aà] compter (?:du|de|d['’])|au|le)\s*/u, n = /^la présente loi s['’]appli(?:que|quent)\s*:\s*/u, r = /\b[aà] compter (?:du|de|d['’])\s*/gu, i = [], a = "la présente loi", o = e.indexOf(a);
317
317
  for (; o !== -1;) {
318
318
  let s = e.indexOf(a, o + 15), c = e.slice(o, o + 1400), l = t.exec(c);
319
319
  if (l) {
320
- let e = Xe(c, l[0].length);
320
+ let e = Ze(c, l[0].length);
321
321
  e && i.push(e.date);
322
322
  }
323
323
  let u = n.exec(c);
324
324
  if (u) {
325
325
  let e = /\barticle\s+\w/iu.exec(c), t = e === null ? c.slice(u[0].length) : c.slice(u[0].length, e.index);
326
326
  for (r.lastIndex = 0; r.exec(t) !== null;) {
327
- let e = Xe(t, r.lastIndex);
327
+ let e = Ze(t, r.lastIndex);
328
328
  e && /^\s+pour\s+les\s+autres\s+dispositions\s+fiscales\b/iu.test(t.slice(e.stop)) && i.push(e.date);
329
329
  }
330
330
  }
@@ -332,20 +332,20 @@ function Ze(e) {
332
332
  }
333
333
  return i;
334
334
  }
335
- function Qe(e) {
336
- let t = Ze(Je(e).toLowerCase()), n = Array.from(new Set(t));
335
+ function $e(e) {
336
+ let t = Qe(Ye(e).toLowerCase()), n = Array.from(new Set(t));
337
337
  return n.length === 1 ? n[0] : void 0;
338
338
  }
339
- function $e(e) {
340
- return F(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
339
+ function et(e) {
340
+ return P(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
341
341
  }
342
- function L(e) {
342
+ function I(e) {
343
343
  return e?.type === "tag";
344
344
  }
345
- function et(e, t) {
345
+ function tt(e, t) {
346
346
  return e.html(t) ?? "";
347
347
  }
348
- function tt(e, t) {
348
+ function nt(e, t) {
349
349
  let n = [], r = /* @__PURE__ */ new Set();
350
350
  for (let i of e(t).find("a").get()) {
351
351
  let a = e(i).attr("href") ?? "", o = /\/legifrance\/(articles|sections|textes)\/([^?#"]+)/u.exec(a);
@@ -353,43 +353,43 @@ function tt(e, t) {
353
353
  let s = o[1] === "articles" ? "article" : o[1] === "sections" ? "division" : "text", c = o[2].replace(/\.md$/u, ""), l = `${s}\0${c}`;
354
354
  if (r.has(l)) continue;
355
355
  r.add(l);
356
- let u = P(e(i).text());
356
+ let u = N(e(i).text());
357
357
  n.push({
358
358
  id: c,
359
- ...nt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
359
+ ...rt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
360
360
  ...u ? { text: u } : {},
361
361
  type: s
362
362
  });
363
363
  }
364
364
  return n;
365
365
  }
366
- function nt(e, t, n) {
367
- let r = rt(e, t, n);
366
+ function rt(e, t, n) {
367
+ let r = it(e, t, n);
368
368
  return (r.match(/«/gu) ?? []).length > (r.match(/»/gu) ?? []).length;
369
369
  }
370
- function rt(e, t, n) {
370
+ function it(e, t, n) {
371
371
  if (t === n) return "";
372
372
  if (t.type === "text") return t.data ?? "";
373
- if (!L(t)) return "";
373
+ if (!I(t)) return "";
374
374
  let r = "";
375
375
  for (let i of e(t).contents().get()) {
376
376
  if (i === n) return r;
377
- if (L(i) && e.contains(i, n)) return r + rt(e, i, n);
377
+ if (I(i) && e.contains(i, n)) return r + it(e, i, n);
378
378
  r += e(i).text();
379
379
  }
380
380
  return r;
381
381
  }
382
- function it(e, t) {
383
- return t.map((t) => P(e(t).text())).filter(Boolean).join("\n");
382
+ function at(e, t) {
383
+ return t.map((t) => N(e(t).text())).filter(Boolean).join("\n");
384
384
  }
385
- function at(e) {
386
- let t = F(e);
387
- return !t || Re.test(t) ? "noise" : d.test(e) ? "directive_candidate" : "context";
385
+ function ot(e) {
386
+ let t = P(e);
387
+ return !t || ze.test(t) ? "noise" : m.test(e) ? "directive_candidate" : "context";
388
388
  }
389
- async function ot(e, t, n) {
389
+ async function st(e, t, n) {
390
390
  if (n === void 0) throw Error("A document date is required to add links to legal references.");
391
391
  if (t.legiResolver === void 0 && t.canutesDb === void 0) throw Error("A Canutes database or an explicit legal resolver is required to add links to legal references.");
392
- let r = t.legiResolver ?? new re(t.canutesDb), { output: i } = await ne({
392
+ let r = t.legiResolver ?? new se(t.canutesDb), { output: i } = await oe({
393
393
  date: n,
394
394
  html: e,
395
395
  includeInternalArticleLinks: t.includeInternalArticleLinks,
@@ -402,13 +402,13 @@ async function ot(e, t, n) {
402
402
  });
403
403
  return i ?? e;
404
404
  }
405
- function st(e, t) {
405
+ function ct(e, t) {
406
406
  let n = e(t).closest("h1,h2,h3,h4,h5,h6,p,td,th").get(0), r = e(t).closest("table").get(0);
407
- return L(r) && L(n) && e(n).parents("table").get(0) === r ? r : L(n) ? n : t;
407
+ return I(r) && I(n) && e(n).parents("table").get(0) === r ? r : I(n) ? n : t;
408
408
  }
409
- function ct(e, t, n, r) {
409
+ function lt(e, t, n, r) {
410
410
  if (t.has(r.container)) return;
411
- let i = r.id ?? I(r.num ?? r.label);
411
+ let i = r.id ?? F(r.num ?? r.label);
412
412
  n.has(i) || (n.add(i), t.add(r.container), e.push({
413
413
  id: i,
414
414
  label: r.label,
@@ -418,7 +418,7 @@ function ct(e, t, n, r) {
418
418
  container: r.container
419
419
  }));
420
420
  }
421
- function lt(e) {
421
+ function L(e) {
422
422
  let t = /* @__PURE__ */ new Map();
423
423
  return e("body *").each((e, n) => {
424
424
  t.set(n, e);
@@ -427,54 +427,66 @@ function lt(e) {
427
427
  function R(e, t) {
428
428
  return e.get(t) ?? 2 ** 53 - 1;
429
429
  }
430
- function ut(e) {
430
+ function ut(e, t) {
431
+ if (!e(t).hasClass("assnat9ArticleNum") && !ft(e, t) || e(t).find("br").length !== 1) return null;
432
+ let n = "", r = "", i = !1, a = (e) => {
433
+ if (e.type === "text") i ? r += e.data : n += e.data;
434
+ else if (I(e)) if (e.tagName.toLowerCase() === "br") i = !0;
435
+ else for (let t of e.children) a(t);
436
+ };
437
+ a(t);
438
+ let o = C(N(n)), s = N(r);
439
+ return o && !o.title && s ? {
440
+ ...o,
441
+ title: s
442
+ } : null;
443
+ }
444
+ function dt(e) {
431
445
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
432
446
  e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((i, a) => {
433
- if (Be(e, a)) return;
434
- let o = f(P(e(a).text()));
435
- if (!o) return;
436
- let s = e(a).attr("id");
447
+ if (Ve(e, a)) return;
448
+ let o = N(e(a).text()), s = e(a).attr("id");
437
449
  if (!s || r.has(s)) return;
438
- let c = st(e, a);
439
- ct(t, n, r, {
450
+ let c = ct(e, a), l = e(a).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0), u = C(o) ?? (I(l) && (a === l || e(a).find("br").length === 1) ? ut(e, l) : null);
451
+ u && lt(t, n, r, {
440
452
  id: s,
441
- ...o,
453
+ ...u,
442
454
  element: a,
443
455
  container: c
444
456
  });
445
457
  }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((i, a) => {
446
458
  if (n.has(a)) return;
447
- let o = f(P(e(a).text()));
448
- o && ct(t, n, r, {
459
+ let o = C(N(e(a).text())) ?? ut(e, a);
460
+ o && lt(t, n, r, {
449
461
  ...o,
450
462
  element: a,
451
463
  container: a
452
464
  });
453
465
  });
454
- let i = lt(e);
466
+ let i = L(e);
455
467
  return t.sort((e, t) => R(i, e.container) - R(i, t.container)), t;
456
468
  }
457
- function dt(e, t) {
458
- if (Be(e, t)) return !1;
469
+ function ft(e, t) {
470
+ if (Ve(e, t)) return !1;
459
471
  let n = t.tagName?.toLowerCase();
460
472
  if (n !== "p") return /^h[1-6]$/u.test(n ?? "");
461
473
  let r = e(t).attr("style") ?? "", i = e(t).html() ?? "";
462
474
  return /text-align\s*:\s*center/iu.test(r) && (/font-weight\s*:\s*bold/iu.test(r) || /font-weight\s*:\s*bold/iu.test(i) || /<(?:strong|b)(?:\s|>)/iu.test(i));
463
475
  }
464
- function ft(e) {
476
+ function pt(e) {
465
477
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
466
478
  return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((i, a) => {
467
- if (Be(e, a) || !e(a).hasClass("assnat9ArticleNum") && !dt(e, a)) return;
468
- let o = f(e(a).text());
469
- o && ct(t, n, r, {
479
+ if (Ve(e, a) || !e(a).hasClass("assnat9ArticleNum") && !ft(e, a)) return;
480
+ let o = C(e(a).text()) ?? ut(e, a);
481
+ o && lt(t, n, r, {
470
482
  ...o,
471
483
  element: a,
472
484
  container: a
473
485
  });
474
486
  }), t;
475
487
  }
476
- function pt(e) {
477
- let t = ze(e ?? "").replace(/[()]/gu, "").trim();
488
+ function mt(e) {
489
+ let t = Be(e ?? "").replace(/[()]/gu, "").trim();
478
490
  if (!t || t.toLowerCase() === "liminaire") return;
479
491
  if (t.toLowerCase() === "unique") return {
480
492
  base: 1,
@@ -483,7 +495,7 @@ function pt(e) {
483
495
  };
484
496
  let n = /^(\d+|premier)(?:\s+([a-z]+))?(?:\s+([A-Z]+))?$/u.exec(t);
485
497
  if (!n) return;
486
- let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : ht(i);
498
+ let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : gt(i);
487
499
  if (a !== void 0) return {
488
500
  base: r,
489
501
  suffixOrder: a,
@@ -491,7 +503,7 @@ function pt(e) {
491
503
  text: t
492
504
  };
493
505
  }
494
- function mt(e, t) {
506
+ function ht(e, t) {
495
507
  if (t.base !== e.base) return t.base - e.base;
496
508
  if (t.suffixOrder !== e.suffixOrder) return t.suffixOrder - e.suffixOrder;
497
509
  for (let n = 0; n <= Math.max(e.letters?.length ?? 0, t.letters?.length ?? 0); n++) {
@@ -500,14 +512,14 @@ function mt(e, t) {
500
512
  }
501
513
  return 0;
502
514
  }
503
- function ht(e) {
504
- let t = new E(e), n = xe(t);
515
+ function gt(e) {
516
+ let t = new T(e), n = Ee(t);
505
517
  if (!(n === void 0 || t.offset !== e.length) && !(typeof n != "object" || !n || !("value" in n) || typeof n.value != "number")) return n.value - 1;
506
518
  }
507
- function gt(e) {
519
+ function _t(e) {
508
520
  let t = [], n = e.map((e) => ({
509
521
  heading: e,
510
- token: pt(e.num)
522
+ token: mt(e.num)
511
523
  }));
512
524
  n.filter(({ token: e }) => e?.text === "unique").length > 0 && e.length > 1 && t.push({
513
525
  code: "article_toc_out_of_order",
@@ -516,7 +528,7 @@ function gt(e) {
516
528
  let r;
517
529
  for (let { heading: e, token: i } of n) if (!(i === void 0 || i.text === "unique")) {
518
530
  if (r !== void 0) {
519
- let n = mt(r, i);
531
+ let n = ht(r, i);
520
532
  n === 0 ? t.push({
521
533
  code: "article_toc_duplicate_number",
522
534
  message: `Article ${e.num ?? e.label} is repeated`,
@@ -545,52 +557,52 @@ function gt(e) {
545
557
  }
546
558
  return t;
547
559
  }
548
- function _t(e) {
549
- let t = gt(e);
560
+ function vt(e) {
561
+ let t = _t(e);
550
562
  t.length > 0 && process.env.TISSEUSE_WARN_ASSEMBLEE_HEADING_SEQUENCE === "1" && console.warn("Incoherent Assemblée article heading sequence", { issues: t.map((e) => e.message) });
551
563
  }
552
- function vt(e, { warn: t = !0 } = {}) {
553
- let n = ut(e), r = ft(e);
554
- if (n.length === 0) return t && _t(r), r;
555
- let i = lt(e), a = (e, t) => {
556
- let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => I(e.num ?? e.label)));
564
+ function yt(e, { warn: t = !0 } = {}) {
565
+ let n = dt(e), r = pt(e);
566
+ if (n.length === 0) return t && vt(r), r;
567
+ let i = L(e), a = (e, t) => {
568
+ let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => F(e.num ?? e.label)));
557
569
  for (let i of t) {
558
- let t = I(i.num ?? i.label);
570
+ let t = F(i.num ?? i.label);
559
571
  n.has(i.container) || r.has(t) || (n.add(i.container), r.add(t), e.push(i));
560
572
  }
561
573
  return e.sort((e, t) => R(i, e.container) - R(i, t.container)), e;
562
- }, o = r.filter((t) => e(t.element).is("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6")), s = a([...n], o), c = a([...s], r.filter((e) => !o.includes(e))), l = s.length >= 2 && gt(c).length > gt(s).length ? s : c;
563
- return t && _t(l), l;
574
+ }, o = r.filter((t) => e(t.element).is("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6")), s = a([...n], o), c = a([...s], r.filter((e) => !o.includes(e))), l = s.length >= 2 && _t(c).length > _t(s).length ? s : c;
575
+ return t && vt(l), l;
564
576
  }
565
- function yt(e) {
577
+ function bt(e) {
566
578
  let t = e.next;
567
579
  for (; t !== null;) {
568
- if (L(t)) return t;
580
+ if (I(t)) return t;
569
581
  t = t.next;
570
582
  }
571
583
  return null;
572
584
  }
573
- function bt(e, t, n) {
585
+ function xt(e, t, n) {
574
586
  let r = e(t.container);
575
587
  if (!r.is("p.assnat9ArticleNum")) return;
576
588
  let i = r.parent(), a = i.parent();
577
589
  if (!i.is("div") || i.children().length !== 1 || !a.is("div")) return;
578
590
  let o = a.children().get();
579
- if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || P(e(o[1]).text()) !== "") return;
591
+ if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || N(e(o[1]).text()) !== "") return;
580
592
  let s = o.length === 4 ? o[2] : void 0;
581
- if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(P(e(s).text())))) return;
593
+ if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(N(e(s).text())))) return;
582
594
  let c = o.at(-1);
583
- if (!(c.tagName !== "div" || n !== void 0 && e.contains(c, n.container) || e(c).find("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6").toArray().some((t) => f(e(t).text()) !== null))) return [
595
+ if (!(c.tagName !== "div" || n !== void 0 && e.contains(c, n.container) || e(c).find("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6").toArray().some((t) => C(e(t).text()) !== null))) return [
584
596
  t.container,
585
597
  ...s === void 0 ? [] : [s],
586
598
  c
587
599
  ];
588
600
  }
589
- function xt(e, t, n, r = lt(e)) {
601
+ function St(e, t, n, r = L(e)) {
590
602
  let i = [t.container], a = n?.container;
591
- for (let e = yt(t.container); e !== null && e !== a; e = yt(e)) i.push(e);
603
+ for (let e = bt(t.container); e !== null && e !== a; e = bt(e)) i.push(e);
592
604
  if (i.length > 1) return i;
593
- let o = bt(e, t, n);
605
+ let o = xt(e, t, n);
594
606
  if (o !== void 0) return o;
595
607
  let s = R(r, t.container), c = a ? R(r, a) : -1;
596
608
  return e("body > *").get().filter((e) => {
@@ -598,7 +610,7 @@ function xt(e, t, n, r = lt(e)) {
598
610
  return t >= s && (c === -1 || t < c);
599
611
  });
600
612
  }
601
- function St(e, t) {
613
+ function Ct(e, t) {
602
614
  let n = [], r = /* @__PURE__ */ new Set();
603
615
  for (let i of t) {
604
616
  let t = "p,li,table", a = e(i).is(t) ? [i] : e(i).find(t).get();
@@ -606,63 +618,63 @@ function St(e, t) {
606
618
  }
607
619
  return n;
608
620
  }
609
- function Ct(e, t, n) {
621
+ function wt(e, t, n) {
610
622
  let r = [], i = !1;
611
- for (let a of St(e, n)) {
612
- let n = e(a).is("table.akn-quoted-table") ? dn(e, a) : P(e(a).text());
623
+ for (let a of Ct(e, n)) {
624
+ let n = e(a).is("table.akn-quoted-table") ? fn(e, a) : N(e(a).text());
613
625
  if (!n) continue;
614
- Re.test(n) && (i = !0);
615
- let o = i ? "noise" : at(n), s = `${t}-b${r.length + 1}`;
626
+ ze.test(n) && (i = !0);
627
+ let o = i ? "noise" : ot(n), s = `${t}-b${r.length + 1}`;
616
628
  e(a).attr("data-pjl-parsed-article-id", t), e(a).attr("data-pjl-parsed-block-id", s), r.push({
617
629
  id: s,
618
630
  articleId: t,
619
631
  kind: o,
620
- links: tt(e, a),
632
+ links: nt(e, a),
621
633
  text: n,
622
- html: et(e, a)
634
+ html: tt(e, a)
623
635
  });
624
636
  }
625
637
  return r;
626
638
  }
627
- function wt(e, t) {
639
+ function Tt(e, t) {
628
640
  if (t.length === 0) return e;
629
641
  let n = `<div style="display: none;">\n${t.map((e) => `<p class="assnatTOC6"><a href="#${e.id}"><span class="assnatHyperlink" style="font-weight:bold; text-decoration:none; color:#000000">${e.label.toUpperCase()}</span></a></p>`).join("\n")}\n</div>`;
630
642
  return e.includes("class=\"assnatSection3\"") ? e.replace(/(<div class="assnatSection3">)/u, `${n}$1`) : e.includes("id=\"formCorrection:panel:1:table\"") ? e.replace(/(<div id="formCorrection:panel:1:table">)/u, `${n}$1`) : `${n}\n${e}`;
631
643
  }
632
- function Tt(e) {
633
- let t = w(e), n = Et(t);
634
- for (let e of vt(t, { warn: !1 })) {
635
- let r = I(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
644
+ function Et(e) {
645
+ let t = w(e), n = Dt(t);
646
+ for (let e of yt(t, { warn: !1 })) {
647
+ let r = F(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
636
648
  if (a !== r) {
637
- if (a?.startsWith("_Toc") && !Ot(n, a, e.element)) {
649
+ if (a?.startsWith("_Toc") && !kt(n, a, e.element)) {
638
650
  let e = t("<span></span>").attr("id", a);
639
651
  i.before(e);
640
652
  let r = e.get(0);
641
- L(r) && z(n, a, r);
653
+ I(r) && z(n, a, r);
642
654
  }
643
- a && Dt(n, a, e.element), i.attr("id", r), z(n, r, e.element);
655
+ a && Ot(n, a, e.element), i.attr("id", r), z(n, r, e.element);
644
656
  }
645
657
  }
646
- let r = vt(t), i = lt(t);
658
+ let r = yt(t), i = L(t);
647
659
  for (let [e, a] of r.entries()) {
648
- let o = xt(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
660
+ let o = St(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
649
661
  for (let e of o) {
650
662
  let r = t(e).attr("data-alinea")?.trim();
651
663
  if (!r) continue;
652
664
  let i = `${a.id}-alinea-${r.replace(/\s+/gu, "")}`;
653
- if (Ot(n, i, e)) continue;
665
+ if (kt(n, i, e)) continue;
654
666
  let o = t(e).attr("id");
655
667
  if (o && o !== i) {
656
668
  let r = t("<span></span>").attr("id", i);
657
669
  t(e).before(r);
658
670
  let a = r.get(0);
659
- L(a) && z(n, i, a);
660
- } else o && Dt(n, o, e), t(e).attr("id", i), z(n, i, e);
671
+ I(a) && z(n, i, a);
672
+ } else o && Ot(n, o, e), t(e).attr("id", i), z(n, i, e);
661
673
  }
662
674
  }
663
675
  return t.html();
664
676
  }
665
- function Et(e) {
677
+ function Dt(e) {
666
678
  let t = /* @__PURE__ */ new Map();
667
679
  for (let n of e("[id]").get()) {
668
680
  let r = e(n).attr("id");
@@ -674,29 +686,29 @@ function z(e, t, n) {
674
686
  let r = e.get(t);
675
687
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r)), r.add(n);
676
688
  }
677
- function Dt(e, t, n) {
689
+ function Ot(e, t, n) {
678
690
  let r = e.get(t);
679
691
  r !== void 0 && (r.delete(n), r.size === 0 && e.delete(t));
680
692
  }
681
- function Ot(e, t, n) {
693
+ function kt(e, t, n) {
682
694
  for (let r of e.get(t) ?? []) if (r !== n) return !0;
683
695
  return !1;
684
696
  }
685
- function kt(e, t) {
686
- let n = $e("sourceText" in t ? t.sourceText : "");
697
+ function At(e, t) {
698
+ let n = et("sourceText" in t ? t.sourceText : "");
687
699
  if (n) return e.filter((e) => e.kind === "directive_candidate").find((e) => {
688
- let t = $e(e.text);
700
+ let t = et(e.text);
689
701
  return t.length > 0 && (n.includes(t) || t.includes(n));
690
702
  });
691
703
  }
692
- function At(e, t) {
704
+ function jt(e, t) {
693
705
  if (t) return t.blockIds.map((t) => e.get(t)).find((e) => e?.kind === "directive_candidate");
694
706
  }
695
- function jt(e) {
707
+ function Mt(e) {
696
708
  return e?.links.filter((t) => !t.insideFrenchQuotes && (t.type === "article" || t.type === "division") && t.id !== e.qualifiedVersion?.modifyingArticleId).map((e) => e.id) ?? [];
697
709
  }
698
- function Mt(e) {
699
- let t = Le(e.text);
710
+ function Nt(e) {
711
+ let t = Re(e.text);
700
712
  if (t.length !== 1) return;
701
713
  let n = e.links.filter((e) => e.type === "article" && !e.insideFrenchQuotes), r = n.filter((n) => {
702
714
  let r = n.text ?? "", i = e.text.indexOf(r);
@@ -710,21 +722,21 @@ function Mt(e) {
710
722
  modifyingArticleLabel: i.text ?? ""
711
723
  };
712
724
  }
713
- function Nt(e, t) {
714
- let n = P(e);
725
+ function Pt(e, t) {
726
+ let n = N(e);
715
727
  if (!n) return;
716
- let r = oe(n);
728
+ let r = x(n);
717
729
  return r ? r.level : n.endsWith(":") ? (t ?? -1) + 1 : void 0;
718
730
  }
719
- function Pt(e) {
720
- let t = /* @__PURE__ */ new Map(), n = [], r = te(e.map((e) => e.text)), i = -1;
731
+ function Ft(e) {
732
+ let t = /* @__PURE__ */ new Map(), n = [], r = ae(e.map((e) => e.text)), i = -1;
721
733
  for (let [a, o] of e.entries()) {
722
734
  let e = r.get(a);
723
735
  if (e && (i = e.endIndex), a <= i) {
724
736
  t.set(o.id, [...n.map((e) => e.block), o]);
725
737
  continue;
726
738
  }
727
- let s = Nt(o.text, n.at(-1)?.level);
739
+ let s = Pt(o.text, n.at(-1)?.level);
728
740
  if (s === void 0) {
729
741
  t.set(o.id, [...n.map((e) => e.block), o]);
730
742
  continue;
@@ -737,14 +749,14 @@ function Pt(e) {
737
749
  }
738
750
  return t;
739
751
  }
740
- function Ft(e, t) {
752
+ function It(e, t) {
741
753
  let n = [], r = /* @__PURE__ */ new Set();
742
754
  for (let i of [...e ?? [], ...t]) i !== void 0 && (r.has(i.id) || (r.add(i.id), n.push(i)));
743
755
  return n;
744
756
  }
745
- function It(e, t, n) {
757
+ function Lt(e, t, n) {
746
758
  if (!t) return;
747
- let r = Ft(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
759
+ let r = It(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
748
760
  if (r.length === 0) return;
749
761
  let i = r.map((e) => e.id);
750
762
  if (i.length === t.blockIds.length && i.every((e, n) => e === t.blockIds[n])) return;
@@ -759,7 +771,7 @@ function It(e, t, n) {
759
771
  }
760
772
  };
761
773
  }
762
- function Lt(e) {
774
+ function Rt(e) {
763
775
  let t = [], n = 0;
764
776
  for (let r of e.blocks) {
765
777
  let i = e.directiveText.indexOf(r.text, n);
@@ -773,7 +785,7 @@ function Lt(e) {
773
785
  }
774
786
  return t;
775
787
  }
776
- function Rt(e, t, n) {
788
+ function zt(e, t, n) {
777
789
  let { start: r, stop: i } = n.sourcePosition, a = t.filter((e) => e.stop > r && e.start < i);
778
790
  if (a.length === 0) return;
779
791
  let o = a[0], s = a[a.length - 1], c = o.start, l = s.stop;
@@ -787,7 +799,7 @@ function Rt(e, t, n) {
787
799
  }
788
800
  };
789
801
  }
790
- function zt(e, t, n) {
802
+ function Bt(e, t, n) {
791
803
  if (!t) return;
792
804
  let r = e.directiveText.indexOf(t.text);
793
805
  if (r === -1) return;
@@ -800,15 +812,15 @@ function zt(e, t, n) {
800
812
  stop: a
801
813
  };
802
814
  }
803
- function Bt(e, t) {
804
- let n = performance.now(), r = performance.now(), i = Lt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Pt(e.blocks), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = [], f;
815
+ function Vt(e, t) {
816
+ let n = performance.now(), r = performance.now(), i = Rt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Ft(e.blocks), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = [], f;
805
817
  for (let t of e.blocks) {
806
- t.qualifiedVersion = Mt(t);
807
- let e = jt(t);
818
+ t.qualifiedVersion = Nt(t);
819
+ let e = Mt(t);
808
820
  (e.length > 0 || t.qualifiedVersion) && (d = e, f = t.qualifiedVersion), l.set(t.id, d), u.set(t.id, f);
809
821
  }
810
- let p = performance.now() - o, m = performance.now(), h = x(), g = le(e.directiveText, t === void 0 ? void 0 : h), _ = performance.now() - m, v = performance.now(), y = g.map((t) => {
811
- let n = Rt(e, i, t), r = At(s, n) ?? kt(e.blocks, t), a = jt(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], d = zt(e, r, t), f = It(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
822
+ let p = performance.now() - o, m = performance.now(), h = te(), g = de(e.directiveText, t === void 0 ? void 0 : h), _ = performance.now() - m, v = performance.now(), y = g.map((t) => {
823
+ let n = zt(e, i, t), r = jt(s, n) ?? At(e.blocks, t), a = Mt(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], d = Bt(e, r, t), f = Lt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
812
824
  return {
813
825
  articleId: e.id,
814
826
  blockId: r?.id,
@@ -827,13 +839,13 @@ function Bt(e, t) {
827
839
  ...o.length > 0 ? { targetIds: o } : {},
828
840
  ...r?.id !== void 0 && u.get(r.id) ? { qualifiedVersion: u.get(r.id) } : {}
829
841
  };
830
- }), b = /* @__PURE__ */ new Set(), S = /* @__PURE__ */ new Map(), C = y.flatMap((e) => {
842
+ }), b = /* @__PURE__ */ new Set(), x = /* @__PURE__ */ new Map(), ee = y.flatMap((e) => {
831
843
  let t = e.blockId ? s.get(e.blockId) : void 0;
832
844
  if (!t) return [e];
833
845
  if (b.has(t.id)) return [];
834
- let n = S.get(t.id);
835
- if (n === void 0 && (n = Fe(t.text, jt(t), e.directive), S.set(t.id, n)), !n) {
836
- let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Pe(t.text, n.operations.length) : null;
846
+ let n = x.get(t.id);
847
+ if (n === void 0 && (n = Ie(t.text, Mt(t), e.directive), x.set(t.id, n)), !n) {
848
+ let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Fe(t.text, n.operations.length) : null;
837
849
  return [r ? {
838
850
  ...e,
839
851
  sourceAnnotations: r
@@ -850,27 +862,27 @@ function Bt(e, t) {
850
862
  }
851
863
  }))
852
864
  }];
853
- }), ee = performance.now() - v;
865
+ }), S = performance.now() - v;
854
866
  return t?.push({
855
867
  actionDirectiveExtraction: h,
856
868
  articleId: e.id,
857
869
  blockCount: e.blocks.length,
858
870
  buildRangesMs: Math.round(a * 10) / 10,
859
- directiveCount: C.length,
871
+ directiveCount: ee.length,
860
872
  directiveTextSize: e.directiveText.length,
861
873
  extractActionDirectivesMs: Math.round(_ * 10) / 10,
862
- mapDirectivesMs: Math.round(ee * 10) / 10,
874
+ mapDirectivesMs: Math.round(S * 10) / 10,
863
875
  prepareBlockIndexesMs: Math.round(p * 10) / 10,
864
876
  totalMs: Math.round((performance.now() - n) * 10) / 10
865
- }), C;
877
+ }), ee;
866
878
  }
867
- function Vt(e) {
879
+ function Ht(e) {
868
880
  let t = /* @__PURE__ */ new Map(), n = [], r = /* @__PURE__ */ new Set();
869
881
  for (let i of e) {
870
- let e = Ge(i.directive);
882
+ let e = Ke(i.directive);
871
883
  if (e.length === 0) continue;
872
884
  let a = e.map(({ num: e }) => ({
873
- definitionId: `${i.articleId}:article:${He(e)}`,
885
+ definitionId: `${i.articleId}:article:${Ue(e)}`,
874
886
  num: e
875
887
  }));
876
888
  t.set(i, a);
@@ -893,13 +905,13 @@ function Vt(e) {
893
905
  definitions: n
894
906
  };
895
907
  }
896
- function Ht(e, t, n) {
897
- let r = new Map(t.map((e) => [Ve(e.num), e]));
908
+ function Ut(e, t, n) {
909
+ let r = new Map(t.map((e) => [He(e.num), e]));
898
910
  return e.map((e) => {
899
- let t = n.get(e), i = t?.[0], a = [...Ke(e.directive.reference)].map((e) => r.get(Ve(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
911
+ let t = n.get(e), i = t?.[0], a = [...qe(e.directive.reference)].map((e) => r.get(He(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
900
912
  definitionId: a.definitionId,
901
913
  num: a.num
902
- }, s = qe(e.directive), c = (e.targetIds?.length ?? 0) > 0;
914
+ }, s = Je(e.directive), c = (e.targetIds?.length ?? 0) > 0;
903
915
  return {
904
916
  ...e,
905
917
  ...i === void 0 ? {} : { createdArticle: i },
@@ -912,7 +924,7 @@ function Ht(e, t, n) {
912
924
  };
913
925
  });
914
926
  }
915
- function Ut(e) {
927
+ function Wt(e) {
916
928
  switch (e.kind) {
917
929
  case "insert_after":
918
930
  case "insert_before": return [e.insertText];
@@ -930,8 +942,8 @@ function Ut(e) {
930
942
  default: return [];
931
943
  }
932
944
  }
933
- function Wt(e) {
934
- return e.flatMap((e) => Ut(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
945
+ function Gt(e) {
946
+ return e.flatMap((e) => Wt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
935
947
  code: "nested_french_quote_in_redaction",
936
948
  message: "Écart à la règle légistique détecté : une citation imbriquée dans une rédaction devrait utiliser des guillemets anglais et non des guillemets français.",
937
949
  details: {
@@ -943,18 +955,18 @@ function Wt(e) {
943
955
  }
944
956
  })));
945
957
  }
946
- function Gt(e) {
947
- return Ut(e).map((t) => ({
958
+ function Kt(e) {
959
+ return Wt(e).map((t) => ({
948
960
  directiveKind: e.kind,
949
961
  text: t
950
962
  }));
951
963
  }
952
- function Kt(e) {
964
+ function qt(e) {
953
965
  let t = /* @__PURE__ */ new Set();
954
966
  for (let n of e.matchAll(/«[^«»\n]+»/gu)) t.add(n[0]);
955
967
  return Array.from(t);
956
968
  }
957
- function qt(e, t) {
969
+ function Jt(e, t) {
958
970
  let n = new Map(e.blocks.map((e) => [e.id, e])), r = t.sourceBlockIds ?? e.blocks.map((e) => e.id), i = [], a = 0;
959
971
  for (let e of r) {
960
972
  let t = n.get(e);
@@ -966,11 +978,11 @@ function qt(e, t) {
966
978
  }
967
979
  return i;
968
980
  }
969
- function Jt(e, t, n) {
981
+ function Yt(e, t, n) {
970
982
  return e.find((e) => t >= e.start && n <= e.stop);
971
983
  }
972
- function Yt(e, t, n) {
973
- let r = Kt(n), i = r.flatMap((t) => {
984
+ function Xt(e, t, n) {
985
+ let r = qt(n), i = r.flatMap((t) => {
974
986
  for (let n of e.blocks) {
975
987
  let e = n.text.indexOf(t);
976
988
  if (e !== -1) return [{
@@ -989,7 +1001,7 @@ function Yt(e, t, n) {
989
1001
  e.directiveText
990
1002
  ].filter((e) => e !== void 0 && e.length > 0), o = a.find((e) => r.some((t) => e.includes(t))) ?? a[0];
991
1003
  if (!o) return [];
992
- let s = qt(e, t);
1004
+ let s = Jt(e, t);
993
1005
  if (s.length === 0) return [];
994
1006
  let c = [], l = 0;
995
1007
  for (let e of r) {
@@ -997,7 +1009,7 @@ function Yt(e, t, n) {
997
1009
  if (t === -1) continue;
998
1010
  let n = t + e.length;
999
1011
  l = n;
1000
- let r = Jt(s, t, n);
1012
+ let r = Yt(s, t, n);
1001
1013
  r && c.push({
1002
1014
  blockId: r.block.id,
1003
1015
  start: t - r.start,
@@ -1007,15 +1019,15 @@ function Yt(e, t, n) {
1007
1019
  }
1008
1020
  return c;
1009
1021
  }
1010
- function Xt(e, t) {
1022
+ function Zt(e, t) {
1011
1023
  let n = new Map(e.map((e) => [e.id, e]));
1012
1024
  return t.flatMap((e) => {
1013
1025
  let t = n.get(e.articleId);
1014
- return t ? Gt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1026
+ return t ? Kt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1015
1027
  articleId: e.articleId,
1016
1028
  code: "nested_french_quote_in_redaction",
1017
1029
  message: "Écart à la règle légistique détecté : une citation imbriquée dans une rédaction devrait utiliser des guillemets anglais et non des guillemets français.",
1018
- ranges: Yt(t, e, r),
1030
+ ranges: Xt(t, e, r),
1019
1031
  severity: "warning",
1020
1032
  details: {
1021
1033
  blockId: e.blockId,
@@ -1026,8 +1038,8 @@ function Xt(e, t) {
1026
1038
  })) : [];
1027
1039
  });
1028
1040
  }
1029
- function Zt(e, t) {
1030
- let n = new Map(e.flatMap((e) => [...te(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
1041
+ function Qt(e, t) {
1042
+ let n = new Map(e.flatMap((e) => [...ae(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
1031
1043
  articleId: e.id,
1032
1044
  blockIds: e.blocks.slice(t - 1, n.endIndex + 1).map((e) => e.id),
1033
1045
  ...n
@@ -1049,13 +1061,13 @@ function Zt(e, t) {
1049
1061
  }];
1050
1062
  });
1051
1063
  }
1052
- function Qt(e, t, n, r, i, a, o = !0, s) {
1064
+ function $t(e, t, n, r, i, a, o = !0, s) {
1053
1065
  let c = new Ce("parsedBill.buildParsedDocument"), l = i.reduce((e, t) => e + t.blocks.length, 0), u = c.timeSync("buildDirectiveText", () => i.map((e) => e.directiveText).filter(Boolean).join("\n")), d = {
1054
1066
  sourceFormat: e,
1055
1067
  documentDate: r,
1056
1068
  html: t,
1057
1069
  htmlWithLinks: n,
1058
- tableOfContents: a ?? c.timeSync("extractTableOfContents", () => y(u), { inputSize: u.length }),
1070
+ tableOfContents: a ?? c.timeSync("extractTableOfContents", () => b(u), { inputSize: u.length }),
1059
1071
  articles: i
1060
1072
  };
1061
1073
  if (!o) {
@@ -1071,27 +1083,27 @@ function Qt(e, t, n, r, i, a, o = !0, s) {
1071
1083
  directiveTextSize: u.length
1072
1084
  }), e;
1073
1085
  }
1074
- let f = c.timeSync("extractGlobalApplicabilityDate", () => Qe(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1086
+ let f = c.timeSync("extractGlobalApplicabilityDate", () => $e(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1075
1087
  let e = [];
1076
1088
  for (let t of i) {
1077
- let n = Bt(t, c.enabled ? p : void 0);
1089
+ let n = Vt(t, c.enabled ? p : void 0);
1078
1090
  e.push(...n);
1079
1091
  }
1080
1092
  return e;
1081
- }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Vt(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Ht(m, g, h), { count: m.length }), v = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Wt(_), { count: _.length }), b = [...s ?? [], ...v], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Xt(i, _), ...Zt(i, _)], { count: _.length }), S = {
1093
+ }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Ht(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Ut(m, g, h), { count: m.length }), v = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Gt(_), { count: _.length }), y = [...s ?? [], ...v], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Zt(i, _), ...Qt(i, _)], { count: _.length }), ee = {
1082
1094
  ...d,
1083
1095
  ...f ? { globalApplicabilityDate: f } : {},
1084
1096
  ...g.length > 0 ? { internalArticleDefinitions: g } : {},
1085
1097
  directives: _,
1086
1098
  ...x.length > 0 ? { annotations: x } : {},
1087
- ...b.length > 0 ? { diagnostics: b } : {}
1099
+ ...y.length > 0 ? { diagnostics: y } : {}
1088
1100
  };
1089
1101
  return c.log({
1090
1102
  annotationCount: x.length,
1091
1103
  articleCount: i.length,
1092
1104
  blockCount: l,
1093
1105
  definitionCount: g.length,
1094
- diagnosticCount: b.length,
1106
+ diagnosticCount: y.length,
1095
1107
  directiveAnalysisIncluded: !0,
1096
1108
  directiveCount: _.length,
1097
1109
  actionDirectiveExtractionTotals: p.reduce((e, t) => ({
@@ -1170,20 +1182,20 @@ function Qt(e, t, n, r, i, a, o = !0, s) {
1170
1182
  }),
1171
1183
  directiveTextSize: u.length,
1172
1184
  slowDirectiveArticles: p.toSorted((e, t) => t.totalMs - e.totalMs).slice(0, 10)
1173
- }), S;
1185
+ }), ee;
1174
1186
  }
1175
- function $t(e) {
1187
+ function en(e) {
1176
1188
  return { items: e.map((e) => ({
1177
1189
  id: e.id,
1178
1190
  line: e.title ? `${e.label} : ${e.title}` : e.label,
1179
1191
  type: "article"
1180
1192
  })) };
1181
1193
  }
1182
- function en(e) {
1183
- return Array.from(ce(e)).filter((e) => e.type === "article").map((e) => F(e.line.split(/[::]/u)[0]));
1194
+ function tn(e) {
1195
+ return Array.from(ue(e)).filter((e) => e.type === "article").map((e) => P(e.line.split(/[::]/u)[0]));
1184
1196
  }
1185
- function tn(e, t, n, r) {
1186
- let i = gt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ce(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? I(e.num) : w(e.html)("p.TCNumArticle").first().attr("id") ?? I(e.label) : e.id), c = o.map((e) => e.id);
1197
+ function nn(e, t, n, r) {
1198
+ let i = _t(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ue(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? F(e.num) : w(e.html)("p.TCNumArticle").first().attr("id") ?? F(e.label) : e.id), c = o.map((e) => e.id);
1187
1199
  (c.length !== s.length || c.some((e, t) => e !== s[t])) && i.push({
1188
1200
  code: "article_toc_source_heading_mismatch",
1189
1201
  message: "The table of contents differs from the parsed article headings",
@@ -1199,8 +1211,8 @@ function tn(e, t, n, r) {
1199
1211
  });
1200
1212
  return i;
1201
1213
  }
1202
- function nn(e, t, n) {
1203
- let r = en(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => F(e.label)), a = $t(e), o = [...n, ...tn(e, a, t, "assemblee-html")];
1214
+ function rn(e, t, n) {
1215
+ let r = tn(b(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => P(e.label)), a = en(e), o = [...n, ...nn(e, a, t, "assemblee-html")];
1204
1216
  if (r.length > 0 && (r.length !== i.length || r.some((e, t) => e !== i[t]))) {
1205
1217
  let t = r.findIndex((e, t) => e !== i[t]);
1206
1218
  o.push({
@@ -1224,24 +1236,24 @@ function nn(e, t, n) {
1224
1236
  tableOfContents: a
1225
1237
  };
1226
1238
  }
1227
- async function rn(e, t) {
1228
- let n = new Ce("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => an(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Tt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => w(i)), o = n.timeSync("extractArticleHeadings", () => vt(a)), s = new Set(o.map((e) => e.id)), c = ft(a).filter((e) => !s.has(I(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1239
+ async function an(e, t) {
1240
+ let n = new Ce("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => on(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Et(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => w(i)), o = n.timeSync("extractArticleHeadings", () => yt(a)), s = new Set(o.map((e) => e.id)), c = pt(a).filter((e) => !s.has(F(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1229
1241
  code: "article_toc_source_heading_mismatch",
1230
1242
  message: "Some structural article headings were not retained",
1231
1243
  details: { discardedCandidates: c }
1232
- }] : [], u = lt(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1233
- let n = xt(a, e, o[t + 1], u), r = Ct(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1244
+ }] : [], u = L(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1245
+ let n = St(a, e, o[t + 1], u), r = wt(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1234
1246
  return {
1235
1247
  id: e.id,
1236
1248
  label: e.label,
1237
1249
  num: e.num,
1238
1250
  title: e.title,
1239
- text: it(a, n),
1240
- html: n.map((e) => et(a, e)).join("\n"),
1251
+ text: at(a, n),
1252
+ html: n.map((e) => tt(a, e)).join("\n"),
1241
1253
  directiveText: i,
1242
1254
  blocks: r
1243
1255
  };
1244
- }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => wt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => nn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => Qt("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1256
+ }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => Tt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => rn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => $t("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1245
1257
  return h.diagnostics?.length && process.env.TISSEUSE_WARN_PARSED_BILL_DIAGNOSTICS === "1" && console.warn("Assemblée bill parsing diagnostics", h.diagnostics), n.log({
1246
1258
  articleCount: h.articles.length,
1247
1259
  blockCount: h.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1249,18 +1261,18 @@ async function rn(e, t) {
1249
1261
  targetDirectiveCount: h.directives.filter((e) => e.targetIds !== void 0).length
1250
1262
  }), h;
1251
1263
  }
1252
- async function an(e, t) {
1264
+ async function on(e, t) {
1253
1265
  return {
1254
1266
  sourceFormat: "assemblee-html",
1255
1267
  documentDate: t.date,
1256
1268
  html: e,
1257
- linkedHtml: await ot(e, t, t.date)
1269
+ linkedHtml: await st(e, t, t.date)
1258
1270
  };
1259
1271
  }
1260
1272
  function B(e) {
1261
1273
  return e.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;");
1262
1274
  }
1263
- function on(e) {
1275
+ function sn(e) {
1264
1276
  let t = e;
1265
1277
  for (let e = 0; e < 3; e++) {
1266
1278
  let e = t;
@@ -1268,25 +1280,25 @@ function on(e) {
1268
1280
  }
1269
1281
  return t;
1270
1282
  }
1271
- function sn(e) {
1283
+ function cn(e) {
1272
1284
  return /(?:&lt;|&amp;lt;)\/?(?:p|br|span|b|i|u|sup|sub|table|thead|tbody|tr|th|td|ul|ol|li)\b/iu.test(e);
1273
1285
  }
1274
1286
  function V(e) {
1275
1287
  return e.name.replace(/^.*:/u, "");
1276
1288
  }
1277
- function cn(e, t) {
1289
+ function ln(e, t) {
1278
1290
  return t.children.map((t) => H(e, t)).filter(Boolean).join("");
1279
1291
  }
1280
- function ln(e, t) {
1281
- return t.children.map((t) => t.type === "text" && sn(t.data) ? on(t.data) : H(e, t)).filter(Boolean).join("");
1292
+ function un(e, t) {
1293
+ return t.children.map((t) => t.type === "text" && cn(t.data) ? sn(t.data) : H(e, t)).filter(Boolean).join("");
1282
1294
  }
1283
1295
  function H(e, t) {
1284
1296
  if (t.type === "text") {
1285
1297
  let e = t.data.replace(/\s+\./gu, ".");
1286
- return sn(e) ? on(e) : B(e);
1298
+ return cn(e) ? sn(e) : B(e);
1287
1299
  }
1288
- if (!L(t)) return "";
1289
- let n = V(t), r = cn(e, t);
1300
+ if (!I(t)) return "";
1301
+ let n = V(t), r = ln(e, t);
1290
1302
  switch (n) {
1291
1303
  case "p": return `<p${U(e, t, [
1292
1304
  "id",
@@ -1319,7 +1331,7 @@ function H(e, t) {
1319
1331
  case "tbody":
1320
1332
  case "tr":
1321
1333
  case "th":
1322
- case "td": return fn(e, t, n, r);
1334
+ case "td": return pn(e, t, n, r);
1323
1335
  case "caption": return `<caption${U(e, t, [
1324
1336
  "id",
1325
1337
  "class",
@@ -1328,12 +1340,12 @@ function H(e, t) {
1328
1340
  ])}>${r}</caption>`;
1329
1341
  case "num": return `<span class="akn-num">${r}</span> `;
1330
1342
  case "heading": return `<p class="akn-heading">${r}</p>`;
1331
- case "content": return ln(e, t);
1332
- case "alinea": return Dn(e, t, "div", "akn-alinea");
1333
- case "article": return Dn(e, t, "article", "akn-article");
1343
+ case "content": return un(e, t);
1344
+ case "alinea": return On(e, t, "div", "akn-alinea");
1345
+ case "article": return On(e, t, "article", "akn-article");
1334
1346
  case "blockList":
1335
1347
  case "list": return `<div class="akn-list">${r}</div>`;
1336
- case "item": return Dn(e, t, "div", "akn-item");
1348
+ case "item": return On(e, t, "div", "akn-item");
1337
1349
  case "listIntroduction":
1338
1350
  case "listWrapUp":
1339
1351
  case "intro":
@@ -1349,12 +1361,12 @@ function H(e, t) {
1349
1361
  case "book":
1350
1362
  case "tome":
1351
1363
  case "subchapter":
1352
- case "subsection": return Dn(e, t, "section", `akn-${n}`);
1364
+ case "subsection": return On(e, t, "section", `akn-${n}`);
1353
1365
  case "crossHeading": return `<p class="akn-cross-heading">${r}</p>`;
1354
1366
  default: return r;
1355
1367
  }
1356
1368
  }
1357
- function un(e, t) {
1369
+ function dn(e, t) {
1358
1370
  let n = e(t).text();
1359
1371
  if (!n.includes("«") || !n.includes("»") || e(t).find("table").length > 0) return;
1360
1372
  let r = e(t).find("tr").get().filter((n) => e(n).closest("table").get(0) === t);
@@ -1365,26 +1377,26 @@ function un(e, t) {
1365
1377
  let l = s ? o[0] : void 0, u = c ? o.at(-1) : void 0;
1366
1378
  if (l) {
1367
1379
  let t = Number(e(l).attr("rowspan") ?? "1");
1368
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && P(e(l).text()) !== "«") return [];
1380
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && N(e(l).text()) !== "«") return [];
1369
1381
  i = t - 1;
1370
1382
  }
1371
1383
  if (u) {
1372
1384
  let t = Number(e(u).attr("rowspan") ?? "1");
1373
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(P(e(u).text()))) return [];
1385
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(N(e(u).text()))) return [];
1374
1386
  a = t - 1;
1375
1387
  }
1376
1388
  return [l, u];
1377
1389
  });
1378
1390
  if (o.some((e) => e.length !== 2)) return;
1379
- let s = o.map(([t]) => t ? P(e(t).text()) : ""), c = o.map(([, t]) => t ? P(e(t).text()) : "");
1391
+ let s = o.map(([t]) => t ? N(e(t).text()) : ""), c = o.map(([, t]) => t ? N(e(t).text()) : "");
1380
1392
  if (!(s.filter((e) => e === "«").length !== 1 || c.filter((e) => /^»\s*;?$/u.test(e)).length !== 1 || s.some((e) => e !== "" && e !== "«") || c.some((e) => e !== "" && !/^»\s*;?$/u.test(e)) || o.some(([t, n]) => [t, n].some((t) => t && e(t).attr("colspan") !== void 0))) && !(s.indexOf("«") > c.findIndex((e) => e.startsWith("»")))) {
1381
1393
  e(t).addClass("akn-quoted-table");
1382
1394
  for (let [t, n] of o) t && e(t).addClass("akn-quote-column"), n && e(n).addClass("akn-quote-column");
1383
1395
  }
1384
1396
  }
1385
- function dn(e, t) {
1386
- let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(P(e(t).text())))).text();
1387
- return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => P(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1397
+ function fn(e, t) {
1398
+ let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(N(e(t).text())))).text();
1399
+ return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => N(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1388
1400
  }
1389
1401
  function U(e, t, n, r = {}) {
1390
1402
  let i = [];
@@ -1396,7 +1408,7 @@ function U(e, t, n, r = {}) {
1396
1408
  let a = r.style ?? e(t).attr("style");
1397
1409
  return a && i.push(`style="${B(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1398
1410
  }
1399
- function fn(e, t, n, r) {
1411
+ function pn(e, t, n, r) {
1400
1412
  return `<${n}${U(e, t, [
1401
1413
  "id",
1402
1414
  "class",
@@ -1410,105 +1422,105 @@ function fn(e, t, n, r) {
1410
1422
  "cellspacing",
1411
1423
  "cellpadding",
1412
1424
  "style"
1413
- ], { style: pn(e, t, n) })}>${r}</${n}>`;
1425
+ ], { style: mn(e, t, n) })}>${r}</${n}>`;
1414
1426
  }
1415
- function pn(e, t, n) {
1427
+ function mn(e, t, n) {
1416
1428
  let r = e(t).attr("style") ?? "";
1417
- return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = mn(r, "text-align", "center")), r || void 0;
1429
+ return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = hn(r, "text-align", "center")), r || void 0;
1418
1430
  }
1419
- function mn(e, t, n) {
1431
+ function hn(e, t, n) {
1420
1432
  let r = e.trim();
1421
1433
  return `${r}${r && !r.endsWith(";") ? ";" : ""} ${t}: ${n};`.trim();
1422
1434
  }
1423
- function hn(e, t) {
1424
- let n = [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean);
1435
+ function gn(e, t) {
1436
+ let n = [N(e(t).children("num").first().text()), N(e(t).children("heading").first().text())].filter(Boolean);
1425
1437
  return n.length === 0 ? "" : `<p class="akn-heading">${B(n.join(" "))}</p>`;
1426
1438
  }
1427
- function gn(e, t) {
1439
+ function _n(e, t) {
1428
1440
  if (!t) return !1;
1429
- let n = (e) => P(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1430
- return n(P(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1441
+ let n = (e) => N(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1442
+ return n(N(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1431
1443
  }
1432
- function _n(e) {
1444
+ function vn(e) {
1433
1445
  let t = B(e);
1434
1446
  return `<p data-pastille="${t}" class="pastille"><span aria-label="pastille ${t}" data-pastille="${t}"></span></p>`;
1435
1447
  }
1436
- function vn(e, t) {
1437
- return yn([bn({
1448
+ function yn(e, t) {
1449
+ return bn([xn({
1438
1450
  content: e,
1439
1451
  pastille: t
1440
1452
  })]);
1441
1453
  }
1442
- function yn(e) {
1454
+ function bn(e) {
1443
1455
  return `<table class="fixed-size large akn-pastille-table"><colgroup><col style="width: 5.0%;" class="texte-col-0 texte-col-pastille"><col style="width: 95.0%;" class="texte-col-1"></colgroup><tbody>${e.join("\n")}</tbody></table>`;
1444
1456
  }
1445
- function bn({ content: e, pastille: t, style: n, contextClass: r }) {
1457
+ function xn({ content: e, pastille: t, style: n, contextClass: r }) {
1446
1458
  let i = n ? ` style="${B(n)}"` : "", a = r ? ` ${B(r)}` : "";
1447
- return `<tr${r ? ` class="${B(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${_n(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1459
+ return `<tr${r ? ` class="${B(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${vn(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1448
1460
  }
1449
- function xn({ content: e, style: t, contextClass: n }) {
1461
+ function Sn({ content: e, style: t, contextClass: n }) {
1450
1462
  let r = t ? ` style="${B(t)}"` : "", i = n ? ` ${B(n)}` : "";
1451
1463
  return `<tr${n ? ` class="${B(n)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 no-right-border"><div class="tableauComparatifCell${i}"><p class="pastille"><br></p></div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${i}"${r}>${e}</div></td></tr>`;
1452
1464
  }
1453
- function Sn(e, t) {
1454
- return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1455
- }
1456
1465
  function Cn(e, t) {
1457
- return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1466
+ return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1458
1467
  }
1459
1468
  function wn(e, t) {
1460
- return e(t).children().get().filter((e) => L(e) ? V(e) === "content" : !1).map((t) => H(e, t)).filter(Boolean).join("\n");
1469
+ return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1461
1470
  }
1462
1471
  function Tn(e, t) {
1472
+ return e(t).children().get().filter((e) => I(e) ? V(e) === "content" : !1).map((t) => H(e, t)).filter(Boolean).join("\n");
1473
+ }
1474
+ function En(e, t) {
1463
1475
  let n = [];
1464
1476
  return e(t).children().each((t, r) => {
1465
- if (!L(r)) return;
1477
+ if (!I(r)) return;
1466
1478
  let i = V(r);
1467
1479
  i === "num" || i === "heading" || i === "content" || n.push(H(e, r));
1468
1480
  }), n.filter(Boolean);
1469
1481
  }
1470
- function En(e, t) {
1471
- let n = [], r = V(t), i = r === "alinea" ? Sn(e, t) : void 0, a = wn(e, t), o = On(e, t, r, i), s = Pn(e, t);
1482
+ function Dn(e, t) {
1483
+ let n = [], r = V(t), i = r === "alinea" ? Cn(e, t) : void 0, a = Tn(e, t), o = kn(e, t, r, i), s = Fn(e, t);
1472
1484
  if (i) {
1473
- let r = [gn(a, P(e(t).children("num").first().text())) ? "" : hn(e, t), a].filter(Boolean).join("\n");
1474
- P(r) && n.push(bn({
1485
+ let r = [_n(a, N(e(t).children("num").first().text())) ? "" : gn(e, t), a].filter(Boolean).join("\n");
1486
+ N(r) && n.push(xn({
1475
1487
  content: r,
1476
1488
  pastille: i,
1477
1489
  style: o,
1478
1490
  contextClass: s
1479
1491
  }));
1480
- } else a && n.push(xn({
1492
+ } else a && n.push(Sn({
1481
1493
  content: a,
1482
1494
  style: o,
1483
1495
  contextClass: s
1484
1496
  }));
1485
1497
  for (let r of e(t).children().get()) {
1486
- if (!L(r)) continue;
1498
+ if (!I(r)) continue;
1487
1499
  let t = V(r);
1488
- t === "num" || t === "heading" || t === "content" || (t === "alinea" || Cn(e, r)) && n.push(...En(e, r));
1500
+ t === "num" || t === "heading" || t === "content" || (t === "alinea" || wn(e, r)) && n.push(...Dn(e, r));
1489
1501
  }
1490
1502
  return n;
1491
1503
  }
1492
- function Dn(e, t, n, r) {
1493
- let i = V(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = Sn(e, t), s = On(e, t, i, o), c = [`<${n} ${[
1504
+ function On(e, t, n, r) {
1505
+ let i = V(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = Cn(e, t), s = kn(e, t, i, o), c = [`<${n} ${[
1494
1506
  a ? `id="${B(a)}"` : void 0,
1495
1507
  `class="${r}"`,
1496
1508
  o ? `data-pastille="${B(o)}"` : void 0,
1497
1509
  s ? `style="${B(s)}"` : void 0
1498
1510
  ].filter((e) => e !== void 0).join(" ")}>`];
1499
1511
  if (i === "part" || i === "title") {
1500
- let r = jn(e, t, i), a = Nn(e, t), o = r ? [xn({
1512
+ let r = Mn(e, t, i), a = Pn(e, t), o = r ? [Sn({
1501
1513
  content: r,
1502
1514
  contextClass: a
1503
1515
  })] : [], s = () => {
1504
- o.length !== 0 && (c.push(An(o)), o = []);
1516
+ o.length !== 0 && (c.push(jn(o)), o = []);
1505
1517
  };
1506
1518
  return e(t).children().each((t, n) => {
1507
- if (!L(n)) return;
1519
+ if (!I(n)) return;
1508
1520
  let r = V(n);
1509
1521
  if (!(r === "num" || r === "heading" || r === "content")) {
1510
1522
  if (r === "alinea") {
1511
- o.push(...En(e, n));
1523
+ o.push(...Dn(e, n));
1512
1524
  return;
1513
1525
  }
1514
1526
  s(), c.push(H(e, n));
@@ -1516,49 +1528,49 @@ function Dn(e, t, n, r) {
1516
1528
  }), s(), c.push(`</${n}>`), c.join("\n");
1517
1529
  }
1518
1530
  if (i === "article") {
1519
- let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = f(r) ?? {
1531
+ let r = N(e(t).children("num").first().text()), i = N(e(t).children("heading").first().text()), a = C(r) ?? {
1520
1532
  label: r,
1521
1533
  num: r
1522
1534
  }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${B(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${B(a.label)}${i ? ` : ${B(i)}` : ""}</p>`;
1523
- if (Cn(e, t)) {
1524
- let r = [xn({
1535
+ if (wn(e, t)) {
1536
+ let r = [Sn({
1525
1537
  content: o,
1526
- contextClass: In(a.label)
1527
- }), ...En(e, t)];
1528
- c.push(yn(r));
1529
- for (let n of Tn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1538
+ contextClass: Ln(a.label)
1539
+ }), ...Dn(e, t)];
1540
+ c.push(bn(r));
1541
+ for (let n of En(e, t)) n.includes("akn-pastille-table") || c.push(n);
1530
1542
  return c.push(`</${n}>`), c.join("\n");
1531
1543
  }
1532
1544
  c.push(o);
1533
1545
  }
1534
1546
  let l = [];
1535
1547
  for (let n of ["content", "children"]) e(t).children().each((t, r) => {
1536
- if (!L(r)) return;
1548
+ if (!I(r)) return;
1537
1549
  let i = V(r);
1538
1550
  i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || l.push(H(e, r));
1539
1551
  });
1540
1552
  let u = l.join("\n");
1541
1553
  if (i !== "article") {
1542
- let n = gn(u, P(e(t).children("num").first().text())) ? "" : hn(e, t);
1554
+ let n = _n(u, N(e(t).children("num").first().text())) ? "" : gn(e, t);
1543
1555
  n && c.push(n);
1544
1556
  }
1545
- return c.push(o ? vn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1557
+ return c.push(o ? yn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1546
1558
  }
1547
- function On(e, t, n, r) {
1548
- let i = kn(e(t).attr("style") ?? "", "font-family");
1549
- return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = mn(i, "text-align", "center")), i || void 0;
1559
+ function kn(e, t, n, r) {
1560
+ let i = An(e(t).attr("style") ?? "", "font-family");
1561
+ return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = hn(i, "text-align", "center")), i || void 0;
1550
1562
  }
1551
- function kn(e, t) {
1563
+ function An(e, t) {
1552
1564
  return e.split(";").map((e) => e.trim()).filter(Boolean).filter((e) => !e.toLowerCase().startsWith(`${t.toLowerCase()}:`)).join(";");
1553
1565
  }
1554
- function An(e) {
1566
+ function jn(e) {
1555
1567
  return `<table class="fixed-size large akn-section-table"><colgroup><col style="width: 5.0%;" class="texte-col-0 texte-col-pastille"><col style="width: 95.0%;" class="texte-col-1"></colgroup><tbody>${e.join("\n")}</tbody></table>`;
1556
1568
  }
1557
- function jn(e, t, n) {
1558
- let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = Mn(n), o = [];
1569
+ function Mn(e, t, n) {
1570
+ let r = N(e(t).children("num").first().text()), i = N(e(t).children("heading").first().text()), a = Nn(n), o = [];
1559
1571
  return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${B(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${B(i)}</span></p>`), o.join("\n");
1560
1572
  }
1561
- function Mn(e) {
1573
+ function Nn(e) {
1562
1574
  switch (e) {
1563
1575
  case "part": return {
1564
1576
  num: "TCNumPartie",
@@ -1582,22 +1594,22 @@ function Mn(e) {
1582
1594
  };
1583
1595
  }
1584
1596
  }
1585
- function Nn(e, t) {
1586
- let n = Fn(P(e(t).children("num").first().text()));
1597
+ function Pn(e, t) {
1598
+ let n = In(N(e(t).children("num").first().text()));
1587
1599
  if (n) return n;
1588
1600
  for (let n of e(t).parents().get()) {
1589
- if (!L(n)) continue;
1601
+ if (!I(n)) continue;
1590
1602
  let t = V(n);
1591
1603
  if (t !== "title" && t !== "part") continue;
1592
- let r = Fn(P(e(n).children("num").first().text()));
1604
+ let r = In(N(e(n).children("num").first().text()));
1593
1605
  if (r) return r;
1594
1606
  }
1595
1607
  }
1596
- function Pn(e, t) {
1597
- return Nn(e, t);
1608
+ function Fn(e, t) {
1609
+ return Pn(e, t);
1598
1610
  }
1599
- function Fn(e) {
1600
- let [t, ...n] = P(e).split(/\s+/u);
1611
+ function In(e) {
1612
+ let [t, ...n] = N(e).split(/\s+/u);
1601
1613
  if (!t || n.length === 0) return;
1602
1614
  let r = t.toLocaleLowerCase("fr-FR");
1603
1615
  if ([
@@ -1607,10 +1619,10 @@ function Fn(e) {
1607
1619
  "section"
1608
1620
  ].includes(r)) return `${r}-${n.join("_")}`;
1609
1621
  }
1610
- function In(e) {
1611
- return `article-${P(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1612
- }
1613
1622
  function Ln(e) {
1623
+ return `article-${N(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1624
+ }
1625
+ function Rn(e) {
1614
1626
  switch (e) {
1615
1627
  case "part": return "partie";
1616
1628
  case "book": return "livre";
@@ -1622,11 +1634,11 @@ function Ln(e) {
1622
1634
  default: return;
1623
1635
  }
1624
1636
  }
1625
- function Rn(e, t) {
1626
- return [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1627
- }
1628
1637
  function zn(e, t) {
1629
- let n = P(e(t).children("num").first().text()), r = P(e(t).children("heading").first().text()), i = f(n) ?? {
1638
+ return [N(e(t).children("num").first().text()), N(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1639
+ }
1640
+ function Bn(e, t) {
1641
+ let n = N(e(t).children("num").first().text()), r = N(e(t).children("heading").first().text()), i = C(n) ?? {
1630
1642
  label: n,
1631
1643
  num: n
1632
1644
  };
@@ -1636,24 +1648,24 @@ function zn(e, t) {
1636
1648
  type: "article"
1637
1649
  };
1638
1650
  }
1639
- function Bn(e, t) {
1651
+ function Vn(e, t) {
1640
1652
  e.items.push(...t.items);
1641
1653
  }
1642
- function Vn(e, t) {
1654
+ function Hn(e, t) {
1643
1655
  let n = { items: [] };
1644
1656
  return e(t).children().each((t, r) => {
1645
- if (!L(r)) return;
1657
+ if (!I(r)) return;
1646
1658
  let i = V(r);
1647
1659
  if (i === "article") {
1648
- n.items.push(zn(e, r));
1660
+ n.items.push(Bn(e, r));
1649
1661
  return;
1650
1662
  }
1651
- let a = Ln(i);
1663
+ let a = Rn(i);
1652
1664
  if (!a) {
1653
- Bn(n, Vn(e, r));
1665
+ Vn(n, Hn(e, r));
1654
1666
  return;
1655
1667
  }
1656
- let o = Rn(e, r), s = Vn(e, r);
1668
+ let o = zn(e, r), s = Hn(e, r);
1657
1669
  !o && s.items.length === 0 || n.items.push({
1658
1670
  ...s,
1659
1671
  id: e(r).attr("eId") ?? e(r).attr("GUID"),
@@ -1662,27 +1674,27 @@ function Vn(e, t) {
1662
1674
  });
1663
1675
  }), n;
1664
1676
  }
1665
- function Hn(e) {
1677
+ function Un(e) {
1666
1678
  let t = e("body").first().get(0);
1667
- return t === void 0 ? { items: [] } : Vn(e, t);
1679
+ return t === void 0 ? { items: [] } : Hn(e, t);
1668
1680
  }
1669
- function Un(e) {
1681
+ function Wn(e) {
1670
1682
  return e("FRBRExpression FRBRdate[name=\"#depot\"]").attr("date") ?? e("FRBRWork FRBRdate[name=\"#presentation\"]").attr("date");
1671
1683
  }
1672
- function Wn(e) {
1673
- e("table").each((t, n) => un(e, n));
1684
+ function Gn(e) {
1685
+ e("table").each((t, n) => dn(e, n));
1674
1686
  let t = e("preamble").first(), n = e("body").first(), r = ["<div class=\"akn-bill\">", "<style>.akn-bill p.pastille span:empty::before{content:attr(data-pastille)}</style>"];
1675
- return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(cn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1676
- L(n) && r.push(V(n) === "article" ? Dn(e, n, "article", "akn-article") : H(e, n));
1687
+ return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(ln(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1688
+ I(n) && r.push(V(n) === "article" ? On(e, n, "article", "akn-article") : H(e, n));
1677
1689
  }), r.push("</section></div>"), r.join("\n");
1678
1690
  }
1679
- function Gn(e) {
1691
+ function Kn(e) {
1680
1692
  let t = w(e, { xml: {
1681
1693
  decodeEntities: !1,
1682
1694
  lowerCaseTags: !1,
1683
1695
  lowerCaseAttributeNames: !1,
1684
1696
  xmlMode: !0
1685
- } }), n = Un(t), r = Wn(t);
1697
+ } }), n = Wn(t), r = Gn(t);
1686
1698
  return {
1687
1699
  sourceFormat: "akoma-ntoso",
1688
1700
  documentDate: n,
@@ -1690,42 +1702,42 @@ function Gn(e) {
1690
1702
  linkedHtml: r
1691
1703
  };
1692
1704
  }
1693
- function Kn(e) {
1694
- return qn(w(e));
1695
- }
1696
1705
  function qn(e) {
1706
+ return Jn(w(e));
1707
+ }
1708
+ function Jn(e) {
1697
1709
  let t = [];
1698
1710
  return e("article.akn-article").each((n, r) => {
1699
- let i = e(r).find("p.TCNumArticle").first().get(0), a = P(i ? e(i).text() : ""), o = f(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = Ct(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1711
+ let i = e(r).find("p.TCNumArticle").first().get(0), a = N(i ? e(i).text() : ""), o = C(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = wt(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1700
1712
  t.push({
1701
1713
  id: s,
1702
1714
  label: o.label,
1703
1715
  num: o.num,
1704
1716
  title: o.title,
1705
- text: it(e, c),
1706
- html: et(e, r),
1717
+ text: at(e, c),
1718
+ html: tt(e, r),
1707
1719
  directiveText: u,
1708
1720
  blocks: l
1709
1721
  });
1710
1722
  }), t;
1711
1723
  }
1712
- function Jn(e) {
1724
+ function Yn(e) {
1713
1725
  let t = w(e);
1714
1726
  return {
1715
- articles: qn(t),
1727
+ articles: Jn(t),
1716
1728
  htmlWithLinks: t.html()
1717
1729
  };
1718
1730
  }
1719
- async function Yn(e, t) {
1731
+ async function Xn(e, t) {
1720
1732
  let n = new Ce("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => w(e, { xml: {
1721
1733
  decodeEntities: !1,
1722
1734
  lowerCaseTags: !1,
1723
1735
  lowerCaseAttributeNames: !1,
1724
1736
  xmlMode: !0
1725
- } })), i = t.date ?? Un(r), a = n.timeSync("renderAknHtml", () => Wn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ot(a, {
1737
+ } })), i = t.date ?? Wn(r), a = n.timeSync("renderAknHtml", () => Gn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => st(a, {
1726
1738
  ...t,
1727
1739
  date: i
1728
- }, i)), s = n.timeSync("extractRenderedAknArticles", () => Kn(a)), c = n.timeSync("injectHiddenArticleSummary", () => wt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Jn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Hn(r)), p = n.timeSync("buildParsedDocument", () => Qt("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, tn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1740
+ }, i)), s = n.timeSync("extractRenderedAknArticles", () => qn(a)), c = n.timeSync("injectHiddenArticleSummary", () => Tt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Yn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Un(r)), p = n.timeSync("buildParsedDocument", () => $t("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, nn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1729
1741
  return n.log({
1730
1742
  articleCount: p.articles.length,
1731
1743
  blockCount: p.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1733,25 +1745,25 @@ async function Yn(e, t) {
1733
1745
  targetDirectiveCount: p.directives.filter((e) => e.targetIds !== void 0).length
1734
1746
  }), p;
1735
1747
  }
1736
- async function Xn(e, t) {
1737
- let n = Gn(e), r = t.date ?? n.documentDate;
1748
+ async function Zn(e, t) {
1749
+ let n = Kn(e), r = t.date ?? n.documentDate;
1738
1750
  return {
1739
1751
  sourceFormat: "akoma-ntoso",
1740
1752
  documentDate: r,
1741
1753
  html: n.html,
1742
- linkedHtml: await ot(n.html, t, r)
1754
+ linkedHtml: await st(n.html, t, r)
1743
1755
  };
1744
1756
  }
1745
1757
  //#endregion
1746
1758
  //#region src/lib/server/assemblee_document_search.ts
1747
- var Zn = /\bexpos[ée]\s+des\s+motifs\b/giu, Qn = /\barticle\s+(?:premier|1er|\d+)/iu;
1748
- function $n(e) {
1759
+ var Qn = /\bexpos[ée]\s+des\s+motifs\b/giu, $n = /\barticle\s+(?:premier|1er|\d+)/iu;
1760
+ function er(e) {
1749
1761
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
1750
1762
  }
1751
- function er(e) {
1752
- let t = $n(w(e).text()), n = [...t.matchAll(Zn)], r = /* @__PURE__ */ new Set(), i = [];
1763
+ function tr(e) {
1764
+ let t = er(w(e).text()), n = [...t.matchAll(Qn)], r = /* @__PURE__ */ new Set(), i = [];
1753
1765
  for (let [e, a] of n.entries()) {
1754
- let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = Qn.exec(s), l = $n(s.slice(0, c?.index ?? s.length));
1766
+ let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = $n.exec(s), l = er(s.slice(0, c?.index ?? s.length));
1755
1767
  if (l.length < 20 || r.has(l)) continue;
1756
1768
  r.add(l);
1757
1769
  let u = `expose-des-motifs-${e + 1}`;
@@ -1767,8 +1779,8 @@ function er(e) {
1767
1779
  }
1768
1780
  return i;
1769
1781
  }
1770
- async function tr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1771
- let i = await rn(t, {
1782
+ async function nr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1783
+ let i = await an(t, {
1772
1784
  date: e,
1773
1785
  includeDirectiveAnalysis: !1,
1774
1786
  linkBaseUrl: n,
@@ -1777,7 +1789,7 @@ async function tr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1777
1789
  });
1778
1790
  return {
1779
1791
  items: [...i.articles.map((e) => {
1780
- let t = $n(e.directiveText || e.text);
1792
+ let t = er(e.directiveText || e.text);
1781
1793
  if (t) return {
1782
1794
  anchor: e.id,
1783
1795
  articleNumber: e.num ?? null,
@@ -1787,17 +1799,17 @@ async function tr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1787
1799
  label: e.label,
1788
1800
  title: e.title ?? null
1789
1801
  };
1790
- }).filter((e) => e !== void 0), ...er(t)],
1802
+ }).filter((e) => e !== void 0), ...tr(t)],
1791
1803
  tableOfContents: i.tableOfContents
1792
1804
  };
1793
1805
  }
1794
- function nr(e, t) {
1806
+ function rr(e, t) {
1795
1807
  return Oe("sha256").update(JSON.stringify({
1796
1808
  item: e,
1797
1809
  metadata: t
1798
1810
  })).digest("hex");
1799
1811
  }
1800
- function rr(e) {
1812
+ function ir(e) {
1801
1813
  if (typeof e != "object" || !e) return;
1802
1814
  let t = e.cycleDeVie?.chrono;
1803
1815
  if (t !== void 0) for (let e of [
@@ -1812,11 +1824,11 @@ function rr(e) {
1812
1824
  }
1813
1825
  //#endregion
1814
1826
  //#region src/lib/server/senat_amendment_search.ts
1815
- function ir(e) {
1827
+ function ar(e) {
1816
1828
  return e?.trim() ? w(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1817
1829
  }
1818
- function ar({ dispositifHtml: e, objetHtml: t }) {
1819
- let n = ir(e), r = ir(t);
1830
+ function or({ dispositifHtml: e, objetHtml: t }) {
1831
+ let n = ar(e), r = ar(t);
1820
1832
  return [...n ? [{
1821
1833
  content: n,
1822
1834
  itemKind: "dispositif",
@@ -1827,7 +1839,7 @@ function ar({ dispositifHtml: e, objetHtml: t }) {
1827
1839
  label: "Objet"
1828
1840
  }] : []];
1829
1841
  }
1830
- function or(e, t) {
1842
+ function sr(e, t) {
1831
1843
  return Oe("sha256").update(JSON.stringify({
1832
1844
  item: e,
1833
1845
  metadata: t
@@ -1842,76 +1854,76 @@ function W(e, t) {
1842
1854
  type: "amendment_action_directive"
1843
1855
  };
1844
1856
  }
1845
- function sr(e, t) {
1857
+ function cr(e, t) {
1846
1858
  return {
1847
1859
  type: e === "start" ? "head_of_target" : "tail_after_target",
1848
- unit: t ? ue(t) : "article"
1860
+ unit: t ? fe(t) : "article"
1849
1861
  };
1850
1862
  }
1851
- function cr(e) {
1863
+ function lr(e) {
1852
1864
  return e === "start" ? "insert_before" : "insert_after";
1853
1865
  }
1854
- var lr = D(k("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = T(ee, O([k("les?\\s+", { flags: "i" }), u], { value: (e) => e[1] }), u, fe), ur = T(O([k("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
1866
+ var ur = D(E("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = O(t, A([E("les?\\s+", { flags: "i" }), p], { value: (e) => e[1] }), p, n), dr = O(A([E("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
1855
1867
  let t = e[1];
1856
1868
  return {
1857
1869
  targetReference: t,
1858
1870
  targetScope: {
1859
1871
  type: "tail_after_target",
1860
- unit: ue(t)
1872
+ unit: fe(t)
1861
1873
  }
1862
1874
  };
1863
- } }), O([r], { value: (e) => ({ targetScope: e[0] }) })), K = D(O([
1864
- D(k("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1865
- D(k("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1875
+ } }), A([i], { value: (e) => ({ targetScope: e[0] }) })), K = D(A([
1876
+ D(E("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1877
+ D(E("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1866
1878
  G,
1867
- D(k("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1879
+ D(E("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1868
1880
  ], { value: (e, t) => ({
1869
1881
  reference: e[2],
1870
1882
  text: t.text()
1871
- }) }), { default: null }), dr = D(k(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${ye})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1883
+ }) }), { default: null }), fr = D(E(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${ve})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1872
1884
  function q(e) {
1873
1885
  return e?.text ?? "";
1874
1886
  }
1875
- function fr(t) {
1876
- return { citation: e(t.position()) };
1887
+ function pr(e) {
1888
+ return { citation: ee(e.position()) };
1877
1889
  }
1878
- var J = T(O([_], { value: (e) => ({ citation: e[0] }) }), k("\\S[\\s\\S]*", { value: (e, t) => fr(t) })), pr = k("\\S[\\s\\S]*", { value: (e, t) => fr(t) }), Y = k("[^:«“\"]*(?::\\s*)?", { flags: "i" }), mr = k("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1890
+ var J = O(A([v], { value: (e) => ({ citation: e[0] }) }), E("\\S[\\s\\S]*", { value: (e, t) => pr(t) })), mr = E("\\S[\\s\\S]*", { value: (e, t) => pr(t) }), Y = E("[^:«“\"]*(?::\\s*)?", { flags: "i" }), hr = E("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1879
1891
  flags: "i",
1880
- value: (e, t) => fr(t)
1881
- }), hr = k("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1892
+ value: (e, t) => pr(t)
1893
+ }), gr = E("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1882
1894
  flags: "i",
1883
- value: (e, t) => fr(t)
1884
- }), gr = k("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1895
+ value: (e, t) => pr(t)
1896
+ }), _r = E("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1885
1897
  flags: "i",
1886
- value: (e, t) => fr(t)
1887
- }), _r = T(O([_], { value: (e) => ({ citation: e[0] }) }), mr), vr = T(O([_], { value: (e) => ({ citation: e[0] }) }), gr), yr = O([k(`${i}s?\\s*:?\\s*`, { flags: "i" }), _r], { value: (e) => e[1] }), br = O([k(`${o}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), vr], { value: (e) => e[1] }), xr = T(O([_], { value: (e) => ({ citation: e[0] }) }), hr), Sr = O([
1888
- dr,
1889
- k(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1890
- xr
1891
- ], { value: (e) => e[2] }), Cr = O([
1892
- dr,
1893
- k(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1894
- T(O([_], { value: (e) => ({ citation: e[0] }) }), pr)
1898
+ value: (e, t) => pr(t)
1899
+ }), vr = O(A([v], { value: (e) => ({ citation: e[0] }) }), hr), yr = O(A([v], { value: (e) => ({ citation: e[0] }) }), _r), br = A([E(`${o}s?\\s*:?\\s*`, { flags: "i" }), vr], { value: (e) => e[1] }), xr = A([E(`${c}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), yr], { value: (e) => e[1] }), Sr = O(A([v], { value: (e) => ({ citation: e[0] }) }), gr), Cr = A([
1900
+ fr,
1901
+ E(`${o}s?\\s*:?\\s*`, { flags: "i" }),
1902
+ Sr
1903
+ ], { value: (e) => e[2] }), wr = A([
1904
+ fr,
1905
+ E(`${o}s?\\s*:?\\s*`, { flags: "i" }),
1906
+ O(A([v], { value: (e) => ({ citation: e[0] }) }), mr)
1895
1907
  ], { value: (e) => e[2] });
1896
1908
  function X(e) {
1897
1909
  return e?.reference;
1898
1910
  }
1899
- var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
1911
+ var Tr = A([ur, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
1900
1912
  contextText: e[0],
1901
1913
  kind: "delete_article"
1902
- }) }), Tr = O([
1914
+ }) }), Er = A([
1903
1915
  K,
1904
- k("supprimer", { flags: "i" }),
1905
- D(O([A, G], { value: (e) => e[1] }), { default: null }),
1906
- D(O([A, Cr], { value: (e) => e[1] }), { default: null })
1916
+ E("supprimer", { flags: "i" }),
1917
+ D(A([k, G], { value: (e) => e[1] }), { default: null }),
1918
+ D(A([k, wr], { value: (e) => e[1] }), { default: null })
1907
1919
  ], { value: (e, t) => W(t, {
1908
1920
  contextText: q(e[0]),
1909
1921
  kind: "delete_portion",
1910
1922
  targetCitation: e[3]?.citation ?? void 0,
1911
1923
  targetReference: e[2] ?? X(e[0])
1912
- }) }), Er = O([
1924
+ }) }), Dr = A([
1913
1925
  K,
1914
- T(k("r[eé]diger\\s+ainsi", { flags: "i" }), k("r[eé]tablir", { flags: "i" })),
1926
+ O(E("r[eé]diger\\s+ainsi", { flags: "i" }), E("r[eé]tablir", { flags: "i" })),
1915
1927
  Y,
1916
1928
  J
1917
1929
  ], { value: (e, t) => W(t, {
@@ -1919,76 +1931,76 @@ var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1919
1931
  kind: "rewrite_portion",
1920
1932
  replacementCitation: e[3].citation,
1921
1933
  targetReference: X(e[0])
1922
- }) }), Dr = O([
1934
+ }) }), Or = A([
1923
1935
  K,
1924
- T(k("substituer", { flags: "i" }), k("remplacer", { flags: "i" })),
1925
- A,
1926
- dr,
1927
- yr,
1928
- k("\\s*,?\\s*"),
1929
- D(k("par\\s+", { flags: "i" }), { default: "" }),
1930
- br
1936
+ O(E("substituer", { flags: "i" }), E("remplacer", { flags: "i" })),
1937
+ k,
1938
+ fr,
1939
+ br,
1940
+ E("\\s*,?\\s*"),
1941
+ D(E("par\\s+", { flags: "i" }), { default: "" }),
1942
+ xr
1931
1943
  ], { value: (e, t) => W(t, {
1932
1944
  contextText: q(e[0]),
1933
1945
  kind: "replace",
1934
1946
  replacementCitation: e[7].citation,
1935
1947
  targetCitation: e[4].citation,
1936
1948
  targetReference: X(e[0])
1937
- }) }), Or = O([
1949
+ }) }), kr = A([
1938
1950
  K,
1939
- k("substituer", { flags: "i" }),
1940
- A,
1941
- D(k("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1951
+ E("substituer", { flags: "i" }),
1952
+ k,
1953
+ D(E("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1942
1954
  G,
1943
- k("[\\s\\S]*?(?=[«“\"]|$)"),
1955
+ E("[\\s\\S]*?(?=[«“\"]|$)"),
1944
1956
  J
1945
1957
  ], { value: (e, t) => W(t, {
1946
1958
  contextText: q(e[0]),
1947
1959
  kind: "rewrite_portion",
1948
1960
  replacementCitation: e[6].citation,
1949
1961
  targetReference: e[4] ?? X(e[0])
1950
- }) }), kr = O([
1951
- S,
1952
- A,
1953
- k("l['’ ]article", { flags: "i" }),
1954
- k("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1955
- k("ins[eé]rer", { flags: "i" }),
1962
+ }) }), Ar = A([
1963
+ d,
1964
+ k,
1965
+ E("l['’ ]article", { flags: "i" }),
1966
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1967
+ E("ins[eé]rer", { flags: "i" }),
1956
1968
  Y,
1957
1969
  J
1958
1970
  ], { value: (e, t) => W(t, {
1959
1971
  contextText: "",
1960
1972
  insertCitation: e[6].citation,
1961
1973
  kind: e[0] === "before" ? "insert_article_before" : "insert_article_after"
1962
- }) }), Ar = O([
1963
- S,
1964
- A,
1974
+ }) }), jr = A([
1975
+ d,
1976
+ k,
1965
1977
  G,
1966
- k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1967
- T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
1978
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1979
+ O(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1968
1980
  Y,
1969
1981
  J
1970
- ], { value: (e, n) => W(n, {
1982
+ ], { value: (e, t) => W(t, {
1971
1983
  contextText: "",
1972
1984
  insertCitation: e[6].citation,
1973
- kind: t(e[0]),
1985
+ kind: re(e[0]),
1974
1986
  targetReference: e[2]
1975
- }) }), jr = O([
1976
- S,
1977
- A,
1978
- k("l['’ ]alin[eé]a", { flags: "i" }),
1979
- k("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1980
- k("ins[eé]rer", { flags: "i" }),
1987
+ }) }), Mr = A([
1988
+ d,
1989
+ k,
1990
+ E("l['’ ]alin[eé]a", { flags: "i" }),
1991
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1992
+ E("ins[eé]rer", { flags: "i" }),
1981
1993
  Y,
1982
1994
  J
1983
- ], { value: (e, n) => W(n, {
1995
+ ], { value: (e, t) => W(t, {
1984
1996
  contextText: "",
1985
1997
  insertCitation: e[6].citation,
1986
- kind: t(e[0])
1987
- }) }), Mr = O([
1998
+ kind: re(e[0])
1999
+ }) }), Nr = A([
1988
2000
  K,
1989
- C,
1990
- k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1991
- T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
2001
+ ie,
2002
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2003
+ O(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1992
2004
  Y,
1993
2005
  J
1994
2006
  ], { value: (e, t) => {
@@ -1996,62 +2008,62 @@ var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1996
2008
  return W(t, {
1997
2009
  contextText: q(n),
1998
2010
  insertCitation: e[5].citation,
1999
- kind: cr(i),
2011
+ kind: lr(i),
2000
2012
  targetReference: r,
2001
- targetScope: sr(i, r)
2013
+ targetScope: cr(i, r)
2002
2014
  });
2003
- } }), Nr = O([
2015
+ } }), Pr = A([
2004
2016
  K,
2005
- S,
2006
- A,
2007
- Sr,
2008
- k("[\\s\\S]*?(?=ins[eé]rer)"),
2009
- k("ins[eé]rer", { flags: "i" }),
2010
- A,
2011
- br
2012
- ], { value: (e, n) => W(n, {
2017
+ d,
2018
+ k,
2019
+ Cr,
2020
+ E("[\\s\\S]*?(?=ins[eé]rer)"),
2021
+ E("ins[eé]rer", { flags: "i" }),
2022
+ k,
2023
+ xr
2024
+ ], { value: (e, t) => W(t, {
2013
2025
  contextText: q(e[0]),
2014
2026
  insertCitation: e[7].citation,
2015
- kind: t(e[1]),
2027
+ kind: re(e[1]),
2016
2028
  targetCitation: e[3].citation,
2017
2029
  targetReference: X(e[0])
2018
- }) }), Pr = O([
2030
+ }) }), Fr = A([
2019
2031
  K,
2020
- S,
2021
- A,
2032
+ d,
2033
+ k,
2022
2034
  G,
2023
- k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2024
- T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
2035
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2036
+ O(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
2025
2037
  Y,
2026
2038
  J
2027
- ], { value: (e, n) => W(n, {
2039
+ ], { value: (e, t) => W(t, {
2028
2040
  contextText: q(e[0]),
2029
2041
  insertCitation: e[7].citation,
2030
- kind: t(e[1]),
2042
+ kind: re(e[1]),
2031
2043
  targetReference: X(e[0]) ?? e[3]
2032
- }) }), Fr = T(Mr, kr, Ar, jr, Or, O([
2044
+ }) }), Ir = O(Nr, Ar, jr, Mr, kr, A([
2033
2045
  K,
2034
- S,
2035
- A,
2036
- Sr,
2037
- k("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2038
- T(O([
2039
- k("supprimer", {
2046
+ d,
2047
+ k,
2048
+ Cr,
2049
+ E("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2050
+ O(A([
2051
+ E("supprimer", {
2040
2052
  flags: "i",
2041
2053
  value: "delete_portion"
2042
2054
  }),
2043
- A,
2044
- ur
2055
+ k,
2056
+ dr
2045
2057
  ], { value: (e) => ({
2046
2058
  kind: e[0],
2047
2059
  ...e[2]
2048
- }) }), O([
2049
- k("r[eé]diger\\s+ainsi", {
2060
+ }) }), A([
2061
+ E("r[eé]diger\\s+ainsi", {
2050
2062
  flags: "i",
2051
2063
  value: "rewrite_portion"
2052
2064
  }),
2053
- A,
2054
- ur,
2065
+ k,
2066
+ dr,
2055
2067
  Y,
2056
2068
  J
2057
2069
  ], { value: (e) => ({
@@ -2069,24 +2081,24 @@ var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2069
2081
  targetReference: X(e[0]) ?? n.targetReference,
2070
2082
  targetScope: n.targetScope
2071
2083
  });
2072
- } }), Nr, Pr, O([
2073
- lr,
2074
- k("ins[eé]rer", { flags: "i" }),
2075
- k(`[\\s\\S]*?(?=${l})`, { flags: "i" }),
2076
- S,
2084
+ } }), Pr, Fr, A([
2085
+ ur,
2086
+ E("ins[eé]rer", { flags: "i" }),
2087
+ E(`[\\s\\S]*?(?=${f})`, { flags: "i" }),
2088
+ d,
2077
2089
  Y,
2078
- _,
2090
+ v,
2079
2091
  Y,
2080
- _
2081
- ], { value: (e, n) => W(n, {
2092
+ v
2093
+ ], { value: (e, t) => W(t, {
2082
2094
  contextText: e[0],
2083
2095
  insertCitation: e[8],
2084
- kind: t(e[3]),
2096
+ kind: re(e[3]),
2085
2097
  targetCitation: e[6]
2086
- }) }), Dr, Er, O([
2098
+ }) }), Or, Dr, A([
2087
2099
  K,
2088
- k("compl[eé]ter", { flags: "i" }),
2089
- D(O([A, G], { value: (e) => e[1] }), { default: null }),
2100
+ E("compl[eé]ter", { flags: "i" }),
2101
+ D(A([k, G], { value: (e) => e[1] }), { default: null }),
2090
2102
  Y,
2091
2103
  J
2092
2104
  ], { value: (e, t) => W(t, {
@@ -2094,16 +2106,16 @@ var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2094
2106
  insertCitation: e[4].citation,
2095
2107
  kind: "insert_after",
2096
2108
  targetReference: e[2] ?? X(e[0])
2097
- }) }), wr, Tr);
2109
+ }) }), Tr, Er);
2098
2110
  //#endregion
2099
2111
  //#region src/lib/server/parsed_amendments.ts
2100
- function Ir(e) {
2112
+ function Lr(e) {
2101
2113
  return e.replace(/\s+/gu, " ").trim();
2102
2114
  }
2103
- function Lr(e) {
2104
- return e.split(/\n/gu).map(Ir).filter(Boolean).join("\n");
2115
+ function Rr(e) {
2116
+ return e.split(/\n/gu).map(Lr).filter(Boolean).join("\n");
2105
2117
  }
2106
- function Rr(e, t) {
2118
+ function zr(e, t) {
2107
2119
  let { start: n, stop: r } = t;
2108
2120
  for (; n < r && /\s/u.test(e[n]);) n++;
2109
2121
  for (; r > n && /\s/u.test(e[r - 1]);) r--;
@@ -2112,16 +2124,16 @@ function Rr(e, t) {
2112
2124
  stop: r
2113
2125
  } : null;
2114
2126
  }
2115
- function zr(e, t) {
2127
+ function Br(e, t) {
2116
2128
  return he(_e(e), t);
2117
2129
  }
2118
- function Br(e) {
2130
+ function Vr(e) {
2119
2131
  return e === "before_article" || e === "on_article" || e === "after_article" ? e : "unknown";
2120
2132
  }
2121
- function Vr(e) {
2133
+ function Hr(e) {
2122
2134
  return {
2123
2135
  articleLabel: e.targetArticleLabel ?? null,
2124
- targetPosition: Br(e.targetPosition),
2136
+ targetPosition: Vr(e.targetPosition),
2125
2137
  alinea: e.targetAlinea ?? null,
2126
2138
  alineaLabel: e.targetAlineaLabel ?? null,
2127
2139
  subdivisionSourceId: e.targetSubdivisionSourceId ?? null,
@@ -2136,36 +2148,36 @@ function Z(e) {
2136
2148
  sourceText: e.text
2137
2149
  };
2138
2150
  }
2139
- function Hr(e) {
2151
+ function Ur(e) {
2140
2152
  return {
2141
2153
  ...e.originalTransformation === void 0 ? {} : { sourceOriginalTransformation: e.originalTransformation },
2142
2154
  sourcePosition: e.position,
2143
2155
  sourceText: e.text
2144
2156
  };
2145
2157
  }
2146
- function Ur(e) {
2158
+ function Wr(e) {
2147
2159
  return {
2148
2160
  ...e?.originalTransformation === void 0 ? {} : { dispositifOriginalTransformation: e.originalTransformation },
2149
2161
  ...e === null ? {} : { dispositifPosition: e.position },
2150
2162
  dispositifText: e?.text ?? null
2151
2163
  };
2152
2164
  }
2153
- function Wr(e, t, n, r = Lr(e.slice(n.start, n.stop))) {
2165
+ function Gr(e, t, n, r = Rr(e.slice(n.start, n.stop))) {
2154
2166
  return {
2155
- originalTransformation: zr(t, n),
2167
+ originalTransformation: Br(t, n),
2156
2168
  position: n,
2157
2169
  text: r
2158
2170
  };
2159
2171
  }
2160
- function Gr(e) {
2172
+ function Kr(e) {
2161
2173
  let t = e.dispositifHtml ?? e.dispositifText;
2162
2174
  if (!t) return null;
2163
- let n = e.dispositifHtml ? ve()(t) : be(t), r = n.output, i = Rr(r, {
2175
+ let n = e.dispositifHtml ? be()(t) : me(t), r = n.output, i = zr(r, {
2164
2176
  start: 0,
2165
2177
  stop: r.length
2166
2178
  });
2167
2179
  return {
2168
- dispositif: i === null ? null : Wr(r, n, i),
2180
+ dispositif: i === null ? null : Gr(r, n, i),
2169
2181
  simplifiedText: r,
2170
2182
  transformation: n
2171
2183
  };
@@ -2182,10 +2194,10 @@ function Q(e) {
2182
2194
  return t === void 0 ? [] : Array.from({ length: e.count }, (e, n) => t + n);
2183
2195
  }
2184
2196
  if (e.type === "exclusion") return Q(e.left);
2185
- for (let t of pe(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2197
+ for (let t of r(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2186
2198
  return [];
2187
2199
  }
2188
- function Kr(e, t) {
2200
+ function qr(e, t) {
2189
2201
  let n = Q(t);
2190
2202
  return {
2191
2203
  ...e,
@@ -2193,11 +2205,11 @@ function Kr(e, t) {
2193
2205
  ...n.length > 0 ? { alineas: n } : {}
2194
2206
  };
2195
2207
  }
2196
- function qr(e) {
2208
+ function Jr(e) {
2197
2209
  return e.replace(/^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*/iu, "").replace(/^\s*(?:\d+°|[a-z]\))\s*/iu, "").trim();
2198
2210
  }
2199
- function Jr(e, t) {
2200
- let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(qr(t.text));
2211
+ function Yr(e, t) {
2212
+ let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(Jr(t.text));
2201
2213
  if (!n) return null;
2202
2214
  let r = n[1] === void 0 ? 1 : Number.parseInt(n[1], 10);
2203
2215
  return !Number.isFinite(r) || r < 1 ? null : {
@@ -2206,25 +2218,25 @@ function Jr(e, t) {
2206
2218
  alineas: [r]
2207
2219
  };
2208
2220
  }
2209
- function Yr(e, t) {
2221
+ function Xr(e, t) {
2210
2222
  if (e) return e.unit === "article" && t.alinea !== null ? {
2211
2223
  ...e,
2212
2224
  unit: "alinéa"
2213
2225
  } : e;
2214
2226
  }
2215
- function Xr(e) {
2216
- return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(qr(e.text));
2227
+ function Zr(e) {
2228
+ return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(Jr(e.text));
2217
2229
  }
2218
- function Zr(e, t, n, r) {
2219
- return Wr(e, t, {
2230
+ function Qr(e, t, n, r) {
2231
+ return Gr(e, t, {
2220
2232
  start: n.position.start,
2221
2233
  stop: r.position.stop
2222
2234
  });
2223
2235
  }
2224
- function Qr(e) {
2236
+ function $r(e) {
2225
2237
  return /^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*(?!alin[eé]a\b)/iu.test(e.text);
2226
2238
  }
2227
- function $r(e, t) {
2239
+ function ei(e, t) {
2228
2240
  let n = { ...t.position };
2229
2241
  function r(t) {
2230
2242
  let r = t.exec(e.slice(n.start, n.stop));
@@ -2233,29 +2245,29 @@ function $r(e, t) {
2233
2245
  stop: n.stop
2234
2246
  });
2235
2247
  }
2236
- return r(/^(?:(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*|[a-z]\)\s*(?:[.\-–—]\s*)*|\d+°\s*)/iu), r(/^[.\-–—]\s*/u), r(/^en\s+cons[ée]quence\s*,\s*/iu), Rr(e, n);
2248
+ return r(/^(?:(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*|[a-z]\)\s*(?:[.\-–—]\s*)*|\d+°\s*)/iu), r(/^[.\-–—]\s*/u), r(/^en\s+cons[ée]quence\s*,\s*/iu), zr(e, n);
2237
2249
  }
2238
- function ei(e) {
2239
- return m(e);
2250
+ function ti(e) {
2251
+ return g(e);
2240
2252
  }
2241
- function ti(e, t) {
2242
- return Fr(new E(e.slice(0, t.stop), t.start)) ?? null;
2253
+ function ni(e, t) {
2254
+ return Ir(new T(e.slice(0, t.stop), t.start)) ?? null;
2243
2255
  }
2244
- function $(e, t, n) {
2245
- if (n) return Wr(e, t, n.position, Lr(p(e, n)));
2256
+ function $(t, n, r) {
2257
+ if (r) return Gr(t, n, r.position, Rr(e(t, r)));
2246
2258
  }
2247
- function ni(e, t) {
2259
+ function ri(e, t) {
2248
2260
  if (!e) return;
2249
- let r = structuredClone(e);
2250
- for (let e of n(r, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = zr(t, e.position));
2251
- return r;
2261
+ let n = structuredClone(e);
2262
+ for (let e of _(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Br(t, e.position));
2263
+ return n;
2252
2264
  }
2253
- function ri(e, t, n, r) {
2254
- let i = $r(e, n);
2265
+ function ii(e, t, n, r) {
2266
+ let i = ei(e, n);
2255
2267
  if (!i) return null;
2256
- let a = ti(e, i);
2268
+ let a = ni(e, i);
2257
2269
  if (!a) return null;
2258
- let o = Wr(e, t, i), s = ni(a.targetReference, t), c = Kr(r, s), l = ei(o.text);
2270
+ let o = Gr(e, t, i), s = ri(a.targetReference, t), c = qr(r, s), l = ti(o.text);
2259
2271
  if (a.kind === "delete_article") return {
2260
2272
  kind: "delete_article",
2261
2273
  ...Z(o),
@@ -2273,7 +2285,7 @@ function ri(e, t, n, r) {
2273
2285
  },
2274
2286
  targetOccurrence: l,
2275
2287
  targetReference: s,
2276
- targetScope: Yr(a.targetScope, c)
2288
+ targetScope: Xr(a.targetScope, c)
2277
2289
  };
2278
2290
  }
2279
2291
  if (a.kind === "rewrite_portion") {
@@ -2290,7 +2302,7 @@ function ri(e, t, n, r) {
2290
2302
  },
2291
2303
  targetOccurrence: l,
2292
2304
  targetReference: s,
2293
- targetScope: Yr(a.targetScope, c),
2305
+ targetScope: Xr(a.targetScope, c),
2294
2306
  replacementCitation: n,
2295
2307
  replacementText: n.text
2296
2308
  };
@@ -2345,19 +2357,19 @@ function ri(e, t, n, r) {
2345
2357
  targetReference: s,
2346
2358
  insertCitation: n,
2347
2359
  insertText: n.text,
2348
- targetScope: Yr(a.targetScope, c)
2360
+ targetScope: Xr(a.targetScope, c)
2349
2361
  };
2350
2362
  }
2351
2363
  return null;
2352
2364
  }
2353
- function ii(e, t) {
2365
+ function ai(e, t) {
2354
2366
  let n = [], r = 0, i = 0;
2355
2367
  function a(r) {
2356
- let a = Rr(e, {
2368
+ let a = zr(e, {
2357
2369
  start: i,
2358
2370
  stop: r
2359
2371
  });
2360
- a !== null && n.push(Wr(e, t, a));
2372
+ a !== null && n.push(Gr(e, t, a));
2361
2373
  }
2362
2374
  function o(t) {
2363
2375
  let n = Math.max(e.lastIndexOf("\n", t - 1), e.lastIndexOf("\r", t - 1));
@@ -2375,7 +2387,7 @@ function ii(e, t) {
2375
2387
  continue;
2376
2388
  }
2377
2389
  if (r > 0) continue;
2378
- let s = e.slice(t + 1), c = /[\n\r]/u.test(n), l = /[.;]/u.test(n), u = e.slice(i, l ? t + 1 : t), d = /^\s*(?:(?:[IVXLCDM]+)\s*[.\-–—]+\s*|\d+°\s*|[a-z]\)\s*|(?:Supprimer|Après|Avant|Compléter|Rédiger|Substituer|Remplacer)\b)/iu.test(s), f = c && /^\s*(?:R[eé]diger|Ins[eé]rer|Ajouter|Supprimer)\b/iu.test(s) && Xr({
2390
+ let s = e.slice(t + 1), c = /[\n\r]/u.test(n), l = /[.;]/u.test(n), u = e.slice(i, l ? t + 1 : t), d = /^\s*(?:(?:[IVXLCDM]+)\s*[.\-–—]+\s*|\d+°\s*|[a-z]\)\s*|(?:Supprimer|Après|Avant|Compléter|Rédiger|Substituer|Remplacer)\b)/iu.test(s), f = c && /^\s*(?:R[eé]diger|Ins[eé]rer|Ajouter|Supprimer)\b/iu.test(s) && Zr({
2379
2391
  originalTransformation: void 0,
2380
2392
  position: {
2381
2393
  start: i,
@@ -2387,8 +2399,8 @@ function ii(e, t) {
2387
2399
  }
2388
2400
  return a(e.length), n;
2389
2401
  }
2390
- function ai(e) {
2391
- let t = Gr(e), n = t?.dispositif ?? null, r = Ur(n), i = [], a = [], o = Vr(e);
2402
+ function oi(e) {
2403
+ let t = Kr(e), n = t?.dispositif ?? null, r = Wr(n), i = [], a = [], o = Hr(e);
2392
2404
  if (e.sourceFormat === "senat-ameli" && e.sourceKind === "S") return i.push({
2393
2405
  code: "unsupported_sub_amendment",
2394
2406
  message: "Les sous-amendements ne sont pas encore projetés."
@@ -2406,9 +2418,9 @@ function ai(e) {
2406
2418
  });
2407
2419
  else {
2408
2420
  let { simplifiedText: e, transformation: r } = t, s = o, c = null;
2409
- for (let t of ii(e, r)) {
2410
- Qr(t) && (s = o, c = null);
2411
- let n = c ? Zr(e, r, c, t) : t, i = ri(e, r, n, s);
2421
+ for (let t of ai(e, r)) {
2422
+ $r(t) && (s = o, c = null);
2423
+ let n = c ? Qr(e, r, c, t) : t, i = ii(e, r, n, s);
2412
2424
  if (i) {
2413
2425
  a.push(i), c = null, (i.target.alinea !== null || i.target.alineas) && (s = i.target);
2414
2426
  continue;
@@ -2417,12 +2429,12 @@ function ai(e) {
2417
2429
  c = n;
2418
2430
  continue;
2419
2431
  }
2420
- let l = Jr(o, t);
2432
+ let l = Yr(o, t);
2421
2433
  if (l !== null) {
2422
2434
  s = l;
2423
2435
  continue;
2424
2436
  }
2425
- Xr(t) && (c = t);
2437
+ Zr(t) && (c = t);
2426
2438
  }
2427
2439
  a.length === 0 && (o.targetPosition === "after_article" || o.targetPosition === "before_article") && a.push({
2428
2440
  kind: o.targetPosition === "before_article" ? "insert_article_before" : "insert_article_after",
@@ -2433,7 +2445,7 @@ function ai(e) {
2433
2445
  }), a.length === 0 && i.push({
2434
2446
  code: "unrecognized_dispositif",
2435
2447
  message: "Le dispositif est présent mais aucune directive d'amendement n'a été reconnue.",
2436
- ...Hr(n)
2448
+ ...Ur(n)
2437
2449
  });
2438
2450
  }
2439
2451
  return {
@@ -2447,25 +2459,25 @@ function ai(e) {
2447
2459
  }
2448
2460
  //#endregion
2449
2461
  //#region src/lib/server/senat_document_search.ts
2450
- function oi(e) {
2462
+ function si(e) {
2451
2463
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
2452
2464
  }
2453
- function si(e) {
2454
- let t = f(e);
2465
+ function ci(e) {
2466
+ let t = C(e);
2455
2467
  if (!t) return {
2456
2468
  articleNumber: null,
2457
2469
  label: e,
2458
2470
  title: null
2459
2471
  };
2460
- let n = oi(t.num ?? "") || null, r = oi(t.title ?? "") || null;
2472
+ let n = si(t.num ?? "") || null, r = si(t.title ?? "") || null;
2461
2473
  return {
2462
2474
  articleNumber: n,
2463
2475
  label: t.label,
2464
2476
  title: r
2465
2477
  };
2466
2478
  }
2467
- function ci(e) {
2468
- let t = w(e), n = [], r = oi(t("section.akn-preamble").text());
2479
+ function li(e) {
2480
+ let t = w(e), n = [], r = si(t("section.akn-preamble").text());
2469
2481
  return r && n.push({
2470
2482
  anchor: "senat-expose-des-motifs",
2471
2483
  articleNumber: null,
@@ -2475,9 +2487,9 @@ function ci(e) {
2475
2487
  label: "Exposé des motifs",
2476
2488
  title: null
2477
2489
  }), t("article.akn-article").each((e, r) => {
2478
- let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = oi(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = si(o || s), l = i.clone();
2490
+ let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = si(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = ci(o || s), l = i.clone();
2479
2491
  l.children("p.TCNumArticle").remove();
2480
- let u = oi(l.text());
2492
+ let u = si(l.text());
2481
2493
  u && n.push({
2482
2494
  anchor: i.attr("id") || null,
2483
2495
  articleNumber: c.articleNumber,
@@ -2489,7 +2501,7 @@ function ci(e) {
2489
2501
  });
2490
2502
  }), n;
2491
2503
  }
2492
- function li(e, t) {
2504
+ function ui(e, t) {
2493
2505
  return Oe("sha256").update(JSON.stringify({
2494
2506
  item: e,
2495
2507
  metadata: t
@@ -2497,32 +2509,32 @@ function li(e, t) {
2497
2509
  }
2498
2510
  //#endregion
2499
2511
  //#region src/lib/server/senat_document_sources.ts
2500
- var ui = new Set(["senat.fr", "www.senat.fr"]), di = "https://www.senat.fr";
2501
- function fi(e) {
2512
+ var di = new Set(["senat.fr", "www.senat.fr"]), fi = "https://www.senat.fr";
2513
+ function pi(e) {
2502
2514
  return e?.trim() || void 0;
2503
2515
  }
2504
- function pi(e) {
2516
+ function mi(e) {
2505
2517
  try {
2506
- let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, di);
2507
- return ui.has(n.hostname.toLowerCase()) ? n : void 0;
2518
+ let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, fi);
2519
+ return di.has(n.hostname.toLowerCase()) ? n : void 0;
2508
2520
  } catch {
2509
2521
  return;
2510
2522
  }
2511
2523
  }
2512
- function mi(e) {
2513
- let t = fi(e);
2524
+ function hi(e) {
2525
+ let t = pi(e);
2514
2526
  if (t === void 0) return {
2515
2527
  publicUrl: null,
2516
2528
  status: "no_url"
2517
2529
  };
2518
- let n = pi(t);
2530
+ let n = mi(t);
2519
2531
  if (n === void 0) return {
2520
2532
  publicUrl: t,
2521
2533
  status: "unsupported_source"
2522
2534
  };
2523
2535
  let r = n.pathname;
2524
2536
  if (/^\/akomantoso\/[^/]+\.akn\.xml$/iu.test(r)) return {
2525
- akomaNtosoUrl: `${di}${r}`,
2537
+ akomaNtosoUrl: `${fi}${r}`,
2526
2538
  publicUrl: n.toString(),
2527
2539
  status: "available"
2528
2540
  };
@@ -2531,17 +2543,17 @@ function mi(e) {
2531
2543
  publicUrl: n.toString(),
2532
2544
  status: "unsupported_source"
2533
2545
  } : {
2534
- akomaNtosoUrl: `${di}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2546
+ akomaNtosoUrl: `${fi}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2535
2547
  publicUrl: n.toString(),
2536
2548
  status: "available"
2537
2549
  };
2538
2550
  }
2539
- function hi(e) {
2551
+ function gi(e) {
2540
2552
  return /^\s*(?:<\?xml\b[^>]*>\s*)?<akomaNtoso[\s/>]/iu.test(e);
2541
2553
  }
2542
2554
  //#endregion
2543
2555
  //#region src/lib/alineas/alineas_numbers.ts
2544
- var gi = {
2556
+ var _i = {
2545
2557
  "0150a855548f15a2af52ea057be53f5d": 1,
2546
2558
  "039826cf379b94afefe90b25c6045ca0": 1,
2547
2559
  "03a7e564b84662f4d957c51018e26244": 1,
@@ -21515,7 +21527,7 @@ var gi = {
21515
21527
  d16d29c923bd60c7b095b66c6058fe60: 1664,
21516
21528
  "1c14c2adf5cfda3220b2057160e10e91": 1665,
21517
21529
  e44c55ca1ac46ff46420686a466c9fc6: 1665
21518
- }, _i = "\np:has(.alinea) {\n margin: 0.6em 0;\n}\n.alinea {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n margin-right: 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n vertical-align: middle;\n}\n", vi = "\nh1 {\n font-size: 1.8em;\n margin: 1em 0 0.5em 0;\n}\nh2 {\n font-size: 1.5em;\n margin: 0.9em 0 0.4em 0;\n}\nh3 {\n font-size: 1.3em;\n margin: 0.8em 0 0.4em 0;\n}\nh4 {\n font-size: 1.15em;\n margin: 0.7em 0 0.3em 0;\n}\nh5 {\n font-size: 1.05em;\n margin: 0.6em 0 0.3em 0;\n}\nh6 {\n font-size: 1em;\n margin: 0.5em 0 0.3em 0;\n}\n", yi = "\n.expose-motifs-titre {\n font-size: 1.1em;\n font-weight: bold;\n color: #0070b9;\n margin: 1em 0 0.5em 0;\n}\n.expose-motifs {\n border-left: 3px solid #0070b9;\n padding-left: 1em;\n margin: 0.5em 0 1em 0;\n color: #333;\n}\n.expose-motifs p {\n margin: 0.5em 0;\n}\n", bi = "\nol {\n list-style: none;\n padding-left: 0;\n margin: 0.5em 0;\n counter-reset: list-counter;\n}\nol > li {\n counter-increment: list-counter;\n margin: 0.3em 0;\n padding-left: 2.3em;\n position: relative;\n}\nol > li::before {\n content: counter(list-counter);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n position: absolute;\n left: 0;\n top: 0.1em;\n}\n", xi = "\n.cover-title {\n font-size: 1.8em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n.cover-subtitle {\n font-size: 1.4em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 0.8em 0;\n}\n.cover-info {\n text-align: center;\n margin: 0.3em 0;\n color: #333;\n}\n.cover-year {\n font-size: 2em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n", Si = {
21530
+ }, vi = "\np:has(.alinea) {\n margin: 0.6em 0;\n}\n.alinea {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n margin-right: 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n vertical-align: middle;\n}\n", yi = "\nh1 {\n font-size: 1.8em;\n margin: 1em 0 0.5em 0;\n}\nh2 {\n font-size: 1.5em;\n margin: 0.9em 0 0.4em 0;\n}\nh3 {\n font-size: 1.3em;\n margin: 0.8em 0 0.4em 0;\n}\nh4 {\n font-size: 1.15em;\n margin: 0.7em 0 0.3em 0;\n}\nh5 {\n font-size: 1.05em;\n margin: 0.6em 0 0.3em 0;\n}\nh6 {\n font-size: 1em;\n margin: 0.5em 0 0.3em 0;\n}\n", bi = "\n.expose-motifs-titre {\n font-size: 1.1em;\n font-weight: bold;\n color: #0070b9;\n margin: 1em 0 0.5em 0;\n}\n.expose-motifs {\n border-left: 3px solid #0070b9;\n padding-left: 1em;\n margin: 0.5em 0 1em 0;\n color: #333;\n}\n.expose-motifs p {\n margin: 0.5em 0;\n}\n", xi = "\nol {\n list-style: none;\n padding-left: 0;\n margin: 0.5em 0;\n counter-reset: list-counter;\n}\nol > li {\n counter-increment: list-counter;\n margin: 0.3em 0;\n padding-left: 2.3em;\n position: relative;\n}\nol > li::before {\n content: counter(list-counter);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n position: absolute;\n left: 0;\n top: 0.1em;\n}\n", Si = "\n.cover-title {\n font-size: 1.8em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n.cover-subtitle {\n font-size: 1.4em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 0.8em 0;\n}\n.cover-info {\n text-align: center;\n margin: 0.3em 0;\n color: #333;\n}\n.cover-year {\n font-size: 2em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n", Ci = {
21519
21531
  assnatetatagr: { bold: !0 },
21520
21532
  assnatetatagrgr: { bold: !0 },
21521
21533
  assnatetatatr: { bold: !0 },
@@ -21616,29 +21628,29 @@ var gi = {
21616
21628
  assnatxl67: { align: "center" },
21617
21629
  assnatenteteequilibre: { align: "center" }
21618
21630
  };
21619
- function Ci(e) {
21620
- let t = Object.keys(Si).sort((e, t) => t.length - e.length);
21621
- for (let n of t) if (e.includes(n)) return Si[n];
21631
+ function wi(e) {
21632
+ let t = Object.keys(Ci).sort((e, t) => t.length - e.length);
21633
+ for (let n of t) if (e.includes(n)) return Ci[n];
21622
21634
  return null;
21623
21635
  }
21624
- function wi(e) {
21636
+ function Ti(e) {
21625
21637
  return De.createHash("md5").update(e).digest("hex");
21626
21638
  }
21627
- function Ti(e) {
21639
+ function Ei(e) {
21628
21640
  return e ? /font-weight\s*:\s*(bold|[6-9]00|1000)/i.test(e) || /font-family\s*:\s*[^;]*\bBold\b/i.test(e) : !1;
21629
21641
  }
21630
- function Ei(e) {
21642
+ function Di(e) {
21631
21643
  return e ? /font-style\s*:\s*italic/i.test(e) || /font-family\s*:\s*[^;]*\bItalic\b/i.test(e) : !1;
21632
21644
  }
21633
- function Di(e) {
21645
+ function Oi(e) {
21634
21646
  if (!e || !/vertical-align\s*:\s*super/i.test(e)) return !1;
21635
21647
  let t = e.match(/font-size\s*:\s*([\d.]+)pt/i);
21636
21648
  return !(t && parseFloat(t[1]) < 8);
21637
21649
  }
21638
- function Oi(e) {
21650
+ function ki(e) {
21639
21651
  return e ? /vertical-align\s*:\s*sub/i.test(e) : !1;
21640
21652
  }
21641
- function ki(e) {
21653
+ function Ai(e) {
21642
21654
  if (!e) return;
21643
21655
  let t = [
21644
21656
  "width",
@@ -21673,15 +21685,15 @@ function ki(e) {
21673
21685
  }
21674
21686
  return n.length > 0 ? n.join("; ") : void 0;
21675
21687
  }
21676
- function Ai(e, t) {
21688
+ function ji(e, t) {
21677
21689
  return !!(e && /text-align\s*:\s*center/i.test(e) || t && /center/i.test(t));
21678
21690
  }
21679
- function ji(e) {
21691
+ function Mi(e) {
21680
21692
  if (!e) return null;
21681
21693
  let t = e.match(/text-align\s*:\s*(left|center|right|justify)/i);
21682
21694
  return t ? t[1].toLowerCase() : null;
21683
21695
  }
21684
- function Mi(e) {
21696
+ function Ni(e) {
21685
21697
  if (!e) return null;
21686
21698
  for (let [t, n] of [
21687
21699
  [/assnat1Tome|assnatAN1PARTIE/i, 1],
@@ -21693,7 +21705,7 @@ function Mi(e) {
21693
21705
  ]) if (t.test(e)) return n;
21694
21706
  return null;
21695
21707
  }
21696
- function Ni(e, t = {}) {
21708
+ function Pi(e, t = {}) {
21697
21709
  let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = w(e, { xml: { decodeEntities: !1 } });
21698
21710
  a("style, script, meta, link").remove(), a(".assnatHeader, .assnatFooter, .assnatHeaderLeft, .assnatHeaderandFooter").remove(), a(".assnatFARSautApres, .assnatFARSautAvant, .assnatFARSautPageNiv0, .assnatFARSautPageNiv1, .assnatFARSautPageNiv1PG").remove(), a(".assnatFARTT08Bleu").each((e, t) => {
21699
21711
  let n = a(t).closest("table");
@@ -21719,7 +21731,7 @@ function Ni(e, t = {}) {
21719
21731
  if (i.length !== 0 && !(n.parents("del").length > 0 || n.find("del img").length > 0) && !(i.parent("del").length > 0)) {
21720
21732
  let e = i.attr();
21721
21733
  if (e && (e.width === "45" && (e.height === "31" || e.height === "30") || parseInt(e.width || "0", 10) < 50 && parseInt(e.height || "0", 10) < 50) && r.includes("position:absolute")) {
21722
- let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? wi(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21734
+ let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? Ti(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21723
21735
  n.replaceWith(`<span class="alinea"${i}></span>`);
21724
21736
  return;
21725
21737
  }
@@ -21738,7 +21750,7 @@ function Ni(e, t = {}) {
21738
21750
  (!r || r === "\xA0") && n.remove();
21739
21751
  }), a("span[style*=\"display:block\"][style*=\"position:absolute\"]:not(.alinea)").remove(), a("del").remove();
21740
21752
  function o(e) {
21741
- let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Ti(n) || r === "b" || r === "strong", o = Ei(n) || r === "i" || r === "em", s = Di(n) || r === "sup", c = Oi(n) || r === "sub", l = t.attr("class") || "";
21753
+ let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Ei(n) || r === "b" || r === "strong", o = Di(n) || r === "i" || r === "em", s = Oi(n) || r === "sup", c = ki(n) || r === "sub", l = t.attr("class") || "";
21742
21754
  return /bold/i.test(l) && (i = !0), /strongemphasis/i.test(l) ? i = !0 : /italic|emphasis/i.test(l) && (o = !0), {
21743
21755
  bold: i,
21744
21756
  italic: o,
@@ -21772,7 +21784,7 @@ function Ni(e, t = {}) {
21772
21784
  c = e;
21773
21785
  }
21774
21786
  for (a("p").each((e, t) => {
21775
- let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = Mi(i);
21787
+ let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = Ni(i);
21776
21788
  if (i.includes("assnatFARCouvTitreD")) {
21777
21789
  let e = r.html() || "";
21778
21790
  r.replaceWith(`<p class="cover-subtitle">${e}</p>`);
@@ -21805,11 +21817,11 @@ function Ni(e, t = {}) {
21805
21817
  let c = r.text().trim().startsWith("«");
21806
21818
  if (s && !c) {
21807
21819
  let e = a(`<h${s}>${r.html() || ""}</h${s}>`);
21808
- n && Ai(o, i) && e.attr("align", "center"), r.replaceWith(e);
21820
+ n && ji(o, i) && e.attr("align", "center"), r.replaceWith(e);
21809
21821
  } else {
21810
- let e = Ci(i), t;
21822
+ let e = wi(i), t;
21811
21823
  if (n) {
21812
- let n = ji(o);
21824
+ let n = Mi(o);
21813
21825
  n && n !== "justify" && n !== "left" ? t = n : e?.align && (t = e.align);
21814
21826
  }
21815
21827
  if (r.removeAttr("style").removeAttr("class"), t && r.attr("align", t), e?.bold) {
@@ -21819,7 +21831,7 @@ function Ni(e, t = {}) {
21819
21831
  }
21820
21832
  }), a("h1, h2, h3, h4, h5, h6").each((e, t) => {
21821
21833
  let r = a(t), i = r.attr("style"), o = r.attr("class");
21822
- n && Ai(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21834
+ n && ji(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21823
21835
  }), a("a").each((e, t) => {
21824
21836
  let n = a(t), r = n.attr("href"), i = n.attr("id"), o = { ...t.attribs || {} };
21825
21837
  for (let e of Object.keys(o)) e !== "href" && e !== "id" && n.removeAttr(e);
@@ -21858,7 +21870,7 @@ function Ni(e, t = {}) {
21858
21870
  }), a("br").each((e, t) => {
21859
21871
  a(t).removeAttr("style").removeAttr("class");
21860
21872
  }), a("table, tr, td, th, thead, tbody, tfoot").each((e, t) => {
21861
- let n = a(t), r = ki(n.attr("style"));
21873
+ let n = a(t), r = Ai(n.attr("style"));
21862
21874
  n.removeAttr("style").removeAttr("class"), r && n.attr("style", r);
21863
21875
  }), a("td, th").each((e, t) => {
21864
21876
  let n = a(t), r = n.children();
@@ -21876,17 +21888,17 @@ function Ni(e, t = {}) {
21876
21888
  !isNaN(e) && e > 1 && n.attr("style", `counter-reset: list-counter ${e - 1}`), n.attr("start", r);
21877
21889
  }
21878
21890
  }), a("li").each((e, t) => {
21879
- let n = a(t), r = ji(n.attr("style"));
21891
+ let n = a(t), r = Mi(n.attr("style"));
21880
21892
  n.removeAttr("style").removeAttr("class"), r === "center" && n.attr("style", "text-align: center");
21881
21893
  let i = n.html() || "", o = i.replace(/^(\s|&#xa0;|&#160;|\u00a0)+/, "");
21882
21894
  o !== i && n.html(o);
21883
- }), Pi(a), Fi(a, i);
21895
+ }), Fi(a), Ii(a, i);
21884
21896
  let l = a("body").html() || a.html(), u = l.includes("class=\"alinea"), d = a("ol").length > 0, f = a("h1, h2, h3, h4, h5, h6").length > 0, p = l.includes("class=\"expose-motifs"), m = l.includes("class=\"cover-title\"") || l.includes("class=\"cover-subtitle\"") || l.includes("class=\"cover-info\"") || l.includes("class=\"cover-year\""), h = "";
21885
- m && (h += xi), f && (h += vi), p && (h += yi), u && (h += _i), d && (h += bi);
21897
+ m && (h += Si), f && (h += yi), p && (h += bi), u && (h += vi), d && (h += xi);
21886
21898
  let g = h ? `<style>${h}</style>\n${l}` : l;
21887
- return g = g.replace(/>\s+</g, "> <").replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(/\n{3,}/g, "\n\n").split("\n").map((e) => e.trim()).filter((e) => e.length > 0).join("\n"), g = g.replace(/&nbsp;/g, "\xA0"), r && (g = g.replace(/<p[^>]*>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/p>/gi, "").replace(/<p[^>]*>\s*<(strong|em|b|i)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>\s*<\/p>/gi, "")), g = g.replace(/<span[^>]*>\s*<\/span>/gi, ""), g = g.replace(/ class=""/g, ""), g = Ii(g), g = g.replace(/<(strong|em|b|i|sup|sub)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>/gi, "").replace(/<(strong|em|b|i)>(&nbsp;|&#xa0;|&#160;|\u00a0)+<\/\1>/gi, " ").replace(/<br\s*\/?>/gi, "<br/>").replace(/ +/g, " ").trim(), g;
21899
+ return g = g.replace(/>\s+</g, "> <").replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(/\n{3,}/g, "\n\n").split("\n").map((e) => e.trim()).filter((e) => e.length > 0).join("\n"), g = g.replace(/&nbsp;/g, "\xA0"), r && (g = g.replace(/<p[^>]*>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/p>/gi, "").replace(/<p[^>]*>\s*<(strong|em|b|i)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>\s*<\/p>/gi, "")), g = g.replace(/<span[^>]*>\s*<\/span>/gi, ""), g = g.replace(/ class=""/g, ""), g = Li(g), g = g.replace(/<(strong|em|b|i|sup|sub)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>/gi, "").replace(/<(strong|em|b|i)>(&nbsp;|&#xa0;|&#160;|\u00a0)+<\/\1>/gi, " ").replace(/<br\s*\/?>/gi, "<br/>").replace(/ +/g, " ").trim(), g;
21888
21900
  }
21889
- function Pi(e) {
21901
+ function Fi(e) {
21890
21902
  e("span[id]").each((t, n) => {
21891
21903
  let r = e(n), i = r.attr("id"), a = n.attribs || {}, o = Object.keys(a);
21892
21904
  if (o.length !== 1 || o[0] !== "id") return;
@@ -21909,13 +21921,13 @@ function Pi(e) {
21909
21921
  l.trim() === u.trim() && (s.attr("id", i), r.replaceWith(r.html() || ""));
21910
21922
  });
21911
21923
  }
21912
- function Fi(e, t = !1) {
21924
+ function Ii(e, t = !1) {
21913
21925
  let n = e("body");
21914
21926
  if (n.length === 0) return;
21915
21927
  let r = n.find("span.alinea[data-image-hash]"), i = -1;
21916
21928
  r.each((n, r) => {
21917
21929
  let a = e(r), o = a.attr("data-image-hash"), s;
21918
- if (o && gi[o] !== void 0 && (s = gi[o]), s === void 0) {
21930
+ if (o && _i[o] !== void 0 && (s = _i[o]), s === void 0) {
21919
21931
  if (t) throw Error(`Missing alinea number mapping for image hash: "${o}". Please extract images, review them, and update the mapping in "src/lib/alineas/alineas_numbers.ts".`);
21920
21932
  a.remove();
21921
21933
  return;
@@ -21927,11 +21939,11 @@ function Fi(e, t = !1) {
21927
21939
  i = s, a.attr("data-alinea", String(s)), a.text(String(s)), a.removeAttr("data-image-hash");
21928
21940
  });
21929
21941
  }
21930
- function Ii(e) {
21942
+ function Li(e) {
21931
21943
  let t = e;
21932
21944
  return t = t.replace(/<\/strong>(\s*)<strong>/gi, "$1"), t = t.replace(/<\/em>(\s*)<em>/gi, "$1"), t = t.replace(/<\/sup>(\s*)<sup>/gi, "$1"), t = t.replace(/<\/sub>(\s*)<sub>/gi, "$1"), t;
21933
21945
  }
21934
- function Li(e, t = {}) {
21946
+ function Ri(e, t = {}) {
21935
21947
  return `<!DOCTYPE html>
21936
21948
  <html lang="fr">
21937
21949
  <head>
@@ -21939,13 +21951,13 @@ function Li(e, t = {}) {
21939
21951
  <title>Document simplifié</title>
21940
21952
  </head>
21941
21953
  <body>
21942
- ${Ni(e, t)}
21954
+ ${Pi(e, t)}
21943
21955
  </body>
21944
21956
  </html>`;
21945
21957
  }
21946
21958
  //#endregion
21947
21959
  //#region src/lib/server/text_parsers/transformers.ts
21948
- function Ri(e, t) {
21960
+ function zi(e, t) {
21949
21961
  let n = "transformation_", r = {};
21950
21962
  for (let e of j.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21951
21963
  let i = e.slice(15, -5), a = i.split(".").map((e) => parseInt(e) - 1), o = r;
@@ -21954,18 +21966,18 @@ function Ri(e, t) {
21954
21966
  for (; e >= t.length;) t.push({});
21955
21967
  o = t[e];
21956
21968
  }
21957
- o.output = j.readFileSync(M.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21958
- let { sourceMap: s, title: c } = j.readJsonSync(M.join(t, e), { encoding: "utf-8" });
21969
+ o.output = j.readFileSync(ke.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21970
+ let { sourceMap: s, title: c } = j.readJsonSync(ke.join(t, e), { encoding: "utf-8" });
21959
21971
  o.sourceMap = s ?? [], o.title = c;
21960
21972
  }
21961
- return zi(r, e), r;
21973
+ return Bi(r, e), r;
21962
21974
  }
21963
- function zi(e, t) {
21964
- if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) zi(n, t), t = n.output;
21975
+ function Bi(e, t) {
21976
+ if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) Bi(n, t), t = n.output;
21965
21977
  return t;
21966
21978
  }
21967
- function Bi(e, t, n = "1") {
21968
- if (j.ensureDirSync(t), e.transformations === void 0) j.writeJsonSync(M.join(t, `transformation_${n}.json`), {
21979
+ function Vi(e, t, n = "1") {
21980
+ if (j.ensureDirSync(t), e.transformations === void 0) j.writeJsonSync(ke.join(t, `transformation_${n}.json`), {
21969
21981
  sourceMap: e.sourceMap,
21970
21982
  title: e.title
21971
21983
  }, {
@@ -21973,24 +21985,24 @@ function Bi(e, t, n = "1") {
21973
21985
  spaces: 2
21974
21986
  });
21975
21987
  else {
21976
- j.writeJsonSync(M.join(t, `transformation_${n}.json`), { title: e.title }, {
21988
+ j.writeJsonSync(ke.join(t, `transformation_${n}.json`), { title: e.title }, {
21977
21989
  encoding: "utf-8",
21978
21990
  spaces: 2
21979
21991
  });
21980
- for (let [r, i] of e.transformations.entries()) Bi(i, t, `${n}.${r + 1}`);
21992
+ for (let [r, i] of e.transformations.entries()) Vi(i, t, `${n}.${r + 1}`);
21981
21993
  }
21982
- e.output !== void 0 && j.writeFileSync(M.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21994
+ e.output !== void 0 && j.writeFileSync(ke.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21983
21995
  }
21984
21996
  //#endregion
21985
21997
  //#region src/lib/server/linkers/html.ts
21986
- async function Vi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlFilePath: i, htmlTransformationsInputDir: a, htmlTransformationsOutputDir: o, htmlWithLinksFilePath: s, htmlWithLinksOrReferencesFilePath: c, htmlWithLinksTransformationsOutputDir: l, htmlWithReferencesFilePath: u, linkBaseUrl: d, linkType: f, logIgnoredReferencesTypes: p, logPartialReferences: m, logReferences: h, referredLegifranceTextsInfosFilePath: g }) {
21987
- let _ = t ?? (e === void 0 ? void 0 : new re(e));
21998
+ async function Hi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlFilePath: i, htmlTransformationsInputDir: a, htmlTransformationsOutputDir: o, htmlWithLinksFilePath: s, htmlWithLinksOrReferencesFilePath: c, htmlWithLinksTransformationsOutputDir: l, htmlWithReferencesFilePath: u, linkBaseUrl: d, linkType: f, logIgnoredReferencesTypes: p, logPartialReferences: m, logReferences: h, referredLegifranceTextsInfosFilePath: g }) {
21999
+ let _ = t ?? (e === void 0 ? void 0 : new se(e));
21988
22000
  if (_ === void 0) throw Error("A Canutes database or legal resolver is required");
21989
22001
  let v = await j.readFile(i, { encoding: "utf-8" }), y;
21990
- a === void 0 ? (y = ve({ removeAWithHref: !0 })(v), o !== void 0 && Bi(y, o)) : y = Ri(v, a);
22002
+ a === void 0 ? (y = be({ removeAWithHref: !0 })(v), o !== void 0 && Vi(y, o)) : y = zi(v, a);
21991
22003
  let b = [];
21992
22004
  s !== void 0 && b.push("links"), c !== void 0 && b.push("links_or_references"), u !== void 0 && b.push("references");
21993
- let { outputByType: x, referredLegifranceTextCountByCid: S } = await se({
22005
+ let { outputByType: x, referredLegifranceTextCountByCid: ee } = await le({
21994
22006
  legiResolver: _,
21995
22007
  date: n,
21996
22008
  defaultTextId: r,
@@ -22003,22 +22015,22 @@ async function Vi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
22003
22015
  logReferences: h,
22004
22016
  outputTypes: b,
22005
22017
  referredLegifranceTextsInfos: g !== void 0
22006
- }), C = {};
22007
- s !== void 0 && (C.links = s), c !== void 0 && (C.links_or_references = c), u !== void 0 && (C.references = u);
22018
+ }), S = {};
22019
+ s !== void 0 && (S.links = s), c !== void 0 && (S.links_or_references = c), u !== void 0 && (S.references = u);
22008
22020
  for (let [e, t] of Object.entries(x)) {
22009
- let n = C[e];
22021
+ let n = S[e];
22010
22022
  n !== void 0 && await j.writeFile(n, t.html, { encoding: "utf-8" });
22011
22023
  }
22012
- x.links !== void 0 && l !== void 0 && Bi(ve()(x.links.html), l), g !== void 0 && await j.writeJson(g, S, {
22024
+ x.links !== void 0 && l !== void 0 && Vi(be()(x.links.html), l), g !== void 0 && await j.writeJson(g, ee, {
22013
22025
  encoding: "utf-8",
22014
22026
  spaces: 2
22015
22027
  });
22016
22028
  }
22017
22029
  //#endregion
22018
22030
  //#region src/lib/server/tables_of_contents.ts
22019
- async function Hi(e, t, n, r) {
22020
- let i = Ri(await j.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new E(a), s = await j.readJson(n, { encoding: "utf-8" });
22021
- for await (let e of ae({
22031
+ async function Ui(e, t, n, r) {
22032
+ let i = zi(await j.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new T(a), s = await j.readJson(n, { encoding: "utf-8" });
22033
+ for await (let e of ce({
22022
22034
  context: o,
22023
22035
  tableOfContents: s,
22024
22036
  transformation: i
@@ -22028,8 +22040,8 @@ async function Hi(e, t, n, r) {
22028
22040
  spaces: 2
22029
22041
  });
22030
22042
  }
22031
- async function Ui(e, t, n) {
22032
- let r = Ri(await j.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
22043
+ async function Wi(e, t, n) {
22044
+ let r = zi(await j.readFile(e, { encoding: "utf-8" }), t).output, i = b(r);
22033
22045
  await j.writeJson(n, i, {
22034
22046
  encoding: "utf-8",
22035
22047
  spaces: 2
@@ -22037,8 +22049,8 @@ async function Ui(e, t, n) {
22037
22049
  }
22038
22050
  //#endregion
22039
22051
  //#region src/lib/server/legi/resolvers.ts
22040
- function Wi({ canutesDb: e }) {
22041
- return new re(e);
22052
+ function Gi({ canutesDb: e }) {
22053
+ return new se(e);
22042
22054
  }
22043
22055
  //#endregion
22044
- export { Te as LegiResolver, Vi as addLinksOrReferencesToHtmlFile, Hi as addPositionsToTableOfContentsFile, Se as buildAndInstallTextTitlesInfos, we as buildTextTitlesInfos, Wi as createLegiResolver, Me as extractAssembleeAmendmentSearchItems, er as extractAssembleeExposesDesMotifs, ar as extractSenatAmendmentSearchItems, Ne as hashAssembleeAmendmentSearchItem, nr as hashAssembleeSearchItem, or as hashSenatAmendmentSearchItem, li as hashSenatSearchItem, hi as isAkomaNtosoXml, rr as isoDateFromAssembleeDocument, Xn as linkAkomaNtosoBillRaw, an as linkAssembleeBillRaw, Yn as parseAkomaNtosoBillRaw, ai as parseAmendment, rn as parseAssembleeBillRaw, tr as parseAssembleeDocumentSearchContent, ci as parseSenatDocumentSearchContent, Ri as readTransformation, Gn as renderAkomaNtosoBillRaw, mi as resolveSenatAkomaNtosoSource, Ui as simplifiedHtmlBillFileToTableOfContentsFile, Ni as simplifyWordHtml, Li as simplifyWordHtmlToDocument, Bi as writeTransformation };
22056
+ export { Te as LegiResolver, Hi as addLinksOrReferencesToHtmlFile, Ui as addPositionsToTableOfContentsFile, xe as buildAndInstallTextTitlesInfos, we as buildTextTitlesInfos, Gi as createLegiResolver, Ne as extractAssembleeAmendmentSearchItems, tr as extractAssembleeExposesDesMotifs, or as extractSenatAmendmentSearchItems, Pe as hashAssembleeAmendmentSearchItem, rr as hashAssembleeSearchItem, sr as hashSenatAmendmentSearchItem, ui as hashSenatSearchItem, gi as isAkomaNtosoXml, ir as isoDateFromAssembleeDocument, Zn as linkAkomaNtosoBillRaw, on as linkAssembleeBillRaw, Xn as parseAkomaNtosoBillRaw, oi as parseAmendment, an as parseAssembleeBillRaw, nr as parseAssembleeDocumentSearchContent, li as parseSenatDocumentSearchContent, zi as readTransformation, Kn as renderAkomaNtosoBillRaw, hi as resolveSenatAkomaNtosoSource, Wi as simplifiedHtmlBillFileToTableOfContentsFile, Pi as simplifyWordHtml, Ri as simplifyWordHtmlToDocument, Vi as writeTransformation };