@tricoteuses/tisseuse 0.17.3 → 0.18.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.
package/dist/server.js CHANGED
@@ -1,11 +1,11 @@
1
- import { $ as e, A as t, C as n, D as r, Dt as i, E as a, Et as o, I as s, M as c, O as l, Ot as u, Q as d, Rt as f, S as p, Tt as m, V as h, Y as g, b as _, c as v, ct as y, g as b, h as x, j as S, jt as C, k as ee, m as te, n as ne, ot as re, p as ie, rt as ae, s as oe, t as se, u as ce, v as le, w as ue, x as de, xt as fe, z as pe, zt as me } from "./html-DMnYXx0o.js";
2
- import { Dt as w, Et as T, F as he, I as ge, N as _e, Nt as E, O as ve, Tt as D, ct as ye, et as be, ht as xe, jt as O, k as Se, kt as Ce, n as we, o as Te, r as Ee, t as De, vt as k } from "./resolver-CuP8arVX.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 { $ as e, A as t, Bt as n, C as r, D as i, Dt as a, E as o, Et as s, I as c, M as l, Mt as u, O as d, Ot as f, Q as p, S as m, St as h, V as g, Y as _, b as v, c as y, g as b, h as x, j as S, k as C, kt as ee, lt as w, m as te, n as ne, p as re, rt as ie, s as ae, st as oe, t as se, u as ce, v as le, w as ue, x as de, z as fe, zt as pe } from "./html-B0V8X0v6.js";
2
+ import { At as me, Dt as T, Et as E, F as he, I as ge, Mt as D, N as _e, O as ve, Ot as O, Pt as k, gt as ye, k as be, lt as xe, n as Se, o as Ce, r as we, t as Te, tt as Ee, yt as A } from "./resolver-cn-qJE70.js";
3
+ import * as De from "node:crypto";
4
+ import { createHash as Oe } from "node:crypto";
5
+ import j from "fs-extra";
6
+ import M from "node:path";
7
7
  //#region src/lib/server/assemblee_amendment_search.ts
