@tricoteuses/tisseuse 0.19.3 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -1,11 +1,11 @@
1
- import { $ as e, At as t, B as n, Bt as r, C as i, Ct as a, D as o, Dt as s, E as c, H as l, L as u, M as d, N as f, Nt as p, O as m, Ot as h, S as g, Vt as _, X as v, b as y, c as b, ct as x, et as ee, g as S, h as te, it as C, j as w, k as ne, kt as T, m as re, n as ie, p as ae, s as oe, t as se, u as ce, ut as E, v as le, w as ue, x as de } from "./html-EuDDYMr2.js";
2
- import { A as fe, Dt as D, Ft as O, I as pe, L as me, Nt as k, Ot as A, P as he, _t as ge, bt as j, jt as _e, k as ve, kt as M, n as ye, nt as be, o as xe, r as Se, t as Ce, ut as we } from "./resolver-tBQRf8TL.js";
3
- import * as Te from "node:crypto";
4
- import { createHash as Ee } from "node:crypto";
5
- import N from "fs-extra";
6
- import De from "node:path";
1
+ import { At as e, C as t, D as n, E as r, Ft as i, Ht as a, K as o, L as s, M as c, Mt as l, N as u, O as d, Q as f, S as p, Tt as m, U as h, Ut as g, W as _, b as v, c as y, ft as b, g as x, h as ee, j as S, jt as C, k as te, kt as ne, m as re, n as ie, nt as ae, ot as oe, p as se, s as ce, t as le, tt as ue, u as de, ut as fe, v as pe, w as me, x as he } from "./html-C07GdZ0O.js";
2
+ import { A as ge, At as w, It as T, L as _e, Ot as E, P as ve, Pt as D, R as ye, dt as be, k as xe, kt as O, n as Se, o as Ce, r as we, rt as Te, t as Ee, vt as De, xt as k } from "./resolver-4v_fWVor.js";
3
+ import * as Oe from "node:crypto";
4
+ import { createHash as ke } from "node:crypto";
5
+ import A from "fs-extra";
6
+ import Ae from "node:path";
7
7
  //#region src/lib/server/assemblee_amendment_search.ts
8
- function Oe(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 Oe(e, t) {
13
13
  }
14
14
  return typeof n == "string" && n.trim() ? n.trim() : null;
15
15
  }
