@tricoteuses/tisseuse 0.15.1 → 0.15.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/server.js CHANGED
@@ -1,11 +1,11 @@
1
- import { A as e, Ct as t, D as n, E as r, Ft as i, It as a, L as o, O as s, Ot as c, P as l, S as u, St as d, T as f, Tt as p, X as m, Z as h, _ as g, at as _, b as v, c as y, h as b, k as x, m as ee, n as S, p as te, q as C, rt as ne, s as re, t as ie, tt as ae, u as oe, vt as se, w as ce, wt as w, x as le, y as ue } from "./html-D5hxZhPd.js";
2
- import { Dt as T, Et as E, F as de, I as fe, N as pe, Nt as D, O as me, Tt as O, ct as he, et as ge, ht as _e, jt as k, k as ve, n as ye, o as be, r as xe, t as Se, vt as A } from "./resolver-CuP8arVX.js";
3
- import * as Ce from "node:crypto";
4
- import { createHash as we } from "node:crypto";
5
- import j from "fs-extra";
6
- import M from "node:path";
1
+ import { A as e, C as t, Ct as n, D as r, E as i, Et as a, F as o, It as s, J as c, Lt as l, O as u, Q as d, R as f, S as p, T as m, Tt as h, Z as g, b as _, c as v, g as y, h as b, it as x, j as ee, k as S, kt as te, m as ne, n as re, nt as ie, ot as C, p as ae, s as oe, t as se, u as ce, v as le, wt as ue, x as de, yt as fe } from "./html-BDmDxEJF.js";
2
+ import { Dt as w, Et as T, F as pe, I as me, N as he, Nt as E, O as ge, Tt as D, ct as _e, et as ve, ht as ye, jt as O, k as be, n as xe, o as Se, r as Ce, t as we, vt as k } from "./resolver-CuP8arVX.js";
3
+ import * as Te from "node:crypto";
4
+ import { createHash as Ee } from "node:crypto";
5
+ import A from "fs-extra";
6
+ import De from "node:path";
7
7
  //#region src/lib/server/assemblee_amendment_search.ts
