@tricoteuses/tisseuse 0.16.2 → 0.17.1

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