16
- function ke(e) {
16
+ function Me(e) {
17
17
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
18
18
  }
19
- function Ae(e) {
20
- return ke(E(e).text());
19
+ function Ne(e) {
20
+ return Me(b(e).text());
21
21
  }
22
- function je(e) {
23
- let t = ke([
24
- Oe(e, [
22
+ function Pe(e) {
23
+ let t = Me([
24
+ je(e, [
25
25
  "corps",
26
26
  "contenuAuteur",
27
27
  "dispositif"
28
28
  ]),
29
- Oe(e, [
29
+ je(e, [
30
30
  "corps",
31
31
  "contenuAuteur",
32
32
  "dispositifAmdtCreditPLF"
33
33
  ]),
34
- Oe(e, [
34
+ je(e, [
35
35
  "corps",
36
36
  "contenuAuteur",
37
37
  "dispositifAmdtCreditPLFR"
38
38
  ])
39
- ].filter((e) => e !== null).map((e) => Ae(e)).join("\n")), n = Oe(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 ? "" : Ae(n);
43
+ ]), r = n === null ? "" : Ne(n);
44
44
  return [...t ? [{
45
45
  content: t,
46
46
  itemKind: "dispositif",
@@ -51,24 +51,24 @@ function je(e) {
51
51
  label: "Exposé sommaire"
52
52
  }] : []];
53
53
  }
54
- function Me(e, t) {
55
- return Ee("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");
59
59
  }
60
60
  //#endregion
61
61
  //#region src/lib/extractors/article_action_targets.ts
62
- function P(e) {
62
+ function j(e) {
63
63
  switch (e.type) {
64
- case "reference_et_action": return P(e.reference);
65
- case "enumeration": return [...P(e.left), ...P(e.right)];
64
+ case "reference_et_action": return j(e.reference);
65
+ case "enumeration": return [...j(e.left), ...j(e.right)];
66
66
  case "parent-enfant": {
67
- let t = [...r(e.parent)].filter((e) => e.type === "article");
67
+ let t = [...a(e.parent)].filter((e) => e.type === "article");
68
68
  return t.length === 1 ? [{
69
69
  article: t[0],
70
70
  reference: e
71
- }] : t.length > 1 ? [] : P(e.child).map((t) => ({
71
+ }] : t.length > 1 ? [] : j(e.child).map((t) => ({
72
72
  article: t.article,
73
73
  reference: {
74
74
  ...e,
@@ -89,11 +89,11 @@ function P(e) {
89
89
  }
90
90
  //#endregion
91
91
  //#region src/lib/extractors/article_action_effects.ts
92
- function Ne(e, t) {
92
+ function Ie(e, t) {
93
93
  if (t < 2) return null;
94
- let n = fe(e), r = S(e);
94
+ let n = ge(e), r = x(e);
95
95
  if (r.length !== t) return null;
96
- let i = u(new D(n.output)), a = (e) => me(n, [e])[0].position;
96
+ let i = s(new E(n.output)), a = (e) => ye(n, [e])[0].position;
97
97
  return r.map((t, n) => ({
98
98
  sourceText: e,
99
99
  referencePosition: a({
@@ -103,24 +103,24 @@ function Ne(e, t) {
103
103
  actionPosition: a(t.position)
104
104
  }));
105
105
  }
106
- function Pe(e, t, n) {
106
+ function Le(e, t, n) {
107
107
  if (t.length < 2) return null;
108
- let r = fe(e), i = r.output, a = (e) => me(r, [e])[0].position, o = u(new D(i)), s = o.flatMap(P);
109
- if (s.length !== t.length || s.length < 2) return null;
110
- let c = de(i);
111
- if (c.length > 0) return n?.kind !== "replace_portion" || c.length !== s.length || c.some((e, t) => {
112
- let n = s[t];
113
- return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !C(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
114
- }) ? null : s.map((r, i) => ({
108
+ let r = ge(e), i = r.output, a = (e) => ye(r, [e])[0].position, o = s(new E(i)), c = o.flatMap(j);
109
+ if (c.length !== t.length || c.length < 2) return null;
110
+ let l = he(i);
111
+ if (l.length > 0) return n?.kind !== "replace_portion" || l.length !== c.length || l.some((e, t) => {
112
+ let n = c[t];
113
+ return n.article.num !== e.article.num || n.article.position.start !== e.article.position.start || n.article.position.stop !== e.article.position.stop || !oe(n.reference).some((t) => t.kind === "single" && t.steps.some((t) => t.type === "alinéa" && t.index === e.alineaIndex));
114
+ }) ? null : c.map((r, i) => ({
115
115
  targetId: t[i],
116
116
  directive: {
117
117
  ...n,
118
118
  reference: r.reference,
119
- portionSelectors: C(r.reference),
119
+ portionSelectors: oe(r.reference),
120
120
  tableTarget: {
121
121
  type: "table",
122
- rowIndex: c[i].rowIndex,
123
- rowEndIndex: c[i].rowEndIndex
122
+ rowIndex: l[i].rowIndex,
123
+ rowEndIndex: l[i].rowEndIndex
124
124
  }
125
125
  },
126
126
  sourceAnnotation: {
@@ -132,12 +132,12 @@ function Pe(e, t, n) {
132
132
  }
133
133
  }
134
134
  }));
135
- let l = s.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
- if (l.length > 0 && l.length < s.length) {
137
- let n = s.filter((e) => !l.includes(e));
135
+ let u = c.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
136
+ if (u.length > 0 && u.length < c.length) {
137
+ let n = c.filter((e) => !u.includes(e));
138
138
  if (n.length !== 1) return null;
139
- let r = n[0], o = t[s.indexOf(r)], c = y(i);
140
- return !o || c.length !== 1 || c[0].kind === "compound" ? null : [{
139
+ let r = n[0], o = t[c.indexOf(r)], s = v(i);
140
+ return !o || s.length !== 1 || s[0].kind === "compound" ? null : [{
141
141
  targetId: o,
142
142
  sourceAnnotation: {
143
143
  sourceText: e,
@@ -148,7 +148,7 @@ function Pe(e, t, n) {
148
148
  }
149
149
  },
150
150
  directive: {
151
- ...c[0],
151
+ ...s[0],
152
152
  reference: r.reference,
153
153
  sourcePosition: {
154
154
  start: 0,
@@ -161,17 +161,17 @@ function Pe(e, t, n) {
161
161
  let d = [], f = 0;
162
162
  for (let e = 1; e < o.length; e += 1) {
163
163
  let t = o[e];
164
- t.type !== "reference_et_action" || P(t).length === 0 || o.slice(f, e).flatMap(P).length === 0 || y(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && y(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
164
+ t.type !== "reference_et_action" || j(t).length === 0 || o.slice(f, e).flatMap(j).length === 0 || v(i.slice(f === 0 ? 0 : o[f].position.start, t.position.start)).length === 1 && v(i.slice(t.position.start)).length === 1 && (d.push(e - 1), f = e);
165
165
  }
166
166
  d.push(o.length - 1);
167
167
  let p = [], m = 0, h = 0;
168
168
  for (let n of d) {
169
- let r = o.slice(m, n + 1).flatMap(P);
169
+ let r = o.slice(m, n + 1).flatMap(j);
170
170
  if (r.length === 0) {
171
171
  m = n + 1;
172
172
  continue;
173
173
  }
174
- let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = y(i.slice(s, c));
174
+ let s = m === 0 ? 0 : o[m].position.start, c = o[n + 1]?.position.start ?? i.length, l = v(i.slice(s, c));
175
175
  if (l.length !== 1 || l[0].kind === "compound") return null;
176
176
  let u = l[0];
177
177
  for (let n of r) {
@@ -195,7 +195,7 @@ function Pe(e, t, n) {
195
195
  stop: i.length
196
196
  },
197
197
  reference: n.reference,
198
- portionSelectors: C(n.reference)
198
+ portionSelectors: oe(n.reference)
199
199
  }
200
200
  });
201
201
  }
@@ -203,44 +203,29 @@ function Pe(e, t, n) {
203
203
  }
204
204
  return h === t.length ? p : null;
205
205
  }
206
- var Fe = _e("dans sa rédaction", M([M([O("dans sa rédaction ", { flags: "i" }), A(O("issue ", { flags: "i" }), O("résultante ", { flags: "i" }), O("résultant ", { flags: "i" }))], { value: "qualified-version-redaction" }), A(M([O("de l'", { flags: "i" }), l], { value: (e) => e[1] }), n)], { value: (e) => e[1] }));
207
- //#endregion
208
- //#region src/lib/extractors/qualified_versions.ts
209
- function Ie(e) {
210
- let t = fe(e), n = [];
211
- for (let e of Fe.extract(new D(t.output), { jumpExact: !0 })) for (let i of _(e)) {
212
- if (i.type !== "parent-enfant" || i.parent.type !== "texte" || i.parent.nature !== "LOI") continue;
213
- let e = [...r(i.child)].filter((e) => e.type === "article" && e.position.start < i.parent.position.start);
214
- if (e.length === 1) {
215
- n.push(me(t, [e[0].position])[0].position);
216
- break;
217
- }
218
- }
219
- return n;
220
- }
221
206
  //#endregion
222
207
  //#region src/lib/server/parsed_bills.ts
223
- var Le = /^expos[ée]\s+des\s+motifs\b/iu;
224
- function F(e) {
208
+ var Re = /^expos[ée]\s+des\s+motifs\b/iu;
209
+ function M(e) {
225
210
  return (e ?? "").replace(/\u00a0/g, " ").replace(/\s+/g, " ").trim();
226
211
  }
227
- function I(e) {
228
- return F(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
212
+ function N(e) {
213
+ return M(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
229
214
  }
230
- function Re(e) {
231
- return s(F(e));
215
+ function ze(e) {
216
+ return ne(M(e));
232
217
  }
233
- function L(e) {
234
- return `_TocArt${Re(e).replace(/\s+/gu, "")}`;
218
+ function P(e) {
219
+ return `_TocArt${ze(e).replace(/\s+/gu, "")}`;
235
220
  }
236
- function ze(e, t) {
221
+ function Be(e, t) {
237
222
  return e(t).closest(".assnatTOC6,.assnatTOC5,.assnatTOC4").length > 0;
238
223
  }
239
- function Be(e) {
240
- return I(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
224
+ function F(e) {
225
+ return N(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
241
226
  }
242
227
  function Ve(e) {
243
- return Be(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
228
+ return F(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
244
229
  }
245
230
  function He(e) {
246
231
  switch (e.kind) {
@@ -260,12 +245,12 @@ function He(e) {
260
245
  default: return;
261
246
  }
262
247
  }
263
- function Ue(e) {
264
- let t = F(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
265
- if (n?.[1] !== void 0) return h(n[1]);
248
+ function Ue(t) {
249
+ let n = M(t.sourceText), r = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(n);
250
+ if (r?.[1] !== void 0) return e(r[1]);
266
251
  }
267
252
  function We(e) {
268
- let t = He(e), n = a(t ?? "");
253
+ let t = He(e), n = m(t ?? "");
269
254
  if (n.length > 0 && t !== void 0) return n.map((e, r) => {
270
255
  let i = e.start, a = n[r + 1]?.start ?? t.length, o = t.slice(i, a).trim();
271
256
  return {
@@ -292,39 +277,45 @@ function Ge(e, t = /* @__PURE__ */ new Set()) {
292
277
  return t;
293
278
  }
294
279
  function Ke(e) {
295
- let t = I(e.sourceText);
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);
280
+ if (typeof e != "object" || !e) return !1;
281
+ if (Array.isArray(e)) return e.some(Ke);
282
+ let t = e;
283
+ return t.type === "bounded-interval" || Object.values(t).some(Ke);
297
284
  }
298
285
  function qe(e) {
299
- return F(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
286
+ let t = N(e.sourceText);
287
+ return /\b(?:cree|cree[e]?s?|resultant|issu|prevu|mentionne)\b[\s\S]{0,80}\b(?:present|presente|pjl|projet\s+de\s+loi)\b/u.test(t);
288
+ }
289
+ function Je(e) {
290
+ return M(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
300
291
  }
301
- function Je(e, t) {
302
- let n = new D(e, t), r = be(n);
292
+ function Ye(e, t) {
293
+ let n = new E(e, t), r = Te(n);
303
294
  return typeof r != "string" || n.offset <= t ? null : {
304
295
  date: r,
305
296
  start: t,
306
297
  stop: n.offset
307
298
  };
308
299
  }
309
- function Ye(e, t) {
300
+ function Xe(e, t) {
310
301
  let n = /\d/u.exec(e.slice(t));
311
302
  if (!n) return null;
312
303
  let r = t + n.index;
313
- return e.slice(t, r).trim().length > 0 ? null : Je(e, r);
304
+ return e.slice(t, r).trim().length > 0 ? null : Ye(e, r);
314
305
  }
315
- function Xe(e) {
306
+ function Ze(e) {
316
307
  let t = /^la présente loi (?:s['’]appli(?:que|quent)|entr(?:e|ent) en vigueur) (?:[aà] compter (?:du|de|d['’])|au|le)\s*/u, n = /^la présente loi s['’]appli(?:que|quent)\s*:\s*/u, r = /\b[aà] compter (?:du|de|d['’])\s*/gu, i = [], a = "la présente loi", o = e.indexOf(a);
317
308
  for (; o !== -1;) {
318
309
  let s = e.indexOf(a, o + 15), c = e.slice(o, o + 1400), l = t.exec(c);
319
310
  if (l) {
320
- let e = Ye(c, l[0].length);
311
+ let e = Xe(c, l[0].length);
321
312
  e && i.push(e.date);
322
313
  }
323
314
  let u = n.exec(c);
324
315
  if (u) {
325
316
  let e = /\barticle\s+\w/iu.exec(c), t = e === null ? c.slice(u[0].length) : c.slice(u[0].length, e.index);
326
317
  for (r.lastIndex = 0; r.exec(t) !== null;) {
327
- let e = Ye(t, r.lastIndex);
318
+ let e = Xe(t, r.lastIndex);
328
319
  e && /^\s+pour\s+les\s+autres\s+dispositions\s+fiscales\b/iu.test(t.slice(e.stop)) && i.push(e.date);
329
320
  }
330
321
  }
@@ -332,20 +323,20 @@ function Xe(e) {
332
323
  }
333
324
  return i;
334
325
  }
335
- function Ze(e) {
336
- let t = Xe(qe(e).toLowerCase()), n = Array.from(new Set(t));
326
+ function Qe(e) {
327
+ let t = Ze(Je(e).toLowerCase()), n = Array.from(new Set(t));
337
328
  return n.length === 1 ? n[0] : void 0;
338
329
  }
339
- function Qe(e) {
340
- return I(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
330
+ function $e(e) {
331
+ return N(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
341
332
  }
342
- function R(e) {
333
+ function I(e) {
343
334
  return e?.type === "tag";
344
335
  }
345
- function $e(e, t) {
336
+ function et(e, t) {
346
337
  return e.html(t) ?? "";
347
338
  }
348
- function et(e, t) {
339
+ function tt(e, t) {
349
340
  let n = [], r = /* @__PURE__ */ new Set();
350
341
  for (let i of e(t).find("a").get()) {
351
342
  let a = e(i).attr("href") ?? "", o = /\/legifrance\/(articles|sections|textes)\/([^?#"]+)/u.exec(a);
@@ -353,65 +344,83 @@ function et(e, t) {
353
344
  let s = o[1] === "articles" ? "article" : o[1] === "sections" ? "division" : "text", c = o[2].replace(/\.md$/u, ""), l = `${s}\0${c}`;
354
345
  if (r.has(l)) continue;
355
346
  r.add(l);
356
- let u = F(e(i).text());
347
+ let u = M(e(i).text());
357
348
  n.push({
358
349
  id: c,
359
- ...tt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
350
+ ...nt(e, t, i) ? { insideFrenchQuotes: !0 } : {},
360
351
  ...u ? { text: u } : {},
361
352
  type: s
362
353
  });
363
354
  }
364
355
  return n;
365
356
  }
366
- function tt(e, t, n) {
367
- let r = nt(e, t, n);
357
+ function nt(e, t, n) {
358
+ let r = rt(e, t, n);
368
359
  return (r.match(/«/gu) ?? []).length > (r.match(/»/gu) ?? []).length;
369
360
  }
370
- function nt(e, t, n) {
361
+ function rt(e, t, n) {
371
362
  if (t === n) return "";
372
363
  if (t.type === "text") return t.data ?? "";
373
- if (!R(t)) return "";
364
+ if (!I(t)) return "";
374
365
  let r = "";
375
366
  for (let i of e(t).contents().get()) {
376
367
  if (i === n) return r;
377
- if (R(i) && e.contains(i, n)) return r + nt(e, i, n);
368
+ if (I(i) && e.contains(i, n)) return r + rt(e, i, n);
378
369
  r += e(i).text();
379
370
  }
380
371
  return r;
381
372
  }
382
- function rt(e, t) {
383
- return t.map((t) => F(e(t).text())).filter(Boolean).join("\n");
373
+ function it(e, t) {
374
+ return t.map((t) => M(e(t).text())).filter(Boolean).join("\n");
375
+ }
376
+ function at(e) {
377
+ let t = N(e);
378
+ return !t || Re.test(t) ? "noise" : d.test(e) ? "directive_candidate" : "context";
379
+ }
380
+ function ot(e, t) {
381
+ return t.tagName === "p" && (/pastille/iu.test(e(t).attr("class") ?? "") || e(t).is("[data-pastille]")) && /^\(\d+\)$/u.test(M(e(t).text()));
384
382
  }
385
- function it(e) {
386
- let t = I(e);
387
- return !t || Le.test(t) ? "noise" : m.test(e) ? "directive_candidate" : "context";
383
+ function st(e) {
384
+ let t = b(e, { xml: {
385
+ xmlMode: !1,
386
+ withStartIndices: !0,
387
+ withEndIndices: !0
388
+ } });
389
+ return t("p").get().filter((e) => ot(t, e)).map((e) => {
390
+ if (e.startIndex === null || e.endIndex === null) throw Error("Missing source positions for an Assembly pastille");
391
+ return {
392
+ start: e.startIndex,
393
+ stop: e.endIndex + 1
394
+ };
395
+ });
388
396
  }
389
- async function at(e, t, n) {
397
+ async function ct(e, t, n, r) {
390
398
  if (n === void 0) throw Error("A document date is required to add links to legal references.");
391
399
  if (t.legiResolver === void 0 && t.canutesDb === void 0) throw Error("A Canutes database or an explicit legal resolver is required to add links to legal references.");
392
- let r = t.legiResolver ?? new ae(t.canutesDb), { output: i } = await ie({
400
+ let i = t.legiResolver ?? new se(t.canutesDb), { output: a } = await ie({
393
401
  date: n,
402
+ excludedHtmlRanges: r,
394
403
  html: e,
395
404
  includeInternalArticleLinks: t.includeInternalArticleLinks,
396
- legiResolver: r,
405
+ legiResolver: i,
397
406
  linkBaseUrl: t.linkBaseUrl,
398
407
  linkType: t.linkType,
399
408
  logIgnoredReferencesTypes: t.logIgnoredReferencesTypes,
400
409
  logPartialReferences: t.logPartialReferences,
401
410
  logReferences: t.logReferences
402
411
  });
403
- return i ?? e;
412
+ return a ?? e;
404
413
  }
405
- function ot(e, t) {
414
+ function lt(e, t) {
406
415
  let n = e(t).closest("h1,h2,h3,h4,h5,h6,p,td,th").get(0), r = e(t).closest("table").get(0);
407
- return R(r) && R(n) && e(n).parents("table").get(0) === r ? r : R(n) ? n : t;
416
+ return I(r) && I(n) && e(n).parents("table").get(0) === r ? r : I(n) ? n : t;
408
417
  }
409
- function st(e, t, n, r, i) {
418
+ function ut(e, t, n, r, i) {
410
419
  if (n.has(i.container)) return;
411
- let a = i.id ?? L(i.num ?? i.label);
420
+ let a = i.id ?? P(i.num ?? i.label);
412
421
  if (r.has(a)) return;
413
422
  r.add(a), n.add(i.container);
414
- let o = i.title ? e(i.element).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0) : void 0, s = R(o) ? lt(e, o) : null, c = s ? e(o).text() : "", l = R(o) && s?.label === i.label && s.title === i.title && [`${s.label}${s.title}`, `${s.label} ${s.title}`].some((e) => I(e) === I(c)) ? {
423
+ let o = i.title ? e(i.element).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0) : void 0, s = I(o) ? dt(e, o) : null, c = s ? e(o).text() : "", l = I(o) && s?.label === i.label && s.title === i.title && [`${s.label}${s.title}`, `${s.label} ${s.title}`].some((e) => N(e) === N(c)) ? {
415
424
  element: o,
416
425
  text: `${s.label}\n${s.title}`
417
426
  } : void 0;
@@ -425,37 +434,37 @@ function st(e, t, n, r, i) {
425
434
  splitAtBreak: l
426
435
  });
427
436
  }
428
- function ct(e) {
437
+ function L(e) {
429
438
  let t = /* @__PURE__ */ new Map();
430
439
  return e("body *").each((e, n) => {
431
440
  t.set(n, e);
432
441
  }), t;
433
442
  }
434
- function z(e, t) {
443
+ function R(e, t) {
435
444
  return e.get(t) ?? 2 ** 53 - 1;
436
445
  }
437
- function lt(e, t) {
438
- if (!e(t).hasClass("assnat9ArticleNum") && !dt(e, t) || e(t).find("br").length !== 1) return null;
446
+ function dt(e, t) {
447
+ if (!e(t).hasClass("assnat9ArticleNum") && !pt(e, t) || e(t).find("br").length !== 1) return null;
439
448
  let n = "", r = "", i = !1, a = (e) => {
440
449
  if (e.type === "text") i ? r += e.data : n += e.data;
441
- else if (R(e)) if (e.tagName.toLowerCase() === "br") i = !0;
450
+ else if (I(e)) if (e.tagName.toLowerCase() === "br") i = !0;
442
451
  else for (let t of e.children) a(t);
443
452
  };
444
453
  a(t);
445
- let o = T(F(n)), s = F(r);
454
+ let o = C(M(n)), s = M(r);
446
455
  return o && !o.title && s ? {
447
456
  ...o,
448
457
  title: s
449
458
  } : null;
450
459
  }
451
- function ut(e) {
460
+ function ft(e) {
452
461
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
453
462
  e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((i, a) => {
454
- if (ze(e, a)) return;
455
- let o = F(e(a).text()), s = e(a).attr("id");
463
+ if (Be(e, a)) return;
464
+ let o = M(e(a).text()), s = e(a).attr("id");
456
465
  if (!s || r.has(s)) return;
457
- let c = ot(e, a), l = e(a).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0), u = T(o) ?? (R(l) && (a === l || e(a).find("br").length === 1) ? lt(e, l) : null);
458
- u && st(e, t, n, r, {
466
+ let c = lt(e, a), l = e(a).closest("h1,h2,h3,h4,h5,h6,p.assnat9ArticleNum").get(0), u = C(o) ?? (I(l) && (a === l || e(a).find("br").length === 1) ? dt(e, l) : null);
467
+ u && ut(e, t, n, r, {
459
468
  id: s,
460
469
  ...u,
461
470
  element: a,
@@ -463,37 +472,37 @@ function ut(e) {
463
472
  });
464
473
  }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((i, a) => {
465
474
  if (n.has(a)) return;
466
- let o = T(F(e(a).text())) ?? lt(e, a);
467
- o && st(e, t, n, r, {
475
+ let o = C(M(e(a).text())) ?? dt(e, a);
476
+ o && ut(e, t, n, r, {
468
477
  ...o,
469
478
  element: a,
470
479
  container: a
471
480
  });
472
481
  });
473
- let i = ct(e);
474
- return t.sort((e, t) => z(i, e.container) - z(i, t.container)), t;
482
+ let i = L(e);
483
+ return t.sort((e, t) => R(i, e.container) - R(i, t.container)), t;
475
484
  }
476
- function dt(e, t) {
477
- if (ze(e, t)) return !1;
485
+ function pt(e, t) {
486
+ if (Be(e, t)) return !1;
478
487
  let n = t.tagName?.toLowerCase();
479
488
  if (n !== "p") return /^h[1-6]$/u.test(n ?? "");
480
489
  let r = e(t).attr("style") ?? "", i = e(t).html() ?? "";
481
490
  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));
482
491
  }
483
- function ft(e) {
492
+ function mt(e) {
484
493
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
485
494
  return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((i, a) => {
486
- if (ze(e, a) || !e(a).hasClass("assnat9ArticleNum") && !dt(e, a)) return;
487
- let o = T(e(a).text()) ?? lt(e, a);
488
- o && st(e, t, n, r, {
495
+ if (Be(e, a) || !e(a).hasClass("assnat9ArticleNum") && !pt(e, a)) return;
496
+ let o = C(e(a).text()) ?? dt(e, a);
497
+ o && ut(e, t, n, r, {
489
498
  ...o,
490
499
  element: a,
491
500
  container: a
492
501
  });
493
502
  }), t;
494
503
  }
495
- function pt(e) {
496
- let t = Re(e ?? "").replace(/[()]/gu, "").trim();
504
+ function ht(e) {
505
+ let t = ze(e ?? "").replace(/[()]/gu, "").trim();
497
506
  if (!t || t.toLowerCase() === "liminaire") return;
498
507
  if (t.toLowerCase() === "unique") return {
499
508
  base: 1,
@@ -502,7 +511,7 @@ function pt(e) {
502
511
  };
503
512
  let n = /^(\d+|premier)(?:\s+([a-z]+))?(?:\s+([A-Z]+))?$/u.exec(t);
504
513
  if (!n) return;
505
- let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : ht(i);
514
+ let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : _t(i);
506
515
  if (a !== void 0) return {
507
516
  base: r,
508
517
  suffixOrder: a,
@@ -510,7 +519,7 @@ function pt(e) {
510
519
  text: t
511
520
  };
512
521
  }
513
- function mt(e, t) {
522
+ function gt(e, t) {
514
523
  if (t.base !== e.base) return t.base - e.base;
515
524
  if (t.suffixOrder !== e.suffixOrder) return t.suffixOrder - e.suffixOrder;
516
525
  for (let n = 0; n <= Math.max(e.letters?.length ?? 0, t.letters?.length ?? 0); n++) {
@@ -519,14 +528,14 @@ function mt(e, t) {
519
528
  }
520
529
  return 0;
521
530
  }
522
- function ht(e) {
523
- let t = new D(e), n = we(t);
531
+ function _t(e) {
532
+ let t = new E(e), n = be(t);
524
533
  if (!(n === void 0 || t.offset !== e.length) && !(typeof n != "object" || !n || !("value" in n) || typeof n.value != "number")) return n.value - 1;
525
534
  }
526
- function gt(e) {
535
+ function vt(e) {
527
536
  let t = [], n = e.map((e) => ({
528
537
  heading: e,
529
- token: pt(e.num)
538
+ token: ht(e.num)
530
539
  }));
531
540
  n.filter(({ token: e }) => e?.text === "unique").length > 0 && e.length > 1 && t.push({
532
541
  code: "article_toc_out_of_order",
@@ -535,7 +544,7 @@ function gt(e) {
535
544
  let r;
536
545
  for (let { heading: e, token: i } of n) if (!(i === void 0 || i.text === "unique")) {
537
546
  if (r !== void 0) {
538
- let n = mt(r, i);
547
+ let n = gt(r, i);
539
548
  n === 0 ? t.push({
540
549
  code: "article_toc_duplicate_number",
541
550
  message: `Article ${e.num ?? e.label} is repeated`,
@@ -564,158 +573,158 @@ function gt(e) {
564
573
  }
565
574
  return t;
566
575
  }
567
- function _t(e) {
568
- let t = gt(e);
576
+ function yt(e) {
577
+ let t = vt(e);
569
578
  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) });
570
579
  }
571
- function vt(e, { warn: t = !0 } = {}) {
572
- let n = ut(e), r = ft(e);
573
- if (n.length === 0) return t && _t(r), r;
574
- let i = ct(e), a = (e, t) => {
575
- let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => L(e.num ?? e.label)));
580
+ function bt(e, { warn: t = !0 } = {}) {
581
+ let n = ft(e), r = mt(e);
582
+ if (n.length === 0) return t && yt(r), r;
583
+ let i = L(e), a = (e, t) => {
584
+ let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => P(e.num ?? e.label)));
576
585
  for (let i of t) {
577
- let t = L(i.num ?? i.label);
586
+ let t = P(i.num ?? i.label);
578
587
  n.has(i.container) || r.has(t) || (n.add(i.container), r.add(t), e.push(i));
579
588
  }
580
- return e.sort((e, t) => z(i, e.container) - z(i, t.container)), e;
581
- }, o = r.filter((t) => e(t.element).is("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6")), s = a([...n], o), c = a([...s], r.filter((e) => !o.includes(e))), l = s.length >= 2 && gt(c).length > gt(s).length ? s : c;
582
- return t && _t(l), l;
589
+ return e.sort((e, t) => R(i, e.container) - R(i, t.container)), e;
590
+ }, 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 && vt(c).length > vt(s).length ? s : c;
591
+ return t && yt(l), l;
583
592
  }
584
- function yt(e) {
593
+ function xt(e) {
585
594
  let t = e.next;
586
595
  for (; t !== null;) {
587
- if (R(t)) return t;
596
+ if (I(t)) return t;
588
597
  t = t.next;
589
598
  }
590
599
  return null;
591
600
  }
592
- function bt(e, t, n) {
601
+ function St(e, t, n) {
593
602
  let r = e(t.container);
594
603
  if (!r.is("p.assnat9ArticleNum")) return;
595
604
  let i = r.parent(), a = i.parent();
596
605
  if (!i.is("div") || i.children().length !== 1 || !a.is("div")) return;
597
606
  let o = a.children().get();
598
- if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || F(e(o[1]).text()) !== "") return;
607
+ if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || M(e(o[1]).text()) !== "") return;
599
608
  let s = o.length === 4 ? o[2] : void 0;
600
- if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(F(e(s).text())))) return;
609
+ if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(M(e(s).text())))) return;
601
610
  let c = o.at(-1);
602
- 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) => T(e(t).text()) !== null))) return [
611
+ if (!(c.tagName !== "div" || n !== void 0 && e.contains(c, n.container) || e(c).find("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6").toArray().some((t) => C(e(t).text()) !== null))) return [
603
612
  t.container,
604
613
  ...s === void 0 ? [] : [s],
605
614
  c
606
615
  ];
607
616
  }
608
- function xt(e, t, n, r = ct(e)) {
617
+ function Ct(e, t, n, r = L(e)) {
609
618
  let i = [t.container], a = n?.container;
610
- for (let e = yt(t.container); e !== null && e !== a; e = yt(e)) i.push(e);
619
+ for (let e = xt(t.container); e !== null && e !== a; e = xt(e)) i.push(e);
611
620
  if (i.length > 1) return i;
612
- let o = bt(e, t, n);
621
+ let o = St(e, t, n);
613
622
  if (o !== void 0) return o;
614
- let s = z(r, t.container), c = a ? z(r, a) : -1;
623
+ let s = R(r, t.container), c = a ? R(r, a) : -1;
615
624
  return e("body > *").get().filter((e) => {
616
- let t = z(r, e);
625
+ let t = R(r, e);
617
626
  return t >= s && (c === -1 || t < c);
618
627
  });
619
628
  }
620
- function St(e, t) {
629
+ function wt(e, t) {
621
630
  let n = [], r = /* @__PURE__ */ new Set();
622
631
  for (let i of t) {
623
632
  let t = "p,li,table", a = e(i).is(t) ? [i] : e(i).find(t).get();
624
- for (let t of a) e(t).is("table.akn-pastille-table,p.pastille") || t.tagName === "p" && (/pastille/iu.test(e(t).attr("class") ?? "") || e(t).is("[data-pastille]")) && /^\(\d+\)$/u.test(F(e(t).text())) || e(t).is("p,li") && e(t).closest("table.akn-quoted-table").length > 0 || r.has(t) || (r.add(t), n.push(t));
633
+ for (let t of a) e(t).is("table.akn-pastille-table,p.pastille") || ot(e, t) || e(t).is("p,li") && e(t).closest("table.akn-quoted-table").length > 0 || r.has(t) || (r.add(t), n.push(t));
625
634
  }
626
635
  return n;
627
636
  }
628
- function Ct(e, t, n, r) {
637
+ function Tt(e, t, n, r) {
629
638
  let i = [], a = !1;
630
- for (let o of St(e, n)) {
631
- let n = e(o).is("table.akn-quoted-table") ? dn(e, o) : F(e(o).text());
639
+ for (let o of wt(e, n)) {
640
+ let n = e(o).is("table.akn-quoted-table") ? _n(e, o) : M(e(o).text());
632
641
  if (o === r?.splitAtBreak?.element && (n = r.splitAtBreak.text), !n) continue;
633
- Le.test(n) && (a = !0);
634
- let s = a ? "noise" : it(n), c = `${t}-b${i.length + 1}`;
642
+ Re.test(n) && (a = !0);
643
+ let s = a ? "noise" : at(n), c = `${t}-b${i.length + 1}`;
635
644
  e(o).attr("data-pjl-parsed-article-id", t), e(o).attr("data-pjl-parsed-block-id", c), i.push({
636
645
  id: c,
637
646
  articleId: t,
638
647
  kind: s,
639
- links: et(e, o),
648
+ links: tt(e, o),
640
649
  text: n,
641
- html: $e(e, o)
650
+ html: et(e, o)
642
651
  });
643
652
  }
644
653
  return i;
645
654
  }
646
- function wt(e, t) {
655
+ function Et(e, t) {
647
656
  if (t.length === 0) return e;
648
657
  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>`;
649
658
  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}`;
650
659
  }
651
- function Tt(e) {
652
- let t = E(e), n = Et(t);
653
- for (let e of vt(t, { warn: !1 })) {
654
- let r = L(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
660
+ function Dt(e) {
661
+ let t = b(e), n = Ot(t);
662
+ for (let e of bt(t, { warn: !1 })) {
663
+ let r = P(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
655
664
  if (a !== r) {
656
- if (a?.startsWith("_Toc") && !Ot(n, a, e.element)) {
665
+ if (a?.startsWith("_Toc") && !At(n, a, e.element)) {
657
666
  let e = t("<span></span>").attr("id", a);
658
667
  i.before(e);
659
668
  let r = e.get(0);
660
- R(r) && B(n, a, r);
669
+ I(r) && z(n, a, r);
661
670
  }
662
- a && Dt(n, a, e.element), i.attr("id", r), B(n, r, e.element);
671
+ a && kt(n, a, e.element), i.attr("id", r), z(n, r, e.element);
663
672
  }
664
673
  }
665
- let r = vt(t), i = ct(t);
674
+ let r = bt(t), i = L(t);
666
675
  for (let [e, a] of r.entries()) {
667
- let o = xt(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
676
+ let o = Ct(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
668
677
  for (let e of o) {
669
678
  let r = t(e).attr("data-alinea")?.trim();
670
679
  if (!r) continue;
671
680
  let i = `${a.id}-alinea-${r.replace(/\s+/gu, "")}`;
672
- if (Ot(n, i, e)) continue;
681
+ if (At(n, i, e)) continue;
673
682
  let o = t(e).attr("id");
674
683
  if (o && o !== i) {
675
684
  let r = t("<span></span>").attr("id", i);
676
685
  t(e).before(r);
677
686
  let a = r.get(0);
678
- R(a) && B(n, i, a);
679
- } else o && Dt(n, o, e), t(e).attr("id", i), B(n, i, e);
687
+ I(a) && z(n, i, a);
688
+ } else o && kt(n, o, e), t(e).attr("id", i), z(n, i, e);
680
689
  }
681
690
  }
682
691
  return t.html();
683
692
  }
684
- function Et(e) {
693
+ function Ot(e) {
685
694
  let t = /* @__PURE__ */ new Map();
686
695
  for (let n of e("[id]").get()) {
687
696
  let r = e(n).attr("id");
688
- r && B(t, r, n);
697
+ r && z(t, r, n);
689
698
  }
690
699
  return t;
691
700
  }
692
- function B(e, t, n) {
701
+ function z(e, t, n) {
693
702
  let r = e.get(t);
694
703
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r)), r.add(n);
695
704
  }
696
- function Dt(e, t, n) {
705
+ function kt(e, t, n) {
697
706
  let r = e.get(t);
698
707
  r !== void 0 && (r.delete(n), r.size === 0 && e.delete(t));
699
708
  }
700
- function Ot(e, t, n) {
709
+ function At(e, t, n) {
701
710
  for (let r of e.get(t) ?? []) if (r !== n) return !0;
702
711
  return !1;
703
712
  }
704
- function kt(e, t) {
705
- let n = Qe("sourceText" in t ? t.sourceText : "");
713
+ function jt(e, t) {
714
+ let n = $e("sourceText" in t ? t.sourceText : "");
706
715
  if (n) return e.filter((e) => e.kind === "directive_candidate").find((e) => {
707
- let t = Qe(e.text);
716
+ let t = $e(e.text);
708
717
  return t.length > 0 && (n.includes(t) || t.includes(n));
709
718
  });
710
719
  }
711
- function At(e, t) {
720
+ function Mt(e, t) {
712
721
  if (t) return t.blockIds.map((t) => e.get(t)).find((e) => e?.kind === "directive_candidate");
713
722
  }
714
- function jt(e) {
723
+ function Nt(e) {
715
724
  return e?.links.filter((t) => !t.insideFrenchQuotes && (t.type === "article" || t.type === "division") && t.id !== e.qualifiedVersion?.modifyingArticleId).map((e) => e.id) ?? [];
716
725
  }
717
- function Mt(e) {
718
- let t = Ie(e.text);
726
+ function Pt(e) {
727
+ let t = h(e.text);
719
728
  if (t.length !== 1) return;
720
729
  let n = e.links.filter((e) => e.type === "article" && !e.insideFrenchQuotes), r = n.filter((n) => {
721
730
  let r = n.text ?? "", i = e.text.indexOf(r);
@@ -729,13 +738,13 @@ function Mt(e) {
729
738
  modifyingArticleLabel: i.text ?? ""
730
739
  };
731
740
  }
732
- function Nt(e, t) {
733
- let n = F(e);
741
+ function Ft(e, t) {
742
+ let n = M(e);
734
743
  if (!n) return;
735
- let r = x(n);
744
+ let r = fe(n);
736
745
  return r ? r.level : n.endsWith(":") ? (t ?? -1) + 1 : void 0;
737
746
  }
738
- function Pt(e) {
747
+ function It(e) {
739
748
  let t = /* @__PURE__ */ new Map(), n = [], r = re(e.map((e) => e.text)), i = -1;
740
749
  for (let [a, o] of e.entries()) {
741
750
  let e = r.get(a);
@@ -743,7 +752,7 @@ function Pt(e) {
743
752
  t.set(o.id, [...n.map((e) => e.block), o]);
744
753
  continue;
745
754
  }
746
- let s = Nt(o.text, n.at(-1)?.level);
755
+ let s = Ft(o.text, n.at(-1)?.level);
747
756
  if (s === void 0) {
748
757
  t.set(o.id, [...n.map((e) => e.block), o]);
749
758
  continue;
@@ -756,14 +765,14 @@ function Pt(e) {
756
765
  }
757
766
  return t;
758
767
  }
759
- function Ft(e, t) {
768
+ function Lt(e, t) {
760
769
  let n = [], r = /* @__PURE__ */ new Set();
761
770
  for (let i of [...e ?? [], ...t]) i !== void 0 && (r.has(i.id) || (r.add(i.id), n.push(i)));
762
771
  return n;
763
772
  }
764
- function It(e, t, n) {
773
+ function Rt(e, t, n) {
765
774
  if (!t) return;
766
- let r = Ft(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
775
+ let r = Lt(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
767
776
  if (r.length === 0) return;
768
777
  let i = r.map((e) => e.id);
769
778
  if (i.length === t.blockIds.length && i.every((e, n) => e === t.blockIds[n])) return;
@@ -778,7 +787,7 @@ function It(e, t, n) {
778
787
  }
779
788
  };
780
789
  }
781
- function Lt(e) {
790
+ function zt(e) {
782
791
  let t = [], n = 0;
783
792
  for (let r of e.blocks) {
784
793
  let i = e.directiveText.indexOf(r.text, n);
@@ -792,7 +801,7 @@ function Lt(e) {
792
801
  }
793
802
  return t;
794
803
  }
795
- function Rt(e, t, n) {
804
+ function Bt(e, t, n) {
796
805
  let { start: r, stop: i } = n.sourcePosition, a = t.filter((e) => e.stop > r && e.start < i);
797
806
  if (a.length === 0) return;
798
807
  let o = a[0], s = a[a.length - 1], c = o.start, l = s.stop;
@@ -806,7 +815,7 @@ function Rt(e, t, n) {
806
815
  }
807
816
  };
808
817
  }
809
- function zt(e, t, n) {
818
+ function Vt(e, t, n) {
810
819
  if (!t) return;
811
820
  let r = e.directiveText.indexOf(t.text);
812
821
  if (r === -1) return;
@@ -819,17 +828,92 @@ function zt(e, t, n) {
819
828
  stop: a
820
829
  };
821
830
  }
822
- function Bt(e, t) {
823
- let n = performance.now(), r = performance.now(), i = Lt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Pt(e.blocks), l = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map(), d = [], f;
824
- for (let t of e.blocks) {
825
- t.qualifiedVersion = Mt(t);
826
- let e = jt(t);
827
- (e.length > 0 || t.qualifiedVersion) && (d = e, f = t.qualifiedVersion), l.set(t.id, d), u.set(t.id, f);
831
+ function Ht(e, t, n) {
832
+ for (let r of [...t.get(e.id) ?? [e]].reverse()) {
833
+ let e = n.get(r.id);
834
+ if (!n.has(r.id)) {
835
+ let t = r.links.filter((e) => e.type === "text" && !e.insideFrenchQuotes), i = t.length > 0 ? _(r.text) : [], a = [], o = !1;
836
+ for (let e of t) {
837
+ let t = e.text, n = t ? r.text.indexOf(t) : -1;
838
+ if (n < 0 || r.text.indexOf(t, n + 1) !== -1) {
839
+ o = !0;
840
+ break;
841
+ }
842
+ i.some((e) => n <= e.start && e.stop <= n + t.length) || a.push(e.id);
843
+ }
844
+ e = o ? void 0 : [...new Set(a)], n.set(r.id, e);
845
+ }
846
+ if (e === void 0 || e.length > 1) return;
847
+ if (e.length === 1) return e[0];
848
+ }
849
+ }
850
+ function B(e, t) {
851
+ return `${e}\0${F(t)}`;
852
+ }
853
+ function Ut(e) {
854
+ let t = new Map(e.map((e) => [e.id, e])), n = /* @__PURE__ */ new Map();
855
+ return (e, r) => {
856
+ if (r === void 0) return;
857
+ let i = n.get(e);
858
+ if (i === void 0) {
859
+ let r = t.get(e);
860
+ if (r === void 0) return;
861
+ i = {
862
+ blockById: new Map(r.blocks.map((e) => [e.id, e])),
863
+ contextByBlockId: It(r.blocks),
864
+ textIdsByBlockId: /* @__PURE__ */ new Map()
865
+ }, n.set(e, i);
866
+ }
867
+ let a = i.blockById.get(r);
868
+ return a === void 0 ? void 0 : Ht(a, i.contextByBlockId, i.textIdsByBlockId);
869
+ };
870
+ }
871
+ function Wt(e, t, n, r, i) {
872
+ let o = /* @__PURE__ */ new Map(), c = new Set(e.blocks.flatMap((e) => {
873
+ if (!e.text.includes("Art.")) return [];
874
+ let t = Ht(e, i, o);
875
+ return t === void 0 ? [] : m(ge(e.text).output).map(({ num: e }) => B(t, e));
876
+ }));
877
+ if (c.size === 0) return /* @__PURE__ */ new Map();
878
+ let l = new Set([...c].map((e) => e.slice(e.indexOf("\0") + 1))), u = t.flatMap((t) => {
879
+ if (Ke(t.reference)) return [];
880
+ let s = new Set([...a(t.reference)].filter((e) => e.type === "article" && e.num).map((e) => e.num));
881
+ if (![...s].some((e) => l.has(F(e)))) return [];
882
+ let c = Mt(n, Bt(e, r, t)) ?? jt(e.blocks, t);
883
+ if (!c) return [];
884
+ let u = Ht(c, i, o);
885
+ return u === void 0 ? [] : [{
886
+ block: c,
887
+ directive: t,
888
+ nums: s,
889
+ textId: u
890
+ }];
891
+ });
892
+ if (u.length === 0) return /* @__PURE__ */ new Map();
893
+ let d = new Set(u.flatMap(({ nums: e, textId: t }) => [...e].map((e) => B(t, e))));
894
+ if (![...d].some((e) => c.has(e))) return /* @__PURE__ */ new Map();
895
+ let f = new Set(t.flatMap((t) => {
896
+ let a = We(t);
897
+ if (a.length === 0) return [];
898
+ let s = Mt(n, Bt(e, r, t)) ?? jt(e.blocks, t);
899
+ if (!s) return [];
900
+ let c = Ht(s, i, o);
901
+ return c === void 0 ? [] : a.map(({ num: e }) => B(c, e)).filter((e) => d.has(e));
902
+ })), p = /* @__PURE__ */ new Map();
903
+ for (let { block: e, directive: t, nums: n, textId: r } of u) {
904
+ if (![...n].some((e) => c.has(B(r, e)))) continue;
905
+ let i = new Set(s(new E(ge(t.sourceText).output)).flatMap((e) => [...a(e)].filter((e) => e.type === "article" && e.num).map((e) => e.num))), o = [...n].filter((e) => c.has(B(r, e)) && !f.has(B(r, e)) && [...i].some((t) => F(t) === F(e)));
906
+ o.length > 0 && p.set(e.id, [...new Set([...p.get(e.id) ?? [], ...o])]);
828
907
  }
829
- let p = performance.now() - o, m = performance.now(), h = te(), g = e.blocks[0], _ = e.title !== void 0 && g?.text.startsWith(`${e.label}\n`) && (e.directiveText === g.text || e.directiveText.startsWith(`${g.text}\n`)), v = _ && e.text.startsWith(`${e.label} ${e.title}`) ? " " : "", y = le(_ ? `${e.label}${v}${e.title}${e.directiveText.slice(g.text.length)}` : e.directiveText, t === void 0 ? void 0 : h);
830
- if (_ && !v) {
908
+ return p;
909
+ }
910
+ function Gt(e, t) {
911
+ let n = performance.now(), r = performance.now(), i = zt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = It(e.blocks);
912
+ for (let t of e.blocks) t.qualifiedVersion = Pt(t);
913
+ let l = performance.now() - o, u = performance.now(), d = ee(), f = e.blocks[0], p = e.title !== void 0 && f?.text.startsWith(`${e.label}\n`) && (e.directiveText === f.text || e.directiveText.startsWith(`${f.text}\n`)), m = p && e.text.startsWith(`${e.label} ${e.title}`) ? " " : "", h = pe(p ? `${e.label}${m}${e.title}${e.directiveText.slice(f.text.length)}` : e.directiveText, t === void 0 ? void 0 : d);
914
+ if (p && !m) {
831
915
  let t = e.label.length;
832
- y = y.map((e) => ({
916
+ h = h.map((e) => ({
833
917
  ...e,
834
918
  sourcePosition: {
835
919
  start: e.sourcePosition.start > t ? e.sourcePosition.start + 1 : e.sourcePosition.start,
@@ -837,39 +921,46 @@ function Bt(e, t) {
837
921
  }
838
922
  }));
839
923
  }
840
- let b = performance.now() - m, x = performance.now(), ee = y.map((t) => {
841
- let n = Rt(e, i, t), r = At(s, n) ?? kt(e.blocks, t), a = jt(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], d = zt(e, r, t), f = It(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
924
+ let g = performance.now() - u, _ = performance.now(), v = Wt(e, h, s, i, c), y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map(), x = [], S;
925
+ for (let t of e.blocks) {
926
+ let e = Nt(t);
927
+ (e.length > 0 || t.qualifiedVersion || v.has(t.id)) && (x = v.has(t.id) ? [] : e, S = t.qualifiedVersion), y.set(t.id, x), b.set(t.id, S);
928
+ }
929
+ l += performance.now() - _;
930
+ let C = performance.now(), te = h.map((t) => {
931
+ let n = Bt(e, i, t), r = Mt(s, n) ?? jt(e.blocks, t), a = Nt(r), o = r?.id !== void 0 && v.has(r.id) ? [] : a.length > 0 ? a : r?.id === void 0 ? [] : y.get(r.id) ?? [], l = Vt(e, r, t), u = Rt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
842
932
  return {
843
933
  articleId: e.id,
844
934
  blockId: r?.id,
845
- ...d === void 0 ? {} : { sourceBlockPosition: d },
935
+ ...l === void 0 ? {} : { sourceBlockPosition: l },
846
936
  ...n === void 0 ? {} : {
847
937
  sourceBlockIds: n.blockIds,
848
938
  sourceBlockText: n.text,
849
939
  sourceBlockHtml: n.html,
850
940
  sourceBlockPosition: n.position
851
941
  },
852
- ...f === void 0 ? {} : {
853
- sourceContextBlockIds: f.blockIds,
854
- sourceContextPosition: f.position
942
+ ...u === void 0 ? {} : {
943
+ sourceContextBlockIds: u.blockIds,
944
+ sourceContextPosition: u.position
855
945
  },
856
946
  directive: t,
857
- ...o.length > 0 ? { targetIds: o } : {},
858
- ...r?.id !== void 0 && u.get(r.id) ? { qualifiedVersion: u.get(r.id) } : {}
947
+ ...r?.id !== void 0 && v.has(r.id) ? { internallyCreatedTargetNums: v.get(r.id) } : {},
948
+ ...o.length > 0 || r?.id !== void 0 && v.has(r.id) ? { targetIds: o } : {},
949
+ ...r?.id !== void 0 && b.get(r.id) ? { qualifiedVersion: b.get(r.id) } : {}
859
950
  };
860
- }), S = /* @__PURE__ */ new Set(), C = /* @__PURE__ */ new Map(), w = ee.flatMap((e) => {
951
+ }), ne = /* @__PURE__ */ new Set(), re = /* @__PURE__ */ new Map(), ie = te.flatMap((e) => {
861
952
  let t = e.blockId ? s.get(e.blockId) : void 0;
862
- if (!t) return [e];
863
- if (S.has(t.id)) return [];
864
- let n = C.get(t.id);
865
- if (n === void 0 && (n = Pe(t.text, jt(t), e.directive), C.set(t.id, n)), !n) {
866
- let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ne(t.text, n.operations.length) : null;
953
+ if (!t || e.internallyCreatedTargetNums?.length) return [e];
954
+ if (ne.has(t.id)) return [];
955
+ let n = re.get(t.id);
956
+ if (n === void 0 && (n = Le(t.text, Nt(t), e.directive), re.set(t.id, n)), !n) {
957
+ let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ie(t.text, n.operations.length) : null;
867
958
  return [r ? {
868
959
  ...e,
869
960
  sourceAnnotations: r
870
961
  } : e];
871
962
  }
872
- return S.add(t.id), [{
963
+ return ne.add(t.id), [{
873
964
  ...e,
874
965
  effects: n.map((t) => ({
875
966
  ...t,
@@ -880,69 +971,84 @@ function Bt(e, t) {
880
971
  }
881
972
  }))
882
973
  }];
883
- }), ne = performance.now() - x;
974
+ }), ae = performance.now() - C;
884
975
  return t?.push({
885
- actionDirectiveExtraction: h,
976
+ actionDirectiveExtraction: d,
886
977
  articleId: e.id,
887
978
  blockCount: e.blocks.length,
888
979
  buildRangesMs: Math.round(a * 10) / 10,
889
- directiveCount: w.length,
980
+ directiveCount: ie.length,
890
981
  directiveTextSize: e.directiveText.length,
891
- extractActionDirectivesMs: Math.round(b * 10) / 10,
892
- mapDirectivesMs: Math.round(ne * 10) / 10,
893
- prepareBlockIndexesMs: Math.round(p * 10) / 10,
982
+ extractActionDirectivesMs: Math.round(g * 10) / 10,
983
+ mapDirectivesMs: Math.round(ae * 10) / 10,
984
+ prepareBlockIndexesMs: Math.round(l * 10) / 10,
894
985
  totalMs: Math.round((performance.now() - n) * 10) / 10
895
- }), w;
986
+ }), ie;
896
987
  }
897
- function Vt(e) {
898
- let t = /* @__PURE__ */ new Map(), n = [], r = /* @__PURE__ */ new Set();
899
- for (let i of e) {
900
- let e = We(i.directive);
988
+ function Kt(e, t) {
989
+ let n = /* @__PURE__ */ new Map(), r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
990
+ for (let o of e) {
991
+ let e = We(o.directive);
901
992
  if (e.length === 0) continue;
902
- let a = e.map(({ num: e }) => ({
903
- definitionId: `${i.articleId}:article:${Ve(e)}`,
904
- num: e
905
- }));
906
- t.set(i, a);
907
- for (let [t, o] of e.entries()) {
908
- let e = a[t];
909
- e === void 0 || r.has(e.definitionId) || (r.add(e.definitionId), n.push({
993
+ let s = t(o.articleId, o.blockId), c = e.map(({ num: e }) => {
994
+ let t = s === void 0 ? void 0 : `${o.articleId}\0${B(s, e)}`, n = t === void 0 ? void 0 : a.get(t);
995
+ if (n !== void 0) return n;
996
+ let r = `${o.articleId}:article:${Ve(e)}`, c = r;
997
+ if (i.has(c)) {
998
+ let e = s ?? o.blockId ?? "unknown";
999
+ c = `${r}:text:${e}`;
1000
+ for (let t = 2; i.has(c); t++) c = `${r}:text:${e}:${t}`;
1001
+ }
1002
+ let l = {
1003
+ definitionId: c,
1004
+ num: e
1005
+ };
1006
+ return t !== void 0 && a.set(t, l), l;
1007
+ });
1008
+ n.set(o, c);
1009
+ for (let [t, n] of e.entries()) {
1010
+ let e = c[t];
1011
+ e === void 0 || i.has(e.definitionId) || (i.add(e.definitionId), r.push({
910
1012
  ...e,
911
- articleId: i.articleId,
912
- blockId: i.blockId,
913
- html: o.text,
914
- ...i.targetIds === void 0 ? {} : { parentTargetIds: i.targetIds },
915
- ...i.sourceBlockHtml === void 0 ? {} : { sourceBlockHtml: i.sourceBlockHtml },
916
- ...i.sourceBlockText === void 0 ? {} : { sourceBlockText: i.sourceBlockText },
917
- text: o.text
1013
+ articleId: o.articleId,
1014
+ blockId: o.blockId,
1015
+ html: n.text,
1016
+ ...o.targetIds === void 0 ? {} : { parentTargetIds: o.targetIds },
1017
+ ...o.sourceBlockHtml === void 0 ? {} : { sourceBlockHtml: o.sourceBlockHtml },
1018
+ ...o.sourceBlockText === void 0 ? {} : { sourceBlockText: o.sourceBlockText },
1019
+ text: n.text
918
1020
  }));
919
1021
  }
920
1022
  }
921
1023
  return {
922
- createdArticlesByDirective: t,
923
- definitions: n
1024
+ createdArticlesByDirective: n,
1025
+ definitions: r
924
1026
  };
925
1027
  }
926
- function Ht(e, t, n) {
927
- let r = new Map(t.map((e) => [Be(e.num), e]));
1028
+ function qt(e, t, n, r) {
1029
+ if (t.length === 0) return e;
1030
+ let i = new Map(t.flatMap((e) => {
1031
+ let t = r(e.articleId, e.blockId);
1032
+ return t === void 0 ? [] : [[B(t, e.num), e]];
1033
+ }));
928
1034
  return e.map((e) => {
929
- let t = n.get(e), i = t?.[0], a = [...Ge(e.directive.reference)].map((e) => r.get(Be(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
930
- definitionId: a.definitionId,
931
- num: a.num
932
- }, s = Ke(e.directive), c = (e.targetIds?.length ?? 0) > 0;
1035
+ let t = n.get(e), a = t?.[0], o = r(e.articleId, e.blockId), s = (o === void 0 ? [] : [...Ge(e.directive.reference)].map((e) => i.get(B(o, e))).filter((e) => e !== void 0 && e.definitionId !== a?.definitionId))[0], c = s === void 0 ? void 0 : {
1036
+ definitionId: s.definitionId,
1037
+ num: s.num
1038
+ }, l = qe(e.directive), u = (e.targetIds?.length ?? 0) > 0;
933
1039
  return {
934
1040
  ...e,
935
- ...i === void 0 ? {} : { createdArticle: i },
1041
+ ...a === void 0 ? {} : { createdArticle: a },
936
1042
  ...t !== void 0 && t.length > 0 ? { createdArticles: t } : {},
937
- ...o !== void 0 && (s || !c) ? { internalTarget: {
938
- ...o,
939
- resolution: s ? "explicit" : "fallback"
1043
+ ...c !== void 0 && (l || !u) ? { internalTarget: {
1044
+ ...c,
1045
+ resolution: l ? "explicit" : "fallback"
940
1046
  } } : {},
941
- ...o !== void 0 && c && !s ? { internalTargetAmbiguity: o } : {}
1047
+ ...c !== void 0 && u && !l ? { internalTargetAmbiguity: c } : {}
942
1048
  };
943
1049
  });
944
1050
  }
945
- function Ut(e) {
1051
+ function Jt(e) {
946
1052
  switch (e.kind) {
947
1053
  case "insert_after":
948
1054
  case "insert_before": return [e.insertText];
@@ -960,8 +1066,8 @@ function Ut(e) {
960
1066
  default: return [];
961
1067
  }
962
1068
  }
963
- function Wt(e) {
964
- return e.flatMap((e) => Ut(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
1069
+ function Yt(e) {
1070
+ return e.flatMap((e) => Jt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
965
1071
  code: "nested_french_quote_in_redaction",
966
1072
  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.",
967
1073
  details: {
@@ -973,18 +1079,18 @@ function Wt(e) {
973
1079
  }
974
1080
  })));
975
1081
  }
976
- function Gt(e) {
977
- return Ut(e).map((t) => ({
1082
+ function Xt(e) {
1083
+ return Jt(e).map((t) => ({
978
1084
  directiveKind: e.kind,
979
1085
  text: t
980
1086
  }));
981
1087
  }
982
- function Kt(e) {
1088
+ function Zt(e) {
983
1089
  let t = /* @__PURE__ */ new Set();
984
1090
  for (let n of e.matchAll(/«[^«»\n]+»/gu)) t.add(n[0]);
985
1091
  return Array.from(t);
986
1092
  }
987
- function qt(e, t) {
1093
+ function Qt(e, t) {
988
1094
  let n = new Map(e.blocks.map((e) => [e.id, e])), r = t.sourceBlockIds ?? e.blocks.map((e) => e.id), i = [], a = 0;
989
1095
  for (let e of r) {
990
1096
  let t = n.get(e);
@@ -996,11 +1102,11 @@ function qt(e, t) {
996
1102
  }
997
1103
  return i;
998
1104
  }
999
- function Jt(e, t, n) {
1105
+ function $t(e, t, n) {
1000
1106
  return e.find((e) => t >= e.start && n <= e.stop);
1001
1107
  }
1002
- function Yt(e, t, n) {
1003
- let r = Kt(n), i = r.flatMap((t) => {
1108
+ function en(e, t, n) {
1109
+ let r = Zt(n), i = r.flatMap((t) => {
1004
1110
  for (let n of e.blocks) {
1005
1111
  let e = n.text.indexOf(t);
1006
1112
  if (e !== -1) return [{
@@ -1019,7 +1125,7 @@ function Yt(e, t, n) {
1019
1125
  e.directiveText
1020
1126
  ].filter((e) => e !== void 0 && e.length > 0), o = a.find((e) => r.some((t) => e.includes(t))) ?? a[0];
1021
1127
  if (!o) return [];
1022
- let s = qt(e, t);
1128
+ let s = Qt(e, t);
1023
1129
  if (s.length === 0) return [];
1024
1130
  let c = [], l = 0;
1025
1131
  for (let e of r) {
@@ -1027,7 +1133,7 @@ function Yt(e, t, n) {
1027
1133
  if (t === -1) continue;
1028
1134
  let n = t + e.length;
1029
1135
  l = n;
1030
- let r = Jt(s, t, n);
1136
+ let r = $t(s, t, n);
1031
1137
  r && c.push({
1032
1138
  blockId: r.block.id,
1033
1139
  start: t - r.start,
@@ -1037,15 +1143,15 @@ function Yt(e, t, n) {
1037
1143
  }
1038
1144
  return c;
1039
1145
  }
1040
- function Xt(e, t) {
1146
+ function tn(e, t) {
1041
1147
  let n = new Map(e.map((e) => [e.id, e]));
1042
1148
  return t.flatMap((e) => {
1043
1149
  let t = n.get(e.articleId);
1044
- return t ? Gt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1150
+ return t ? Xt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
1045
1151
  articleId: e.articleId,
1046
1152
  code: "nested_french_quote_in_redaction",
1047
1153
  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.",
1048
- ranges: Yt(t, e, r),
1154
+ ranges: en(t, e, r),
1049
1155
  severity: "warning",
1050
1156
  details: {
1051
1157
  blockId: e.blockId,
@@ -1056,7 +1162,7 @@ function Xt(e, t) {
1056
1162
  })) : [];
1057
1163
  });
1058
1164
  }
1059
- function Zt(e, t) {
1165
+ function nn(e, t) {
1060
1166
  let n = new Map(e.flatMap((e) => [...re(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
1061
1167
  articleId: e.id,
1062
1168
  blockIds: e.blocks.slice(t - 1, n.endIndex + 1).map((e) => e.id),
@@ -1079,13 +1185,35 @@ function Zt(e, t) {
1079
1185
  }];
1080
1186
  });
1081
1187
  }
1082
- function Qt(e, t, n, r, i, a, o = !0, s) {
1083
- let c = new xe("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 = {
1188
+ function rn(e, t) {
1189
+ let n = new Map(e.flatMap((e) => e.blocks.map((e) => [e.id, e]))), r = /* @__PURE__ */ new Set();
1190
+ return t.flatMap((e) => {
1191
+ let t = e.blockId, i = e.internallyCreatedTargetNums;
1192
+ if (!t || !i?.length || r.has(t)) return [];
1193
+ r.add(t);
1194
+ let a = n.get(t);
1195
+ return a?.text ? [{
1196
+ articleId: e.articleId,
1197
+ code: "bill_created_article_target_unprojectable",
1198
+ details: { articleNums: i },
1199
+ message: "La directive vise un article créé par ce texte ; sa projection n'est pas encore disponible.",
1200
+ ranges: [{
1201
+ blockId: t,
1202
+ start: 0,
1203
+ stop: a.text.length,
1204
+ text: a.text
1205
+ }],
1206
+ severity: "warning"
1207
+ }] : [];
1208
+ });
1209
+ }
1210
+ function an(e, t, n, r, i, a, o = !0, s) {
1211
+ let c = new Ce("parsedBill.buildParsedDocument"), l = i.reduce((e, t) => e + t.blocks.length, 0), u = c.timeSync("buildDirectiveText", () => i.map((e) => e.directiveText).filter(Boolean).join("\n")), d = {
1084
1212
  sourceFormat: e,
1085
1213
  documentDate: r,
1086
1214
  html: t,
1087
1215
  htmlWithLinks: n,
1088
- tableOfContents: a ?? c.timeSync("extractTableOfContents", () => b(u), { inputSize: u.length }),
1216
+ tableOfContents: a ?? c.timeSync("extractTableOfContents", () => y(u), { inputSize: u.length }),
1089
1217
  articles: i
1090
1218
  };
1091
1219
  if (!o) {
@@ -1101,29 +1229,33 @@ function Qt(e, t, n, r, i, a, o = !0, s) {
1101
1229
  directiveTextSize: u.length
1102
1230
  }), e;
1103
1231
  }
1104
- let f = c.timeSync("extractGlobalApplicabilityDate", () => Ze(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1232
+ let f = c.timeSync("extractGlobalApplicabilityDate", () => Qe(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1105
1233
  let e = [];
1106
1234
  for (let t of i) {
1107
- let n = Bt(t, c.enabled ? p : void 0);
1235
+ let n = Gt(t, c.enabled ? p : void 0);
1108
1236
  e.push(...n);
1109
1237
  }
1110
1238
  return e;
1111
- }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Vt(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Ht(m, g, h), { count: m.length }), v = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Wt(_), { count: _.length }), y = [...s ?? [], ...v], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Xt(i, _), ...Zt(i, _)], { count: _.length }), ee = {
1239
+ }, { count: i.length }), h = Ut(i), { createdArticlesByDirective: g, definitions: _ } = c.timeSync("buildInternalArticleDefinitions", () => Kt(m, h), { count: m.length }), v = c.timeSync("attachInternalArticleMetadata", () => qt(m, _, g, h), { count: m.length }), b = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Yt(v), { count: v.length }), x = [...s ?? [], ...b], ee = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [
1240
+ ...tn(i, v),
1241
+ ...nn(i, v),
1242
+ ...rn(i, v)
1243
+ ], { count: v.length }), S = {
1112
1244
  ...d,
1113
1245
  ...f ? { globalApplicabilityDate: f } : {},
1114
- ...g.length > 0 ? { internalArticleDefinitions: g } : {},
1115
- directives: _,
1116
- ...x.length > 0 ? { annotations: x } : {},
1117
- ...y.length > 0 ? { diagnostics: y } : {}
1246
+ ..._.length > 0 ? { internalArticleDefinitions: _ } : {},
1247
+ directives: v,
1248
+ ...ee.length > 0 ? { annotations: ee } : {},
1249
+ ...x.length > 0 ? { diagnostics: x } : {}
1118
1250
  };
1119
1251
  return c.log({
1120
- annotationCount: x.length,
1252
+ annotationCount: ee.length,
1121
1253
  articleCount: i.length,
1122
1254
  blockCount: l,
1123
- definitionCount: g.length,
1124
- diagnosticCount: y.length,
1255
+ definitionCount: _.length,
1256
+ diagnosticCount: x.length,
1125
1257
  directiveAnalysisIncluded: !0,
1126
- directiveCount: _.length,
1258
+ directiveCount: v.length,
1127
1259
  actionDirectiveExtractionTotals: p.reduce((e, t) => ({
1128
1260
  applyApplicabilityDatesMs: e.applyApplicabilityDatesMs + t.actionDirectiveExtraction.applyApplicabilityDatesMs,
1129
1261
  buildListItemTreeMs: e.buildListItemTreeMs + t.actionDirectiveExtraction.buildListItemTreeMs,
@@ -1200,20 +1332,20 @@ function Qt(e, t, n, r, i, a, o = !0, s) {
1200
1332
  }),
1201
1333
  directiveTextSize: u.length,
1202
1334
  slowDirectiveArticles: p.toSorted((e, t) => t.totalMs - e.totalMs).slice(0, 10)
1203
- }), ee;
1335
+ }), S;
1204
1336
  }
1205
- function $t(e) {
1337
+ function on(e) {
1206
1338
  return { items: e.map((e) => ({
1207
1339
  id: e.id,
1208
1340
  line: e.title ? `${e.label} : ${e.title}` : e.label,
1209
1341
  type: "article"
1210
1342
  })) };
1211
1343
  }
1212
- function en(e) {
1213
- return Array.from(ce(e)).filter((e) => e.type === "article").map((e) => I(e.line.split(/[::]/u)[0]));
1344
+ function sn(e) {
1345
+ return Array.from(de(e)).filter((e) => e.type === "article").map((e) => N(e.line.split(/[::]/u)[0]));
1214
1346
  }
1215
- function tn(e, t, n, r) {
1216
- let i = gt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ce(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? L(e.num) : E(e.html)("p.TCNumArticle").first().attr("id") ?? L(e.label) : e.id), c = o.map((e) => e.id);
1347
+ function cn(e, t, n, r) {
1348
+ let i = vt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(de(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? P(e.num) : b(e.html)("p.TCNumArticle").first().attr("id") ?? P(e.label) : e.id), c = o.map((e) => e.id);
1217
1349
  (c.length !== s.length || c.some((e, t) => e !== s[t])) && i.push({
1218
1350
  code: "article_toc_source_heading_mismatch",
1219
1351
  message: "The table of contents differs from the parsed article headings",
@@ -1229,8 +1361,8 @@ function tn(e, t, n, r) {
1229
1361
  });
1230
1362
  return i;
1231
1363
  }
1232
- function nn(e, t, n) {
1233
- let r = en(b(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => I(e.label)), a = $t(e), o = [...n, ...tn(e, a, t, "assemblee-html")];
1364
+ function ln(e, t, n) {
1365
+ let r = sn(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => N(e.label)), a = on(e), o = [...n, ...cn(e, a, t, "assemblee-html")];
1234
1366
  if (r.length > 0 && (r.length !== i.length || r.some((e, t) => e !== i[t]))) {
1235
1367
  let t = r.findIndex((e, t) => e !== i[t]);
1236
1368
  o.push({
@@ -1254,24 +1386,24 @@ function nn(e, t, n) {
1254
1386
  tableOfContents: a
1255
1387
  };
1256
1388
  }
1257
- async function rn(e, t) {
1258
- let n = new xe("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => an(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Tt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => E(i)), o = n.timeSync("extractArticleHeadings", () => vt(a)), s = new Set(o.map((e) => e.id)), c = ft(a).filter((e) => !s.has(L(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1389
+ async function un(e, t) {
1390
+ let n = new Ce("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => dn(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => Dt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => b(i)), o = n.timeSync("extractArticleHeadings", () => bt(a)), s = new Set(o.map((e) => e.id)), c = mt(a).filter((e) => !s.has(P(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1259
1391
  code: "article_toc_source_heading_mismatch",
1260
1392
  message: "Some structural article headings were not retained",
1261
1393
  details: { discardedCandidates: c }
1262
- }] : [], u = ct(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1263
- let n = xt(a, e, o[t + 1], u), r = Ct(a, e.id, n, e), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1394
+ }] : [], u = L(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1395
+ let n = Ct(a, e, o[t + 1], u), r = Tt(a, e.id, n, e), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1264
1396
  return {
1265
1397
  id: e.id,
1266
1398
  label: e.label,
1267
1399
  num: e.num,
1268
1400
  title: e.title,
1269
- text: rt(a, n),
1270
- html: n.map((e) => $e(a, e)).join("\n"),
1401
+ text: it(a, n),
1402
+ html: n.map((e) => et(a, e)).join("\n"),
1271
1403
  directiveText: i,
1272
1404
  blocks: r
1273
1405
  };
1274
- }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => wt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => nn(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => Qt("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1406
+ }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => Et(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => ln(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => an("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1275
1407
  return h.diagnostics?.length && process.env.TISSEUSE_WARN_PARSED_BILL_DIAGNOSTICS === "1" && console.warn("Assemblée bill parsing diagnostics", h.diagnostics), n.log({
1276
1408
  articleCount: h.articles.length,
1277
1409
  blockCount: h.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1279,18 +1411,18 @@ async function rn(e, t) {
1279
1411
  targetDirectiveCount: h.directives.filter((e) => e.targetIds !== void 0).length
1280
1412
  }), h;
1281
1413
  }
1282
- async function an(e, t) {
1414
+ async function dn(e, t) {
1283
1415
  return {
1284
1416
  sourceFormat: "assemblee-html",
1285
1417
  documentDate: t.date,
1286
1418
  html: e,
1287
- linkedHtml: await at(e, t, t.date)
1419
+ linkedHtml: await ct(e, t, t.date, st(e))
1288
1420
  };
1289
1421
  }
1290
1422
  function V(e) {
1291
1423
  return e.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;");
1292
1424
  }
1293
- function on(e) {
1425
+ function fn(e) {
1294
1426
  let t = e;
1295
1427
  for (let e = 0; e < 3; e++) {
1296
1428
  let e = t;
@@ -1298,27 +1430,27 @@ function on(e) {
1298
1430
  }
1299
1431
  return t;
1300
1432
  }
1301
- function sn(e) {
1433
+ function pn(e) {
1302
1434
  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);
1303
1435
  }
1304
1436
  function H(e) {
1305
1437
  return e.name.replace(/^.*:/u, "");
1306
1438
  }
1307
- function cn(e, t) {
1439
+ function mn(e, t) {
1308
1440
  return t.children.map((t) => U(e, t)).filter(Boolean).join("");
1309
1441
  }
1310
- function ln(e, t) {
1311
- return t.children.map((t) => t.type === "text" && sn(t.data) ? on(t.data) : U(e, t)).filter(Boolean).join("");
1442
+ function hn(e, t) {
1443
+ return t.children.map((t) => t.type === "text" && pn(t.data) ? fn(t.data) : U(e, t)).filter(Boolean).join("");
1312
1444
  }
1313
1445
  function U(e, t) {
1314
1446
  if (t.type === "text") {
1315
1447
  let e = t.data.replace(/\s+\./gu, ".");
1316
- return sn(e) ? on(e) : V(e);
1448
+ return pn(e) ? fn(e) : V(e);
1317
1449
  }
1318
- if (!R(t)) return "";
1319
- let n = H(t), r = cn(e, t);
1450
+ if (!I(t)) return "";
1451
+ let n = H(t), r = mn(e, t);
1320
1452
  switch (n) {
1321
- case "p": return `<p${fn(e, t, [
1453
+ case "p": return `<p${vn(e, t, [
1322
1454
  "id",
1323
1455
  "class",
1324
1456
  "align",
@@ -1332,13 +1464,13 @@ function U(e, t) {
1332
1464
  case "u":
1333
1465
  case "sup":
1334
1466
  case "sub":
1335
- case "abbr": return `<${n}${fn(e, t, [
1467
+ case "abbr": return `<${n}${vn(e, t, [
1336
1468
  "id",
1337
1469
  "class",
1338
1470
  "title",
1339
1471
  "style"
1340
1472
  ])}>${r}</${n}>`;
1341
- case "a": return `<a href="${V(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${fn(e, t, [
1473
+ case "a": return `<a href="${V(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${vn(e, t, [
1342
1474
  "id",
1343
1475
  "class",
1344
1476
  "title",
@@ -1349,8 +1481,8 @@ function U(e, t) {
1349
1481
  case "tbody":
1350
1482
  case "tr":
1351
1483
  case "th":
1352
- case "td": return pn(e, t, n, r);
1353
- case "caption": return `<caption${fn(e, t, [
1484
+ case "td": return yn(e, t, n, r);
1485
+ case "caption": return `<caption${vn(e, t, [
1354
1486
  "id",
1355
1487
  "class",
1356
1488
  "align",
@@ -1358,12 +1490,12 @@ function U(e, t) {
1358
1490
  ])}>${r}</caption>`;
1359
1491
  case "num": return `<span class="akn-num">${r}</span> `;
1360
1492
  case "heading": return `<p class="akn-heading">${r}</p>`;
1361
- case "content": return ln(e, t);
1362
- case "alinea": return On(e, t, "div", "akn-alinea");
1363
- case "article": return On(e, t, "article", "akn-article");
1493
+ case "content": return hn(e, t);
1494
+ case "alinea": return Pn(e, t, "div", "akn-alinea");
1495
+ case "article": return Pn(e, t, "article", "akn-article");
1364
1496
  case "blockList":
1365
1497
  case "list": return `<div class="akn-list">${r}</div>`;
1366
- case "item": return On(e, t, "div", "akn-item");
1498
+ case "item": return Pn(e, t, "div", "akn-item");
1367
1499
  case "listIntroduction":
1368
1500
  case "listWrapUp":
1369
1501
  case "intro":
@@ -1379,12 +1511,12 @@ function U(e, t) {
1379
1511
  case "book":
1380
1512
  case "tome":
1381
1513
  case "subchapter":
1382
- case "subsection": return On(e, t, "section", `akn-${n}`);
1514
+ case "subsection": return Pn(e, t, "section", `akn-${n}`);
1383
1515
  case "crossHeading": return `<p class="akn-cross-heading">${r}</p>`;
1384
1516
  default: return r;
1385
1517
  }
1386
1518
  }
1387
- function un(e, t) {
1519
+ function gn(e, t) {
1388
1520
  let n = e(t).text();
1389
1521
  if (!n.includes("«") || !n.includes("»") || e(t).find("table").length > 0) return;
1390
1522
  let r = e(t).find("tr").get().filter((n) => e(n).closest("table").get(0) === t);
@@ -1395,28 +1527,28 @@ function un(e, t) {
1395
1527
  let l = s ? o[0] : void 0, u = c ? o.at(-1) : void 0;
1396
1528
  if (l) {
1397
1529
  let t = Number(e(l).attr("rowspan") ?? "1");
1398
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && F(e(l).text()) !== "«") return [];
1530
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && M(e(l).text()) !== "«") return [];
1399
1531
  i = t - 1;
1400
1532
  }
1401
1533
  if (u) {
1402
1534
  let t = Number(e(u).attr("rowspan") ?? "1");
1403
- if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(F(e(u).text()))) return [];
1535
+ if (!Number.isInteger(t) || t < 1 || t > r.length - n || t > 1 && !/^»\s*;?$/u.test(M(e(u).text()))) return [];
1404
1536
  a = t - 1;
1405
1537
  }
1406
1538
  return [l, u];
1407
1539
  });
1408
1540
  if (o.some((e) => e.length !== 2)) return;
1409
- let s = o.map(([t]) => t ? F(e(t).text()) : ""), c = o.map(([, t]) => t ? F(e(t).text()) : "");
1541
+ let s = o.map(([t]) => t ? M(e(t).text()) : ""), c = o.map(([, t]) => t ? M(e(t).text()) : "");
1410
1542
  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("»")))) {
1411
1543
  e(t).addClass("akn-quoted-table");
1412
1544
  for (let [t, n] of o) t && e(t).addClass("akn-quote-column"), n && e(n).addClass("akn-quote-column");
1413
1545
  }
1414
1546
  }
1415
- function dn(e, t) {
1416
- let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(F(e(t).text())))).text();
1417
- return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => F(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1547
+ function _n(e, t) {
1548
+ let n = e(t).find("td,th").get(), r = e(n.find((t) => e(t).hasClass("akn-quote-column") && /^»\s*;?$/u.test(M(e(t).text())))).text();
1549
+ return `« ${n.filter((t) => !e(t).hasClass("akn-quote-column")).map((t) => M(e(t).text())).filter(Boolean).join(" ")} »${r.includes(";") ? " ;" : ""}`;
1418
1550
  }
1419
- function fn(e, t, n, r = {}) {
1551
+ function vn(e, t, n, r = {}) {
1420
1552
  let i = [];
1421
1553
  for (let r of n) {
1422
1554
  if (r === "style") continue;
@@ -1426,8 +1558,8 @@ function fn(e, t, n, r = {}) {
1426
1558
  let a = r.style ?? e(t).attr("style");
1427
1559
  return a && i.push(`style="${V(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1428
1560
  }
1429
- function pn(e, t, n, r) {
1430
- return `<${n}${fn(e, t, [
1561
+ function yn(e, t, n, r) {
1562
+ return `<${n}${vn(e, t, [
1431
1563
  "id",
1432
1564
  "class",
1433
1565
  "colspan",
@@ -1440,105 +1572,105 @@ function pn(e, t, n, r) {
1440
1572
  "cellspacing",
1441
1573
  "cellpadding",
1442
1574
  "style"
1443
- ], { style: mn(e, t, n) })}>${r}</${n}>`;
1575
+ ], { style: bn(e, t, n) })}>${r}</${n}>`;
1444
1576
  }
1445
- function mn(e, t, n) {
1577
+ function bn(e, t, n) {
1446
1578
  let r = e(t).attr("style") ?? "";
1447
- 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;
1579
+ return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = xn(r, "text-align", "center")), r || void 0;
1448
1580
  }
1449
- function hn(e, t, n) {
1581
+ function xn(e, t, n) {
1450
1582
  let r = e.trim();
1451
1583
  return `${r}${r && !r.endsWith(";") ? ";" : ""} ${t}: ${n};`.trim();
1452
1584
  }
1453
- function gn(e, t) {
1454
- let n = [F(e(t).children("num").first().text()), F(e(t).children("heading").first().text())].filter(Boolean);
1585
+ function Sn(e, t) {
1586
+ let n = [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean);
1455
1587
  return n.length === 0 ? "" : `<p class="akn-heading">${V(n.join(" "))}</p>`;
1456
1588
  }
1457
- function _n(e, t) {
1589
+ function Cn(e, t) {
1458
1590
  if (!t) return !1;
1459
- let n = (e) => F(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1460
- return n(F(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1591
+ let n = (e) => M(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1592
+ return n(M(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1461
1593
  }
1462
- function vn(e) {
1594
+ function wn(e) {
1463
1595
  let t = V(e);
1464
1596
  return `<p data-pastille="${t}" class="pastille"><span aria-label="pastille ${t}" data-pastille="${t}"></span></p>`;
1465
1597
  }
1466
- function yn(e, t) {
1467
- return bn([xn({
1598
+ function Tn(e, t) {
1599
+ return En([Dn({
1468
1600
  content: e,
1469
1601
  pastille: t
1470
1602
  })]);
1471
1603
  }
1472
- function bn(e) {
1604
+ function En(e) {
1473
1605
  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>`;
1474
1606
  }
1475
- function xn({ content: e, pastille: t, style: n, contextClass: r }) {
1607
+ function Dn({ content: e, pastille: t, style: n, contextClass: r }) {
1476
1608
  let i = n ? ` style="${V(n)}"` : "", a = r ? ` ${V(r)}` : "";
1477
- return `<tr${r ? ` class="${V(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${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>`;
1609
+ return `<tr${r ? ` class="${V(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${wn(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1478
1610
  }
1479
- function Sn({ content: e, style: t, contextClass: n }) {
1611
+ function On({ content: e, style: t, contextClass: n }) {
1480
1612
  let r = t ? ` style="${V(t)}"` : "", i = n ? ` ${V(n)}` : "";
1481
1613
  return `<tr${n ? ` class="${V(n)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 no-right-border"><div class="tableauComparatifCell${i}"><p class="pastille"><br></p></div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${i}"${r}>${e}</div></td></tr>`;
1482
1614
  }
1483
- function Cn(e, t) {
1615
+ function kn(e, t) {
1484
1616
  return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1485
1617
  }
1486
- function wn(e, t) {
1618
+ function An(e, t) {
1487
1619
  return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1488
1620
  }
1489
- function Tn(e, t) {
1490
- return e(t).children().get().filter((e) => R(e) ? H(e) === "content" : !1).map((t) => U(e, t)).filter(Boolean).join("\n");
1621
+ function jn(e, t) {
1622
+ return e(t).children().get().filter((e) => I(e) ? H(e) === "content" : !1).map((t) => U(e, t)).filter(Boolean).join("\n");
1491
1623
  }
1492
- function En(e, t) {
1624
+ function Mn(e, t) {
1493
1625
  let n = [];
1494
1626
  return e(t).children().each((t, r) => {
1495
- if (!R(r)) return;
1627
+ if (!I(r)) return;
1496
1628
  let i = H(r);
1497
1629
  i === "num" || i === "heading" || i === "content" || n.push(U(e, r));
1498
1630
  }), n.filter(Boolean);
1499
1631
  }
1500
- function Dn(e, t) {
1501
- let n = [], r = H(t), i = r === "alinea" ? Cn(e, t) : void 0, a = Tn(e, t), o = kn(e, t, r, i), s = Fn(e, t);
1632
+ function Nn(e, t) {
1633
+ let n = [], r = H(t), i = r === "alinea" ? kn(e, t) : void 0, a = jn(e, t), o = Fn(e, t, r, i), s = Vn(e, t);
1502
1634
  if (i) {
1503
- let r = [_n(a, F(e(t).children("num").first().text())) ? "" : gn(e, t), a].filter(Boolean).join("\n");
1504
- F(r) && n.push(xn({
1635
+ let r = [Cn(a, M(e(t).children("num").first().text())) ? "" : Sn(e, t), a].filter(Boolean).join("\n");
1636
+ M(r) && n.push(Dn({
1505
1637
  content: r,
1506
1638
  pastille: i,
1507
1639
  style: o,
1508
1640
  contextClass: s
1509
1641
  }));
1510
- } else a && n.push(Sn({
1642
+ } else a && n.push(On({
1511
1643
  content: a,
1512
1644
  style: o,
1513
1645
  contextClass: s
1514
1646
  }));
1515
1647
  for (let r of e(t).children().get()) {
1516
- if (!R(r)) continue;
1648
+ if (!I(r)) continue;
1517
1649
  let t = H(r);
1518
- t === "num" || t === "heading" || t === "content" || (t === "alinea" || wn(e, r)) && n.push(...Dn(e, r));
1650
+ t === "num" || t === "heading" || t === "content" || (t === "alinea" || An(e, r)) && n.push(...Nn(e, r));
1519
1651
  }
1520
1652
  return n;
1521
1653
  }
1522
- function On(e, t, n, r) {
1523
- let i = H(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = Cn(e, t), s = kn(e, t, i, o), c = [`<${n} ${[
1654
+ function Pn(e, t, n, r) {
1655
+ let i = H(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = kn(e, t), s = Fn(e, t, i, o), c = [`<${n} ${[
1524
1656
  a ? `id="${V(a)}"` : void 0,
1525
1657
  `class="${r}"`,
1526
1658
  o ? `data-pastille="${V(o)}"` : void 0,
1527
1659
  s ? `style="${V(s)}"` : void 0
1528
1660
  ].filter((e) => e !== void 0).join(" ")}>`];
1529
1661
  if (i === "part" || i === "title") {
1530
- let r = Mn(e, t, i), a = Pn(e, t), o = r ? [Sn({
1662
+ let r = Rn(e, t, i), a = Bn(e, t), o = r ? [On({
1531
1663
  content: r,
1532
1664
  contextClass: a
1533
1665
  })] : [], s = () => {
1534
- o.length !== 0 && (c.push(jn(o)), o = []);
1666
+ o.length !== 0 && (c.push(Ln(o)), o = []);
1535
1667
  };
1536
1668
  return e(t).children().each((t, n) => {
1537
- if (!R(n)) return;
1669
+ if (!I(n)) return;
1538
1670
  let r = H(n);
1539
1671
  if (!(r === "num" || r === "heading" || r === "content")) {
1540
1672
  if (r === "alinea") {
1541
- o.push(...Dn(e, n));
1673
+ o.push(...Nn(e, n));
1542
1674
  return;
1543
1675
  }
1544
1676
  s(), c.push(U(e, n));
@@ -1546,49 +1678,49 @@ function On(e, t, n, r) {
1546
1678
  }), s(), c.push(`</${n}>`), c.join("\n");
1547
1679
  }
1548
1680
  if (i === "article") {
1549
- let r = F(e(t).children("num").first().text()), i = F(e(t).children("heading").first().text()), a = T(r) ?? {
1681
+ let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = C(r) ?? {
1550
1682
  label: r,
1551
1683
  num: r
1552
1684
  }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${V(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${V(a.label)}${i ? ` : ${V(i)}` : ""}</p>`;
1553
- if (wn(e, t)) {
1554
- let r = [Sn({
1685
+ if (An(e, t)) {
1686
+ let r = [On({
1555
1687
  content: o,
1556
- contextClass: Ln(a.label)
1557
- }), ...Dn(e, t)];
1558
- c.push(bn(r));
1559
- for (let n of En(e, t)) n.includes("akn-pastille-table") || c.push(n);
1688
+ contextClass: Un(a.label)
1689
+ }), ...Nn(e, t)];
1690
+ c.push(En(r));
1691
+ for (let n of Mn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1560
1692
  return c.push(`</${n}>`), c.join("\n");
1561
1693
  }
1562
1694
  c.push(o);
1563
1695
  }
1564
1696
  let l = [];
1565
1697
  for (let n of ["content", "children"]) e(t).children().each((t, r) => {
1566
- if (!R(r)) return;
1698
+ if (!I(r)) return;
1567
1699
  let i = H(r);
1568
1700
  i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || l.push(U(e, r));
1569
1701
  });
1570
1702
  let u = l.join("\n");
1571
1703
  if (i !== "article") {
1572
- let n = _n(u, F(e(t).children("num").first().text())) ? "" : gn(e, t);
1704
+ let n = Cn(u, M(e(t).children("num").first().text())) ? "" : Sn(e, t);
1573
1705
  n && c.push(n);
1574
1706
  }
1575
- return c.push(o ? yn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1707
+ return c.push(o ? Tn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1576
1708
  }
1577
- function kn(e, t, n, r) {
1578
- let i = An(e(t).attr("style") ?? "", "font-family");
1579
- 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;
1709
+ function Fn(e, t, n, r) {
1710
+ let i = In(e(t).attr("style") ?? "", "font-family");
1711
+ return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = xn(i, "text-align", "center")), i || void 0;
1580
1712
  }
1581
- function An(e, t) {
1713
+ function In(e, t) {
1582
1714
  return e.split(";").map((e) => e.trim()).filter(Boolean).filter((e) => !e.toLowerCase().startsWith(`${t.toLowerCase()}:`)).join(";");
1583
1715
  }
1584
- function jn(e) {
1716
+ function Ln(e) {
1585
1717
  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>`;
1586
1718
  }
1587
- function Mn(e, t, n) {
1588
- let r = F(e(t).children("num").first().text()), i = F(e(t).children("heading").first().text()), a = Nn(n), o = [];
1719
+ function Rn(e, t, n) {
1720
+ let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = zn(n), o = [];
1589
1721
  return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${V(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${V(i)}</span></p>`), o.join("\n");
1590
1722
  }
1591
- function Nn(e) {
1723
+ function zn(e) {
1592
1724
  switch (e) {
1593
1725
  case "part": return {
1594
1726
  num: "TCNumPartie",
@@ -1612,22 +1744,22 @@ function Nn(e) {
1612
1744
  };
1613
1745
  }
1614
1746
  }
1615
- function Pn(e, t) {
1616
- let n = In(F(e(t).children("num").first().text()));
1747
+ function Bn(e, t) {
1748
+ let n = Hn(M(e(t).children("num").first().text()));
1617
1749
  if (n) return n;
1618
1750
  for (let n of e(t).parents().get()) {
1619
- if (!R(n)) continue;
1751
+ if (!I(n)) continue;
1620
1752
  let t = H(n);
1621
1753
  if (t !== "title" && t !== "part") continue;
1622
- let r = In(F(e(n).children("num").first().text()));
1754
+ let r = Hn(M(e(n).children("num").first().text()));
1623
1755
  if (r) return r;
1624
1756
  }
1625
1757
  }
1626
- function Fn(e, t) {
1627
- return Pn(e, t);
1758
+ function Vn(e, t) {
1759
+ return Bn(e, t);
1628
1760
  }
1629
- function In(e) {
1630
- let [t, ...n] = F(e).split(/\s+/u);
1761
+ function Hn(e) {
1762
+ let [t, ...n] = M(e).split(/\s+/u);
1631
1763
  if (!t || n.length === 0) return;
1632
1764
  let r = t.toLocaleLowerCase("fr-FR");
1633
1765
  if ([
@@ -1637,10 +1769,10 @@ function In(e) {
1637
1769
  "section"
1638
1770
  ].includes(r)) return `${r}-${n.join("_")}`;
1639
1771
  }
1640
- function Ln(e) {
1641
- return `article-${F(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1772
+ function Un(e) {
1773
+ return `article-${M(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1642
1774
  }
1643
- function Rn(e) {
1775
+ function Wn(e) {
1644
1776
  switch (e) {
1645
1777
  case "part": return "partie";
1646
1778
  case "book": return "livre";
@@ -1652,11 +1784,11 @@ function Rn(e) {
1652
1784
  default: return;
1653
1785
  }
1654
1786
  }
1655
- function zn(e, t) {
1656
- return [F(e(t).children("num").first().text()), F(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1787
+ function Gn(e, t) {
1788
+ return [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1657
1789
  }
1658
- function Bn(e, t) {
1659
- let n = F(e(t).children("num").first().text()), r = F(e(t).children("heading").first().text()), i = T(n) ?? {
1790
+ function Kn(e, t) {
1791
+ let n = M(e(t).children("num").first().text()), r = M(e(t).children("heading").first().text()), i = C(n) ?? {
1660
1792
  label: n,
1661
1793
  num: n
1662
1794
  };
@@ -1666,24 +1798,24 @@ function Bn(e, t) {
1666
1798
  type: "article"
1667
1799
  };
1668
1800
  }
1669
- function Vn(e, t) {
1801
+ function qn(e, t) {
1670
1802
  e.items.push(...t.items);
1671
1803
  }
1672
- function Hn(e, t) {
1804
+ function Jn(e, t) {
1673
1805
  let n = { items: [] };
1674
1806
  return e(t).children().each((t, r) => {
1675
- if (!R(r)) return;
1807
+ if (!I(r)) return;
1676
1808
  let i = H(r);
1677
1809
  if (i === "article") {
1678
- n.items.push(Bn(e, r));
1810
+ n.items.push(Kn(e, r));
1679
1811
  return;
1680
1812
  }
1681
- let a = Rn(i);
1813
+ let a = Wn(i);
1682
1814
  if (!a) {
1683
- Vn(n, Hn(e, r));
1815
+ qn(n, Jn(e, r));
1684
1816
  return;
1685
1817
  }
1686
- let o = zn(e, r), s = Hn(e, r);
1818
+ let o = Gn(e, r), s = Jn(e, r);
1687
1819
  !o && s.items.length === 0 || n.items.push({
1688
1820
  ...s,
1689
1821
  id: e(r).attr("eId") ?? e(r).attr("GUID"),
@@ -1692,27 +1824,27 @@ function Hn(e, t) {
1692
1824
  });
1693
1825
  }), n;
1694
1826
  }
1695
- function Un(e) {
1827
+ function Yn(e) {
1696
1828
  let t = e("body").first().get(0);
1697
- return t === void 0 ? { items: [] } : Hn(e, t);
1829
+ return t === void 0 ? { items: [] } : Jn(e, t);
1698
1830
  }
1699
- function Wn(e) {
1831
+ function Xn(e) {
1700
1832
  return e("FRBRExpression FRBRdate[name=\"#depot\"]").attr("date") ?? e("FRBRWork FRBRdate[name=\"#presentation\"]").attr("date");
1701
1833
  }
1702
- function Gn(e) {
1703
- e("table").each((t, n) => un(e, n));
1834
+ function Zn(e) {
1835
+ e("table").each((t, n) => gn(e, n));
1704
1836
  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>"];
1705
- return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(cn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1706
- R(n) && r.push(H(n) === "article" ? On(e, n, "article", "akn-article") : U(e, n));
1837
+ return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(mn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1838
+ I(n) && r.push(H(n) === "article" ? Pn(e, n, "article", "akn-article") : U(e, n));
1707
1839
  }), r.push("</section></div>"), r.join("\n");
1708
1840
  }
1709
- function Kn(e) {
1710
- let t = E(e, { xml: {
1841
+ function Qn(e) {
1842
+ let t = b(e, { xml: {
1711
1843
  decodeEntities: !1,
1712
1844
  lowerCaseTags: !1,
1713
1845
  lowerCaseAttributeNames: !1,
1714
1846
  xmlMode: !0
1715
- } }), n = Wn(t), r = Gn(t);
1847
+ } }), n = Xn(t), r = Zn(t);
1716
1848
  return {
1717
1849
  sourceFormat: "akoma-ntoso",
1718
1850
  documentDate: n,
@@ -1720,42 +1852,42 @@ function Kn(e) {
1720
1852
  linkedHtml: r
1721
1853
  };
1722
1854
  }
1723
- function qn(e) {
1724
- return Jn(E(e));
1855
+ function $n(e) {
1856
+ return er(b(e));
1725
1857
  }
1726
- function Jn(e) {
1858
+ function er(e) {
1727
1859
  let t = [];
1728
1860
  return e("article.akn-article").each((n, r) => {
1729
- let i = e(r).find("p.TCNumArticle").first().get(0), a = F(i ? e(i).text() : ""), o = T(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = Ct(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1861
+ let i = e(r).find("p.TCNumArticle").first().get(0), a = M(i ? e(i).text() : ""), o = C(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = Tt(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1730
1862
  t.push({
1731
1863
  id: s,
1732
1864
  label: o.label,
1733
1865
  num: o.num,
1734
1866
  title: o.title,
1735
- text: rt(e, c),
1736
- html: $e(e, r),
1867
+ text: it(e, c),
1868
+ html: et(e, r),
1737
1869
  directiveText: u,
1738
1870
  blocks: l
1739
1871
  });
1740
1872
  }), t;
1741
1873
  }
1742
- function Yn(e) {
1743
- let t = E(e);
1874
+ function tr(e) {
1875
+ let t = b(e);
1744
1876
  return {
1745
- articles: Jn(t),
1877
+ articles: er(t),
1746
1878
  htmlWithLinks: t.html()
1747
1879
  };
1748
1880
  }
1749
- async function Xn(e, t) {
1750
- let n = new xe("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => E(e, { xml: {
1881
+ async function nr(e, t) {
1882
+ let n = new Ce("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => b(e, { xml: {
1751
1883
  decodeEntities: !1,
1752
1884
  lowerCaseTags: !1,
1753
1885
  lowerCaseAttributeNames: !1,
1754
1886
  xmlMode: !0
1755
- } })), i = t.date ?? Wn(r), a = n.timeSync("renderAknHtml", () => Gn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => at(a, {
1887
+ } })), i = t.date ?? Xn(r), a = n.timeSync("renderAknHtml", () => Zn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => ct(a, {
1756
1888
  ...t,
1757
1889
  date: i
1758
- }, i)), s = n.timeSync("extractRenderedAknArticles", () => qn(a)), c = n.timeSync("injectHiddenArticleSummary", () => wt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Yn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Un(r)), p = n.timeSync("buildParsedDocument", () => Qt("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, tn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1890
+ }, i)), s = n.timeSync("extractRenderedAknArticles", () => $n(a)), c = n.timeSync("injectHiddenArticleSummary", () => Et(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => tr(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Yn(r)), p = n.timeSync("buildParsedDocument", () => an("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, cn(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1759
1891
  return n.log({
1760
1892
  articleCount: p.articles.length,
1761
1893
  blockCount: p.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1763,25 +1895,25 @@ async function Xn(e, t) {
1763
1895
  targetDirectiveCount: p.directives.filter((e) => e.targetIds !== void 0).length
1764
1896
  }), p;
1765
1897
  }
1766
- async function Zn(e, t) {
1767
- let n = Kn(e), r = t.date ?? n.documentDate;
1898
+ async function rr(e, t) {
1899
+ let n = Qn(e), r = t.date ?? n.documentDate;
1768
1900
  return {
1769
1901
  sourceFormat: "akoma-ntoso",
1770
1902
  documentDate: r,
1771
1903
  html: n.html,
1772
- linkedHtml: await at(n.html, t, r)
1904
+ linkedHtml: await ct(n.html, t, r)
1773
1905
  };
1774
1906
  }
1775
1907
  //#endregion
1776
1908
  //#region src/lib/server/assemblee_document_search.ts
1777
- var Qn = /\bexpos[ée]\s+des\s+motifs\b/giu, $n = /\barticle\s+(?:premier|1er|\d+)/iu;
1778
- function er(e) {
1909
+ var ir = /\bexpos[ée]\s+des\s+motifs\b/giu, ar = /\barticle\s+(?:premier|1er|\d+)/iu;
1910
+ function or(e) {
1779
1911
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
1780
1912
  }
1781
- function tr(e) {
1782
- let t = er(E(e).text()), n = [...t.matchAll(Qn)], r = /* @__PURE__ */ new Set(), i = [];
1913
+ function sr(e) {
1914
+ let t = or(b(e).text()), n = [...t.matchAll(ir)], r = /* @__PURE__ */ new Set(), i = [];
1783
1915
  for (let [e, a] of n.entries()) {
1784
- let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = $n.exec(s), l = er(s.slice(0, c?.index ?? s.length));
1916
+ let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = ar.exec(s), l = or(s.slice(0, c?.index ?? s.length));
1785
1917
  if (l.length < 20 || r.has(l)) continue;
1786
1918
  r.add(l);
1787
1919
  let u = `expose-des-motifs-${e + 1}`;
@@ -1797,8 +1929,8 @@ function tr(e) {
1797
1929
  }
1798
1930
  return i;
1799
1931
  }
1800
- async function nr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1801
- let i = await rn(t, {
1932
+ async function cr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1933
+ let i = await un(t, {
1802
1934
  date: e,
1803
1935
  includeDirectiveAnalysis: !1,
1804
1936
  linkBaseUrl: n,
@@ -1807,7 +1939,7 @@ async function nr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1807
1939
  });
1808
1940
  return {
1809
1941
  items: [...i.articles.map((e) => {
1810
- let t = er(e.directiveText || e.text);
1942
+ let t = or(e.directiveText || e.text);
1811
1943
  if (t) return {
1812
1944
  anchor: e.id,
1813
1945
  articleNumber: e.num ?? null,
@@ -1817,17 +1949,17 @@ async function nr({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1817
1949
  label: e.label,
1818
1950
  title: e.title ?? null
1819
1951
  };
1820
- }).filter((e) => e !== void 0), ...tr(t)],
1952
+ }).filter((e) => e !== void 0), ...sr(t)],
1821
1953
  tableOfContents: i.tableOfContents
1822
1954
  };
1823
1955
  }
1824
- function rr(e, t) {
1825
- return Ee("sha256").update(JSON.stringify({
1956
+ function lr(e, t) {
1957
+ return ke("sha256").update(JSON.stringify({
1826
1958
  item: e,
1827
1959
  metadata: t
1828
1960
  })).digest("hex");
1829
1961
  }
1830
- function ir(e) {
1962
+ function ur(e) {
1831
1963
  if (typeof e != "object" || !e) return;
1832
1964
  let t = e.cycleDeVie?.chrono;
1833
1965
  if (t !== void 0) for (let e of [
@@ -1842,11 +1974,11 @@ function ir(e) {
1842
1974
  }
1843
1975
  //#endregion
1844
1976
  //#region src/lib/server/senat_amendment_search.ts
1845
- function ar(e) {
1846
- return e?.trim() ? E(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1977
+ function dr(e) {
1978
+ return e?.trim() ? b(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1847
1979
  }
1848
- function or({ dispositifHtml: e, objetHtml: t }) {
1849
- let n = ar(e), r = ar(t);
1980
+ function fr({ dispositifHtml: e, objetHtml: t }) {
1981
+ let n = dr(e), r = dr(t);
1850
1982
  return [...n ? [{
1851
1983
  content: n,
1852
1984
  itemKind: "dispositif",
@@ -1857,8 +1989,8 @@ function or({ dispositifHtml: e, objetHtml: t }) {
1857
1989
  label: "Objet"
1858
1990
  }] : []];
1859
1991
  }
1860
- function sr(e, t) {
1861
- return Ee("sha256").update(JSON.stringify({
1992
+ function pr(e, t) {
1993
+ return ke("sha256").update(JSON.stringify({
1862
1994
  item: e,
1863
1995
  metadata: t
1864
1996
  })).digest("hex");
@@ -1872,76 +2004,76 @@ function W(e, t) {
1872
2004
  type: "amendment_action_directive"
1873
2005
  };
1874
2006
  }
1875
- function cr(e, t) {
2007
+ function mr(e, t) {
1876
2008
  return {
1877
2009
  type: e === "start" ? "head_of_target" : "tail_after_target",
1878
- unit: t ? ue(t) : "article"
2010
+ unit: t ? me(t) : "article"
1879
2011
  };
1880
2012
  }
1881
- function lr(e) {
2013
+ function hr(e) {
1882
2014
  return e === "start" ? "insert_before" : "insert_after";
1883
2015
  }
1884
- var ur = k(O("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = A(t, M([O("les?\\s+", { flags: "i" }), p], { value: (e) => e[1] }), p, n), dr = A(M([O("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
2016
+ var gr = D(T("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), G = O(l, w([T("les?\\s+", { flags: "i" }), i], { value: (e) => e[1] }), i, o), _r = O(w([T("la\\s+fin\\s+de\\s+", { flags: "i" }), G], { value: (e) => {
1885
2017
  let t = e[1];
1886
2018
  return {
1887
2019
  targetReference: t,
1888
2020
  targetScope: {
1889
2021
  type: "tail_after_target",
1890
- unit: ue(t)
2022
+ unit: me(t)
1891
2023
  }
1892
2024
  };
1893
- } }), M([i], { value: (e) => ({ targetScope: e[0] }) })), K = k(M([
1894
- k(O("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1895
- k(O("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2025
+ } }), w([t], { value: (e) => ({ targetScope: e[0] }) })), K = D(w([
2026
+ D(T("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
2027
+ D(T("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1896
2028
  G,
1897
- k(O("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
2029
+ D(T("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1898
2030
  ], { value: (e, t) => ({
1899
2031
  reference: e[2],
1900
2032
  text: t.text()
1901
- }) }), { default: null }), fr = k(O(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${ge})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
2033
+ }) }), { default: null }), vr = D(T(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${De})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1902
2034
  function q(e) {
1903
2035
  return e?.text ?? "";
1904
2036
  }
1905
- function pr(e) {
1906
- return { citation: ee(e.position()) };
2037
+ function yr(e) {
2038
+ return { citation: ae(e.position()) };
1907
2039
  }
1908
- var J = A(M([v], { value: (e) => ({ citation: e[0] }) }), O("\\S[\\s\\S]*", { value: (e, t) => pr(t) })), mr = O("\\S[\\s\\S]*", { value: (e, t) => pr(t) }), Y = O("[^:«“\"]*(?::\\s*)?", { flags: "i" }), hr = O("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
2040
+ var J = O(w([f], { value: (e) => ({ citation: e[0] }) }), T("\\S[\\s\\S]*", { value: (e, t) => yr(t) })), br = T("\\S[\\s\\S]*", { value: (e, t) => yr(t) }), Y = T("[^:«“\"]*(?::\\s*)?", { flags: "i" }), xr = T("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1909
2041
  flags: "i",
1910
- value: (e, t) => pr(t)
1911
- }), gr = O("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
2042
+ value: (e, t) => yr(t)
2043
+ }), Sr = T("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1912
2044
  flags: "i",
1913
- value: (e, t) => pr(t)
1914
- }), _r = O("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
2045
+ value: (e, t) => yr(t)
2046
+ }), Cr = T("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1915
2047
  flags: "i",
1916
- value: (e, t) => pr(t)
1917
- }), vr = A(M([v], { value: (e) => ({ citation: e[0] }) }), hr), yr = A(M([v], { value: (e) => ({ citation: e[0] }) }), _r), br = M([O(`${o}s?\\s*:?\\s*`, { flags: "i" }), vr], { value: (e) => e[1] }), xr = M([O(`${c}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), yr], { value: (e) => e[1] }), Sr = A(M([v], { value: (e) => ({ citation: e[0] }) }), gr), Cr = M([
1918
- fr,
1919
- O(`${o}s?\\s*:?\\s*`, { flags: "i" }),
1920
- Sr
1921
- ], { value: (e) => e[2] }), wr = M([
1922
- fr,
1923
- O(`${o}s?\\s*:?\\s*`, { flags: "i" }),
1924
- A(M([v], { value: (e) => ({ citation: e[0] }) }), mr)
2048
+ value: (e, t) => yr(t)
2049
+ }), wr = O(w([f], { value: (e) => ({ citation: e[0] }) }), xr), Tr = O(w([f], { value: (e) => ({ citation: e[0] }) }), Cr), Er = w([T(`${n}s?\\s*:?\\s*`, { flags: "i" }), wr], { value: (e) => e[1] }), Dr = w([T(`${r}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), Tr], { value: (e) => e[1] }), Or = O(w([f], { value: (e) => ({ citation: e[0] }) }), Sr), kr = w([
2050
+ vr,
2051
+ T(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2052
+ Or
2053
+ ], { value: (e) => e[2] }), Ar = w([
2054
+ vr,
2055
+ T(`${n}s?\\s*:?\\s*`, { flags: "i" }),
2056
+ O(w([f], { value: (e) => ({ citation: e[0] }) }), br)
1925
2057
  ], { value: (e) => e[2] });
1926
2058
  function X(e) {
1927
2059
  return e?.reference;
1928
2060
  }
1929
- var Tr = M([ur, O("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
2061
+ var jr = w([gr, T("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => W(t, {
1930
2062
  contextText: e[0],
1931
2063
  kind: "delete_article"
1932
- }) }), Er = M([
2064
+ }) }), Mr = w([
1933
2065
  K,
1934
- O("supprimer", { flags: "i" }),
1935
- k(M([j, G], { value: (e) => e[1] }), { default: null }),
1936
- k(M([j, wr], { value: (e) => e[1] }), { default: null })
2066
+ T("supprimer", { flags: "i" }),
2067
+ D(w([k, G], { value: (e) => e[1] }), { default: null }),
2068
+ D(w([k, Ar], { value: (e) => e[1] }), { default: null })
1937
2069
  ], { value: (e, t) => W(t, {
1938
2070
  contextText: q(e[0]),
1939
2071
  kind: "delete_portion",
1940
2072
  targetCitation: e[3]?.citation ?? void 0,
1941
2073
  targetReference: e[2] ?? X(e[0])
1942
- }) }), Dr = M([
2074
+ }) }), Nr = w([
1943
2075
  K,
1944
- A(O("r[eé]diger\\s+ainsi", { flags: "i" }), O("r[eé]tablir", { flags: "i" })),
2076
+ O(T("r[eé]diger\\s+ainsi", { flags: "i" }), T("r[eé]tablir", { flags: "i" })),
1945
2077
  Y,
1946
2078
  J
1947
2079
  ], { value: (e, t) => W(t, {
@@ -1949,76 +2081,76 @@ var Tr = M([ur, O("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1949
2081
  kind: "rewrite_portion",
1950
2082
  replacementCitation: e[3].citation,
1951
2083
  targetReference: X(e[0])
1952
- }) }), Or = M([
2084
+ }) }), Pr = w([
1953
2085
  K,
1954
- A(O("substituer", { flags: "i" }), O("remplacer", { flags: "i" })),
1955
- j,
1956
- fr,
1957
- br,
1958
- O("\\s*,?\\s*"),
1959
- k(O("par\\s+", { flags: "i" }), { default: "" }),
1960
- xr
2086
+ O(T("substituer", { flags: "i" }), T("remplacer", { flags: "i" })),
2087
+ k,
2088
+ vr,
2089
+ Er,
2090
+ T("\\s*,?\\s*"),
2091
+ D(T("par\\s+", { flags: "i" }), { default: "" }),
2092
+ Dr
1961
2093
  ], { value: (e, t) => W(t, {
1962
2094
  contextText: q(e[0]),
1963
2095
  kind: "replace",
1964
2096
  replacementCitation: e[7].citation,
1965
2097
  targetCitation: e[4].citation,
1966
2098
  targetReference: X(e[0])
1967
- }) }), kr = M([
2099
+ }) }), Fr = w([
1968
2100
  K,
1969
- O("substituer", { flags: "i" }),
1970
- j,
1971
- k(O("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
2101
+ T("substituer", { flags: "i" }),
2102
+ k,
2103
+ D(T("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1972
2104
  G,
1973
- O("[\\s\\S]*?(?=[«“\"]|$)"),
2105
+ T("[\\s\\S]*?(?=[«“\"]|$)"),
1974
2106
  J
1975
2107
  ], { value: (e, t) => W(t, {
1976
2108
  contextText: q(e[0]),
1977
2109
  kind: "rewrite_portion",
1978
2110
  replacementCitation: e[6].citation,
1979
2111
  targetReference: e[4] ?? X(e[0])
1980
- }) }), Ar = M([
1981
- d,
1982
- j,
1983
- O("l['’ ]article", { flags: "i" }),
1984
- O("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1985
- O("ins[eé]rer", { flags: "i" }),
2112
+ }) }), Ir = w([
2113
+ c,
2114
+ k,
2115
+ T("l['’ ]article", { flags: "i" }),
2116
+ T("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2117
+ T("ins[eé]rer", { flags: "i" }),
1986
2118
  Y,
1987
2119
  J
1988
2120
  ], { value: (e, t) => W(t, {
1989
2121
  contextText: "",
1990
2122
  insertCitation: e[6].citation,
1991
2123
  kind: e[0] === "before" ? "insert_article_before" : "insert_article_after"
1992
- }) }), jr = M([
1993
- d,
1994
- j,
2124
+ }) }), Lr = w([
2125
+ c,
2126
+ k,
1995
2127
  G,
1996
- O("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1997
- A(O("ins[eé]rer", { flags: "i" }), O("ajouter", { flags: "i" })),
2128
+ T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2129
+ O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
1998
2130
  Y,
1999
2131
  J
2000
2132
  ], { value: (e, t) => W(t, {
2001
2133
  contextText: "",
2002
2134
  insertCitation: e[6].citation,
2003
- kind: w(e[0]),
2135
+ kind: S(e[0]),
2004
2136
  targetReference: e[2]
2005
- }) }), Mr = M([
2006
- d,
2007
- j,
2008
- O("l['’ ]alin[eé]a", { flags: "i" }),
2009
- O("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2010
- O("ins[eé]rer", { flags: "i" }),
2137
+ }) }), Rr = w([
2138
+ c,
2139
+ k,
2140
+ T("l['’ ]alin[eé]a", { flags: "i" }),
2141
+ T("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
2142
+ T("ins[eé]rer", { flags: "i" }),
2011
2143
  Y,
2012
2144
  J
2013
2145
  ], { value: (e, t) => W(t, {
2014
2146
  contextText: "",
2015
2147
  insertCitation: e[6].citation,
2016
- kind: w(e[0])
2017
- }) }), Nr = M([
2148
+ kind: S(e[0])
2149
+ }) }), zr = w([
2018
2150
  K,
2019
- ne,
2020
- O("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2021
- A(O("ins[eé]rer", { flags: "i" }), O("ajouter", { flags: "i" })),
2151
+ te,
2152
+ T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2153
+ O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
2022
2154
  Y,
2023
2155
  J
2024
2156
  ], { value: (e, t) => {
@@ -2026,62 +2158,62 @@ var Tr = M([ur, O("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2026
2158
  return W(t, {
2027
2159
  contextText: q(n),
2028
2160
  insertCitation: e[5].citation,
2029
- kind: lr(i),
2161
+ kind: hr(i),
2030
2162
  targetReference: r,
2031
- targetScope: cr(i, r)
2163
+ targetScope: mr(i, r)
2032
2164
  });
2033
- } }), Pr = M([
2165
+ } }), Br = w([
2034
2166
  K,
2035
- d,
2036
- j,
2037
- Cr,
2038
- O("[\\s\\S]*?(?=ins[eé]rer)"),
2039
- O("ins[eé]rer", { flags: "i" }),
2040
- j,
2041
- xr
2167
+ c,
2168
+ k,
2169
+ kr,
2170
+ T("[\\s\\S]*?(?=ins[eé]rer)"),
2171
+ T("ins[eé]rer", { flags: "i" }),
2172
+ k,
2173
+ Dr
2042
2174
  ], { value: (e, t) => W(t, {
2043
2175
  contextText: q(e[0]),
2044
2176
  insertCitation: e[7].citation,
2045
- kind: w(e[1]),
2177
+ kind: S(e[1]),
2046
2178
  targetCitation: e[3].citation,
2047
2179
  targetReference: X(e[0])
2048
- }) }), Fr = M([
2180
+ }) }), Vr = w([
2049
2181
  K,
2050
- d,
2051
- j,
2182
+ c,
2183
+ k,
2052
2184
  G,
2053
- O("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2054
- A(O("ins[eé]rer", { flags: "i" }), O("ajouter", { flags: "i" })),
2185
+ T("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
2186
+ O(T("ins[eé]rer", { flags: "i" }), T("ajouter", { flags: "i" })),
2055
2187
  Y,
2056
2188
  J
2057
2189
  ], { value: (e, t) => W(t, {
2058
2190
  contextText: q(e[0]),
2059
2191
  insertCitation: e[7].citation,
2060
- kind: w(e[1]),
2192
+ kind: S(e[1]),
2061
2193
  targetReference: X(e[0]) ?? e[3]
2062
- }) }), Ir = A(Nr, Ar, jr, Mr, kr, M([
2194
+ }) }), Hr = O(zr, Ir, Lr, Rr, Fr, w([
2063
2195
  K,
2064
- d,
2065
- j,
2066
- Cr,
2067
- O("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2068
- A(M([
2069
- O("supprimer", {
2196
+ c,
2197
+ k,
2198
+ kr,
2199
+ T("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
2200
+ O(w([
2201
+ T("supprimer", {
2070
2202
  flags: "i",
2071
2203
  value: "delete_portion"
2072
2204
  }),
2073
- j,
2074
- dr
2205
+ k,
2206
+ _r
2075
2207
  ], { value: (e) => ({
2076
2208
  kind: e[0],
2077
2209
  ...e[2]
2078
- }) }), M([
2079
- O("r[eé]diger\\s+ainsi", {
2210
+ }) }), w([
2211
+ T("r[eé]diger\\s+ainsi", {
2080
2212
  flags: "i",
2081
2213
  value: "rewrite_portion"
2082
2214
  }),
2083
- j,
2084
- dr,
2215
+ k,
2216
+ _r,
2085
2217
  Y,
2086
2218
  J
2087
2219
  ], { value: (e) => ({
@@ -2099,24 +2231,24 @@ var Tr = M([ur, O("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2099
2231
  targetReference: X(e[0]) ?? n.targetReference,
2100
2232
  targetScope: n.targetScope
2101
2233
  });
2102
- } }), Pr, Fr, M([
2103
- ur,
2104
- O("ins[eé]rer", { flags: "i" }),
2105
- O(`[\\s\\S]*?(?=${f})`, { flags: "i" }),
2106
- d,
2234
+ } }), Br, Vr, w([
2235
+ gr,
2236
+ T("ins[eé]rer", { flags: "i" }),
2237
+ T(`[\\s\\S]*?(?=${u})`, { flags: "i" }),
2238
+ c,
2107
2239
  Y,
2108
- v,
2240
+ f,
2109
2241
  Y,
2110
- v
2242
+ f
2111
2243
  ], { value: (e, t) => W(t, {
2112
2244
  contextText: e[0],
2113
2245
  insertCitation: e[8],
2114
- kind: w(e[3]),
2246
+ kind: S(e[3]),
2115
2247
  targetCitation: e[6]
2116
- }) }), Or, Dr, M([
2248
+ }) }), Pr, Nr, w([
2117
2249
  K,
2118
- O("compl[eé]ter", { flags: "i" }),
2119
- k(M([j, G], { value: (e) => e[1] }), { default: null }),
2250
+ T("compl[eé]ter", { flags: "i" }),
2251
+ D(w([k, G], { value: (e) => e[1] }), { default: null }),
2120
2252
  Y,
2121
2253
  J
2122
2254
  ], { value: (e, t) => W(t, {
@@ -2124,16 +2256,16 @@ var Tr = M([ur, O("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
2124
2256
  insertCitation: e[4].citation,
2125
2257
  kind: "insert_after",
2126
2258
  targetReference: e[2] ?? X(e[0])
2127
- }) }), Tr, Er);
2259
+ }) }), jr, Mr);
2128
2260
  //#endregion
2129
2261
  //#region src/lib/server/parsed_amendments.ts
2130
- function Lr(e) {
2262
+ function Ur(e) {
2131
2263
  return e.replace(/\s+/gu, " ").trim();
2132
2264
  }
2133
- function Rr(e) {
2134
- return e.split(/\n/gu).map(Lr).filter(Boolean).join("\n");
2265
+ function Wr(e) {
2266
+ return e.split(/\n/gu).map(Ur).filter(Boolean).join("\n");
2135
2267
  }
2136
- function zr(e, t) {
2268
+ function Gr(e, t) {
2137
2269
  let { start: n, stop: r } = t;
2138
2270
  for (; n < r && /\s/u.test(e[n]);) n++;
2139
2271
  for (; r > n && /\s/u.test(e[r - 1]);) r--;
@@ -2142,16 +2274,16 @@ function zr(e, t) {
2142
2274
  stop: r
2143
2275
  } : null;
2144
2276
  }
2145
- function Br(e, t) {
2146
- return pe(he(e), t);
2277
+ function Kr(e, t) {
2278
+ return _e(ve(e), t);
2147
2279
  }
2148
- function Vr(e) {
2280
+ function qr(e) {
2149
2281
  return e === "before_article" || e === "on_article" || e === "after_article" ? e : "unknown";
2150
2282
  }
2151
- function Hr(e) {
2283
+ function Jr(e) {
2152
2284
  return {
2153
2285
  articleLabel: e.targetArticleLabel ?? null,
2154
- targetPosition: Vr(e.targetPosition),
2286
+ targetPosition: qr(e.targetPosition),
2155
2287
  alinea: e.targetAlinea ?? null,
2156
2288
  alineaLabel: e.targetAlineaLabel ?? null,
2157
2289
  subdivisionSourceId: e.targetSubdivisionSourceId ?? null,
@@ -2166,36 +2298,36 @@ function Z(e) {
2166
2298
  sourceText: e.text
2167
2299
  };
2168
2300
  }
2169
- function Ur(e) {
2301
+ function Yr(e) {
2170
2302
  return {
2171
2303
  ...e.originalTransformation === void 0 ? {} : { sourceOriginalTransformation: e.originalTransformation },
2172
2304
  sourcePosition: e.position,
2173
2305
  sourceText: e.text
2174
2306
  };
2175
2307
  }
2176
- function Wr(e) {
2308
+ function Xr(e) {
2177
2309
  return {
2178
2310
  ...e?.originalTransformation === void 0 ? {} : { dispositifOriginalTransformation: e.originalTransformation },
2179
2311
  ...e === null ? {} : { dispositifPosition: e.position },
2180
2312
  dispositifText: e?.text ?? null
2181
2313
  };
2182
2314
  }
2183
- function Gr(e, t, n, r = Rr(e.slice(n.start, n.stop))) {
2315
+ function Zr(e, t, n, r = Wr(e.slice(n.start, n.stop))) {
2184
2316
  return {
2185
- originalTransformation: Br(t, n),
2317
+ originalTransformation: Kr(t, n),
2186
2318
  position: n,
2187
2319
  text: r
2188
2320
  };
2189
2321
  }
2190
- function Kr(e) {
2322
+ function Qr(e) {
2191
2323
  let t = e.dispositifHtml ?? e.dispositifText;
2192
2324
  if (!t) return null;
2193
- let n = e.dispositifHtml ? ve()(t) : fe(t), r = n.output, i = zr(r, {
2325
+ let n = e.dispositifHtml ? xe()(t) : ge(t), r = n.output, i = Gr(r, {
2194
2326
  start: 0,
2195
2327
  stop: r.length
2196
2328
  });
2197
2329
  return {
2198
- dispositif: i === null ? null : Gr(r, n, i),
2330
+ dispositif: i === null ? null : Zr(r, n, i),
2199
2331
  simplifiedText: r,
2200
2332
  transformation: n
2201
2333
  };
@@ -2212,10 +2344,10 @@ function Q(e) {
2212
2344
  return t === void 0 ? [] : Array.from({ length: e.count }, (e, n) => t + n);
2213
2345
  }
2214
2346
  if (e.type === "exclusion") return Q(e.left);
2215
- for (let t of r(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2347
+ for (let t of a(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2216
2348
  return [];
2217
2349
  }
2218
- function qr(e, t) {
2350
+ function $r(e, t) {
2219
2351
  let n = Q(t);
2220
2352
  return {
2221
2353
  ...e,
@@ -2223,11 +2355,11 @@ function qr(e, t) {
2223
2355
  ...n.length > 0 ? { alineas: n } : {}
2224
2356
  };
2225
2357
  }
2226
- function Jr(e) {
2358
+ function ei(e) {
2227
2359
  return e.replace(/^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*/iu, "").replace(/^\s*(?:\d+°|[a-z]\))\s*/iu, "").trim();
2228
2360
  }
2229
- function Yr(e, t) {
2230
- let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(Jr(t.text));
2361
+ function ti(e, t) {
2362
+ let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(ei(t.text));
2231
2363
  if (!n) return null;
2232
2364
  let r = n[1] === void 0 ? 1 : Number.parseInt(n[1], 10);
2233
2365
  return !Number.isFinite(r) || r < 1 ? null : {
@@ -2236,25 +2368,25 @@ function Yr(e, t) {
2236
2368
  alineas: [r]
2237
2369
  };
2238
2370
  }
2239
- function Xr(e, t) {
2371
+ function ni(e, t) {
2240
2372
  if (e) return e.unit === "article" && t.alinea !== null ? {
2241
2373
  ...e,
2242
2374
  unit: "alinéa"
2243
2375
  } : e;
2244
2376
  }
2245
- function Zr(e) {
2246
- return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(Jr(e.text));
2377
+ function ri(e) {
2378
+ return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(ei(e.text));
2247
2379
  }
2248
- function Qr(e, t, n, r) {
2249
- return Gr(e, t, {
2380
+ function ii(e, t, n, r) {
2381
+ return Zr(e, t, {
2250
2382
  start: n.position.start,
2251
2383
  stop: r.position.stop
2252
2384
  });
2253
2385
  }
2254
- function $r(e) {
2386
+ function ai(e) {
2255
2387
  return /^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*(?!alin[eé]a\b)/iu.test(e.text);
2256
2388
  }
2257
- function ei(e, t) {
2389
+ function oi(e, t) {
2258
2390
  let n = { ...t.position };
2259
2391
  function r(t) {
2260
2392
  let r = t.exec(e.slice(n.start, n.stop));
@@ -2263,29 +2395,29 @@ function ei(e, t) {
2263
2395
  stop: n.stop
2264
2396
  });
2265
2397
  }
2266
- return r(/^(?:(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*|[a-z]\)\s*(?:[.\-–—]\s*)*|\d+°\s*)/iu), r(/^[.\-–—]\s*/u), r(/^en\s+cons[ée]quence\s*,\s*/iu), zr(e, n);
2398
+ return r(/^(?:(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*|[a-z]\)\s*(?:[.\-–—]\s*)*|\d+°\s*)/iu), r(/^[.\-–—]\s*/u), r(/^en\s+cons[ée]quence\s*,\s*/iu), Gr(e, n);
2267
2399
  }
2268
- function ti(e) {
2269
- return g(e);
2400
+ function si(e) {
2401
+ return p(e);
2270
2402
  }
2271
- function ni(e, t) {
2272
- return Ir(new D(e.slice(0, t.stop), t.start)) ?? null;
2403
+ function ci(e, t) {
2404
+ return Hr(new E(e.slice(0, t.stop), t.start)) ?? null;
2273
2405
  }
2274
- function $(t, n, r) {
2275
- if (r) return Gr(t, n, r.position, Rr(e(t, r)));
2406
+ function $(e, t, n) {
2407
+ if (n) return Zr(e, t, n.position, Wr(ue(e, n)));
2276
2408
  }
2277
- function ri(e, t) {
2409
+ function li(e, t) {
2278
2410
  if (!e) return;
2279
2411
  let n = structuredClone(e);
2280
- for (let e of _(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Br(t, e.position));
2412
+ for (let e of g(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Kr(t, e.position));
2281
2413
  return n;
2282
2414
  }
2283
- function ii(e, t, n, r) {
2284
- let i = ei(e, n);
2415
+ function ui(e, t, n, r) {
2416
+ let i = oi(e, n);
2285
2417
  if (!i) return null;
2286
- let a = ni(e, i);
2418
+ let a = ci(e, i);
2287
2419
  if (!a) return null;
2288
- let o = Gr(e, t, i), s = ri(a.targetReference, t), c = qr(r, s), l = ti(o.text);
2420
+ let o = Zr(e, t, i), s = li(a.targetReference, t), c = $r(r, s), l = si(o.text);
2289
2421
  if (a.kind === "delete_article") return {
2290
2422
  kind: "delete_article",
2291
2423
  ...Z(o),
@@ -2303,7 +2435,7 @@ function ii(e, t, n, r) {
2303
2435
  },
2304
2436
  targetOccurrence: l,
2305
2437
  targetReference: s,
2306
- targetScope: Xr(a.targetScope, c)
2438
+ targetScope: ni(a.targetScope, c)
2307
2439
  };
2308
2440
  }
2309
2441
  if (a.kind === "rewrite_portion") {
@@ -2320,7 +2452,7 @@ function ii(e, t, n, r) {
2320
2452
  },
2321
2453
  targetOccurrence: l,
2322
2454
  targetReference: s,
2323
- targetScope: Xr(a.targetScope, c),
2455
+ targetScope: ni(a.targetScope, c),
2324
2456
  replacementCitation: n,
2325
2457
  replacementText: n.text
2326
2458
  };
@@ -2375,19 +2507,19 @@ function ii(e, t, n, r) {
2375
2507
  targetReference: s,
2376
2508
  insertCitation: n,
2377
2509
  insertText: n.text,
2378
- targetScope: Xr(a.targetScope, c)
2510
+ targetScope: ni(a.targetScope, c)
2379
2511
  };
2380
2512
  }
2381
2513
  return null;
2382
2514
  }
2383
- function ai(e, t) {
2515
+ function di(e, t) {
2384
2516
  let n = [], r = 0, i = 0;
2385
2517
  function a(r) {
2386
- let a = zr(e, {
2518
+ let a = Gr(e, {
2387
2519
  start: i,
2388
2520
  stop: r
2389
2521
  });
2390
- a !== null && n.push(Gr(e, t, a));
2522
+ a !== null && n.push(Zr(e, t, a));
2391
2523
  }
2392
2524
  function o(t) {
2393
2525
  let n = Math.max(e.lastIndexOf("\n", t - 1), e.lastIndexOf("\r", t - 1));
@@ -2405,7 +2537,7 @@ function ai(e, t) {
2405
2537
  continue;
2406
2538
  }
2407
2539
  if (r > 0) continue;
2408
- let s = e.slice(t + 1), c = /[\n\r]/u.test(n), l = /[.;]/u.test(n), u = e.slice(i, l ? t + 1 : t), d = /^\s*(?:(?:[IVXLCDM]+)\s*[.\-–—]+\s*|\d+°\s*|[a-z]\)\s*|(?:Supprimer|Après|Avant|Compléter|Rédiger|Substituer|Remplacer)\b)/iu.test(s), f = c && /^\s*(?:R[eé]diger|Ins[eé]rer|Ajouter|Supprimer)\b/iu.test(s) && Zr({
2540
+ let s = e.slice(t + 1), c = /[\n\r]/u.test(n), l = /[.;]/u.test(n), u = e.slice(i, l ? t + 1 : t), d = /^\s*(?:(?:[IVXLCDM]+)\s*[.\-–—]+\s*|\d+°\s*|[a-z]\)\s*|(?:Supprimer|Après|Avant|Compléter|Rédiger|Substituer|Remplacer)\b)/iu.test(s), f = c && /^\s*(?:R[eé]diger|Ins[eé]rer|Ajouter|Supprimer)\b/iu.test(s) && ri({
2409
2541
  originalTransformation: void 0,
2410
2542
  position: {
2411
2543
  start: i,
@@ -2417,8 +2549,8 @@ function ai(e, t) {
2417
2549
  }
2418
2550
  return a(e.length), n;
2419
2551
  }
2420
- function oi(e) {
2421
- let t = Kr(e), n = t?.dispositif ?? null, r = Wr(n), i = [], a = [], o = Hr(e);
2552
+ function fi(e) {
2553
+ let t = Qr(e), n = t?.dispositif ?? null, r = Xr(n), i = [], a = [], o = Jr(e);
2422
2554
  if (e.sourceFormat === "senat-ameli" && e.sourceKind === "S") return i.push({
2423
2555
  code: "unsupported_sub_amendment",
2424
2556
  message: "Les sous-amendements ne sont pas encore projetés."
@@ -2436,9 +2568,9 @@ function oi(e) {
2436
2568
  });
2437
2569
  else {
2438
2570
  let { simplifiedText: e, transformation: r } = t, s = o, c = null;
2439
- for (let t of ai(e, r)) {
2440
- $r(t) && (s = o, c = null);
2441
- let n = c ? Qr(e, r, c, t) : t, i = ii(e, r, n, s);
2571
+ for (let t of di(e, r)) {
2572
+ ai(t) && (s = o, c = null);
2573
+ let n = c ? ii(e, r, c, t) : t, i = ui(e, r, n, s);
2442
2574
  if (i) {
2443
2575
  a.push(i), c = null, (i.target.alinea !== null || i.target.alineas) && (s = i.target);
2444
2576
  continue;
@@ -2447,12 +2579,12 @@ function oi(e) {
2447
2579
  c = n;
2448
2580
  continue;
2449
2581
  }
2450
- let l = Yr(o, t);
2582
+ let l = ti(o, t);
2451
2583
  if (l !== null) {
2452
2584
  s = l;
2453
2585
  continue;
2454
2586
  }
2455
- Zr(t) && (c = t);
2587
+ ri(t) && (c = t);
2456
2588
  }
2457
2589
  a.length === 0 && (o.targetPosition === "after_article" || o.targetPosition === "before_article") && a.push({
2458
2590
  kind: o.targetPosition === "before_article" ? "insert_article_before" : "insert_article_after",
@@ -2463,7 +2595,7 @@ function oi(e) {
2463
2595
  }), a.length === 0 && i.push({
2464
2596
  code: "unrecognized_dispositif",
2465
2597
  message: "Le dispositif est présent mais aucune directive d'amendement n'a été reconnue.",
2466
- ...Ur(n)
2598
+ ...Yr(n)
2467
2599
  });
2468
2600
  }
2469
2601
  return {
@@ -2477,25 +2609,25 @@ function oi(e) {
2477
2609
  }
2478
2610
  //#endregion
2479
2611
  //#region src/lib/server/senat_document_search.ts
2480
- function si(e) {
2612
+ function pi(e) {
2481
2613
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
2482
2614
  }
2483
- function ci(e) {
2484
- let t = T(e);
2615
+ function mi(e) {
2616
+ let t = C(e);
2485
2617
  if (!t) return {
2486
2618
  articleNumber: null,
2487
2619
  label: e,
2488
2620
  title: null
2489
2621
  };
2490
- let n = si(t.num ?? "") || null, r = si(t.title ?? "") || null;
2622
+ let n = pi(t.num ?? "") || null, r = pi(t.title ?? "") || null;
2491
2623
  return {
2492
2624
  articleNumber: n,
2493
2625
  label: t.label,
2494
2626
  title: r
2495
2627
  };
2496
2628
  }
2497
- function li(e) {
2498
- let t = E(e), n = [], r = si(t("section.akn-preamble").text());
2629
+ function hi(e) {
2630
+ let t = b(e), n = [], r = pi(t("section.akn-preamble").text());
2499
2631
  return r && n.push({
2500
2632
  anchor: "senat-expose-des-motifs",
2501
2633
  articleNumber: null,
@@ -2505,9 +2637,9 @@ function li(e) {
2505
2637
  label: "Exposé des motifs",
2506
2638
  title: null
2507
2639
  }), t("article.akn-article").each((e, r) => {
2508
- let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = si(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = ci(o || s), l = i.clone();
2640
+ let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = pi(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = mi(o || s), l = i.clone();
2509
2641
  l.children("p.TCNumArticle").remove();
2510
- let u = si(l.text());
2642
+ let u = pi(l.text());
2511
2643
  u && n.push({
2512
2644
  anchor: i.attr("id") || null,
2513
2645
  articleNumber: c.articleNumber,
@@ -2519,40 +2651,40 @@ function li(e) {
2519
2651
  });
2520
2652
  }), n;
2521
2653
  }
2522
- function ui(e, t) {
2523
- return Ee("sha256").update(JSON.stringify({
2654
+ function gi(e, t) {
2655
+ return ke("sha256").update(JSON.stringify({
2524
2656
  item: e,
2525
2657
  metadata: t
2526
2658
  })).digest("hex");
2527
2659
  }
2528
2660
  //#endregion
2529
2661
  //#region src/lib/server/senat_document_sources.ts
2530
- var di = new Set(["senat.fr", "www.senat.fr"]), fi = "https://www.senat.fr";
2531
- function pi(e) {
2662
+ var _i = new Set(["senat.fr", "www.senat.fr"]), vi = "https://www.senat.fr";
2663
+ function yi(e) {
2532
2664
  return e?.trim() || void 0;
2533
2665
  }
2534
- function mi(e) {
2666
+ function bi(e) {
2535
2667
  try {
2536
- let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, fi);
2537
- return di.has(n.hostname.toLowerCase()) ? n : void 0;
2668
+ let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, vi);
2669
+ return _i.has(n.hostname.toLowerCase()) ? n : void 0;
2538
2670
  } catch {
2539
2671
  return;
2540
2672
  }
2541
2673
  }
2542
- function hi(e) {
2543
- let t = pi(e);
2674
+ function xi(e) {
2675
+ let t = yi(e);
2544
2676
  if (t === void 0) return {
2545
2677
  publicUrl: null,
2546
2678
  status: "no_url"
2547
2679
  };
2548
- let n = mi(t);
2680
+ let n = bi(t);
2549
2681
  if (n === void 0) return {
2550
2682
  publicUrl: t,
2551
2683
  status: "unsupported_source"
2552
2684
  };
2553
2685
  let r = n.pathname;
2554
2686
  if (/^\/akomantoso\/[^/]+\.akn\.xml$/iu.test(r)) return {
2555
- akomaNtosoUrl: `${fi}${r}`,
2687
+ akomaNtosoUrl: `${vi}${r}`,
2556
2688
  publicUrl: n.toString(),
2557
2689
  status: "available"
2558
2690
  };
@@ -2561,17 +2693,17 @@ function hi(e) {
2561
2693
  publicUrl: n.toString(),
2562
2694
  status: "unsupported_source"
2563
2695
  } : {
2564
- akomaNtosoUrl: `${fi}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2696
+ akomaNtosoUrl: `${vi}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2565
2697
  publicUrl: n.toString(),
2566
2698
  status: "available"
2567
2699
  };
2568
2700
  }
2569
- function gi(e) {
2701
+ function Si(e) {
2570
2702
  return /^\s*(?:<\?xml\b[^>]*>\s*)?<akomaNtoso[\s/>]/iu.test(e);
2571
2703
  }
2572
2704
  //#endregion
2573
2705
  //#region src/lib/alineas/alineas_numbers.ts
2574
- var _i = {
2706
+ var Ci = {
2575
2707
  "0150a855548f15a2af52ea057be53f5d": 1,
2576
2708
  "039826cf379b94afefe90b25c6045ca0": 1,
2577
2709
  "03a7e564b84662f4d957c51018e26244": 1,
@@ -21545,7 +21677,7 @@ var _i = {
21545
21677
  d16d29c923bd60c7b095b66c6058fe60: 1664,
21546
21678
  "1c14c2adf5cfda3220b2057160e10e91": 1665,
21547
21679
  e44c55ca1ac46ff46420686a466c9fc6: 1665
21548
- }, vi = "\np:has(.alinea) {\n margin: 0.6em 0;\n}\n.alinea {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n margin-right: 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n vertical-align: middle;\n}\n", yi = "\nh1 {\n font-size: 1.8em;\n margin: 1em 0 0.5em 0;\n}\nh2 {\n font-size: 1.5em;\n margin: 0.9em 0 0.4em 0;\n}\nh3 {\n font-size: 1.3em;\n margin: 0.8em 0 0.4em 0;\n}\nh4 {\n font-size: 1.15em;\n margin: 0.7em 0 0.3em 0;\n}\nh5 {\n font-size: 1.05em;\n margin: 0.6em 0 0.3em 0;\n}\nh6 {\n font-size: 1em;\n margin: 0.5em 0 0.3em 0;\n}\n", bi = "\n.expose-motifs-titre {\n font-size: 1.1em;\n font-weight: bold;\n color: #0070b9;\n margin: 1em 0 0.5em 0;\n}\n.expose-motifs {\n border-left: 3px solid #0070b9;\n padding-left: 1em;\n margin: 0.5em 0 1em 0;\n color: #333;\n}\n.expose-motifs p {\n margin: 0.5em 0;\n}\n", xi = "\nol {\n list-style: none;\n padding-left: 0;\n margin: 0.5em 0;\n counter-reset: list-counter;\n}\nol > li {\n counter-increment: list-counter;\n margin: 0.3em 0;\n padding-left: 2.3em;\n position: relative;\n}\nol > li::before {\n content: counter(list-counter);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n position: absolute;\n left: 0;\n top: 0.1em;\n}\n", Si = "\n.cover-title {\n font-size: 1.8em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n.cover-subtitle {\n font-size: 1.4em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 0.8em 0;\n}\n.cover-info {\n text-align: center;\n margin: 0.3em 0;\n color: #333;\n}\n.cover-year {\n font-size: 2em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n", Ci = {
21680
+ }, wi = "\np:has(.alinea) {\n margin: 0.6em 0;\n}\n.alinea {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n margin-right: 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n vertical-align: middle;\n}\n", Ti = "\nh1 {\n font-size: 1.8em;\n margin: 1em 0 0.5em 0;\n}\nh2 {\n font-size: 1.5em;\n margin: 0.9em 0 0.4em 0;\n}\nh3 {\n font-size: 1.3em;\n margin: 0.8em 0 0.4em 0;\n}\nh4 {\n font-size: 1.15em;\n margin: 0.7em 0 0.3em 0;\n}\nh5 {\n font-size: 1.05em;\n margin: 0.6em 0 0.3em 0;\n}\nh6 {\n font-size: 1em;\n margin: 0.5em 0 0.3em 0;\n}\n", Ei = "\n.expose-motifs-titre {\n font-size: 1.1em;\n font-weight: bold;\n color: #0070b9;\n margin: 1em 0 0.5em 0;\n}\n.expose-motifs {\n border-left: 3px solid #0070b9;\n padding-left: 1em;\n margin: 0.5em 0 1em 0;\n color: #333;\n}\n.expose-motifs p {\n margin: 0.5em 0;\n}\n", Di = "\nol {\n list-style: none;\n padding-left: 0;\n margin: 0.5em 0;\n counter-reset: list-counter;\n}\nol > li {\n counter-increment: list-counter;\n margin: 0.3em 0;\n padding-left: 2.3em;\n position: relative;\n}\nol > li::before {\n content: counter(list-counter);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n position: absolute;\n left: 0;\n top: 0.1em;\n}\n", Oi = "\n.cover-title {\n font-size: 1.8em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n.cover-subtitle {\n font-size: 1.4em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 0.8em 0;\n}\n.cover-info {\n text-align: center;\n margin: 0.3em 0;\n color: #333;\n}\n.cover-year {\n font-size: 2em;\n font-weight: bold;\n color: #0070b9;\n text-align: center;\n margin: 1em 0;\n}\n", ki = {
21549
21681
  assnatetatagr: { bold: !0 },
21550
21682
  assnatetatagrgr: { bold: !0 },
21551
21683
  assnatetatatr: { bold: !0 },
@@ -21646,29 +21778,29 @@ var _i = {
21646
21778
  assnatxl67: { align: "center" },
21647
21779
  assnatenteteequilibre: { align: "center" }
21648
21780
  };
21649
- function wi(e) {
21650
- let t = Object.keys(Ci).sort((e, t) => t.length - e.length);
21651
- for (let n of t) if (e.includes(n)) return Ci[n];
21781
+ function Ai(e) {
21782
+ let t = Object.keys(ki).sort((e, t) => t.length - e.length);
21783
+ for (let n of t) if (e.includes(n)) return ki[n];
21652
21784
  return null;
21653
21785
  }
21654
- function Ti(e) {
21655
- return Te.createHash("md5").update(e).digest("hex");
21786
+ function ji(e) {
21787
+ return Oe.createHash("md5").update(e).digest("hex");
21656
21788
  }
21657
- function Ei(e) {
21789
+ function Mi(e) {
21658
21790
  return e ? /font-weight\s*:\s*(bold|[6-9]00|1000)/i.test(e) || /font-family\s*:\s*[^;]*\bBold\b/i.test(e) : !1;
21659
21791
  }
21660
- function Di(e) {
21792
+ function Ni(e) {
21661
21793
  return e ? /font-style\s*:\s*italic/i.test(e) || /font-family\s*:\s*[^;]*\bItalic\b/i.test(e) : !1;
21662
21794
  }
21663
- function Oi(e) {
21795
+ function Pi(e) {
21664
21796
  if (!e || !/vertical-align\s*:\s*super/i.test(e)) return !1;
21665
21797
  let t = e.match(/font-size\s*:\s*([\d.]+)pt/i);
21666
21798
  return !(t && parseFloat(t[1]) < 8);
21667
21799
  }
21668
- function ki(e) {
21800
+ function Fi(e) {
21669
21801
  return e ? /vertical-align\s*:\s*sub/i.test(e) : !1;
21670
21802
  }
21671
- function Ai(e) {
21803
+ function Ii(e) {
21672
21804
  if (!e) return;
21673
21805
  let t = [
21674
21806
  "width",
@@ -21703,15 +21835,15 @@ function Ai(e) {
21703
21835
  }
21704
21836
  return n.length > 0 ? n.join("; ") : void 0;
21705
21837
  }
21706
- function ji(e, t) {
21838
+ function Li(e, t) {
21707
21839
  return !!(e && /text-align\s*:\s*center/i.test(e) || t && /center/i.test(t));
21708
21840
  }
21709
- function Mi(e) {
21841
+ function Ri(e) {
21710
21842
  if (!e) return null;
21711
21843
  let t = e.match(/text-align\s*:\s*(left|center|right|justify)/i);
21712
21844
  return t ? t[1].toLowerCase() : null;
21713
21845
  }
21714
- function Ni(e) {
21846
+ function zi(e) {
21715
21847
  if (!e) return null;
21716
21848
  for (let [t, n] of [
21717
21849
  [/assnat1Tome|assnatAN1PARTIE/i, 1],
@@ -21723,8 +21855,8 @@ function Ni(e) {
21723
21855
  ]) if (t.test(e)) return n;
21724
21856
  return null;
21725
21857
  }
21726
- function Pi(e, t = {}) {
21727
- let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = E(e, { xml: { decodeEntities: !1 } });
21858
+ function Bi(e, t = {}) {
21859
+ let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = b(e, { xml: { decodeEntities: !1 } });
21728
21860
  a("style, script, meta, link").remove(), a(".assnatHeader, .assnatFooter, .assnatHeaderLeft, .assnatHeaderandFooter").remove(), a(".assnatFARSautApres, .assnatFARSautAvant, .assnatFARSautPageNiv0, .assnatFARSautPageNiv1, .assnatFARSautPageNiv1PG").remove(), a(".assnatFARTT08Bleu").each((e, t) => {
21729
21861
  let n = a(t).closest("table");
21730
21862
  n.length > 0 && n.remove();
@@ -21749,7 +21881,7 @@ function Pi(e, t = {}) {
21749
21881
  if (i.length !== 0 && !(n.parents("del").length > 0 || n.find("del img").length > 0) && !(i.parent("del").length > 0)) {
21750
21882
  let e = i.attr();
21751
21883
  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")) {
21752
- let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? Ti(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21884
+ let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? ji(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21753
21885
  n.replaceWith(`<span class="alinea"${i}></span>`);
21754
21886
  return;
21755
21887
  }
@@ -21768,7 +21900,7 @@ function Pi(e, t = {}) {
21768
21900
  (!r || r === "\xA0") && n.remove();
21769
21901
  }), a("span[style*=\"display:block\"][style*=\"position:absolute\"]:not(.alinea)").remove(), a("del").remove();
21770
21902
  function o(e) {
21771
- let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Ei(n) || r === "b" || r === "strong", o = Di(n) || r === "i" || r === "em", s = Oi(n) || r === "sup", c = ki(n) || r === "sub", l = t.attr("class") || "";
21903
+ let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = Mi(n) || r === "b" || r === "strong", o = Ni(n) || r === "i" || r === "em", s = Pi(n) || r === "sup", c = Fi(n) || r === "sub", l = t.attr("class") || "";
21772
21904
  return /bold/i.test(l) && (i = !0), /strongemphasis/i.test(l) ? i = !0 : /italic|emphasis/i.test(l) && (o = !0), {
21773
21905
  bold: i,
21774
21906
  italic: o,
@@ -21802,7 +21934,7 @@ function Pi(e, t = {}) {
21802
21934
  c = e;
21803
21935
  }
21804
21936
  for (a("p").each((e, t) => {
21805
- let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = Ni(i);
21937
+ let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = zi(i);
21806
21938
  if (i.includes("assnatFARCouvTitreD")) {
21807
21939
  let e = r.html() || "";
21808
21940
  r.replaceWith(`<p class="cover-subtitle">${e}</p>`);
@@ -21835,11 +21967,11 @@ function Pi(e, t = {}) {
21835
21967
  let c = r.text().trim().startsWith("«");
21836
21968
  if (s && !c) {
21837
21969
  let e = a(`<h${s}>${r.html() || ""}</h${s}>`);
21838
- n && ji(o, i) && e.attr("align", "center"), r.replaceWith(e);
21970
+ n && Li(o, i) && e.attr("align", "center"), r.replaceWith(e);
21839
21971
  } else {
21840
- let e = wi(i), t;
21972
+ let e = Ai(i), t;
21841
21973
  if (n) {
21842
- let n = Mi(o);
21974
+ let n = Ri(o);
21843
21975
  n && n !== "justify" && n !== "left" ? t = n : e?.align && (t = e.align);
21844
21976
  }
21845
21977
  if (r.removeAttr("style").removeAttr("class"), t && r.attr("align", t), e?.bold) {
@@ -21849,7 +21981,7 @@ function Pi(e, t = {}) {
21849
21981
  }
21850
21982
  }), a("h1, h2, h3, h4, h5, h6").each((e, t) => {
21851
21983
  let r = a(t), i = r.attr("style"), o = r.attr("class");
21852
- n && ji(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21984
+ n && Li(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21853
21985
  }), a("a").each((e, t) => {
21854
21986
  let n = a(t), r = n.attr("href"), i = n.attr("id"), o = { ...t.attribs || {} };
21855
21987
  for (let e of Object.keys(o)) e !== "href" && e !== "id" && n.removeAttr(e);
@@ -21888,7 +22020,7 @@ function Pi(e, t = {}) {
21888
22020
  }), a("br").each((e, t) => {
21889
22021
  a(t).removeAttr("style").removeAttr("class");
21890
22022
  }), a("table, tr, td, th, thead, tbody, tfoot").each((e, t) => {
21891
- let n = a(t), r = Ai(n.attr("style"));
22023
+ let n = a(t), r = Ii(n.attr("style"));
21892
22024
  n.removeAttr("style").removeAttr("class"), r && n.attr("style", r);
21893
22025
  }), a("td, th").each((e, t) => {
21894
22026
  let n = a(t), r = n.children();
@@ -21906,17 +22038,17 @@ function Pi(e, t = {}) {
21906
22038
  !isNaN(e) && e > 1 && n.attr("style", `counter-reset: list-counter ${e - 1}`), n.attr("start", r);
21907
22039
  }
21908
22040
  }), a("li").each((e, t) => {
21909
- let n = a(t), r = Mi(n.attr("style"));
22041
+ let n = a(t), r = Ri(n.attr("style"));
21910
22042
  n.removeAttr("style").removeAttr("class"), r === "center" && n.attr("style", "text-align: center");
21911
22043
  let i = n.html() || "", o = i.replace(/^(\s|&#xa0;|&#160;|\u00a0)+/, "");
21912
22044
  o !== i && n.html(o);
21913
- }), Fi(a), Ii(a, i);
22045
+ }), Vi(a), Hi(a, i);
21914
22046
  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 = "";
21915
- m && (h += Si), f && (h += yi), p && (h += bi), u && (h += vi), d && (h += xi);
22047
+ m && (h += Oi), f && (h += Ti), p && (h += Ei), u && (h += wi), d && (h += Di);
21916
22048
  let g = h ? `<style>${h}</style>\n${l}` : l;
21917
- return g = g.replace(/>\s+</g, "> <").replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(/\n{3,}/g, "\n\n").split("\n").map((e) => e.trim()).filter((e) => e.length > 0).join("\n"), g = g.replace(/&nbsp;/g, "\xA0"), r && (g = g.replace(/<p[^>]*>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/p>/gi, "").replace(/<p[^>]*>\s*<(strong|em|b|i)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>\s*<\/p>/gi, "")), g = g.replace(/<span[^>]*>\s*<\/span>/gi, ""), g = g.replace(/ class=""/g, ""), g = Li(g), g = g.replace(/<(strong|em|b|i|sup|sub)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>/gi, "").replace(/<(strong|em|b|i)>(&nbsp;|&#xa0;|&#160;|\u00a0)+<\/\1>/gi, " ").replace(/<br\s*\/?>/gi, "<br/>").replace(/ +/g, " ").trim(), g;
22049
+ return g = g.replace(/>\s+</g, "> <").replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(/\n{3,}/g, "\n\n").split("\n").map((e) => e.trim()).filter((e) => e.length > 0).join("\n"), g = g.replace(/&nbsp;/g, "\xA0"), r && (g = g.replace(/<p[^>]*>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/p>/gi, "").replace(/<p[^>]*>\s*<(strong|em|b|i)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>\s*<\/p>/gi, "")), g = g.replace(/<span[^>]*>\s*<\/span>/gi, ""), g = g.replace(/ class=""/g, ""), g = Ui(g), g = g.replace(/<(strong|em|b|i|sup|sub)>\s*(&nbsp;|&#xa0;|&#160;|\u00a0|\s)*\s*<\/\1>/gi, "").replace(/<(strong|em|b|i)>(&nbsp;|&#xa0;|&#160;|\u00a0)+<\/\1>/gi, " ").replace(/<br\s*\/?>/gi, "<br/>").replace(/ +/g, " ").trim(), g;
21918
22050
  }
21919
- function Fi(e) {
22051
+ function Vi(e) {
21920
22052
  e("span[id]").each((t, n) => {
21921
22053
  let r = e(n), i = r.attr("id"), a = n.attribs || {}, o = Object.keys(a);
21922
22054
  if (o.length !== 1 || o[0] !== "id") return;
@@ -21939,13 +22071,13 @@ function Fi(e) {
21939
22071
  l.trim() === u.trim() && (s.attr("id", i), r.replaceWith(r.html() || ""));
21940
22072
  });
21941
22073
  }
21942
- function Ii(e, t = !1) {
22074
+ function Hi(e, t = !1) {
21943
22075
  let n = e("body");
21944
22076
  if (n.length === 0) return;
21945
22077
  let r = n.find("span.alinea[data-image-hash]"), i = -1;
21946
22078
  r.each((n, r) => {
21947
22079
  let a = e(r), o = a.attr("data-image-hash"), s;
21948
- if (o && _i[o] !== void 0 && (s = _i[o]), s === void 0) {
22080
+ if (o && Ci[o] !== void 0 && (s = Ci[o]), s === void 0) {
21949
22081
  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".`);
21950
22082
  a.remove();
21951
22083
  return;
@@ -21957,11 +22089,11 @@ function Ii(e, t = !1) {
21957
22089
  i = s, a.attr("data-alinea", String(s)), a.text(String(s)), a.removeAttr("data-image-hash");
21958
22090
  });
21959
22091
  }
21960
- function Li(e) {
22092
+ function Ui(e) {
21961
22093
  let t = e;
21962
22094
  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;
21963
22095
  }
21964
- function Ri(e, t = {}) {
22096
+ function Wi(e, t = {}) {
21965
22097
  return `<!DOCTYPE html>
21966
22098
  <html lang="fr">
21967
22099
  <head>
@@ -21969,33 +22101,33 @@ function Ri(e, t = {}) {
21969
22101
  <title>Document simplifié</title>
21970
22102
  </head>
21971
22103
  <body>
21972
- ${Pi(e, t)}
22104
+ ${Bi(e, t)}
21973
22105
  </body>
21974
22106
  </html>`;
21975
22107
  }
21976
22108
  //#endregion
21977
22109
  //#region src/lib/server/text_parsers/transformers.ts
21978
- function zi(e, t) {
22110
+ function Gi(e, t) {
21979
22111
  let n = "transformation_", r = {};
21980
- for (let e of N.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
22112
+ for (let e of A.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21981
22113
  let i = e.slice(15, -5), a = i.split(".").map((e) => parseInt(e) - 1), o = r;
21982
22114
  for (let e of a.slice(1)) {
21983
22115
  let t = o.transformations ??= [];
21984
22116
  for (; e >= t.length;) t.push({});
21985
22117
  o = t[e];
21986
22118
  }
21987
- o.output = N.readFileSync(De.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21988
- let { sourceMap: s, title: c } = N.readJsonSync(De.join(t, e), { encoding: "utf-8" });
22119
+ o.output = A.readFileSync(Ae.join(t, `${n}${i}.html`), { encoding: "utf-8" });
22120
+ let { sourceMap: s, title: c } = A.readJsonSync(Ae.join(t, e), { encoding: "utf-8" });
21989
22121
  o.sourceMap = s ?? [], o.title = c;
21990
22122
  }
21991
- return Bi(r, e), r;
22123
+ return Ki(r, e), r;
21992
22124
  }
21993
- function Bi(e, t) {
21994
- if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) Bi(n, t), t = n.output;
22125
+ function Ki(e, t) {
22126
+ if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) Ki(n, t), t = n.output;
21995
22127
  return t;
21996
22128
  }
21997
- function Vi(e, t, n = "1") {
21998
- if (N.ensureDirSync(t), e.transformations === void 0) N.writeJsonSync(De.join(t, `transformation_${n}.json`), {
22129
+ function qi(e, t, n = "1") {
22130
+ if (A.ensureDirSync(t), e.transformations === void 0) A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), {
21999
22131
  sourceMap: e.sourceMap,
22000
22132
  title: e.title
22001
22133
  }, {
@@ -22003,24 +22135,24 @@ function Vi(e, t, n = "1") {
22003
22135
  spaces: 2
22004
22136
  });
22005
22137
  else {
22006
- N.writeJsonSync(De.join(t, `transformation_${n}.json`), { title: e.title }, {
22138
+ A.writeJsonSync(Ae.join(t, `transformation_${n}.json`), { title: e.title }, {
22007
22139
  encoding: "utf-8",
22008
22140
  spaces: 2
22009
22141
  });
22010
- for (let [r, i] of e.transformations.entries()) Vi(i, t, `${n}.${r + 1}`);
22142
+ for (let [r, i] of e.transformations.entries()) qi(i, t, `${n}.${r + 1}`);
22011
22143
  }
22012
- e.output !== void 0 && N.writeFileSync(De.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
22144
+ e.output !== void 0 && A.writeFileSync(Ae.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
22013
22145
  }
22014
22146
  //#endregion
22015
22147
  //#region src/lib/server/linkers/html.ts
22016
- async function Hi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlFilePath: i, htmlTransformationsInputDir: a, htmlTransformationsOutputDir: o, htmlWithLinksFilePath: s, htmlWithLinksOrReferencesFilePath: c, htmlWithLinksTransformationsOutputDir: l, htmlWithReferencesFilePath: u, linkBaseUrl: d, linkType: f, logIgnoredReferencesTypes: p, logPartialReferences: m, logReferences: h, referredLegifranceTextsInfosFilePath: g }) {
22017
- let _ = t ?? (e === void 0 ? void 0 : new ae(e));
22148
+ async function Ji({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlFilePath: i, htmlTransformationsInputDir: a, htmlTransformationsOutputDir: o, htmlWithLinksFilePath: s, htmlWithLinksOrReferencesFilePath: c, htmlWithLinksTransformationsOutputDir: l, htmlWithReferencesFilePath: u, linkBaseUrl: d, linkType: f, logIgnoredReferencesTypes: p, logPartialReferences: m, logReferences: h, referredLegifranceTextsInfosFilePath: g }) {
22149
+ let _ = t ?? (e === void 0 ? void 0 : new se(e));
22018
22150
  if (_ === void 0) throw Error("A Canutes database or legal resolver is required");
22019
- let v = await N.readFile(i, { encoding: "utf-8" }), y;
22020
- a === void 0 ? (y = ve({ removeAWithHref: !0 })(v), o !== void 0 && Vi(y, o)) : y = zi(v, a);
22151
+ let v = await A.readFile(i, { encoding: "utf-8" }), y;
22152
+ a === void 0 ? (y = xe({ removeAWithHref: !0 })(v), o !== void 0 && qi(y, o)) : y = Gi(v, a);
22021
22153
  let b = [];
22022
22154
  s !== void 0 && b.push("links"), c !== void 0 && b.push("links_or_references"), u !== void 0 && b.push("references");
22023
- let { outputByType: x, referredLegifranceTextCountByCid: ee } = await se({
22155
+ let { outputByType: x, referredLegifranceTextCountByCid: ee } = await le({
22024
22156
  legiResolver: _,
22025
22157
  date: n,
22026
22158
  defaultTextId: r,
@@ -22037,38 +22169,38 @@ async function Hi({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
22037
22169
  s !== void 0 && (S.links = s), c !== void 0 && (S.links_or_references = c), u !== void 0 && (S.references = u);
22038
22170
  for (let [e, t] of Object.entries(x)) {
22039
22171
  let n = S[e];
22040
- n !== void 0 && await N.writeFile(n, t.html, { encoding: "utf-8" });
22172
+ n !== void 0 && await A.writeFile(n, t.html, { encoding: "utf-8" });
22041
22173
  }
22042
- x.links !== void 0 && l !== void 0 && Vi(ve()(x.links.html), l), g !== void 0 && await N.writeJson(g, ee, {
22174
+ x.links !== void 0 && l !== void 0 && qi(xe()(x.links.html), l), g !== void 0 && await A.writeJson(g, ee, {
22043
22175
  encoding: "utf-8",
22044
22176
  spaces: 2
22045
22177
  });
22046
22178
  }
22047
22179
  //#endregion
22048
22180
  //#region src/lib/server/tables_of_contents.ts
22049
- async function Ui(e, t, n, r) {
22050
- let i = zi(await N.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new D(a), s = await N.readJson(n, { encoding: "utf-8" });
22051
- for await (let e of oe({
22181
+ async function Yi(e, t, n, r) {
22182
+ let i = Gi(await A.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new E(a), s = await A.readJson(n, { encoding: "utf-8" });
22183
+ for await (let e of ce({
22052
22184
  context: o,
22053
22185
  tableOfContents: s,
22054
22186
  transformation: i
22055
22187
  }));
22056
- await N.writeJson(r, s, {
22188
+ await A.writeJson(r, s, {
22057
22189
  encoding: "utf-8",
22058
22190
  spaces: 2
22059
22191
  });
22060
22192
  }
22061
- async function Wi(e, t, n) {
22062
- let r = zi(await N.readFile(e, { encoding: "utf-8" }), t).output, i = b(r);
22063
- await N.writeJson(n, i, {
22193
+ async function Xi(e, t, n) {
22194
+ let r = Gi(await A.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
22195
+ await A.writeJson(n, i, {
22064
22196
  encoding: "utf-8",
22065
22197
  spaces: 2
22066
22198
  });
22067
22199
  }
22068
22200
  //#endregion
22069
22201
  //#region src/lib/server/legi/resolvers.ts
22070
- function Gi({ canutesDb: e }) {
22071
- return new ae(e);
22202
+ function Zi({ canutesDb: e }) {
22203
+ return new se(e);
22072
22204
  }
22073
22205
  //#endregion
22074
- export { Ce as LegiResolver, Hi as addLinksOrReferencesToHtmlFile, Ui as addPositionsToTableOfContentsFile, ye as buildAndInstallTextTitlesInfos, Se as buildTextTitlesInfos, Gi as createLegiResolver, je as extractAssembleeAmendmentSearchItems, tr as extractAssembleeExposesDesMotifs, or as extractSenatAmendmentSearchItems, Me as hashAssembleeAmendmentSearchItem, rr as hashAssembleeSearchItem, sr as hashSenatAmendmentSearchItem, ui as hashSenatSearchItem, gi as isAkomaNtosoXml, ir as isoDateFromAssembleeDocument, Zn as linkAkomaNtosoBillRaw, an as linkAssembleeBillRaw, Xn as parseAkomaNtosoBillRaw, oi as parseAmendment, rn as parseAssembleeBillRaw, nr as parseAssembleeDocumentSearchContent, li as parseSenatDocumentSearchContent, zi as readTransformation, Kn as renderAkomaNtosoBillRaw, hi as resolveSenatAkomaNtosoSource, Wi as simplifiedHtmlBillFileToTableOfContentsFile, Pi as simplifyWordHtml, Ri as simplifyWordHtmlToDocument, Vi as writeTransformation };
22206
+ export { Ee as LegiResolver, Ji as addLinksOrReferencesToHtmlFile, Yi as addPositionsToTableOfContentsFile, Se as buildAndInstallTextTitlesInfos, we as buildTextTitlesInfos, Zi as createLegiResolver, Pe as extractAssembleeAmendmentSearchItems, sr as extractAssembleeExposesDesMotifs, fr as extractSenatAmendmentSearchItems, Fe as hashAssembleeAmendmentSearchItem, lr as hashAssembleeSearchItem, pr as hashSenatAmendmentSearchItem, gi as hashSenatSearchItem, Si as isAkomaNtosoXml, ur as isoDateFromAssembleeDocument, rr as linkAkomaNtosoBillRaw, dn as linkAssembleeBillRaw, nr as parseAkomaNtosoBillRaw, fi as parseAmendment, un as parseAssembleeBillRaw, cr as parseAssembleeDocumentSearchContent, hi as parseSenatDocumentSearchContent, Gi as readTransformation, Qn as renderAkomaNtosoBillRaw, xi as resolveSenatAkomaNtosoSource, Xi as simplifiedHtmlBillFileToTableOfContentsFile, Bi as simplifyWordHtml, Wi as simplifyWordHtmlToDocument, qi as writeTransformation };