8
- function Te(e, t) {
8
+ function Oe(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 Te(e, t) {
13
13
  }
14
14
  return typeof n == "string" && n.trim() ? n.trim() : null;
15
15
  }
16
- function Ee(e) {
16
+ function ke(e) {
17
17
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
18
18
  }
19
- function De(e) {
20
- return Ee(_(e).text());
19
+ function Ae(e) {
20
+ return ke(C(e).text());
21
21
  }
22
- function Oe(e) {
23
- let t = Ee([
24
- Te(e, [
22
+ function je(e) {
23
+ let t = ke([
24
+ Oe(e, [
25
25
  "corps",
26
26
  "contenuAuteur",
27
27
  "dispositif"
28
28
  ]),
29
- Te(e, [
29
+ Oe(e, [
30
30
  "corps",
31
31
  "contenuAuteur",
32
32
  "dispositifAmdtCreditPLF"
33
33
  ]),
34
- Te(e, [
34
+ Oe(e, [
35
35
  "corps",
36
36
  "contenuAuteur",
37
37
  "dispositifAmdtCreditPLFR"
38
38
  ])
39
- ].filter((e) => e !== null).map((e) => De(e)).join("\n")), n = Te(e, [
39
+ ].filter((e) => e !== null).map((e) => Ae(e)).join("\n")), n = Oe(e, [
40
40
  "corps",
41
41
  "contenuAuteur",
42
42
  "exposeSommaire"
43
- ]), r = n === null ? "" : De(n);
43
+ ]), r = n === null ? "" : Ae(n);
44
44
  return [...t ? [{
45
45
  content: t,
46
46
  itemKind: "dispositif",
@@ -51,24 +51,24 @@ function Oe(e) {
51
51
  label: "Exposé sommaire"
52
52
  }] : []];
53
53
  }
54
- function ke(e, t) {
55
- return we("sha256").update(JSON.stringify({
54
+ function Me(e, t) {
55
+ return Ee("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 N(e) {
62
+ function j(e) {
63
63
  switch (e.type) {
64
- case "reference_et_action": return N(e.reference);
65
- case "enumeration": return [...N(e.left), ...N(e.right)];
64
+ case "reference_et_action": return j(e.reference);
65
+ case "enumeration": return [...j(e.left), ...j(e.right)];
66
66
  case "parent-enfant": {
67
- let t = [...i(e.parent)].filter((e) => e.type === "article");
67
+ let t = [...s(e.parent)].filter((e) => e.type === "article");
68
68
  return t.length === 1 ? [{
69
69
  article: t[0],
70
70
  reference: e
71
- }] : t.length > 1 ? [] : N(e.child).map((t) => ({
71
+ }] : t.length > 1 ? [] : j(e.child).map((t) => ({
72
72
  article: t.article,
73
73
  reference: {
74
74
  ...e,
@@ -89,11 +89,11 @@ function N(e) {
89
89
  }
90
90
  //#endregion
91
91
  //#region src/lib/extractors/article_action_effects.ts
92
- function Ae(e, t) {
92
+ function Ne(e, t) {
93
93
  if (t < 2) return null;
94
- let n = ve(e), r = b(e);
94
+ let n = be(e), r = y(e);
95
95
  if (r.length !== t) return null;
96
- let i = l(new O(n.output)), a = (e) => fe(n, [e])[0].position;
96
+ let i = o(new D(n.output)), a = (e) => me(n, [e])[0].position;
97
97
  return r.map((t, n) => ({
98
98
  sourceText: e,
99
99
  referencePosition: a({
@@ -103,17 +103,17 @@ function Ae(e, t) {
103
103
  actionPosition: a(t.position)
104
104
  }));
105
105
  }
106
- function je(e, t) {
106
+ function Pe(e, t) {
107
107
  if (t.length < 2) return null;
108
- let n = ve(e), r = n.output, i = (e) => fe(n, [e])[0].position, a = l(new O(r)), o = a.flatMap(N);
109
- if (o.length !== t.length || o.length < 2) return null;
110
- let s = o.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
111
- if (s.length > 0 && s.length < o.length) {
112
- let n = o.filter((e) => !s.includes(e));
108
+ let n = be(e), r = n.output, i = (e) => me(n, [e])[0].position, a = o(new D(r)), s = a.flatMap(j);
109
+ if (s.length !== t.length || s.length < 2) return null;
110
+ let c = s.filter(({ reference: e }) => e.type === "parent-enfant" && e.parent.type === "texte" && e.parent.nature !== "CODE");
111
+ if (c.length > 0 && c.length < s.length) {
112
+ let n = s.filter((e) => !c.includes(e));
113
113
  if (n.length !== 1) return null;
114
- let a = n[0], c = t[o.indexOf(a)], l = ue(r);
115
- return !c || l.length !== 1 || l[0].kind === "compound" ? null : [{
116
- targetId: c,
114
+ let a = n[0], o = t[s.indexOf(a)], l = _(r);
115
+ return !o || l.length !== 1 || l[0].kind === "compound" ? null : [{
116
+ targetId: o,
117
117
  sourceAnnotation: {
118
118
  sourceText: e,
119
119
  referencePosition: i(a.reference.position),
@@ -133,20 +133,20 @@ function je(e, t) {
133
133
  }
134
134
  }];
135
135
  }
136
- let c = [], u = 0;
136
+ let l = [], u = 0;
137
137
  for (let e = 1; e < a.length; e += 1) {
138
138
  let t = a[e];
139
- t.type !== "reference_et_action" || N(t).length === 0 || a.slice(u, e).flatMap(N).length === 0 || ue(r.slice(u === 0 ? 0 : a[u].position.start, t.position.start)).length === 1 && ue(r.slice(t.position.start)).length === 1 && (c.push(e - 1), u = e);
139
+ t.type !== "reference_et_action" || j(t).length === 0 || a.slice(u, e).flatMap(j).length === 0 || _(r.slice(u === 0 ? 0 : a[u].position.start, t.position.start)).length === 1 && _(r.slice(t.position.start)).length === 1 && (l.push(e - 1), u = e);
140
140
  }
141
- c.push(a.length - 1);
141
+ l.push(a.length - 1);
142
142
  let d = [], f = 0, p = 0;
143
- for (let n of c) {
144
- let o = a.slice(f, n + 1).flatMap(N);
143
+ for (let n of l) {
144
+ let o = a.slice(f, n + 1).flatMap(j);
145
145
  if (o.length === 0) {
146
146
  f = n + 1;
147
147
  continue;
148
148
  }
149
- let s = f === 0 ? 0 : a[f].position.start, c = a[n + 1]?.position.start ?? r.length, l = ue(r.slice(s, c));
149
+ let s = f === 0 ? 0 : a[f].position.start, c = a[n + 1]?.position.start ?? r.length, l = _(r.slice(s, c));
150
150
  if (l.length !== 1 || l[0].kind === "compound") return null;
151
151
  let u = l[0];
152
152
  for (let n of o) {
@@ -170,7 +170,7 @@ function je(e, t) {
170
170
  stop: r.length
171
171
  },
172
172
  reference: n.reference,
173
- portionSelectors: ae(n.reference)
173
+ portionSelectors: ie(n.reference)
174
174
  }
175
175
  });
176
176
  }
@@ -180,29 +180,29 @@ function je(e, t) {
180
180
  }
181
181
  //#endregion
182
182
  //#region src/lib/server/parsed_bills.ts
183
- var Me = /^expos[ée]\s+des\s+motifs\b/iu;
184
- function P(e) {
183
+ var Fe = /^expos[ée]\s+des\s+motifs\b/iu;
184
+ function M(e) {
185
185
  return (e ?? "").replace(/\u00a0/g, " ").replace(/\s+/g, " ").trim();
186
186
  }
187
- function F(e) {
188
- return P(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
187
+ function N(e) {
188
+ return M(e).toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
189
189
  }
190
- function Ne(e) {
191
- return d(P(e));
190
+ function Ie(e) {
191
+ return n(M(e));
192
192
  }
193
- function I(e) {
194
- return `_TocArt${Ne(e).replace(/\s+/gu, "")}`;
193
+ function P(e) {
194
+ return `_TocArt${Ie(e).replace(/\s+/gu, "")}`;
195
195
  }
196
- function Pe(e, t) {
196
+ function Le(e, t) {
197
197
  return e(t).closest(".assnatTOC6,.assnatTOC5,.assnatTOC4").length > 0;
198
198
  }
199
- function Fe(e) {
200
- return F(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
199
+ function Re(e) {
200
+ return N(e).replace(/[‐‑‒–—]/gu, "-").replace(/\s*\.\s*/gu, ".");
201
201
  }
202
- function Ie(e) {
203
- return Fe(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
202
+ function ze(e) {
203
+ return Re(e).replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
204
204
  }
205
- function Le(e) {
205
+ function Be(e) {
206
206
  switch (e.kind) {
207
207
  case "insert_after":
208
208
  case "insert_before": return e.insertText;
@@ -220,12 +220,12 @@ function Le(e) {
220
220
  default: return;
221
221
  }
222
222
  }
223
- function Re(e) {
224
- let n = P(e.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);
225
- if (r?.[1] !== void 0) return t(r[1]);
223
+ function Ve(e) {
224
+ let t = M(e.sourceText), n = /\b(?:ins[ée]r[ée]s?|cr[ée][ée]s?|ajout[ée]s?|compl[ée]t[ée]s?\s+par)\b[\s\S]{0,160}?\barticle\s+(.+?)\s+ainsi\s+r[ée]dig[ée]s?\b/iu.exec(t);
225
+ if (n?.[1] !== void 0) return ue(n[1]);
226
226
  }
227
- function ze(e) {
228
- let t = Le(e), n = se(t ?? "");
227
+ function He(e) {
228
+ let t = Be(e), n = fe(t ?? "");
229
229
  if (n.length > 0 && t !== void 0) return n.map((e, r) => {
230
230
  let i = e.start, a = n[r + 1]?.start ?? t.length, o = t.slice(i, a).trim();
231
231
  return {
@@ -233,58 +233,58 @@ function ze(e) {
233
233
  text: o
234
234
  };
235
235
  });
236
- let r = Re(e);
236
+ let r = Ve(e);
237
237
  return r === void 0 ? [] : [{
238
238
  num: r,
239
239
  text: t ?? e.sourceText
240
240
  }];
241
241
  }
242
- function Be(e, t = /* @__PURE__ */ new Set()) {
242
+ function Ue(e, t = /* @__PURE__ */ new Set()) {
243
243
  if (e == null) return t;
244
244
  if (Array.isArray(e)) {
245
- for (let n of e) Be(n, t);
245
+ for (let n of e) Ue(n, t);
246
246
  return t;
247
247
  }
248
248
  if (typeof e != "object") return t;
249
249
  let n = e;
250
250
  n.type === "article" && typeof n.num == "string" && t.add(n.num);
251
- for (let e of Object.values(n)) Be(e, t);
251
+ for (let e of Object.values(n)) Ue(e, t);
252
252
  return t;
253
253
  }
254
- function Ve(e) {
255
- let t = F(e.sourceText);
254
+ function We(e) {
255
+ let t = N(e.sourceText);
256
256
  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);
257
257
  }
258
- function He(e) {
259
- return P(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
258
+ function Ge(e) {
259
+ return M(e).replace(/[’']/gu, "'").replace(/[‐‑‒–—]/gu, "-");
260
260
  }
261
- function Ue(e, t) {
262
- let n = new O(e, t), r = ge(n);
261
+ function Ke(e, t) {
262
+ let n = new D(e, t), r = ve(n);
263
263
  return typeof r != "string" || n.offset <= t ? null : {
264
264
  date: r,
265
265
  start: t,
266
266
  stop: n.offset
267
267
  };
268
268
  }
269
- function We(e, t) {
269
+ function qe(e, t) {
270
270
  let n = /\d/u.exec(e.slice(t));
271
271
  if (!n) return null;
272
272
  let r = t + n.index;
273
- return e.slice(t, r).trim().length > 0 ? null : Ue(e, r);
273
+ return e.slice(t, r).trim().length > 0 ? null : Ke(e, r);
274
274
  }
275
- function Ge(e) {
275
+ function Je(e) {
276
276
  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);
277
277
  for (; o !== -1;) {
278
278
  let s = e.indexOf(a, o + 15), c = e.slice(o, o + 1400), l = t.exec(c);
279
279
  if (l) {
280
- let e = We(c, l[0].length);
280
+ let e = qe(c, l[0].length);
281
281
  e && i.push(e.date);
282
282
  }
283
283
  let u = n.exec(c);
284
284
  if (u) {
285
285
  let e = /\barticle\s+\w/iu.exec(c), t = e === null ? c.slice(u[0].length) : c.slice(u[0].length, e.index);
286
286
  for (r.lastIndex = 0; r.exec(t) !== null;) {
287
- let e = We(t, r.lastIndex);
287
+ let e = qe(t, r.lastIndex);
288
288
  e && /^\s+pour\s+les\s+autres\s+dispositions\s+fiscales\b/iu.test(t.slice(e.stop)) && i.push(e.date);
289
289
  }
290
290
  }
@@ -292,20 +292,20 @@ function Ge(e) {
292
292
  }
293
293
  return i;
294
294
  }
295
- function Ke(e) {
296
- let t = Ge(He(e).toLowerCase()), n = Array.from(new Set(t));
295
+ function Ye(e) {
296
+ let t = Je(Ge(e).toLowerCase()), n = Array.from(new Set(t));
297
297
  return n.length === 1 ? n[0] : void 0;
298
298
  }
299
- function qe(e) {
300
- return F(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
299
+ function Xe(e) {
300
+ return N(e).replace(/[’]/gu, "'").replace(/[‐‑‒–—]/gu, "-").replace(/^(?:(?:article\s+[^:]+|[a-z][.)]|[ivxlcdm]+\.|\d+°)\s*(?:-\s*)?)+/iu, "");
301
301
  }
302
- function L(e) {
302
+ function F(e) {
303
303
  return e?.type === "tag";
304
304
  }
305
- function Je(e, t) {
305
+ function Ze(e, t) {
306
306
  return e.html(t) ?? "";
307
307
  }
308
- function Ye(e, t) {
308
+ function Qe(e, t) {
309
309
  let n = [], r = /* @__PURE__ */ new Set();
310
310
  for (let i of e(t).find("a").get()) {
311
311
  let a = e(i).attr("href") ?? "", o = /\/legifrance\/(articles|sections|textes)\/([^?#"]+)/u.exec(a);
@@ -313,46 +313,46 @@ function Ye(e, t) {
313
313
  let s = o[1] === "articles" ? "article" : o[1] === "sections" ? "division" : "text", c = o[2].replace(/\.md$/u, ""), l = `${s}\0${c}`;
314
314
  if (r.has(l)) continue;
315
315
  r.add(l);
316
- let u = P(e(i).text());
316
+ let u = M(e(i).text());
317
317
  n.push({
318
318
  id: c,
319
- ...Xe(e, t, i) ? { insideFrenchQuotes: !0 } : {},
319
+ ...$e(e, t, i) ? { insideFrenchQuotes: !0 } : {},
320
320
  ...u ? { text: u } : {},
321
321
  type: s
322
322
  });
323
323
  }
324
324
  return n;
325
325
  }
326
- function Xe(e, t, n) {
327
- let r = Ze(e, t, n);
326
+ function $e(e, t, n) {
327
+ let r = et(e, t, n);
328
328
  return (r.match(/«/gu) ?? []).length > (r.match(/»/gu) ?? []).length;
329
329
  }
330
- function Ze(e, t, n) {
330
+ function et(e, t, n) {
331
331
  if (t === n) return "";
332
332
  if (t.type === "text") return t.data ?? "";
333
- if (!L(t)) return "";
333
+ if (!F(t)) return "";
334
334
  let r = "";
335
335
  for (let i of e(t).contents().get()) {
336
336
  if (i === n) return r;
337
- if (L(i) && e.contains(i, n)) return r + Ze(e, i, n);
337
+ if (F(i) && e.contains(i, n)) return r + et(e, i, n);
338
338
  r += e(i).text();
339
339
  }
340
340
  return r;
341
341
  }
342
- function Qe(e, t) {
343
- return t.map((t) => P(e(t).text())).filter(Boolean).join("\n");
342
+ function tt(e, t) {
343
+ return t.map((t) => M(e(t).text())).filter(Boolean).join("\n");
344
344
  }
345
- function $e(e) {
346
- let t = F(e);
347
- return !t || Me.test(t) ? "noise" : r.test(e) ? "directive_candidate" : "context";
345
+ function nt(e) {
346
+ let t = N(e);
347
+ return !t || Fe.test(t) ? "noise" : r.test(e) ? "directive_candidate" : "context";
348
348
  }
349
- async function et(e, t, n) {
349
+ async function rt(e, t, n) {
350
350
  if (n === void 0) throw Error("A document date is required to add links to legal references.");
351
351
  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.");
352
- let { output: r } = await S({
352
+ let { output: r } = await re({
353
353
  date: n,
354
354
  html: e,
355
- legiResolver: t.legiResolver ?? new te(t.canutesDb),
355
+ legiResolver: t.legiResolver ?? new ae(t.canutesDb),
356
356
  linkBaseUrl: t.linkBaseUrl,
357
357
  linkType: t.linkType,
358
358
  logIgnoredReferencesTypes: t.logIgnoredReferencesTypes,
@@ -361,13 +361,13 @@ async function et(e, t, n) {
361
361
  });
362
362
  return r ?? e;
363
363
  }
364
- function tt(e, t) {
364
+ function it(e, t) {
365
365
  let n = e(t).closest("h1,h2,h3,h4,h5,h6,p,td,th").get(0), r = e(t).closest("table").get(0);
366
- return L(r) && L(n) && e(n).parents("table").get(0) === r ? r : L(n) ? n : t;
366
+ return F(r) && F(n) && e(n).parents("table").get(0) === r ? r : F(n) ? n : t;
367
367
  }
368
- function nt(e, t, n, r) {
368
+ function at(e, t, n, r) {
369
369
  if (t.has(r.container)) return;
370
- let i = r.id ?? I(r.num ?? r.label);
370
+ let i = r.id ?? P(r.num ?? r.label);
371
371
  n.has(i) || (n.add(i), t.add(r.container), e.push({
372
372
  id: i,
373
373
  label: r.label,
@@ -377,25 +377,25 @@ function nt(e, t, n, r) {
377
377
  container: r.container
378
378
  }));
379
379
  }
380
- function rt(e) {
380
+ function ot(e) {
381
381
  let t = /* @__PURE__ */ new Map();
382
382
  return e("body *").each((e, n) => {
383
383
  t.set(n, e);
384
384
  }), t;
385
385
  }
386
- function R(e, t) {
386
+ function I(e, t) {
387
387
  return e.get(t) ?? 2 ** 53 - 1;
388
388
  }
389
- function it(e) {
389
+ function st(e) {
390
390
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
391
391
  e("a[id], span[id], h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each((i, a) => {
392
- if (Pe(e, a)) return;
393
- let o = w(P(e(a).text()));
392
+ if (Le(e, a)) return;
393
+ let o = h(M(e(a).text()));
394
394
  if (!o) return;
395
395
  let s = e(a).attr("id");
396
396
  if (!s || r.has(s)) return;
397
- let c = tt(e, a);
398
- nt(t, n, r, {
397
+ let c = it(e, a);
398
+ at(t, n, r, {
399
399
  id: s,
400
400
  ...o,
401
401
  element: a,
@@ -403,37 +403,37 @@ function it(e) {
403
403
  });
404
404
  }), e("h1:not([id]), h2:not([id]), h3:not([id]), h4:not([id]), h5:not([id]), h6:not([id])").each((i, a) => {
405
405
  if (n.has(a)) return;
406
- let o = w(P(e(a).text()));
407
- o && nt(t, n, r, {
406
+ let o = h(M(e(a).text()));
407
+ o && at(t, n, r, {
408
408
  ...o,
409
409
  element: a,
410
410
  container: a
411
411
  });
412
412
  });
413
- let i = rt(e);
414
- return t.sort((e, t) => R(i, e.container) - R(i, t.container)), t;
413
+ let i = ot(e);
414
+ return t.sort((e, t) => I(i, e.container) - I(i, t.container)), t;
415
415
  }
416
- function at(e, t) {
417
- if (Pe(e, t)) return !1;
416
+ function ct(e, t) {
417
+ if (Le(e, t)) return !1;
418
418
  let n = t.tagName?.toLowerCase();
419
419
  if (n !== "p") return /^h[1-6]$/u.test(n ?? "");
420
420
  let r = e(t).attr("style") ?? "", i = e(t).html() ?? "";
421
421
  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));
422
422
  }
423
- function ot(e) {
423
+ function lt(e) {
424
424
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
425
425
  return e("p.assnat9ArticleNum,h1,h2,h3,h4,h5,h6,p").each((i, a) => {
426
- if (Pe(e, a) || !e(a).hasClass("assnat9ArticleNum") && !at(e, a)) return;
427
- let o = w(e(a).text());
428
- o && nt(t, n, r, {
426
+ if (Le(e, a) || !e(a).hasClass("assnat9ArticleNum") && !ct(e, a)) return;
427
+ let o = h(e(a).text());
428
+ o && at(t, n, r, {
429
429
  ...o,
430
430
  element: a,
431
431
  container: a
432
432
  });
433
433
  }), t;
434
434
  }
435
- function st(e) {
436
- let t = Ne(e ?? "").replace(/[()]/gu, "").trim();
435
+ function ut(e) {
436
+ let t = Ie(e ?? "").replace(/[()]/gu, "").trim();
437
437
  if (!t || t.toLowerCase() === "liminaire") return;
438
438
  if (t.toLowerCase() === "unique") return {
439
439
  base: 1,
@@ -442,7 +442,7 @@ function st(e) {
442
442
  };
443
443
  let n = /^(\d+|premier)(?:\s+([a-z]+))?(?:\s+([A-Z]+))?$/u.exec(t);
444
444
  if (!n) return;
445
- let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : lt(i);
445
+ let r = n[1] === "premier" ? 1 : Number.parseInt(n[1], 10), i = n[2], a = i === void 0 ? 0 : ft(i);
446
446
  if (a !== void 0) return {
447
447
  base: r,
448
448
  suffixOrder: a,
@@ -450,7 +450,7 @@ function st(e) {
450
450
  text: t
451
451
  };
452
452
  }
453
- function ct(e, t) {
453
+ function dt(e, t) {
454
454
  if (t.base !== e.base) return t.base - e.base;
455
455
  if (t.suffixOrder !== e.suffixOrder) return t.suffixOrder - e.suffixOrder;
456
456
  for (let n = 0; n <= Math.max(e.letters?.length ?? 0, t.letters?.length ?? 0); n++) {
@@ -459,14 +459,14 @@ function ct(e, t) {
459
459
  }
460
460
  return 0;
461
461
  }
462
- function lt(e) {
463
- let t = new O(e), n = he(t);
462
+ function ft(e) {
463
+ let t = new D(e), n = _e(t);
464
464
  if (!(n === void 0 || t.offset !== e.length) && !(typeof n != "object" || !n || !("value" in n) || typeof n.value != "number")) return n.value - 1;
465
465
  }
466
- function ut(e) {
466
+ function pt(e) {
467
467
  let t = [], n = e.map((e) => ({
468
468
  heading: e,
469
- token: st(e.num)
469
+ token: ut(e.num)
470
470
  }));
471
471
  n.filter(({ token: e }) => e?.text === "unique").length > 0 && e.length > 1 && t.push({
472
472
  code: "article_toc_out_of_order",
@@ -475,7 +475,7 @@ function ut(e) {
475
475
  let r;
476
476
  for (let { heading: e, token: i } of n) if (!(i === void 0 || i.text === "unique")) {
477
477
  if (r !== void 0) {
478
- let n = ct(r, i);
478
+ let n = dt(r, i);
479
479
  n === 0 ? t.push({
480
480
  code: "article_toc_duplicate_number",
481
481
  message: `Article ${e.num ?? e.label} is repeated`,
@@ -504,60 +504,60 @@ function ut(e) {
504
504
  }
505
505
  return t;
506
506
  }
507
- function dt(e) {
508
- let t = ut(e);
507
+ function mt(e) {
508
+ let t = pt(e);
509
509
  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) });
510
510
  }
511
- function ft(e, { warn: t = !0 } = {}) {
512
- let n = it(e), r = ot(e);
513
- if (n.length === 0) return t && dt(r), r;
514
- let i = rt(e), a = (e, t) => {
515
- let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => I(e.num ?? e.label)));
511
+ function ht(e, { warn: t = !0 } = {}) {
512
+ let n = st(e), r = lt(e);
513
+ if (n.length === 0) return t && mt(r), r;
514
+ let i = ot(e), a = (e, t) => {
515
+ let n = new Set(e.map((e) => e.container)), r = new Set(e.map((e) => P(e.num ?? e.label)));
516
516
  for (let i of t) {
517
- let t = I(i.num ?? i.label);
517
+ let t = P(i.num ?? i.label);
518
518
  n.has(i.container) || r.has(t) || (n.add(i.container), r.add(t), e.push(i));
519
519
  }
520
- return e.sort((e, t) => R(i, e.container) - R(i, t.container)), e;
521
- }, 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 && ut(c).length > ut(s).length ? s : c;
522
- return t && dt(l), l;
520
+ return e.sort((e, t) => I(i, e.container) - I(i, t.container)), e;
521
+ }, 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 && pt(c).length > pt(s).length ? s : c;
522
+ return t && mt(l), l;
523
523
  }
524
- function pt(e) {
524
+ function gt(e) {
525
525
  let t = e.next;
526
526
  for (; t !== null;) {
527
- if (L(t)) return t;
527
+ if (F(t)) return t;
528
528
  t = t.next;
529
529
  }
530
530
  return null;
531
531
  }
532
- function mt(e, t, n) {
532
+ function _t(e, t, n) {
533
533
  let r = e(t.container);
534
534
  if (!r.is("p.assnat9ArticleNum")) return;
535
535
  let i = r.parent(), a = i.parent();
536
536
  if (!i.is("div") || i.children().length !== 1 || !a.is("div")) return;
537
537
  let o = a.children().get();
538
- if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || P(e(o[1]).text()) !== "") return;
538
+ if (o.length !== 3 && o.length !== 4 || o[0] !== i.get(0) || o[1]?.tagName !== "span" || M(e(o[1]).text()) !== "") return;
539
539
  let s = o.length === 4 ? o[2] : void 0;
540
- if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(P(e(s).text())))) return;
540
+ if (s !== void 0 && (s.tagName !== "p" || !e(s).hasClass("assnat9ArticleNum") || !/^\(non modifié\)$/iu.test(M(e(s).text())))) return;
541
541
  let c = o.at(-1);
542
- 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) => w(e(t).text()) !== null))) return [
542
+ 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) => h(e(t).text()) !== null))) return [
543
543
  t.container,
544
544
  ...s === void 0 ? [] : [s],
545
545
  c
546
546
  ];
547
547
  }
548
- function ht(e, t, n, r = rt(e)) {
548
+ function vt(e, t, n, r = ot(e)) {
549
549
  let i = [t.container], a = n?.container;
550
- for (let e = pt(t.container); e !== null && e !== a; e = pt(e)) i.push(e);
550
+ for (let e = gt(t.container); e !== null && e !== a; e = gt(e)) i.push(e);
551
551
  if (i.length > 1) return i;
552
- let o = mt(e, t, n);
552
+ let o = _t(e, t, n);
553
553
  if (o !== void 0) return o;
554
- let s = R(r, t.container), c = a ? R(r, a) : -1;
554
+ let s = I(r, t.container), c = a ? I(r, a) : -1;
555
555
  return e("body > *").get().filter((e) => {
556
- let t = R(r, e);
556
+ let t = I(r, e);
557
557
  return t >= s && (c === -1 || t < c);
558
558
  });
559
559
  }
560
- function gt(e, t) {
560
+ function yt(e, t) {
561
561
  let n = [], r = /* @__PURE__ */ new Set();
562
562
  for (let i of t) {
563
563
  let t = "p,li,table", a = e(i).is(t) ? [i] : e(i).find(t).get();
@@ -565,125 +565,130 @@ function gt(e, t) {
565
565
  }
566
566
  return n;
567
567
  }
568
- function _t(e, t, n) {
568
+ function bt(e, t, n) {
569
569
  let r = [], i = !1;
570
- for (let a of gt(e, n)) {
571
- let n = P(e(a).text());
570
+ for (let a of yt(e, n)) {
571
+ let n = M(e(a).text());
572
572
  if (!n) continue;
573
- Me.test(n) && (i = !0);
574
- let o = i ? "noise" : $e(n), s = `${t}-b${r.length + 1}`;
573
+ Fe.test(n) && (i = !0);
574
+ let o = i ? "noise" : nt(n), s = `${t}-b${r.length + 1}`;
575
575
  e(a).attr("data-pjl-parsed-article-id", t), e(a).attr("data-pjl-parsed-block-id", s), r.push({
576
576
  id: s,
577
577
  articleId: t,
578
578
  kind: o,
579
- links: Ye(e, a),
579
+ links: Qe(e, a),
580
580
  text: n,
581
- html: Je(e, a)
581
+ html: Ze(e, a)
582
582
  });
583
583
  }
584
584
  return r;
585
585
  }
586
- function vt(e, t) {
586
+ function xt(e, t) {
587
587
  if (t.length === 0) return e;
588
588
  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>`;
589
589
  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}`;
590
590
  }
591
- function yt(e) {
592
- let t = _(e), n = bt(t);
593
- for (let e of ft(t, { warn: !1 })) {
594
- let r = I(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
591
+ function St(e) {
592
+ let t = C(e), n = Ct(t);
593
+ for (let e of ht(t, { warn: !1 })) {
594
+ let r = P(e.num ?? e.label.replace(/^Article\s+/iu, "")), i = t(e.element), a = i.attr("id");
595
595
  if (a !== r) {
596
- if (a?.startsWith("_Toc") && !Ct(n, a, e.element)) {
596
+ if (a?.startsWith("_Toc") && !Tt(n, a, e.element)) {
597
597
  let e = t("<span></span>").attr("id", a);
598
598
  i.before(e);
599
599
  let r = e.get(0);
600
- L(r) && xt(n, a, r);
600
+ F(r) && L(n, a, r);
601
601
  }
602
- a && St(n, a, e.element), i.attr("id", r), xt(n, r, e.element);
602
+ a && wt(n, a, e.element), i.attr("id", r), L(n, r, e.element);
603
603
  }
604
604
  }
605
- let r = ft(t), i = rt(t);
605
+ let r = ht(t), i = ot(t);
606
606
  for (let [e, a] of r.entries()) {
607
- let o = ht(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
607
+ let o = vt(t, a, r[e + 1], i).flatMap((e) => t(e).is("span.alinea[data-alinea]") ? [e] : t(e).find("span.alinea[data-alinea]").get());
608
608
  for (let e of o) {
609
609
  let r = t(e).attr("data-alinea")?.trim();
610
610
  if (!r) continue;
611
611
  let i = `${a.id}-alinea-${r.replace(/\s+/gu, "")}`;
612
- if (Ct(n, i, e)) continue;
612
+ if (Tt(n, i, e)) continue;
613
613
  let o = t(e).attr("id");
614
614
  if (o && o !== i) {
615
615
  let r = t("<span></span>").attr("id", i);
616
616
  t(e).before(r);
617
617
  let a = r.get(0);
618
- L(a) && xt(n, i, a);
619
- } else o && St(n, o, e), t(e).attr("id", i), xt(n, i, e);
618
+ F(a) && L(n, i, a);
619
+ } else o && wt(n, o, e), t(e).attr("id", i), L(n, i, e);
620
620
  }
621
621
  }
622
622
  return t.html();
623
623
  }
624
- function bt(e) {
624
+ function Ct(e) {
625
625
  let t = /* @__PURE__ */ new Map();
626
626
  for (let n of e("[id]").get()) {
627
627
  let r = e(n).attr("id");
628
- r && xt(t, r, n);
628
+ r && L(t, r, n);
629
629
  }
630
630
  return t;
631
631
  }
632
- function xt(e, t, n) {
632
+ function L(e, t, n) {
633
633
  let r = e.get(t);
634
634
  r === void 0 && (r = /* @__PURE__ */ new Set(), e.set(t, r)), r.add(n);
635
635
  }
636
- function St(e, t, n) {
636
+ function wt(e, t, n) {
637
637
  let r = e.get(t);
638
638
  r !== void 0 && (r.delete(n), r.size === 0 && e.delete(t));
639
639
  }
640
- function Ct(e, t, n) {
640
+ function Tt(e, t, n) {
641
641
  for (let r of e.get(t) ?? []) if (r !== n) return !0;
642
642
  return !1;
643
643
  }
644
- function wt(e, t) {
645
- let n = qe("sourceText" in t ? t.sourceText : "");
644
+ function Et(e, t) {
645
+ let n = Xe("sourceText" in t ? t.sourceText : "");
646
646
  if (n) return e.filter((e) => e.kind === "directive_candidate").find((e) => {
647
- let t = qe(e.text);
647
+ let t = Xe(e.text);
648
648
  return t.length > 0 && (n.includes(t) || t.includes(n));
649
649
  });
650
650
  }
651
- function Tt(e, t) {
651
+ function Dt(e, t) {
652
652
  if (t) return t.blockIds.map((t) => e.get(t)).find((e) => e?.kind === "directive_candidate");
653
653
  }
654
- function Et(e) {
654
+ function Ot(e) {
655
655
  return e?.links.filter((e) => !e.insideFrenchQuotes && (e.type === "article" || e.type === "division")).map((e) => e.id) ?? [];
656
656
  }
657
- function Dt(e, t) {
658
- let n = P(e);
657
+ function kt(e, t) {
658
+ let n = M(e);
659
659
  if (!n) return;
660
- let r = ne(n);
660
+ let r = x(n);
661
661
  return r ? r.level : n.endsWith(":") ? (t ?? -1) + 1 : void 0;
662
662
  }
663
- function Ot(e) {
664
- let t = /* @__PURE__ */ new Map(), n = [];
665
- for (let r of e) {
666
- let e = Dt(r.text, n.at(-1)?.level);
667
- if (e === void 0) {
668
- t.set(r.id, [...n.map((e) => e.block), r]);
663
+ function At(e) {
664
+ let t = /* @__PURE__ */ new Map(), n = [], r = ne(e.map((e) => e.text)), i = -1;
665
+ for (let [a, o] of e.entries()) {
666
+ let e = r.get(a);
667
+ if (e && (i = e.endIndex), a <= i) {
668
+ t.set(o.id, [...n.map((e) => e.block), o]);
669
669
  continue;
670
670
  }
671
- for (; n.length > 0 && n[n.length - 1].level >= e;) n.pop();
672
- t.set(r.id, [...n.map((e) => e.block), r]), n.push({
673
- level: e,
674
- block: r
671
+ let s = kt(o.text, n.at(-1)?.level);
672
+ if (s === void 0) {
673
+ t.set(o.id, [...n.map((e) => e.block), o]);
674
+ continue;
675
+ }
676
+ for (; n.length > 0 && n[n.length - 1].level >= s;) n.pop();
677
+ t.set(o.id, [...n.map((e) => e.block), o]), n.push({
678
+ level: s,
679
+ block: o
675
680
  });
676
681
  }
677
682
  return t;
678
683
  }
679
- function kt(e, t) {
684
+ function jt(e, t) {
680
685
  let n = [], r = /* @__PURE__ */ new Set();
681
686
  for (let i of [...e ?? [], ...t]) i !== void 0 && (r.has(i.id) || (r.add(i.id), n.push(i)));
682
687
  return n;
683
688
  }
684
- function At(e, t, n) {
689
+ function Mt(e, t, n) {
685
690
  if (!t) return;
686
- let r = kt(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
691
+ let r = jt(e, t.blockIds.map((e) => n.get(e)).filter((e) => e !== void 0));
687
692
  if (r.length === 0) return;
688
693
  let i = r.map((e) => e.id);
689
694
  if (i.length === t.blockIds.length && i.every((e, n) => e === t.blockIds[n])) return;
@@ -698,7 +703,7 @@ function At(e, t, n) {
698
703
  }
699
704
  };
700
705
  }
701
- function jt(e) {
706
+ function Nt(e) {
702
707
  let t = [], n = 0;
703
708
  for (let r of e.blocks) {
704
709
  let i = e.directiveText.indexOf(r.text, n);
@@ -712,7 +717,7 @@ function jt(e) {
712
717
  }
713
718
  return t;
714
719
  }
715
- function Mt(e, t, n) {
720
+ function Pt(e, t, n) {
716
721
  let { start: r, stop: i } = n.sourcePosition, a = t.filter((e) => e.stop > r && e.start < i);
717
722
  if (a.length === 0) return;
718
723
  let o = a[0], s = a[a.length - 1], c = o.start, l = s.stop;
@@ -726,7 +731,7 @@ function Mt(e, t, n) {
726
731
  }
727
732
  };
728
733
  }
729
- function Nt(e, t, n) {
734
+ function Ft(e, t, n) {
730
735
  if (!t) return;
731
736
  let r = e.directiveText.indexOf(t.text);
732
737
  if (r === -1) return;
@@ -739,14 +744,14 @@ function Nt(e, t, n) {
739
744
  stop: a
740
745
  };
741
746
  }
742
- function Pt(e, t) {
743
- let n = performance.now(), r = performance.now(), i = jt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = Ot(e.blocks), l = /* @__PURE__ */ new Map(), u = [];
747
+ function It(e, t) {
748
+ let n = performance.now(), r = performance.now(), i = Nt(e), a = performance.now() - r, o = performance.now(), s = new Map(e.blocks.map((e) => [e.id, e])), c = At(e.blocks), l = /* @__PURE__ */ new Map(), u = [];
744
749
  for (let t of e.blocks) {
745
- let e = Et(t);
750
+ let e = Ot(t);
746
751
  e.length > 0 && (u = e), l.set(t.id, u);
747
752
  }
748
- let d = performance.now() - o, f = performance.now(), p = ee(), m = g(e.directiveText, t === void 0 ? void 0 : p), h = performance.now() - f, _ = performance.now(), v = m.map((t) => {
749
- let n = Mt(e, i, t), r = Tt(s, n) ?? wt(e.blocks, t), a = Et(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], u = Nt(e, r, t), d = At(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
753
+ let d = performance.now() - o, f = performance.now(), p = b(), m = le(e.directiveText, t === void 0 ? void 0 : p), h = performance.now() - f, g = performance.now(), _ = m.map((t) => {
754
+ let n = Pt(e, i, t), r = Dt(s, n) ?? Et(e.blocks, t), a = Ot(r), o = a.length > 0 ? a : r?.id === void 0 ? [] : l.get(r.id) ?? [], u = Ft(e, r, t), d = Mt(r?.id === void 0 ? void 0 : c.get(r.id), n, s);
750
755
  return {
751
756
  articleId: e.id,
752
757
  blockId: r?.id,
@@ -764,19 +769,19 @@ function Pt(e, t) {
764
769
  directive: t,
765
770
  ...o.length > 0 ? { targetIds: o } : {}
766
771
  };
767
- }), y = /* @__PURE__ */ new Set(), b = /* @__PURE__ */ new Map(), x = v.flatMap((e) => {
772
+ }), v = /* @__PURE__ */ new Set(), y = /* @__PURE__ */ new Map(), x = _.flatMap((e) => {
768
773
  let t = e.blockId ? s.get(e.blockId) : void 0;
769
774
  if (!t) return [e];
770
- if (y.has(t.id)) return [];
771
- let n = b.get(t.id);
772
- if (n === void 0 && (n = je(t.text, Et(t)), b.set(t.id, n)), !n) {
773
- let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ae(t.text, n.operations.length) : null;
775
+ if (v.has(t.id)) return [];
776
+ let n = y.get(t.id);
777
+ if (n === void 0 && (n = Pe(t.text, Ot(t)), y.set(t.id, n)), !n) {
778
+ let n = e.directive, r = e.targetIds?.length === 1 && n.kind === "compound" ? Ne(t.text, n.operations.length) : null;
774
779
  return [r ? {
775
780
  ...e,
776
781
  sourceAnnotations: r
777
782
  } : e];
778
783
  }
779
- return y.add(t.id), [{
784
+ return v.add(t.id), [{
780
785
  ...e,
781
786
  effects: n.map((t) => ({
782
787
  ...t,
@@ -787,7 +792,7 @@ function Pt(e, t) {
787
792
  }
788
793
  }))
789
794
  }];
790
- }), S = performance.now() - _;
795
+ }), ee = performance.now() - g;
791
796
  return t?.push({
792
797
  actionDirectiveExtraction: p,
793
798
  articleId: e.id,
@@ -796,18 +801,18 @@ function Pt(e, t) {
796
801
  directiveCount: x.length,
797
802
  directiveTextSize: e.directiveText.length,
798
803
  extractActionDirectivesMs: Math.round(h * 10) / 10,
799
- mapDirectivesMs: Math.round(S * 10) / 10,
804
+ mapDirectivesMs: Math.round(ee * 10) / 10,
800
805
  prepareBlockIndexesMs: Math.round(d * 10) / 10,
801
806
  totalMs: Math.round((performance.now() - n) * 10) / 10
802
807
  }), x;
803
808
  }
804
- function Ft(e) {
809
+ function Lt(e) {
805
810
  let t = /* @__PURE__ */ new Map(), n = [], r = /* @__PURE__ */ new Set();
806
811
  for (let i of e) {
807
- let e = ze(i.directive);
812
+ let e = He(i.directive);
808
813
  if (e.length === 0) continue;
809
814
  let a = e.map(({ num: e }) => ({
810
- definitionId: `${i.articleId}:article:${Ie(e)}`,
815
+ definitionId: `${i.articleId}:article:${ze(e)}`,
811
816
  num: e
812
817
  }));
813
818
  t.set(i, a);
@@ -830,13 +835,13 @@ function Ft(e) {
830
835
  definitions: n
831
836
  };
832
837
  }
833
- function It(e, t, n) {
834
- let r = new Map(t.map((e) => [Fe(e.num), e]));
838
+ function Rt(e, t, n) {
839
+ let r = new Map(t.map((e) => [Re(e.num), e]));
835
840
  return e.map((e) => {
836
- let t = n.get(e), i = t?.[0], a = [...Be(e.directive.reference)].map((e) => r.get(Fe(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
841
+ let t = n.get(e), i = t?.[0], a = [...Ue(e.directive.reference)].map((e) => r.get(Re(e))).filter((e) => e !== void 0 && e.definitionId !== i?.definitionId)[0], o = a === void 0 ? void 0 : {
837
842
  definitionId: a.definitionId,
838
843
  num: a.num
839
- }, s = Ve(e.directive), c = (e.targetIds?.length ?? 0) > 0;
844
+ }, s = We(e.directive), c = (e.targetIds?.length ?? 0) > 0;
840
845
  return {
841
846
  ...e,
842
847
  ...i === void 0 ? {} : { createdArticle: i },
@@ -849,7 +854,7 @@ function It(e, t, n) {
849
854
  };
850
855
  });
851
856
  }
852
- function Lt(e) {
857
+ function zt(e) {
853
858
  switch (e.kind) {
854
859
  case "insert_after":
855
860
  case "insert_before": return [e.insertText];
@@ -867,8 +872,8 @@ function Lt(e) {
867
872
  default: return [];
868
873
  }
869
874
  }
870
- function Rt(e) {
871
- return e.flatMap((e) => Lt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
875
+ function Bt(e) {
876
+ return e.flatMap((e) => zt(e.directive).filter((e) => /[«»]/u.test(e)).map((t) => ({
872
877
  code: "nested_french_quote_in_redaction",
873
878
  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.",
874
879
  details: {
@@ -880,18 +885,18 @@ function Rt(e) {
880
885
  }
881
886
  })));
882
887
  }
883
- function zt(e) {
884
- return Lt(e).map((t) => ({
888
+ function Vt(e) {
889
+ return zt(e).map((t) => ({
885
890
  directiveKind: e.kind,
886
891
  text: t
887
892
  }));
888
893
  }
889
- function Bt(e) {
894
+ function Ht(e) {
890
895
  let t = /* @__PURE__ */ new Set();
891
896
  for (let n of e.matchAll(/«[^«»\n]+»/gu)) t.add(n[0]);
892
897
  return Array.from(t);
893
898
  }
894
- function Vt(e, t) {
899
+ function Ut(e, t) {
895
900
  let n = new Map(e.blocks.map((e) => [e.id, e])), r = t.sourceBlockIds ?? e.blocks.map((e) => e.id), i = [], a = 0;
896
901
  for (let e of r) {
897
902
  let t = n.get(e);
@@ -903,11 +908,11 @@ function Vt(e, t) {
903
908
  }
904
909
  return i;
905
910
  }
906
- function Ht(e, t, n) {
911
+ function Wt(e, t, n) {
907
912
  return e.find((e) => t >= e.start && n <= e.stop);
908
913
  }
909
- function Ut(e, t, n) {
910
- let r = Bt(n), i = r.flatMap((t) => {
914
+ function Gt(e, t, n) {
915
+ let r = Ht(n), i = r.flatMap((t) => {
911
916
  for (let n of e.blocks) {
912
917
  let e = n.text.indexOf(t);
913
918
  if (e !== -1) return [{
@@ -926,7 +931,7 @@ function Ut(e, t, n) {
926
931
  e.directiveText
927
932
  ].filter((e) => e !== void 0 && e.length > 0), o = a.find((e) => r.some((t) => e.includes(t))) ?? a[0];
928
933
  if (!o) return [];
929
- let s = Vt(e, t);
934
+ let s = Ut(e, t);
930
935
  if (s.length === 0) return [];
931
936
  let c = [], l = 0;
932
937
  for (let e of r) {
@@ -934,7 +939,7 @@ function Ut(e, t, n) {
934
939
  if (t === -1) continue;
935
940
  let n = t + e.length;
936
941
  l = n;
937
- let r = Ht(s, t, n);
942
+ let r = Wt(s, t, n);
938
943
  r && c.push({
939
944
  blockId: r.block.id,
940
945
  start: t - r.start,
@@ -944,15 +949,15 @@ function Ut(e, t, n) {
944
949
  }
945
950
  return c;
946
951
  }
947
- function Wt(e, t) {
952
+ function Kt(e, t) {
948
953
  let n = new Map(e.map((e) => [e.id, e]));
949
954
  return t.flatMap((e) => {
950
955
  let t = n.get(e.articleId);
951
- return t ? zt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
956
+ return t ? Vt(e.directive).filter(({ text: e }) => /[«»]/u.test(e)).map(({ directiveKind: n, text: r }) => ({
952
957
  articleId: e.articleId,
953
958
  code: "nested_french_quote_in_redaction",
954
959
  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.",
955
- ranges: Ut(t, e, r),
960
+ ranges: Gt(t, e, r),
956
961
  severity: "warning",
957
962
  details: {
958
963
  blockId: e.blockId,
@@ -963,13 +968,36 @@ function Wt(e, t) {
963
968
  })) : [];
964
969
  });
965
970
  }
966
- function Gt(e, t, n, r, i, a, o = !0, s) {
967
- let c = new be("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 = {
971
+ function qt(e, t) {
972
+ let n = new Map(e.flatMap((e) => [...ne(e.blocks.map((e) => e.text))].map(([t, n]) => [e.blocks[t].id, {
973
+ articleId: e.id,
974
+ blockIds: e.blocks.slice(t - 1, n.endIndex + 1).map((e) => e.id),
975
+ ...n
976
+ }])));
977
+ return t.flatMap((e) => {
978
+ let [t, r] = e.sourceBlockIds ?? [], i = n.get(r);
979
+ return !i || i.articleId !== e.articleId || i.blockIds[0] !== t || !i.blockIds.every((t) => e.sourceBlockIds?.includes(t)) || e.directive.kind !== "replace_portion" || !e.directive.replacementText.startsWith(`${i.marker}. - `) ? [] : [{
980
+ articleId: e.articleId,
981
+ code: "subdivision_redaction_quote_outside_citation",
982
+ message: "Ce passage a été interprété avec le numéro de la subdivision à l’intérieur de la citation.",
983
+ details: { interpretedText: `« ${e.directive.replacementText} »` },
984
+ ranges: [{
985
+ blockId: r,
986
+ start: 0,
987
+ stop: i.prefix.length,
988
+ text: i.prefix
989
+ }],
990
+ severity: "warning"
991
+ }];
992
+ });
993
+ }
994
+ function Jt(e, t, n, r, i, a, o = !0, s) {
995
+ let c = new Se("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 = {
968
996
  sourceFormat: e,
969
997
  documentDate: r,
970
998
  html: t,
971
999
  htmlWithLinks: n,
972
- tableOfContents: a ?? c.timeSync("extractTableOfContents", () => y(u), { inputSize: u.length }),
1000
+ tableOfContents: a ?? c.timeSync("extractTableOfContents", () => v(u), { inputSize: u.length }),
973
1001
  articles: i
974
1002
  };
975
1003
  if (!o) {
@@ -985,14 +1013,14 @@ function Gt(e, t, n, r, i, a, o = !0, s) {
985
1013
  directiveTextSize: u.length
986
1014
  }), e;
987
1015
  }
988
- let f = c.timeSync("extractGlobalApplicabilityDate", () => Ke(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
1016
+ let f = c.timeSync("extractGlobalApplicabilityDate", () => Ye(i.map((e) => e.text).join("\n"))), p = [], m = c.timeSync("extractDirectivesFromArticles", () => {
989
1017
  let e = [];
990
1018
  for (let t of i) {
991
- let n = Pt(t, c.enabled ? p : void 0);
1019
+ let n = It(t, c.enabled ? p : void 0);
992
1020
  e.push(...n);
993
1021
  }
994
1022
  return e;
995
- }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Ft(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => It(m, g, h), { count: m.length }), v = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Rt(_), { count: _.length }), b = [...s ?? [], ...v], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => Wt(i, _), { count: _.length }), ee = {
1023
+ }, { count: i.length }), { createdArticlesByDirective: h, definitions: g } = c.timeSync("buildInternalArticleDefinitions", () => Lt(m), { count: m.length }), _ = c.timeSync("attachInternalArticleMetadata", () => Rt(m, g, h), { count: m.length }), y = c.timeSync("collectNestedFrenchQuoteDiagnostics", () => Bt(_), { count: _.length }), b = [...s ?? [], ...y], x = c.timeSync("collectNestedFrenchQuoteAnnotations", () => [...Kt(i, _), ...qt(i, _)], { count: _.length }), ee = {
996
1024
  ...d,
997
1025
  ...f ? { globalApplicabilityDate: f } : {},
998
1026
  ...g.length > 0 ? { internalArticleDefinitions: g } : {},
@@ -1086,18 +1114,18 @@ function Gt(e, t, n, r, i, a, o = !0, s) {
1086
1114
  slowDirectiveArticles: p.toSorted((e, t) => t.totalMs - e.totalMs).slice(0, 10)
1087
1115
  }), ee;
1088
1116
  }
1089
- function Kt(e) {
1117
+ function Yt(e) {
1090
1118
  return { items: e.map((e) => ({
1091
1119
  id: e.id,
1092
1120
  line: e.title ? `${e.label} : ${e.title}` : e.label,
1093
1121
  type: "article"
1094
1122
  })) };
1095
1123
  }
1096
- function qt(e) {
1097
- return Array.from(oe(e)).filter((e) => e.type === "article").map((e) => F(e.line.split(/[::]/u)[0]));
1124
+ function Xt(e) {
1125
+ return Array.from(ce(e)).filter((e) => e.type === "article").map((e) => N(e.line.split(/[::]/u)[0]));
1098
1126
  }
1099
- function Jt(e, t, n, r) {
1100
- let i = ut(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(oe(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? I(e.num) : _(e.html)("p.TCNumArticle").first().attr("id") ?? I(e.label) : e.id), c = o.map((e) => e.id);
1127
+ function Zt(e, t, n, r) {
1128
+ let i = pt(e), a = new Set(Array.from(n.matchAll(/\s+id=(?:"([^"]+)"|'([^']+)')/gu), (e) => e[1] ?? e[2])), o = Array.from(ce(t)).filter((e) => e.type === "article"), s = e.map((e) => r === "akoma-ntoso" ? e.num ? P(e.num) : C(e.html)("p.TCNumArticle").first().attr("id") ?? P(e.label) : e.id), c = o.map((e) => e.id);
1101
1129
  (c.length !== s.length || c.some((e, t) => e !== s[t])) && i.push({
1102
1130
  code: "article_toc_source_heading_mismatch",
1103
1131
  message: "The table of contents differs from the parsed article headings",
@@ -1113,8 +1141,8 @@ function Jt(e, t, n, r) {
1113
1141
  });
1114
1142
  return i;
1115
1143
  }
1116
- function Yt(e, t, n) {
1117
- let r = qt(y(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => F(e.label)), a = Kt(e), o = [...n, ...Jt(e, a, t, "assemblee-html")];
1144
+ function Qt(e, t, n) {
1145
+ let r = Xt(v(e.map((e) => e.directiveText).filter(Boolean).join("\n"))), i = e.map((e) => N(e.label)), a = Yt(e), o = [...n, ...Zt(e, a, t, "assemblee-html")];
1118
1146
  if (r.length > 0 && (r.length !== i.length || r.some((e, t) => e !== i[t]))) {
1119
1147
  let t = r.findIndex((e, t) => e !== i[t]);
1120
1148
  o.push({
@@ -1138,24 +1166,24 @@ function Yt(e, t, n) {
1138
1166
  tableOfContents: a
1139
1167
  };
1140
1168
  }
1141
- async function Xt(e, t) {
1142
- let n = new be("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => Zt(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => yt(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => _(i)), o = n.timeSync("extractArticleHeadings", () => ft(a)), s = new Set(o.map((e) => e.id)), c = ot(a).filter((e) => !s.has(I(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1169
+ async function $t(e, t) {
1170
+ let n = new Se("parseAssembleeBillRaw"), r = t.linkedHtml === void 0 ? await n.time("linkAssembleeBillRaw", () => en(e, t)) : void 0, i = n.timeSync("applyArticleAnchorIds", () => St(t.linkedHtml ?? r.linkedHtml), { inputSize: e.length }), a = n.timeSync("cheerioLoadLinkedHtml", () => C(i)), o = n.timeSync("extractArticleHeadings", () => ht(a)), s = new Set(o.map((e) => e.id)), c = lt(a).filter((e) => !s.has(P(e.num ?? e.label))).map((e) => e.label), l = c.length > 0 ? [{
1143
1171
  code: "article_toc_source_heading_mismatch",
1144
1172
  message: "Some structural article headings were not retained",
1145
1173
  details: { discardedCandidates: c }
1146
- }] : [], u = rt(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1147
- let n = ht(a, e, o[t + 1], u), r = _t(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1174
+ }] : [], u = ot(a), d = n.timeSync("extractArticlesAndBlocks", () => o.map((e, t) => {
1175
+ let n = vt(a, e, o[t + 1], u), r = bt(a, e.id, n), i = r.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1148
1176
  return {
1149
1177
  id: e.id,
1150
1178
  label: e.label,
1151
1179
  num: e.num,
1152
1180
  title: e.title,
1153
- text: Qe(a, n),
1154
- html: n.map((e) => Je(a, e)).join("\n"),
1181
+ text: tt(a, n),
1182
+ html: n.map((e) => Ze(a, e)).join("\n"),
1155
1183
  directiveText: i,
1156
1184
  blocks: r
1157
1185
  };
1158
- }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => vt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => Yt(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => Gt("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1186
+ }), { count: o.length }), f = n.timeSync("injectHiddenArticleSummary", () => xt(a.html(), d)), { diagnostics: p, tableOfContents: m } = n.timeSync("buildAssembleeTableOfContents", () => Qt(d, f, l), { count: d.length }), h = n.timeSync("buildParsedDocument", () => Jt("assemblee-html", e, f, t.date, d, m, t.includeDirectiveAnalysis, p));
1159
1187
  return h.diagnostics?.length && process.env.TISSEUSE_WARN_PARSED_BILL_DIAGNOSTICS === "1" && console.warn("Assemblée bill parsing diagnostics", h.diagnostics), n.log({
1160
1188
  articleCount: h.articles.length,
1161
1189
  blockCount: h.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1163,18 +1191,18 @@ async function Xt(e, t) {
1163
1191
  targetDirectiveCount: h.directives.filter((e) => e.targetIds !== void 0).length
1164
1192
  }), h;
1165
1193
  }
1166
- async function Zt(e, t) {
1194
+ async function en(e, t) {
1167
1195
  return {
1168
1196
  sourceFormat: "assemblee-html",
1169
1197
  documentDate: t.date,
1170
1198
  html: e,
1171
- linkedHtml: await et(e, t, t.date)
1199
+ linkedHtml: await rt(e, t, t.date)
1172
1200
  };
1173
1201
  }
1174
- function z(e) {
1202
+ function R(e) {
1175
1203
  return e.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;");
1176
1204
  }
1177
- function Qt(e) {
1205
+ function tn(e) {
1178
1206
  let t = e;
1179
1207
  for (let e = 0; e < 3; e++) {
1180
1208
  let e = t;
@@ -1182,27 +1210,27 @@ function Qt(e) {
1182
1210
  }
1183
1211
  return t;
1184
1212
  }
1185
- function $t(e) {
1213
+ function nn(e) {
1186
1214
  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);
1187
1215
  }
1188
- function B(e) {
1216
+ function z(e) {
1189
1217
  return e.name.replace(/^.*:/u, "");
1190
1218
  }
1191
- function en(e, t) {
1192
- return t.children.map((t) => V(e, t)).filter(Boolean).join("");
1219
+ function rn(e, t) {
1220
+ return t.children.map((t) => B(e, t)).filter(Boolean).join("");
1193
1221
  }
1194
- function tn(e, t) {
1195
- return t.children.map((t) => t.type === "text" && $t(t.data) ? Qt(t.data) : V(e, t)).filter(Boolean).join("");
1222
+ function an(e, t) {
1223
+ return t.children.map((t) => t.type === "text" && nn(t.data) ? tn(t.data) : B(e, t)).filter(Boolean).join("");
1196
1224
  }
1197
- function V(e, t) {
1225
+ function B(e, t) {
1198
1226
  if (t.type === "text") {
1199
1227
  let e = t.data.replace(/\s+\./gu, ".");
1200
- return $t(e) ? Qt(e) : z(e);
1228
+ return nn(e) ? tn(e) : R(e);
1201
1229
  }
1202
- if (!L(t)) return "";
1203
- let n = B(t), r = en(e, t);
1230
+ if (!F(t)) return "";
1231
+ let n = z(t), r = rn(e, t);
1204
1232
  switch (n) {
1205
- case "p": return `<p${H(e, t, [
1233
+ case "p": return `<p${V(e, t, [
1206
1234
  "id",
1207
1235
  "class",
1208
1236
  "align",
@@ -1216,13 +1244,13 @@ function V(e, t) {
1216
1244
  case "u":
1217
1245
  case "sup":
1218
1246
  case "sub":
1219
- case "abbr": return `<${n}${H(e, t, [
1247
+ case "abbr": return `<${n}${V(e, t, [
1220
1248
  "id",
1221
1249
  "class",
1222
1250
  "title",
1223
1251
  "style"
1224
1252
  ])}>${r}</${n}>`;
1225
- case "a": return `<a href="${z(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${H(e, t, [
1253
+ case "a": return `<a href="${R(e(t).attr("href") ?? e(t).attr("target") ?? "#")}"${V(e, t, [
1226
1254
  "id",
1227
1255
  "class",
1228
1256
  "title",
@@ -1233,8 +1261,8 @@ function V(e, t) {
1233
1261
  case "tbody":
1234
1262
  case "tr":
1235
1263
  case "th":
1236
- case "td": return nn(e, t, n, r);
1237
- case "caption": return `<caption${H(e, t, [
1264
+ case "td": return on(e, t, n, r);
1265
+ case "caption": return `<caption${V(e, t, [
1238
1266
  "id",
1239
1267
  "class",
1240
1268
  "align",
@@ -1242,12 +1270,12 @@ function V(e, t) {
1242
1270
  ])}>${r}</caption>`;
1243
1271
  case "num": return `<span class="akn-num">${r}</span> `;
1244
1272
  case "heading": return `<p class="akn-heading">${r}</p>`;
1245
- case "content": return tn(e, t);
1246
- case "alinea": return vn(e, t, "div", "akn-alinea");
1247
- case "article": return vn(e, t, "article", "akn-article");
1273
+ case "content": return an(e, t);
1274
+ case "alinea": return H(e, t, "div", "akn-alinea");
1275
+ case "article": return H(e, t, "article", "akn-article");
1248
1276
  case "blockList":
1249
1277
  case "list": return `<div class="akn-list">${r}</div>`;
1250
- case "item": return vn(e, t, "div", "akn-item");
1278
+ case "item": return H(e, t, "div", "akn-item");
1251
1279
  case "listIntroduction":
1252
1280
  case "listWrapUp":
1253
1281
  case "intro":
@@ -1263,23 +1291,23 @@ function V(e, t) {
1263
1291
  case "book":
1264
1292
  case "tome":
1265
1293
  case "subchapter":
1266
- case "subsection": return vn(e, t, "section", `akn-${n}`);
1294
+ case "subsection": return H(e, t, "section", `akn-${n}`);
1267
1295
  case "crossHeading": return `<p class="akn-cross-heading">${r}</p>`;
1268
1296
  default: return r;
1269
1297
  }
1270
1298
  }
1271
- function H(e, t, n, r = {}) {
1299
+ function V(e, t, n, r = {}) {
1272
1300
  let i = [];
1273
1301
  for (let r of n) {
1274
1302
  if (r === "style") continue;
1275
1303
  let n = e(t).attr(r);
1276
- n !== void 0 && i.push(`${r}="${z(n)}"`);
1304
+ n !== void 0 && i.push(`${r}="${R(n)}"`);
1277
1305
  }
1278
1306
  let a = r.style ?? e(t).attr("style");
1279
- return a && i.push(`style="${z(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1307
+ return a && i.push(`style="${R(a)}"`), i.length > 0 ? ` ${i.join(" ")}` : "";
1280
1308
  }
1281
- function nn(e, t, n, r) {
1282
- return `<${n}${H(e, t, [
1309
+ function on(e, t, n, r) {
1310
+ return `<${n}${V(e, t, [
1283
1311
  "id",
1284
1312
  "class",
1285
1313
  "colspan",
@@ -1292,155 +1320,155 @@ function nn(e, t, n, r) {
1292
1320
  "cellspacing",
1293
1321
  "cellpadding",
1294
1322
  "style"
1295
- ], { style: rn(e, t, n) })}>${r}</${n}>`;
1323
+ ], { style: sn(e, t, n) })}>${r}</${n}>`;
1296
1324
  }
1297
- function rn(e, t, n) {
1325
+ function sn(e, t, n) {
1298
1326
  let r = e(t).attr("style") ?? "";
1299
- return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = an(r, "text-align", "center")), r || void 0;
1327
+ return (n === "td" || n === "th") && /font-weight\s*:\s*bold/iu.test(r) && !/text-align\s*:/iu.test(r) && (r = cn(r, "text-align", "center")), r || void 0;
1300
1328
  }
1301
- function an(e, t, n) {
1329
+ function cn(e, t, n) {
1302
1330
  let r = e.trim();
1303
1331
  return `${r}${r && !r.endsWith(";") ? ";" : ""} ${t}: ${n};`.trim();
1304
1332
  }
1305
- function on(e, t) {
1306
- let n = [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean);
1307
- return n.length === 0 ? "" : `<p class="akn-heading">${z(n.join(" "))}</p>`;
1333
+ function ln(e, t) {
1334
+ let n = [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean);
1335
+ return n.length === 0 ? "" : `<p class="akn-heading">${R(n.join(" "))}</p>`;
1308
1336
  }
1309
- function sn(e, t) {
1337
+ function un(e, t) {
1310
1338
  if (!t) return !1;
1311
- let n = (e) => P(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1312
- return n(P(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1339
+ let n = (e) => M(e).replace(/\s+/gu, " ").replace(/\s*[..]\s*(?=[–—-])/gu, " ").trim();
1340
+ return n(M(e.replace(/<[^>]*>/gu, " ").replace(/&nbsp;/gu, " ").replace(/&#xa0;/giu, " ").replace(/&#x2013;/giu, "–"))).startsWith(n(t));
1313
1341
  }
1314
- function cn(e) {
1315
- let t = z(e);
1342
+ function dn(e) {
1343
+ let t = R(e);
1316
1344
  return `<p data-pastille="${t}" class="pastille"><span aria-label="pastille ${t}">${t}</span></p>`;
1317
1345
  }
1318
- function ln(e, t) {
1319
- return un([dn({
1346
+ function fn(e, t) {
1347
+ return pn([mn({
1320
1348
  content: e,
1321
1349
  pastille: t
1322
1350
  })]);
1323
1351
  }
1324
- function un(e) {
1352
+ function pn(e) {
1325
1353
  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>`;
1326
1354
  }
1327
- function dn({ content: e, pastille: t, style: n, contextClass: r }) {
1328
- let i = n ? ` style="${z(n)}"` : "", a = r ? ` ${z(r)}` : "";
1329
- return `<tr${r ? ` class="${z(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${cn(t)}</div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${a}"${i}>${e}</div></td></tr>`;
1355
+ function mn({ content: e, pastille: t, style: n, contextClass: r }) {
1356
+ let i = n ? ` style="${R(n)}"` : "", a = r ? ` ${R(r)}` : "";
1357
+ return `<tr${r ? ` class="${R(r)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 texte-col-pastille no-right-border"><div class="tableauComparatifCell${a}">${dn(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>`;
1330
1358
  }
1331
- function fn({ content: e, style: t, contextClass: n }) {
1332
- let r = t ? ` style="${z(t)}"` : "", i = n ? ` ${z(n)}` : "";
1333
- return `<tr${n ? ` class="${z(n)} hideable"` : ""}><td style="overflow: hidden; width: 5.0%;" class="texte-col-0 no-right-border"><div class="tableauComparatifCell${i}"><p class="pastille"><br></p></div></td><td style="overflow: hidden; width: 95.0%;" class="texte-col-1 no-right-border"><div class="tableauComparatifCell${i}"${r}>${e}</div></td></tr>`;
1359
+ function hn({ content: e, style: t, contextClass: n }) {
1360
+ let r = t ? ` style="${R(t)}"` : "", i = n ? ` ${R(n)}` : "";
1361
+ return `<tr${n ? ` class="${R(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>`;
1334
1362
  }
1335
- function pn(e, t) {
1363
+ function gn(e, t) {
1336
1364
  return e(t).attr("data:pastille") ?? e(t).attr("pastille");
1337
1365
  }
1338
- function mn(e, t) {
1366
+ function _n(e, t) {
1339
1367
  return e(t).find("alinea[data\\:pastille],alinea[pastille]").length > 0;
1340
1368
  }
1341
- function hn(e, t) {
1342
- return e(t).children().get().filter((e) => L(e) ? B(e) === "content" : !1).map((t) => V(e, t)).filter(Boolean).join("\n");
1369
+ function vn(e, t) {
1370
+ return e(t).children().get().filter((e) => F(e) ? z(e) === "content" : !1).map((t) => B(e, t)).filter(Boolean).join("\n");
1343
1371
  }
1344
- function gn(e, t) {
1372
+ function yn(e, t) {
1345
1373
  let n = [];
1346
1374
  return e(t).children().each((t, r) => {
1347
- if (!L(r)) return;
1348
- let i = B(r);
1349
- i === "num" || i === "heading" || i === "content" || n.push(V(e, r));
1375
+ if (!F(r)) return;
1376
+ let i = z(r);
1377
+ i === "num" || i === "heading" || i === "content" || n.push(B(e, r));
1350
1378
  }), n.filter(Boolean);
1351
1379
  }
1352
- function _n(e, t) {
1353
- let n = [], r = B(t), i = r === "alinea" ? pn(e, t) : void 0, a = hn(e, t), o = yn(e, t, r, i), s = Tn(e, t);
1380
+ function bn(e, t) {
1381
+ let n = [], r = z(t), i = r === "alinea" ? gn(e, t) : void 0, a = vn(e, t), o = xn(e, t, r, i), s = Dn(e, t);
1354
1382
  if (i) {
1355
- let r = [sn(a, P(e(t).children("num").first().text())) ? "" : on(e, t), a].filter(Boolean).join("\n");
1356
- P(r) && n.push(dn({
1383
+ let r = [un(a, M(e(t).children("num").first().text())) ? "" : ln(e, t), a].filter(Boolean).join("\n");
1384
+ M(r) && n.push(mn({
1357
1385
  content: r,
1358
1386
  pastille: i,
1359
1387
  style: o,
1360
1388
  contextClass: s
1361
1389
  }));
1362
- } else a && n.push(fn({
1390
+ } else a && n.push(hn({
1363
1391
  content: a,
1364
1392
  style: o,
1365
1393
  contextClass: s
1366
1394
  }));
1367
1395
  for (let r of e(t).children().get()) {
1368
- if (!L(r)) continue;
1369
- let t = B(r);
1370
- t === "num" || t === "heading" || t === "content" || (t === "alinea" || mn(e, r)) && n.push(..._n(e, r));
1396
+ if (!F(r)) continue;
1397
+ let t = z(r);
1398
+ t === "num" || t === "heading" || t === "content" || (t === "alinea" || _n(e, r)) && n.push(...bn(e, r));
1371
1399
  }
1372
1400
  return n;
1373
1401
  }
1374
- function vn(e, t, n, r) {
1375
- let i = B(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = pn(e, t), s = yn(e, t, i, o), c = [`<${n} ${[
1376
- a ? `id="${z(a)}"` : void 0,
1402
+ function H(e, t, n, r) {
1403
+ let i = z(t), a = e(t).attr("eId") ?? e(t).attr("GUID"), o = gn(e, t), s = xn(e, t, i, o), c = [`<${n} ${[
1404
+ a ? `id="${R(a)}"` : void 0,
1377
1405
  `class="${r}"`,
1378
- o ? `data-pastille="${z(o)}"` : void 0,
1379
- s ? `style="${z(s)}"` : void 0
1406
+ o ? `data-pastille="${R(o)}"` : void 0,
1407
+ s ? `style="${R(s)}"` : void 0
1380
1408
  ].filter((e) => e !== void 0).join(" ")}>`];
1381
1409
  if (i === "part" || i === "title") {
1382
- let r = Sn(e, t, i), a = wn(e, t), o = r ? [fn({
1410
+ let r = wn(e, t, i), a = En(e, t), o = r ? [hn({
1383
1411
  content: r,
1384
1412
  contextClass: a
1385
1413
  })] : [], s = () => {
1386
- o.length !== 0 && (c.push(xn(o)), o = []);
1414
+ o.length !== 0 && (c.push(Cn(o)), o = []);
1387
1415
  };
1388
1416
  return e(t).children().each((t, n) => {
1389
- if (!L(n)) return;
1390
- let r = B(n);
1417
+ if (!F(n)) return;
1418
+ let r = z(n);
1391
1419
  if (!(r === "num" || r === "heading" || r === "content")) {
1392
1420
  if (r === "alinea") {
1393
- o.push(..._n(e, n));
1421
+ o.push(...bn(e, n));
1394
1422
  return;
1395
1423
  }
1396
- s(), c.push(V(e, n));
1424
+ s(), c.push(B(e, n));
1397
1425
  }
1398
1426
  }), s(), c.push(`</${n}>`), c.join("\n");
1399
1427
  }
1400
1428
  if (i === "article") {
1401
- let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = w(r) ?? {
1429
+ let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = h(r) ?? {
1402
1430
  label: r,
1403
1431
  num: r
1404
- }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${z(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${z(a.label)}${i ? ` : ${z(i)}` : ""}</p>`;
1405
- if (mn(e, t)) {
1406
- let r = [fn({
1432
+ }, o = `<p class="TCNumArticle as-text toc-article dispositif" id="${R(`_TocArt${(a.num ?? r).replace(/\s+/gu, "")}`)}">${R(a.label)}${i ? ` : ${R(i)}` : ""}</p>`;
1433
+ if (_n(e, t)) {
1434
+ let r = [hn({
1407
1435
  content: o,
1408
- contextClass: Dn(a.label)
1409
- }), ..._n(e, t)];
1410
- c.push(un(r));
1411
- for (let n of gn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1436
+ contextClass: kn(a.label)
1437
+ }), ...bn(e, t)];
1438
+ c.push(pn(r));
1439
+ for (let n of yn(e, t)) n.includes("akn-pastille-table") || c.push(n);
1412
1440
  return c.push(`</${n}>`), c.join("\n");
1413
1441
  }
1414
1442
  c.push(o);
1415
1443
  }
1416
1444
  let l = [];
1417
1445
  for (let n of ["content", "children"]) e(t).children().each((t, r) => {
1418
- if (!L(r)) return;
1419
- let i = B(r);
1420
- i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || l.push(V(e, r));
1446
+ if (!F(r)) return;
1447
+ let i = z(r);
1448
+ i === "num" || i === "heading" || n === "content" && i !== "content" || n === "children" && i === "content" || l.push(B(e, r));
1421
1449
  });
1422
1450
  let u = l.join("\n");
1423
1451
  if (i !== "article") {
1424
- let n = sn(u, P(e(t).children("num").first().text())) ? "" : on(e, t);
1452
+ let n = un(u, M(e(t).children("num").first().text())) ? "" : ln(e, t);
1425
1453
  n && c.push(n);
1426
1454
  }
1427
- return c.push(o ? ln(u, o) : u), c.push(`</${n}>`), c.join("\n");
1455
+ return c.push(o ? fn(u, o) : u), c.push(`</${n}>`), c.join("\n");
1428
1456
  }
1429
- function yn(e, t, n, r) {
1430
- let i = bn(e(t).attr("style") ?? "", "font-family");
1431
- return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = an(i, "text-align", "center")), i || void 0;
1457
+ function xn(e, t, n, r) {
1458
+ let i = Sn(e(t).attr("style") ?? "", "font-family");
1459
+ return !r && n !== "article" && /font-weight\s*:\s*bold/iu.test(i) && !/text-align\s*:/iu.test(i) && (i = cn(i, "text-align", "center")), i || void 0;
1432
1460
  }
1433
- function bn(e, t) {
1461
+ function Sn(e, t) {
1434
1462
  return e.split(";").map((e) => e.trim()).filter(Boolean).filter((e) => !e.toLowerCase().startsWith(`${t.toLowerCase()}:`)).join(";");
1435
1463
  }
1436
- function xn(e) {
1464
+ function Cn(e) {
1437
1465
  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>`;
1438
1466
  }
1439
- function Sn(e, t, n) {
1440
- let r = P(e(t).children("num").first().text()), i = P(e(t).children("heading").first().text()), a = Cn(n), o = [];
1441
- return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${z(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${z(i)}</span></p>`), o.join("\n");
1467
+ function wn(e, t, n) {
1468
+ let r = M(e(t).children("num").first().text()), i = M(e(t).children("heading").first().text()), a = Tn(n), o = [];
1469
+ return r && o.push(`<p class="${a.num} as-text dispositif"><span aria-label="">${R(r)}</span></p>`), i && o.push(`<p class="${a.heading} as-text dispositif"><span aria-label="">${R(i)}</span></p>`), o.join("\n");
1442
1470
  }
1443
- function Cn(e) {
1471
+ function Tn(e) {
1444
1472
  switch (e) {
1445
1473
  case "part": return {
1446
1474
  num: "TCNumPartie",
@@ -1464,22 +1492,22 @@ function Cn(e) {
1464
1492
  };
1465
1493
  }
1466
1494
  }
1467
- function wn(e, t) {
1468
- let n = En(P(e(t).children("num").first().text()));
1495
+ function En(e, t) {
1496
+ let n = On(M(e(t).children("num").first().text()));
1469
1497
  if (n) return n;
1470
1498
  for (let n of e(t).parents().get()) {
1471
- if (!L(n)) continue;
1472
- let t = B(n);
1499
+ if (!F(n)) continue;
1500
+ let t = z(n);
1473
1501
  if (t !== "title" && t !== "part") continue;
1474
- let r = En(P(e(n).children("num").first().text()));
1502
+ let r = On(M(e(n).children("num").first().text()));
1475
1503
  if (r) return r;
1476
1504
  }
1477
1505
  }
1478
- function Tn(e, t) {
1479
- return wn(e, t);
1506
+ function Dn(e, t) {
1507
+ return En(e, t);
1480
1508
  }
1481
- function En(e) {
1482
- let [t, ...n] = P(e).split(/\s+/u);
1509
+ function On(e) {
1510
+ let [t, ...n] = M(e).split(/\s+/u);
1483
1511
  if (!t || n.length === 0) return;
1484
1512
  let r = t.toLocaleLowerCase("fr-FR");
1485
1513
  if ([
@@ -1489,10 +1517,10 @@ function En(e) {
1489
1517
  "section"
1490
1518
  ].includes(r)) return `${r}-${n.join("_")}`;
1491
1519
  }
1492
- function Dn(e) {
1493
- return `article-${P(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1520
+ function kn(e) {
1521
+ return `article-${M(e).replace(/^Article\s+/iu, "").replace(/\s+/gu, "_")} article`;
1494
1522
  }
1495
- function On(e) {
1523
+ function An(e) {
1496
1524
  switch (e) {
1497
1525
  case "part": return "partie";
1498
1526
  case "book": return "livre";
@@ -1504,11 +1532,11 @@ function On(e) {
1504
1532
  default: return;
1505
1533
  }
1506
1534
  }
1507
- function kn(e, t) {
1508
- return [P(e(t).children("num").first().text()), P(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1535
+ function jn(e, t) {
1536
+ return [M(e(t).children("num").first().text()), M(e(t).children("heading").first().text())].filter(Boolean).join(" ");
1509
1537
  }
1510
- function An(e, t) {
1511
- let n = P(e(t).children("num").first().text()), r = P(e(t).children("heading").first().text()), i = w(n) ?? {
1538
+ function Mn(e, t) {
1539
+ let n = M(e(t).children("num").first().text()), r = M(e(t).children("heading").first().text()), i = h(n) ?? {
1512
1540
  label: n,
1513
1541
  num: n
1514
1542
  };
@@ -1518,24 +1546,24 @@ function An(e, t) {
1518
1546
  type: "article"
1519
1547
  };
1520
1548
  }
1521
- function jn(e, t) {
1549
+ function Nn(e, t) {
1522
1550
  e.items.push(...t.items);
1523
1551
  }
1524
- function Mn(e, t) {
1552
+ function Pn(e, t) {
1525
1553
  let n = { items: [] };
1526
1554
  return e(t).children().each((t, r) => {
1527
- if (!L(r)) return;
1528
- let i = B(r);
1555
+ if (!F(r)) return;
1556
+ let i = z(r);
1529
1557
  if (i === "article") {
1530
- n.items.push(An(e, r));
1558
+ n.items.push(Mn(e, r));
1531
1559
  return;
1532
1560
  }
1533
- let a = On(i);
1561
+ let a = An(i);
1534
1562
  if (!a) {
1535
- jn(n, Mn(e, r));
1563
+ Nn(n, Pn(e, r));
1536
1564
  return;
1537
1565
  }
1538
- let o = kn(e, r), s = Mn(e, r);
1566
+ let o = jn(e, r), s = Pn(e, r);
1539
1567
  !o && s.items.length === 0 || n.items.push({
1540
1568
  ...s,
1541
1569
  id: e(r).attr("eId") ?? e(r).attr("GUID"),
@@ -1544,26 +1572,26 @@ function Mn(e, t) {
1544
1572
  });
1545
1573
  }), n;
1546
1574
  }
1547
- function Nn(e) {
1575
+ function Fn(e) {
1548
1576
  let t = e("body").first().get(0);
1549
- return t === void 0 ? { items: [] } : Mn(e, t);
1577
+ return t === void 0 ? { items: [] } : Pn(e, t);
1550
1578
  }
1551
- function Pn(e) {
1579
+ function In(e) {
1552
1580
  return e("FRBRExpression FRBRdate[name=\"#depot\"]").attr("date") ?? e("FRBRWork FRBRdate[name=\"#presentation\"]").attr("date");
1553
1581
  }
1554
- function Fn(e) {
1582
+ function Ln(e) {
1555
1583
  let t = e("preamble").first(), n = e("body").first(), r = ["<div class=\"akn-bill\">"];
1556
- return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(en(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1557
- L(n) && r.push(B(n) === "article" ? vn(e, n, "article", "akn-article") : V(e, n));
1584
+ return t.length > 0 && (r.push("<section class=\"akn-preamble\">"), r.push(rn(e, t.get(0))), r.push("</section>")), r.push("<section class=\"akn-body\">"), n.children().each((t, n) => {
1585
+ F(n) && r.push(z(n) === "article" ? H(e, n, "article", "akn-article") : B(e, n));
1558
1586
  }), r.push("</section></div>"), r.join("\n");
1559
1587
  }
1560
- function In(e) {
1561
- let t = _(e, { xml: {
1588
+ function Rn(e) {
1589
+ let t = C(e, { xml: {
1562
1590
  decodeEntities: !1,
1563
1591
  lowerCaseTags: !1,
1564
1592
  lowerCaseAttributeNames: !1,
1565
1593
  xmlMode: !0
1566
- } }), n = Pn(t), r = Fn(t);
1594
+ } }), n = In(t), r = Ln(t);
1567
1595
  return {
1568
1596
  sourceFormat: "akoma-ntoso",
1569
1597
  documentDate: n,
@@ -1571,42 +1599,42 @@ function In(e) {
1571
1599
  linkedHtml: r
1572
1600
  };
1573
1601
  }
1574
- function Ln(e) {
1575
- return Rn(_(e));
1602
+ function zn(e) {
1603
+ return Bn(C(e));
1576
1604
  }
1577
- function Rn(e) {
1605
+ function Bn(e) {
1578
1606
  let t = [];
1579
1607
  return e("article.akn-article").each((n, r) => {
1580
- let i = e(r).find("p.TCNumArticle").first().get(0), a = P(i ? e(i).text() : ""), o = w(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = _t(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1608
+ let i = e(r).find("p.TCNumArticle").first().get(0), a = M(i ? e(i).text() : ""), o = h(a) ?? { label: a || `Article ${n + 1}` }, s = e(r).attr("id") ?? `akn-article-${String(n + 1).padStart(3, "0")}`, c = [r], l = bt(e, s, c), u = l.filter((e) => e.kind !== "noise").map((e) => e.text).join("\n");
1581
1609
  t.push({
1582
1610
  id: s,
1583
1611
  label: o.label,
1584
1612
  num: o.num,
1585
1613
  title: o.title,
1586
- text: Qe(e, c),
1587
- html: Je(e, r),
1614
+ text: tt(e, c),
1615
+ html: Ze(e, r),
1588
1616
  directiveText: u,
1589
1617
  blocks: l
1590
1618
  });
1591
1619
  }), t;
1592
1620
  }
1593
- function zn(e) {
1594
- let t = _(e);
1621
+ function Vn(e) {
1622
+ let t = C(e);
1595
1623
  return {
1596
- articles: Rn(t),
1624
+ articles: Bn(t),
1597
1625
  htmlWithLinks: t.html()
1598
1626
  };
1599
1627
  }
1600
- async function Bn(e, t) {
1601
- let n = new be("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => _(e, { xml: {
1628
+ async function Hn(e, t) {
1629
+ let n = new Se("parseAkomaNtosoBillRaw"), r = n.timeSync("cheerioLoadXml", () => C(e, { xml: {
1602
1630
  decodeEntities: !1,
1603
1631
  lowerCaseTags: !1,
1604
1632
  lowerCaseAttributeNames: !1,
1605
1633
  xmlMode: !0
1606
- } })), i = t.date ?? Pn(r), a = n.timeSync("renderAknHtml", () => Fn(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => et(a, {
1634
+ } })), i = t.date ?? In(r), a = n.timeSync("renderAknHtml", () => Ln(r), { inputSize: e.length }), o = t.linkedHtml ?? await n.time("addLinksToRenderedAknHtml", () => rt(a, {
1607
1635
  ...t,
1608
1636
  date: i
1609
- }, i)), s = n.timeSync("extractRenderedAknArticles", () => Ln(a)), c = n.timeSync("injectHiddenArticleSummary", () => vt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => zn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Nn(r)), p = n.timeSync("buildParsedDocument", () => Gt("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, Jt(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1637
+ }, i)), s = n.timeSync("extractRenderedAknArticles", () => zn(a)), c = n.timeSync("injectHiddenArticleSummary", () => xt(o, s)), { articles: l, htmlWithLinks: u } = n.timeSync("extractLinkedAknArticlesAndTaggedHtml", () => Vn(c)), d = l.length > 0 ? l : s, f = n.timeSync("extractAknTableOfContents", () => Fn(r)), p = n.timeSync("buildParsedDocument", () => Jt("akoma-ntoso", a, l.length > 0 ? u : c, i, d, f, t.includeDirectiveAnalysis, Zt(d, f, l.length > 0 ? u : c, "akoma-ntoso")));
1610
1638
  return n.log({
1611
1639
  articleCount: p.articles.length,
1612
1640
  blockCount: p.articles.reduce((e, t) => e + t.blocks.length, 0),
@@ -1614,25 +1642,25 @@ async function Bn(e, t) {
1614
1642
  targetDirectiveCount: p.directives.filter((e) => e.targetIds !== void 0).length
1615
1643
  }), p;
1616
1644
  }
1617
- async function Vn(e, t) {
1618
- let n = In(e), r = t.date ?? n.documentDate;
1645
+ async function Un(e, t) {
1646
+ let n = Rn(e), r = t.date ?? n.documentDate;
1619
1647
  return {
1620
1648
  sourceFormat: "akoma-ntoso",
1621
1649
  documentDate: r,
1622
1650
  html: n.html,
1623
- linkedHtml: await et(n.html, t, r)
1651
+ linkedHtml: await rt(n.html, t, r)
1624
1652
  };
1625
1653
  }
1626
1654
  //#endregion
1627
1655
  //#region src/lib/server/assemblee_document_search.ts
1628
- var Hn = /\bexpos[ée]\s+des\s+motifs\b/giu, Un = /\barticle\s+(?:premier|1er|\d+)/iu;
1629
- function Wn(e) {
1656
+ var Wn = /\bexpos[ée]\s+des\s+motifs\b/giu, Gn = /\barticle\s+(?:premier|1er|\d+)/iu;
1657
+ function Kn(e) {
1630
1658
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
1631
1659
  }
1632
- function Gn(e) {
1633
- let t = Wn(_(e).text()), n = [...t.matchAll(Hn)], r = /* @__PURE__ */ new Set(), i = [];
1660
+ function qn(e) {
1661
+ let t = Kn(C(e).text()), n = [...t.matchAll(Wn)], r = /* @__PURE__ */ new Set(), i = [];
1634
1662
  for (let [e, a] of n.entries()) {
1635
- let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = Un.exec(s), l = Wn(s.slice(0, c?.index ?? s.length));
1663
+ let o = (a.index ?? 0) + a[0].length, s = t.slice(o), c = Gn.exec(s), l = Kn(s.slice(0, c?.index ?? s.length));
1636
1664
  if (l.length < 20 || r.has(l)) continue;
1637
1665
  r.add(l);
1638
1666
  let u = `expose-des-motifs-${e + 1}`;
@@ -1648,8 +1676,8 @@ function Gn(e) {
1648
1676
  }
1649
1677
  return i;
1650
1678
  }
1651
- async function Kn({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1652
- let i = await Xt(t, {
1679
+ async function Jn({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1680
+ let i = await $t(t, {
1653
1681
  date: e,
1654
1682
  includeDirectiveAnalysis: !1,
1655
1683
  linkBaseUrl: n,
@@ -1658,7 +1686,7 @@ async function Kn({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1658
1686
  });
1659
1687
  return {
1660
1688
  items: [...i.articles.map((e) => {
1661
- let t = Wn(e.directiveText || e.text);
1689
+ let t = Kn(e.directiveText || e.text);
1662
1690
  if (t) return {
1663
1691
  anchor: e.id,
1664
1692
  articleNumber: e.num ?? null,
@@ -1668,17 +1696,17 @@ async function Kn({ date: e, html: t, linkBaseUrl: n, linkType: r }) {
1668
1696
  label: e.label,
1669
1697
  title: e.title ?? null
1670
1698
  };
1671
- }).filter((e) => e !== void 0), ...Gn(t)],
1699
+ }).filter((e) => e !== void 0), ...qn(t)],
1672
1700
  tableOfContents: i.tableOfContents
1673
1701
  };
1674
1702
  }
1675
- function qn(e, t) {
1676
- return we("sha256").update(JSON.stringify({
1703
+ function Yn(e, t) {
1704
+ return Ee("sha256").update(JSON.stringify({
1677
1705
  item: e,
1678
1706
  metadata: t
1679
1707
  })).digest("hex");
1680
1708
  }
1681
- function Jn(e) {
1709
+ function Xn(e) {
1682
1710
  if (typeof e != "object" || !e) return;
1683
1711
  let t = e.cycleDeVie?.chrono;
1684
1712
  if (t !== void 0) for (let e of [
@@ -1693,11 +1721,11 @@ function Jn(e) {
1693
1721
  }
1694
1722
  //#endregion
1695
1723
  //#region src/lib/server/senat_amendment_search.ts
1696
- function Yn(e) {
1697
- return e?.trim() ? _(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1724
+ function Zn(e) {
1725
+ return e?.trim() ? C(e).text().replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim() : "";
1698
1726
  }
1699
- function Xn({ dispositifHtml: e, objetHtml: t }) {
1700
- let n = Yn(e), r = Yn(t);
1727
+ function Qn({ dispositifHtml: e, objetHtml: t }) {
1728
+ let n = Zn(e), r = Zn(t);
1701
1729
  return [...n ? [{
1702
1730
  content: n,
1703
1731
  itemKind: "dispositif",
@@ -1708,8 +1736,8 @@ function Xn({ dispositifHtml: e, objetHtml: t }) {
1708
1736
  label: "Objet"
1709
1737
  }] : []];
1710
1738
  }
1711
- function Zn(e, t) {
1712
- return we("sha256").update(JSON.stringify({
1739
+ function $n(e, t) {
1740
+ return Ee("sha256").update(JSON.stringify({
1713
1741
  item: e,
1714
1742
  metadata: t
1715
1743
  })).digest("hex");
@@ -1723,76 +1751,76 @@ function U(e, t) {
1723
1751
  type: "amendment_action_directive"
1724
1752
  };
1725
1753
  }
1726
- function Qn(e, t) {
1754
+ function er(e, n) {
1727
1755
  return {
1728
1756
  type: e === "start" ? "head_of_target" : "tail_after_target",
1729
- unit: t ? u(t) : "article"
1757
+ unit: n ? t(n) : "article"
1730
1758
  };
1731
1759
  }
1732
- function $n(e) {
1760
+ function tr(e) {
1733
1761
  return e === "start" ? "insert_before" : "insert_after";
1734
1762
  }
1735
- var er = k(D("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), W = E(p, T([D("les?\\s+", { flags: "i" }), c], { value: (e) => e[1] }), c, o), tr = E(T([D("la\\s+fin\\s+de\\s+", { flags: "i" }), W], { value: (e) => {
1736
- let t = e[1];
1763
+ var nr = O(E("[\\s\\S]*?(?=supprimer|substituer|remplacer|ins[eé]rer|compl[eé]ter|r[eé]diger)", { flags: "i" }), { default: "" }), W = T(a, w([E("les?\\s+", { flags: "i" }), te], { value: (e) => e[1] }), te, f), rr = T(w([E("la\\s+fin\\s+de\\s+", { flags: "i" }), W], { value: (e) => {
1764
+ let n = e[1];
1737
1765
  return {
1738
- targetReference: t,
1766
+ targetReference: n,
1739
1767
  targetScope: {
1740
1768
  type: "tail_after_target",
1741
- unit: u(t)
1769
+ unit: t(n)
1742
1770
  }
1743
1771
  };
1744
- } }), T([le], { value: (e) => ({ targetScope: e[0] }) })), G = k(T([
1745
- k(D("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1746
- k(D("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1772
+ } }), w([p], { value: (e) => ({ targetScope: e[0] }) })), G = O(w([
1773
+ O(E("(?:[aà]\\s+la\\s+fin\\s+(?:du|de\\s+la|de\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1774
+ O(E("(?:au\\s+d[eé]but\\s+d(?:u|e\\s+la|e\\s+l['’]?)\\s*)", { flags: "i" }), { default: "" }),
1747
1775
  W,
1748
- k(D("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1776
+ O(E("\\s*,?\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*)?", { flags: "i" }), { default: "" })
1749
1777
  ], { value: (e, t) => ({
1750
1778
  reference: e[2],
1751
1779
  text: t.text()
1752
- }) }), { default: null }), nr = k(D(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${_e})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1780
+ }) }), { default: null }), ir = O(E(`(?:(?:[aà]\\s+)?la\\s+(?:derni(?:ère|ere)|${ye})\\s+occurrence\\s+)`, { flags: "i" }), { default: "" });
1753
1781
  function K(e) {
1754
1782
  return e?.text ?? "";
1755
1783
  }
1756
- function rr(e) {
1757
- return { citation: h(e.position()) };
1784
+ function ar(e) {
1785
+ return { citation: d(e.position()) };
1758
1786
  }
1759
- var q = E(T([C], { value: (e) => ({ citation: e[0] }) }), D("\\S[\\s\\S]*", { value: (e, t) => rr(t) })), ir = D("\\S[\\s\\S]*", { value: (e, t) => rr(t) }), J = D("[^:«“\"]*(?::\\s*)?", { flags: "i" }), ar = D("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1787
+ var q = T(w([c], { value: (e) => ({ citation: e[0] }) }), E("\\S[\\s\\S]*", { value: (e, t) => ar(t) })), or = E("\\S[\\s\\S]*", { value: (e, t) => ar(t) }), J = E("[^:«“\"]*(?::\\s*)?", { flags: "i" }), sr = E("\\S[\\s\\S]*?(?=\\s+par\\s+(?:les?\\s+)?(?:mots?|montants?|taux|références?|mentions?|dates?|années?)\\s*:)", {
1760
1788
  flags: "i",
1761
- value: (e, t) => rr(t)
1762
- }), or = D("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1789
+ value: (e, t) => ar(t)
1790
+ }), cr = E("\\S[\\s\\S]*?(?=\\s+(?:ins[eé]rer|ajouter|supprimer|r[eé]diger)\\b)", {
1763
1791
  flags: "i",
1764
- value: (e, t) => rr(t)
1765
- }), sr = D("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1792
+ value: (e, t) => ar(t)
1793
+ }), lr = E("\\S[\\s\\S]*?(?=\\s*(?:(?:[IVXLCDM]+)\\s*[.\\-–—]+\\s*|\\d+°\\s*|[a-z]\\)\\s*|$))", {
1766
1794
  flags: "i",
1767
- value: (e, t) => rr(t)
1768
- }), cr = E(T([C], { value: (e) => ({ citation: e[0] }) }), ar), lr = E(T([C], { value: (e) => ({ citation: e[0] }) }), sr), ur = T([D(`${f}s?\\s*:?\\s*`, { flags: "i" }), cr], { value: (e) => e[1] }), dr = T([D(`${ce}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), lr], { value: (e) => e[1] }), fr = E(T([C], { value: (e) => ({ citation: e[0] }) }), or), pr = T([
1769
- nr,
1770
- D(`${f}s?\\s*:?\\s*`, { flags: "i" }),
1771
- fr
1772
- ], { value: (e) => e[2] }), mr = T([
1773
- nr,
1774
- D(`${f}s?\\s*:?\\s*`, { flags: "i" }),
1775
- E(T([C], { value: (e) => ({ citation: e[0] }) }), ir)
1795
+ value: (e, t) => ar(t)
1796
+ }), ur = T(w([c], { value: (e) => ({ citation: e[0] }) }), sr), dr = T(w([c], { value: (e) => ({ citation: e[0] }) }), lr), fr = w([E(`${i}s?\\s*:?\\s*`, { flags: "i" }), ur], { value: (e) => e[1] }), pr = w([E(`${m}s?(?: suivant(?:e)?s?)?\\s*:?\\s*`, { flags: "i" }), dr], { value: (e) => e[1] }), mr = T(w([c], { value: (e) => ({ citation: e[0] }) }), cr), hr = w([
1797
+ ir,
1798
+ E(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1799
+ mr
1800
+ ], { value: (e) => e[2] }), gr = w([
1801
+ ir,
1802
+ E(`${i}s?\\s*:?\\s*`, { flags: "i" }),
1803
+ T(w([c], { value: (e) => ({ citation: e[0] }) }), or)
1776
1804
  ], { value: (e) => e[2] });
1777
1805
  function Y(e) {
1778
1806
  return e?.reference;
1779
1807
  }
1780
- var hr = T([er, D("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => U(t, {
1808
+ var _r = w([nr, E("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e, t) => U(t, {
1781
1809
  contextText: e[0],
1782
1810
  kind: "delete_article"
1783
- }) }), gr = T([
1811
+ }) }), vr = w([
1784
1812
  G,
1785
- D("supprimer", { flags: "i" }),
1786
- k(T([A, W], { value: (e) => e[1] }), { default: null }),
1787
- k(T([A, mr], { value: (e) => e[1] }), { default: null })
1813
+ E("supprimer", { flags: "i" }),
1814
+ O(w([k, W], { value: (e) => e[1] }), { default: null }),
1815
+ O(w([k, gr], { value: (e) => e[1] }), { default: null })
1788
1816
  ], { value: (e, t) => U(t, {
1789
1817
  contextText: K(e[0]),
1790
1818
  kind: "delete_portion",
1791
1819
  targetCitation: e[3]?.citation ?? void 0,
1792
1820
  targetReference: e[2] ?? Y(e[0])
1793
- }) }), _r = T([
1821
+ }) }), yr = w([
1794
1822
  G,
1795
- E(D("r[eé]diger\\s+ainsi", { flags: "i" }), D("r[eé]tablir", { flags: "i" })),
1823
+ T(E("r[eé]diger\\s+ainsi", { flags: "i" }), E("r[eé]tablir", { flags: "i" })),
1796
1824
  J,
1797
1825
  q
1798
1826
  ], { value: (e, t) => U(t, {
@@ -1800,76 +1828,76 @@ var hr = T([er, D("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1800
1828
  kind: "rewrite_portion",
1801
1829
  replacementCitation: e[3].citation,
1802
1830
  targetReference: Y(e[0])
1803
- }) }), vr = T([
1831
+ }) }), br = w([
1804
1832
  G,
1805
- E(D("substituer", { flags: "i" }), D("remplacer", { flags: "i" })),
1806
- A,
1807
- nr,
1808
- ur,
1809
- D("\\s*,?\\s*"),
1810
- k(D("par\\s+", { flags: "i" }), { default: "" }),
1811
- dr
1833
+ T(E("substituer", { flags: "i" }), E("remplacer", { flags: "i" })),
1834
+ k,
1835
+ ir,
1836
+ fr,
1837
+ E("\\s*,?\\s*"),
1838
+ O(E("par\\s+", { flags: "i" }), { default: "" }),
1839
+ pr
1812
1840
  ], { value: (e, t) => U(t, {
1813
1841
  contextText: K(e[0]),
1814
1842
  kind: "replace",
1815
1843
  replacementCitation: e[7].citation,
1816
1844
  targetCitation: e[4].citation,
1817
1845
  targetReference: Y(e[0])
1818
- }) }), yr = T([
1846
+ }) }), xr = w([
1819
1847
  G,
1820
- D("substituer", { flags: "i" }),
1821
- A,
1822
- k(D("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1848
+ E("substituer", { flags: "i" }),
1849
+ k,
1850
+ O(E("(?:[aà]|aux?|à la)\\s+", { flags: "i" }), { default: "" }),
1823
1851
  W,
1824
- D("[\\s\\S]*?(?=[«“\"]|$)"),
1852
+ E("[\\s\\S]*?(?=[«“\"]|$)"),
1825
1853
  q
1826
1854
  ], { value: (e, t) => U(t, {
1827
1855
  contextText: K(e[0]),
1828
1856
  kind: "rewrite_portion",
1829
1857
  replacementCitation: e[6].citation,
1830
1858
  targetReference: e[4] ?? Y(e[0])
1831
- }) }), br = T([
1832
- x,
1833
- A,
1834
- D("l['’ ]article", { flags: "i" }),
1835
- D("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1836
- D("ins[eé]rer", { flags: "i" }),
1859
+ }) }), Sr = w([
1860
+ e,
1861
+ k,
1862
+ E("l['’ ]article", { flags: "i" }),
1863
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1864
+ E("ins[eé]rer", { flags: "i" }),
1837
1865
  J,
1838
1866
  q
1839
1867
  ], { value: (e, t) => U(t, {
1840
1868
  contextText: "",
1841
1869
  insertCitation: e[6].citation,
1842
1870
  kind: e[0] === "before" ? "insert_article_before" : "insert_article_after"
1843
- }) }), xr = T([
1844
- x,
1845
- A,
1871
+ }) }), Cr = w([
1872
+ e,
1873
+ k,
1846
1874
  W,
1847
- D("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1848
- E(D("ins[eé]rer", { flags: "i" }), D("ajouter", { flags: "i" })),
1875
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1876
+ T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1849
1877
  J,
1850
1878
  q
1851
1879
  ], { value: (e, t) => U(t, {
1852
1880
  contextText: "",
1853
1881
  insertCitation: e[6].citation,
1854
- kind: s(e[0]),
1882
+ kind: S(e[0]),
1855
1883
  targetReference: e[2]
1856
- }) }), Sr = T([
1857
- x,
1858
- A,
1859
- D("l['’ ]alin[eé]a", { flags: "i" }),
1860
- D("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1861
- D("ins[eé]rer", { flags: "i" }),
1884
+ }) }), wr = w([
1885
+ e,
1886
+ k,
1887
+ E("l['’ ]alin[eé]a", { flags: "i" }),
1888
+ E("[\\s\\S]*?(?=ins[eé]rer)", { flags: "i" }),
1889
+ E("ins[eé]rer", { flags: "i" }),
1862
1890
  J,
1863
1891
  q
1864
1892
  ], { value: (e, t) => U(t, {
1865
1893
  contextText: "",
1866
1894
  insertCitation: e[6].citation,
1867
- kind: s(e[0])
1868
- }) }), Cr = T([
1895
+ kind: S(e[0])
1896
+ }) }), Tr = w([
1869
1897
  G,
1870
- n,
1871
- D("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1872
- E(D("ins[eé]rer", { flags: "i" }), D("ajouter", { flags: "i" })),
1898
+ u,
1899
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1900
+ T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1873
1901
  J,
1874
1902
  q
1875
1903
  ], { value: (e, t) => {
@@ -1877,62 +1905,62 @@ var hr = T([er, D("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1877
1905
  return U(t, {
1878
1906
  contextText: K(n),
1879
1907
  insertCitation: e[5].citation,
1880
- kind: $n(i),
1908
+ kind: tr(i),
1881
1909
  targetReference: r,
1882
- targetScope: Qn(i, r)
1910
+ targetScope: er(i, r)
1883
1911
  });
1884
- } }), wr = T([
1912
+ } }), Er = w([
1885
1913
  G,
1886
- x,
1887
- A,
1888
- pr,
1889
- D("[\\s\\S]*?(?=ins[eé]rer)"),
1890
- D("ins[eé]rer", { flags: "i" }),
1891
- A,
1892
- dr
1914
+ e,
1915
+ k,
1916
+ hr,
1917
+ E("[\\s\\S]*?(?=ins[eé]rer)"),
1918
+ E("ins[eé]rer", { flags: "i" }),
1919
+ k,
1920
+ pr
1893
1921
  ], { value: (e, t) => U(t, {
1894
1922
  contextText: K(e[0]),
1895
1923
  insertCitation: e[7].citation,
1896
- kind: s(e[1]),
1924
+ kind: S(e[1]),
1897
1925
  targetCitation: e[3].citation,
1898
1926
  targetReference: Y(e[0])
1899
- }) }), Tr = T([
1927
+ }) }), Dr = w([
1900
1928
  G,
1901
- x,
1902
- A,
1929
+ e,
1930
+ k,
1903
1931
  W,
1904
- D("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1905
- E(D("ins[eé]rer", { flags: "i" }), D("ajouter", { flags: "i" })),
1932
+ E("[\\s\\S]*?(?=ins[eé]rer|ajouter)", { flags: "i" }),
1933
+ T(E("ins[eé]rer", { flags: "i" }), E("ajouter", { flags: "i" })),
1906
1934
  J,
1907
1935
  q
1908
1936
  ], { value: (e, t) => U(t, {
1909
1937
  contextText: K(e[0]),
1910
1938
  insertCitation: e[7].citation,
1911
- kind: s(e[1]),
1939
+ kind: S(e[1]),
1912
1940
  targetReference: Y(e[0]) ?? e[3]
1913
- }) }), Er = E(Cr, br, xr, Sr, yr, T([
1941
+ }) }), Or = T(Tr, Sr, Cr, wr, xr, w([
1914
1942
  G,
1915
- x,
1916
- A,
1917
- pr,
1918
- D("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
1919
- E(T([
1920
- D("supprimer", {
1943
+ e,
1944
+ k,
1945
+ hr,
1946
+ E("[\\s\\S]*?(?=supprimer|r[eé]diger)", { flags: "i" }),
1947
+ T(w([
1948
+ E("supprimer", {
1921
1949
  flags: "i",
1922
1950
  value: "delete_portion"
1923
1951
  }),
1924
- A,
1925
- tr
1952
+ k,
1953
+ rr
1926
1954
  ], { value: (e) => ({
1927
1955
  kind: e[0],
1928
1956
  ...e[2]
1929
- }) }), T([
1930
- D("r[eé]diger\\s+ainsi", {
1957
+ }) }), w([
1958
+ E("r[eé]diger\\s+ainsi", {
1931
1959
  flags: "i",
1932
1960
  value: "rewrite_portion"
1933
1961
  }),
1934
- A,
1935
- tr,
1962
+ k,
1963
+ rr,
1936
1964
  J,
1937
1965
  q
1938
1966
  ], { value: (e) => ({
@@ -1950,24 +1978,24 @@ var hr = T([er, D("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1950
1978
  targetReference: Y(e[0]) ?? n.targetReference,
1951
1979
  targetScope: n.targetScope
1952
1980
  });
1953
- } }), wr, Tr, T([
1954
- er,
1955
- D("ins[eé]rer", { flags: "i" }),
1956
- D(`[\\s\\S]*?(?=${e})`, { flags: "i" }),
1957
- x,
1981
+ } }), Er, Dr, w([
1982
+ nr,
1983
+ E("ins[eé]rer", { flags: "i" }),
1984
+ E(`[\\s\\S]*?(?=${ee})`, { flags: "i" }),
1985
+ e,
1958
1986
  J,
1959
- C,
1987
+ c,
1960
1988
  J,
1961
- C
1989
+ c
1962
1990
  ], { value: (e, t) => U(t, {
1963
1991
  contextText: e[0],
1964
1992
  insertCitation: e[8],
1965
- kind: s(e[3]),
1993
+ kind: S(e[3]),
1966
1994
  targetCitation: e[6]
1967
- }) }), vr, _r, T([
1995
+ }) }), br, yr, w([
1968
1996
  G,
1969
- D("compl[eé]ter", { flags: "i" }),
1970
- k(T([A, W], { value: (e) => e[1] }), { default: null }),
1997
+ E("compl[eé]ter", { flags: "i" }),
1998
+ O(w([k, W], { value: (e) => e[1] }), { default: null }),
1971
1999
  J,
1972
2000
  q
1973
2001
  ], { value: (e, t) => U(t, {
@@ -1975,16 +2003,16 @@ var hr = T([er, D("supprimer\\s+cet\\s+article", { flags: "i" })], { value: (e,
1975
2003
  insertCitation: e[4].citation,
1976
2004
  kind: "insert_after",
1977
2005
  targetReference: e[2] ?? Y(e[0])
1978
- }) }), hr, gr);
2006
+ }) }), _r, vr);
1979
2007
  //#endregion
1980
2008
  //#region src/lib/server/parsed_amendments.ts
1981
- function Dr(e) {
2009
+ function kr(e) {
1982
2010
  return e.replace(/\s+/gu, " ").trim();
1983
2011
  }
1984
- function Or(e) {
1985
- return e.split(/\n/gu).map(Dr).filter(Boolean).join("\n");
2012
+ function Ar(e) {
2013
+ return e.split(/\n/gu).map(kr).filter(Boolean).join("\n");
1986
2014
  }
1987
- function kr(e, t) {
2015
+ function jr(e, t) {
1988
2016
  let { start: n, stop: r } = t;
1989
2017
  for (; n < r && /\s/u.test(e[n]);) n++;
1990
2018
  for (; r > n && /\s/u.test(e[r - 1]);) r--;
@@ -1993,16 +2021,16 @@ function kr(e, t) {
1993
2021
  stop: r
1994
2022
  } : null;
1995
2023
  }
1996
- function Ar(e, t) {
1997
- return de(pe(e), t);
2024
+ function Mr(e, t) {
2025
+ return pe(he(e), t);
1998
2026
  }
1999
- function jr(e) {
2027
+ function Nr(e) {
2000
2028
  return e === "before_article" || e === "on_article" || e === "after_article" ? e : "unknown";
2001
2029
  }
2002
- function Mr(e) {
2030
+ function Pr(e) {
2003
2031
  return {
2004
2032
  articleLabel: e.targetArticleLabel ?? null,
2005
- targetPosition: jr(e.targetPosition),
2033
+ targetPosition: Nr(e.targetPosition),
2006
2034
  alinea: e.targetAlinea ?? null,
2007
2035
  alineaLabel: e.targetAlineaLabel ?? null,
2008
2036
  subdivisionSourceId: e.targetSubdivisionSourceId ?? null,
@@ -2017,36 +2045,36 @@ function X(e) {
2017
2045
  sourceText: e.text
2018
2046
  };
2019
2047
  }
2020
- function Nr(e) {
2048
+ function Fr(e) {
2021
2049
  return {
2022
2050
  ...e.originalTransformation === void 0 ? {} : { sourceOriginalTransformation: e.originalTransformation },
2023
2051
  sourcePosition: e.position,
2024
2052
  sourceText: e.text
2025
2053
  };
2026
2054
  }
2027
- function Pr(e) {
2055
+ function Ir(e) {
2028
2056
  return {
2029
2057
  ...e?.originalTransformation === void 0 ? {} : { dispositifOriginalTransformation: e.originalTransformation },
2030
2058
  ...e === null ? {} : { dispositifPosition: e.position },
2031
2059
  dispositifText: e?.text ?? null
2032
2060
  };
2033
2061
  }
2034
- function Fr(e, t, n, r = Or(e.slice(n.start, n.stop))) {
2062
+ function Lr(e, t, n, r = Ar(e.slice(n.start, n.stop))) {
2035
2063
  return {
2036
- originalTransformation: Ar(t, n),
2064
+ originalTransformation: Mr(t, n),
2037
2065
  position: n,
2038
2066
  text: r
2039
2067
  };
2040
2068
  }
2041
- function Ir(e) {
2069
+ function Rr(e) {
2042
2070
  let t = e.dispositifHtml ?? e.dispositifText;
2043
2071
  if (!t) return null;
2044
- let n = e.dispositifHtml ? me()(t) : ve(t), r = n.output, i = kr(r, {
2072
+ let n = e.dispositifHtml ? ge()(t) : be(t), r = n.output, i = jr(r, {
2045
2073
  start: 0,
2046
2074
  stop: r.length
2047
2075
  });
2048
2076
  return {
2049
- dispositif: i === null ? null : Fr(r, n, i),
2077
+ dispositif: i === null ? null : Lr(r, n, i),
2050
2078
  simplifiedText: r,
2051
2079
  transformation: n
2052
2080
  };
@@ -2063,10 +2091,10 @@ function Z(e) {
2063
2091
  return t === void 0 ? [] : Array.from({ length: e.count }, (e, n) => t + n);
2064
2092
  }
2065
2093
  if (e.type === "exclusion") return Z(e.left);
2066
- for (let t of i(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2094
+ for (let t of s(e)) if (t.type === "alinéa" && typeof t.index == "number" && t.index > 0) return [t.index];
2067
2095
  return [];
2068
2096
  }
2069
- function Lr(e, t) {
2097
+ function zr(e, t) {
2070
2098
  let n = Z(t);
2071
2099
  return {
2072
2100
  ...e,
@@ -2074,11 +2102,11 @@ function Lr(e, t) {
2074
2102
  ...n.length > 0 ? { alineas: n } : {}
2075
2103
  };
2076
2104
  }
2077
- function Rr(e) {
2105
+ function Br(e) {
2078
2106
  return e.replace(/^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*/iu, "").replace(/^\s*(?:\d+°|[a-z]\))\s*/iu, "").trim();
2079
2107
  }
2080
- function zr(e, t) {
2081
- let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(Rr(t.text));
2108
+ function Vr(e, t) {
2109
+ let n = /^alin[eé]as?\s+(?:(\d+)|1er|premier)\b/iu.exec(Br(t.text));
2082
2110
  if (!n) return null;
2083
2111
  let r = n[1] === void 0 ? 1 : Number.parseInt(n[1], 10);
2084
2112
  return !Number.isFinite(r) || r < 1 ? null : {
@@ -2087,25 +2115,25 @@ function zr(e, t) {
2087
2115
  alineas: [r]
2088
2116
  };
2089
2117
  }
2090
- function Br(e, t) {
2118
+ function Hr(e, t) {
2091
2119
  if (e) return e.unit === "article" && t.alinea !== null ? {
2092
2120
  ...e,
2093
2121
  unit: "alinéa"
2094
2122
  } : e;
2095
2123
  }
2096
- function Vr(e) {
2097
- return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(Rr(e.text));
2124
+ function Ur(e) {
2125
+ return /^(?:apr[eè]s|avant|(?:au|a[uù])\s+d[eé]but|(?:a|à)\s+la\s+fin)\b/iu.test(Br(e.text));
2098
2126
  }
2099
- function Hr(e, t, n, r) {
2100
- return Fr(e, t, {
2127
+ function Wr(e, t, n, r) {
2128
+ return Lr(e, t, {
2101
2129
  start: n.position.start,
2102
2130
  stop: r.position.stop
2103
2131
  });
2104
2132
  }
2105
- function Ur(e) {
2133
+ function Gr(e) {
2106
2134
  return /^\s*(?:[IVXLCDM]+)\s*(?:\.\s*)?[-–—]\s*(?!alin[eé]a\b)/iu.test(e.text);
2107
2135
  }
2108
- function Wr(e, t) {
2136
+ function Kr(e, t) {
2109
2137
  let n = { ...t.position };
2110
2138
  function r(t) {
2111
2139
  let r = t.exec(e.slice(n.start, n.stop));
@@ -2114,29 +2142,29 @@ function Wr(e, t) {
2114
2142
  stop: n.stop
2115
2143
  });
2116
2144
  }
2117
- 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), kr(e, n);
2145
+ 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), jr(e, n);
2118
2146
  }
2119
- function Gr(e) {
2120
- return v(e);
2147
+ function qr(e) {
2148
+ return de(e);
2121
2149
  }
2122
- function Kr(e, t) {
2123
- return Er(new O(e.slice(0, t.stop), t.start)) ?? null;
2150
+ function Jr(e, t) {
2151
+ return Or(new D(e.slice(0, t.stop), t.start)) ?? null;
2124
2152
  }
2125
2153
  function Q(e, t, n) {
2126
- if (n) return Fr(e, t, n.position, Or(m(e, n)));
2154
+ if (n) return Lr(e, t, n.position, Ar(g(e, n)));
2127
2155
  }
2128
- function qr(e, t) {
2156
+ function Yr(e, t) {
2129
2157
  if (!e) return;
2130
2158
  let n = structuredClone(e);
2131
- for (let e of a(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Ar(t, e.position));
2159
+ for (let e of l(n, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = Mr(t, e.position));
2132
2160
  return n;
2133
2161
  }
2134
- function Jr(e, t, n, r) {
2135
- let i = Wr(e, n);
2162
+ function Xr(e, t, n, r) {
2163
+ let i = Kr(e, n);
2136
2164
  if (!i) return null;
2137
- let a = Kr(e, i);
2165
+ let a = Jr(e, i);
2138
2166
  if (!a) return null;
2139
- let o = Fr(e, t, i), s = qr(a.targetReference, t), c = Lr(r, s), l = Gr(o.text);
2167
+ let o = Lr(e, t, i), s = Yr(a.targetReference, t), c = zr(r, s), l = qr(o.text);
2140
2168
  if (a.kind === "delete_article") return {
2141
2169
  kind: "delete_article",
2142
2170
  ...X(o),
@@ -2154,7 +2182,7 @@ function Jr(e, t, n, r) {
2154
2182
  },
2155
2183
  targetOccurrence: l,
2156
2184
  targetReference: s,
2157
- targetScope: Br(a.targetScope, c)
2185
+ targetScope: Hr(a.targetScope, c)
2158
2186
  };
2159
2187
  }
2160
2188
  if (a.kind === "rewrite_portion") {
@@ -2171,7 +2199,7 @@ function Jr(e, t, n, r) {
2171
2199
  },
2172
2200
  targetOccurrence: l,
2173
2201
  targetReference: s,
2174
- targetScope: Br(a.targetScope, c),
2202
+ targetScope: Hr(a.targetScope, c),
2175
2203
  replacementCitation: n,
2176
2204
  replacementText: n.text
2177
2205
  };
@@ -2226,19 +2254,19 @@ function Jr(e, t, n, r) {
2226
2254
  targetReference: s,
2227
2255
  insertCitation: n,
2228
2256
  insertText: n.text,
2229
- targetScope: Br(a.targetScope, c)
2257
+ targetScope: Hr(a.targetScope, c)
2230
2258
  };
2231
2259
  }
2232
2260
  return null;
2233
2261
  }
2234
- function Yr(e, t) {
2262
+ function Zr(e, t) {
2235
2263
  let n = [], r = 0, i = 0;
2236
2264
  function a(r) {
2237
- let a = kr(e, {
2265
+ let a = jr(e, {
2238
2266
  start: i,
2239
2267
  stop: r
2240
2268
  });
2241
- a !== null && n.push(Fr(e, t, a));
2269
+ a !== null && n.push(Lr(e, t, a));
2242
2270
  }
2243
2271
  function o(t) {
2244
2272
  let n = Math.max(e.lastIndexOf("\n", t - 1), e.lastIndexOf("\r", t - 1));
@@ -2256,7 +2284,7 @@ function Yr(e, t) {
2256
2284
  continue;
2257
2285
  }
2258
2286
  if (r > 0) continue;
2259
- 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) && Vr({
2287
+ 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) && Ur({
2260
2288
  originalTransformation: void 0,
2261
2289
  position: {
2262
2290
  start: i,
@@ -2268,8 +2296,8 @@ function Yr(e, t) {
2268
2296
  }
2269
2297
  return a(e.length), n;
2270
2298
  }
2271
- function Xr(e) {
2272
- let t = Ir(e), n = t?.dispositif ?? null, r = Pr(n), i = [], a = [], o = Mr(e);
2299
+ function Qr(e) {
2300
+ let t = Rr(e), n = t?.dispositif ?? null, r = Ir(n), i = [], a = [], o = Pr(e);
2273
2301
  if (e.sourceFormat === "senat-ameli" && e.sourceKind === "S") return i.push({
2274
2302
  code: "unsupported_sub_amendment",
2275
2303
  message: "Les sous-amendements ne sont pas encore projetés."
@@ -2287,9 +2315,9 @@ function Xr(e) {
2287
2315
  });
2288
2316
  else {
2289
2317
  let { simplifiedText: e, transformation: r } = t, s = o, c = null;
2290
- for (let t of Yr(e, r)) {
2291
- Ur(t) && (s = o, c = null);
2292
- let n = c ? Hr(e, r, c, t) : t, i = Jr(e, r, n, s);
2318
+ for (let t of Zr(e, r)) {
2319
+ Gr(t) && (s = o, c = null);
2320
+ let n = c ? Wr(e, r, c, t) : t, i = Xr(e, r, n, s);
2293
2321
  if (i) {
2294
2322
  a.push(i), c = null, (i.target.alinea !== null || i.target.alineas) && (s = i.target);
2295
2323
  continue;
@@ -2298,12 +2326,12 @@ function Xr(e) {
2298
2326
  c = n;
2299
2327
  continue;
2300
2328
  }
2301
- let l = zr(o, t);
2329
+ let l = Vr(o, t);
2302
2330
  if (l !== null) {
2303
2331
  s = l;
2304
2332
  continue;
2305
2333
  }
2306
- Vr(t) && (c = t);
2334
+ Ur(t) && (c = t);
2307
2335
  }
2308
2336
  a.length === 0 && (o.targetPosition === "after_article" || o.targetPosition === "before_article") && a.push({
2309
2337
  kind: o.targetPosition === "before_article" ? "insert_article_before" : "insert_article_after",
@@ -2314,7 +2342,7 @@ function Xr(e) {
2314
2342
  }), a.length === 0 && i.push({
2315
2343
  code: "unrecognized_dispositif",
2316
2344
  message: "Le dispositif est présent mais aucune directive d'amendement n'a été reconnue.",
2317
- ...Nr(n)
2345
+ ...Fr(n)
2318
2346
  });
2319
2347
  }
2320
2348
  return {
@@ -2331,8 +2359,8 @@ function Xr(e) {
2331
2359
  function $(e) {
2332
2360
  return e.replace(/\u00a0/gu, " ").replace(/\s+/gu, " ").trim();
2333
2361
  }
2334
- function Zr(e) {
2335
- let t = w(e);
2362
+ function $r(e) {
2363
+ let t = h(e);
2336
2364
  if (!t) return {
2337
2365
  articleNumber: null,
2338
2366
  label: e,
@@ -2345,8 +2373,8 @@ function Zr(e) {
2345
2373
  title: r
2346
2374
  };
2347
2375
  }
2348
- function Qr(e) {
2349
- let t = _(e), n = [], r = $(t("section.akn-preamble").text());
2376
+ function ei(e) {
2377
+ let t = C(e), n = [], r = $(t("section.akn-preamble").text());
2350
2378
  return r && n.push({
2351
2379
  anchor: "senat-expose-des-motifs",
2352
2380
  articleNumber: null,
@@ -2356,7 +2384,7 @@ function Qr(e) {
2356
2384
  label: "Exposé des motifs",
2357
2385
  title: null
2358
2386
  }), t("article.akn-article").each((e, r) => {
2359
- let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = $(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = Zr(o || s), l = i.clone();
2387
+ let i = t(r), a = i.attr("id") || `akn-article-${e + 1}`, o = $(i.children("p.TCNumArticle").first().text()), s = `Article ${e + 1}`, c = $r(o || s), l = i.clone();
2360
2388
  l.children("p.TCNumArticle").remove();
2361
2389
  let u = $(l.text());
2362
2390
  u && n.push({
@@ -2370,40 +2398,40 @@ function Qr(e) {
2370
2398
  });
2371
2399
  }), n;
2372
2400
  }
2373
- function $r(e, t) {
2374
- return we("sha256").update(JSON.stringify({
2401
+ function ti(e, t) {
2402
+ return Ee("sha256").update(JSON.stringify({
2375
2403
  item: e,
2376
2404
  metadata: t
2377
2405
  })).digest("hex");
2378
2406
  }
2379
2407
  //#endregion
2380
2408
  //#region src/lib/server/senat_document_sources.ts
2381
- var ei = new Set(["senat.fr", "www.senat.fr"]), ti = "https://www.senat.fr";
2382
- function ni(e) {
2409
+ var ni = new Set(["senat.fr", "www.senat.fr"]), ri = "https://www.senat.fr";
2410
+ function ii(e) {
2383
2411
  return e?.trim() || void 0;
2384
2412
  }
2385
- function ri(e) {
2413
+ function ai(e) {
2386
2414
  try {
2387
- let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, ti);
2388
- return ei.has(n.hostname.toLowerCase()) ? n : void 0;
2415
+ let t = e.replace(/^\/+/, ""), n = /^https?:\/\//iu.test(e) ? new URL(e) : new URL(/^(?:akomantoso|leg)\//iu.test(t) ? `/${t}` : `/leg/${t}`, ri);
2416
+ return ni.has(n.hostname.toLowerCase()) ? n : void 0;
2389
2417
  } catch {
2390
2418
  return;
2391
2419
  }
2392
2420
  }
2393
- function ii(e) {
2394
- let t = ni(e);
2421
+ function oi(e) {
2422
+ let t = ii(e);
2395
2423
  if (t === void 0) return {
2396
2424
  publicUrl: null,
2397
2425
  status: "no_url"
2398
2426
  };
2399
- let n = ri(t);
2427
+ let n = ai(t);
2400
2428
  if (n === void 0) return {
2401
2429
  publicUrl: t,
2402
2430
  status: "unsupported_source"
2403
2431
  };
2404
2432
  let r = n.pathname;
2405
2433
  if (/^\/akomantoso\/[^/]+\.akn\.xml$/iu.test(r)) return {
2406
- akomaNtosoUrl: `${ti}${r}`,
2434
+ akomaNtosoUrl: `${ri}${r}`,
2407
2435
  publicUrl: n.toString(),
2408
2436
  status: "available"
2409
2437
  };
@@ -2412,17 +2440,17 @@ function ii(e) {
2412
2440
  publicUrl: n.toString(),
2413
2441
  status: "unsupported_source"
2414
2442
  } : {
2415
- akomaNtosoUrl: `${ti}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2443
+ akomaNtosoUrl: `${ri}/akomantoso/${i.replace(/\.html$/iu, ".akn.xml")}`,
2416
2444
  publicUrl: n.toString(),
2417
2445
  status: "available"
2418
2446
  };
2419
2447
  }
2420
- function ai(e) {
2448
+ function si(e) {
2421
2449
  return /^\s*(?:<\?xml\b[^>]*>\s*)?<akomaNtoso[\s/>]/iu.test(e);
2422
2450
  }
2423
2451
  //#endregion
2424
2452
  //#region src/lib/alineas/alineas_numbers.ts
2425
- var oi = {
2453
+ var ci = {
2426
2454
  "0150a855548f15a2af52ea057be53f5d": 1,
2427
2455
  "039826cf379b94afefe90b25c6045ca0": 1,
2428
2456
  "03a7e564b84662f4d957c51018e26244": 1,
@@ -21396,7 +21424,7 @@ var oi = {
21396
21424
  d16d29c923bd60c7b095b66c6058fe60: 1664,
21397
21425
  "1c14c2adf5cfda3220b2057160e10e91": 1665,
21398
21426
  e44c55ca1ac46ff46420686a466c9fc6: 1665
21399
- }, si = "\np:has(.alinea) {\n margin: 0.6em 0;\n}\n.alinea {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 1.5em;\n height: 1.5em;\n padding: 0 0.3em;\n margin-right: 0.3em;\n font-size: 0.75em;\n font-weight: bold;\n color: #555;\n background-color: #f0f0f0;\n border: 1px solid #ccc;\n border-radius: 1em;\n vertical-align: middle;\n}\n", ci = "\nh1 {\n font-size: 1.8em;\n margin: 1em 0 0.5em 0;\n}\nh2 {\n font-size: 1.5em;\n margin: 0.9em 0 0.4em 0;\n}\nh3 {\n font-size: 1.3em;\n margin: 0.8em 0 0.4em 0;\n}\nh4 {\n font-size: 1.15em;\n margin: 0.7em 0 0.3em 0;\n}\nh5 {\n font-size: 1.05em;\n margin: 0.6em 0 0.3em 0;\n}\nh6 {\n font-size: 1em;\n margin: 0.5em 0 0.3em 0;\n}\n", li = "\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", ui = "\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", di = "\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", fi = {
21427
+ }, li = "\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", ui = "\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", di = "\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", fi = "\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", pi = "\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", mi = {
21400
21428
  assnatetatagr: { bold: !0 },
21401
21429
  assnatetatagrgr: { bold: !0 },
21402
21430
  assnatetatatr: { bold: !0 },
@@ -21497,29 +21525,29 @@ var oi = {
21497
21525
  assnatxl67: { align: "center" },
21498
21526
  assnatenteteequilibre: { align: "center" }
21499
21527
  };
21500
- function pi(e) {
21501
- let t = Object.keys(fi).sort((e, t) => t.length - e.length);
21502
- for (let n of t) if (e.includes(n)) return fi[n];
21528
+ function hi(e) {
21529
+ let t = Object.keys(mi).sort((e, t) => t.length - e.length);
21530
+ for (let n of t) if (e.includes(n)) return mi[n];
21503
21531
  return null;
21504
21532
  }
21505
- function mi(e) {
21506
- return Ce.createHash("md5").update(e).digest("hex");
21533
+ function gi(e) {
21534
+ return Te.createHash("md5").update(e).digest("hex");
21507
21535
  }
21508
- function hi(e) {
21536
+ function _i(e) {
21509
21537
  return e ? /font-weight\s*:\s*(bold|[6-9]00|1000)/i.test(e) || /font-family\s*:\s*[^;]*\bBold\b/i.test(e) : !1;
21510
21538
  }
21511
- function gi(e) {
21539
+ function vi(e) {
21512
21540
  return e ? /font-style\s*:\s*italic/i.test(e) || /font-family\s*:\s*[^;]*\bItalic\b/i.test(e) : !1;
21513
21541
  }
21514
- function _i(e) {
21542
+ function yi(e) {
21515
21543
  if (!e || !/vertical-align\s*:\s*super/i.test(e)) return !1;
21516
21544
  let t = e.match(/font-size\s*:\s*([\d.]+)pt/i);
21517
21545
  return !(t && parseFloat(t[1]) < 8);
21518
21546
  }
21519
- function vi(e) {
21547
+ function bi(e) {
21520
21548
  return e ? /vertical-align\s*:\s*sub/i.test(e) : !1;
21521
21549
  }
21522
- function yi(e) {
21550
+ function xi(e) {
21523
21551
  if (!e) return;
21524
21552
  let t = [
21525
21553
  "width",
@@ -21554,15 +21582,15 @@ function yi(e) {
21554
21582
  }
21555
21583
  return n.length > 0 ? n.join("; ") : void 0;
21556
21584
  }
21557
- function bi(e, t) {
21585
+ function Si(e, t) {
21558
21586
  return !!(e && /text-align\s*:\s*center/i.test(e) || t && /center/i.test(t));
21559
21587
  }
21560
- function xi(e) {
21588
+ function Ci(e) {
21561
21589
  if (!e) return null;
21562
21590
  let t = e.match(/text-align\s*:\s*(left|center|right|justify)/i);
21563
21591
  return t ? t[1].toLowerCase() : null;
21564
21592
  }
21565
- function Si(e) {
21593
+ function wi(e) {
21566
21594
  if (!e) return null;
21567
21595
  for (let [t, n] of [
21568
21596
  [/assnat1Tome|assnatAN1PARTIE/i, 1],
@@ -21574,8 +21602,8 @@ function Si(e) {
21574
21602
  ]) if (t.test(e)) return n;
21575
21603
  return null;
21576
21604
  }
21577
- function Ci(e, t = {}) {
21578
- let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = _(e, { xml: { decodeEntities: !1 } });
21605
+ function Ti(e, t = {}) {
21606
+ let { keepAlignment: n = !0, removeEmptyParagraphs: r = !0, strictAlineas: i = !1 } = t, a = C(e, { xml: { decodeEntities: !1 } });
21579
21607
  a("style, script, meta, link").remove(), a(".assnatHeader, .assnatFooter, .assnatHeaderLeft, .assnatHeaderandFooter").remove(), a(".assnatFARSautApres, .assnatFARSautAvant, .assnatFARSautPageNiv0, .assnatFARSautPageNiv1, .assnatFARSautPageNiv1PG").remove(), a(".assnatFARTT08Bleu").each((e, t) => {
21580
21608
  let n = a(t).closest("table");
21581
21609
  n.length > 0 && n.remove();
@@ -21600,7 +21628,7 @@ function Ci(e, t = {}) {
21600
21628
  if (i.length !== 0 && !(n.parents("del").length > 0 || n.find("del img").length > 0) && !(i.parent("del").length > 0)) {
21601
21629
  let e = i.attr();
21602
21630
  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")) {
21603
- let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? mi(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21631
+ let t = (e.src || "").match(/^data:image\/png;base64,(.+)$/), r = t ? gi(t[1]) : void 0, i = r ? ` data-image-hash="${r}"` : "";
21604
21632
  n.replaceWith(`<span class="alinea"${i}></span>`);
21605
21633
  return;
21606
21634
  }
@@ -21619,7 +21647,7 @@ function Ci(e, t = {}) {
21619
21647
  (!r || r === "\xA0") && n.remove();
21620
21648
  }), a("span[style*=\"display:block\"][style*=\"position:absolute\"]:not(.alinea)").remove(), a("del").remove();
21621
21649
  function o(e) {
21622
- let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = hi(n) || r === "b" || r === "strong", o = gi(n) || r === "i" || r === "em", s = _i(n) || r === "sup", c = vi(n) || r === "sub", l = t.attr("class") || "";
21650
+ let t = a(e), n = t.attr("style"), r = e.tagName?.toLowerCase() || "", i = _i(n) || r === "b" || r === "strong", o = vi(n) || r === "i" || r === "em", s = yi(n) || r === "sup", c = bi(n) || r === "sub", l = t.attr("class") || "";
21623
21651
  return /bold/i.test(l) && (i = !0), /strongemphasis/i.test(l) ? i = !0 : /italic|emphasis/i.test(l) && (o = !0), {
21624
21652
  bold: i,
21625
21653
  italic: o,
@@ -21653,7 +21681,7 @@ function Ci(e, t = {}) {
21653
21681
  c = e;
21654
21682
  }
21655
21683
  for (a("p").each((e, t) => {
21656
- let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = Si(i);
21684
+ let r = a(t), i = r.attr("class") || "", o = r.attr("style"), s = wi(i);
21657
21685
  if (i.includes("assnatFARCouvTitreD")) {
21658
21686
  let e = r.html() || "";
21659
21687
  r.replaceWith(`<p class="cover-subtitle">${e}</p>`);
@@ -21686,11 +21714,11 @@ function Ci(e, t = {}) {
21686
21714
  let c = r.text().trim().startsWith("«");
21687
21715
  if (s && !c) {
21688
21716
  let e = a(`<h${s}>${r.html() || ""}</h${s}>`);
21689
- n && bi(o, i) && e.attr("align", "center"), r.replaceWith(e);
21717
+ n && Si(o, i) && e.attr("align", "center"), r.replaceWith(e);
21690
21718
  } else {
21691
- let e = pi(i), t;
21719
+ let e = hi(i), t;
21692
21720
  if (n) {
21693
- let n = xi(o);
21721
+ let n = Ci(o);
21694
21722
  n && n !== "justify" && n !== "left" ? t = n : e?.align && (t = e.align);
21695
21723
  }
21696
21724
  if (r.removeAttr("style").removeAttr("class"), t && r.attr("align", t), e?.bold) {
@@ -21700,7 +21728,7 @@ function Ci(e, t = {}) {
21700
21728
  }
21701
21729
  }), a("h1, h2, h3, h4, h5, h6").each((e, t) => {
21702
21730
  let r = a(t), i = r.attr("style"), o = r.attr("class");
21703
- n && bi(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21731
+ n && Si(i, o) ? (r.removeAttr("style").removeAttr("class"), r.attr("align", "center")) : r.removeAttr("style").removeAttr("class");
21704
21732
  }), a("a").each((e, t) => {
21705
21733
  let n = a(t), r = n.attr("href"), i = n.attr("id"), o = { ...t.attribs || {} };
21706
21734
  for (let e of Object.keys(o)) e !== "href" && e !== "id" && n.removeAttr(e);
@@ -21739,7 +21767,7 @@ function Ci(e, t = {}) {
21739
21767
  }), a("br").each((e, t) => {
21740
21768
  a(t).removeAttr("style").removeAttr("class");
21741
21769
  }), a("table, tr, td, th, thead, tbody, tfoot").each((e, t) => {
21742
- let n = a(t), r = yi(n.attr("style"));
21770
+ let n = a(t), r = xi(n.attr("style"));
21743
21771
  n.removeAttr("style").removeAttr("class"), r && n.attr("style", r);
21744
21772
  }), a("td, th").each((e, t) => {
21745
21773
  let n = a(t), r = n.children();
@@ -21757,17 +21785,17 @@ function Ci(e, t = {}) {
21757
21785
  !isNaN(e) && e > 1 && n.attr("style", `counter-reset: list-counter ${e - 1}`), n.attr("start", r);
21758
21786
  }
21759
21787
  }), a("li").each((e, t) => {
21760
- let n = a(t), r = xi(n.attr("style"));
21788
+ let n = a(t), r = Ci(n.attr("style"));
21761
21789
  n.removeAttr("style").removeAttr("class"), r === "center" && n.attr("style", "text-align: center");
21762
21790
  let i = n.html() || "", o = i.replace(/^(\s|&#xa0;|&#160;|\u00a0)+/, "");
21763
21791
  o !== i && n.html(o);
21764
- }), wi(a), Ti(a, i);
21792
+ }), Ei(a), Di(a, i);
21765
21793
  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 = "";
21766
- m && (h += di), f && (h += ci), p && (h += li), u && (h += si), d && (h += ui);
21794
+ m && (h += pi), f && (h += ui), p && (h += di), u && (h += li), d && (h += fi);
21767
21795
  let g = h ? `<style>${h}</style>\n${l}` : l;
21768
- 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 = Ei(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;
21796
+ 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 = Oi(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;
21769
21797
  }
21770
- function wi(e) {
21798
+ function Ei(e) {
21771
21799
  e("span[id]").each((t, n) => {
21772
21800
  let r = e(n), i = r.attr("id"), a = n.attribs || {}, o = Object.keys(a);
21773
21801
  if (o.length !== 1 || o[0] !== "id") return;
@@ -21790,13 +21818,13 @@ function wi(e) {
21790
21818
  l.trim() === u.trim() && (s.attr("id", i), r.replaceWith(r.html() || ""));
21791
21819
  });
21792
21820
  }
21793
- function Ti(e, t = !1) {
21821
+ function Di(e, t = !1) {
21794
21822
  let n = e("body");
21795
21823
  if (n.length === 0) return;
21796
21824
  let r = n.find("span.alinea[data-image-hash]"), i = -1;
21797
21825
  r.each((n, r) => {
21798
21826
  let a = e(r), o = a.attr("data-image-hash"), s;
21799
- if (o && oi[o] !== void 0 && (s = oi[o]), s === void 0) {
21827
+ if (o && ci[o] !== void 0 && (s = ci[o]), s === void 0) {
21800
21828
  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".`);
21801
21829
  a.remove();
21802
21830
  return;
@@ -21808,11 +21836,11 @@ function Ti(e, t = !1) {
21808
21836
  i = s, a.attr("data-alinea", String(s)), a.text(String(s)), a.removeAttr("data-image-hash");
21809
21837
  });
21810
21838
  }
21811
- function Ei(e) {
21839
+ function Oi(e) {
21812
21840
  let t = e;
21813
21841
  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;
21814
21842
  }
21815
- function Di(e, t = {}) {
21843
+ function ki(e, t = {}) {
21816
21844
  return `<!DOCTYPE html>
21817
21845
  <html lang="fr">
21818
21846
  <head>
@@ -21820,33 +21848,33 @@ function Di(e, t = {}) {
21820
21848
  <title>Document simplifié</title>
21821
21849
  </head>
21822
21850
  <body>
21823
- ${Ci(e, t)}
21851
+ ${Ti(e, t)}
21824
21852
  </body>
21825
21853
  </html>`;
21826
21854
  }
21827
21855
  //#endregion
21828
21856
  //#region src/lib/server/text_parsers/transformers.ts
21829
- function Oi(e, t) {
21857
+ function Ai(e, t) {
21830
21858
  let n = "transformation_", r = {};
21831
- for (let e of j.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21859
+ for (let e of A.readdirSync(t).toSorted()) if (e.startsWith(n) && e.endsWith(".json")) {
21832
21860
  let i = e.slice(15, -5), a = i.split(".").map((e) => parseInt(e) - 1), o = r;
21833
21861
  for (let e of a.slice(1)) {
21834
21862
  let t = o.transformations ??= [];
21835
21863
  for (; e >= t.length;) t.push({});
21836
21864
  o = t[e];
21837
21865
  }
21838
- o.output = j.readFileSync(M.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21839
- let { sourceMap: s, title: c } = j.readJsonSync(M.join(t, e), { encoding: "utf-8" });
21866
+ o.output = A.readFileSync(De.join(t, `${n}${i}.html`), { encoding: "utf-8" });
21867
+ let { sourceMap: s, title: c } = A.readJsonSync(De.join(t, e), { encoding: "utf-8" });
21840
21868
  o.sourceMap = s ?? [], o.title = c;
21841
21869
  }
21842
- return ki(r, e), r;
21870
+ return ji(r, e), r;
21843
21871
  }
21844
- function ki(e, t) {
21845
- if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) ki(n, t), t = n.output;
21872
+ function ji(e, t) {
21873
+ if (e.input = t, e.transformations !== void 0) for (let n of e.transformations) ji(n, t), t = n.output;
21846
21874
  return t;
21847
21875
  }
21848
- function Ai(e, t, n = "1") {
21849
- if (j.ensureDirSync(t), e.transformations === void 0) j.writeJsonSync(M.join(t, `transformation_${n}.json`), {
21876
+ function Mi(e, t, n = "1") {
21877
+ if (A.ensureDirSync(t), e.transformations === void 0) A.writeJsonSync(De.join(t, `transformation_${n}.json`), {
21850
21878
  sourceMap: e.sourceMap,
21851
21879
  title: e.title
21852
21880
  }, {
@@ -21854,24 +21882,24 @@ function Ai(e, t, n = "1") {
21854
21882
  spaces: 2
21855
21883
  });
21856
21884
  else {
21857
- j.writeJsonSync(M.join(t, `transformation_${n}.json`), { title: e.title }, {
21885
+ A.writeJsonSync(De.join(t, `transformation_${n}.json`), { title: e.title }, {
21858
21886
  encoding: "utf-8",
21859
21887
  spaces: 2
21860
21888
  });
21861
- for (let [r, i] of e.transformations.entries()) Ai(i, t, `${n}.${r + 1}`);
21889
+ for (let [r, i] of e.transformations.entries()) Mi(i, t, `${n}.${r + 1}`);
21862
21890
  }
21863
- e.output !== void 0 && j.writeFileSync(M.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21891
+ e.output !== void 0 && A.writeFileSync(De.join(t, `transformation_${n}.html`), e.output, { encoding: "utf-8" });
21864
21892
  }
21865
21893
  //#endregion
21866
21894
  //#region src/lib/server/linkers/html.ts
21867
- 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 }) {
21868
- let _ = t ?? (e === void 0 ? void 0 : new te(e));
21895
+ async function Ni({ 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 }) {
21896
+ let _ = t ?? (e === void 0 ? void 0 : new ae(e));
21869
21897
  if (_ === void 0) throw Error("A Canutes database or legal resolver is required");
21870
- let v = await j.readFile(i, { encoding: "utf-8" }), y;
21871
- a === void 0 ? (y = me({ removeAWithHref: !0 })(v), o !== void 0 && Ai(y, o)) : y = Oi(v, a);
21898
+ let v = await A.readFile(i, { encoding: "utf-8" }), y;
21899
+ a === void 0 ? (y = ge({ removeAWithHref: !0 })(v), o !== void 0 && Mi(y, o)) : y = Ai(v, a);
21872
21900
  let b = [];
21873
21901
  s !== void 0 && b.push("links"), c !== void 0 && b.push("links_or_references"), u !== void 0 && b.push("references");
21874
- let { outputByType: x, referredLegifranceTextCountByCid: ee } = await ie({
21902
+ let { outputByType: x, referredLegifranceTextCountByCid: ee } = await se({
21875
21903
  legiResolver: _,
21876
21904
  date: n,
21877
21905
  defaultTextId: r,
@@ -21888,38 +21916,38 @@ async function ji({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
21888
21916
  s !== void 0 && (S.links = s), c !== void 0 && (S.links_or_references = c), u !== void 0 && (S.references = u);
21889
21917
  for (let [e, t] of Object.entries(x)) {
21890
21918
  let n = S[e];
21891
- n !== void 0 && await j.writeFile(n, t.html, { encoding: "utf-8" });
21919
+ n !== void 0 && await A.writeFile(n, t.html, { encoding: "utf-8" });
21892
21920
  }
21893
- x.links !== void 0 && l !== void 0 && Ai(me()(x.links.html), l), g !== void 0 && await j.writeJson(g, ee, {
21921
+ x.links !== void 0 && l !== void 0 && Mi(ge()(x.links.html), l), g !== void 0 && await A.writeJson(g, ee, {
21894
21922
  encoding: "utf-8",
21895
21923
  spaces: 2
21896
21924
  });
21897
21925
  }
21898
21926
  //#endregion
21899
21927
  //#region src/lib/server/tables_of_contents.ts
21900
- async function Mi(e, t, n, r) {
21901
- let i = Oi(await j.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new O(a), s = await j.readJson(n, { encoding: "utf-8" });
21902
- for await (let e of re({
21928
+ async function Pi(e, t, n, r) {
21929
+ let i = Ai(await A.readFile(e, { encoding: "utf-8" }), t), a = i.output, o = new D(a), s = await A.readJson(n, { encoding: "utf-8" });
21930
+ for await (let e of oe({
21903
21931
  context: o,
21904
21932
  tableOfContents: s,
21905
21933
  transformation: i
21906
21934
  }));
21907
- await j.writeJson(r, s, {
21935
+ await A.writeJson(r, s, {
21908
21936
  encoding: "utf-8",
21909
21937
  spaces: 2
21910
21938
  });
21911
21939
  }
21912
- async function Ni(e, t, n) {
21913
- let r = Oi(await j.readFile(e, { encoding: "utf-8" }), t).output, i = y(r);
21914
- await j.writeJson(n, i, {
21940
+ async function Fi(e, t, n) {
21941
+ let r = Ai(await A.readFile(e, { encoding: "utf-8" }), t).output, i = v(r);
21942
+ await A.writeJson(n, i, {
21915
21943
  encoding: "utf-8",
21916
21944
  spaces: 2
21917
21945
  });
21918
21946
  }
21919
21947
  //#endregion
21920
21948
  //#region src/lib/server/legi/resolvers.ts
21921
- function Pi({ canutesDb: e }) {
21922
- return new te(e);
21949
+ function Ii({ canutesDb: e }) {
21950
+ return new ae(e);
21923
21951
  }
21924
21952
  //#endregion
21925
- export { Se as LegiResolver, ji as addLinksOrReferencesToHtmlFile, Mi as addPositionsToTableOfContentsFile, ye as buildAndInstallTextTitlesInfos, xe as buildTextTitlesInfos, Pi as createLegiResolver, Oe as extractAssembleeAmendmentSearchItems, Gn as extractAssembleeExposesDesMotifs, Xn as extractSenatAmendmentSearchItems, ke as hashAssembleeAmendmentSearchItem, qn as hashAssembleeSearchItem, Zn as hashSenatAmendmentSearchItem, $r as hashSenatSearchItem, ai as isAkomaNtosoXml, Jn as isoDateFromAssembleeDocument, Vn as linkAkomaNtosoBillRaw, Zt as linkAssembleeBillRaw, Bn as parseAkomaNtosoBillRaw, Xr as parseAmendment, Xt as parseAssembleeBillRaw, Kn as parseAssembleeDocumentSearchContent, Qr as parseSenatDocumentSearchContent, Oi as readTransformation, In as renderAkomaNtosoBillRaw, ii as resolveSenatAkomaNtosoSource, Ni as simplifiedHtmlBillFileToTableOfContentsFile, Ci as simplifyWordHtml, Di as simplifyWordHtmlToDocument, Ai as writeTransformation };
21953
+ export { we as LegiResolver, Ni as addLinksOrReferencesToHtmlFile, Pi as addPositionsToTableOfContentsFile, xe as buildAndInstallTextTitlesInfos, Ce as buildTextTitlesInfos, Ii as createLegiResolver, je as extractAssembleeAmendmentSearchItems, qn as extractAssembleeExposesDesMotifs, Qn as extractSenatAmendmentSearchItems, Me as hashAssembleeAmendmentSearchItem, Yn as hashAssembleeSearchItem, $n as hashSenatAmendmentSearchItem, ti as hashSenatSearchItem, si as isAkomaNtosoXml, Xn as isoDateFromAssembleeDocument, Un as linkAkomaNtosoBillRaw, en as linkAssembleeBillRaw, Hn as parseAkomaNtosoBillRaw, Qr as parseAmendment, $t as parseAssembleeBillRaw, Jn as parseAssembleeDocumentSearchContent, ei as parseSenatDocumentSearchContent, Ai as readTransformation, Rn as renderAkomaNtosoBillRaw, oi as resolveSenatAkomaNtosoSource, Fi as simplifiedHtmlBillFileToTableOfContentsFile, Ti as simplifyWordHtml, ki as simplifyWordHtmlToDocument, Mi as writeTransformation };