8
- function je(e, t) {
8
+ function ke(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 Ae(e) {
17
17
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
18
18
  }
19
- function Ne(e) {
20
- return Me(y(e).text());
19
+ function je(e) {
20
+ return Ae(w(e).text());
21
21
  }
22
- function Pe(e) {
23
- let t = Me([
24
- je(e, [
22
+ function Me(e) {
23
+ let t = Ae([
24
+ ke(e, [
25
25
  "corps",
26
26
  "contenuAuteur",
27
27
  "dispositif"
28
28
  ]),
29
- je(e, [
29
+ ke(e, [
30
30
  "corps",
31
31
  "contenuAuteur",
32
32
  "dispositifAmdtCreditPLF"
33
33
  ]),
34
- je(e, [
34
+ ke(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) => je(e)).join("\n")), n = ke(e, [
40
40
  "corps",
41
41
  "contenuAuteur",
42
42
  "exposeSommaire"
43
- ]), r = n === null ? "" : Ne(n);
43
+ ]), r = n === null ? "" : je(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 Ne(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 N(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 N(e.reference);
65
+ case "enumeration": return [...N(e.left), ...N(e.right)];
66
66
  case "parent-enfant": {
67
- let t = [...f(e.parent)].filter((e) => e.type === "article");
67
+ let t = [...pe(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 ? [] : N(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 Pe(e, t) {
93
93
  if (t < 2) return null;
94
- let n = Se(e), r = b(e);
94
+ let n = be(e), r = b(e);
95
95
  if (r.length !== t) return null;
96
- let i = s(new D(n.output)), a = (e) => ge(n, [e])[0].position;
96
+ let i = c(new E(n.output)), a = (e) => ge(n, [e])[0].position;
97
97
  return r.map((t, n) => ({
98
98
  sourceText: e,
99
99
  referencePosition: a({
@@ -103,20 +103,20 @@ function Ie(e, t) {
103
103
  actionPosition: a(t.position)
104
104
  }));
105
105
  }
106
- function Le(e, t, n) {
106
+ function Fe(e, t, n) {
107
107
  if (t.length < 2) return null;
108
- let r = Se(e), i = r.output, a = (e) => ge(r, [e])[0].position, o = s(new D(i)), c = o.flatMap(j);
109
- if (c.length !== t.length || c.length < 2) return null;
108
+ let r = be(e), i = r.output, a = (e) => ge(r, [e])[0].position, o = c(new E(i)), s = o.flatMap(N);
109
+ if (s.length !== t.length || s.length < 2) return null;
110
110
  let l = de(i);
111
- if (l.length > 0) return n?.kind !== "replace_portion" || l.length !== c.length || l.some((e, t) => {
112
- let n = c[t];
113
- return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !ae(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
114
- }) ? null : c.map((r, i) => ({
111
+ if (l.length > 0) return n?.kind !== "replace_portion" || l.length !== s.length || l.some((e, t) => {
112
+ let n = s[t];
113
+ return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !ie(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
114
+ }) ? null : s.map((r, i) => ({
115
115
  targetId: t[i],
116
116
  directive: {
117
117
  ...n,
118
118
  reference: r.reference,
119
- portionSelectors: ae(r.reference),
119
+ portionSelectors: ie(r.reference),
120
120
  tableTarget: {
121
121
  type: "table",
122
122
  rowIndex: l[i].rowIndex,
@@ -132,12 +132,12 @@ function Le(e, t, n) {
132
132
  }
133
133
  }
134
134
  }));
135
- let u = c.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
- if (u.length > 0 && u.length < c.length) {
137
- let n = c.filter((e) => !u.includes(e));
135
+ let u = s.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
+ if (u.length > 0 && u.length < s.length) {
137
+ let n = s.filter((e) => !u.includes(e));
138
138
  if (n.length !== 1) return null;
139
- let r = n[0], o = t[c.indexOf(r)], s = _(i);
140
- return !o || s.length !== 1 || s[0].kind === "compound" ? null : [{
139
+ let r = n[0], o = t[s.indexOf(r)], c = v(i);
140
+ return !o || c.length !== 1 || c[0].kind === "compound" ? null : [{
141
141
  targetId: o,
142
142
  sourceAnnotation: {
143
143
  sourceText: e,
@@ -148,7 +148,7 @@ function Le(e, t, n) {
148
148
  }
149
149
  },
150
150
  directive: {
151
- ...s[0],
151
+ ...c[0],
152
152
  reference: r.reference,
153
153
  sourcePosition: {
154
154
  start: 0,
@@ -161,17 +161,17 @@ 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 || _(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && _(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
164
+ t.type !== "reference_et_action" || N(t).length === 0 || o.slice(f, e).flatMap(N).length === 0 || v(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && v(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
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(N);
170
170
  if (r.length === 0) {
171
171
  m = n + 1;
172
172
  continue;
173
173
  }
174
- let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = _(i.slice(s, c));
174
+ let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = v(i.slice(s, c));
175
175
  if (l.length !== 1 || l[0].kind === "compound") return null;
176
176
  let u = l[0];
177
177
  for (let n of r) {
@@ -195,7 +195,7 @@ function Le(e, t, n) {
195
195
  stop: i.length
196
196
  },
197
197
  reference: n.reference,
198
- portionSelectors: ae(n.reference)
198
+ portionSelectors: ie(n.reference)
199
199
  }
200
200
  });
201
201
  }
@@ -203,46 +203,46 @@ function Le(e, t, n) {
203
203
  }
204
204
  return h === t.length ? p : null;
205
205
  }
206
- var Re = Ce("dans sa rédaction", w([w([E("dans sa rédaction ", { flags: "i" }), T(E("issue ", { flags: "i" }), E("résultante ", { flags: "i" }), E("résultant ", { flags: "i" }))], { value: "qualified-version-redaction" }), T(w([E("de l'", { flags: "i" }), h], { value: (e) => e[1] }), pe)], { value: (e) => e[1] }));
206
+ var Ie = me("dans sa rédaction", O([O([k("dans sa rédaction ", { flags: "i" }), T(k("issue ", { flags: "i" }), k("résultante ", { flags: "i" }), k("résultant ", { flags: "i" }))], { value: "qualified-version-redaction" }), T(O([k("de l'", { flags: "i" }), g], { value: (e) => e[1] }), fe)], { value: (e) => e[1] }));
207
207
  //#endregion
208
208
  //#region src/lib/extractors/qualified_versions.ts
209
- function ze(e) {
210
- let t = Se(e), n = [];
211
- for (let e of Re.extract(new D(t.output), { jumpExact: !0 })) for (let r of me(e)) {
212
- if (r.type !== "parent-enfant" || r.parent.type !== "texte" || r.parent.nature !== "LOI") continue;
213
- let e = [...f(r.child)].filter((e) => e.type === "article" && e.position.start < r.parent.position.start);
209
+ function Le(e) {
210
+ let t = be(e), r = [];
211
+ for (let e of Ie.extract(new E(t.output), { jumpExact: !0 })) for (let i of n(e)) {
212
+ if (i.type !== "parent-enfant" || i.parent.type !== "texte" || i.parent.nature !== "LOI") continue;
213
+ let e = [...pe(i.child)].filter((e) => e.type === "article" && e.position.start < i.parent.position.start);
214
214
  if (e.length === 1) {
215
- n.push(ge(t, [e[0].position])[0].position);
215
+ r.push(ge(t, [e[0].position])[0].position);
216
216
  break;
217
217
  }
218
218
  }
219
- return n;
219
+ return r;
220
220
  }
221
221
  //#endregion
222
222
  //#region src/lib/server/parsed_bills.ts
223
- var Be = /^expos[ée]\s+des\s+motifs\b/iu;
224
- function M(e) {
223
+ var Re = /^expos[ée]\s+des\s+motifs\b/iu;
224
+ function P(e) {
225
225
  return (e ?? "").replace(/\u00a0/g, " ").replace(/\s+/g, " ").trim();
226
226
  }
227
- function N(e) {
228
- return M(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
227
+ function F(e) {
228
+ return P(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
229
229
  }
230
- function Ve(e) {
231
- return m(M(e));
230
+ function ze(e) {
231
+ return s(P(e));
232
232
  }
233
- function P(e) {
234
- return `_TocArt${Ve(e).replace(/\s+/gu, "")}`;
233
+ function I(e) {
234
+ return `_TocArt${ze(e).replace(/\s+/gu, "")}`;
235
235
  }
236
- function He(e, t) {
236
+ function Be(e, t) {
237
237
  return e(t).closest(".assnatTOC6,.assnatTOC5,.assnatTOC4").length > 0;
238
238
  }
239
- function Ue(e) {
240
- return N(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
239
+ function Ve(e) {
240
+ return F(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
241
241
  }
242
- function We(e) {
243
- return Ue(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
242
+ function He(e) {
243
+ return Ve(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
244
244
  }
245
- function Ge(e) {
245
+ function Ue(e) {
246
246
  switch (e.kind) {
247
247
  case "insert_after":
248
248
  case "insert_before": return e.insertText;
@@ -260,12 +260,12 @@ function Ge(e) {
260
260
  default: return;
261
261
  }
262
262
  }
263
- function Ke(e) {
264
- let t = M(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
265
- if (n?.[1] !== void 0) return o(n[1]);
263
+ function We(e) {
264
+ let t = P(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
265
+ if (n?.[1] !== void 0) return a(n[1]);
266
266
  }
267
- function qe(e) {
268
- let t = Ge(e), n = fe(t ?? "");
267
+ function Ge(e) {
268
+ let t = Ue(e), n = h(t ?? "");
269
269
  if (n.length > 0 && t !== void 0) return n.map((e, r) => {
270
270
  let i = e.start, a = n[r + 1]?.start ?? t.length, o = t.slice(i, a).trim();
271
271
  return {
@@ -273,58 +273,58 @@ function qe(e) {
273
273
  text: o
274
274
  };
275
275
  });
276
- let r = Ke(e);
276
+ let r = We(e);
277
277
  return r === void 0 ? [] : [{
278
278
  num: r,
279
279
  text: t ?? e.sourceText
280
280
  }];
281
281
  }
282
- function Je(e, t = /* @__PURE__ */ new Set()) {
282
+ function Ke(e, t = /* @__PURE__ */ new Set()) {
283
283
  if (e == null) return t;
284
284
  if (Array.isArray(e)) {
285
- for (let n of e) Je(n, t);
285
+ for (let n of e) Ke(n, t);
286
286
  return t;
287
287
  }
288
288
  if (typeof e != "object") return t;
289
289
  let n = e;
290
290
  n.type === "article" && typeof n.num == "string" && t.add(n.num);
291
- for (let e of Object.values(n)) Je(e, t);
291
+ for (let e of Object.values(n)) Ke(e, t);
292
292
  return t;
293
293
  }
294
- function Ye(e) {
295
- let t = N(e.sourceText);
294
+ function qe(e) {
295
+ let t = F(e.sourceText);
296
296
  return /\b(?:cree|cree[e]?s?|resultant|issu|prevu|mentionne)\b[\s\S]{0,80}\b(?:present|presente|pjl|projet\s+de\s+loi)\b/u.test(t);
297
297
  }
298
- function Xe(e) {
299
- return M(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
298
+ function Je(e) {
299
+ return P(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
300
300
  }
301
- function Ze(e, t) {
302
- let n = new D(e, t), r = be(n);
301
+ function Ye(e, t) {
302
+ let n = new E(e, t), r = Ee(n);
303
303
  return typeof r != "string" || n.offset <= t ? null : {
304
304
  date: r,
305
305
  start: t,
306
306
  stop: n.offset
307
307
  };
308
308
  }
309
- function Qe(e, t) {
309
+ function Xe(e, t) {
310
310
  let n = /\d/u.exec(e.slice(t));
311
311
  if (!n) return null;
312
312
  let r = t + n.index;
313
- return e.slice(t, r).trim().length > 0 ? null : Ze(e, r);
313
+ return e.slice(t, r).trim().length > 0 ? null : Ye(e, r);
314
314
  }
315
- function $e(e) {
315
+ function Ze(e) {
316
316
  let t = /^la présente loi (?:s['’]appli(?:que|quent)|entr(?:e|ent) en vigueur) (?:[aà] compter (?:du|de|d['’])|au|le)\s*/u, n = /^la présente loi s['’]appli(?:que|quent)\s*:\s*/u, r = /\b[aà] compter (?:du|de|d['’])\s*/gu, i = [], a = "la présente loi", o = e.indexOf(a);
317
317
  for (; o !== -1;) {
318
318
  let s = e.indexOf(a, o + 15), c = e.slice(o, o + 1400), l = t.exec(c);
319
319
  if (l) {
320
- let e = Qe(c, l[0].length);
320
+ let e = Xe(c, l[0].length);
321
321
  e && i.push(e.date);
322
322
  }
323
323
  let u = n.exec(c);
324
324
  if (u) {
325
325
  let e = /\barticle\s+\w/iu.exec(c), t = e === null ? c.slice(u[0].length) : c.slice(u[0].length, e.index);
326
326
  for (r.lastIndex = 0; r.exec(t) !== null;) {
327
- let e = Qe(t, r.lastIndex);
327
+ let e = Xe(t, r.lastIndex);
328
328
  e && /^\s+pour\s+les\s+autres\s+dispositions\s+fiscales\b/iu.test(t.slice(e.stop)) && i.push(e.date);
329
329
  }
330
330
  }
@@ -332,20 +332,20 @@ function $e(e) {
332
332
  }
333
333
  return i;
334
334
  }
335
- function et(e) {
336
- let t = $e(Xe(e).toLowerCase()), n = Array.from(new Set(t));
335
+ function Qe(e) {
336
+ let t = Ze(Je(e).toLowerCase()), n = Array.from(new Set(t));
337
337
  return n.length === 1 ? n[0] : void 0;
338
338
  }
339
- function tt(e) {
340
- return N(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
339
+ function $e(e) {
340
+ return F(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
341
341
  }
342
- function F(e) {
342
+ function L(e) {
343
343
  return e?.type === "tag";
344
344
  }
345
- function nt(e, t) {
345
+ function et(e, t) {
346
346
  return e.html(t) ?? "";
347
347
  }
348
- function rt(e, t) {
348
+ function tt(e, t) {
349
349
  let n = [], r = /* @__PURE__ */ new Set();
350
350
  for (let i of e(t).find("a").get()) {
351
351
  let a = e(i).attr("href") ?? "", o = /\/legifrance\/(articles|sections|textes)\/([^?#"]+)/u.exec(a);
@@ -353,43 +353,43 @@ function rt(e, t) {
353
353
  let s = o[1] === "articles" ? "article" : o[1] === "sections" ? "division" : "text", c = o[2].replace(/\.md$/u, ""), l = `${s}\0${c}`;
354
354
  if (r.has(l)) continue;
355
355
  r.add(l);
356
- let u = M(e(i).text());
356
+ let u = P(e(i).text());
357
357
  n.push({
358
358
  id: c,
359
- ...it(e, t, i) ? { insideFrenchQuotes: !0 } : {},
359
+ ...nt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
360
360
  ...u ? { text: u } : {},
361
361
  type: s
362
362
  });
363
363
  }
364
364
  return n;
365
365
  }
366
- function it(e, t, n) {
367
- let r = at(e, t, n);
366
+ function nt(e, t, n) {
367
+ let r = rt(e, t, n);
368
368
  return (r.match(/«/gu) ?? []).length > (r.match(/»/gu) ?? []).length;
369
369
  }
370
- function at(e, t, n) {
370
+ function rt(e, t, n) {
371
371
  if (t === n) return "";
372
372
  if (t.type === "text") return t.data ?? "";
373
- if (!F(t)) return "";
373
+ if (!L(t)) return "";
374
374
  let r = "";
375
375
  for (let i of e(t).contents().get()) {
376
376
  if (i === n) return r;
377
- if (F(i) && e.contains(i, n)) return r + at(e, i, n);
377
+ if (L(i) && e.contains(i, n)) return r + rt(e, i, n);
378
378
  r += e(i).text();
379
379
  }
380
380
  return r;
381
381
  }
382
- function ot(e, t) {
383
- return t.map((t) => M(e(t).text())).filter(Boolean).join("\n");
382
+ function it(e, t) {
383
+ return t.map((t) => P(e(t).text())).filter(Boolean).join("\n");
384
384
  }
385
- function st(e) {
386
- let t = N(e);
387
- return !t || Be.test(t) ? "noise" : l.test(e) ? "directive_candidate" : "context";
385
+ function at(e) {
386
+ let t = F(e);
387
+ return !t || Re.test(t) ? "noise" : d.test(e) ? "directive_candidate" : "context";
388
388
  }
389
- async function ct(e, t, n) {
389
+ async function ot(e, t, n) {
390
390
  if (n === void 0) throw Error("A document date is required to add links to legal references.");
391
391
  if (t.legiResolver === void 0 && t.canutesDb === void 0) throw Error("A Canutes database or an explicit legal resolver is required to add links to legal references.");
392
- let r = t.legiResolver ?? new ie(t.canutesDb), { output: i } = await ne({
392
+ let r = t.legiResolver ?? new re(t.canutesDb), { output: i } = await ne({
393
393
  date: n,
394
394
  html: e,
395
395
  includeInternalArticleLinks: t.includeInternalArticleLinks,
@@ -402,13 +402,13 @@ async function ct(e, t, n) {
402
402
  });
403
403
  return i ?? e;
404
404
  }
405
- function lt(e, t) {
405
+ function st(e, t) {
406
406
  let n = e(t).closest("h1,h2,h3,h4,h5,h6,p,td,th").get(0), r = e(t).closest("table").get(0);
407
- return F(r) && F(n) && e(n).parents("table").get(0) === r ? r : F(n) ? n : t;
407
+ return L(r) && L(n) && e(n).parents("table").get(0) === r ? r : L(n) ? n : t;
408
408
  }
409
- function ut(e, t, n, r) {
409
+ function ct(e, t, n, r) {
410
410
  if (t.has(r.container)) return;
411
- let i = r.id ?? P(r.num ?? r.label);
411
+ let i = r.id ?? I(r.num ?? r.label);
412
412
  n.has(i) || (n.add(i), t.add(r.container), e.push({
413
413
  id: i,
414
414
  label: r.label,
@@ -418,63 +418,63 @@ function ut(e, t, n, r) {
418
418
  container: r.container
419
419
  }));
420
420
  }
421
- function I(e) {
421
+ function lt(e) {
422
422
  let t = /* @__PURE__ */ new Map();
423
423
  return e("body *").each((e, n) => {
424
424
  t.set(n, e);
425
425
  }), t;
426
426
  }
427
- function L(e, t) {
427
+ function R(e, t) {
428
428
  return e.get(t) ?? 2 ** 53 - 1;
429
429
  }
430
- function dt(e) {
430
+ function ut(e) {
431
431
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
432
- e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((a, o) => {
433
- if (He(e, o)) return;
434
- let s = i(M(e(o).text()));
435
- if (!s) return;
436
- let c = e(o).attr("id");
437
- if (!c || r.has(c)) return;
438
- let l = lt(e, o);
439
- ut(t, n, r, {
440
- id: c,
441
- ...s,
442
- element: o,
443
- container: l
432
+ e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((i, a) => {
433
+ if (Be(e, a)) return;
434
+ let o = f(P(e(a).text()));
435
+ if (!o) return;
436
+ let s = e(a).attr("id");
437
+ if (!s || r.has(s)) return;
438
+ let c = st(e, a);
439
+ ct(t, n, r, {
440
+ id: s,
441
+ ...o,
442
+ element: a,
443
+ container: c
444
444
  });
445
- }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((a, o) => {
446
- if (n.has(o)) return;
447
- let s = i(M(e(o).text()));
448
- s && ut(t, n, r, {
449
- ...s,
450
- element: o,
451
- container: o
445
+ }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((i, a) => {
446
+ if (n.has(a)) return;
447
+ let o = f(P(e(a).text()));
448
+ o && ct(t, n, r, {
449
+ ...o,
450
+ element: a,
451
+ container: a
452
452
  });
453
453
  });
454
- let a = I(e);
455
- return t.sort((e, t) => L(a, e.container) - L(a, t.container)), t;
454
+ let i = lt(e);
455
+ return t.sort((e, t) => R(i, e.container) - R(i, t.container)), t;
456
456
  }
457
- function ft(e, t) {
458
- if (He(e, t)) return !1;
457
+ function dt(e, t) {
458
+ if (Be(e, t)) return !1;
459
459
  let n = t.tagName?.toLowerCase();
460
460
  if (n !== "p") return /^h[1-6]$/u.test(n ?? "");
461
461
  let r = e(t).attr("style") ?? "", i = e(t).html() ?? "";
462
462
  return /text-align\s*:\s*center/iu.test(r) && (/font-weight\s*:\s*bold/iu.test(r) || /font-weight\s*:\s*bold/iu.test(i) || /<(?:strong|b)(?:\s|>)/iu.test(i));
463
463
  }
464
- function pt(e) {
464
+ function ft(e) {
465
465
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
466
- return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((a, o) => {
467
- if (He(e, o) || !e(o).hasClass("assnat9ArticleNum") && !ft(e, o)) return;
468
- let s = i(e(o).text());
469
- s && ut(t, n, r, {
470
- ...s,
471
- element: o,
472
- container: o
466
+ return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((i, a) => {
467
+ if (Be(e, a) || !e(a).hasClass("assnat9ArticleNum") && !dt(e, a)) return;
468
+ let o = f(e(a).text());
469
+ o && ct(t, n, r, {
470
+ ...o,
471
+ element: a,
472
+ container: a
473
473
  });
474
474
  }), t;
475
475
  }
476
- function mt(e) {
477
- let t = Ve(e ?? "").replace(/[()]/gu, "").trim();
476
+ function pt(e) {
477
+ let t = ze(e ?? "").replace(/[()]/gu, "").trim();
478
478
  if (!t || t.toLowerCase() === "liminaire") return;
479
479
  if (t.toLowerCase() === "unique") return {
480
480
  base: 1,
@@ -483,7 +483,7 @@ function mt(e) {
483
483
  };
484
484
  let n = /^(\d+|premier)(?:\s+([a-z]+))?(?:\s+([A-Z]+))?$/u.exec(t);
485
485
  if (!n) return;
486
- let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : gt(i);
486
+ let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : ht(i);
487
487
  if (a !== void 0) return {
488
488
  base: r,
489
489
  suffixOrder: a,
@@ -491,7 +491,7 @@ function mt(e) {
491
491
  text: t
492
492
  };
493
493
  }
494
- function ht(e, t) {
494
+ function mt(e, t) {
495
495
  if (t.base !== e.base) return t.base - e.base;
496
496
  if (t.suffixOrder !== e.suffixOrder) return t.suffixOrder - e.suffixOrder;
497
497
  for (let n = 0; n <= Math.max(e.letters?.length ?? 0, t.letters?.length ?? 0); n++) {
@@ -500,14 +500,14 @@ function ht(e, t) {
500
500
  }
501
501
  return 0;
502
502
  }
503
- function gt(e) {
504
- let t = new D(e), n = ye(t);
503
+ function ht(e) {
504
+ let t = new E(e), n = xe(t);
505
505
  if (!(n === void 0 || t.offset !== e.length) && !(typeof n != "object" || !n || !("value" in n) || typeof n.value != "number")) return n.value - 1;
506
506
  }
507
- function _t(e) {
507
+ function gt(e) {
508
508
  let t = [], n = e.map((e) => ({
509
509
  heading: e,
510
- token: mt(e.num)
510
+ token: pt(e.num)
511
511
  }));
512
512
  n.filter(({ token: e }) => e?.text === "unique").length > 0 && e.length > 1 && t.push({
513
513
  code: "article_toc_out_of_order",
@@ -516,7 +516,7 @@ function _t(e) {
516
516
  let r;
517
517
  for (let { heading: e, token: i } of n) if (!(i === void 0 || i.text === "unique")) {
518
518
  if (r !== void 0) {
519
- let n = ht(r, i);
519
+ let n = mt(r, i);
520
520
  n === 0 ? t.push({
521
521
  code: "article_toc_duplicate_number",
522
522
  message: `Article ${e.num ?? e.label} is repeated`,
@@ -545,60 +545,60 @@ function _t(e) {
545
545
  }
546
546
  return t;
547
547
  }
548
- function vt(e) {
549
- let t = _t(e);
548
+ function _t(e) {
549
+ let t = gt(e);
550
550
  t.length > 0 && process.env.TISSEUSE_WARN_ASSEMBLEE_HEADING_SEQUENCE === "1" && console.warn("Incoherent Assemblée article heading sequence", { issues: t.map((e) => e.message) });
551
551
  }
552
- function yt(e, { warn: t = !0 } = {}) {
553
- let n = dt(e), r = pt(e);
554
- if (n.length === 0) return t && vt(r), r;
555
- let i = I(e), a = (e, t) => {
556
- let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => P(e.num ?? e.label)));
552
+ function vt(e, { warn: t = !0 } = {}) {
553
+ let n = ut(e), r = ft(e);
554
+ if (n.length === 0) return t && _t(r), r;
555
+ let i = lt(e), a = (e, t) => {
556
+ let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => I(e.num ?? e.label)));
557
557
  for (let i of t) {
558
- let t = P(i.num ?? i.label);
558
+ let t = I(i.num ?? i.label);
559
559
  n.has(i.container) || r.has(t) || (n.add(i.container), r.add(t), e.push(i));
560
560
  }
561
- return e.sort((e, t) => L(i, e.container) - L(i, t.container)), e;
562
- }, o = r.filter((t) => e(t.element).is("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6")), s = a([...n], o), c = a([...s], r.filter((e) => !o.includes(e))), l = s.length >= 2 && _t(c).length > _t(s).length ? s : c;
563
- return t && vt(l), l;
561
+ return e.sort((e, t) => R(i, e.container) - R(i, t.container)), e;
562
+ }, o = r.filter((t) => e(t.element).is("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6")), s = a([...n], o), c = a([...s], r.filter((e) => !o.includes(e))), l = s.length >= 2 && gt(c).length > gt(s).length ? s : c;
563
+ return t && _t(l), l;
564
564
  }
565
- function bt(e) {
565
+ function yt(e) {
566
566
  let t = e.next;
567
567
  for (; t !== null;) {
568
- if (F(t)) return t;
568
+ if (L(t)) return t;
569
569
  t = t.next;
570
570
  }
571
571
  return null;
572
572
  }
573
- function xt(e, t, n) {
573
+ function bt(e, t, n) {
574
574
  let r = e(t.container);
575
575
  if (!r.is("p.assnat9ArticleNum")) return;
576
- let a = r.parent(), o = a.parent();
577
- if (!a.is("div") || a.children().length !== 1 || !o.is("div")) return;
578
- let s = o.children().get();
579
- if (s.length !== 3 && s.length !== 4 || s[0] !== a.get(0) || s[1]?.tagName !== "span" || M(e(s[1]).text()) !== "") return;
580
- let c = s.length === 4 ? s[2] : void 0;
581
- if (c !== void 0 && (c.tagName !== "p" || !e(c).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(M(e(c).text())))) return;
582
- let l = s.at(-1);
583
- if (!(l.tagName !== "div" || n !== void 0 && e.contains(l, n.container) || e(l).find("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6").toArray().some((t) => i(e(t).text()) !== null))) return [
576
+ let i = r.parent(), a = i.parent();
577
+ if (!i.is("div") || i.children().length !== 1 || !a.is("div")) return;
578
+ let o = a.children().get();
579
+ if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || P(e(o[1]).text()) !== "") return;
580
+ let s = o.length === 4 ? o[2] : void 0;
581
+ if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(P(e(s).text())))) return;
582
+ let c = o.at(-1);
583
+ if (!(c.tagName !== "div" || n !== void 0 && e.contains(c, n.container) || e(c).find("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6").toArray().some((t) => f(e(t).text()) !== null))) return [
584
584
  t.container,
585
- ...c === void 0 ? [] : [c],
586
- l
585
+ ...s === void 0 ? [] : [s],
586
+ c
587
587
  ];
588
588
  }
589
- function St(e, t, n, r = I(e)) {
589
+ function xt(e, t, n, r = lt(e)) {
590
590
  let i = [t.container], a = n?.container;
591
- for (let e = bt(t.container); e !== null && e !== a; e = bt(e)) i.push(e);
591
+ for (let e = yt(t.container); e !== null && e !== a; e = yt(e)) i.push(e);
592
592
  if (i.length > 1) return i;
593
- let o = xt(e, t, n);
593
+ let o = bt(e, t, n);
594
594
  if (o !== void 0) return o;
595
- let s = L(r, t.container), c = a ? L(r, a) : -1;
595
+ let s = R(r, t.container), c = a ? R(r, a) : -1;
596
596
  return e("body > *").get().filter((e) => {
597
- let t = L(r, e);
597
+ let t = R(r, e);
598
598
  return t >= s && (c === -1 || t < c);
599
599
  });
600
600
  }
601
- function Ct(e, t) {
601
+ function St(e, t) {
602
602
  let n = [], r = /* @__PURE__ */ new Set();
603
603
  for (let i of t) {
604
604
  let t = "p,li,table", a = e(i).is(t) ? [i] : e(i).find(t).get();
@@ -606,97 +606,97 @@ function Ct(e, t) {
606
606
  }
607
607
  return n;
608
608
  }
609
- function wt(e, t, n) {
609
+ function Ct(e, t, n) {
610
610
  let r = [], i = !1;
611
- for (let a of Ct(e, n)) {
612
- let n = e(a).is("table.akn-quoted-table") ? fn(e, a) : M(e(a).text());
611
+ for (let a of St(e, n)) {
612
+ let n = e(a).is("table.akn-quoted-table") ? dn(e, a) : P(e(a).text());
613
613
  if (!n) continue;
614
- Be.test(n) && (i = !0);
615
- let o = i ? "noise" : st(n), s = `${t}-b${r.length + 1}`;
614
+ Re.test(n) && (i = !0);
615
+ let o = i ? "noise" : at(n), s = `${t}-b${r.length + 1}`;
616
616
  e(a).attr("data-pjl-parsed-article-id", t), e(a).attr("data-pjl-parsed-block-id", s), r.push({
617
617
  id: s,
618
618
  articleId: t,
619
619
  kind: o,
620
- links: rt(e, a),
620
+ links: tt(e, a),
621
621
  text: n,
622
- html: nt(e, a)
622
+ html: et(e, a)
623
623
  });
624
624
  }
625
625
  return r;
626
626
  }
627
- function Tt(e, t) {
627
+ function wt(e, t) {
628
628
  if (t.length === 0) return e;
629
629
  let n = `<div style="display: none;">\n${t.map((e) => `<p class="assnatTOC6"><a href="#${e.id}"><span class="assnatHyperlink" style="font-weight:bold; text-decoration:none; color:#000000">${e.label.toUpperCase()}</span></a></p>`).join("\n")}\n</div>`;
630
630
  return e.includes("class=\"assnatSection3\"") ? e.replace(/(<div class="assnatSection3">)/u, `${n}$1`) : e.includes("id=\"formCorrection:panel:1:table\"") ? e.replace(/(<div id="formCorrection:panel:1:table">)/u, `${n}$1`) : `${n}\n${e}`;
631
631
  }
632
- function Et(e) {
633
- let t = y(e), n = Dt(t);
634
- for (let e of yt(t, { warn: !1 })) {
635
- let r = P(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
632
+ function Tt(e) {
633
+ let t = w(e), n = Et(t);
634
+ for (let e of vt(t, { warn: !1 })) {
635
+ let r = I(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
636
636
  if (a !== r) {
637
- if (a?.startsWith("_Toc") && !kt(n, a, e.element)) {
637
+ if (a?.startsWith("_Toc") && !Ot(n, a, e.element)) {
638
638
  let e = t("<span></span>").attr("id", a);
639
639
  i.before(e);
640
640
  let r = e.get(0);
641
- F(r) && R(n, a, r);
641
+ L(r) && z(n, a, r);
642
642
  }
643
- a && Ot(n, a, e.element), i.attr("id", r), R(n, r, e.element);
643
+ a && Dt(n, a, e.element), i.attr("id", r), z(n, r, e.element);
644
644
  }
645
645
  }
646
- let r = yt(t), i = I(t);
646
+ let r = vt(t), i = lt(t);
647
647
  for (let [e, a] of r.entries()) {
648
- let o = St(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
648
+ let o = xt(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
649
649
  for (let e of o) {
650
650
  let r = t(e).attr("data-alinea")?.trim();
651
651
  if (!r) continue;
652
652
  let i = `${a.id}-alinea-${r.replace(/\s+/gu, "")}`;
653
- if (kt(n, i, e)) continue;
653
+ if (Ot(n, i, e)) continue;
654
654
  let o = t(e).attr("id");
655
655
  if (o && o !== i) {
656
656
  let r = t("<span></span>").attr("id", i);
657
657
  t(e).before(r);
658
658
  let a = r.get(0);
659
- F(a) && R(n, i, a);
660
- } else o && Ot(n, o, e), t(e).attr("id", i), R(n, i, e);
659
+ L(a) && z(n, i, a);
660
+ } else o && Dt(n, o, e), t(e).attr("id", i), z(n, i, e);
661
661
  }
662
662
  }
663
663
  return t.html();
664
664
  }
665
- function Dt(e) {
665
+ function Et(e) {
666
666
  let t = /* @__PURE__ */ new Map();
667
667
  for (let n of e("[id]").get()) {
668
668
  let r = e(n).attr("id");
669
- r && R(t, r, n);
669
+ r && z(t, r, n);
670
670
  }
671
671
  return t;
672
672
  }
673
- function R(e, t, n) {
673
+ function z(e, t, n) {
674
674
  let r = e.get(t);
675
675
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r)), r.add(n);
676
676
  }
677
- function Ot(e, t, n) {
677
+ function Dt(e, t, n) {
678
678
  let r = e.get(t);
679
679
  r !== void 0 && (r.delete(n), r.size === 0 && e.delete(t));
680
680
  }
681
- function kt(e, t, n) {
681
+ function Ot(e, t, n) {
682
682
  for (let r of e.get(t) ?? []) if (r !== n) return !0;
683
683
  return !1;
684
684
  }
685
- function At(e, t) {
686
- let n = tt("sourceText" in t ? t.sourceText : "");
685
+ function kt(e, t) {
686
+ let n = $e("sourceText" in t ? t.sourceText : "");
687
687
  if (n) return e.filter((e) => e.kind === "directive_candidate").find((e) => {
688
- let t = tt(e.text);
688
+ let t = $e(e.text);
689
689
  return t.length > 0 && (n.includes(t) || t.includes(n));
690
690
  });
691
691
  }
692
- function jt(e, t) {
692
+ function At(e, t) {
693
693
  if (t) return t.blockIds.map((t) => e.get(t)).find((e) => e?.kind === "directive_candidate");
694
694
  }
695
- function Mt(e) {
695
+ function jt(e) {
696
696
  return e?.links.filter((t) => !t.insideFrenchQuotes && (t.type === "article" || t.type === "division") && t.id !== e.qualifiedVersion?.modifyingArticleId).map((e) => e.id) ?? [];
697
697
  }
698
- function Nt(e) {
699
- let t = ze(e.text);
698
+ function Mt(e) {
699
+ let t = Le(e.text);
700
700
  if (t.length !== 1) return;
701
701
  let n = e.links.filter((e) => e.type === "article" && !e.insideFrenchQuotes), r = n.filter((n) => {
702
702
  let r = n.text ?? "", i = e.text.indexOf(r);
@@ -710,13 +710,13 @@ function Nt(e) {
710
710
  modifyingArticleLabel: i.text ?? ""
711
711
  };
712
712
  }
713
- function Pt(e, t) {
714
- let n = M(e);
713
+ function Nt(e, t) {
714
+ let n = P(e);
715
715
  if (!n) return;
716
- let r = re(n);
716
+ let r = oe(n);
717
717
  return r ? r.level : n.endsWith(":") ? (t ?? -1) + 1 : void 0;
718
718
  }
719
- function Ft(e) {
719
+ function Pt(e) {
720
720
  let t = /* @__PURE__ */ new Map(), n = [], r = te(e.map((e) => e.text)), i = -1;
721
721
  for (let [a, o] of e.entries()) {
722
722
  let e = r.get(a);
@@ -724,7 +724,7 @@ function Ft(e) {
724
724
  t.set(o.id, [...n.map((e) => e.block), o]);
725
725
  continue;
726
726
  }
727
- let s = Pt(o.text, n.at(-1)?.level);
727
+ let s = Nt(o.text, n.at(-1)?.level);
728
728
  if (s === void 0) {
729
729
  t.set(o.id, [...n.map((e) => e.block), o]);
730
730
  continue;
@@ -737,14 +737,14 @@ function Ft(e) {
737
737
  }
738
738
  return t;
739
739
  }
740
- function It(e, t) {
740
+ function Ft(e, t) {
741
741
  let n = [], r = /* @__PURE__ */ new Set();
742
742
  for (let i of [...e ?? [], ...t]) i !== void 0 && (r.has(i.id) || (r.add(i.id), n.push(i)));
743
743
  return n;
744
744
  }
745
- function Lt(e, t, n) {
745
+ function It(e, t, n) {
746
746
  if (!t) return;
747
- let r = It(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
747
+ let r = Ft(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
748
748
  if (r.length === 0) return;
749
749
  let i = r.map((e) => e.id);
750
750
  if (i.length === t.blockIds.length && i.every((e, n) => e === t.blockIds[n])) return;
@@ -759,7 +759,7 @@ function Lt(e, t, n) {
759
759
  }
760
760
  };
761
761
  }
762
- function Rt(e) {
762
+ function Lt(e) {
763
763
  let t = [], n = 0;
764
764
  for (let r of e.blocks) {
765
765
  let i = e.directiveText.indexOf(r.text, n);
@@ -773,7 +773,7 @@ function Rt(e) {
773
773
  }
774
774
  return t;
775
775
  }
776
- function zt(e, t, n) {
776
+ function Rt(e, t, n) {
777
777
  let { start: r, stop: i } = n.sourcePosition, a = t.filter((e) => e.stop > r && e.start < i);
778
778
  if (a.length === 0) return;
779
779
  let o = a[0], s = a[a.length - 1], c = o.start, l = s.stop;
@@ -787,7 +787,7 @@ function zt(e, t, n) {
787
787
  }
788
788
  };
789
789
  }
790
- function Bt(e, t, n) {
790
+ function zt(e, t, n) {
791
791
  if (!t) return;
792
792
  let r = e.directiveText.indexOf(t.text);
793
793
  if (r === -1) return;
@@ -800,15 +800,15 @@ function Bt(e, t, n) {
800
800
  stop: a
801
801
  };
802
802
  }
803
- function Vt(e, t) {
804
- let n = performance.now(), r = performance.now(), i = Rt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Ft(e.blocks), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = [], f;
803
+ function Bt(e, t) {
804
+ let n = performance.now(), r = performance.now(), i = Lt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Pt(e.blocks), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = [], f;
805
805
  for (let t of e.blocks) {
806
- t.qualifiedVersion = Nt(t);
807
- let e = Mt(t);
806
+ t.qualifiedVersion = Mt(t);
807
+ let e = jt(t);
808
808
  (e.length > 0 || t.qualifiedVersion) && (d = e, f = t.qualifiedVersion), l.set(t.id, d), u.set(t.id, f);
809
809
  }
810
810
  let p = performance.now() - o, m = performance.now(), h = x(), g = le(e.directiveText, t === void 0 ? void 0 : h), _ = performance.now() - m, v = performance.now(), y = g.map((t) => {
811
- let n = zt(e, i, t), r = jt(s, n) ?? At(e.blocks, t), a = Mt(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], d = Bt(e, r, t), f = Lt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
811
+ let n = Rt(e, i, t), r = At(s, n) ?? kt(e.blocks, t), a = jt(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], d = zt(e, r, t), f = It(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
812
812
  return {
813
813
  articleId: e.id,
814
814
  blockId: r?.id,
@@ -832,8 +832,8 @@ function Vt(e, t) {
832
832
  if (!t) return [e];
833
833
  if (b.has(t.id)) return [];
834
834
  let n = S.get(t.id);
835
- if (n === void 0 && (n = Le(t.text, Mt(t), e.directive), S.set(t.id, n)), !n) {
836
- let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ie(t.text, n.operations.length) : null;
835
+ if (n === void 0 && (n = Fe(t.text, jt(t), e.directive), S.set(t.id, n)), !n) {
836
+ let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Pe(t.text, n.operations.length) : null;
837
837
  return [r ? {
838
838
  ...e,
839
839
  sourceAnnotations: r
@@ -864,13 +864,13 @@ function Vt(e, t) {
864
864
  totalMs: Math.round((performance.now() - n) * 10) / 10
865
865
  }), C;
866
866
  }
867
- function Ht(e) {
867
+ function Vt(e) {
868
868
  let t = /* @__PURE__ */ new Map(), n = [], r = /* @__PURE__ */ new Set();
869
869
  for (let i of e) {
870
- let e = qe(i.directive);
870
+ let e = Ge(i.directive);
871
871
  if (e.length === 0) continue;
872
872
  let a = e.map(({ num: e }) => ({
873
- definitionId: `${i.articleId}:article:${We(e)}`,
873
+ definitionId: `${i.articleId}:article:${He(e)}`,
874
874
  num: e
875
875
  }));
876
876
  t.set(i, a);
@@ -893,13 +893,13 @@ function Ht(e) {
893
893
  definitions: n
894
894
  };
895
895
  }
896
- function Ut(e, t, n) {
897
- let r = new Map(t.map((e) => [Ue(e.num), e]));
896
+ function Ht(e, t, n) {
897
+ let r = new Map(t.map((e) => [Ve(e.num), e]));
898
898
  return e.map((e) => {
899
- let t = n.get(e), i = t?.[0], a = [...Je(e.directive.reference)].map((e) => r.get(Ue(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
899
+ let t = n.get(e), i = t?.[0], a = [...Ke(e.directive.reference)].map((e) => r.get(Ve(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
900
900
  definitionId: a.definitionId,
901
901
  num: a.num
902
- }, s = Ye(e.directive), c = (e.targetIds?.length ?? 0) > 0;
902
+ }, s = qe(e.directive), c = (e.targetIds?.length ?? 0) > 0;
903
903
  return {
904
904
  ...e,
905
905
  ...i === void 0 ? {} : { createdArticle: i },
@@ -912,7 +912,7 @@ function Ut(e, t, n) {
912
912
  };
913
913
  });
914
914
  }
915
- function Wt(e) {
915
+ function Ut(e) {
916
916
  switch (e.kind) {
917
917
  case "insert_after":
918
918
  case "insert_before": return [e.insertText];
@@ -930,8 +930,8 @@ function Wt(e) {
930
930
  default: return [];
931
931
  }
932
932
  }
933
- function Gt(e) {
934
- return e.flatMap((e) => Wt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
933
+ function Wt(e) {
934
+ return e.flatMap((e) => Ut(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
935
935
  code: "nested_french_quote_in_redaction",
936
936
  message: "Écart à la règle légistique détecté : une citation imbriquée dans une rédaction devrait utiliser des guillemets anglais et non des guillemets français.",
937
937
  details: {
@@ -943,18 +943,18 @@ function Gt(e) {
943
943
  }
944
944
  })));
945
945
  }
946
- function Kt(e) {
947
- return Wt(e).map((t) => ({
946
+ function Gt(e) {
947
+ return Ut(e).map((t) => ({
948
948
  directiveKind: e.kind,
949
949
  text: t
950
950
  }));
951
951
  }
952
- function qt(e) {
952
+ function Kt(e) {
953
953
  let t = /* @__PURE__ */ new Set();
954
954
  for (let n of e.matchAll(/«[^«»\n]+»/gu)) t.add(n[0]);
955
955
  return Array.from(t);
956
956
  }
957
- function Jt(e, t) {
957
+ function qt(e, t) {
958
958
  let n = new Map(e.blocks.map((e) => [e.id, e])), r = t.sourceBlockIds ?? e.blocks.map((e) => e.id), i = [], a = 0;
959
959
  for (let e of r) {
960
960
  let t = n.get(e);
@@ -966,11 +966,11 @@ function Jt(e, t) {
966
966
  }
967
967
  return i;
968
968
  }
969
- function Yt(e, t, n) {
969
+ function Jt(e, t, n) {
970
970
  return e.find((e) => t >= e.start && n <= e.stop);
971
971
  }
972
- function Xt(e, t, n) {
973
- let r = qt(n), i = r.flatMap((t) => {
972
+ function Yt(e, t, n) {
973
+ let r = Kt(n), i = r.flatMap((t) => {
974
974
  for (let n of e.blocks) {
975
975
  let e = n.text.indexOf(t);
976
976
  if (e !== -1) return [{
@@ -989,7 +989,7 @@ function Xt(e, t, n) {
989
989
  e.directiveText
990
990
  ].filter((e) => e !== void 0 && e.length > 0), o = a.find((e) => r.some((t) => e.includes(t))) ?? a[0];
991
991
  if (!o) return [];
992
- let s = Jt(e, t);
992
+ let s = qt(e, t);
993
993
  if (s.length === 0) return [];
994
994
  let c = [], l = 0;
995
995
  for (let e of r) {
@@ -997,7 +997,7 @@ function Xt(e, t, n) {
997
997
  if (t === -1) continue;
998
998
  let n = t + e.length;
999
999
  l = n;
1000
- let r = Yt(s, t, n);
1000
+ let r = Jt(s, t, n);
1001
1001
  r && c.push({
1002
1002
  blockId: r.block.id,
1003
1003
  start: t - r.start,
@@ -1007,15 +1007,15 @@ function Xt(e, t, n) {
1007
1007
  }
1008
1008
  return c;
1009
1009
  }
1010
- function Zt(e, t) {
1010
+ function Xt(e, t) {
1011
1011
  let n = new Map(e.map((e) => [e.id, e]));
1012
1012
  return t.flatMap((e) => {
1013
1013
  let t = n.get(e.articleId);
1014
- return t ? Kt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1014
+ return t ? Gt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1015
1015
  articleId: e.articleId,
1016
1016
  code: "nested_french_quote_in_redaction",
1017
1017
  message: "Écart à la règle légistique détecté : une citation imbriquée dans une rédaction devrait utiliser des guillemets anglais et non des guillemets français.",
1018
- ranges: Xt(t, e, r),
1018
+ ranges: Yt(t, e, r),
1019
1019
  severity: "warning",
1020
1020
  details: {
1021
1021
  blockId: e.blockId,
@@ -1026,7 +1026,7 @@ function Zt(e, t) {
1026
1026
  })) : [];
1027
1027
  });
1028
1028
  }
1029
- function Qt(e, t) {
1029
+ function Zt(e, t) {
1030
1030
  let n = new Map(e.flatMap((e) => [...te(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
1031
1031
  articleId: e.id,
1032
1032
  blockIds: e.blocks.slice(t - 1, n.endIndex + 1).map((e) => e.id),
@@ -1049,13 +1049,13 @@ function Qt(e, t) {
1049
1049
  }];
1050
1050
  });
1051
1051
  }
1052
- function $t(e, t, n, r, i, a, o = !0, s) {
1053
- let c = new Te("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 = {
1052
+ function Qt(e, t, n, r, i, a, o = !0, s) {
1053
+ let c = new Ce("parsedBill.buildParsedDocument"), l = i.reduce((e, t) => e + t.blocks.length, 0), u = c.timeSync("buildDirectiveText", () => i.map((e) => e.directiveText).filter(Boolean).join("\n")), d = {
1054
1054
  sourceFormat: e,
1055
1055
  documentDate: r,
1056
1056
  html: t,
1057
1057
  htmlWithLinks: n,
1058
- tableOfContents: a ?? c.timeSync("extractTableOfContents", () => v(u), { inputSize: u.length }),
1058
+ tableOfContents: a ?? c.timeSync("extractTableOfContents", () => y(u), { inputSize: u.length }),
1059
1059
  articles: i
1060
1060
  };
1061
1061
  if (!o) {
@@ -1071,14 +1071,14 @@ function $t(e, t, n, r, i, a, o = !0, s) {
1071
1071
  directiveTextSize: u.length
1072
1072
  }), e;
1073
1073
  }
1074
- let f = c.timeSync("extractGlobalApplicabilityDate", () => et(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1074
+ let f = c.timeSync("extractGlobalApplicabilityDate", () => Qe(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1075
1075
  let e = [];
1076
1076
  for (let t of i) {
1077
- let n = Vt(t, c.enabled ? p : void 0);
1077
+ let n = Bt(t, c.enabled ? p : void 0);
1078
1078
  e.push(...n);
1079
1079
  }
1080
1080
  return e;
1081
- }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Ht(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Ut(m, g, h), { count: m.length }), y = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Gt(_), { count: _.length }), b = [...s ?? [], ...y], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Zt(i, _), ...Qt(i, _)], { count: _.length }), S = {
1081
+ }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Vt(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Ht(m, g, h), { count: m.length }), v = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Wt(_), { count: _.length }), b = [...s ?? [], ...v], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Xt(i, _), ...Zt(i, _)], { count: _.length }), S = {
1082
1082
  ...d,
1083
1083
  ...f ? { globalApplicabilityDate: f } : {},
1084
1084
  ...g.length > 0 ? { internalArticleDefinitions: g } : {},
@@ -1172,18 +1172,18 @@ function $t(e, t, n, r, i, a, o = !0, s) {
1172
1172
  slowDirectiveArticles: p.toSorted((e, t) => t.totalMs - e.totalMs).slice(0, 10)
1173
1173
  }), S;
1174
1174
  }
1175
- function en(e) {
1175
+ function $t(e) {
1176
1176
  return { items: e.map((e) => ({
1177
1177
  id: e.id,
1178
1178
  line: e.title ? `${e.label} : ${e.title}` : e.label,
1179
1179
  type: "article"
1180
1180
  })) };
1181
1181
  }
1182
- function tn(e) {
1183
- return Array.from(ce(e)).filter((e) => e.type === "article").map((e) => N(e.line.split(/[::]/u)[0]));
1182
+ function en(e) {
1183
+ return Array.from(ce(e)).filter((e) => e.type === "article").map((e) => F(e.line.split(/[::]/u)[0]));
1184
1184
  }
1185
- function nn(e, t, n, r) {
1186
- let i = _t(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ce(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? P(e.num) : y(e.html)("p.TCNumArticle").first().attr("id") ?? P(e.label) : e.id), c = o.map((e) => e.id);
1185
+ function tn(e, t, n, r) {
1186
+ let i = gt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ce(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? I(e.num) : w(e.html)("p.TCNumArticle").first().attr("id") ?? I(e.label) : e.id), c = o.map((e) => e.id);
1187
1187
  (c.length !== s.length || c.some((e, t) => e !== s[t])) && i.push({
1188
1188
  code: "article_toc_source_heading_mismatch",
1189
1189
  message: "The table of contents differs from the parsed article headings",
@@ -1199,8 +1199,8 @@ function nn(e, t, n, r) {
1199
1199
  });
1200
1200
  return i;
1201
1201
  }
1202
- function rn(e, t, n) {
1203
- let r = tn(v(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => N(e.label)), a = en(e), o = [...n, ...nn(e, a, t, "assemblee-html")];
1202
+ function nn(e, t, n) {
1203
+ let r = en(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => F(e.label)), a = $t(e), o = [...n, ...tn(e, a, t, "assemblee-html")];
1204
1204
  if (r.length > 0 && (r.length !== i.length || r.some((e, t) => e !== i[t]))) {
1205
1205
  let t = r.findIndex((e, t) => e !== i[t]);
1206
1206
  o.push({
@@ -1224,24 +1224,24 @@ function rn(e, t, n) {
1224
1224
  tableOfContents: a
1225
1225
  };
1226
1226
  }
1227
- async function an(e, t) {
1228
- let n = new Te("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => on(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Et(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => y(i)), o = n.timeSync("extractArticleHeadings", () => yt(a)), s = new Set(o.map((e) => e.id)), c = pt(a).filter((e) => !s.has(P(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1227
+ async function rn(e, t) {
1228
+ let n = new Ce("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => an(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Tt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => w(i)), o = n.timeSync("extractArticleHeadings", () => vt(a)), s = new Set(o.map((e) => e.id)), c = ft(a).filter((e) => !s.has(I(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1229
1229
  code: "article_toc_source_heading_mismatch",
1230
1230
  message: "Some structural article headings were not retained",
1231
1231
  details: { discardedCandidates: c }
1232
- }] : [], u = I(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1233
- let n = St(a, e, o[t + 1], u), r = wt(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1232
+ }] : [], u = lt(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1233
+ let n = xt(a, e, o[t + 1], u), r = Ct(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1234
1234
  return {
1235
1235
  id: e.id,
1236
1236
  label: e.label,
1237
1237
  num: e.num,
1238
1238
  title: e.title,
1239
- text: ot(a, n),
1240
- html: n.map((e) => nt(a, e)).join("\n"),
1239
+ text: it(a, n),
1240
+ html: n.map((e) => et(a, e)).join("\n"),
1241
1241
  directiveText: i,
1242
1242
  blocks: r
1243
1243
  };
1244
- }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => Tt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => rn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => $t("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1244
+ }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => wt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => nn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => Qt("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1245
1245
  return h.diagnostics?.length && process.env.TISSEUSE_WARN_PARSED_BILL_DIAGNOSTICS === "1" && console.warn("Assemblée bill parsing diagnostics", h.diagnostics), n.log({
1246
1246
  articleCount: h.articles.length,
1247
1247
  blockCount: h.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1249,18 +1249,18 @@ async function an(e, t) {
1249
1249
  targetDirectiveCount: h.directives.filter((e) => e.targetIds !== void 0).length
1250
1250
  }), h;
1251
1251
  }
1252
- async function on(e, t) {
1252
+ async function an(e, t) {
1253
1253
  return {
1254
1254
  sourceFormat: "assemblee-html",
1255
1255
  documentDate: t.date,
1256
1256
  html: e,
1257
- linkedHtml: await ct(e, t, t.date)
1257
+ linkedHtml: await ot(e, t, t.date)
1258
1258
  };
1259
1259
  }
1260
- function z(e) {
1260
+ function B(e) {
1261
1261
  return e.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;");
1262
1262
  }
1263
- function sn(e) {
1263
+ function on(e) {
1264
1264
  let t = e;
1265
1265
  for (let e = 0; e < 3; e++) {
1266
1266
  let e = t;
@@ -1268,27 +1268,27 @@ function sn(e) {
1268
1268
  }
1269
1269
  return t;
1270
1270
  }
1271
- function cn(e) {
1271
+ function sn(e) {
1272
1272
  return /(?:&lt;|&amp;lt;)\/?(?:p|br|span|b|i|u|sup|sub|table|thead|tbody|tr|th|td|ul|ol|li)\b/iu.test(e);
1273
1273
  }
1274
- function B(e) {
1274
+ function V(e) {
1275
1275
  return e.name.replace(/^.*:/u, "");
1276
1276
  }
1277
- function ln(e, t) {
1278
- return t.children.map((t) => V(e, t)).filter(Boolean).join("");
1277
+ function cn(e, t) {
1278
+ return t.children.map((t) => H(e, t)).filter(Boolean).join("");
1279
1279
  }
1280
- function un(e, t) {
1281
- return t.children.map((t) => t.type === "text" && cn(t.data) ? sn(t.data) : V(e, t)).filter(Boolean).join("");
1280
+ function ln(e, t) {
1281
+ return t.children.map((t) => t.type === "text" && sn(t.data) ? on(t.data) : H(e, t)).filter(Boolean).join("");
1282
1282
  }
1283
- function V(e, t) {
1283
+ function H(e, t) {
1284
1284
  if (t.type === "text") {
1285
1285
  let e = t.data.replace(/\s+\./gu, ".");
1286
- return cn(e) ? sn(e) : z(e);
1286
+ return sn(e) ? on(e) : B(e);
1287
1287
  }
1288
- if (!F(t)) return "";
1289
- let n = B(t), r = ln(e, t);
1288
+ if (!L(t)) return "";
1289
+ let n = V(t), r = cn(e, t);
1290
1290
  switch (n) {
1291
- case "p": return `<p${H(e, t, [
1291
+ case "p": return `<p${U(e, t, [
1292
1292
  "id",
1293
1293
  "class",
1294
1294
  "align",
@@ -1302,13 +1302,13 @@ function V(e, t) {
1302
1302
  case "u":
1303
1303
  case "sup":
1304
1304
  case "sub":
1305
- case "abbr": return `<${n}${H(e, t, [
1305
+ case "abbr": return `<${n}${U(e, t, [
1306
1306
  "id",
1307
1307
  "class",
1308
1308
  "title",
1309
1309
  "style"
1310
1310
  ])}>${r}</${n}>`;
1311
- case "a": return `<a href="${z(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${H(e, t, [
1311
+ case "a": return `<a href="${B(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${U(e, t, [
1312
1312
  "id",
1313
1313
  "class",
1314
1314
  "title",
@@ -1319,8 +1319,8 @@ function V(e, t) {
1319
1319
  case "tbody":
1320
1320
  case "tr":
1321
1321
  case "th":
1322
- case "td": return pn(e, t, n, r);
1323
- case "caption": return `<caption${H(e, t, [
1322
+ case "td": return fn(e, t, n, r);
1323
+ case "caption": return `<caption${U(e, t, [
1324
1324
  "id",
1325
1325
  "class",
1326
1326
  "align",
@@ -1328,12 +1328,12 @@ function V(e, t) {
1328
1328
  ])}>${r}</caption>`;
1329
1329
  case "num": return `<span class="akn-num">${r}</span> `;
1330
1330
  case "heading": return `<p class="akn-heading">${r}</p>`;
1331
- case "content": return un(e, t);
1332
- case "alinea": return U(e, t, "div", "akn-alinea");
1333
- case "article": return U(e, t, "article", "akn-article");
1331
+ case "content": return ln(e, t);
1332
+ case "alinea": return Dn(e, t, "div", "akn-alinea");
1333
+ case "article": return Dn(e, t, "article", "akn-article");
1334
1334
  case "blockList":
1335
1335
  case "list": return `<div class="akn-list">${r}</div>`;
1336
- case "item": return U(e, t, "div", "akn-item");
1336
+ case "item": return Dn(e, t, "div", "akn-item");
1337
1337
  case "listIntroduction":
1338
1338
  case "listWrapUp":
1339
1339
  case "intro":
@@ -1349,12 +1349,12 @@ function V(e, t) {
1349
1349
  case "book":
1350
1350
  case "tome":
1351
1351
  case "subchapter":
1352
- case "subsection": return U(e, t, "section", `akn-${n}`);
1352
+ case "subsection": return Dn(e, t, "section", `akn-${n}`);
1353
1353
  case "crossHeading": return `<p class="akn-cross-heading">${r}</p>`;
1354
1354
  default: return r;
1355
1355
  }
1356
1356
  }
1357
- function dn(e, t) {
1357
+ function un(e, t) {
1358
1358
  let n = e(t).text();
1359
1359
  if (!n.includes("«") || !n.includes("»") || e(t).find("table").length > 0) return;
1360
1360
  let r = e(t).find("tr").get().filter((n) => e(n).closest("table").get(0) === t);
@@ -1365,39 +1365,39 @@ function dn(e, t) {
1365
1365
  let l = s ? o[0] : void 0, u = c ? o.at(-1) : void 0;
1366
1366
  if (l) {
1367
1367
  let t = Number(e(l).attr("rowspan") ?? "1");
1368
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && M(e(l).text()) !== "«") return [];
1368
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && P(e(l).text()) !== "«") return [];
1369
1369
  i = t - 1;
1370
1370
  }
1371
1371
  if (u) {
1372
1372
  let t = Number(e(u).attr("rowspan") ?? "1");
1373
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(M(e(u).text()))) return [];
1373
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(P(e(u).text()))) return [];
1374
1374
  a = t - 1;
1375
1375
  }
1376
1376
  return [l, u];
1377
1377
  });
1378
1378
  if (o.some((e) => e.length !== 2)) return;
1379
- let s = o.map(([t]) => t ? M(e(t).text()) : ""), c = o.map(([, t]) => t ? M(e(t).text()) : "");
1379
+ let s = o.map(([t]) => t ? P(e(t).text()) : ""), c = o.map(([, t]) => t ? P(e(t).text()) : "");
1380
1380
  if (!(s.filter((e) => e === "«").length !== 1 || c.filter((e) => /^»\s*;?$/u.test(e)).length !== 1 || s.some((e) => e !== "" && e !== "«") || c.some((e) => e !== "" && !/^»\s*;?$/u.test(e)) || o.some(([t, n]) => [t, n].some((t) => t && e(t).attr("colspan") !== void 0))) && !(s.indexOf("«") > c.findIndex((e) => e.startsWith("»")))) {
1381
1381
  e(t).addClass("akn-quoted-table");
1382
1382
  for (let [t, n] of o) t && e(t).addClass("akn-quote-column"), n && e(n).addClass("akn-quote-column");
1383
1383
  }
1384
1384
  }
1385
- function fn(e, t) {
1386
- let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(M(e(t).text())))).text();
1387
- return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => M(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1385
+ function dn(e, t) {
1386
+ let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(P(e(t).text())))).text();
1387
+ return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => P(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1388
1388
  }
1389
- function H(e, t, n, r = {}) {
1389
+ function U(e, t, n, r = {}) {
1390
1390
  let i = [];
1391
1391
  for (let r of n) {
1392
1392
  if (r === "style") continue;
1393
1393
  let n = e(t).attr(r);
1394
- n !== void 0 && i.push(`${r}="${z(n)}"`);
1394
+ n !== void 0 && i.push(`${r}="${B(n)}"`);
1395
1395
  }
1396
1396
  let a = r.style ?? e(t).attr("style");
1397
- return a && i.push(`style="${z(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1397
+ return a && i.push(`style="${B(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1398
1398
  }
1399
- function pn(e, t, n, r) {
1400
- return `<${n}${H(e, t, [
1399
+ function fn(e, t, n, r) {
1400
+ return `<${n}${U(e, t, [
1401
1401
  "id",
1402
1402
  "class",
1403
1403
  "colspan",
@@ -1410,143 +1410,143 @@ function pn(e, t, n, r) {
1410
1410
  "cellspacing",
1411
1411
  "cellpadding",
1412
1412
  "style"
1413
- ], { style: mn(e, t, n) })}>${r}</${n}>`;
1413
+ ], { style: pn(e, t, n) })}>${r}</${n}>`;
1414
1414
  }
1415
- function mn(e, t, n) {
1415
+ function pn(e, t, n) {
1416
1416
  let r = e(t).attr("style") ?? "";
1417
- return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = hn(r, "text-align", "center")), r || void 0;
1417
+ return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = mn(r, "text-align", "center")), r || void 0;
1418
1418
  }
1419
- function hn(e, t, n) {
1419
+ function mn(e, t, n) {
1420
1420
  let r = e.trim();
1421
1421
  return `${r}${r && !r.endsWith(";") ? ";" : ""} ${t}: ${n};`.trim();
1422
1422
  }
1423
- function gn(e, t) {
1424
- let n = [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean);
1425
- return n.length === 0 ? "" : `<p class="akn-heading">${z(n.join(" "))}</p>`;
1423
+ function hn(e, t) {
1424
+ let n = [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean);
1425
+ return n.length === 0 ? "" : `<p class="akn-heading">${B(n.join(" "))}</p>`;
1426
1426
  }
1427
- function _n(e, t) {
1427
+ function gn(e, t) {
1428
1428
  if (!t) return !1;
1429
- let n = (e) => M(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1430
- return n(M(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1429
+ let n = (e) => P(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1430
+ return n(P(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1431
1431
  }
1432
- function vn(e) {
1433
- let t = z(e);
1432
+ function _n(e) {
1433
+ let t = B(e);
1434
1434
  return `<p data-pastille="${t}" class="pastille"><span aria-label="pastille ${t}" data-pastille="${t}"></span></p>`;
1435
1435
  }
1436
- function yn(e, t) {
1437
- return bn([xn({
1436
+ function vn(e, t) {
1437
+ return yn([bn({
1438
1438
  content: e,
1439
1439
  pastille: t
1440
1440
  })]);
1441
1441
  }
1442
- function bn(e) {
1442
+ function yn(e) {
1443
1443
  return `<table class="fixed-size large akn-pastille-table"><colgroup><col style="width: 5.0%;" class="texte-col-0 texte-col-pastille"><col style="width: 95.0%;" class="texte-col-1"></colgroup><tbody>${e.join("\n")}</tbody></table>`;
1444
1444
  }
1445
- function xn({ content: e, pastille: t, style: n, contextClass: r }) {
1446
- let i = n ? ` style="${z(n)}"` : "", a = r ? ` ${z(r)}` : "";
1447
- return `<tr${r ? ` class="${z(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${vn(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1445
+ function bn({ content: e, pastille: t, style: n, contextClass: r }) {
1446
+ let i = n ? ` style="${B(n)}"` : "", a = r ? ` ${B(r)}` : "";
1447
+ return `<tr${r ? ` class="${B(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${_n(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1448
1448
  }
1449
- function Sn({ content: e, style: t, contextClass: n }) {
1450
- let r = t ? ` style="${z(t)}"` : "", i = n ? ` ${z(n)}` : "";
1451
- return `<tr${n ? ` class="${z(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>`;
1449
+ function xn({ content: e, style: t, contextClass: n }) {
1450
+ let r = t ? ` style="${B(t)}"` : "", i = n ? ` ${B(n)}` : "";
1451
+ return `<tr${n ? ` class="${B(n)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 no-right-border"><div class="tableauComparatifCell${i}"><p class="pastille"><br></p></div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${i}"${r}>${e}</div></td></tr>`;
1452
1452
  }
1453
- function Cn(e, t) {
1453
+ function Sn(e, t) {
1454
1454
  return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1455
1455
  }
1456
- function wn(e, t) {
1456
+ function Cn(e, t) {
1457
1457
  return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1458
1458
  }
1459
- function Tn(e, t) {
1460
- return e(t).children().get().filter((e) => F(e) ? B(e) === "content" : !1).map((t) => V(e, t)).filter(Boolean).join("\n");
1459
+ function wn(e, t) {
1460
+ return e(t).children().get().filter((e) => L(e) ? V(e) === "content" : !1).map((t) => H(e, t)).filter(Boolean).join("\n");
1461
1461
  }
1462
- function En(e, t) {
1462
+ function Tn(e, t) {
1463
1463
  let n = [];
1464
1464
  return e(t).children().each((t, r) => {
1465
- if (!F(r)) return;
1466
- let i = B(r);
1467
- i === "num" || i === "heading" || i === "content" || n.push(V(e, r));
1465
+ if (!L(r)) return;
1466
+ let i = V(r);
1467
+ i === "num" || i === "heading" || i === "content" || n.push(H(e, r));
1468
1468
  }), n.filter(Boolean);
1469
1469
  }
1470
- function Dn(e, t) {
1471
- let n = [], r = B(t), i = r === "alinea" ? Cn(e, t) : void 0, a = Tn(e, t), o = On(e, t, r, i), s = Pn(e, t);
1470
+ function En(e, t) {
1471
+ let n = [], r = V(t), i = r === "alinea" ? Sn(e, t) : void 0, a = wn(e, t), o = On(e, t, r, i), s = Pn(e, t);
1472
1472
  if (i) {
1473
- let r = [_n(a, M(e(t).children("num").first().text())) ? "" : gn(e, t), a].filter(Boolean).join("\n");
1474
- M(r) && n.push(xn({
1473
+ let r = [gn(a, P(e(t).children("num").first().text())) ? "" : hn(e, t), a].filter(Boolean).join("\n");
1474
+ P(r) && n.push(bn({
1475
1475
  content: r,
1476
1476
  pastille: i,
1477
1477
  style: o,
1478
1478
  contextClass: s
1479
1479
  }));
1480
- } else a && n.push(Sn({
1480
+ } else a && n.push(xn({
1481
1481
  content: a,
1482
1482
  style: o,
1483
1483
  contextClass: s
1484
1484
  }));
1485
1485
  for (let r of e(t).children().get()) {
1486
- if (!F(r)) continue;
1487
- let t = B(r);
1488
- t === "num" || t === "heading" || t === "content" || (t === "alinea" || wn(e, r)) && n.push(...Dn(e, r));
1486
+ if (!L(r)) continue;
1487
+ let t = V(r);
1488
+ t === "num" || t === "heading" || t === "content" || (t === "alinea" || Cn(e, r)) && n.push(...En(e, r));
1489
1489
  }
1490
1490
  return n;
1491
1491
  }
1492
- function U(e, t, n, r) {
1493
- let a = B(t), o = e(t).attr("eId") ?? e(t).attr("GUID"), s = Cn(e, t), c = On(e, t, a, s), l = [`<${n} ${[
1494
- o ? `id="${z(o)}"` : void 0,
1492
+ function Dn(e, t, n, r) {
1493
+ let i = V(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = Sn(e, t), s = On(e, t, i, o), c = [`<${n} ${[
1494
+ a ? `id="${B(a)}"` : void 0,
1495
1495
  `class="${r}"`,
1496
- s ? `data-pastille="${z(s)}"` : void 0,
1497
- c ? `style="${z(c)}"` : void 0
1496
+ o ? `data-pastille="${B(o)}"` : void 0,
1497
+ s ? `style="${B(s)}"` : void 0
1498
1498
  ].filter((e) => e !== void 0).join(" ")}>`];
1499
- if (a === "part" || a === "title") {
1500
- let r = jn(e, t, a), i = Nn(e, t), o = r ? [Sn({
1499
+ if (i === "part" || i === "title") {
1500
+ let r = jn(e, t, i), a = Nn(e, t), o = r ? [xn({
1501
1501
  content: r,
1502
- contextClass: i
1502
+ contextClass: a
1503
1503
  })] : [], s = () => {
1504
- o.length !== 0 && (l.push(An(o)), o = []);
1504
+ o.length !== 0 && (c.push(An(o)), o = []);
1505
1505
  };
1506
1506
  return e(t).children().each((t, n) => {
1507
- if (!F(n)) return;
1508
- let r = B(n);
1507
+ if (!L(n)) return;
1508
+ let r = V(n);
1509
1509
  if (!(r === "num" || r === "heading" || r === "content")) {
1510
1510
  if (r === "alinea") {
1511
- o.push(...Dn(e, n));
1511
+ o.push(...En(e, n));
1512
1512
  return;
1513
1513
  }
1514
- s(), l.push(V(e, n));
1514
+ s(), c.push(H(e, n));
1515
1515
  }
1516
- }), s(), l.push(`</${n}>`), l.join("\n");
1516
+ }), s(), c.push(`</${n}>`), c.join("\n");
1517
1517
  }
1518
- if (a === "article") {
1519
- let r = M(e(t).children("num").first().text()), a = M(e(t).children("heading").first().text()), o = i(r) ?? {
1518
+ if (i === "article") {
1519
+ let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = f(r) ?? {
1520
1520
  label: r,
1521
1521
  num: r
1522
- }, s = `<p class="TCNumArticle as-text toc-article dispositif" id="${z(`_TocArt${(o.num ?? r).replace(/\s+/gu, "")}`)}">${z(o.label)}${a ? ` : ${z(a)}` : ""}</p>`;
1523
- if (wn(e, t)) {
1524
- let r = [Sn({
1525
- content: s,
1526
- contextClass: In(o.label)
1527
- }), ...Dn(e, t)];
1528
- l.push(bn(r));
1529
- for (let n of En(e, t)) n.includes("akn-pastille-table") || l.push(n);
1530
- return l.push(`</${n}>`), l.join("\n");
1522
+ }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${B(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${B(a.label)}${i ? ` : ${B(i)}` : ""}</p>`;
1523
+ if (Cn(e, t)) {
1524
+ let r = [xn({
1525
+ content: o,
1526
+ contextClass: In(a.label)
1527
+ }), ...En(e, t)];
1528
+ c.push(yn(r));
1529
+ for (let n of Tn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1530
+ return c.push(`</${n}>`), c.join("\n");
1531
1531
  }
1532
- l.push(s);
1532
+ c.push(o);
1533
1533
  }
1534
- let u = [];
1534
+ let l = [];
1535
1535
  for (let n of ["content", "children"]) e(t).children().each((t, r) => {
1536
- if (!F(r)) return;
1537
- let i = B(r);
1538
- i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || u.push(V(e, r));
1536
+ if (!L(r)) return;
1537
+ let i = V(r);
1538
+ i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || l.push(H(e, r));
1539
1539
  });
1540
- let d = u.join("\n");
1541
- if (a !== "article") {
1542
- let n = _n(d, M(e(t).children("num").first().text())) ? "" : gn(e, t);
1543
- n && l.push(n);
1540
+ let u = l.join("\n");
1541
+ if (i !== "article") {
1542
+ let n = gn(u, P(e(t).children("num").first().text())) ? "" : hn(e, t);
1543
+ n && c.push(n);
1544
1544
  }
1545
- return l.push(s ? yn(d, s) : d), l.push(`</${n}>`), l.join("\n");
1545
+ return c.push(o ? vn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1546
1546
  }
1547
1547
  function On(e, t, n, r) {
1548
1548
  let i = kn(e(t).attr("style") ?? "", "font-family");
1549
- return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = hn(i, "text-align", "center")), i || void 0;
1549
+ return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = mn(i, "text-align", "center")), i || void 0;
1550
1550
  }
1551
1551
  function kn(e, t) {
1552
1552
  return e.split(";").map((e) => e.trim()).filter(Boolean).filter((e) => !e.toLowerCase().startsWith(`${t.toLowerCase()}:`)).join(";");
@@ -1555,8 +1555,8 @@ function An(e) {
1555
1555
  return `<table class="fixed-size large akn-section-table"><colgroup><col style="width: 5.0%;" class="texte-col-0 texte-col-pastille"><col style="width: 95.0%;" class="texte-col-1"></colgroup><tbody>${e.join("\n")}</tbody></table>`;
1556
1556
  }
1557
1557
  function jn(e, t, n) {
1558
- let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = Mn(n), o = [];
1559
- return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${z(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${z(i)}</span></p>`), o.join("\n");
1558
+ let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = Mn(n), o = [];
1559
+ return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${B(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${B(i)}</span></p>`), o.join("\n");
1560
1560
  }
1561
1561
  function Mn(e) {
1562
1562
  switch (e) {
@@ -1583,13 +1583,13 @@ function Mn(e) {
1583
1583
  }
1584
1584
  }
1585
1585
  function Nn(e, t) {
1586
- let n = Fn(M(e(t).children("num").first().text()));
1586
+ let n = Fn(P(e(t).children("num").first().text()));
1587
1587
  if (n) return n;
1588
1588
  for (let n of e(t).parents().get()) {
1589
- if (!F(n)) continue;
1590
- let t = B(n);
1589
+ if (!L(n)) continue;
1590
+ let t = V(n);
1591
1591
  if (t !== "title" && t !== "part") continue;
1592
- let r = Fn(M(e(n).children("num").first().text()));
1592
+ let r = Fn(P(e(n).children("num").first().text()));
1593
1593
  if (r) return r;
1594
1594
  }
1595
1595
  }
@@ -1597,7 +1597,7 @@ function Pn(e, t) {
1597
1597
  return Nn(e, t);
1598
1598
  }
1599
1599
  function Fn(e) {
1600
- let [t, ...n] = M(e).split(/\s+/u);
1600
+ let [t, ...n] = P(e).split(/\s+/u);
1601
1601
  if (!t || n.length === 0) return;
1602
1602
  let r = t.toLocaleLowerCase("fr-FR");
1603
1603
  if ([
@@ -1608,7 +1608,7 @@ function Fn(e) {
1608
1608
  ].includes(r)) return `${r}-${n.join("_")}`;
1609
1609
  }
1610
1610
  function In(e) {
1611
- return `article-${M(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1611
+ return `article-${P(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1612
1612
  }
1613
1613
  function Ln(e) {
1614
1614
  switch (e) {
@@ -1623,16 +1623,16 @@ function Ln(e) {
1623
1623
  }
1624
1624
  }
1625
1625
  function Rn(e, t) {
1626
- return [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1626
+ return [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1627
1627
  }
1628
1628
  function zn(e, t) {
1629
- let n = M(e(t).children("num").first().text()), r = M(e(t).children("heading").first().text()), a = i(n) ?? {
1629
+ let n = P(e(t).children("num").first().text()), r = P(e(t).children("heading").first().text()), i = f(n) ?? {
1630
1630
  label: n,
1631
1631
  num: n
1632
1632
  };
1633
1633
  return {
1634
- id: `_TocArt${(a.num ?? n).replace(/\s+/gu, "")}`,
1635
- line: [a.label, r].filter(Boolean).join(" : "),
1634
+ id: `_TocArt${(i.num ?? n).replace(/\s+/gu, "")}`,
1635
+ line: [i.label, r].filter(Boolean).join(" : "),
1636
1636
  type: "article"
1637
1637
  };
1638
1638
  }
@@ -1642,8 +1642,8 @@ function Bn(e, t) {
1642
1642
  function Vn(e, t) {
1643
1643
  let n = { items: [] };
1644
1644
  return e(t).children().each((t, r) => {
1645
- if (!F(r)) return;
1646
- let i = B(r);
1645
+ if (!L(r)) return;
1646
+ let i = V(r);
1647
1647
  if (i === "article") {
1648
1648
  n.items.push(zn(e, r));
1649
1649
  return;
@@ -1670,14 +1670,14 @@ function Un(e) {
1670
1670
  return e("FRBRExpression FRBRdate[name=\"#depot\"]").attr("date") ?? e("FRBRWork FRBRdate[name=\"#presentation\"]").attr("date");
1671
1671
  }
1672
1672
  function Wn(e) {
1673
- e("table").each((t, n) => dn(e, n));
1673
+ e("table").each((t, n) => un(e, n));
1674
1674
  let t = e("preamble").first(), n = e("body").first(), r = ["<div class=\"akn-bill\">", "<style>.akn-bill p.pastille span:empty::before{content:attr(data-pastille)}</style>"];
1675
- return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(ln(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1676
- F(n) && r.push(B(n) === "article" ? U(e, n, "article", "akn-article") : V(e, n));
1675
+ return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(cn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1676
+ L(n) && r.push(V(n) === "article" ? Dn(e, n, "article", "akn-article") : H(e, n));
1677
1677
  }), r.push("</section></div>"), r.join("\n");
1678
1678
  }
1679
1679
  function Gn(e) {
1680
- let t = y(e, { xml: {
1680
+ let t = w(e, { xml: {
1681
1681
  decodeEntities: !1,
1682
1682
  lowerCaseTags: !1,
1683
1683
  lowerCaseAttributeNames: !1,
@@ -1691,41 +1691,41 @@ function Gn(e) {
1691
1691
  };
1692
1692
  }
1693
1693
  function Kn(e) {
1694
- return qn(y(e));
1694
+ return qn(w(e));
1695
1695
  }
1696
1696
  function qn(e) {
1697
1697
  let t = [];
1698
1698
  return e("article.akn-article").each((n, r) => {
1699
- let a = e(r).find("p.TCNumArticle").first().get(0), o = M(a ? e(a).text() : ""), s = i(o) ?? { label: o || `Article ${n + 1}` }, c = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, l = [r], u = wt(e, c, l), d = u.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1699
+ let i = e(r).find("p.TCNumArticle").first().get(0), a = P(i ? e(i).text() : ""), o = f(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = Ct(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1700
1700
  t.push({
1701
- id: c,
1702
- label: s.label,
1703
- num: s.num,
1704
- title: s.title,
1705
- text: ot(e, l),
1706
- html: nt(e, r),
1707
- directiveText: d,
1708
- blocks: u
1701
+ id: s,
1702
+ label: o.label,
1703
+ num: o.num,
1704
+ title: o.title,
1705
+ text: it(e, c),
1706
+ html: et(e, r),
1707
+ directiveText: u,
1708
+ blocks: l
1709
1709
  });
1710
1710
  }), t;
1711
1711
  }
1712
1712
  function Jn(e) {
1713
- let t = y(e);
1713
+ let t = w(e);
1714
1714
  return {
1715
1715
  articles: qn(t),
1716
1716
  htmlWithLinks: t.html()
1717
1717
  };
1718
1718
  }
1719
1719
  async function Yn(e, t) {
1720
- let n = new Te("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => y(e, { xml: {
1720
+ let n = new Ce("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => w(e, { xml: {
1721
1721
  decodeEntities: !1,
1722
1722
  lowerCaseTags: !1,
1723
1723
  lowerCaseAttributeNames: !1,
1724
1724
  xmlMode: !0
1725
- } })), i = t.date ?? Un(r), a = n.timeSync("renderAknHtml", () => Wn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ct(a, {
1725
+ } })), i = t.date ?? Un(r), a = n.timeSync("renderAknHtml", () => Wn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ot(a, {
1726
1726
  ...t,
1727
1727
  date: i
1728
- }, i)), s = n.timeSync("extractRenderedAknArticles", () => Kn(a)), c = n.timeSync("injectHiddenArticleSummary", () => Tt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Jn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Hn(r)), p = n.timeSync("buildParsedDocument", () => $t("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, nn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1728
+ }, i)), s = n.timeSync("extractRenderedAknArticles", () => Kn(a)), c = n.timeSync("injectHiddenArticleSummary", () => wt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Jn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Hn(r)), p = n.timeSync("buildParsedDocument", () => Qt("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, tn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1729
1729
  return n.log({
1730
1730
  articleCount: p.articles.length,
1731
1731
  blockCount: p.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1739,7 +1739,7 @@ async function Xn(e, t) {
1739
1739
  sourceFormat: "akoma-ntoso",
1740
1740
  documentDate: r,
1741
1741
  html: n.html,
1742
- linkedHtml: await ct(n.html, t, r)
1742
+ linkedHtml: await ot(n.html, t, r)
1743
1743
  };
1744
1744
  }
1745
1745
  //#endregion
@@ -1749,7 +1749,7 @@ function $n(e) {
1749
1749
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
1750
1750
  }
1751
1751
  function er(e) {
1752
- let t = $n(y(e).text()), n = [...t.matchAll(Zn)], r = /* @__PURE__ */ new Set(), i = [];
1752
+ let t = $n(w(e).text()), n = [...t.matchAll(Zn)], r = /* @__PURE__ */ new Set(), i = [];
1753
1753
  for (let [e, a] of n.entries()) {
1754
1754
  let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = Qn.exec(s), l = $n(s.slice(0, c?.index ?? s.length));
1755
1755
  if (l.length < 20 || r.has(l)) continue;
@@ -1768,7 +1768,7 @@ function er(e) {
1768
1768
  return i;
1769
1769
  }
1770
1770
  async function tr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1771
- let i = await an(t, {
1771
+ let i = await rn(t, {
1772
1772
  date: e,
1773
1773
  includeDirectiveAnalysis: !1,
1774
1774
  linkBaseUrl: n,
@@ -1792,7 +1792,7 @@ async function tr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1792
1792
  };
1793
1793
  }
1794
1794
  function nr(e, t) {
1795
- return ke("sha256").update(JSON.stringify({
1795
+ return Oe("sha256").update(JSON.stringify({
1796
1796
  item: e,
1797
1797
  metadata: t
1798
1798
  })).digest("hex");
@@ -1813,7 +1813,7 @@ function rr(e) {
1813
1813
  //#endregion
1814
1814
  //#region src/lib/server/senat_amendment_search.ts
1815
1815
  function ir(e) {
1816
- return e?.trim() ? y(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1816
+ return e?.trim() ? w(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1817
1817
  }
1818
1818
  function ar({ dispositifHtml: e, objetHtml: t }) {
1819
1819
  let n = ir(e), r = ir(t);
@@ -1828,7 +1828,7 @@ function ar({ dispositifHtml: e, objetHtml: t }) {
1828
1828
  }] : []];
1829
1829
  }
1830
1830
  function or(e, t) {
1831
- return ke("sha256").update(JSON.stringify({
1831
+ return Oe("sha256").update(JSON.stringify({
1832
1832
  item: e,
1833
1833
  metadata: t
1834
1834
  })).digest("hex");
@@ -1851,7 +1851,7 @@ function sr(e, t) {
1851
1851
  function cr(e) {
1852
1852
  return e === "start" ? "insert_before" : "insert_after";
1853
1853
  }
1854
- var lr = O(E("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = T(u, w([E("les?\\s+", { flags: "i" }), C], { value: (e) => e[1] }), C, pe), ur = T(w([E("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
1854
+ var lr = D(k("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = T(ee, O([k("les?\\s+", { flags: "i" }), u], { value: (e) => e[1] }), u, fe), ur = T(O([k("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
1855
1855
  let t = e[1];
1856
1856
  return {
1857
1857
  targetReference: t,
@@ -1860,58 +1860,58 @@ var lr = O(E("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]
1860
1860
  unit: ue(t)
1861
1861
  }
1862
1862
  };
1863
- } }), w([n], { value: (e) => ({ targetScope: e[0] }) })), K = O(w([
1864
- O(E("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1865
- O(E("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1863
+ } }), O([r], { value: (e) => ({ targetScope: e[0] }) })), K = D(O([
1864
+ D(k("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1865
+ D(k("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1866
1866
  G,
1867
- O(E("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1867
+ D(k("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1868
1868
  ], { value: (e, t) => ({
1869
1869
  reference: e[2],
1870
1870
  text: t.text()
1871
- }) }), { default: null }), dr = O(E(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${xe})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1871
+ }) }), { default: null }), dr = D(k(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${ye})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1872
1872
  function q(e) {
1873
1873
  return e?.text ?? "";
1874
1874
  }
1875
1875
  function fr(t) {
1876
1876
  return { citation: e(t.position()) };
1877
1877
  }
1878
- var J = T(w([g], { value: (e) => ({ citation: e[0] }) }), E("\\S[\\s\\S]*", { value: (e, t) => fr(t) })), pr = E("\\S[\\s\\S]*", { value: (e, t) => fr(t) }), Y = E("[^:«“\"]*(?::\\s*)?", { flags: "i" }), mr = E("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1878
+ var J = T(O([_], { value: (e) => ({ citation: e[0] }) }), k("\\S[\\s\\S]*", { value: (e, t) => fr(t) })), pr = k("\\S[\\s\\S]*", { value: (e, t) => fr(t) }), Y = k("[^:«“\"]*(?::\\s*)?", { flags: "i" }), mr = k("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1879
1879
  flags: "i",
1880
1880
  value: (e, t) => fr(t)
1881
- }), hr = E("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1881
+ }), hr = k("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1882
1882
  flags: "i",
1883
1883
  value: (e, t) => fr(t)
1884
- }), gr = E("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1884
+ }), gr = k("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1885
1885
  flags: "i",
1886
1886
  value: (e, t) => fr(t)
1887
- }), _r = T(w([g], { value: (e) => ({ citation: e[0] }) }), mr), vr = T(w([g], { value: (e) => ({ citation: e[0] }) }), gr), yr = w([E(`${r}s?\\s*:?\\s*`, { flags: "i" }), _r], { value: (e) => e[1] }), br = w([E(`${a}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), vr], { value: (e) => e[1] }), xr = T(w([g], { value: (e) => ({ citation: e[0] }) }), hr), Sr = w([
1887
+ }), _r = T(O([_], { value: (e) => ({ citation: e[0] }) }), mr), vr = T(O([_], { value: (e) => ({ citation: e[0] }) }), gr), yr = O([k(`${i}s?\\s*:?\\s*`, { flags: "i" }), _r], { value: (e) => e[1] }), br = O([k(`${o}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), vr], { value: (e) => e[1] }), xr = T(O([_], { value: (e) => ({ citation: e[0] }) }), hr), Sr = O([
1888
1888
  dr,
1889
- E(`${r}s?\\s*:?\\s*`, { flags: "i" }),
1889
+ k(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1890
1890
  xr
1891
- ], { value: (e) => e[2] }), Cr = w([
1891
+ ], { value: (e) => e[2] }), Cr = O([
1892
1892
  dr,
1893
- E(`${r}s?\\s*:?\\s*`, { flags: "i" }),
1894
- T(w([g], { value: (e) => ({ citation: e[0] }) }), pr)
1893
+ k(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1894
+ T(O([_], { value: (e) => ({ citation: e[0] }) }), pr)
1895
1895
  ], { value: (e) => e[2] });
1896
1896
  function X(e) {
1897
1897
  return e?.reference;
1898
1898
  }
1899
- var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
1899
+ var wr = O([lr, k("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
1900
1900
  contextText: e[0],
1901
1901
  kind: "delete_article"
1902
- }) }), Tr = w([
1902
+ }) }), Tr = O([
1903
1903
  K,
1904
- E("supprimer", { flags: "i" }),
1905
- O(w([k, G], { value: (e) => e[1] }), { default: null }),
1906
- O(w([k, Cr], { value: (e) => e[1] }), { default: null })
1904
+ k("supprimer", { flags: "i" }),
1905
+ D(O([A, G], { value: (e) => e[1] }), { default: null }),
1906
+ D(O([A, Cr], { value: (e) => e[1] }), { default: null })
1907
1907
  ], { value: (e, t) => W(t, {
1908
1908
  contextText: q(e[0]),
1909
1909
  kind: "delete_portion",
1910
1910
  targetCitation: e[3]?.citation ?? void 0,
1911
1911
  targetReference: e[2] ?? X(e[0])
1912
- }) }), Er = w([
1912
+ }) }), Er = O([
1913
1913
  K,
1914
- T(E("r[eé]diger\\s+ainsi", { flags: "i" }), E("r[eé]tablir", { flags: "i" })),
1914
+ T(k("r[eé]diger\\s+ainsi", { flags: "i" }), k("r[eé]tablir", { flags: "i" })),
1915
1915
  Y,
1916
1916
  J
1917
1917
  ], { value: (e, t) => W(t, {
@@ -1919,14 +1919,14 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1919
1919
  kind: "rewrite_portion",
1920
1920
  replacementCitation: e[3].citation,
1921
1921
  targetReference: X(e[0])
1922
- }) }), Dr = w([
1922
+ }) }), Dr = O([
1923
1923
  K,
1924
- T(E("substituer", { flags: "i" }), E("remplacer", { flags: "i" })),
1925
- k,
1924
+ T(k("substituer", { flags: "i" }), k("remplacer", { flags: "i" })),
1925
+ A,
1926
1926
  dr,
1927
1927
  yr,
1928
- E("\\s*,?\\s*"),
1929
- O(E("par\\s+", { flags: "i" }), { default: "" }),
1928
+ k("\\s*,?\\s*"),
1929
+ D(k("par\\s+", { flags: "i" }), { default: "" }),
1930
1930
  br
1931
1931
  ], { value: (e, t) => W(t, {
1932
1932
  contextText: q(e[0]),
@@ -1934,37 +1934,37 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1934
1934
  replacementCitation: e[7].citation,
1935
1935
  targetCitation: e[4].citation,
1936
1936
  targetReference: X(e[0])
1937
- }) }), Or = w([
1937
+ }) }), Or = O([
1938
1938
  K,
1939
- E("substituer", { flags: "i" }),
1940
- k,
1941
- O(E("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1939
+ k("substituer", { flags: "i" }),
1940
+ A,
1941
+ D(k("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1942
1942
  G,
1943
- E("[\\s\\S]*?(?=[«“\"]|$)"),
1943
+ k("[\\s\\S]*?(?=[«“\"]|$)"),
1944
1944
  J
1945
1945
  ], { value: (e, t) => W(t, {
1946
1946
  contextText: q(e[0]),
1947
1947
  kind: "rewrite_portion",
1948
1948
  replacementCitation: e[6].citation,
1949
1949
  targetReference: e[4] ?? X(e[0])
1950
- }) }), kr = w([
1950
+ }) }), kr = O([
1951
1951
  S,
1952
- k,
1953
- E("l['’ ]article", { flags: "i" }),
1954
- E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1955
- E("ins[eé]rer", { flags: "i" }),
1952
+ A,
1953
+ k("l['’ ]article", { flags: "i" }),
1954
+ k("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1955
+ k("ins[eé]rer", { flags: "i" }),
1956
1956
  Y,
1957
1957
  J
1958
1958
  ], { value: (e, t) => W(t, {
1959
1959
  contextText: "",
1960
1960
  insertCitation: e[6].citation,
1961
1961
  kind: e[0] === "before" ? "insert_article_before" : "insert_article_after"
1962
- }) }), Ar = w([
1962
+ }) }), Ar = O([
1963
1963
  S,
1964
- k,
1964
+ A,
1965
1965
  G,
1966
- E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1967
- T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1966
+ k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1967
+ T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
1968
1968
  Y,
1969
1969
  J
1970
1970
  ], { value: (e, n) => W(n, {
@@ -1972,23 +1972,23 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1972
1972
  insertCitation: e[6].citation,
1973
1973
  kind: t(e[0]),
1974
1974
  targetReference: e[2]
1975
- }) }), jr = w([
1975
+ }) }), jr = O([
1976
1976
  S,
1977
- k,
1978
- E("l['’ ]alin[eé]a", { flags: "i" }),
1979
- E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1980
- E("ins[eé]rer", { flags: "i" }),
1977
+ A,
1978
+ k("l['’ ]alin[eé]a", { flags: "i" }),
1979
+ k("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1980
+ k("ins[eé]rer", { flags: "i" }),
1981
1981
  Y,
1982
1982
  J
1983
1983
  ], { value: (e, n) => W(n, {
1984
1984
  contextText: "",
1985
1985
  insertCitation: e[6].citation,
1986
1986
  kind: t(e[0])
1987
- }) }), Mr = w([
1987
+ }) }), Mr = O([
1988
1988
  K,
1989
- ee,
1990
- E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1991
- T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1989
+ C,
1990
+ k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1991
+ T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
1992
1992
  Y,
1993
1993
  J
1994
1994
  ], { value: (e, t) => {
@@ -2000,14 +2000,14 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2000
2000
  targetReference: r,
2001
2001
  targetScope: sr(i, r)
2002
2002
  });
2003
- } }), Nr = w([
2003
+ } }), Nr = O([
2004
2004
  K,
2005
2005
  S,
2006
- k,
2006
+ A,
2007
2007
  Sr,
2008
- E("[\\s\\S]*?(?=ins[eé]rer)"),
2009
- E("ins[eé]rer", { flags: "i" }),
2010
- k,
2008
+ k("[\\s\\S]*?(?=ins[eé]rer)"),
2009
+ k("ins[eé]rer", { flags: "i" }),
2010
+ A,
2011
2011
  br
2012
2012
  ], { value: (e, n) => W(n, {
2013
2013
  contextText: q(e[0]),
@@ -2015,13 +2015,13 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2015
2015
  kind: t(e[1]),
2016
2016
  targetCitation: e[3].citation,
2017
2017
  targetReference: X(e[0])
2018
- }) }), Pr = w([
2018
+ }) }), Pr = O([
2019
2019
  K,
2020
2020
  S,
2021
- k,
2021
+ A,
2022
2022
  G,
2023
- E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2024
- T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
2023
+ k("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2024
+ T(k("ins[eé]rer", { flags: "i" }), k("ajouter", { flags: "i" })),
2025
2025
  Y,
2026
2026
  J
2027
2027
  ], { value: (e, n) => W(n, {
@@ -2029,28 +2029,28 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2029
2029
  insertCitation: e[7].citation,
2030
2030
  kind: t(e[1]),
2031
2031
  targetReference: X(e[0]) ?? e[3]
2032
- }) }), Fr = T(Mr, kr, Ar, jr, Or, w([
2032
+ }) }), Fr = T(Mr, kr, Ar, jr, Or, O([
2033
2033
  K,
2034
2034
  S,
2035
- k,
2035
+ A,
2036
2036
  Sr,
2037
- E("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2038
- T(w([
2039
- E("supprimer", {
2037
+ k("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2038
+ T(O([
2039
+ k("supprimer", {
2040
2040
  flags: "i",
2041
2041
  value: "delete_portion"
2042
2042
  }),
2043
- k,
2043
+ A,
2044
2044
  ur
2045
2045
  ], { value: (e) => ({
2046
2046
  kind: e[0],
2047
2047
  ...e[2]
2048
- }) }), w([
2049
- E("r[eé]diger\\s+ainsi", {
2048
+ }) }), O([
2049
+ k("r[eé]diger\\s+ainsi", {
2050
2050
  flags: "i",
2051
2051
  value: "rewrite_portion"
2052
2052
  }),
2053
- k,
2053
+ A,
2054
2054
  ur,
2055
2055
  Y,
2056
2056
  J
@@ -2069,24 +2069,24 @@ var wr = w([lr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2069
2069
  targetReference: X(e[0]) ?? n.targetReference,
2070
2070
  targetScope: n.targetScope
2071
2071
  });
2072
- } }), Nr, Pr, w([
2072
+ } }), Nr, Pr, O([
2073
2073
  lr,
2074
- E("ins[eé]rer", { flags: "i" }),
2075
- E(`[\\s\\S]*?(?=${c})`, { flags: "i" }),
2074
+ k("ins[eé]rer", { flags: "i" }),
2075
+ k(`[\\s\\S]*?(?=${l})`, { flags: "i" }),
2076
2076
  S,
2077
2077
  Y,
2078
- g,
2078
+ _,
2079
2079
  Y,
2080
- g
2080
+ _
2081
2081
  ], { value: (e, n) => W(n, {
2082
2082
  contextText: e[0],
2083
2083
  insertCitation: e[8],
2084
2084
  kind: t(e[3]),
2085
2085
  targetCitation: e[6]
2086
- }) }), Dr, Er, w([
2086
+ }) }), Dr, Er, O([
2087
2087
  K,
2088
- E("compl[eé]ter", { flags: "i" }),
2089
- O(w([k, G], { value: (e) => e[1] }), { default: null }),
2088
+ k("compl[eé]ter", { flags: "i" }),
2089
+ D(O([A, G], { value: (e) => e[1] }), { default: null }),
2090
2090
  Y,
2091
2091
  J
2092
2092
  ], { value: (e, t) => W(t, {
@@ -2160,7 +2160,7 @@ function Wr(e, t, n, r = Lr(e.slice(n.start, n.stop))) {
2160
2160
  function Gr(e) {
2161
2161
  let t = e.dispositifHtml ?? e.dispositifText;
2162
2162
  if (!t) return null;
2163
- let n = e.dispositifHtml ? ve()(t) : Se(t), r = n.output, i = Rr(r, {
2163
+ let n = e.dispositifHtml ? ve()(t) : be(t), r = n.output, i = Rr(r, {
2164
2164
  start: 0,
2165
2165
  stop: r.length
2166
2166
  });
@@ -2182,7 +2182,7 @@ function Q(e) {
2182
2182
  return t === void 0 ? [] : Array.from({ length: e.count }, (e, n) => t + n);
2183
2183
  }
2184
2184
  if (e.type === "exclusion") return Q(e.left);
2185
- for (let t of f(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2185
+ for (let t of pe(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2186
2186
  return [];
2187
2187
  }
2188
2188
  function Kr(e, t) {
@@ -2236,19 +2236,19 @@ function $r(e, t) {
2236
2236
  return r(/^(?:(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*|[a-z]\)\s*(?:[.\-–—]\s*)*|\d+°\s*)/iu), r(/^[.\-–—]\s*/u), r(/^en\s+cons[ée]quence\s*,\s*/iu), Rr(e, n);
2237
2237
  }
2238
2238
  function ei(e) {
2239
- return p(e);
2239
+ return m(e);
2240
2240
  }
2241
2241
  function ti(e, t) {
2242
- return Fr(new D(e.slice(0, t.stop), t.start)) ?? null;
2242
+ return Fr(new E(e.slice(0, t.stop), t.start)) ?? null;
2243
2243
  }
2244
2244
  function $(e, t, n) {
2245
- if (n) return Wr(e, t, n.position, Lr(d(e, n)));
2245
+ if (n) return Wr(e, t, n.position, Lr(p(e, n)));
2246
2246
  }
2247
2247
  function ni(e, t) {
2248
2248
  if (!e) return;
2249
- let n = structuredClone(e);
2250
- for (let e of me(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = zr(t, e.position));
2251
- return n;
2249
+ let r = structuredClone(e);
2250
+ for (let e of n(r, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = zr(t, e.position));
2251
+ return r;
2252
2252
  }
2253
2253
  function ri(e, t, n, r) {
2254
2254
  let i = $r(e, n);
@@ -2451,7 +2451,7 @@ function oi(e) {
2451
2451
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
2452
2452
  }
2453
2453
  function si(e) {
2454
- let t = i(e);
2454
+ let t = f(e);
2455
2455
  if (!t) return {
2456
2456
  articleNumber: null,
2457
2457
  label: e,
@@ -2465,7 +2465,7 @@ function si(e) {
2465
2465
  };
2466
2466
  }
2467
2467
  function ci(e) {
2468
- let t = y(e), n = [], r = oi(t("section.akn-preamble").text());
2468
+ let t = w(e), n = [], r = oi(t("section.akn-preamble").text());
2469
2469
  return r && n.push({
2470
2470
  anchor: "senat-expose-des-motifs",
2471
2471
  articleNumber: null,
@@ -2490,7 +2490,7 @@ function ci(e) {
2490
2490
  }), n;
2491
2491
  }
2492
2492
  function li(e, t) {
2493
- return ke("sha256").update(JSON.stringify({
2493
+ return Oe("sha256").update(JSON.stringify({
2494
2494
  item: e,
2495
2495
  metadata: t
2496
2496
  })).digest("hex");
@@ -21622,7 +21622,7 @@ function Ci(e) {
21622
21622
  return null;
21623
21623
  }
21624
21624
  function wi(e) {
21625
- return Oe.createHash("md5").update(e).digest("hex");
21625
+ return De.createHash("md5").update(e).digest("hex");
21626
21626
  }
21627
21627
  function Ti(e) {
21628
21628
  return e ? /font-weight\s*:\s*(bold|[6-9]00|1000)/i.test(e) || /font-family\s*:\s*[^;]*\bBold\b/i.test(e) : !1;
@@ -21694,7 +21694,7 @@ function Mi(e) {
21694
21694
  return null;
21695
21695
  }
21696
21696
  function Ni(e, t = {}) {
21697
- let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = y(e, { xml: { decodeEntities: !1 } });
21697
+ let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = w(e, { xml: { decodeEntities: !1 } });
21698
21698
  a("style, script, meta, link").remove(), a(".assnatHeader, .assnatFooter, .assnatHeaderLeft, .assnatHeaderandFooter").remove(), a(".assnatFARSautApres, .assnatFARSautAvant, .assnatFARSautPageNiv0, .assnatFARSautPageNiv1, .assnatFARSautPageNiv1PG").remove(), a(".assnatFARTT08Bleu").each((e, t) => {
21699
21699
  let n = a(t).closest("table");
21700
21700
  n.length > 0 && n.remove();
@@ -21947,15 +21947,15 @@ ${Ni(e, t)}
21947
21947
  //#region src/lib/server/text_parsers/transformers.ts
21948
21948
  function Ri(e, t) {
21949
21949
  let n = "transformation_", r = {};
21950
- for (let e of A.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21950
+ for (let e of j.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21951
21951
  let i = e.slice(15, -5), a = i.split(".").map((e) => parseInt(e) - 1), o = r;
21952
21952
  for (let e of a.slice(1)) {
21953
21953
  let t = o.transformations ??= [];
21954
21954
  for (; e >= t.length;) t.push({});
21955
21955
  o = t[e];
21956
21956
  }
21957
- o.output = A.readFileSync(Ae.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21958
- let { sourceMap: s, title: c } = A.readJsonSync(Ae.join(t, e), { encoding: "utf-8" });
21957
+ o.output = j.readFileSync(M.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21958
+ let { sourceMap: s, title: c } = j.readJsonSync(M.join(t, e), { encoding: "utf-8" });
21959
21959
  o.sourceMap = s ?? [], o.title = c;
21960
21960
  }
21961
21961
  return zi(r, e), r;
@@ -21965,7 +21965,7 @@ function zi(e, t) {
21965
21965
  return t;
21966
21966
  }
21967
21967
  function Bi(e, t, n = "1") {
21968
- if (A.ensureDirSync(t), e.transformations === void 0) A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), {
21968
+ if (j.ensureDirSync(t), e.transformations === void 0) j.writeJsonSync(M.join(t, `transformation_${n}.json`), {
21969
21969
  sourceMap: e.sourceMap,
21970
21970
  title: e.title
21971
21971
  }, {
@@ -21973,20 +21973,20 @@ function Bi(e, t, n = "1") {
21973
21973
  spaces: 2
21974
21974
  });
21975
21975
  else {
21976
- A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), { title: e.title }, {
21976
+ j.writeJsonSync(M.join(t, `transformation_${n}.json`), { title: e.title }, {
21977
21977
  encoding: "utf-8",
21978
21978
  spaces: 2
21979
21979
  });
21980
21980
  for (let [r, i] of e.transformations.entries()) Bi(i, t, `${n}.${r + 1}`);
21981
21981
  }
21982
- e.output !== void 0 && A.writeFileSync(Ae.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21982
+ e.output !== void 0 && j.writeFileSync(M.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21983
21983
  }
21984
21984
  //#endregion
21985
21985
  //#region src/lib/server/linkers/html.ts
21986
21986
  async function Vi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlFilePath: i, htmlTransformationsInputDir: a, htmlTransformationsOutputDir: o, htmlWithLinksFilePath: s, htmlWithLinksOrReferencesFilePath: c, htmlWithLinksTransformationsOutputDir: l, htmlWithReferencesFilePath: u, linkBaseUrl: d, linkType: f, logIgnoredReferencesTypes: p, logPartialReferences: m, logReferences: h, referredLegifranceTextsInfosFilePath: g }) {
21987
- let _ = t ?? (e === void 0 ? void 0 : new ie(e));
21987
+ let _ = t ?? (e === void 0 ? void 0 : new re(e));
21988
21988
  if (_ === void 0) throw Error("A Canutes database or legal resolver is required");
21989
- let v = await A.readFile(i, { encoding: "utf-8" }), y;
21989
+ let v = await j.readFile(i, { encoding: "utf-8" }), y;
21990
21990
  a === void 0 ? (y = ve({ removeAWithHref: !0 })(v), o !== void 0 && Bi(y, o)) : y = Ri(v, a);
21991
21991
  let b = [];
21992
21992
  s !== void 0 && b.push("links"), c !== void 0 && b.push("links_or_references"), u !== void 0 && b.push("references");
@@ -22007,9 +22007,9 @@ async function Vi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
22007
22007
  s !== void 0 && (C.links = s), c !== void 0 && (C.links_or_references = c), u !== void 0 && (C.references = u);
22008
22008
  for (let [e, t] of Object.entries(x)) {
22009
22009
  let n = C[e];
22010
- n !== void 0 && await A.writeFile(n, t.html, { encoding: "utf-8" });
22010
+ n !== void 0 && await j.writeFile(n, t.html, { encoding: "utf-8" });
22011
22011
  }
22012
- x.links !== void 0 && l !== void 0 && Bi(ve()(x.links.html), l), g !== void 0 && await A.writeJson(g, S, {
22012
+ x.links !== void 0 && l !== void 0 && Bi(ve()(x.links.html), l), g !== void 0 && await j.writeJson(g, S, {
22013
22013
  encoding: "utf-8",
22014
22014
  spaces: 2
22015
22015
  });
@@ -22017,20 +22017,20 @@ async function Vi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
22017
22017
  //#endregion
22018
22018
  //#region src/lib/server/tables_of_contents.ts
22019
22019
  async function Hi(e, t, n, r) {
22020
- let i = Ri(await A.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new D(a), s = await A.readJson(n, { encoding: "utf-8" });
22021
- for await (let e of oe({
22020
+ let i = Ri(await j.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new E(a), s = await j.readJson(n, { encoding: "utf-8" });
22021
+ for await (let e of ae({
22022
22022
  context: o,
22023
22023
  tableOfContents: s,
22024
22024
  transformation: i
22025
22025
  }));
22026
- await A.writeJson(r, s, {
22026
+ await j.writeJson(r, s, {
22027
22027
  encoding: "utf-8",
22028
22028
  spaces: 2
22029
22029
  });
22030
22030
  }
22031
22031
  async function Ui(e, t, n) {
22032
- let r = Ri(await A.readFile(e, { encoding: "utf-8" }), t).output, i = v(r);
22033
- await A.writeJson(n, i, {
22032
+ let r = Ri(await j.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
22033
+ await j.writeJson(n, i, {
22034
22034
  encoding: "utf-8",
22035
22035
  spaces: 2
22036
22036
  });
@@ -22038,7 +22038,7 @@ async function Ui(e, t, n) {
22038
22038
  //#endregion
22039
22039
  //#region src/lib/server/legi/resolvers.ts
22040
22040
  function Wi({ canutesDb: e }) {
22041
- return new ie(e);
22041
+ return new re(e);
22042
22042
  }
22043
22043
  //#endregion
22044
- export { De as LegiResolver, Vi as addLinksOrReferencesToHtmlFile, Hi as addPositionsToTableOfContentsFile, we as buildAndInstallTextTitlesInfos, Ee as buildTextTitlesInfos, Wi as createLegiResolver, Pe as extractAssembleeAmendmentSearchItems, er as extractAssembleeExposesDesMotifs, ar as extractSenatAmendmentSearchItems, Fe as hashAssembleeAmendmentSearchItem, nr as hashAssembleeSearchItem, or as hashSenatAmendmentSearchItem, li as hashSenatSearchItem, hi as isAkomaNtosoXml, rr as isoDateFromAssembleeDocument, Xn as linkAkomaNtosoBillRaw, on as linkAssembleeBillRaw, Yn as parseAkomaNtosoBillRaw, ai as parseAmendment, an as parseAssembleeBillRaw, tr as parseAssembleeDocumentSearchContent, ci as parseSenatDocumentSearchContent, Ri as readTransformation, Gn as renderAkomaNtosoBillRaw, mi as resolveSenatAkomaNtosoSource, Ui as simplifiedHtmlBillFileToTableOfContentsFile, Ni as simplifyWordHtml, Li as simplifyWordHtmlToDocument, Bi as writeTransformation };
22044
+ export { Te as LegiResolver, Vi as addLinksOrReferencesToHtmlFile, Hi as addPositionsToTableOfContentsFile, Se as buildAndInstallTextTitlesInfos, we as buildTextTitlesInfos, Wi as createLegiResolver, Me as extractAssembleeAmendmentSearchItems, er as extractAssembleeExposesDesMotifs, ar as extractSenatAmendmentSearchItems, Ne as hashAssembleeAmendmentSearchItem, nr as hashAssembleeSearchItem, or as hashSenatAmendmentSearchItem, li as hashSenatSearchItem, hi as isAkomaNtosoXml, rr as isoDateFromAssembleeDocument, Xn as linkAkomaNtosoBillRaw, an as linkAssembleeBillRaw, Yn as parseAkomaNtosoBillRaw, ai as parseAmendment, rn as parseAssembleeBillRaw, tr as parseAssembleeDocumentSearchContent, ci as parseSenatDocumentSearchContent, Ri as readTransformation, Gn as renderAkomaNtosoBillRaw, mi as resolveSenatAkomaNtosoSource, Ui as simplifiedHtmlBillFileToTableOfContentsFile, Ni as simplifyWordHtml, Li as simplifyWordHtmlToDocument, Bi as writeTransformation };