@tricoteuses/tisseuse 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +79 -0
  2. package/dist/{html-C07GdZ0O.js → html-jaUHsXKQ.js} +5810 -5370
  3. package/dist/index.js +126 -126
  4. package/dist/{resolver-4v_fWVor.js → resolver-CzmDH4S3.js} +138 -130
  5. package/dist/server-f-legi.js +73 -92
  6. package/dist/server.js +554 -516
  7. package/dist/src/lib/extractors/action_directives_cpu.test.d.ts +1 -0
  8. package/dist/src/lib/extractors/links.citation_scope.test.d.ts +1 -0
  9. package/dist/src/lib/extractors/portion_references_cpu.test.d.ts +1 -0
  10. package/dist/src/lib/extractors/references.d.ts +8 -8
  11. package/dist/src/lib/f_legi/resolver.d.ts +0 -2
  12. package/dist/src/lib/index.d.ts +1 -0
  13. package/dist/src/lib/legi/canutes_article_preload.test.d.ts +1 -0
  14. package/dist/src/lib/legi/canutes_candidates.test.d.ts +1 -0
  15. package/dist/src/lib/legi/canutes_resolver.d.ts +5 -4
  16. package/dist/src/lib/legi/canutes_resolver_cache.test.d.ts +1 -0
  17. package/dist/src/lib/legi/canutes_section_roots.test.d.ts +1 -0
  18. package/dist/src/lib/legi/canutes_sql.d.ts +4 -0
  19. package/dist/src/lib/legi/canutes_text_titles_cache.d.ts +24 -0
  20. package/dist/src/lib/legi/canutes_text_titles_cache.integration.test.d.ts +1 -0
  21. package/dist/src/lib/legi/canutes_titles_metrics.d.ts +13 -0
  22. package/dist/src/lib/legi/text_titles_infos.d.ts +1 -0
  23. package/dist/src/lib/linkers/html.d.ts +3 -3
  24. package/dist/src/lib/linkers/markdown.d.ts +2 -2
  25. package/dist/src/lib/server/akn_rendering.test.d.ts +1 -0
  26. package/dist/src/lib/server/bill_action_resolver_invariance.test.d.ts +1 -0
  27. package/dist/src/lib/server/bill_action_target_fixtures.d.ts +7 -0
  28. package/dist/src/lib/server/bill_citation_anaphora.test.d.ts +1 -0
  29. package/dist/src/lib/server/bill_comparison.d.ts +42 -0
  30. package/dist/src/lib/server/bill_comparison.test.d.ts +1 -0
  31. package/dist/src/lib/server/bill_target_scope.test.d.ts +1 -0
  32. package/dist/src/lib/server/canutes_legacy_candidates.d.ts +19 -0
  33. package/dist/src/lib/server/canutes_only_compatibility.test.d.ts +1 -0
  34. package/dist/src/lib/server/databases/canutes_text_titles_cache.d.ts +8 -0
  35. package/dist/src/lib/server/flegi_profiling.d.ts +14 -0
  36. package/dist/src/lib/server/flegi_profiling.test.d.ts +1 -0
  37. package/dist/src/lib/server/masquage-typesense.test.d.ts +1 -0
  38. package/dist/src/lib/server/masquage_typesense.d.ts +36 -0
  39. package/dist/src/lib/server/sql_profiling.d.ts +30 -0
  40. package/dist/src/lib/server/sql_profiling.test.d.ts +1 -0
  41. package/dist/src/lib/text_parsers/action_words.d.ts +2 -0
  42. package/dist/src/lib/text_parsers/action_words.test.d.ts +1 -0
  43. package/dist/src/lib/text_parsers/texts.d.ts +1 -0
  44. package/dist/src/scripts/compare_legi_bills.d.ts +1 -0
  45. package/dist/src/scripts/configure_postgres_legi_resolver.d.ts +1 -0
  46. package/dist/src/scripts/profile_canutes_bill.d.ts +1 -0
  47. package/dist/src/scripts/test_canutes_titles_cache.d.ts +1 -0
  48. package/dist/src/scripts/warm_canutes_text_titles_cache.d.ts +1 -0
  49. package/package.json +7 -1
package/dist/server.js CHANGED
@@ -1,11 +1,11 @@
1
- import { At as e, C as t, D as n, E as r, Ft as i, Ht as a, K as o, L as s, M as c, Mt as l, N as u, O as d, Q as f, S as p, Tt as m, U as h, Ut as g, W as _, b as v, c as y, ft as b, g as x, h as ee, j as S, jt as C, k as te, kt as ne, m as re, n as ie, nt as ae, ot as oe, p as se, s as ce, t as le, tt as ue, u as de, ut as fe, v as pe, w as me, x as he } from "./html-C07GdZ0O.js";
2
- import { A as ge, At as w, It as T, L as _e, Ot as E, P as ve, Pt as D, R as ye, dt as be, k as xe, kt as O, n as Se, o as Ce, r as we, rt as Te, t as Ee, vt as De, xt as k } from "./resolver-4v_fWVor.js";
3
- import * as Oe from "node:crypto";
4
- import { createHash as ke } from "node:crypto";
5
- import A from "fs-extra";
6
- import Ae from "node:path";
1
+ import { At as e, C as t, D as n, E as r, Ft as i, Ht as a, K as o, L as s, M as c, Mt as l, N as u, O as d, Q as f, S as p, Tt as m, U as h, Ut as g, W as _, b as v, c as y, ft as b, g as x, h as ee, j as S, jt as C, k as te, kt as ne, m as re, n as ie, nt as ae, ot as oe, p as se, s as ce, t as le, tt as ue, u as de, ut as fe, v as pe, w as me, x as he } from "./html-jaUHsXKQ.js";
2
+ import { A as ge, At as w, F as _e, Ft as T, Lt as E, R as ve, St as D, d as ye, ft as be, it as xe, j as O, jt as k, kt as A, n as Se, r as Ce, t as we, yt as Te, z as Ee } from "./resolver-CzmDH4S3.js";
3
+ import * as De from "node:crypto";
4
+ import { createHash as Oe } from "node:crypto";
5
+ import j from "fs-extra";
6
+ import ke from "node:path";
7
7
  //#region src/lib/server/assemblee_amendment_search.ts
8
- function je(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 je(e, t) {
13
13
  }
14
14
  return typeof n == "string" && n.trim() ? n.trim() : null;
15
15
  }
16
- function Me(e) {
16
+ function je(e) {
17
17
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
18
18
  }
19
- function Ne(e) {
20
- return Me(b(e).text());
19
+ function Me(e) {
20
+ return je(b(e).text());
21
21
  }
22
- function Pe(e) {
23
- let t = Me([
24
- je(e, [
22
+ function Ne(e) {
23
+ let t = je([
24
+ Ae(e, [
25
25
  "corps",
26
26
  "contenuAuteur",
27
27
  "dispositif"
28
28
  ]),
29
- je(e, [
29
+ Ae(e, [
30
30
  "corps",
31
31
  "contenuAuteur",
32
32
  "dispositifAmdtCreditPLF"
33
33
  ]),
34
- je(e, [
34
+ Ae(e, [
35
35
  "corps",
36
36
  "contenuAuteur",
37
37
  "dispositifAmdtCreditPLFR"
38
38
  ])
39
- ].filter((e) => e !== null).map((e) => Ne(e)).join("\n")), n = je(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 ? "" : Ne(n);
43
+ ]), r = n === null ? "" : Me(n);
44
44
  return [...t ? [{
45
45
  content: t,
46
46
  itemKind: "dispositif",
@@ -51,24 +51,24 @@ function Pe(e) {
51
51
  label: "Exposé sommaire"
52
52
  }] : []];
53
53
  }
54
- function Fe(e, t) {
55
- return ke("sha256").update(JSON.stringify({
54
+ function Pe(e, t) {
55
+ return Oe("sha256").update(JSON.stringify({
56
56
  item: e,
57
57
  metadata: t
58
58
  })).digest("hex");
59
59
  }
60
60
  //#endregion
61
61
  //#region src/lib/extractors/article_action_targets.ts
62
- function j(e) {
62
+ function M(e) {
63
63
  switch (e.type) {
64
- case "reference_et_action": return j(e.reference);
65
- case "enumeration": return [...j(e.left), ...j(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
67
  let t = [...a(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 ? [] : j(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 j(e) {
89
89
  }
90
90
  //#endregion
91
91
  //#region src/lib/extractors/article_action_effects.ts
92
- function Ie(e, t) {
92
+ function Fe(e, t) {
93
93
  if (t < 2) return null;
94
- let n = ge(e), r = x(e);
94
+ let n = O(e), r = x(e);
95
95
  if (r.length !== t) return null;
96
- let i = s(new E(n.output)), a = (e) => ye(n, [e])[0].position;
96
+ let i = s(new A(n.output)), a = (e) => Ee(n, [e])[0].position;
97
97
  return r.map((t, n) => ({
98
98
  sourceText: e,
99
99
  referencePosition: a({
@@ -103,9 +103,9 @@ function Ie(e, t) {
103
103
  actionPosition: a(t.position)
104
104
  }));
105
105
  }
106
- function Le(e, t, n) {
106
+ function Ie(e, t, n) {
107
107
  if (t.length < 2) return null;
108
- let r = ge(e), i = r.output, a = (e) => ye(r, [e])[0].position, o = s(new E(i)), c = o.flatMap(j);
108
+ let r = O(e), i = r.output, a = (e) => Ee(r, [e])[0].position, o = s(new A(i)), c = o.flatMap(M);
109
109
  if (c.length !== t.length || c.length < 2) return null;
110
110
  let l = he(i);
111
111
  if (l.length > 0) return n?.kind !== "replace_portion" || l.length !== c.length || l.some((e, t) => {
@@ -161,12 +161,12 @@ function Le(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" || j(t).length === 0 || o.slice(f, e).flatMap(j).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 || 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);
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(j);
169
+ let r = o.slice(m, n + 1).flatMap(M);
170
170
  if (r.length === 0) {
171
171
  m = n + 1;
172
172
  continue;
@@ -205,27 +205,27 @@ function Le(e, t, n) {
205
205
  }
206
206
  //#endregion
207
207
  //#region src/lib/server/parsed_bills.ts
208
- var Re = /^expos[ée]\s+des\s+motifs\b/iu;
209
- function M(e) {
208
+ var Le = /^expos[ée]\s+des\s+motifs\b/iu;
209
+ function N(e) {
210
210
  return (e ?? "").replace(/\u00a0/g, " ").replace(/\s+/g, " ").trim();
211
211
  }
212
- function N(e) {
213
- return M(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
212
+ function P(e) {
213
+ return N(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
214
214
  }
215
- function ze(e) {
216
- return ne(M(e));
215
+ function Re(e) {
216
+ return ne(N(e));
217
217
  }
218
- function P(e) {
219
- return `_TocArt${ze(e).replace(/\s+/gu, "")}`;
218
+ function F(e) {
219
+ return `_TocArt${Re(e).replace(/\s+/gu, "")}`;
220
220
  }
221
- function Be(e, t) {
221
+ function ze(e, t) {
222
222
  return e(t).closest(".assnatTOC6,.assnatTOC5,.assnatTOC4").length > 0;
223
223
  }
224
- function F(e) {
225
- return N(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
224
+ function Be(e) {
225
+ return P(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
226
226
  }
227
227
  function Ve(e) {
228
- return F(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
228
+ return Be(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
229
229
  }
230
230
  function He(e) {
231
231
  switch (e.kind) {
@@ -246,7 +246,7 @@ function He(e) {
246
246
  }
247
247
  }
248
248
  function Ue(t) {
249
- let n = M(t.sourceText), r = /\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(n);
249
+ let n = N(t.sourceText), r = /\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(n);
250
250
  if (r?.[1] !== void 0) return e(r[1]);
251
251
  }
252
252
  function We(e) {
@@ -283,14 +283,14 @@ function Ke(e) {
283
283
  return t.type === "bounded-interval" || Object.values(t).some(Ke);
284
284
  }
285
285
  function qe(e) {
286
- let t = N(e.sourceText);
286
+ let t = P(e.sourceText);
287
287
  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);
288
288
  }
289
289
  function Je(e) {
290
- return M(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
290
+ return N(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
291
291
  }
292
292
  function Ye(e, t) {
293
- let n = new E(e, t), r = Te(n);
293
+ let n = new A(e, t), r = xe(n);
294
294
  return typeof r != "string" || n.offset <= t ? null : {
295
295
  date: r,
296
296
  start: t,
@@ -328,7 +328,7 @@ function Qe(e) {
328
328
  return n.length === 1 ? n[0] : void 0;
329
329
  }
330
330
  function $e(e) {
331
- return N(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
331
+ return P(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
332
332
  }
333
333
  function I(e) {
334
334
  return e?.type === "tag";
@@ -344,7 +344,7 @@ function tt(e, t) {
344
344
  let s = o[1] === "articles" ? "article" : o[1] === "sections" ? "division" : "text", c = o[2].replace(/\.md$/u, ""), l = `${s}\0${c}`;
345
345
  if (r.has(l)) continue;
346
346
  r.add(l);
347
- let u = M(e(i).text());
347
+ let u = N(e(i).text());
348
348
  n.push({
349
349
  id: c,
350
350
  ...nt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
@@ -371,14 +371,14 @@ function rt(e, t, n) {
371
371
  return r;
372
372
  }
373
373
  function it(e, t) {
374
- return t.map((t) => M(e(t).text())).filter(Boolean).join("\n");
374
+ return t.map((t) => N(e(t).text())).filter(Boolean).join("\n");
375
375
  }
376
376
  function at(e) {
377
- let t = N(e);
378
- return !t || Re.test(t) ? "noise" : d.test(e) ? "directive_candidate" : "context";
377
+ let t = P(e);
378
+ return !t || Le.test(t) ? "noise" : d.test(e) ? "directive_candidate" : "context";
379
379
  }
380
380
  function ot(e, t) {
381
- return t.tagName === "p" && (/pastille/iu.test(e(t).attr("class") ?? "") || e(t).is("[data-pastille]")) && /^\(\d+\)$/u.test(M(e(t).text()));
381
+ return t.tagName === "p" && (/pastille/iu.test(e(t).attr("class") ?? "") || e(t).is("[data-pastille]")) && /^\(\d+\)$/u.test(N(e(t).text()));
382
382
  }
383
383
  function st(e) {
384
384
  let t = b(e, { xml: {
@@ -417,10 +417,10 @@ function lt(e, t) {
417
417
  }
418
418
  function ut(e, t, n, r, i) {
419
419
  if (n.has(i.container)) return;
420
- let a = i.id ?? P(i.num ?? i.label);
420
+ let a = i.id ?? F(i.num ?? i.label);
421
421
  if (r.has(a)) return;
422
422
  r.add(a), n.add(i.container);
423
- let o = i.title ? e(i.element).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0) : void 0, s = I(o) ? dt(e, o) : null, c = s ? e(o).text() : "", l = I(o) && s?.label === i.label && s.title === i.title && [`${s.label}${s.title}`, `${s.label} ${s.title}`].some((e) => N(e) === N(c)) ? {
423
+ let o = i.title ? e(i.element).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0) : void 0, s = I(o) ? dt(e, o) : null, c = s ? e(o).text() : "", l = I(o) && s?.label === i.label && s.title === i.title && [`${s.label}${s.title}`, `${s.label} ${s.title}`].some((e) => P(e) === P(c)) ? {
424
424
  element: o,
425
425
  text: `${s.label}\n${s.title}`
426
426
  } : void 0;
@@ -451,7 +451,7 @@ function dt(e, t) {
451
451
  else for (let t of e.children) a(t);
452
452
  };
453
453
  a(t);
454
- let o = C(M(n)), s = M(r);
454
+ let o = C(N(n)), s = N(r);
455
455
  return o && !o.title && s ? {
456
456
  ...o,
457
457
  title: s
@@ -460,8 +460,8 @@ function dt(e, t) {
460
460
  function ft(e) {
461
461
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
462
462
  e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((i, a) => {
463
- if (Be(e, a)) return;
464
- let o = M(e(a).text()), s = e(a).attr("id");
463
+ if (ze(e, a)) return;
464
+ let o = N(e(a).text()), s = e(a).attr("id");
465
465
  if (!s || r.has(s)) return;
466
466
  let c = lt(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) ? dt(e, l) : null);
467
467
  u && ut(e, t, n, r, {
@@ -472,7 +472,7 @@ function ft(e) {
472
472
  });
473
473
  }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((i, a) => {
474
474
  if (n.has(a)) return;
475
- let o = C(M(e(a).text())) ?? dt(e, a);
475
+ let o = C(N(e(a).text())) ?? dt(e, a);
476
476
  o && ut(e, t, n, r, {
477
477
  ...o,
478
478
  element: a,
@@ -483,7 +483,7 @@ function ft(e) {
483
483
  return t.sort((e, t) => R(i, e.container) - R(i, t.container)), t;
484
484
  }
485
485
  function pt(e, t) {
486
- if (Be(e, t)) return !1;
486
+ if (ze(e, t)) return !1;
487
487
  let n = t.tagName?.toLowerCase();
488
488
  if (n !== "p") return /^h[1-6]$/u.test(n ?? "");
489
489
  let r = e(t).attr("style") ?? "", i = e(t).html() ?? "";
@@ -492,7 +492,7 @@ function pt(e, t) {
492
492
  function mt(e) {
493
493
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
494
494
  return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((i, a) => {
495
- if (Be(e, a) || !e(a).hasClass("assnat9ArticleNum") && !pt(e, a)) return;
495
+ if (ze(e, a) || !e(a).hasClass("assnat9ArticleNum") && !pt(e, a)) return;
496
496
  let o = C(e(a).text()) ?? dt(e, a);
497
497
  o && ut(e, t, n, r, {
498
498
  ...o,
@@ -502,7 +502,7 @@ function mt(e) {
502
502
  }), t;
503
503
  }
504
504
  function ht(e) {
505
- let t = ze(e ?? "").replace(/[()]/gu, "").trim();
505
+ let t = Re(e ?? "").replace(/[()]/gu, "").trim();
506
506
  if (!t || t.toLowerCase() === "liminaire") return;
507
507
  if (t.toLowerCase() === "unique") return {
508
508
  base: 1,
@@ -529,7 +529,7 @@ function gt(e, t) {
529
529
  return 0;
530
530
  }
531
531
  function _t(e) {
532
- let t = new E(e), n = be(t);
532
+ let t = new A(e), n = be(t);
533
533
  if (!(n === void 0 || t.offset !== e.length) && !(typeof n != "object" || !n || !("value" in n) || typeof n.value != "number")) return n.value - 1;
534
534
  }
535
535
  function vt(e) {
@@ -581,9 +581,9 @@ function bt(e, { warn: t = !0 } = {}) {
581
581
  let n = ft(e), r = mt(e);
582
582
  if (n.length === 0) return t && yt(r), r;
583
583
  let i = L(e), a = (e, t) => {
584
- let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => P(e.num ?? e.label)));
584
+ let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => F(e.num ?? e.label)));
585
585
  for (let i of t) {
586
- let t = P(i.num ?? i.label);
586
+ let t = F(i.num ?? i.label);
587
587
  n.has(i.container) || r.has(t) || (n.add(i.container), r.add(t), e.push(i));
588
588
  }
589
589
  return e.sort((e, t) => R(i, e.container) - R(i, t.container)), e;
@@ -604,9 +604,9 @@ function St(e, t, n) {
604
604
  let i = r.parent(), a = i.parent();
605
605
  if (!i.is("div") || i.children().length !== 1 || !a.is("div")) return;
606
606
  let o = a.children().get();
607
- if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || M(e(o[1]).text()) !== "") return;
607
+ if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || N(e(o[1]).text()) !== "") return;
608
608
  let s = o.length === 4 ? o[2] : void 0;
609
- if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(M(e(s).text())))) return;
609
+ if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(N(e(s).text())))) return;
610
610
  let c = o.at(-1);
611
611
  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 [
612
612
  t.container,
@@ -637,9 +637,9 @@ function wt(e, t) {
637
637
  function Tt(e, t, n, r) {
638
638
  let i = [], a = !1;
639
639
  for (let o of wt(e, n)) {
640
- let n = e(o).is("table.akn-quoted-table") ? _n(e, o) : M(e(o).text());
640
+ let n = e(o).is("table.akn-quoted-table") ? yn(e, o) : N(e(o).text());
641
641
  if (o === r?.splitAtBreak?.element && (n = r.splitAtBreak.text), !n) continue;
642
- Re.test(n) && (a = !0);
642
+ Le.test(n) && (a = !0);
643
643
  let s = a ? "noise" : at(n), c = `${t}-b${i.length + 1}`;
644
644
  e(o).attr("data-pjl-parsed-article-id", t), e(o).attr("data-pjl-parsed-block-id", c), i.push({
645
645
  id: c,
@@ -660,7 +660,7 @@ function Et(e, t) {
660
660
  function Dt(e) {
661
661
  let t = b(e), n = Ot(t);
662
662
  for (let e of bt(t, { warn: !1 })) {
663
- let r = P(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
663
+ let r = F(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
664
664
  if (a !== r) {
665
665
  if (a?.startsWith("_Toc") && !At(n, a, e.element)) {
666
666
  let e = t("<span></span>").attr("id", a);
@@ -724,6 +724,44 @@ function Nt(e) {
724
724
  return e?.links.filter((t) => !t.insideFrenchQuotes && (t.type === "article" || t.type === "division") && t.id !== e.qualifiedVersion?.modifyingArticleId).map((e) => e.id) ?? [];
725
725
  }
726
726
  function Pt(e) {
727
+ if (e.kind === "noise") return !1;
728
+ let t = P(e.text.split("«", 1)[0]).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-"), n = /^(?:(?:\d+°|[ivxlcdm]+[.)]|[a-z][.)])\s*)?(?:est|sont)\s+(?:ainsi\s+)?(?:abroge|modifie|complete|supprime|remplace|retabli)\w*\b/u.test(t) ? t : t.split(/\b(?:est|sont|il|elle|ils|elles)\b/iu, 1)[0];
729
+ return /(?:\b(?:articles?|livres?|titres?|sous[- ]?titres?|chapitres?|sections?|sous[- ]?sections?|parties?|paragraphes?|sous[- ]?paragraphes?|annexes?|etats?)\s+(?:[lrda]\s*\.?\s*-?\s*\d|\d|[ivxlcdm]+(?:er|re)?(?=\s|$|[.,;:])|(?:premier|premiere|deuxieme|troisieme|quatrieme|cinquieme|sixieme|septieme|huitieme|neuvieme|dixieme)\b)|\b(?:premier|premiere|deuxieme|troisieme|quatrieme|cinquieme|sixieme|septieme|huitieme|neuvieme|dixieme)\s+(?:article|livre|titre|chapitre|section|sous[- ]?section|partie|paragraphe)\b|\b(?:annexes?|etats?)\s+[a-z](?:\s|$))/iu.test(n);
730
+ }
731
+ function Ft(t, n) {
732
+ if (!n || n.articleId !== t.articleId || !/\br[ée]sultent\s+du\s+\d+°/iu.test(t.text)) return;
733
+ let r = (e) => P(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-"), i = r(t.text).replace(/«[^»]*»/gu, "");
734
+ if (/[«»]/u.test(i)) return;
735
+ let o = /\btels? qu['’]ils resultent du (\d+)°/u.exec(i);
736
+ if (!o || s(new A(i)).some((e) => [...a(e)].some((e) => e.type === "texte" && e.relative === void 0))) return;
737
+ let c = r(n.text);
738
+ if (/^\s*(\d+)°/u.exec(P(n.text))?.[1] !== o[1]) return;
739
+ let l = /\bles articles (.+?) deviennent respectivement les articles ([^;]+);?\s*$/u.exec(c);
740
+ if (!l) return;
741
+ let u = (t) => e(t.trim().replace(/^[lrda](?=[.\s\d])/u, (e) => e.toUpperCase())), d = (e) => {
742
+ let t = e.trim().split(/,\s*|\s+et\s+/u);
743
+ if (t.length === 0 || t.length > 64) return;
744
+ let n = t.map(u);
745
+ if (n.some((e) => e === void 0)) return;
746
+ let r = n;
747
+ return new Set(r).size === r.length ? r : void 0;
748
+ }, f = d(l[1]), p = d(l[2].replace(/;\s*$/u, ""));
749
+ if (!f || !p || f.length !== p.length) return;
750
+ let m = /* @__PURE__ */ new Map();
751
+ for (let e = 0; e < f.length; e++) {
752
+ let t = n.links.filter((t) => t.type === "article" && !t.insideFrenchQuotes && u(r(t.text ?? "")) === f[e]), i = [...new Set(t.map((e) => e.id))];
753
+ if (i.length !== 1 || !i[0]) return;
754
+ m.set(p[e], i[0]);
755
+ }
756
+ let h = [];
757
+ for (let e of i.matchAll(/\baux articles (.+?)(?=,?\s+tels? qu|,\s*la reference|;|$)/gu)) {
758
+ let t = d(e[1]);
759
+ if (!t) return;
760
+ h.push(...t);
761
+ }
762
+ if (!(h.length === 0 || h.some((e) => !m.has(e)))) return [...new Set(h.map((e) => m.get(e)))];
763
+ }
764
+ function It(e) {
727
765
  let t = h(e.text);
728
766
  if (t.length !== 1) return;
729
767
  let n = e.links.filter((e) => e.type === "article" && !e.insideFrenchQuotes), r = n.filter((n) => {
@@ -738,13 +776,13 @@ function Pt(e) {
738
776
  modifyingArticleLabel: i.text ?? ""
739
777
  };
740
778
  }
741
- function Ft(e, t) {
742
- let n = M(e);
779
+ function Lt(e, t) {
780
+ let n = N(e);
743
781
  if (!n) return;
744
782
  let r = fe(n);
745
783
  return r ? r.level : n.endsWith(":") ? (t ?? -1) + 1 : void 0;
746
784
  }
747
- function It(e) {
785
+ function Rt(e) {
748
786
  let t = /* @__PURE__ */ new Map(), n = [], r = re(e.map((e) => e.text)), i = -1;
749
787
  for (let [a, o] of e.entries()) {
750
788
  let e = r.get(a);
@@ -752,7 +790,7 @@ function It(e) {
752
790
  t.set(o.id, [...n.map((e) => e.block), o]);
753
791
  continue;
754
792
  }
755
- let s = Ft(o.text, n.at(-1)?.level);
793
+ let s = Lt(o.text, n.at(-1)?.level);
756
794
  if (s === void 0) {
757
795
  t.set(o.id, [...n.map((e) => e.block), o]);
758
796
  continue;
@@ -765,14 +803,14 @@ function It(e) {
765
803
  }
766
804
  return t;
767
805
  }
768
- function Lt(e, t) {
806
+ function zt(e, t) {
769
807
  let n = [], r = /* @__PURE__ */ new Set();
770
808
  for (let i of [...e ?? [], ...t]) i !== void 0 && (r.has(i.id) || (r.add(i.id), n.push(i)));
771
809
  return n;
772
810
  }
773
- function Rt(e, t, n) {
811
+ function Bt(e, t, n) {
774
812
  if (!t) return;
775
- let r = Lt(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
813
+ let r = zt(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
776
814
  if (r.length === 0) return;
777
815
  let i = r.map((e) => e.id);
778
816
  if (i.length === t.blockIds.length && i.every((e, n) => e === t.blockIds[n])) return;
@@ -787,7 +825,7 @@ function Rt(e, t, n) {
787
825
  }
788
826
  };
789
827
  }
790
- function zt(e) {
828
+ function Vt(e) {
791
829
  let t = [], n = 0;
792
830
  for (let r of e.blocks) {
793
831
  let i = e.directiveText.indexOf(r.text, n);
@@ -801,7 +839,7 @@ function zt(e) {
801
839
  }
802
840
  return t;
803
841
  }
804
- function Bt(e, t, n) {
842
+ function Ht(e, t, n) {
805
843
  let { start: r, stop: i } = n.sourcePosition, a = t.filter((e) => e.stop > r && e.start < i);
806
844
  if (a.length === 0) return;
807
845
  let o = a[0], s = a[a.length - 1], c = o.start, l = s.stop;
@@ -815,7 +853,7 @@ function Bt(e, t, n) {
815
853
  }
816
854
  };
817
855
  }
818
- function Vt(e, t, n) {
856
+ function Ut(e, t, n) {
819
857
  if (!t) return;
820
858
  let r = e.directiveText.indexOf(t.text);
821
859
  if (r === -1) return;
@@ -828,7 +866,7 @@ function Vt(e, t, n) {
828
866
  stop: a
829
867
  };
830
868
  }
831
- function Ht(e, t, n) {
869
+ function Wt(e, t, n) {
832
870
  for (let r of [...t.get(e.id) ?? [e]].reverse()) {
833
871
  let e = n.get(r.id);
834
872
  if (!n.has(r.id)) {
@@ -848,9 +886,9 @@ function Ht(e, t, n) {
848
886
  }
849
887
  }
850
888
  function B(e, t) {
851
- return `${e}\0${F(t)}`;
889
+ return `${e}\0${Be(t)}`;
852
890
  }
853
- function Ut(e) {
891
+ function Gt(e) {
854
892
  let t = new Map(e.map((e) => [e.id, e])), n = /* @__PURE__ */ new Map();
855
893
  return (e, r) => {
856
894
  if (r === void 0) return;
@@ -860,28 +898,28 @@ function Ut(e) {
860
898
  if (r === void 0) return;
861
899
  i = {
862
900
  blockById: new Map(r.blocks.map((e) => [e.id, e])),
863
- contextByBlockId: It(r.blocks),
901
+ contextByBlockId: Rt(r.blocks),
864
902
  textIdsByBlockId: /* @__PURE__ */ new Map()
865
903
  }, n.set(e, i);
866
904
  }
867
905
  let a = i.blockById.get(r);
868
- return a === void 0 ? void 0 : Ht(a, i.contextByBlockId, i.textIdsByBlockId);
906
+ return a === void 0 ? void 0 : Wt(a, i.contextByBlockId, i.textIdsByBlockId);
869
907
  };
870
908
  }
871
- function Wt(e, t, n, r, i) {
909
+ function Kt(e, t, n, r, i) {
872
910
  let o = /* @__PURE__ */ new Map(), c = new Set(e.blocks.flatMap((e) => {
873
911
  if (!e.text.includes("Art.")) return [];
874
- let t = Ht(e, i, o);
875
- return t === void 0 ? [] : m(ge(e.text).output).map(({ num: e }) => B(t, e));
912
+ let t = Wt(e, i, o);
913
+ return t === void 0 ? [] : m(O(e.text).output).map(({ num: e }) => B(t, e));
876
914
  }));
877
915
  if (c.size === 0) return /* @__PURE__ */ new Map();
878
916
  let l = new Set([...c].map((e) => e.slice(e.indexOf("\0") + 1))), u = t.flatMap((t) => {
879
917
  if (Ke(t.reference)) return [];
880
918
  let s = new Set([...a(t.reference)].filter((e) => e.type === "article" && e.num).map((e) => e.num));
881
- if (![...s].some((e) => l.has(F(e)))) return [];
882
- let c = Mt(n, Bt(e, r, t)) ?? jt(e.blocks, t);
919
+ if (![...s].some((e) => l.has(Be(e)))) return [];
920
+ let c = Mt(n, Ht(e, r, t)) ?? jt(e.blocks, t);
883
921
  if (!c) return [];
884
- let u = Ht(c, i, o);
922
+ let u = Wt(c, i, o);
885
923
  return u === void 0 ? [] : [{
886
924
  block: c,
887
925
  directive: t,
@@ -895,21 +933,21 @@ function Wt(e, t, n, r, i) {
895
933
  let f = new Set(t.flatMap((t) => {
896
934
  let a = We(t);
897
935
  if (a.length === 0) return [];
898
- let s = Mt(n, Bt(e, r, t)) ?? jt(e.blocks, t);
936
+ let s = Mt(n, Ht(e, r, t)) ?? jt(e.blocks, t);
899
937
  if (!s) return [];
900
- let c = Ht(s, i, o);
938
+ let c = Wt(s, i, o);
901
939
  return c === void 0 ? [] : a.map(({ num: e }) => B(c, e)).filter((e) => d.has(e));
902
940
  })), p = /* @__PURE__ */ new Map();
903
941
  for (let { block: e, directive: t, nums: n, textId: r } of u) {
904
942
  if (![...n].some((e) => c.has(B(r, e)))) continue;
905
- let i = new Set(s(new E(ge(t.sourceText).output)).flatMap((e) => [...a(e)].filter((e) => e.type === "article" && e.num).map((e) => e.num))), o = [...n].filter((e) => c.has(B(r, e)) && !f.has(B(r, e)) && [...i].some((t) => F(t) === F(e)));
943
+ let i = new Set(s(new A(O(t.sourceText).output)).flatMap((e) => [...a(e)].filter((e) => e.type === "article" && e.num).map((e) => e.num))), o = [...n].filter((e) => c.has(B(r, e)) && !f.has(B(r, e)) && [...i].some((t) => Be(t) === Be(e)));
906
944
  o.length > 0 && p.set(e.id, [...new Set([...p.get(e.id) ?? [], ...o])]);
907
945
  }
908
946
  return p;
909
947
  }
910
- function Gt(e, t) {
911
- let n = performance.now(), r = performance.now(), i = zt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = It(e.blocks);
912
- for (let t of e.blocks) t.qualifiedVersion = Pt(t);
948
+ function qt(e, t) {
949
+ let n = performance.now(), r = performance.now(), i = Vt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Rt(e.blocks);
950
+ for (let t of e.blocks) t.qualifiedVersion = It(t);
913
951
  let l = performance.now() - o, u = performance.now(), d = ee(), f = e.blocks[0], p = e.title !== void 0 && f?.text.startsWith(`${e.label}\n`) && (e.directiveText === f.text || e.directiveText.startsWith(`${f.text}\n`)), m = p && e.text.startsWith(`${e.label} ${e.title}`) ? " " : "", h = pe(p ? `${e.label}${m}${e.title}${e.directiveText.slice(f.text.length)}` : e.directiveText, t === void 0 ? void 0 : d);
914
952
  if (p && !m) {
915
953
  let t = e.label.length;
@@ -921,14 +959,14 @@ function Gt(e, t) {
921
959
  }
922
960
  }));
923
961
  }
924
- let g = performance.now() - u, _ = performance.now(), v = Wt(e, h, s, i, c), y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), x = [], S;
962
+ let g = performance.now() - u, _ = performance.now(), v = Kt(e, h, s, i, c), y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), x = [], S, C;
925
963
  for (let t of e.blocks) {
926
- let e = Nt(t);
927
- (e.length > 0 || t.qualifiedVersion || v.has(t.id)) && (x = v.has(t.id) ? [] : e, S = t.qualifiedVersion), y.set(t.id, x), b.set(t.id, S);
964
+ let e = Nt(t), n = e.length === 0 ? Ft(t, C) : void 0;
965
+ (e.length > 0 || n !== void 0 || t.qualifiedVersion || v.has(t.id) || Pt(t)) && (x = v.has(t.id) ? [] : n ?? e, S = t.qualifiedVersion), y.set(t.id, x), b.set(t.id, S), C = t;
928
966
  }
929
967
  l += performance.now() - _;
930
- let C = performance.now(), te = h.map((t) => {
931
- let n = Bt(e, i, t), r = Mt(s, n) ?? jt(e.blocks, t), a = Nt(r), o = r?.id !== void 0 && v.has(r.id) ? [] : a.length > 0 ? a : r?.id === void 0 ? [] : y.get(r.id) ?? [], l = Vt(e, r, t), u = Rt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
968
+ let te = performance.now(), ne = h.map((t) => {
969
+ let n = Ht(e, i, t), r = Mt(s, n) ?? jt(e.blocks, t), a = Nt(r), o = r?.id !== void 0 && v.has(r.id) ? [] : a.length > 0 ? a : r?.id === void 0 ? [] : y.get(r.id) ?? [], l = Ut(e, r, t), u = Bt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
932
970
  return {
933
971
  articleId: e.id,
934
972
  blockId: r?.id,
@@ -948,19 +986,19 @@ function Gt(e, t) {
948
986
  ...o.length > 0 || r?.id !== void 0 && v.has(r.id) ? { targetIds: o } : {},
949
987
  ...r?.id !== void 0 && b.get(r.id) ? { qualifiedVersion: b.get(r.id) } : {}
950
988
  };
951
- }), ne = /* @__PURE__ */ new Set(), re = /* @__PURE__ */ new Map(), ie = te.flatMap((e) => {
989
+ }), re = /* @__PURE__ */ new Set(), ie = /* @__PURE__ */ new Map(), ae = ne.flatMap((e) => {
952
990
  let t = e.blockId ? s.get(e.blockId) : void 0;
953
991
  if (!t || e.internallyCreatedTargetNums?.length) return [e];
954
- if (ne.has(t.id)) return [];
955
- let n = re.get(t.id);
956
- if (n === void 0 && (n = Le(t.text, Nt(t), e.directive), re.set(t.id, n)), !n) {
957
- let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ie(t.text, n.operations.length) : null;
992
+ if (re.has(t.id)) return [];
993
+ let n = ie.get(t.id);
994
+ if (n === void 0 && (n = Ie(t.text, Nt(t), e.directive), ie.set(t.id, n)), !n) {
995
+ let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Fe(t.text, n.operations.length) : null;
958
996
  return [r ? {
959
997
  ...e,
960
998
  sourceAnnotations: r
961
999
  } : e];
962
1000
  }
963
- return ne.add(t.id), [{
1001
+ return re.add(t.id), [{
964
1002
  ...e,
965
1003
  effects: n.map((t) => ({
966
1004
  ...t,
@@ -971,21 +1009,21 @@ function Gt(e, t) {
971
1009
  }
972
1010
  }))
973
1011
  }];
974
- }), ae = performance.now() - C;
1012
+ }), oe = performance.now() - te;
975
1013
  return t?.push({
976
1014
  actionDirectiveExtraction: d,
977
1015
  articleId: e.id,
978
1016
  blockCount: e.blocks.length,
979
1017
  buildRangesMs: Math.round(a * 10) / 10,
980
- directiveCount: ie.length,
1018
+ directiveCount: ae.length,
981
1019
  directiveTextSize: e.directiveText.length,
982
1020
  extractActionDirectivesMs: Math.round(g * 10) / 10,
983
- mapDirectivesMs: Math.round(ae * 10) / 10,
1021
+ mapDirectivesMs: Math.round(oe * 10) / 10,
984
1022
  prepareBlockIndexesMs: Math.round(l * 10) / 10,
985
1023
  totalMs: Math.round((performance.now() - n) * 10) / 10
986
- }), ie;
1024
+ }), ae;
987
1025
  }
988
- function Kt(e, t) {
1026
+ function Jt(e, t) {
989
1027
  let n = /* @__PURE__ */ new Map(), r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
990
1028
  for (let o of e) {
991
1029
  let e = We(o.directive);
@@ -1025,7 +1063,7 @@ function Kt(e, t) {
1025
1063
  definitions: r
1026
1064
  };
1027
1065
  }
1028
- function qt(e, t, n, r) {
1066
+ function Yt(e, t, n, r) {
1029
1067
  if (t.length === 0) return e;
1030
1068
  let i = new Map(t.flatMap((e) => {
1031
1069
  let t = r(e.articleId, e.blockId);
@@ -1048,7 +1086,7 @@ function qt(e, t, n, r) {
1048
1086
  };
1049
1087
  });
1050
1088
  }
1051
- function Jt(e) {
1089
+ function Xt(e) {
1052
1090
  switch (e.kind) {
1053
1091
  case "insert_after":
1054
1092
  case "insert_before": return [e.insertText];
@@ -1066,8 +1104,8 @@ function Jt(e) {
1066
1104
  default: return [];
1067
1105
  }
1068
1106
  }
1069
- function Yt(e) {
1070
- return e.flatMap((e) => Jt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
1107
+ function Zt(e) {
1108
+ return e.flatMap((e) => Xt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
1071
1109
  code: "nested_french_quote_in_redaction",
1072
1110
  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.",
1073
1111
  details: {
@@ -1079,18 +1117,18 @@ function Yt(e) {
1079
1117
  }
1080
1118
  })));
1081
1119
  }
1082
- function Xt(e) {
1083
- return Jt(e).map((t) => ({
1120
+ function Qt(e) {
1121
+ return Xt(e).map((t) => ({
1084
1122
  directiveKind: e.kind,
1085
1123
  text: t
1086
1124
  }));
1087
1125
  }
1088
- function Zt(e) {
1126
+ function $t(e) {
1089
1127
  let t = /* @__PURE__ */ new Set();
1090
1128
  for (let n of e.matchAll(/«[^«»\n]+»/gu)) t.add(n[0]);
1091
1129
  return Array.from(t);
1092
1130
  }
1093
- function Qt(e, t) {
1131
+ function en(e, t) {
1094
1132
  let n = new Map(e.blocks.map((e) => [e.id, e])), r = t.sourceBlockIds ?? e.blocks.map((e) => e.id), i = [], a = 0;
1095
1133
  for (let e of r) {
1096
1134
  let t = n.get(e);
@@ -1102,11 +1140,11 @@ function Qt(e, t) {
1102
1140
  }
1103
1141
  return i;
1104
1142
  }
1105
- function $t(e, t, n) {
1143
+ function tn(e, t, n) {
1106
1144
  return e.find((e) => t >= e.start && n <= e.stop);
1107
1145
  }
1108
- function en(e, t, n) {
1109
- let r = Zt(n), i = r.flatMap((t) => {
1146
+ function nn(e, t, n) {
1147
+ let r = $t(n), i = r.flatMap((t) => {
1110
1148
  for (let n of e.blocks) {
1111
1149
  let e = n.text.indexOf(t);
1112
1150
  if (e !== -1) return [{
@@ -1125,7 +1163,7 @@ function en(e, t, n) {
1125
1163
  e.directiveText
1126
1164
  ].filter((e) => e !== void 0 && e.length > 0), o = a.find((e) => r.some((t) => e.includes(t))) ?? a[0];
1127
1165
  if (!o) return [];
1128
- let s = Qt(e, t);
1166
+ let s = en(e, t);
1129
1167
  if (s.length === 0) return [];
1130
1168
  let c = [], l = 0;
1131
1169
  for (let e of r) {
@@ -1133,7 +1171,7 @@ function en(e, t, n) {
1133
1171
  if (t === -1) continue;
1134
1172
  let n = t + e.length;
1135
1173
  l = n;
1136
- let r = $t(s, t, n);
1174
+ let r = tn(s, t, n);
1137
1175
  r && c.push({
1138
1176
  blockId: r.block.id,
1139
1177
  start: t - r.start,
@@ -1143,15 +1181,15 @@ function en(e, t, n) {
1143
1181
  }
1144
1182
  return c;
1145
1183
  }
1146
- function tn(e, t) {
1184
+ function rn(e, t) {
1147
1185
  let n = new Map(e.map((e) => [e.id, e]));
1148
1186
  return t.flatMap((e) => {
1149
1187
  let t = n.get(e.articleId);
1150
- return t ? Xt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1188
+ return t ? Qt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1151
1189
  articleId: e.articleId,
1152
1190
  code: "nested_french_quote_in_redaction",
1153
1191
  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.",
1154
- ranges: en(t, e, r),
1192
+ ranges: nn(t, e, r),
1155
1193
  severity: "warning",
1156
1194
  details: {
1157
1195
  blockId: e.blockId,
@@ -1162,7 +1200,7 @@ function tn(e, t) {
1162
1200
  })) : [];
1163
1201
  });
1164
1202
  }
1165
- function nn(e, t) {
1203
+ function an(e, t) {
1166
1204
  let n = new Map(e.flatMap((e) => [...re(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
1167
1205
  articleId: e.id,
1168
1206
  blockIds: e.blocks.slice(t - 1, n.endIndex + 1).map((e) => e.id),
@@ -1185,7 +1223,7 @@ function nn(e, t) {
1185
1223
  }];
1186
1224
  });
1187
1225
  }
1188
- function rn(e, t) {
1226
+ function on(e, t) {
1189
1227
  let n = new Map(e.flatMap((e) => e.blocks.map((e) => [e.id, e]))), r = /* @__PURE__ */ new Set();
1190
1228
  return t.flatMap((e) => {
1191
1229
  let t = e.blockId, i = e.internallyCreatedTargetNums;
@@ -1207,8 +1245,8 @@ function rn(e, t) {
1207
1245
  }] : [];
1208
1246
  });
1209
1247
  }
1210
- function an(e, t, n, r, i, a, o = !0, s) {
1211
- 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 = {
1248
+ function sn(e, t, n, r, i, a, o = !0, s) {
1249
+ let c = new ye("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 = {
1212
1250
  sourceFormat: e,
1213
1251
  documentDate: r,
1214
1252
  html: t,
@@ -1232,14 +1270,14 @@ function an(e, t, n, r, i, a, o = !0, s) {
1232
1270
  let f = c.timeSync("extractGlobalApplicabilityDate", () => Qe(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1233
1271
  let e = [];
1234
1272
  for (let t of i) {
1235
- let n = Gt(t, c.enabled ? p : void 0);
1273
+ let n = qt(t, c.enabled ? p : void 0);
1236
1274
  e.push(...n);
1237
1275
  }
1238
1276
  return e;
1239
- }, { count: i.length }), h = Ut(i), { createdArticlesByDirective: g, definitions: _ } = c.timeSync("buildInternalArticleDefinitions", () => Kt(m, h), { count: m.length }), v = c.timeSync("attachInternalArticleMetadata", () => qt(m, _, g, h), { count: m.length }), b = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Yt(v), { count: v.length }), x = [...s ?? [], ...b], ee = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [
1240
- ...tn(i, v),
1241
- ...nn(i, v),
1242
- ...rn(i, v)
1277
+ }, { count: i.length }), h = Gt(i), { createdArticlesByDirective: g, definitions: _ } = c.timeSync("buildInternalArticleDefinitions", () => Jt(m, h), { count: m.length }), v = c.timeSync("attachInternalArticleMetadata", () => Yt(m, _, g, h), { count: m.length }), b = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Zt(v), { count: v.length }), x = [...s ?? [], ...b], ee = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [
1278
+ ...rn(i, v),
1279
+ ...an(i, v),
1280
+ ...on(i, v)
1243
1281
  ], { count: v.length }), S = {
1244
1282
  ...d,
1245
1283
  ...f ? { globalApplicabilityDate: f } : {},
@@ -1334,18 +1372,18 @@ function an(e, t, n, r, i, a, o = !0, s) {
1334
1372
  slowDirectiveArticles: p.toSorted((e, t) => t.totalMs - e.totalMs).slice(0, 10)
1335
1373
  }), S;
1336
1374
  }
1337
- function on(e) {
1375
+ function cn(e) {
1338
1376
  return { items: e.map((e) => ({
1339
1377
  id: e.id,
1340
1378
  line: e.title ? `${e.label} : ${e.title}` : e.label,
1341
1379
  type: "article"
1342
1380
  })) };
1343
1381
  }
1344
- function sn(e) {
1345
- return Array.from(de(e)).filter((e) => e.type === "article").map((e) => N(e.line.split(/[::]/u)[0]));
1382
+ function ln(e) {
1383
+ return Array.from(de(e)).filter((e) => e.type === "article").map((e) => P(e.line.split(/[::]/u)[0]));
1346
1384
  }
1347
- function cn(e, t, n, r) {
1348
- let i = vt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(de(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? P(e.num) : b(e.html)("p.TCNumArticle").first().attr("id") ?? P(e.label) : e.id), c = o.map((e) => e.id);
1385
+ function un(e, t, n, r) {
1386
+ let i = vt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(de(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? F(e.num) : b(e.html)("p.TCNumArticle").first().attr("id") ?? F(e.label) : e.id), c = o.map((e) => e.id);
1349
1387
  (c.length !== s.length || c.some((e, t) => e !== s[t])) && i.push({
1350
1388
  code: "article_toc_source_heading_mismatch",
1351
1389
  message: "The table of contents differs from the parsed article headings",
@@ -1361,8 +1399,8 @@ function cn(e, t, n, r) {
1361
1399
  });
1362
1400
  return i;
1363
1401
  }
1364
- function ln(e, t, n) {
1365
- let r = sn(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => N(e.label)), a = on(e), o = [...n, ...cn(e, a, t, "assemblee-html")];
1402
+ function dn(e, t, n) {
1403
+ let r = ln(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => P(e.label)), a = cn(e), o = [...n, ...un(e, a, t, "assemblee-html")];
1366
1404
  if (r.length > 0 && (r.length !== i.length || r.some((e, t) => e !== i[t]))) {
1367
1405
  let t = r.findIndex((e, t) => e !== i[t]);
1368
1406
  o.push({
@@ -1386,8 +1424,8 @@ function ln(e, t, n) {
1386
1424
  tableOfContents: a
1387
1425
  };
1388
1426
  }
1389
- async function un(e, t) {
1390
- let n = new Ce("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => dn(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Dt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => b(i)), o = n.timeSync("extractArticleHeadings", () => bt(a)), s = new Set(o.map((e) => e.id)), c = mt(a).filter((e) => !s.has(P(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1427
+ async function fn(e, t) {
1428
+ let n = new ye("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => pn(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Dt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => b(i)), o = n.timeSync("extractArticleHeadings", () => bt(a)), s = new Set(o.map((e) => e.id)), c = mt(a).filter((e) => !s.has(F(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1391
1429
  code: "article_toc_source_heading_mismatch",
1392
1430
  message: "Some structural article headings were not retained",
1393
1431
  details: { discardedCandidates: c }
@@ -1403,7 +1441,7 @@ async function un(e, t) {
1403
1441
  directiveText: i,
1404
1442
  blocks: r
1405
1443
  };
1406
- }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => Et(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => ln(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => an("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1444
+ }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => Et(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => dn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => sn("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1407
1445
  return h.diagnostics?.length && process.env.TISSEUSE_WARN_PARSED_BILL_DIAGNOSTICS === "1" && console.warn("Assemblée bill parsing diagnostics", h.diagnostics), n.log({
1408
1446
  articleCount: h.articles.length,
1409
1447
  blockCount: h.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1411,7 +1449,7 @@ async function un(e, t) {
1411
1449
  targetDirectiveCount: h.directives.filter((e) => e.targetIds !== void 0).length
1412
1450
  }), h;
1413
1451
  }
1414
- async function dn(e, t) {
1452
+ async function pn(e, t) {
1415
1453
  return {
1416
1454
  sourceFormat: "assemblee-html",
1417
1455
  documentDate: t.date,
@@ -1422,7 +1460,7 @@ async function dn(e, t) {
1422
1460
  function V(e) {
1423
1461
  return e.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;");
1424
1462
  }
1425
- function fn(e) {
1463
+ function mn(e) {
1426
1464
  let t = e;
1427
1465
  for (let e = 0; e < 3; e++) {
1428
1466
  let e = t;
@@ -1430,33 +1468,33 @@ function fn(e) {
1430
1468
  }
1431
1469
  return t;
1432
1470
  }
1433
- function pn(e) {
1471
+ function hn(e) {
1434
1472
  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);
1435
1473
  }
1436
1474
  function H(e) {
1437
1475
  return e.name.replace(/^.*:/u, "");
1438
1476
  }
1439
- function mn(e, t) {
1477
+ function gn(e, t) {
1440
1478
  return t.children.map((t) => U(e, t)).filter(Boolean).join("");
1441
1479
  }
1442
- function hn(e, t) {
1443
- return t.children.map((t) => t.type === "text" && pn(t.data) ? fn(t.data) : U(e, t)).filter(Boolean).join("");
1480
+ function _n(e, t) {
1481
+ return t.children.map((t) => t.type === "text" && hn(t.data) ? mn(t.data) : U(e, t)).filter(Boolean).join("");
1444
1482
  }
1445
1483
  function U(e, t) {
1446
1484
  if (t.type === "text") {
1447
1485
  let e = t.data.replace(/\s+\./gu, ".");
1448
- return pn(e) ? fn(e) : V(e);
1486
+ return hn(e) ? mn(e) : V(e);
1449
1487
  }
1450
1488
  if (!I(t)) return "";
1451
- let n = H(t), r = mn(e, t);
1489
+ let n = H(t), r = () => gn(e, t);
1452
1490
  switch (n) {
1453
- case "p": return `<p${vn(e, t, [
1491
+ case "p": return `<p${bn(e, t, [
1454
1492
  "id",
1455
1493
  "class",
1456
1494
  "align",
1457
1495
  "valign",
1458
1496
  "style"
1459
- ])}>${r}</p>`;
1497
+ ])}>${r()}</p>`;
1460
1498
  case "br": return "<br>";
1461
1499
  case "span":
1462
1500
  case "b":
@@ -1464,42 +1502,42 @@ function U(e, t) {
1464
1502
  case "u":
1465
1503
  case "sup":
1466
1504
  case "sub":
1467
- case "abbr": return `<${n}${vn(e, t, [
1505
+ case "abbr": return `<${n}${bn(e, t, [
1468
1506
  "id",
1469
1507
  "class",
1470
1508
  "title",
1471
1509
  "style"
1472
- ])}>${r}</${n}>`;
1473
- case "a": return `<a href="${V(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${vn(e, t, [
1510
+ ])}>${r()}</${n}>`;
1511
+ case "a": return `<a href="${V(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${bn(e, t, [
1474
1512
  "id",
1475
1513
  "class",
1476
1514
  "title",
1477
1515
  "style"
1478
- ])}>${r}</a>`;
1516
+ ])}>${r()}</a>`;
1479
1517
  case "table":
1480
1518
  case "thead":
1481
1519
  case "tbody":
1482
1520
  case "tr":
1483
1521
  case "th":
1484
- case "td": return yn(e, t, n, r);
1485
- case "caption": return `<caption${vn(e, t, [
1522
+ case "td": return xn(e, t, n, r());
1523
+ case "caption": return `<caption${bn(e, t, [
1486
1524
  "id",
1487
1525
  "class",
1488
1526
  "align",
1489
1527
  "style"
1490
- ])}>${r}</caption>`;
1491
- case "num": return `<span class="akn-num">${r}</span> `;
1492
- case "heading": return `<p class="akn-heading">${r}</p>`;
1493
- case "content": return hn(e, t);
1494
- case "alinea": return Pn(e, t, "div", "akn-alinea");
1495
- case "article": return Pn(e, t, "article", "akn-article");
1528
+ ])}>${r()}</caption>`;
1529
+ case "num": return `<span class="akn-num">${r()}</span> `;
1530
+ case "heading": return `<p class="akn-heading">${r()}</p>`;
1531
+ case "content": return _n(e, t);
1532
+ case "alinea": return In(e, t, "div", "akn-alinea");
1533
+ case "article": return In(e, t, "article", "akn-article");
1496
1534
  case "blockList":
1497
- case "list": return `<div class="akn-list">${r}</div>`;
1498
- case "item": return Pn(e, t, "div", "akn-item");
1535
+ case "list": return `<div class="akn-list">${r()}</div>`;
1536
+ case "item": return In(e, t, "div", "akn-item");
1499
1537
  case "listIntroduction":
1500
1538
  case "listWrapUp":
1501
1539
  case "intro":
1502
- case "wrapUp": return `<div class="akn-${n}">${r}</div>`;
1540
+ case "wrapUp": return `<div class="akn-${n}">${r()}</div>`;
1503
1541
  case "part":
1504
1542
  case "title":
1505
1543
  case "chapter":
@@ -1511,12 +1549,12 @@ function U(e, t) {
1511
1549
  case "book":
1512
1550
  case "tome":
1513
1551
  case "subchapter":
1514
- case "subsection": return Pn(e, t, "section", `akn-${n}`);
1515
- case "crossHeading": return `<p class="akn-cross-heading">${r}</p>`;
1516
- default: return r;
1552
+ case "subsection": return In(e, t, "section", `akn-${n}`);
1553
+ case "crossHeading": return `<p class="akn-cross-heading">${r()}</p>`;
1554
+ default: return r();
1517
1555
  }
1518
1556
  }
1519
- function gn(e, t) {
1557
+ function vn(e, t) {
1520
1558
  let n = e(t).text();
1521
1559
  if (!n.includes("«") || !n.includes("»") || e(t).find("table").length > 0) return;
1522
1560
  let r = e(t).find("tr").get().filter((n) => e(n).closest("table").get(0) === t);
@@ -1527,28 +1565,28 @@ function gn(e, t) {
1527
1565
  let l = s ? o[0] : void 0, u = c ? o.at(-1) : void 0;
1528
1566
  if (l) {
1529
1567
  let t = Number(e(l).attr("rowspan") ?? "1");
1530
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && M(e(l).text()) !== "«") return [];
1568
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && N(e(l).text()) !== "«") return [];
1531
1569
  i = t - 1;
1532
1570
  }
1533
1571
  if (u) {
1534
1572
  let t = Number(e(u).attr("rowspan") ?? "1");
1535
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(M(e(u).text()))) return [];
1573
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(N(e(u).text()))) return [];
1536
1574
  a = t - 1;
1537
1575
  }
1538
1576
  return [l, u];
1539
1577
  });
1540
1578
  if (o.some((e) => e.length !== 2)) return;
1541
- let s = o.map(([t]) => t ? M(e(t).text()) : ""), c = o.map(([, t]) => t ? M(e(t).text()) : "");
1579
+ let s = o.map(([t]) => t ? N(e(t).text()) : ""), c = o.map(([, t]) => t ? N(e(t).text()) : "");
1542
1580
  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("»")))) {
1543
1581
  e(t).addClass("akn-quoted-table");
1544
1582
  for (let [t, n] of o) t && e(t).addClass("akn-quote-column"), n && e(n).addClass("akn-quote-column");
1545
1583
  }
1546
1584
  }
1547
- function _n(e, t) {
1548
- let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(M(e(t).text())))).text();
1549
- return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => M(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1585
+ function yn(e, t) {
1586
+ 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();
1587
+ return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => N(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1550
1588
  }
1551
- function vn(e, t, n, r = {}) {
1589
+ function bn(e, t, n, r = {}) {
1552
1590
  let i = [];
1553
1591
  for (let r of n) {
1554
1592
  if (r === "style") continue;
@@ -1558,8 +1596,8 @@ function vn(e, t, n, r = {}) {
1558
1596
  let a = r.style ?? e(t).attr("style");
1559
1597
  return a && i.push(`style="${V(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1560
1598
  }
1561
- function yn(e, t, n, r) {
1562
- return `<${n}${vn(e, t, [
1599
+ function xn(e, t, n, r) {
1600
+ return `<${n}${bn(e, t, [
1563
1601
  "id",
1564
1602
  "class",
1565
1603
  "colspan",
@@ -1572,56 +1610,56 @@ function yn(e, t, n, r) {
1572
1610
  "cellspacing",
1573
1611
  "cellpadding",
1574
1612
  "style"
1575
- ], { style: bn(e, t, n) })}>${r}</${n}>`;
1613
+ ], { style: Sn(e, t, n) })}>${r}</${n}>`;
1576
1614
  }
1577
- function bn(e, t, n) {
1615
+ function Sn(e, t, n) {
1578
1616
  let r = e(t).attr("style") ?? "";
1579
- return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = xn(r, "text-align", "center")), r || void 0;
1617
+ return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = Cn(r, "text-align", "center")), r || void 0;
1580
1618
  }
1581
- function xn(e, t, n) {
1619
+ function Cn(e, t, n) {
1582
1620
  let r = e.trim();
1583
1621
  return `${r}${r && !r.endsWith(";") ? ";" : ""} ${t}: ${n};`.trim();
1584
1622
  }
1585
- function Sn(e, t) {
1586
- let n = [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean);
1623
+ function wn(e, t) {
1624
+ let n = [N(e(t).children("num").first().text()), N(e(t).children("heading").first().text())].filter(Boolean);
1587
1625
  return n.length === 0 ? "" : `<p class="akn-heading">${V(n.join(" "))}</p>`;
1588
1626
  }
1589
- function Cn(e, t) {
1627
+ function Tn(e, t) {
1590
1628
  if (!t) return !1;
1591
- let n = (e) => M(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1592
- return n(M(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1629
+ let n = (e) => N(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1630
+ return n(N(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1593
1631
  }
1594
- function wn(e) {
1632
+ function En(e) {
1595
1633
  let t = V(e);
1596
1634
  return `<p data-pastille="${t}" class="pastille"><span aria-label="pastille ${t}" data-pastille="${t}"></span></p>`;
1597
1635
  }
1598
- function Tn(e, t) {
1599
- return En([Dn({
1636
+ function Dn(e, t) {
1637
+ return On([kn({
1600
1638
  content: e,
1601
1639
  pastille: t
1602
1640
  })]);
1603
1641
  }
1604
- function En(e) {
1642
+ function On(e) {
1605
1643
  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>`;
1606
1644
  }
1607
- function Dn({ content: e, pastille: t, style: n, contextClass: r }) {
1645
+ function kn({ content: e, pastille: t, style: n, contextClass: r }) {
1608
1646
  let i = n ? ` style="${V(n)}"` : "", a = r ? ` ${V(r)}` : "";
1609
- return `<tr${r ? ` class="${V(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${wn(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>`;
1647
+ return `<tr${r ? ` class="${V(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${En(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>`;
1610
1648
  }
1611
- function On({ content: e, style: t, contextClass: n }) {
1649
+ function An({ content: e, style: t, contextClass: n }) {
1612
1650
  let r = t ? ` style="${V(t)}"` : "", i = n ? ` ${V(n)}` : "";
1613
1651
  return `<tr${n ? ` class="${V(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>`;
1614
1652
  }
1615
- function kn(e, t) {
1653
+ function jn(e, t) {
1616
1654
  return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1617
1655
  }
1618
- function An(e, t) {
1656
+ function Mn(e, t) {
1619
1657
  return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1620
1658
  }
1621
- function jn(e, t) {
1659
+ function Nn(e, t) {
1622
1660
  return e(t).children().get().filter((e) => I(e) ? H(e) === "content" : !1).map((t) => U(e, t)).filter(Boolean).join("\n");
1623
1661
  }
1624
- function Mn(e, t) {
1662
+ function Pn(e, t) {
1625
1663
  let n = [];
1626
1664
  return e(t).children().each((t, r) => {
1627
1665
  if (!I(r)) return;
@@ -1629,17 +1667,17 @@ function Mn(e, t) {
1629
1667
  i === "num" || i === "heading" || i === "content" || n.push(U(e, r));
1630
1668
  }), n.filter(Boolean);
1631
1669
  }
1632
- function Nn(e, t) {
1633
- let n = [], r = H(t), i = r === "alinea" ? kn(e, t) : void 0, a = jn(e, t), o = Fn(e, t, r, i), s = Vn(e, t);
1670
+ function Fn(e, t) {
1671
+ let n = [], r = H(t), i = r === "alinea" ? jn(e, t) : void 0, a = Nn(e, t), o = Ln(e, t, r, i), s = Un(e, t);
1634
1672
  if (i) {
1635
- let r = [Cn(a, M(e(t).children("num").first().text())) ? "" : Sn(e, t), a].filter(Boolean).join("\n");
1636
- M(r) && n.push(Dn({
1673
+ let r = [Tn(a, N(e(t).children("num").first().text())) ? "" : wn(e, t), a].filter(Boolean).join("\n");
1674
+ N(r) && n.push(kn({
1637
1675
  content: r,
1638
1676
  pastille: i,
1639
1677
  style: o,
1640
1678
  contextClass: s
1641
1679
  }));
1642
- } else a && n.push(On({
1680
+ } else a && n.push(An({
1643
1681
  content: a,
1644
1682
  style: o,
1645
1683
  contextClass: s
@@ -1647,30 +1685,30 @@ function Nn(e, t) {
1647
1685
  for (let r of e(t).children().get()) {
1648
1686
  if (!I(r)) continue;
1649
1687
  let t = H(r);
1650
- t === "num" || t === "heading" || t === "content" || (t === "alinea" || An(e, r)) && n.push(...Nn(e, r));
1688
+ t === "num" || t === "heading" || t === "content" || (t === "alinea" || Mn(e, r)) && n.push(...Fn(e, r));
1651
1689
  }
1652
1690
  return n;
1653
1691
  }
1654
- function Pn(e, t, n, r) {
1655
- let i = H(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = kn(e, t), s = Fn(e, t, i, o), c = [`<${n} ${[
1692
+ function In(e, t, n, r) {
1693
+ let i = H(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = jn(e, t), s = Ln(e, t, i, o), c = [`<${n} ${[
1656
1694
  a ? `id="${V(a)}"` : void 0,
1657
1695
  `class="${r}"`,
1658
1696
  o ? `data-pastille="${V(o)}"` : void 0,
1659
1697
  s ? `style="${V(s)}"` : void 0
1660
1698
  ].filter((e) => e !== void 0).join(" ")}>`];
1661
1699
  if (i === "part" || i === "title") {
1662
- let r = Rn(e, t, i), a = Bn(e, t), o = r ? [On({
1700
+ let r = Bn(e, t, i), a = Hn(e, t), o = r ? [An({
1663
1701
  content: r,
1664
1702
  contextClass: a
1665
1703
  })] : [], s = () => {
1666
- o.length !== 0 && (c.push(Ln(o)), o = []);
1704
+ o.length !== 0 && (c.push(zn(o)), o = []);
1667
1705
  };
1668
1706
  return e(t).children().each((t, n) => {
1669
1707
  if (!I(n)) return;
1670
1708
  let r = H(n);
1671
1709
  if (!(r === "num" || r === "heading" || r === "content")) {
1672
1710
  if (r === "alinea") {
1673
- o.push(...Nn(e, n));
1711
+ o.push(...Fn(e, n));
1674
1712
  return;
1675
1713
  }
1676
1714
  s(), c.push(U(e, n));
@@ -1678,17 +1716,17 @@ function Pn(e, t, n, r) {
1678
1716
  }), s(), c.push(`</${n}>`), c.join("\n");
1679
1717
  }
1680
1718
  if (i === "article") {
1681
- let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = C(r) ?? {
1719
+ let r = N(e(t).children("num").first().text()), i = N(e(t).children("heading").first().text()), a = C(r) ?? {
1682
1720
  label: r,
1683
1721
  num: r
1684
1722
  }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${V(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${V(a.label)}${i ? ` : ${V(i)}` : ""}</p>`;
1685
- if (An(e, t)) {
1686
- let r = [On({
1723
+ if (Mn(e, t)) {
1724
+ let r = [An({
1687
1725
  content: o,
1688
- contextClass: Un(a.label)
1689
- }), ...Nn(e, t)];
1690
- c.push(En(r));
1691
- for (let n of Mn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1726
+ contextClass: Gn(a.label)
1727
+ }), ...Fn(e, t)];
1728
+ c.push(On(r));
1729
+ for (let n of Pn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1692
1730
  return c.push(`</${n}>`), c.join("\n");
1693
1731
  }
1694
1732
  c.push(o);
@@ -1701,26 +1739,26 @@ function Pn(e, t, n, r) {
1701
1739
  });
1702
1740
  let u = l.join("\n");
1703
1741
  if (i !== "article") {
1704
- let n = Cn(u, M(e(t).children("num").first().text())) ? "" : Sn(e, t);
1742
+ let n = Tn(u, N(e(t).children("num").first().text())) ? "" : wn(e, t);
1705
1743
  n && c.push(n);
1706
1744
  }
1707
- return c.push(o ? Tn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1745
+ return c.push(o ? Dn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1708
1746
  }
1709
- function Fn(e, t, n, r) {
1710
- let i = In(e(t).attr("style") ?? "", "font-family");
1711
- return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = xn(i, "text-align", "center")), i || void 0;
1747
+ function Ln(e, t, n, r) {
1748
+ let i = Rn(e(t).attr("style") ?? "", "font-family");
1749
+ return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = Cn(i, "text-align", "center")), i || void 0;
1712
1750
  }
1713
- function In(e, t) {
1751
+ function Rn(e, t) {
1714
1752
  return e.split(";").map((e) => e.trim()).filter(Boolean).filter((e) => !e.toLowerCase().startsWith(`${t.toLowerCase()}:`)).join(";");
1715
1753
  }
1716
- function Ln(e) {
1754
+ function zn(e) {
1717
1755
  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>`;
1718
1756
  }
1719
- function Rn(e, t, n) {
1720
- let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = zn(n), o = [];
1757
+ function Bn(e, t, n) {
1758
+ let r = N(e(t).children("num").first().text()), i = N(e(t).children("heading").first().text()), a = Vn(n), o = [];
1721
1759
  return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${V(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${V(i)}</span></p>`), o.join("\n");
1722
1760
  }
1723
- function zn(e) {
1761
+ function Vn(e) {
1724
1762
  switch (e) {
1725
1763
  case "part": return {
1726
1764
  num: "TCNumPartie",
@@ -1744,22 +1782,22 @@ function zn(e) {
1744
1782
  };
1745
1783
  }
1746
1784
  }
1747
- function Bn(e, t) {
1748
- let n = Hn(M(e(t).children("num").first().text()));
1785
+ function Hn(e, t) {
1786
+ let n = Wn(N(e(t).children("num").first().text()));
1749
1787
  if (n) return n;
1750
1788
  for (let n of e(t).parents().get()) {
1751
1789
  if (!I(n)) continue;
1752
1790
  let t = H(n);
1753
1791
  if (t !== "title" && t !== "part") continue;
1754
- let r = Hn(M(e(n).children("num").first().text()));
1792
+ let r = Wn(N(e(n).children("num").first().text()));
1755
1793
  if (r) return r;
1756
1794
  }
1757
1795
  }
1758
- function Vn(e, t) {
1759
- return Bn(e, t);
1796
+ function Un(e, t) {
1797
+ return Hn(e, t);
1760
1798
  }
1761
- function Hn(e) {
1762
- let [t, ...n] = M(e).split(/\s+/u);
1799
+ function Wn(e) {
1800
+ let [t, ...n] = N(e).split(/\s+/u);
1763
1801
  if (!t || n.length === 0) return;
1764
1802
  let r = t.toLocaleLowerCase("fr-FR");
1765
1803
  if ([
@@ -1769,10 +1807,10 @@ function Hn(e) {
1769
1807
  "section"
1770
1808
  ].includes(r)) return `${r}-${n.join("_")}`;
1771
1809
  }
1772
- function Un(e) {
1773
- return `article-${M(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1810
+ function Gn(e) {
1811
+ return `article-${N(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1774
1812
  }
1775
- function Wn(e) {
1813
+ function Kn(e) {
1776
1814
  switch (e) {
1777
1815
  case "part": return "partie";
1778
1816
  case "book": return "livre";
@@ -1784,11 +1822,11 @@ function Wn(e) {
1784
1822
  default: return;
1785
1823
  }
1786
1824
  }
1787
- function Gn(e, t) {
1788
- return [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1825
+ function qn(e, t) {
1826
+ return [N(e(t).children("num").first().text()), N(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1789
1827
  }
1790
- function Kn(e, t) {
1791
- let n = M(e(t).children("num").first().text()), r = M(e(t).children("heading").first().text()), i = C(n) ?? {
1828
+ function Jn(e, t) {
1829
+ let n = N(e(t).children("num").first().text()), r = N(e(t).children("heading").first().text()), i = C(n) ?? {
1792
1830
  label: n,
1793
1831
  num: n
1794
1832
  };
@@ -1798,24 +1836,24 @@ function Kn(e, t) {
1798
1836
  type: "article"
1799
1837
  };
1800
1838
  }
1801
- function qn(e, t) {
1839
+ function Yn(e, t) {
1802
1840
  e.items.push(...t.items);
1803
1841
  }
1804
- function Jn(e, t) {
1842
+ function Xn(e, t) {
1805
1843
  let n = { items: [] };
1806
1844
  return e(t).children().each((t, r) => {
1807
1845
  if (!I(r)) return;
1808
1846
  let i = H(r);
1809
1847
  if (i === "article") {
1810
- n.items.push(Kn(e, r));
1848
+ n.items.push(Jn(e, r));
1811
1849
  return;
1812
1850
  }
1813
- let a = Wn(i);
1851
+ let a = Kn(i);
1814
1852
  if (!a) {
1815
- qn(n, Jn(e, r));
1853
+ Yn(n, Xn(e, r));
1816
1854
  return;
1817
1855
  }
1818
- let o = Gn(e, r), s = Jn(e, r);
1856
+ let o = qn(e, r), s = Xn(e, r);
1819
1857
  !o && s.items.length === 0 || n.items.push({
1820
1858
  ...s,
1821
1859
  id: e(r).attr("eId") ?? e(r).attr("GUID"),
@@ -1824,27 +1862,27 @@ function Jn(e, t) {
1824
1862
  });
1825
1863
  }), n;
1826
1864
  }
1827
- function Yn(e) {
1865
+ function Zn(e) {
1828
1866
  let t = e("body").first().get(0);
1829
- return t === void 0 ? { items: [] } : Jn(e, t);
1867
+ return t === void 0 ? { items: [] } : Xn(e, t);
1830
1868
  }
1831
- function Xn(e) {
1869
+ function Qn(e) {
1832
1870
  return e("FRBRExpression FRBRdate[name=\"#depot\"]").attr("date") ?? e("FRBRWork FRBRdate[name=\"#presentation\"]").attr("date");
1833
1871
  }
1834
- function Zn(e) {
1835
- e("table").each((t, n) => gn(e, n));
1872
+ function $n(e) {
1873
+ e("table").each((t, n) => vn(e, n));
1836
1874
  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>"];
1837
- return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(mn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1838
- I(n) && r.push(H(n) === "article" ? Pn(e, n, "article", "akn-article") : U(e, n));
1875
+ return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(gn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1876
+ I(n) && r.push(H(n) === "article" ? In(e, n, "article", "akn-article") : U(e, n));
1839
1877
  }), r.push("</section></div>"), r.join("\n");
1840
1878
  }
1841
- function Qn(e) {
1879
+ function er(e) {
1842
1880
  let t = b(e, { xml: {
1843
1881
  decodeEntities: !1,
1844
1882
  lowerCaseTags: !1,
1845
1883
  lowerCaseAttributeNames: !1,
1846
1884
  xmlMode: !0
1847
- } }), n = Xn(t), r = Zn(t);
1885
+ } }), n = Qn(t), r = $n(t);
1848
1886
  return {
1849
1887
  sourceFormat: "akoma-ntoso",
1850
1888
  documentDate: n,
@@ -1852,13 +1890,13 @@ function Qn(e) {
1852
1890
  linkedHtml: r
1853
1891
  };
1854
1892
  }
1855
- function $n(e) {
1856
- return er(b(e));
1893
+ function tr(e) {
1894
+ return nr(b(e));
1857
1895
  }
1858
- function er(e) {
1896
+ function nr(e) {
1859
1897
  let t = [];
1860
1898
  return e("article.akn-article").each((n, r) => {
1861
- let i = e(r).find("p.TCNumArticle").first().get(0), a = M(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 = Tt(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1899
+ 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 = Tt(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1862
1900
  t.push({
1863
1901
  id: s,
1864
1902
  label: o.label,
@@ -1871,23 +1909,23 @@ function er(e) {
1871
1909
  });
1872
1910
  }), t;
1873
1911
  }
1874
- function tr(e) {
1912
+ function rr(e) {
1875
1913
  let t = b(e);
1876
1914
  return {
1877
- articles: er(t),
1915
+ articles: nr(t),
1878
1916
  htmlWithLinks: t.html()
1879
1917
  };
1880
1918
  }
1881
- async function nr(e, t) {
1882
- let n = new Ce("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => b(e, { xml: {
1919
+ async function ir(e, t) {
1920
+ let n = new ye("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => b(e, { xml: {
1883
1921
  decodeEntities: !1,
1884
1922
  lowerCaseTags: !1,
1885
1923
  lowerCaseAttributeNames: !1,
1886
1924
  xmlMode: !0
1887
- } })), i = t.date ?? Xn(r), a = n.timeSync("renderAknHtml", () => Zn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ct(a, {
1925
+ } })), i = t.date ?? Qn(r), a = n.timeSync("renderAknHtml", () => $n(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ct(a, {
1888
1926
  ...t,
1889
1927
  date: i
1890
- }, i)), s = n.timeSync("extractRenderedAknArticles", () => $n(a)), c = n.timeSync("injectHiddenArticleSummary", () => Et(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => tr(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Yn(r)), p = n.timeSync("buildParsedDocument", () => an("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, cn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1928
+ }, i)), s = n.timeSync("extractRenderedAknArticles", () => tr(a)), c = n.timeSync("injectHiddenArticleSummary", () => Et(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => rr(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Zn(r)), p = n.timeSync("buildParsedDocument", () => sn("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, un(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1891
1929
  return n.log({
1892
1930
  articleCount: p.articles.length,
1893
1931
  blockCount: p.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1895,8 +1933,8 @@ async function nr(e, t) {
1895
1933
  targetDirectiveCount: p.directives.filter((e) => e.targetIds !== void 0).length
1896
1934
  }), p;
1897
1935
  }
1898
- async function rr(e, t) {
1899
- let n = Qn(e), r = t.date ?? n.documentDate;
1936
+ async function ar(e, t) {
1937
+ let n = er(e), r = t.date ?? n.documentDate;
1900
1938
  return {
1901
1939
  sourceFormat: "akoma-ntoso",
1902
1940
  documentDate: r,
@@ -1906,14 +1944,14 @@ async function rr(e, t) {
1906
1944
  }
1907
1945
  //#endregion
1908
1946
  //#region src/lib/server/assemblee_document_search.ts
1909
- var ir = /\bexpos[ée]\s+des\s+motifs\b/giu, ar = /\barticle\s+(?:premier|1er|\d+)/iu;
1910
- function or(e) {
1947
+ var or = /\bexpos[ée]\s+des\s+motifs\b/giu, sr = /\barticle\s+(?:premier|1er|\d+)/iu;
1948
+ function cr(e) {
1911
1949
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
1912
1950
  }
1913
- function sr(e) {
1914
- let t = or(b(e).text()), n = [...t.matchAll(ir)], r = /* @__PURE__ */ new Set(), i = [];
1951
+ function lr(e) {
1952
+ let t = cr(b(e).text()), n = [...t.matchAll(or)], r = /* @__PURE__ */ new Set(), i = [];
1915
1953
  for (let [e, a] of n.entries()) {
1916
- let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = ar.exec(s), l = or(s.slice(0, c?.index ?? s.length));
1954
+ let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = sr.exec(s), l = cr(s.slice(0, c?.index ?? s.length));
1917
1955
  if (l.length < 20 || r.has(l)) continue;
1918
1956
  r.add(l);
1919
1957
  let u = `expose-des-motifs-${e + 1}`;
@@ -1929,8 +1967,8 @@ function sr(e) {
1929
1967
  }
1930
1968
  return i;
1931
1969
  }
1932
- async function cr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1933
- let i = await un(t, {
1970
+ async function ur({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1971
+ let i = await fn(t, {
1934
1972
  date: e,
1935
1973
  includeDirectiveAnalysis: !1,
1936
1974
  linkBaseUrl: n,
@@ -1939,7 +1977,7 @@ async function cr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1939
1977
  });
1940
1978
  return {
1941
1979
  items: [...i.articles.map((e) => {
1942
- let t = or(e.directiveText || e.text);
1980
+ let t = cr(e.directiveText || e.text);
1943
1981
  if (t) return {
1944
1982
  anchor: e.id,
1945
1983
  articleNumber: e.num ?? null,
@@ -1949,17 +1987,17 @@ async function cr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1949
1987
  label: e.label,
1950
1988
  title: e.title ?? null
1951
1989
  };
1952
- }).filter((e) => e !== void 0), ...sr(t)],
1990
+ }).filter((e) => e !== void 0), ...lr(t)],
1953
1991
  tableOfContents: i.tableOfContents
1954
1992
  };
1955
1993
  }
1956
- function lr(e, t) {
1957
- return ke("sha256").update(JSON.stringify({
1994
+ function dr(e, t) {
1995
+ return Oe("sha256").update(JSON.stringify({
1958
1996
  item: e,
1959
1997
  metadata: t
1960
1998
  })).digest("hex");
1961
1999
  }
1962
- function ur(e) {
2000
+ function fr(e) {
1963
2001
  if (typeof e != "object" || !e) return;
1964
2002
  let t = e.cycleDeVie?.chrono;
1965
2003
  if (t !== void 0) for (let e of [
@@ -1974,11 +2012,11 @@ function ur(e) {
1974
2012
  }
1975
2013
  //#endregion
1976
2014
  //#region src/lib/server/senat_amendment_search.ts
1977
- function dr(e) {
2015
+ function pr(e) {
1978
2016
  return e?.trim() ? b(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1979
2017
  }
1980
- function fr({ dispositifHtml: e, objetHtml: t }) {
1981
- let n = dr(e), r = dr(t);
2018
+ function mr({ dispositifHtml: e, objetHtml: t }) {
2019
+ let n = pr(e), r = pr(t);
1982
2020
  return [...n ? [{
1983
2021
  content: n,
1984
2022
  itemKind: "dispositif",
@@ -1989,8 +2027,8 @@ function fr({ dispositifHtml: e, objetHtml: t }) {
1989
2027
  label: "Objet"
1990
2028
  }] : []];
1991
2029
  }
1992
- function pr(e, t) {
1993
- return ke("sha256").update(JSON.stringify({
2030
+ function hr(e, t) {
2031
+ return Oe("sha256").update(JSON.stringify({
1994
2032
  item: e,
1995
2033
  metadata: t
1996
2034
  })).digest("hex");
@@ -2004,16 +2042,16 @@ function W(e, t) {
2004
2042
  type: "amendment_action_directive"
2005
2043
  };
2006
2044
  }
2007
- function mr(e, t) {
2045
+ function gr(e, t) {
2008
2046
  return {
2009
2047
  type: e === "start" ? "head_of_target" : "tail_after_target",
2010
2048
  unit: t ? me(t) : "article"
2011
2049
  };
2012
2050
  }
2013
- function hr(e) {
2051
+ function _r(e) {
2014
2052
  return e === "start" ? "insert_before" : "insert_after";
2015
2053
  }
2016
- var gr = D(T("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = O(l, w([T("les?\\s+", { flags: "i" }), i], { value: (e) => e[1] }), i, o), _r = O(w([T("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
2054
+ var vr = T(E("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = w(l, k([E("les?\\s+", { flags: "i" }), i], { value: (e) => e[1] }), i, o), yr = w(k([E("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
2017
2055
  let t = e[1];
2018
2056
  return {
2019
2057
  targetReference: t,
@@ -2022,58 +2060,58 @@ var gr = D(T("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]
2022
2060
  unit: me(t)
2023
2061
  }
2024
2062
  };
2025
- } }), w([t], { value: (e) => ({ targetScope: e[0] }) })), K = D(w([
2026
- D(T("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2027
- D(T("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2063
+ } }), k([t], { value: (e) => ({ targetScope: e[0] }) })), K = T(k([
2064
+ T(E("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2065
+ T(E("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2028
2066
  G,
2029
- D(T("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
2067
+ T(E("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
2030
2068
  ], { value: (e, t) => ({
2031
2069
  reference: e[2],
2032
2070
  text: t.text()
2033
- }) }), { default: null }), vr = D(T(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${De})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
2071
+ }) }), { default: null }), br = T(E(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${Te})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
2034
2072
  function q(e) {
2035
2073
  return e?.text ?? "";
2036
2074
  }
2037
- function yr(e) {
2075
+ function xr(e) {
2038
2076
  return { citation: ae(e.position()) };
2039
2077
  }
2040
- var J = O(w([f], { value: (e) => ({ citation: e[0] }) }), T("\\S[\\s\\S]*", { value: (e, t) => yr(t) })), br = T("\\S[\\s\\S]*", { value: (e, t) => yr(t) }), Y = T("[^:«“\"]*(?::\\s*)?", { flags: "i" }), xr = T("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
2078
+ var J = w(k([f], { value: (e) => ({ citation: e[0] }) }), E("\\S[\\s\\S]*", { value: (e, t) => xr(t) })), Sr = E("\\S[\\s\\S]*", { value: (e, t) => xr(t) }), Y = E("[^:«“\"]*(?::\\s*)?", { flags: "i" }), Cr = E("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
2041
2079
  flags: "i",
2042
- value: (e, t) => yr(t)
2043
- }), Sr = T("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
2080
+ value: (e, t) => xr(t)
2081
+ }), wr = E("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
2044
2082
  flags: "i",
2045
- value: (e, t) => yr(t)
2046
- }), Cr = T("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
2083
+ value: (e, t) => xr(t)
2084
+ }), Tr = E("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
2047
2085
  flags: "i",
2048
- value: (e, t) => yr(t)
2049
- }), wr = O(w([f], { value: (e) => ({ citation: e[0] }) }), xr), Tr = O(w([f], { value: (e) => ({ citation: e[0] }) }), Cr), Er = w([T(`${n}s?\\s*:?\\s*`, { flags: "i" }), wr], { value: (e) => e[1] }), Dr = w([T(`${r}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), Tr], { value: (e) => e[1] }), Or = O(w([f], { value: (e) => ({ citation: e[0] }) }), Sr), kr = w([
2050
- vr,
2051
- T(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2052
- Or
2053
- ], { value: (e) => e[2] }), Ar = w([
2054
- vr,
2055
- T(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2056
- O(w([f], { value: (e) => ({ citation: e[0] }) }), br)
2086
+ value: (e, t) => xr(t)
2087
+ }), Er = w(k([f], { value: (e) => ({ citation: e[0] }) }), Cr), Dr = w(k([f], { value: (e) => ({ citation: e[0] }) }), Tr), Or = k([E(`${n}s?\\s*:?\\s*`, { flags: "i" }), Er], { value: (e) => e[1] }), kr = k([E(`${r}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), Dr], { value: (e) => e[1] }), Ar = w(k([f], { value: (e) => ({ citation: e[0] }) }), wr), jr = k([
2088
+ br,
2089
+ E(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2090
+ Ar
2091
+ ], { value: (e) => e[2] }), Mr = k([
2092
+ br,
2093
+ E(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2094
+ w(k([f], { value: (e) => ({ citation: e[0] }) }), Sr)
2057
2095
  ], { value: (e) => e[2] });
2058
2096
  function X(e) {
2059
2097
  return e?.reference;
2060
2098
  }
2061
- var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
2099
+ var Nr = k([vr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
2062
2100
  contextText: e[0],
2063
2101
  kind: "delete_article"
2064
- }) }), Mr = w([
2102
+ }) }), Pr = k([
2065
2103
  K,
2066
- T("supprimer", { flags: "i" }),
2067
- D(w([k, G], { value: (e) => e[1] }), { default: null }),
2068
- D(w([k, Ar], { value: (e) => e[1] }), { default: null })
2104
+ E("supprimer", { flags: "i" }),
2105
+ T(k([D, G], { value: (e) => e[1] }), { default: null }),
2106
+ T(k([D, Mr], { value: (e) => e[1] }), { default: null })
2069
2107
  ], { value: (e, t) => W(t, {
2070
2108
  contextText: q(e[0]),
2071
2109
  kind: "delete_portion",
2072
2110
  targetCitation: e[3]?.citation ?? void 0,
2073
2111
  targetReference: e[2] ?? X(e[0])
2074
- }) }), Nr = w([
2112
+ }) }), Fr = k([
2075
2113
  K,
2076
- O(T("r[eé]diger\\s+ainsi", { flags: "i" }), T("r[eé]tablir", { flags: "i" })),
2114
+ w(E("r[eé]diger\\s+ainsi", { flags: "i" }), E("r[eé]tablir", { flags: "i" })),
2077
2115
  Y,
2078
2116
  J
2079
2117
  ], { value: (e, t) => W(t, {
@@ -2081,52 +2119,52 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2081
2119
  kind: "rewrite_portion",
2082
2120
  replacementCitation: e[3].citation,
2083
2121
  targetReference: X(e[0])
2084
- }) }), Pr = w([
2122
+ }) }), Ir = k([
2085
2123
  K,
2086
- O(T("substituer", { flags: "i" }), T("remplacer", { flags: "i" })),
2087
- k,
2088
- vr,
2089
- Er,
2090
- T("\\s*,?\\s*"),
2091
- D(T("par\\s+", { flags: "i" }), { default: "" }),
2092
- Dr
2124
+ w(E("substituer", { flags: "i" }), E("remplacer", { flags: "i" })),
2125
+ D,
2126
+ br,
2127
+ Or,
2128
+ E("\\s*,?\\s*"),
2129
+ T(E("par\\s+", { flags: "i" }), { default: "" }),
2130
+ kr
2093
2131
  ], { value: (e, t) => W(t, {
2094
2132
  contextText: q(e[0]),
2095
2133
  kind: "replace",
2096
2134
  replacementCitation: e[7].citation,
2097
2135
  targetCitation: e[4].citation,
2098
2136
  targetReference: X(e[0])
2099
- }) }), Fr = w([
2137
+ }) }), Lr = k([
2100
2138
  K,
2101
- T("substituer", { flags: "i" }),
2102
- k,
2103
- D(T("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
2139
+ E("substituer", { flags: "i" }),
2140
+ D,
2141
+ T(E("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
2104
2142
  G,
2105
- T("[\\s\\S]*?(?=[«“\"]|$)"),
2143
+ E("[\\s\\S]*?(?=[«“\"]|$)"),
2106
2144
  J
2107
2145
  ], { value: (e, t) => W(t, {
2108
2146
  contextText: q(e[0]),
2109
2147
  kind: "rewrite_portion",
2110
2148
  replacementCitation: e[6].citation,
2111
2149
  targetReference: e[4] ?? X(e[0])
2112
- }) }), Ir = w([
2150
+ }) }), Rr = k([
2113
2151
  c,
2114
- k,
2115
- T("l['’ ]article", { flags: "i" }),
2116
- T("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2117
- T("ins[eé]rer", { flags: "i" }),
2152
+ D,
2153
+ E("l['’ ]article", { flags: "i" }),
2154
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2155
+ E("ins[eé]rer", { flags: "i" }),
2118
2156
  Y,
2119
2157
  J
2120
2158
  ], { value: (e, t) => W(t, {
2121
2159
  contextText: "",
2122
2160
  insertCitation: e[6].citation,
2123
2161
  kind: e[0] === "before" ? "insert_article_before" : "insert_article_after"
2124
- }) }), Lr = w([
2162
+ }) }), zr = k([
2125
2163
  c,
2126
- k,
2164
+ D,
2127
2165
  G,
2128
- T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2129
- O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
2166
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2167
+ w(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
2130
2168
  Y,
2131
2169
  J
2132
2170
  ], { value: (e, t) => W(t, {
@@ -2134,23 +2172,23 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2134
2172
  insertCitation: e[6].citation,
2135
2173
  kind: S(e[0]),
2136
2174
  targetReference: e[2]
2137
- }) }), Rr = w([
2175
+ }) }), Br = k([
2138
2176
  c,
2139
- k,
2140
- T("l['’ ]alin[eé]a", { flags: "i" }),
2141
- T("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2142
- T("ins[eé]rer", { flags: "i" }),
2177
+ D,
2178
+ E("l['’ ]alin[eé]a", { flags: "i" }),
2179
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2180
+ E("ins[eé]rer", { flags: "i" }),
2143
2181
  Y,
2144
2182
  J
2145
2183
  ], { value: (e, t) => W(t, {
2146
2184
  contextText: "",
2147
2185
  insertCitation: e[6].citation,
2148
2186
  kind: S(e[0])
2149
- }) }), zr = w([
2187
+ }) }), Vr = k([
2150
2188
  K,
2151
2189
  te,
2152
- T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2153
- O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
2190
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2191
+ w(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
2154
2192
  Y,
2155
2193
  J
2156
2194
  ], { value: (e, t) => {
@@ -2158,32 +2196,32 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2158
2196
  return W(t, {
2159
2197
  contextText: q(n),
2160
2198
  insertCitation: e[5].citation,
2161
- kind: hr(i),
2199
+ kind: _r(i),
2162
2200
  targetReference: r,
2163
- targetScope: mr(i, r)
2201
+ targetScope: gr(i, r)
2164
2202
  });
2165
- } }), Br = w([
2203
+ } }), Hr = k([
2166
2204
  K,
2167
2205
  c,
2168
- k,
2169
- kr,
2170
- T("[\\s\\S]*?(?=ins[eé]rer)"),
2171
- T("ins[eé]rer", { flags: "i" }),
2172
- k,
2173
- Dr
2206
+ D,
2207
+ jr,
2208
+ E("[\\s\\S]*?(?=ins[eé]rer)"),
2209
+ E("ins[eé]rer", { flags: "i" }),
2210
+ D,
2211
+ kr
2174
2212
  ], { value: (e, t) => W(t, {
2175
2213
  contextText: q(e[0]),
2176
2214
  insertCitation: e[7].citation,
2177
2215
  kind: S(e[1]),
2178
2216
  targetCitation: e[3].citation,
2179
2217
  targetReference: X(e[0])
2180
- }) }), Vr = w([
2218
+ }) }), Ur = k([
2181
2219
  K,
2182
2220
  c,
2183
- k,
2221
+ D,
2184
2222
  G,
2185
- T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2186
- O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
2223
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2224
+ w(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
2187
2225
  Y,
2188
2226
  J
2189
2227
  ], { value: (e, t) => W(t, {
@@ -2191,29 +2229,29 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2191
2229
  insertCitation: e[7].citation,
2192
2230
  kind: S(e[1]),
2193
2231
  targetReference: X(e[0]) ?? e[3]
2194
- }) }), Hr = O(zr, Ir, Lr, Rr, Fr, w([
2232
+ }) }), Wr = w(Vr, Rr, zr, Br, Lr, k([
2195
2233
  K,
2196
2234
  c,
2197
- k,
2198
- kr,
2199
- T("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2200
- O(w([
2201
- T("supprimer", {
2235
+ D,
2236
+ jr,
2237
+ E("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2238
+ w(k([
2239
+ E("supprimer", {
2202
2240
  flags: "i",
2203
2241
  value: "delete_portion"
2204
2242
  }),
2205
- k,
2206
- _r
2243
+ D,
2244
+ yr
2207
2245
  ], { value: (e) => ({
2208
2246
  kind: e[0],
2209
2247
  ...e[2]
2210
- }) }), w([
2211
- T("r[eé]diger\\s+ainsi", {
2248
+ }) }), k([
2249
+ E("r[eé]diger\\s+ainsi", {
2212
2250
  flags: "i",
2213
2251
  value: "rewrite_portion"
2214
2252
  }),
2215
- k,
2216
- _r,
2253
+ D,
2254
+ yr,
2217
2255
  Y,
2218
2256
  J
2219
2257
  ], { value: (e) => ({
@@ -2231,10 +2269,10 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2231
2269
  targetReference: X(e[0]) ?? n.targetReference,
2232
2270
  targetScope: n.targetScope
2233
2271
  });
2234
- } }), Br, Vr, w([
2235
- gr,
2236
- T("ins[eé]rer", { flags: "i" }),
2237
- T(`[\\s\\S]*?(?=${u})`, { flags: "i" }),
2272
+ } }), Hr, Ur, k([
2273
+ vr,
2274
+ E("ins[eé]rer", { flags: "i" }),
2275
+ E(`[\\s\\S]*?(?=${u})`, { flags: "i" }),
2238
2276
  c,
2239
2277
  Y,
2240
2278
  f,
@@ -2245,10 +2283,10 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2245
2283
  insertCitation: e[8],
2246
2284
  kind: S(e[3]),
2247
2285
  targetCitation: e[6]
2248
- }) }), Pr, Nr, w([
2286
+ }) }), Ir, Fr, k([
2249
2287
  K,
2250
- T("compl[eé]ter", { flags: "i" }),
2251
- D(w([k, G], { value: (e) => e[1] }), { default: null }),
2288
+ E("compl[eé]ter", { flags: "i" }),
2289
+ T(k([D, G], { value: (e) => e[1] }), { default: null }),
2252
2290
  Y,
2253
2291
  J
2254
2292
  ], { value: (e, t) => W(t, {
@@ -2256,16 +2294,16 @@ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2256
2294
  insertCitation: e[4].citation,
2257
2295
  kind: "insert_after",
2258
2296
  targetReference: e[2] ?? X(e[0])
2259
- }) }), jr, Mr);
2297
+ }) }), Nr, Pr);
2260
2298
  //#endregion
2261
2299
  //#region src/lib/server/parsed_amendments.ts
2262
- function Ur(e) {
2300
+ function Gr(e) {
2263
2301
  return e.replace(/\s+/gu, " ").trim();
2264
2302
  }
2265
- function Wr(e) {
2266
- return e.split(/\n/gu).map(Ur).filter(Boolean).join("\n");
2303
+ function Kr(e) {
2304
+ return e.split(/\n/gu).map(Gr).filter(Boolean).join("\n");
2267
2305
  }
2268
- function Gr(e, t) {
2306
+ function qr(e, t) {
2269
2307
  let { start: n, stop: r } = t;
2270
2308
  for (; n < r && /\s/u.test(e[n]);) n++;
2271
2309
  for (; r > n && /\s/u.test(e[r - 1]);) r--;
@@ -2274,16 +2312,16 @@ function Gr(e, t) {
2274
2312
  stop: r
2275
2313
  } : null;
2276
2314
  }
2277
- function Kr(e, t) {
2278
- return _e(ve(e), t);
2315
+ function Jr(e, t) {
2316
+ return ve(_e(e), t);
2279
2317
  }
2280
- function qr(e) {
2318
+ function Yr(e) {
2281
2319
  return e === "before_article" || e === "on_article" || e === "after_article" ? e : "unknown";
2282
2320
  }
2283
- function Jr(e) {
2321
+ function Xr(e) {
2284
2322
  return {
2285
2323
  articleLabel: e.targetArticleLabel ?? null,
2286
- targetPosition: qr(e.targetPosition),
2324
+ targetPosition: Yr(e.targetPosition),
2287
2325
  alinea: e.targetAlinea ?? null,
2288
2326
  alineaLabel: e.targetAlineaLabel ?? null,
2289
2327
  subdivisionSourceId: e.targetSubdivisionSourceId ?? null,
@@ -2298,36 +2336,36 @@ function Z(e) {
2298
2336
  sourceText: e.text
2299
2337
  };
2300
2338
  }
2301
- function Yr(e) {
2339
+ function Zr(e) {
2302
2340
  return {
2303
2341
  ...e.originalTransformation === void 0 ? {} : { sourceOriginalTransformation: e.originalTransformation },
2304
2342
  sourcePosition: e.position,
2305
2343
  sourceText: e.text
2306
2344
  };
2307
2345
  }
2308
- function Xr(e) {
2346
+ function Qr(e) {
2309
2347
  return {
2310
2348
  ...e?.originalTransformation === void 0 ? {} : { dispositifOriginalTransformation: e.originalTransformation },
2311
2349
  ...e === null ? {} : { dispositifPosition: e.position },
2312
2350
  dispositifText: e?.text ?? null
2313
2351
  };
2314
2352
  }
2315
- function Zr(e, t, n, r = Wr(e.slice(n.start, n.stop))) {
2353
+ function $r(e, t, n, r = Kr(e.slice(n.start, n.stop))) {
2316
2354
  return {
2317
- originalTransformation: Kr(t, n),
2355
+ originalTransformation: Jr(t, n),
2318
2356
  position: n,
2319
2357
  text: r
2320
2358
  };
2321
2359
  }
2322
- function Qr(e) {
2360
+ function ei(e) {
2323
2361
  let t = e.dispositifHtml ?? e.dispositifText;
2324
2362
  if (!t) return null;
2325
- let n = e.dispositifHtml ? xe()(t) : ge(t), r = n.output, i = Gr(r, {
2363
+ let n = e.dispositifHtml ? ge()(t) : O(t), r = n.output, i = qr(r, {
2326
2364
  start: 0,
2327
2365
  stop: r.length
2328
2366
  });
2329
2367
  return {
2330
- dispositif: i === null ? null : Zr(r, n, i),
2368
+ dispositif: i === null ? null : $r(r, n, i),
2331
2369
  simplifiedText: r,
2332
2370
  transformation: n
2333
2371
  };
@@ -2347,7 +2385,7 @@ function Q(e) {
2347
2385
  for (let t of a(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2348
2386
  return [];
2349
2387
  }
2350
- function $r(e, t) {
2388
+ function ti(e, t) {
2351
2389
  let n = Q(t);
2352
2390
  return {
2353
2391
  ...e,
@@ -2355,11 +2393,11 @@ function $r(e, t) {
2355
2393
  ...n.length > 0 ? { alineas: n } : {}
2356
2394
  };
2357
2395
  }
2358
- function ei(e) {
2396
+ function ni(e) {
2359
2397
  return e.replace(/^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*/iu, "").replace(/^\s*(?:\d+°|[a-z]\))\s*/iu, "").trim();
2360
2398
  }
2361
- function ti(e, t) {
2362
- let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(ei(t.text));
2399
+ function ri(e, t) {
2400
+ let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(ni(t.text));
2363
2401
  if (!n) return null;
2364
2402
  let r = n[1] === void 0 ? 1 : Number.parseInt(n[1], 10);
2365
2403
  return !Number.isFinite(r) || r < 1 ? null : {
@@ -2368,25 +2406,25 @@ function ti(e, t) {
2368
2406
  alineas: [r]
2369
2407
  };
2370
2408
  }
2371
- function ni(e, t) {
2409
+ function ii(e, t) {
2372
2410
  if (e) return e.unit === "article" && t.alinea !== null ? {
2373
2411
  ...e,
2374
2412
  unit: "alinéa"
2375
2413
  } : e;
2376
2414
  }
2377
- function ri(e) {
2378
- return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(ei(e.text));
2415
+ function ai(e) {
2416
+ return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(ni(e.text));
2379
2417
  }
2380
- function ii(e, t, n, r) {
2381
- return Zr(e, t, {
2418
+ function oi(e, t, n, r) {
2419
+ return $r(e, t, {
2382
2420
  start: n.position.start,
2383
2421
  stop: r.position.stop
2384
2422
  });
2385
2423
  }
2386
- function ai(e) {
2424
+ function si(e) {
2387
2425
  return /^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*(?!alin[eé]a\b)/iu.test(e.text);
2388
2426
  }
2389
- function oi(e, t) {
2427
+ function ci(e, t) {
2390
2428
  let n = { ...t.position };
2391
2429
  function r(t) {
2392
2430
  let r = t.exec(e.slice(n.start, n.stop));
@@ -2395,29 +2433,29 @@ function oi(e, t) {
2395
2433
  stop: n.stop
2396
2434
  });
2397
2435
  }
2398
- 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), Gr(e, n);
2436
+ 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), qr(e, n);
2399
2437
  }
2400
- function si(e) {
2438
+ function li(e) {
2401
2439
  return p(e);
2402
2440
  }
2403
- function ci(e, t) {
2404
- return Hr(new E(e.slice(0, t.stop), t.start)) ?? null;
2441
+ function ui(e, t) {
2442
+ return Wr(new A(e.slice(0, t.stop), t.start)) ?? null;
2405
2443
  }
2406
2444
  function $(e, t, n) {
2407
- if (n) return Zr(e, t, n.position, Wr(ue(e, n)));
2445
+ if (n) return $r(e, t, n.position, Kr(ue(e, n)));
2408
2446
  }
2409
- function li(e, t) {
2447
+ function di(e, t) {
2410
2448
  if (!e) return;
2411
2449
  let n = structuredClone(e);
2412
- for (let e of g(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Kr(t, e.position));
2450
+ for (let e of g(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Jr(t, e.position));
2413
2451
  return n;
2414
2452
  }
2415
- function ui(e, t, n, r) {
2416
- let i = oi(e, n);
2453
+ function fi(e, t, n, r) {
2454
+ let i = ci(e, n);
2417
2455
  if (!i) return null;
2418
- let a = ci(e, i);
2456
+ let a = ui(e, i);
2419
2457
  if (!a) return null;
2420
- let o = Zr(e, t, i), s = li(a.targetReference, t), c = $r(r, s), l = si(o.text);
2458
+ let o = $r(e, t, i), s = di(a.targetReference, t), c = ti(r, s), l = li(o.text);
2421
2459
  if (a.kind === "delete_article") return {
2422
2460
  kind: "delete_article",
2423
2461
  ...Z(o),
@@ -2435,7 +2473,7 @@ function ui(e, t, n, r) {
2435
2473
  },
2436
2474
  targetOccurrence: l,
2437
2475
  targetReference: s,
2438
- targetScope: ni(a.targetScope, c)
2476
+ targetScope: ii(a.targetScope, c)
2439
2477
  };
2440
2478
  }
2441
2479
  if (a.kind === "rewrite_portion") {
@@ -2452,7 +2490,7 @@ function ui(e, t, n, r) {
2452
2490
  },
2453
2491
  targetOccurrence: l,
2454
2492
  targetReference: s,
2455
- targetScope: ni(a.targetScope, c),
2493
+ targetScope: ii(a.targetScope, c),
2456
2494
  replacementCitation: n,
2457
2495
  replacementText: n.text
2458
2496
  };
@@ -2507,19 +2545,19 @@ function ui(e, t, n, r) {
2507
2545
  targetReference: s,
2508
2546
  insertCitation: n,
2509
2547
  insertText: n.text,
2510
- targetScope: ni(a.targetScope, c)
2548
+ targetScope: ii(a.targetScope, c)
2511
2549
  };
2512
2550
  }
2513
2551
  return null;
2514
2552
  }
2515
- function di(e, t) {
2553
+ function pi(e, t) {
2516
2554
  let n = [], r = 0, i = 0;
2517
2555
  function a(r) {
2518
- let a = Gr(e, {
2556
+ let a = qr(e, {
2519
2557
  start: i,
2520
2558
  stop: r
2521
2559
  });
2522
- a !== null && n.push(Zr(e, t, a));
2560
+ a !== null && n.push($r(e, t, a));
2523
2561
  }
2524
2562
  function o(t) {
2525
2563
  let n = Math.max(e.lastIndexOf("\n", t - 1), e.lastIndexOf("\r", t - 1));
@@ -2537,7 +2575,7 @@ function di(e, t) {
2537
2575
  continue;
2538
2576
  }
2539
2577
  if (r > 0) continue;
2540
- 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) && ri({
2578
+ 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) && ai({
2541
2579
  originalTransformation: void 0,
2542
2580
  position: {
2543
2581
  start: i,
@@ -2549,8 +2587,8 @@ function di(e, t) {
2549
2587
  }
2550
2588
  return a(e.length), n;
2551
2589
  }
2552
- function fi(e) {
2553
- let t = Qr(e), n = t?.dispositif ?? null, r = Xr(n), i = [], a = [], o = Jr(e);
2590
+ function mi(e) {
2591
+ let t = ei(e), n = t?.dispositif ?? null, r = Qr(n), i = [], a = [], o = Xr(e);
2554
2592
  if (e.sourceFormat === "senat-ameli" && e.sourceKind === "S") return i.push({
2555
2593
  code: "unsupported_sub_amendment",
2556
2594
  message: "Les sous-amendements ne sont pas encore projetés."
@@ -2568,9 +2606,9 @@ function fi(e) {
2568
2606
  });
2569
2607
  else {
2570
2608
  let { simplifiedText: e, transformation: r } = t, s = o, c = null;
2571
- for (let t of di(e, r)) {
2572
- ai(t) && (s = o, c = null);
2573
- let n = c ? ii(e, r, c, t) : t, i = ui(e, r, n, s);
2609
+ for (let t of pi(e, r)) {
2610
+ si(t) && (s = o, c = null);
2611
+ let n = c ? oi(e, r, c, t) : t, i = fi(e, r, n, s);
2574
2612
  if (i) {
2575
2613
  a.push(i), c = null, (i.target.alinea !== null || i.target.alineas) && (s = i.target);
2576
2614
  continue;
@@ -2579,12 +2617,12 @@ function fi(e) {
2579
2617
  c = n;
2580
2618
  continue;
2581
2619
  }
2582
- let l = ti(o, t);
2620
+ let l = ri(o, t);
2583
2621
  if (l !== null) {
2584
2622
  s = l;
2585
2623
  continue;
2586
2624
  }
2587
- ri(t) && (c = t);
2625
+ ai(t) && (c = t);
2588
2626
  }
2589
2627
  a.length === 0 && (o.targetPosition === "after_article" || o.targetPosition === "before_article") && a.push({
2590
2628
  kind: o.targetPosition === "before_article" ? "insert_article_before" : "insert_article_after",
@@ -2595,7 +2633,7 @@ function fi(e) {
2595
2633
  }), a.length === 0 && i.push({
2596
2634
  code: "unrecognized_dispositif",
2597
2635
  message: "Le dispositif est présent mais aucune directive d'amendement n'a été reconnue.",
2598
- ...Yr(n)
2636
+ ...Zr(n)
2599
2637
  });
2600
2638
  }
2601
2639
  return {
@@ -2609,25 +2647,25 @@ function fi(e) {
2609
2647
  }
2610
2648
  //#endregion
2611
2649
  //#region src/lib/server/senat_document_search.ts
2612
- function pi(e) {
2650
+ function hi(e) {
2613
2651
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
2614
2652
  }
2615
- function mi(e) {
2653
+ function gi(e) {
2616
2654
  let t = C(e);
2617
2655
  if (!t) return {
2618
2656
  articleNumber: null,
2619
2657
  label: e,
2620
2658
  title: null
2621
2659
  };
2622
- let n = pi(t.num ?? "") || null, r = pi(t.title ?? "") || null;
2660
+ let n = hi(t.num ?? "") || null, r = hi(t.title ?? "") || null;
2623
2661
  return {
2624
2662
  articleNumber: n,
2625
2663
  label: t.label,
2626
2664
  title: r
2627
2665
  };
2628
2666
  }
2629
- function hi(e) {
2630
- let t = b(e), n = [], r = pi(t("section.akn-preamble").text());
2667
+ function _i(e) {
2668
+ let t = b(e), n = [], r = hi(t("section.akn-preamble").text());
2631
2669
  return r && n.push({
2632
2670
  anchor: "senat-expose-des-motifs",
2633
2671
  articleNumber: null,
@@ -2637,9 +2675,9 @@ function hi(e) {
2637
2675
  label: "Exposé des motifs",
2638
2676
  title: null
2639
2677
  }), t("article.akn-article").each((e, r) => {
2640
- let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = pi(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = mi(o || s), l = i.clone();
2678
+ let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = hi(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = gi(o || s), l = i.clone();
2641
2679
  l.children("p.TCNumArticle").remove();
2642
- let u = pi(l.text());
2680
+ let u = hi(l.text());
2643
2681
  u && n.push({
2644
2682
  anchor: i.attr("id") || null,
2645
2683
  articleNumber: c.articleNumber,
@@ -2651,40 +2689,40 @@ function hi(e) {
2651
2689
  });
2652
2690
  }), n;
2653
2691
  }
2654
- function gi(e, t) {
2655
- return ke("sha256").update(JSON.stringify({
2692
+ function vi(e, t) {
2693
+ return Oe("sha256").update(JSON.stringify({
2656
2694
  item: e,
2657
2695
  metadata: t
2658
2696
  })).digest("hex");
2659
2697
  }
2660
2698
  //#endregion
2661
2699
  //#region src/lib/server/senat_document_sources.ts
2662
- var _i = new Set(["senat.fr", "www.senat.fr"]), vi = "https://www.senat.fr";
2663
- function yi(e) {
2700
+ var yi = new Set(["senat.fr", "www.senat.fr"]), bi = "https://www.senat.fr";
2701
+ function xi(e) {
2664
2702
  return e?.trim() || void 0;
2665
2703
  }
2666
- function bi(e) {
2704
+ function Si(e) {
2667
2705
  try {
2668
- let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, vi);
2669
- return _i.has(n.hostname.toLowerCase()) ? n : void 0;
2706
+ let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, bi);
2707
+ return yi.has(n.hostname.toLowerCase()) ? n : void 0;
2670
2708
  } catch {
2671
2709
  return;
2672
2710
  }
2673
2711
  }
2674
- function xi(e) {
2675
- let t = yi(e);
2712
+ function Ci(e) {
2713
+ let t = xi(e);
2676
2714
  if (t === void 0) return {
2677
2715
  publicUrl: null,
2678
2716
  status: "no_url"
2679
2717
  };
2680
- let n = bi(t);
2718
+ let n = Si(t);
2681
2719
  if (n === void 0) return {
2682
2720
  publicUrl: t,
2683
2721
  status: "unsupported_source"
2684
2722
  };
2685
2723
  let r = n.pathname;
2686
2724
  if (/^\/akomantoso\/[^/]+\.akn\.xml$/iu.test(r)) return {
2687
- akomaNtosoUrl: `${vi}${r}`,
2725
+ akomaNtosoUrl: `${bi}${r}`,
2688
2726
  publicUrl: n.toString(),
2689
2727
  status: "available"
2690
2728
  };
@@ -2693,17 +2731,17 @@ function xi(e) {
2693
2731
  publicUrl: n.toString(),
2694
2732
  status: "unsupported_source"
2695
2733
  } : {
2696
- akomaNtosoUrl: `${vi}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2734
+ akomaNtosoUrl: `${bi}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2697
2735
  publicUrl: n.toString(),
2698
2736
  status: "available"
2699
2737
  };
2700
2738
  }
2701
- function Si(e) {
2739
+ function wi(e) {
2702
2740
  return /^\s*(?:<\?xml\b[^>]*>\s*)?<akomaNtoso[\s/>]/iu.test(e);
2703
2741
  }
2704
2742
  //#endregion
2705
2743
  //#region src/lib/alineas/alineas_numbers.ts
2706
- var Ci = {
2744
+ var Ti = {
2707
2745
  "0150a855548f15a2af52ea057be53f5d": 1,
2708
2746
  "039826cf379b94afefe90b25c6045ca0": 1,
2709
2747
  "03a7e564b84662f4d957c51018e26244": 1,
@@ -21677,7 +21715,7 @@ var Ci = {
21677
21715
  d16d29c923bd60c7b095b66c6058fe60: 1664,
21678
21716
  "1c14c2adf5cfda3220b2057160e10e91": 1665,
21679
21717
  e44c55ca1ac46ff46420686a466c9fc6: 1665
21680
- }, wi = "\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", Ti = "\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", Ei = "\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", Di = "\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", Oi = "\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", ki = {
21718
+ }, Ei = "\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", Di = "\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", Oi = "\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", ki = "\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", Ai = "\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", ji = {
21681
21719
  assnatetatagr: { bold: !0 },
21682
21720
  assnatetatagrgr: { bold: !0 },
21683
21721
  assnatetatatr: { bold: !0 },
@@ -21778,29 +21816,29 @@ var Ci = {
21778
21816
  assnatxl67: { align: "center" },
21779
21817
  assnatenteteequilibre: { align: "center" }
21780
21818
  };
21781
- function Ai(e) {
21782
- let t = Object.keys(ki).sort((e, t) => t.length - e.length);
21783
- for (let n of t) if (e.includes(n)) return ki[n];
21819
+ function Mi(e) {
21820
+ let t = Object.keys(ji).sort((e, t) => t.length - e.length);
21821
+ for (let n of t) if (e.includes(n)) return ji[n];
21784
21822
  return null;
21785
21823
  }
21786
- function ji(e) {
21787
- return Oe.createHash("md5").update(e).digest("hex");
21824
+ function Ni(e) {
21825
+ return De.createHash("md5").update(e).digest("hex");
21788
21826
  }
21789
- function Mi(e) {
21827
+ function Pi(e) {
21790
21828
  return e ? /font-weight\s*:\s*(bold|[6-9]00|1000)/i.test(e) || /font-family\s*:\s*[^;]*\bBold\b/i.test(e) : !1;
21791
21829
  }
21792
- function Ni(e) {
21830
+ function Fi(e) {
21793
21831
  return e ? /font-style\s*:\s*italic/i.test(e) || /font-family\s*:\s*[^;]*\bItalic\b/i.test(e) : !1;
21794
21832
  }
21795
- function Pi(e) {
21833
+ function Ii(e) {
21796
21834
  if (!e || !/vertical-align\s*:\s*super/i.test(e)) return !1;
21797
21835
  let t = e.match(/font-size\s*:\s*([\d.]+)pt/i);
21798
21836
  return !(t && parseFloat(t[1]) < 8);
21799
21837
  }
21800
- function Fi(e) {
21838
+ function Li(e) {
21801
21839
  return e ? /vertical-align\s*:\s*sub/i.test(e) : !1;
21802
21840
  }
21803
- function Ii(e) {
21841
+ function Ri(e) {
21804
21842
  if (!e) return;
21805
21843
  let t = [
21806
21844
  "width",
@@ -21835,15 +21873,15 @@ function Ii(e) {
21835
21873
  }
21836
21874
  return n.length > 0 ? n.join("; ") : void 0;
21837
21875
  }
21838
- function Li(e, t) {
21876
+ function zi(e, t) {
21839
21877
  return !!(e && /text-align\s*:\s*center/i.test(e) || t && /center/i.test(t));
21840
21878
  }
21841
- function Ri(e) {
21879
+ function Bi(e) {
21842
21880
  if (!e) return null;
21843
21881
  let t = e.match(/text-align\s*:\s*(left|center|right|justify)/i);
21844
21882
  return t ? t[1].toLowerCase() : null;
21845
21883
  }
21846
- function zi(e) {
21884
+ function Vi(e) {
21847
21885
  if (!e) return null;
21848
21886
  for (let [t, n] of [
21849
21887
  [/assnat1Tome|assnatAN1PARTIE/i, 1],
@@ -21855,7 +21893,7 @@ function zi(e) {
21855
21893
  ]) if (t.test(e)) return n;
21856
21894
  return null;
21857
21895
  }
21858
- function Bi(e, t = {}) {
21896
+ function Hi(e, t = {}) {
21859
21897
  let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = b(e, { xml: { decodeEntities: !1 } });
21860
21898
  a("style, script, meta, link").remove(), a(".assnatHeader, .assnatFooter, .assnatHeaderLeft, .assnatHeaderandFooter").remove(), a(".assnatFARSautApres, .assnatFARSautAvant, .assnatFARSautPageNiv0, .assnatFARSautPageNiv1, .assnatFARSautPageNiv1PG").remove(), a(".assnatFARTT08Bleu").each((e, t) => {
21861
21899
  let n = a(t).closest("table");
@@ -21881,7 +21919,7 @@ function Bi(e, t = {}) {
21881
21919
  if (i.length !== 0 && !(n.parents("del").length > 0 || n.find("del img").length > 0) && !(i.parent("del").length > 0)) {
21882
21920
  let e = i.attr();
21883
21921
  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")) {
21884
- let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? ji(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21922
+ let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? Ni(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21885
21923
  n.replaceWith(`<span class="alinea"${i}></span>`);
21886
21924
  return;
21887
21925
  }
@@ -21900,7 +21938,7 @@ function Bi(e, t = {}) {
21900
21938
  (!r || r === "\xA0") && n.remove();
21901
21939
  }), a("span[style*=\"display:block\"][style*=\"position:absolute\"]:not(.alinea)").remove(), a("del").remove();
21902
21940
  function o(e) {
21903
- let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Mi(n) || r === "b" || r === "strong", o = Ni(n) || r === "i" || r === "em", s = Pi(n) || r === "sup", c = Fi(n) || r === "sub", l = t.attr("class") || "";
21941
+ let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Pi(n) || r === "b" || r === "strong", o = Fi(n) || r === "i" || r === "em", s = Ii(n) || r === "sup", c = Li(n) || r === "sub", l = t.attr("class") || "";
21904
21942
  return /bold/i.test(l) && (i = !0), /strongemphasis/i.test(l) ? i = !0 : /italic|emphasis/i.test(l) && (o = !0), {
21905
21943
  bold: i,
21906
21944
  italic: o,
@@ -21934,7 +21972,7 @@ function Bi(e, t = {}) {
21934
21972
  c = e;
21935
21973
  }
21936
21974
  for (a("p").each((e, t) => {
21937
- let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = zi(i);
21975
+ let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = Vi(i);
21938
21976
  if (i.includes("assnatFARCouvTitreD")) {
21939
21977
  let e = r.html() || "";
21940
21978
  r.replaceWith(`<p class="cover-subtitle">${e}</p>`);
@@ -21967,11 +22005,11 @@ function Bi(e, t = {}) {
21967
22005
  let c = r.text().trim().startsWith("«");
21968
22006
  if (s && !c) {
21969
22007
  let e = a(`<h${s}>${r.html() || ""}</h${s}>`);
21970
- n && Li(o, i) && e.attr("align", "center"), r.replaceWith(e);
22008
+ n && zi(o, i) && e.attr("align", "center"), r.replaceWith(e);
21971
22009
  } else {
21972
- let e = Ai(i), t;
22010
+ let e = Mi(i), t;
21973
22011
  if (n) {
21974
- let n = Ri(o);
22012
+ let n = Bi(o);
21975
22013
  n && n !== "justify" && n !== "left" ? t = n : e?.align && (t = e.align);
21976
22014
  }
21977
22015
  if (r.removeAttr("style").removeAttr("class"), t && r.attr("align", t), e?.bold) {
@@ -21981,7 +22019,7 @@ function Bi(e, t = {}) {
21981
22019
  }
21982
22020
  }), a("h1, h2, h3, h4, h5, h6").each((e, t) => {
21983
22021
  let r = a(t), i = r.attr("style"), o = r.attr("class");
21984
- n && Li(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
22022
+ n && zi(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21985
22023
  }), a("a").each((e, t) => {
21986
22024
  let n = a(t), r = n.attr("href"), i = n.attr("id"), o = { ...t.attribs || {} };
21987
22025
  for (let e of Object.keys(o)) e !== "href" && e !== "id" && n.removeAttr(e);
@@ -22020,7 +22058,7 @@ function Bi(e, t = {}) {
22020
22058
  }), a("br").each((e, t) => {
22021
22059
  a(t).removeAttr("style").removeAttr("class");
22022
22060
  }), a("table, tr, td, th, thead, tbody, tfoot").each((e, t) => {
22023
- let n = a(t), r = Ii(n.attr("style"));
22061
+ let n = a(t), r = Ri(n.attr("style"));
22024
22062
  n.removeAttr("style").removeAttr("class"), r && n.attr("style", r);
22025
22063
  }), a("td, th").each((e, t) => {
22026
22064
  let n = a(t), r = n.children();
@@ -22038,17 +22076,17 @@ function Bi(e, t = {}) {
22038
22076
  !isNaN(e) && e > 1 && n.attr("style", `counter-reset: list-counter ${e - 1}`), n.attr("start", r);
22039
22077
  }
22040
22078
  }), a("li").each((e, t) => {
22041
- let n = a(t), r = Ri(n.attr("style"));
22079
+ let n = a(t), r = Bi(n.attr("style"));
22042
22080
  n.removeAttr("style").removeAttr("class"), r === "center" && n.attr("style", "text-align: center");
22043
22081
  let i = n.html() || "", o = i.replace(/^(\s|&#xa0;|&#160;|\u00a0)+/, "");
22044
22082
  o !== i && n.html(o);
22045
- }), Vi(a), Hi(a, i);
22083
+ }), Ui(a), Wi(a, i);
22046
22084
  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 = "";
22047
- m && (h += Oi), f && (h += Ti), p && (h += Ei), u && (h += wi), d && (h += Di);
22085
+ m && (h += Ai), f && (h += Di), p && (h += Oi), u && (h += Ei), d && (h += ki);
22048
22086
  let g = h ? `<style>${h}</style>\n${l}` : l;
22049
- 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 = Ui(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;
22087
+ 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 = Gi(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;
22050
22088
  }
22051
- function Vi(e) {
22089
+ function Ui(e) {
22052
22090
  e("span[id]").each((t, n) => {
22053
22091
  let r = e(n), i = r.attr("id"), a = n.attribs || {}, o = Object.keys(a);
22054
22092
  if (o.length !== 1 || o[0] !== "id") return;
@@ -22071,13 +22109,13 @@ function Vi(e) {
22071
22109
  l.trim() === u.trim() && (s.attr("id", i), r.replaceWith(r.html() || ""));
22072
22110
  });
22073
22111
  }
22074
- function Hi(e, t = !1) {
22112
+ function Wi(e, t = !1) {
22075
22113
  let n = e("body");
22076
22114
  if (n.length === 0) return;
22077
22115
  let r = n.find("span.alinea[data-image-hash]"), i = -1;
22078
22116
  r.each((n, r) => {
22079
22117
  let a = e(r), o = a.attr("data-image-hash"), s;
22080
- if (o && Ci[o] !== void 0 && (s = Ci[o]), s === void 0) {
22118
+ if (o && Ti[o] !== void 0 && (s = Ti[o]), s === void 0) {
22081
22119
  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".`);
22082
22120
  a.remove();
22083
22121
  return;
@@ -22089,11 +22127,11 @@ function Hi(e, t = !1) {
22089
22127
  i = s, a.attr("data-alinea", String(s)), a.text(String(s)), a.removeAttr("data-image-hash");
22090
22128
  });
22091
22129
  }
22092
- function Ui(e) {
22130
+ function Gi(e) {
22093
22131
  let t = e;
22094
22132
  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;
22095
22133
  }
22096
- function Wi(e, t = {}) {
22134
+ function Ki(e, t = {}) {
22097
22135
  return `<!DOCTYPE html>
22098
22136
  <html lang="fr">
22099
22137
  <head>
@@ -22101,33 +22139,33 @@ function Wi(e, t = {}) {
22101
22139
  <title>Document simplifié</title>
22102
22140
  </head>
22103
22141
  <body>
22104
- ${Bi(e, t)}
22142
+ ${Hi(e, t)}
22105
22143
  </body>
22106
22144
  </html>`;
22107
22145
  }
22108
22146
  //#endregion
22109
22147
  //#region src/lib/server/text_parsers/transformers.ts
22110
- function Gi(e, t) {
22148
+ function qi(e, t) {
22111
22149
  let n = "transformation_", r = {};
22112
- for (let e of A.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
22150
+ for (let e of j.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
22113
22151
  let i = e.slice(15, -5), a = i.split(".").map((e) => parseInt(e) - 1), o = r;
22114
22152
  for (let e of a.slice(1)) {
22115
22153
  let t = o.transformations ??= [];
22116
22154
  for (; e >= t.length;) t.push({});
22117
22155
  o = t[e];
22118
22156
  }
22119
- o.output = A.readFileSync(Ae.join(t, `${n}${i}.html`), { encoding: "utf-8" });
22120
- let { sourceMap: s, title: c } = A.readJsonSync(Ae.join(t, e), { encoding: "utf-8" });
22157
+ o.output = j.readFileSync(ke.join(t, `${n}${i}.html`), { encoding: "utf-8" });
22158
+ let { sourceMap: s, title: c } = j.readJsonSync(ke.join(t, e), { encoding: "utf-8" });
22121
22159
  o.sourceMap = s ?? [], o.title = c;
22122
22160
  }
22123
- return Ki(r, e), r;
22161
+ return Ji(r, e), r;
22124
22162
  }
22125
- function Ki(e, t) {
22126
- if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) Ki(n, t), t = n.output;
22163
+ function Ji(e, t) {
22164
+ if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) Ji(n, t), t = n.output;
22127
22165
  return t;
22128
22166
  }
22129
- function qi(e, t, n = "1") {
22130
- if (A.ensureDirSync(t), e.transformations === void 0) A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), {
22167
+ function Yi(e, t, n = "1") {
22168
+ if (j.ensureDirSync(t), e.transformations === void 0) j.writeJsonSync(ke.join(t, `transformation_${n}.json`), {
22131
22169
  sourceMap: e.sourceMap,
22132
22170
  title: e.title
22133
22171
  }, {
@@ -22135,21 +22173,21 @@ function qi(e, t, n = "1") {
22135
22173
  spaces: 2
22136
22174
  });
22137
22175
  else {
22138
- A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), { title: e.title }, {
22176
+ j.writeJsonSync(ke.join(t, `transformation_${n}.json`), { title: e.title }, {
22139
22177
  encoding: "utf-8",
22140
22178
  spaces: 2
22141
22179
  });
22142
- for (let [r, i] of e.transformations.entries()) qi(i, t, `${n}.${r + 1}`);
22180
+ for (let [r, i] of e.transformations.entries()) Yi(i, t, `${n}.${r + 1}`);
22143
22181
  }
22144
- e.output !== void 0 && A.writeFileSync(Ae.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
22182
+ e.output !== void 0 && j.writeFileSync(ke.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
22145
22183
  }
22146
22184
  //#endregion
22147
22185
  //#region src/lib/server/linkers/html.ts
22148
- async function Ji({ 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 }) {
22186
+ async function Xi({ 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 }) {
22149
22187
  let _ = t ?? (e === void 0 ? void 0 : new se(e));
22150
22188
  if (_ === void 0) throw Error("A Canutes database or legal resolver is required");
22151
- let v = await A.readFile(i, { encoding: "utf-8" }), y;
22152
- a === void 0 ? (y = xe({ removeAWithHref: !0 })(v), o !== void 0 && qi(y, o)) : y = Gi(v, a);
22189
+ let v = await j.readFile(i, { encoding: "utf-8" }), y;
22190
+ a === void 0 ? (y = ge({ removeAWithHref: !0 })(v), o !== void 0 && Yi(y, o)) : y = qi(v, a);
22153
22191
  let b = [];
22154
22192
  s !== void 0 && b.push("links"), c !== void 0 && b.push("links_or_references"), u !== void 0 && b.push("references");
22155
22193
  let { outputByType: x, referredLegifranceTextCountByCid: ee } = await le({
@@ -22169,38 +22207,38 @@ async function Ji({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
22169
22207
  s !== void 0 && (S.links = s), c !== void 0 && (S.links_or_references = c), u !== void 0 && (S.references = u);
22170
22208
  for (let [e, t] of Object.entries(x)) {
22171
22209
  let n = S[e];
22172
- n !== void 0 && await A.writeFile(n, t.html, { encoding: "utf-8" });
22210
+ n !== void 0 && await j.writeFile(n, t.html, { encoding: "utf-8" });
22173
22211
  }
22174
- x.links !== void 0 && l !== void 0 && qi(xe()(x.links.html), l), g !== void 0 && await A.writeJson(g, ee, {
22212
+ x.links !== void 0 && l !== void 0 && Yi(ge()(x.links.html), l), g !== void 0 && await j.writeJson(g, ee, {
22175
22213
  encoding: "utf-8",
22176
22214
  spaces: 2
22177
22215
  });
22178
22216
  }
22179
22217
  //#endregion
22180
22218
  //#region src/lib/server/tables_of_contents.ts
22181
- async function Yi(e, t, n, r) {
22182
- let i = Gi(await A.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new E(a), s = await A.readJson(n, { encoding: "utf-8" });
22219
+ async function Zi(e, t, n, r) {
22220
+ let i = qi(await j.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new A(a), s = await j.readJson(n, { encoding: "utf-8" });
22183
22221
  for await (let e of ce({
22184
22222
  context: o,
22185
22223
  tableOfContents: s,
22186
22224
  transformation: i
22187
22225
  }));
22188
- await A.writeJson(r, s, {
22226
+ await j.writeJson(r, s, {
22189
22227
  encoding: "utf-8",
22190
22228
  spaces: 2
22191
22229
  });
22192
22230
  }
22193
- async function Xi(e, t, n) {
22194
- let r = Gi(await A.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
22195
- await A.writeJson(n, i, {
22231
+ async function Qi(e, t, n) {
22232
+ let r = qi(await j.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
22233
+ await j.writeJson(n, i, {
22196
22234
  encoding: "utf-8",
22197
22235
  spaces: 2
22198
22236
  });
22199
22237
  }
22200
22238
  //#endregion
22201
22239
  //#region src/lib/server/legi/resolvers.ts
22202
- function Zi({ canutesDb: e }) {
22240
+ function $i({ canutesDb: e }) {
22203
22241
  return new se(e);
22204
22242
  }
22205
22243
  //#endregion
22206
- export { Ee as LegiResolver, Ji as addLinksOrReferencesToHtmlFile, Yi as addPositionsToTableOfContentsFile, Se as buildAndInstallTextTitlesInfos, we as buildTextTitlesInfos, Zi as createLegiResolver, Pe as extractAssembleeAmendmentSearchItems, sr as extractAssembleeExposesDesMotifs, fr as extractSenatAmendmentSearchItems, Fe as hashAssembleeAmendmentSearchItem, lr as hashAssembleeSearchItem, pr as hashSenatAmendmentSearchItem, gi as hashSenatSearchItem, Si as isAkomaNtosoXml, ur as isoDateFromAssembleeDocument, rr as linkAkomaNtosoBillRaw, dn as linkAssembleeBillRaw, nr as parseAkomaNtosoBillRaw, fi as parseAmendment, un as parseAssembleeBillRaw, cr as parseAssembleeDocumentSearchContent, hi as parseSenatDocumentSearchContent, Gi as readTransformation, Qn as renderAkomaNtosoBillRaw, xi as resolveSenatAkomaNtosoSource, Xi as simplifiedHtmlBillFileToTableOfContentsFile, Bi as simplifyWordHtml, Wi as simplifyWordHtmlToDocument, qi as writeTransformation };
22244
+ export { we as LegiResolver, Xi as addLinksOrReferencesToHtmlFile, Zi as addPositionsToTableOfContentsFile, Se as buildAndInstallTextTitlesInfos, Ce as buildTextTitlesInfos, $i as createLegiResolver, Ne as extractAssembleeAmendmentSearchItems, lr as extractAssembleeExposesDesMotifs, mr as extractSenatAmendmentSearchItems, Pe as hashAssembleeAmendmentSearchItem, dr as hashAssembleeSearchItem, hr as hashSenatAmendmentSearchItem, vi as hashSenatSearchItem, wi as isAkomaNtosoXml, fr as isoDateFromAssembleeDocument, ar as linkAkomaNtosoBillRaw, pn as linkAssembleeBillRaw, ir as parseAkomaNtosoBillRaw, mi as parseAmendment, fn as parseAssembleeBillRaw, ur as parseAssembleeDocumentSearchContent, _i as parseSenatDocumentSearchContent, qi as readTransformation, er as renderAkomaNtosoBillRaw, Ci as resolveSenatAkomaNtosoSource, Qi as simplifiedHtmlBillFileToTableOfContentsFile, Hi as simplifyWordHtml, Ki as simplifyWordHtmlToDocument, Yi as writeTransformation };