@tricoteuses/tisseuse 0.14.18 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1298,7 +1298,7 @@ var Ct = o(a([
1298
1298
  }) }), Ht = a([oe, Bt], { value: (e, t) => ({
1299
1299
  ...e[1],
1300
1300
  position: t.position()
1301
- }) }), Ut = a([Bt, b([Ct, o(Ht, Vt)])], { value: (e, t) => gt(e[0], e[1], t.position()) }), Wt = a([zt, b([Ct, o(Ht, Vt)])], { value: (e, t) => gt(e[0], e[1], t.position()) }), Gt = /^article\s+/iu, Kt = /\s*\((?:nouveau|supprimé)\)\s*$/iu, qt = /^(?:(\((?:nouveau|supprimé)\))\s*)?(?:[::]\s*(.+))?$/iu;
1301
+ }) }), Ut = a([Bt, b([Ct, o(Ht, Vt)])], { value: (e, t) => gt(e[0], e[1], t.position()) }), Wt = a([zt, b([Ct, o(Ht, Vt)])], { value: (e, t) => gt(e[0], e[1], t.position()) }), Gt = /^article\s+/iu, Kt = /\s*\((?:nouveau|supprimé|abrogé)\)\s*$/iu, qt = /^(?:(\((?:nouveau|supprimé|abrogé)\))\s*)?(?:[::]\s*(.+))?$/iu;
1302
1302
  function Jt(e) {
1303
1303
  return e.replace(/\u00a0/gu, " ").replace(Kt, "");
1304
1304
  }
@@ -1314,7 +1314,16 @@ function Xt(e) {
1314
1314
  let r = new x(t, n[0].length), i = tn(r);
1315
1315
  if (typeof i != "string") return null;
1316
1316
  let a = r.remaining().trim(), o = qt.exec(a);
1317
- if (a && !o) return null;
1317
+ if (a && !o) {
1318
+ let e = /^(\d+ [A-Z])(?:\s+(\((?:nouveau|supprimé|abrogé)\)))?(?:\s*[::]\s*(.+))?$/u.exec(t.slice(n[0].length));
1319
+ if (!e) return null;
1320
+ let [, r, i, a] = e;
1321
+ return {
1322
+ label: `Article ${r}${i ? ` ${i}` : ""}`,
1323
+ num: r,
1324
+ ...a ? { title: a.trim() } : {}
1325
+ };
1326
+ }
1318
1327
  let s = t.slice(n[0].length, r.offset).trim(), c = o?.[1], l = c ? `${s} ${c}` : s, u = Jt(i), d = o?.[2]?.trim();
1319
1328
  return {
1320
1329
  label: `Article ${l}`,
@@ -1345,18 +1354,15 @@ var Zt = _("annexe|exécution|liminaire|préambule|préliminaire|premier|unique"
1345
1354
  ], { value: (e, t) => t.textFromResults(e) }), Zt), tn = o(a([
1346
1355
  _(String.raw`\d+`),
1347
1356
  S(_("(ème|er|e|r)", { value: "" }), { default: "" }),
1348
- S([
1357
+ S(o(a([
1349
1358
  C,
1350
1359
  fe,
1351
- S([C, _(String.raw`[A-Z]`)], {
1360
+ S([C, _(String.raw`[A-Z]+`)], {
1352
1361
  default: "",
1353
1362
  value: (e) => " " + e[1]
1354
1363
  })
1355
- ], {
1356
- default: "",
1357
- value: (e) => " " + e[1].text + e[2]
1358
- }),
1359
- S(_(String.raw` \(nouveau\)`, { flags: "i" }), { default: "" })
1364
+ ], { value: (e) => " " + e[1].text + e[2] }), a([C, _(String.raw`[A-Z]+`)], { value: (e) => " " + e[1] })), { default: "" }),
1365
+ S(_(String.raw` \((?:nouveau|supprimé|abrogé)\)`, { flags: "i" }), { default: "" })
1360
1366
  ], { value: (e, t) => t.textFromResults(e) }), Zt), nn = a([a([_(String.raw`^art\. `, { flags: "im" }), en], { value: (e, t) => ({
1361
1367
  definition: !0,
1362
1368
  num: e[1],
@@ -5201,52 +5207,52 @@ function Zc(e) {
5201
5207
  }
5202
5208
  //#endregion
5203
5209
  //#region ../../node_modules/parse5/node_modules/entities/dist/esm/decode.js
5204
- var W;
5210
+ var Qc;
5205
5211
  (function(e) {
5206
5212
  e[e.NUM = 35] = "NUM", e[e.SEMI = 59] = "SEMI", e[e.EQUALS = 61] = "EQUALS", e[e.ZERO = 48] = "ZERO", e[e.NINE = 57] = "NINE", e[e.LOWER_A = 97] = "LOWER_A", e[e.LOWER_F = 102] = "LOWER_F", e[e.LOWER_X = 120] = "LOWER_X", e[e.LOWER_Z = 122] = "LOWER_Z", e[e.UPPER_A = 65] = "UPPER_A", e[e.UPPER_F = 70] = "UPPER_F", e[e.UPPER_Z = 90] = "UPPER_Z";
5207
- })(W ||= {});
5208
- var Qc = 32, $c;
5213
+ })(Qc ||= {});
5214
+ var $c = 32, el;
5209
5215
  (function(e) {
5210
5216
  e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.BRANCH_LENGTH = 16256] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE";
5211
- })($c ||= {});
5212
- function el(e) {
5213
- return e >= W.ZERO && e <= W.NINE;
5214
- }
5217
+ })(el ||= {});
5215
5218
  function tl(e) {
5216
- return e >= W.UPPER_A && e <= W.UPPER_F || e >= W.LOWER_A && e <= W.LOWER_F;
5219
+ return e >= Qc.ZERO && e <= Qc.NINE;
5217
5220
  }
5218
5221
  function nl(e) {
5219
- return e >= W.UPPER_A && e <= W.UPPER_Z || e >= W.LOWER_A && e <= W.LOWER_Z || el(e);
5222
+ return e >= Qc.UPPER_A && e <= Qc.UPPER_F || e >= Qc.LOWER_A && e <= Qc.LOWER_F;
5220
5223
  }
5221
5224
  function rl(e) {
5222
- return e === W.EQUALS || nl(e);
5225
+ return e >= Qc.UPPER_A && e <= Qc.UPPER_Z || e >= Qc.LOWER_A && e <= Qc.LOWER_Z || tl(e);
5226
+ }
5227
+ function il(e) {
5228
+ return e === Qc.EQUALS || rl(e);
5223
5229
  }
5224
- var il;
5230
+ var W;
5225
5231
  (function(e) {
5226
5232
  e[e.EntityStart = 0] = "EntityStart", e[e.NumericStart = 1] = "NumericStart", e[e.NumericDecimal = 2] = "NumericDecimal", e[e.NumericHex = 3] = "NumericHex", e[e.NamedEntity = 4] = "NamedEntity";
5227
- })(il ||= {});
5233
+ })(W ||= {});
5228
5234
  var al;
5229
5235
  (function(e) {
5230
5236
  e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute";
5231
5237
  })(al ||= {});
5232
5238
  var ol = class {
5233
5239
  constructor(e, t, n) {
5234
- this.decodeTree = e, this.emitCodePoint = t, this.errors = n, this.state = il.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = al.Strict;
5240
+ this.decodeTree = e, this.emitCodePoint = t, this.errors = n, this.state = W.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = al.Strict;
5235
5241
  }
5236
5242
  startEntity(e) {
5237
- this.decodeMode = e, this.state = il.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1;
5243
+ this.decodeMode = e, this.state = W.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1;
5238
5244
  }
5239
5245
  write(e, t) {
5240
5246
  switch (this.state) {
5241
- case il.EntityStart: return e.charCodeAt(t) === W.NUM ? (this.state = il.NumericStart, this.consumed += 1, this.stateNumericStart(e, t + 1)) : (this.state = il.NamedEntity, this.stateNamedEntity(e, t));
5242
- case il.NumericStart: return this.stateNumericStart(e, t);
5243
- case il.NumericDecimal: return this.stateNumericDecimal(e, t);
5244
- case il.NumericHex: return this.stateNumericHex(e, t);
5245
- case il.NamedEntity: return this.stateNamedEntity(e, t);
5247
+ case W.EntityStart: return e.charCodeAt(t) === Qc.NUM ? (this.state = W.NumericStart, this.consumed += 1, this.stateNumericStart(e, t + 1)) : (this.state = W.NamedEntity, this.stateNamedEntity(e, t));
5248
+ case W.NumericStart: return this.stateNumericStart(e, t);
5249
+ case W.NumericDecimal: return this.stateNumericDecimal(e, t);
5250
+ case W.NumericHex: return this.stateNumericHex(e, t);
5251
+ case W.NamedEntity: return this.stateNamedEntity(e, t);
5246
5252
  }
5247
5253
  }
5248
5254
  stateNumericStart(e, t) {
5249
- return t >= e.length ? -1 : (e.charCodeAt(t) | Qc) === W.LOWER_X ? (this.state = il.NumericHex, this.consumed += 1, this.stateNumericHex(e, t + 1)) : (this.state = il.NumericDecimal, this.stateNumericDecimal(e, t));
5255
+ return t >= e.length ? -1 : (e.charCodeAt(t) | $c) === Qc.LOWER_X ? (this.state = W.NumericHex, this.consumed += 1, this.stateNumericHex(e, t + 1)) : (this.state = W.NumericDecimal, this.stateNumericDecimal(e, t));
5250
5256
  }
5251
5257
  addToNumericResult(e, t, n, r) {
5252
5258
  if (t !== n) {
@@ -5258,7 +5264,7 @@ var ol = class {
5258
5264
  let n = t;
5259
5265
  for (; t < e.length;) {
5260
5266
  let r = e.charCodeAt(t);
5261
- if (el(r) || tl(r)) t += 1;
5267
+ if (tl(r) || nl(r)) t += 1;
5262
5268
  else return this.addToNumericResult(e, n, t, 16), this.emitNumericEntity(r, 3);
5263
5269
  }
5264
5270
  return this.addToNumericResult(e, n, t, 16), -1;
@@ -5267,7 +5273,7 @@ var ol = class {
5267
5273
  let n = t;
5268
5274
  for (; t < e.length;) {
5269
5275
  let r = e.charCodeAt(t);
5270
- if (el(r)) t += 1;
5276
+ if (tl(r)) t += 1;
5271
5277
  else return this.addToNumericResult(e, n, t, 10), this.emitNumericEntity(r, 2);
5272
5278
  }
5273
5279
  return this.addToNumericResult(e, n, t, 10), -1;
@@ -5275,17 +5281,17 @@ var ol = class {
5275
5281
  emitNumericEntity(e, t) {
5276
5282
  var n;
5277
5283
  if (this.consumed <= t) return (n = this.errors) == null || n.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
5278
- if (e === W.SEMI) this.consumed += 1;
5284
+ if (e === Qc.SEMI) this.consumed += 1;
5279
5285
  else if (this.decodeMode === al.Strict) return 0;
5280
- return this.emitCodePoint(Zc(this.result), this.consumed), this.errors && (e !== W.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
5286
+ return this.emitCodePoint(Zc(this.result), this.consumed), this.errors && (e !== Qc.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
5281
5287
  }
5282
5288
  stateNamedEntity(e, t) {
5283
- let { decodeTree: n } = this, r = n[this.treeIndex], i = (r & $c.VALUE_LENGTH) >> 14;
5289
+ let { decodeTree: n } = this, r = n[this.treeIndex], i = (r & el.VALUE_LENGTH) >> 14;
5284
5290
  for (; t < e.length; t++, this.excess++) {
5285
5291
  let a = e.charCodeAt(t);
5286
- if (this.treeIndex = sl(n, r, this.treeIndex + Math.max(1, i), a), this.treeIndex < 0) return this.result === 0 || this.decodeMode === al.Attribute && (i === 0 || rl(a)) ? 0 : this.emitNotTerminatedNamedEntity();
5287
- if (r = n[this.treeIndex], i = (r & $c.VALUE_LENGTH) >> 14, i !== 0) {
5288
- if (a === W.SEMI) return this.emitNamedEntityData(this.treeIndex, i, this.consumed + this.excess);
5292
+ if (this.treeIndex = sl(n, r, this.treeIndex + Math.max(1, i), a), this.treeIndex < 0) return this.result === 0 || this.decodeMode === al.Attribute && (i === 0 || il(a)) ? 0 : this.emitNotTerminatedNamedEntity();
5293
+ if (r = n[this.treeIndex], i = (r & el.VALUE_LENGTH) >> 14, i !== 0) {
5294
+ if (a === Qc.SEMI) return this.emitNamedEntityData(this.treeIndex, i, this.consumed + this.excess);
5289
5295
  this.decodeMode !== al.Strict && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0);
5290
5296
  }
5291
5297
  }
@@ -5293,26 +5299,26 @@ var ol = class {
5293
5299
  }
5294
5300
  emitNotTerminatedNamedEntity() {
5295
5301
  var e;
5296
- let { result: t, decodeTree: n } = this, r = (n[t] & $c.VALUE_LENGTH) >> 14;
5302
+ let { result: t, decodeTree: n } = this, r = (n[t] & el.VALUE_LENGTH) >> 14;
5297
5303
  return this.emitNamedEntityData(t, r, this.consumed), (e = this.errors) == null || e.missingSemicolonAfterCharacterReference(), this.consumed;
5298
5304
  }
5299
5305
  emitNamedEntityData(e, t, n) {
5300
5306
  let { decodeTree: r } = this;
5301
- return this.emitCodePoint(t === 1 ? r[e] & ~$c.VALUE_LENGTH : r[e + 1], n), t === 3 && this.emitCodePoint(r[e + 2], n), n;
5307
+ return this.emitCodePoint(t === 1 ? r[e] & ~el.VALUE_LENGTH : r[e + 1], n), t === 3 && this.emitCodePoint(r[e + 2], n), n;
5302
5308
  }
5303
5309
  end() {
5304
5310
  var e;
5305
5311
  switch (this.state) {
5306
- case il.NamedEntity: return this.result !== 0 && (this.decodeMode !== al.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
5307
- case il.NumericDecimal: return this.emitNumericEntity(0, 2);
5308
- case il.NumericHex: return this.emitNumericEntity(0, 3);
5309
- case il.NumericStart: return (e = this.errors) == null || e.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
5310
- case il.EntityStart: return 0;
5312
+ case W.NamedEntity: return this.result !== 0 && (this.decodeMode !== al.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
5313
+ case W.NumericDecimal: return this.emitNumericEntity(0, 2);
5314
+ case W.NumericHex: return this.emitNumericEntity(0, 3);
5315
+ case W.NumericStart: return (e = this.errors) == null || e.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
5316
+ case W.EntityStart: return 0;
5311
5317
  }
5312
5318
  }
5313
5319
  };
5314
5320
  function sl(e, t, n, r) {
5315
- let i = (t & $c.BRANCH_LENGTH) >> 7, a = t & $c.JUMP_TABLE;
5321
+ let i = (t & el.BRANCH_LENGTH) >> 7, a = t & el.JUMP_TABLE;
5316
5322
  if (i === 0) return a !== 0 && r === a ? n : -1;
5317
5323
  if (a) {
5318
5324
  let t = r - a;
@@ -10378,45 +10384,109 @@ var Yp = _(String.raw`^« ?([^»\n]+)`, {
10378
10384
  }
10379
10385
  });
10380
10386
  function Zp(e, t) {
10381
- let n = e.indexOf("\n", t);
10382
- return n === -1 ? !1 : /^[ \t]*«/u.test(e.slice(n + 1));
10383
- }
10384
- function Qp(e) {
10385
- return /»[.;]?\s*$/u.exec(e);
10386
- }
10387
- var Z = o((e) => {
10388
- let { input: t } = e, n = e.offset;
10389
- if (t[n] !== "«" || t.indexOf("\n", n) === -1) return;
10390
- let r = n, i = [];
10391
- for (; r < t.length;) {
10392
- let a = t.indexOf("\n", r), o = a === -1 ? t.length : a, s = t.slice(r, o), c = /^[ \t]*« ?/u.exec(s);
10393
- if (c === null) break;
10394
- let l = r + c[0].length, u = o, d = Qp(s), f = Zp(t, o), p = s.slice(c[0].length).includes("«");
10395
- if (d !== null && (!f || !p)) for (u = r + d.index; u > l && /\s/u.test(t[u - 1]);) u--;
10396
- if (i.push({ position: {
10397
- start: l,
10398
- stop: u
10399
- } }), d !== null && !f) return e.length = r + d.index + d[0].length - n, e.usedInputs = t.slice(n, n + e.length), e.offset += e.length, e.length = 0, {
10400
- content: i,
10401
- position: {
10402
- start: n,
10403
- stop: e.offset
10404
- },
10405
- type: "citation"
10406
- };
10407
- if (a === -1) break;
10408
- r = a + 1;
10409
- }
10410
- }, a([b(Yp, {
10411
- min: 1,
10412
- separator: _(String.raw`»?\n`),
10413
- value: (e) => e.map((e, t) => t === 0 ? e : e[1])
10414
- }), _("»")], { value: (e, t) => ({
10415
- content: e[0],
10416
- position: t.position(),
10417
- type: "citation"
10418
- }) }), a([Pe, Xp], { value: (e) => e[1] }));
10387
+ if (t <= 0) return !0;
10388
+ let n = Math.max(e.lastIndexOf("\n", t - 1), e.lastIndexOf("\r", t - 1)) + 1;
10389
+ return e.slice(n, t).trim() === "";
10390
+ }
10391
+ function Qp(e, t, n) {
10392
+ let r = n;
10393
+ for (; r > t && /\s/u.test(e[r - 1]);) r--;
10394
+ return r;
10395
+ }
10419
10396
  function $p(e, t) {
10397
+ return /^[ \t]*« ?/u.exec(e.slice(t))?.[0] ?? null;
10398
+ }
10399
+ function em(e, t, { allowClosingQuoteAsOpening: n = !1, allowUnclosed: r = !1 } = {}) {
10400
+ if (e[t] !== "«" && !(n && e[t] === "»")) return;
10401
+ let i = [], a = 1, o = t + 1;
10402
+ e[o] === " " && o++;
10403
+ for (let n = o; n < e.length; n++) {
10404
+ let s = e[n];
10405
+ if (s === "«") {
10406
+ if (a === 1 && Zp(e, n)) {
10407
+ let t = Qp(e, o, n);
10408
+ i.push({
10409
+ start: o,
10410
+ stop: t
10411
+ });
10412
+ let r = $p(e, n);
10413
+ o = n + (r?.length ?? 1), n = o - 1;
10414
+ continue;
10415
+ }
10416
+ a++;
10417
+ continue;
10418
+ }
10419
+ if (s === "»") {
10420
+ if (a--, a === 0) {
10421
+ let r = Qp(e, o, n);
10422
+ return i.push({
10423
+ start: o,
10424
+ stop: r
10425
+ }), {
10426
+ closed: !0,
10427
+ content: i,
10428
+ position: {
10429
+ start: t,
10430
+ stop: n + 1
10431
+ }
10432
+ };
10433
+ }
10434
+ continue;
10435
+ }
10436
+ if (s === "\n" && a === 1) {
10437
+ let t = $p(e, n + 1);
10438
+ if (t !== null) {
10439
+ let r = Qp(e, o, n);
10440
+ i.push({
10441
+ start: o,
10442
+ stop: r
10443
+ }), o = n + 1 + t.length, n = o - 1;
10444
+ continue;
10445
+ }
10446
+ if (!r) return;
10447
+ }
10448
+ }
10449
+ if (!r) return;
10450
+ let s = Qp(e, o, e.length), c = /\s*«\s*$/u.exec(e.slice(o, s));
10451
+ if (c !== null && (s -= c[0].length), !(s <= o && i.length === 0)) return s > o && i.push({
10452
+ start: o,
10453
+ stop: s
10454
+ }), {
10455
+ closed: !1,
10456
+ content: i,
10457
+ position: {
10458
+ start: t,
10459
+ stop: e.length
10460
+ }
10461
+ };
10462
+ }
10463
+ function tm(e, t) {
10464
+ let n = [], r = 0;
10465
+ for (; r < e.length;) {
10466
+ let i = e.indexOf("«", r), a = t?.allowClosingQuoteAsOpening ? e.indexOf("»", r) : -1, o = i === -1 ? a : a === -1 ? i : Math.min(i, a);
10467
+ if (o === -1) break;
10468
+ let s = em(e, o, t);
10469
+ if (s === void 0) {
10470
+ r = o + 1;
10471
+ continue;
10472
+ }
10473
+ n.push(s), r = Math.max(s.position.stop, o + 1);
10474
+ }
10475
+ return n;
10476
+ }
10477
+ var Z = (e) => {
10478
+ let t = e.offset, n = /^[ \t]*/u.exec(e.remaining())?.[0] ?? "", r = e.offset + n.length, i = em(e.input, r);
10479
+ if (i === void 0) {
10480
+ e.offset = t, e.length = 0, e.usedInputs = void 0;
10481
+ return;
10482
+ }
10483
+ return e.length = i.position.stop - t, e.usedInputs = e.input.slice(t, i.position.stop), e.offset = i.position.stop, e.length = 0, {
10484
+ content: i.content.map((e) => ({ position: e })),
10485
+ position: i.position,
10486
+ type: "citation"
10487
+ };
10488
+ };
10489
+ function nm(e, t) {
10420
10490
  let n = 0, r = t.content[0].position, i = t.content.at(-1).position, a = t.content.map(({ position: t }) => e.input.slice(t.start, t.stop)).join("\n");
10421
10491
  return {
10422
10492
  input: e.text(t.position),
@@ -10447,12 +10517,12 @@ function $p(e, t) {
10447
10517
  title: "Conversion de citation"
10448
10518
  };
10449
10519
  }
10450
- function em(e, t) {
10451
- return $p(new x(e), t).output;
10520
+ function rm(e, t) {
10521
+ return nm(new x(e), t).output;
10452
10522
  }
10453
10523
  //#endregion
10454
10524
  //#region src/lib/text_parsers/legal_text_aliases.ts
10455
- var tm = [
10525
+ var im = [
10456
10526
  {
10457
10527
  cid: "LEGITEXT000025024948",
10458
10528
  nature: "CODE",
@@ -10603,10 +10673,10 @@ var tm = [
10603
10673
  pattern: "(?:comofi|cmf)",
10604
10674
  title: "Code monétaire et financier"
10605
10675
  }
10606
- ], nm = tm.map((e) => ({
10676
+ ], am = im.map((e) => ({
10607
10677
  alias: e,
10608
10678
  regExp: RegExp(`^(?:${e.pattern})$`, "iv")
10609
- })), rm = "cpce", im = {
10679
+ })), om = "cpce", sm = {
10610
10680
  execution: {
10611
10681
  cid: "LEGITEXT000025024948",
10612
10682
  nature: "CODE",
@@ -10617,26 +10687,26 @@ var tm = [
10617
10687
  nature: "CODE",
10618
10688
  title: "Code des postes et des communications électroniques"
10619
10689
  }
10620
- }, am = tm.map(({ cid: e, title: t }) => ({
10690
+ }, cm = im.map(({ cid: e, title: t }) => ({
10621
10691
  cid: e,
10622
10692
  normalizedTitle: t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/gu, "").replace(/\s+/gu, " ").trim()
10623
10693
  }));
10624
- function om(e) {
10625
- let t = e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/gu, "").replace(/\s+/gu, " ").trim(), n = nm.find(({ regExp: e }) => e.test(t));
10694
+ function lm(e) {
10695
+ let t = e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/gu, "").replace(/\s+/gu, " ").trim(), n = am.find(({ regExp: e }) => e.test(t));
10626
10696
  if (n !== void 0) return n.alias.cid;
10627
10697
  let r = t.match(/^(?:le\s+|la\s+|du\s+|de\s+la\s+|de\s+l')?(code\b.+)$/);
10628
10698
  if (r === null || r[1] === void 0) return;
10629
- let i = r[1], a = am.filter(({ normalizedTitle: e }) => e.startsWith(i));
10699
+ let i = r[1], a = cm.filter(({ normalizedTitle: e }) => e.startsWith(i));
10630
10700
  return a.length === 1 ? a[0].cid : void 0;
10631
10701
  }
10632
- new Set([...tm.map(({ cid: e }) => e), ...Object.values(im).map(({ cid: e }) => e)]);
10633
- var sm = [{
10634
- info: im.execution,
10702
+ new Set([...im.map(({ cid: e }) => e), ...Object.values(sm).map(({ cid: e }) => e)]);
10703
+ var um = [{
10704
+ info: sm.execution,
10635
10705
  regExp: /code\s+des?\s+proc[eé]dures?\s+(?:civiles?\s+)?d['’]\s*ex(?:c)?[eé]cution/giu
10636
10706
  }, {
10637
- info: im.postes,
10707
+ info: sm.postes,
10638
10708
  regExp: /code\s+des\s+postes\s+et\s+(?:des?\s+)?communications?\s+[eé]lectroniques?/giu
10639
- }], cm = `(?:${[...tm.map(({ pattern: e }) => `(?:${e})`), rm].join("|")})`, lm = {
10709
+ }], dm = `(?:${[...im.map(({ pattern: e }) => `(?:${e})`), om].join("|")})`, fm = {
10640
10710
  I: {
10641
10711
  cid: "LEGITEXT000006069568",
10642
10712
  nature: "CODE",
@@ -10658,9 +10728,9 @@ var sm = [{
10658
10728
  title: "Code général des impôts, annexe IV"
10659
10729
  }
10660
10730
  };
10661
- function um(e, t) {
10731
+ function pm(e, t) {
10662
10732
  let n = [];
10663
- for (let { info: r, regExp: i } of sm) {
10733
+ for (let { info: r, regExp: i } of um) {
10664
10734
  i.lastIndex = 0;
10665
10735
  for (let a of e.matchAll(i)) a.index <= t.start && n.push({
10666
10736
  index: a.index,
@@ -10669,9 +10739,9 @@ function um(e, t) {
10669
10739
  }
10670
10740
  return n.sort((e, t) => t.index - e.index), n[0]?.info;
10671
10741
  }
10672
- function dm(e, t) {
10673
- if (/^cpce$/iv.test(e)) return t === void 0 ? void 0 : um(t.input, t.position);
10674
- let n = nm.find(({ regExp: t }) => t.test(e))?.alias;
10742
+ function mm(e, t) {
10743
+ if (/^cpce$/iv.test(e)) return t === void 0 ? void 0 : pm(t.input, t.position);
10744
+ let n = am.find(({ regExp: t }) => t.test(e))?.alias;
10675
10745
  if (n === void 0) return;
10676
10746
  let { cid: r, nature: i, title: a } = n;
10677
10747
  return {
@@ -10680,15 +10750,15 @@ function dm(e, t) {
10680
10750
  title: a
10681
10751
  };
10682
10752
  }
10683
- function fm(e, t) {
10753
+ function hm(e, t) {
10684
10754
  return e.cid === "LEGITEXT000006070716" && t !== void 0 && /^[LR]\d/u.test(t) ? {
10685
- ...im.execution,
10755
+ ...sm.execution,
10686
10756
  position: e.position,
10687
10757
  type: "texte"
10688
10758
  } : e;
10689
10759
  }
10690
- function pm(e, t, n) {
10691
- let r = dm(e, n === void 0 ? void 0 : {
10760
+ function gm(e, t, n) {
10761
+ let r = mm(e, n === void 0 ? void 0 : {
10692
10762
  input: n,
10693
10763
  position: t
10694
10764
  });
@@ -10698,39 +10768,39 @@ function pm(e, t, n) {
10698
10768
  type: "texte"
10699
10769
  };
10700
10770
  }
10701
- var mm = o(...tm.map(({ pattern: e }) => _(`${e}(?=$|\\P{Alphabetic})`, {
10771
+ var _m = o(...im.map(({ pattern: e }) => _(`${e}(?=$|\\P{Alphabetic})`, {
10702
10772
  flags: "iv",
10703
- value: (e, t) => pm(e[0], t.position(), t.input)
10704
- })), _(`${rm}(?=$|\\P{Alphabetic})`, {
10773
+ value: (e, t) => gm(e[0], t.position(), t.input)
10774
+ })), _(`${om}(?=$|\\P{Alphabetic})`, {
10705
10775
  flags: "iv",
10706
- value: (e, t) => pm(e[0], t.position(), t.input)
10776
+ value: (e, t) => gm(e[0], t.position(), t.input)
10707
10777
  }));
10708
10778
  //#endregion
10709
10779
  //#region src/lib/text_parsers/doctrinal_references.ts
10710
- function hm(e, t) {
10780
+ function vm(e, t) {
10711
10781
  let n = e.indices?.groups?.[t];
10712
10782
  return n === void 0 ? void 0 : {
10713
10783
  start: n[0],
10714
10784
  stop: n[1]
10715
10785
  };
10716
10786
  }
10717
- function gm(e) {
10787
+ function ym(e) {
10718
10788
  let t = e.match(/^(?<article>.*\d(?:[\p{L}\d-]*))\s+(?<subdivision>[IVXLCDM]+(?:\s+(?:bis|ter|quater))?|\d+\s*(?:°|º|er|e|ème))$/iu)?.groups?.article?.trim() ?? e;
10719
10789
  return {
10720
10790
  num: Yt(t),
10721
10791
  parsedArticleText: t
10722
10792
  };
10723
10793
  }
10724
- function _m(e, t) {
10794
+ function bm(e, t) {
10725
10795
  let n = e.groups?.article?.trim(), r = e.groups?.text;
10726
10796
  if (n === void 0 || r === void 0) return;
10727
- let i = hm(e, "articleKeyword");
10797
+ let i = vm(e, "articleKeyword");
10728
10798
  if (i === void 0 && !/^(?:(?:L\.?\s*O|[LRDA])\*?\.?\s*)\d/iu.test(n)) return;
10729
- let { num: a, parsedArticleText: o } = gm(n), s = hm(e, "article"), c = hm(e, "text");
10799
+ let { num: a, parsedArticleText: o } = ym(n), s = vm(e, "article"), c = vm(e, "text");
10730
10800
  if (a === void 0 || s === void 0 || c === void 0) return;
10731
- let l = pm(r, c, t.input);
10801
+ let l = gm(r, c, t.input);
10732
10802
  if (l === void 0) return;
10733
- let u = fm(l, a), d = {
10803
+ let u = hm(l, a), d = {
10734
10804
  num: a,
10735
10805
  position: {
10736
10806
  start: i?.start ?? s.start,
@@ -10748,17 +10818,17 @@ function _m(e, t) {
10748
10818
  type: "parent-enfant"
10749
10819
  };
10750
10820
  }
10751
- var vm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10821
+ var xm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10752
10822
  flags: "i",
10753
10823
  value: (e, t) => {
10754
- let n = lm[e[1].toUpperCase()];
10824
+ let n = fm[e[1].toUpperCase()];
10755
10825
  return n === void 0 ? void 0 : {
10756
10826
  ...n,
10757
10827
  position: t.position(),
10758
10828
  type: "texte"
10759
10829
  };
10760
10830
  }
10761
- }), ym = y($t, { value: (e, t) => {
10831
+ }), Sm = y($t, { value: (e, t) => {
10762
10832
  let n = t.position(), r = t.text(n), i = r.match(/^(?<article>.*\d(?:[\p{L}\d-]*))\s+\d+\s*(?:°|º|er|e|ème)$/iu)?.groups?.article?.trim() ?? r;
10763
10833
  return {
10764
10834
  num: Yt(i),
@@ -10768,25 +10838,25 @@ var vm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10768
10838
  },
10769
10839
  type: "article"
10770
10840
  };
10771
- } }), bm = a([_(String.raw`\s*,\s*art(?:icle)?\.?\s+`, { flags: "i" }), ym], { value: (e) => e[1] }), xm = a([
10841
+ } }), Cm = a([_(String.raw`\s*,\s*art(?:icle)?\.?\s+`, { flags: "i" }), Sm], { value: (e) => e[1] }), wm = a([
10772
10842
  S(_(String.raw`(?:le|la|les)\s+`, { flags: "i" }), { default: "" }),
10773
- o(vm, mm),
10774
- bm
10843
+ o(xm, _m),
10844
+ Cm
10775
10845
  ], { value: (e, t) => {
10776
10846
  let n = e[2];
10777
10847
  return {
10778
10848
  child: n,
10779
- parent: fm(e[1], n.num),
10849
+ parent: hm(e[1], n.num),
10780
10850
  position: t.position(),
10781
10851
  type: "parent-enfant"
10782
10852
  };
10783
- } }), Sm = _(String.raw`(?:(?<articleKeyword>articles?)\s+)?(?<article>\S[^\n,;:\(\)]*?)\s+(?:(?:du|de\s+la|de\s+l['’])\s+)?(?<text>${cm})(?=$|\P{Alphabetic})`, {
10853
+ } }), Tm = _(String.raw`(?:(?<articleKeyword>articles?)\s+)?(?<article>\S[^\n,;:\(\)]*?)\s+(?:(?:du|de\s+la|de\s+l['’])\s+)?(?<text>${dm})(?=$|\P{Alphabetic})`, {
10784
10854
  flags: "div",
10785
- value: (e, t) => _m(e, t)
10786
- }), Cm = _(String.raw`(?<article1>(?:(?:L\.?\s*O|[LRDA])\*?\.?\s*)\d[^\n,;:\(\)]*?)\s+(?<coordinator>et|ou)\s+(?<article2>(?:(?:L\.?\s*O|[LRDA])\*?\.?\s*)\d[^\n,;:\(\)]*?)\s+(?:(?:du|de\s+la|de\s+l['’])\s+)?(?<text>${cm})(?=$|\P{Alphabetic})`, {
10855
+ value: (e, t) => bm(e, t)
10856
+ }), Em = _(String.raw`(?<article1>(?:(?:L\.?\s*O|[LRDA])\*?\.?\s*)\d[^\n,;:\(\)]*?)\s+(?<coordinator>et|ou)\s+(?<article2>(?:(?:L\.?\s*O|[LRDA])\*?\.?\s*)\d[^\n,;:\(\)]*?)\s+(?:(?:du|de\s+la|de\s+l['’])\s+)?(?<text>${dm})(?=$|\P{Alphabetic})`, {
10787
10857
  flags: "div",
10788
10858
  value: (e, t) => {
10789
- let n = hm(e, "article1"), r = hm(e, "article2"), i = hm(e, "text"), a = e.groups?.article1, o = e.groups?.article2, s = e.groups?.coordinator, c = a === void 0 ? void 0 : Yt(a.trim()), l = o === void 0 ? void 0 : Yt(o.trim()), u = e.groups?.text === void 0 || i === void 0 ? void 0 : pm(e.groups.text, i, t.input);
10859
+ let n = vm(e, "article1"), r = vm(e, "article2"), i = vm(e, "text"), a = e.groups?.article1, o = e.groups?.article2, s = e.groups?.coordinator, c = a === void 0 ? void 0 : Yt(a.trim()), l = o === void 0 ? void 0 : Yt(o.trim()), u = e.groups?.text === void 0 || i === void 0 ? void 0 : gm(e.groups.text, i, t.input);
10790
10860
  if (!(n === void 0 || r === void 0 || c === void 0 || l === void 0 || s !== "et" && s !== "ou" || u === void 0)) return {
10791
10861
  child: {
10792
10862
  coordinator: s,
@@ -10806,7 +10876,7 @@ var vm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10806
10876
  },
10807
10877
  type: "enumeration"
10808
10878
  },
10809
- parent: fm(fm(u, c), l),
10879
+ parent: hm(hm(u, c), l),
10810
10880
  position: {
10811
10881
  start: n.start,
10812
10882
  stop: u.position.stop
@@ -10814,7 +10884,7 @@ var vm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10814
10884
  type: "parent-enfant"
10815
10885
  };
10816
10886
  }
10817
- }), wm = o(xm, Cm, Sm), Tm = (e) => {
10887
+ }), Dm = o(wm, Em, Tm), Om = (e) => {
10818
10888
  let t = e.offset, n = /,\s*(?:par\s+)?/guy;
10819
10889
  if (n.lastIndex = t, !n.exec(e.input)) return;
10820
10890
  e.offset = n.lastIndex;
@@ -10830,7 +10900,7 @@ var vm = _(String.raw`cgi\s*,\s*ann(?:exe)?\.?\s*(IV|III|II|I)`, {
10830
10900
  }
10831
10901
  return e.offset = i.lastIndex, e.length = 0, e.usedInputs = e.input.slice(t, e.offset), r;
10832
10902
  };
10833
- function Em(e) {
10903
+ function km(e) {
10834
10904
  for (let t = 0; t < e.length; t += 1) {
10835
10905
  let n = t === 0 ? void 0 : e[t - 1];
10836
10906
  if (n && /[\p{L}\p{N}_]/u.test(n)) continue;
@@ -10839,7 +10909,7 @@ function Em(e) {
10839
10909
  }
10840
10910
  return null;
10841
10911
  }
10842
- function Dm(e, t) {
10912
+ function Am(e, t) {
10843
10913
  let n = e.slice(0, Math.max(0, t)), r = /(?:^|[^\p{L}\p{N}_])les\s+/giu, i = null;
10844
10914
  for (; r.exec(n) !== null;) {
10845
10915
  let e = new x(n, r.lastIndex), t = Oe(e);
@@ -10847,7 +10917,7 @@ function Dm(e, t) {
10847
10917
  }
10848
10918
  return i;
10849
10919
  }
10850
- function Om(e) {
10920
+ function jm(e) {
10851
10921
  let t = [], n = /(?:,\s*)?par\s+/giu, r = 0, i;
10852
10922
  for (; (i = n.exec(e)) !== null;) {
10853
10923
  let a = new x(e, n.lastIndex);
@@ -10859,17 +10929,17 @@ function Om(e) {
10859
10929
  }
10860
10930
  //#endregion
10861
10931
  //#region src/lib/text_parsers/actions.ts
10862
- var km = (e) => a([
10932
+ var Mm = (e) => a([
10863
10933
  _(e, { flags: "i" }),
10864
- Tm,
10934
+ Om,
10865
10935
  _(e === "est" ? "remplacée?" : "remplacée?s", { flags: "i" })
10866
- ], { value: "remplacer" }), Am = o(t(_("(modalités|conditions) d'application (de )?", { flags: "i" }), {
10936
+ ], { value: "remplacer" }), Nm = o(t(_("(modalités|conditions) d'application (de )?", { flags: "i" }), {
10867
10937
  lookbackLength: 35,
10868
10938
  value: { action: "précision" }
10869
10939
  }), t(_("en application (de )?", { flags: "i" }), {
10870
10940
  lookbackLength: 35,
10871
10941
  value: { action: "application" }
10872
- })), jm = xe("après|avant|ajoutée?s?|insérée?s?|complétée?s?|rédigée?s?|suit|modifiée?s?|rétablie?s?|remplacée?s?|supprimée?s?|abrogée?s?|devient", o(a([
10942
+ })), Pm = xe("après|avant|ajoutée?s?|insérée?s?|complétée?s?|rédigée?s?|suit|modifiée?s?|rétablie?s?|remplacée?s?|supprimée?s?|abrogée?s?|devient", o(a([
10873
10943
  w,
10874
10944
  _("est complété par les mots ?", { flags: "i" }),
10875
10945
  _(" ?:"),
@@ -10937,7 +11007,7 @@ var km = (e) => a([
10937
11007
  }), _("est rétablie? (ainsi qu'il|comme) suit", {
10938
11008
  flags: "i",
10939
11009
  value: "rétablir"
10940
- }), km("est"), _("est remplacée?", {
11010
+ }), Mm("est"), _("est remplacée?", {
10941
11011
  flags: "i",
10942
11012
  value: "remplacer"
10943
11013
  }), _("sont ainsi modifiée?s", {
@@ -10952,7 +11022,7 @@ var km = (e) => a([
10952
11022
  }), _("sont rétablie?s (ainsi qu'il|comme) suit", {
10953
11023
  flags: "i",
10954
11024
  value: "rétablir"
10955
- }), km("sont"), _("sont remplacée?s", {
11025
+ }), Mm("sont"), _("sont remplacée?s", {
10956
11026
  flags: "i",
10957
11027
  value: "remplacer"
10958
11028
  }), _("sont renum[eé]rotée?s", {
@@ -10972,7 +11042,7 @@ var km = (e) => a([
10972
11042
  }), _("est remplacée?", {
10973
11043
  flags: "i",
10974
11044
  value: "remplacer"
10975
- }), km("est"), km("sont"), _("sont remplacée?s", {
11045
+ }), Mm("est"), Mm("sont"), _("sont remplacée?s", {
10976
11046
  flags: "i",
10977
11047
  value: "remplacer"
10978
11048
  }), _("est modifiée?", {
@@ -11132,23 +11202,23 @@ var km = (e) => a([
11132
11202
  }), _("est supprimée?", {
11133
11203
  flags: "i",
11134
11204
  value: "supprimer"
11135
- }))], { value: (e) => ({ action: e[1] }) }))), Mm = o(dn, Tn), Nm = o(pn, Sn, mm, Me), Pm = a([Mm, b(a([e, Nm], { value: (e) => e[1] }))], { value: (e, t) => vt(e[0], e[1], t.position()) }), Fm = a([Nm, b(a([e, Nm], { value: (e) => e[1] }))], { value: (e, t) => vt(e[0], e[1], t.position()) }), Im = a([ee, Pm], { value: (e) => e[1] }), Lm = o(a([e, Fm], { value: (e) => e[1] }), Im), Rm = o(a([Ut, S(Lm, { default: null })], { value: (e) => {
11205
+ }))], { value: (e) => ({ action: e[1] }) }))), Fm = o(dn, Tn), Im = o(pn, Sn, _m, Me), Lm = a([Fm, b(a([e, Im], { value: (e) => e[1] }))], { value: (e, t) => vt(e[0], e[1], t.position()) }), Rm = a([Im, b(a([e, Im], { value: (e) => e[1] }))], { value: (e, t) => vt(e[0], e[1], t.position()) }), zm = a([ee, Lm], { value: (e) => e[1] }), Bm = o(a([e, Rm], { value: (e) => e[1] }), zm), Vm = o(a([Ut, S(Bm, { default: null })], { value: (e) => {
11136
11206
  let t = e[0], n = e[1];
11137
11207
  return n === null ? t : ht(n, t);
11138
- } }), Pm), zm = o(a([Wt, S(Lm, { default: null })], { value: (e) => {
11208
+ } }), Lm), Hm = o(a([Wt, S(Bm, { default: null })], { value: (e) => {
11139
11209
  let t = e[0], n = e[1];
11140
11210
  return n === null ? t : ht(n, t);
11141
- } }), Fm), Bm = a([
11142
- S(Am, { default: null }),
11211
+ } }), Rm), Um = a([
11212
+ S(Nm, { default: null }),
11143
11213
  a([
11144
11214
  oe,
11145
- Rm,
11215
+ Vm,
11146
11216
  S([S(_(" modifiée?s", { flags: "i" }), { default: "" }), _(" susvisée?s", { flags: "i" })], { default: "" })
11147
11217
  ], { value: (e, t) => ({
11148
11218
  ...e[1],
11149
11219
  position: t.position()
11150
11220
  }) }),
11151
- S(jm, { default: null })
11221
+ S(Pm, { default: null })
11152
11222
  ], { value: (e, t) => {
11153
11223
  let n = e[2] ?? e[0];
11154
11224
  return n === null ? e[1] : {
@@ -11157,18 +11227,18 @@ var km = (e) => a([
11157
11227
  reference: e[1],
11158
11228
  type: "reference_et_action"
11159
11229
  };
11160
- } }), Vm = o(a([
11161
- S(Am, { default: null }),
11230
+ } }), Wm = o(a([
11231
+ S(Nm, { default: null }),
11162
11232
  a([
11163
11233
  ce,
11164
- zm,
11234
+ Hm,
11165
11235
  S([S(_(" modifiée?", { flags: "i" }), { default: "" }), _(" susvisée?", { flags: "i" })], { default: "" }),
11166
11236
  S(_(String.raw`, ?qui devient [^,]+ ","`, { flags: "i" }), { default: "" })
11167
11237
  ], { value: (e, t) => ({
11168
11238
  ...e[1],
11169
11239
  position: t.position()
11170
11240
  }) }),
11171
- S(jm, { default: null })
11241
+ S(Pm, { default: null })
11172
11242
  ], { value: (e, t) => {
11173
11243
  let n = e[2] ?? e[0];
11174
11244
  return n === null ? e[1] : {
@@ -11177,41 +11247,41 @@ var km = (e) => a([
11177
11247
  reference: e[1],
11178
11248
  type: "reference_et_action"
11179
11249
  };
11180
- } }), Bm), Hm = xe("article|loi|décret|code|alinéa|phrase|chapitre|titre|livre|partie|section|paragraphe|ordonnance|constitution|directive|règlement|\\d|[ivxlc]+|[a-zA-Z]", a([Vm, b([o(wt, Ct), Vm])], { value: (e, t) => gt(e[0], e[1], t.position()) })), Um = y(zm, { value: (e, t) => ({
11250
+ } }), Um), Gm = xe("article|loi|décret|code|alinéa|phrase|chapitre|titre|livre|partie|section|paragraphe|ordonnance|constitution|directive|règlement|\\d|[ivxlc]+|[a-zA-Z]", a([Wm, b([o(wt, Ct), Wm])], { value: (e, t) => gt(e[0], e[1], t.position()) })), Km = y(Hm, { value: (e, t) => ({
11181
11251
  ...e,
11182
11252
  position: t.position()
11183
- }) }), Wm = o(b(Um, {
11253
+ }) }), qm = o(b(Km, {
11184
11254
  min: 2,
11185
11255
  separator: i,
11186
11256
  value: (e) => [e[0], ...e.slice(1).map(([, e]) => e)]
11187
- }), b(Um, {
11257
+ }), b(Km, {
11188
11258
  min: 2,
11189
11259
  separator: _(String.raw`\n`),
11190
11260
  value: (e) => [e[0], ...e.slice(1).map(([, e]) => e)]
11191
- }), y(Um, { value: (e) => [e] }));
11261
+ }), y(Km, { value: (e) => [e] }));
11192
11262
  //#endregion
11193
11263
  //#region src/lib/extractors/references.ts
11194
- function Gm({ text: e }) {
11264
+ function Jm({ text: e }) {
11195
11265
  return /^\p{Lowercase_Letter}$/u.test(e);
11196
11266
  }
11197
- function Km(e) {
11267
+ function Ym(e) {
11198
11268
  return !/^[\p{Alphabetic}\p{Decimal_Number}]$/u.test(e);
11199
11269
  }
11200
- function qm(e) {
11270
+ function Xm(e) {
11201
11271
  return e !== void 0 && /^[\p{Alphabetic}\p{Decimal_Number}«]$/u.test(e);
11202
11272
  }
11203
- function Jm(e, t) {
11273
+ function Zm(e, t) {
11204
11274
  if (t <= 0) return !0;
11205
11275
  let n = e[t - 1], r = e[t];
11206
- return qm(r) && (Km(n) || Km(r));
11276
+ return Xm(r) && (Ym(n) || Ym(r));
11207
11277
  }
11208
- function Ym(e) {
11209
- return e !== void 0 && Gm(e) ? 5 : void 0;
11278
+ function Qm(e) {
11279
+ return e !== void 0 && Jm(e) ? 5 : void 0;
11210
11280
  }
11211
- function* Xm(e, t, n = {}) {
11281
+ function* $m(e, t, n = {}) {
11212
11282
  n.diagnostics !== void 0 && n.diagnostics.citationCount++;
11213
- let r = $p(e, t), i = new x(r.output), a = g(r);
11214
- for (let e of Qm(i, n)) {
11283
+ let r = nm(e, t), i = new x(r.output), a = g(r);
11284
+ for (let e of th(i, n)) {
11215
11285
  e = structuredClone(e), t.references === void 0 && (t.references = []), t.references.push(e);
11216
11286
  for (let t of St(e)) {
11217
11287
  let e = t.position;
@@ -11220,138 +11290,138 @@ function* Xm(e, t, n = {}) {
11220
11290
  yield e;
11221
11291
  }
11222
11292
  }
11223
- function* Zm(e, t = {}) {
11224
- yield* Qm(e, t);
11293
+ function* eh(e, t = {}) {
11294
+ yield* th(e, t);
11225
11295
  }
11226
- function* Qm(e, t = {}) {
11227
- let n = xe(String.raw`arrêtés?|circulaires?|code|constitution|décrets?(?:-loi)?|loi|ordonnance|art\.|articles?|chapitre|livre|paragraphe|partie|section|sous-paragraphe|sous-section|sous-sous-paragraphe|sous-titre|titre|alinéas?|phrases?|règlements?|directives?|décisions?|«|[IVXLCDM]+|[A-Z]|\d+`, o(Z, nn, vn, wm, Hm), 80, String.raw`(?<=^|\P{Alphabetic})(?:arrêtés?|circulaires?|code|constitution|décrets?(?:-loi)?|loi|ordonnance|art\.|articles?|chapitre|livre|paragraphe|partie|section|sous-paragraphe|sous-section|sous-sous-paragraphe|sous-titre|titre|alinéas?|phrases?|règlements?|directives?|décisions?|«|[IVXLCDM]+|[A-Z]|\d+)(?=$|\P{Alphabetic})`);
11296
+ function* th(e, t = {}) {
11297
+ let n = xe(String.raw`arrêtés?|circulaires?|code|constitution|décrets?(?:-loi)?|loi|ordonnance|art\.|articles?|chapitre|livre|paragraphe|partie|section|sous-paragraphe|sous-section|sous-sous-paragraphe|sous-titre|titre|alinéas?|phrases?|règlements?|directives?|décisions?|«|[IVXLCDM]+|[A-Z]|\d+`, o(Z, nn, vn, Dm, Gm), 80, String.raw`(?<=^|\P{Alphabetic})(?:arrêtés?|circulaires?|code|constitution|décrets?(?:-loi)?|loi|ordonnance|art\.|articles?|chapitre|livre|paragraphe|partie|section|sous-paragraphe|sous-section|sous-sous-paragraphe|sous-titre|titre|alinéas?|phrases?|règlements?|directives?|décisions?|«|[IVXLCDM]+|[A-Z]|\d+)(?=$|\P{Alphabetic})`);
11228
11298
  for (let r of n.extract(e, {
11229
- canStartAtOffset: Jm,
11299
+ canStartAtOffset: Zm,
11230
11300
  diagnostics: t.diagnostics?.fastPath,
11231
11301
  overlapWindow: 80,
11232
- overlapWindowForCandidate: (e, n) => t.overlapWindowForCandidate?.(e) ?? Ym(n)
11233
- })) if (r !== void 0) if (r.type === "citation") yield* Xm(e, r, t);
11302
+ overlapWindowForCandidate: (e, n) => t.overlapWindowForCandidate?.(e) ?? Qm(n)
11303
+ })) if (r !== void 0) if (r.type === "citation") yield* $m(e, r, t);
11234
11304
  else {
11235
11305
  if (r.type === "reference_et_action" || r.type === "alinéa" || r.type === "article" || r.type === "chapitre" || r.type === "item" || r.type === "livre" || r.type === "paragraphe" || r.type === "partie" || r.type === "phrase" || r.type === "section" || r.type === "sous-paragraphe" || r.type === "sous-section" || r.type === "sous-sous-paragraphe" || r.type === "sous-titre" || r.type === "titre" || r.type === "texte" || r.type === "bounded-interval" || r.type === "counted-interval" || r.type === "enumeration" || r.type === "exclusion" || r.type === "parent-enfant" || r.type === "incomplete-header") {
11236
11306
  for (let n of St(r)) if (n.type === "reference_et_action") {
11237
11307
  let { originalCitations: r } = n.action;
11238
- if (r !== void 0) for (let n of r) for (let r of Xm(e, n, t));
11308
+ if (r !== void 0) for (let n of r) for (let r of $m(e, n, t));
11239
11309
  }
11240
11310
  }
11241
11311
  yield r;
11242
11312
  }
11243
11313
  }
11244
- function* $m(e, t, n = {}) {
11314
+ function* nh(e, t, n = {}) {
11245
11315
  let r = g(t);
11246
- for (let t of Zm(e, n)) {
11316
+ for (let t of eh(e, n)) {
11247
11317
  for (let e of St(t, { citations: !0 })) e.position !== void 0 && (e.originalTransformation = s(r, e.position));
11248
11318
  yield t;
11249
11319
  }
11250
11320
  }
11251
- var eh = (e) => [...Zm(e)], th = (e, t) => [...$m(e, t)], nh = "(?:avant|apr[eè]s)", rh = o(_("avant(?![-A-Za-zÀ-ÖØ-öø-ÿ0-9_])", {
11321
+ var rh = (e) => [...eh(e)], ih = (e, t) => [...nh(e, t)], ah = "(?:avant|apr[eè]s)", oh = o(_("avant(?![-A-Za-zÀ-ÖØ-öø-ÿ0-9_])", {
11252
11322
  flags: "i",
11253
11323
  value: "before"
11254
11324
  }), _("apr[eè]s(?![-A-Za-zÀ-ÖØ-öø-ÿ0-9_])", {
11255
11325
  flags: "i",
11256
11326
  value: "after"
11257
- })), ih = o(_("(?:au|a[uù])\\s+d[eé]but\\b", {
11327
+ })), sh = o(_("(?:au|a[uù])\\s+d[eé]but\\b", {
11258
11328
  flags: "i",
11259
11329
  value: "start"
11260
11330
  }), _("(?:a|à)\\s+la\\s+fin\\b", {
11261
11331
  flags: "i",
11262
11332
  value: "end"
11263
11333
  }));
11264
- function ah(e) {
11334
+ function ch(e) {
11265
11335
  return e === "before" ? "insert_before" : "insert_after";
11266
11336
  }
11267
- function oh(e) {
11268
- let t = ch(e), n = /(?:^|[^\p{L}\p{N}_-])(avant|apres)(?![\p{L}\p{N}_-])/u.exec(t);
11337
+ function lh(e) {
11338
+ let t = dh(e), n = /(?:^|[^\p{L}\p{N}_-])(avant|apres)(?![\p{L}\p{N}_-])/u.exec(t);
11269
11339
  return n ? n[1] === "avant" ? "before" : "after" : null;
11270
11340
  }
11271
- function sh(e) {
11272
- let t = ch(e), n = /(?:^|[^\p{L}\p{N}_-])(?:au|a[uù])\s+debut\b/u.exec(t), r = /(?:^|[^\p{L}\p{N}_-])a\s+la\s+fin\b/u.exec(t);
11341
+ function uh(e) {
11342
+ let t = dh(e), n = /(?:^|[^\p{L}\p{N}_-])(?:au|a[uù])\s+debut\b/u.exec(t), r = /(?:^|[^\p{L}\p{N}_-])a\s+la\s+fin\b/u.exec(t);
11273
11343
  return !n && !r ? null : n ? r ? n.index <= r.index ? "start" : "end" : "start" : "end";
11274
11344
  }
11275
- function ch(e) {
11345
+ function dh(e) {
11276
11346
  return e.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
11277
11347
  }
11278
11348
  //#endregion
11279
11349
  //#region src/lib/text_parsers/action_words.ts
11280
- var lh = /\b(ins[èe]re|ins[ée]r[ée]|ajout|remplac|supprim|abrog|compl[èeé]t|r[ée]dig|r[ée]tabl|modifi(?:e|é|ée|és|ées|er|ant|ent))/iu;
11281
- function uh(e) {
11350
+ var fh = /\b(ins[èe]re|ins[ée]r[ée]|ajout|remplac|supprim|abrog|compl[èeé]t|r[ée]dig|r[ée]tabl|modifi(?:e|é|ée|és|ées|er|ant|ent))/iu;
11351
+ function ph(e) {
11282
11352
  return e.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
11283
11353
  }
11284
- function dh(e, t = e) {
11354
+ function mh(e, t = e) {
11285
11355
  return /\bredige\b|\bredigee\b|\bredigees\b|\brediges\b|\bainsi\b/.test(e) || /\bdispositions suivantes\b/.test(t);
11286
11356
  }
11287
- function fh(e) {
11288
- return oh(e) === "after";
11357
+ function hh(e) {
11358
+ return lh(e) === "after";
11289
11359
  }
11290
- function ph(e) {
11291
- return oh(e) === "before";
11360
+ function gh(e) {
11361
+ return lh(e) === "before";
11292
11362
  }
11293
- function mh(e) {
11363
+ function _h(e) {
11294
11364
  return /\bretabl/.test(e);
11295
11365
  }
11296
- function hh(e) {
11366
+ function vh(e) {
11297
11367
  return /\binsere(?:e|es|s)?\b|\bajoute\b|\bajoutee\b|\bajoutes\b|\bajoutees\b|\bcomplete(?:e|es|s)?\b/.test(e);
11298
11368
  }
11299
- function gh(e) {
11369
+ function yh(e) {
11300
11370
  return /\bremplace\b|\bremplacee\b|\bremplaces\b|\bremplacees\b/.test(e);
11301
11371
  }
11302
- function _h(e) {
11372
+ function bh(e) {
11303
11373
  return /\bsupprime\b|\bsupprimee\b|\bsupprimes\b|\bsupprimees\b|\babroge\b|\babrogee\b|\babroges\b|\babrogees\b/.test(e);
11304
11374
  }
11305
- function vh(e) {
11375
+ function xh(e) {
11306
11376
  return /\b(remplace|modifie|redige|rediges|redigee|redigees)\b/.test(e);
11307
11377
  }
11308
11378
  //#endregion
11309
11379
  //#region src/lib/extractors/portion_references.ts
11310
- function yh(e, t) {
11380
+ function Sh(e, t) {
11311
11381
  e && (e.start += t, e.stop += t);
11312
11382
  }
11313
- function bh(e, t) {
11383
+ function Ch(e, t) {
11314
11384
  if (e.type === "parent-enfant") {
11315
- bh(e.parent, t), bh(e.child, t), yh(e.position, t);
11385
+ Ch(e.parent, t), Ch(e.child, t), Sh(e.position, t);
11316
11386
  return;
11317
11387
  }
11318
11388
  if (e.type === "bounded-interval") {
11319
- bh(e.first, t), bh(e.last, t), yh(e.position, t);
11389
+ Ch(e.first, t), Ch(e.last, t), Sh(e.position, t);
11320
11390
  return;
11321
11391
  }
11322
11392
  if (e.type === "counted-interval") {
11323
- bh(e.first, t), yh(e.position, t);
11393
+ Ch(e.first, t), Sh(e.position, t);
11324
11394
  return;
11325
11395
  }
11326
11396
  if (e.type === "enumeration" || e.type === "exclusion") {
11327
- bh(e.left, t), bh(e.right, t), yh(e.position, t);
11397
+ Ch(e.left, t), Ch(e.right, t), Sh(e.position, t);
11328
11398
  return;
11329
11399
  }
11330
11400
  if (e.type === "reference_et_action") {
11331
- bh(e.reference, t), yh(e.position, t);
11401
+ Ch(e.reference, t), Sh(e.position, t);
11332
11402
  return;
11333
11403
  }
11334
- yh(e.position, t);
11404
+ Sh(e.position, t);
11335
11405
  }
11336
- function xh(e) {
11406
+ function wh(e) {
11337
11407
  return e.replace(/\b(de\s+l['’]?|de\s+la|de\s+le|du|des)\s*$/i, "");
11338
11408
  }
11339
- function Sh(e) {
11409
+ function Th(e) {
11340
11410
  let t = /^(?:(?:[aà]\s+)?l['’]|(?:[aà]\s+)?la\b|(?:[aà]\s+)?le\b|les\b|des\b|aux\b|du\b)\s*/iu.exec(e)?.[0].length ?? 0, n = e.slice(t > 0 ? t : 0).trim();
11341
11411
  return n ? {
11342
11412
  text: n,
11343
11413
  offset: t
11344
11414
  } : null;
11345
11415
  }
11346
- function Ch(e) {
11416
+ function Eh(e) {
11347
11417
  return [...e.matchAll(/(?:^|\P{L})(\p{L})/gu)].map((e) => (e.index ?? 0) + e[0].length - (e[1]?.length ?? 0));
11348
11418
  }
11349
- function wh(e) {
11419
+ function Dh(e) {
11350
11420
  let t = new x(e), n = zt(t);
11351
11421
  return !n || t.remaining().trim().length !== 0 ? null : n;
11352
11422
  }
11353
- function Th(e) {
11354
- for (let t of Ch(e)) {
11423
+ function Oh(e) {
11424
+ for (let t of Eh(e)) {
11355
11425
  let n = new x(e, t), r = Dt(n);
11356
11426
  if (!(r === void 0 || n.remaining().trim() !== "")) return {
11357
11427
  nature: r,
@@ -11360,17 +11430,17 @@ function Th(e) {
11360
11430
  }
11361
11431
  return null;
11362
11432
  }
11363
- function Eh(e, t) {
11433
+ function kh(e, t) {
11364
11434
  let n = e.trim().replace(/[;:,]\s*$/u, "").replace(/\b(?:est|sont)\s*$/iu, "").trim();
11365
11435
  if (!n) return null;
11366
- for (let e of Ch(n)) {
11367
- let r = n.slice(e).trim(), i = Th(r);
11436
+ for (let e of Eh(n)) {
11437
+ let r = n.slice(e).trim(), i = Oh(r);
11368
11438
  if (!i) continue;
11369
- let a = Om(r.slice(0, i.start)).trim();
11439
+ let a = jm(r.slice(0, i.start)).trim();
11370
11440
  if (!a) continue;
11371
11441
  let o = /\s*(,|\bet\b|\bou\b|(?<!\p{L})[aà](?!\p{L}))\s*/giu, s = [], c = 0, l;
11372
11442
  for (; (l = o.exec(a)) !== null;) {
11373
- let e = uh(l[1] ?? "");
11443
+ let e = ph(l[1] ?? "");
11374
11444
  if (a.slice(c, l.index).trim() === "") {
11375
11445
  e !== "a" && e !== "à" && (c = o.lastIndex);
11376
11446
  continue;
@@ -11387,17 +11457,17 @@ function Eh(e, t) {
11387
11457
  }), s.length < 2) continue;
11388
11458
  let u = s.some((e) => e.separator === "à"), d = [], f = [], p = !0, m = i.nature, h;
11389
11459
  for (let [n, r] of s.entries()) {
11390
- let i = Sh(r.text);
11460
+ let i = Th(r.text);
11391
11461
  if (!i) {
11392
11462
  d.length = 0;
11393
11463
  break;
11394
11464
  }
11395
- let a = wh(`${i.text} ${m}`);
11465
+ let a = Dh(`${i.text} ${m}`);
11396
11466
  if (!a) {
11397
11467
  d.length = 0;
11398
11468
  break;
11399
11469
  }
11400
- bh(a, t + e + r.start + i.offset), d.push(a), a.type !== m || a.index === void 0 || a.index < 1 ? p = !1 : (h !== void 0 && !u && a.index !== h + 1 && (p = !1), h = a.index), n < s.length - 1 && (f.push(r.separator ?? "et"), (r.separator ?? "et") === "ou" && (p = !1));
11470
+ Ch(a, t + e + r.start + i.offset), d.push(a), a.type !== m || a.index === void 0 || a.index < 1 ? p = !1 : (h !== void 0 && !u && a.index !== h + 1 && (p = !1), h = a.index), n < s.length - 1 && (f.push(r.separator ?? "et"), (r.separator ?? "et") === "ou" && (p = !1));
11401
11471
  }
11402
11472
  let [g, ..._] = d;
11403
11473
  if (!g || _.length === 0) continue;
@@ -11414,16 +11484,16 @@ function Eh(e, t) {
11414
11484
  }
11415
11485
  return null;
11416
11486
  }
11417
- function Dh(e, t) {
11487
+ function Ah(e, t) {
11418
11488
  let n = e.trim().replace(/[;:,]\s*$/u, "").replace(/\b(?:est|sont)\s*$/iu, "").trim();
11419
11489
  if (!n) return null;
11420
- for (let e of Ch(n)) {
11490
+ for (let e of Eh(n)) {
11421
11491
  let r = n.slice(e);
11422
11492
  if (!r) continue;
11423
11493
  let i = new x(r), a = zt(i);
11424
11494
  if (!a || i.offset === 0 || !ee(i)) continue;
11425
- let o = i.offset, s = Eh(r.slice(o), t + e + o);
11426
- if (s) return bh(a, t + e), {
11495
+ let o = i.offset, s = kh(r.slice(o), t + e + o);
11496
+ if (s) return Ch(a, t + e), {
11427
11497
  ...ht(s, a),
11428
11498
  position: {
11429
11499
  start: a.position.start,
@@ -11433,83 +11503,65 @@ function Dh(e, t) {
11433
11503
  }
11434
11504
  return null;
11435
11505
  }
11436
- function Oh(e, t) {
11437
- let n = xh(e);
11506
+ function jh(e, t) {
11507
+ let n = wh(e);
11438
11508
  if (!n) return null;
11439
- let r = Dh(n, t);
11509
+ let r = Ah(n, t);
11440
11510
  if (r) return r;
11441
- let i = Eh(n, t);
11511
+ let i = kh(n, t);
11442
11512
  if (i) return i;
11443
- for (let e of Ch(n)) {
11513
+ for (let e of Eh(n)) {
11444
11514
  let r = n.slice(e);
11445
11515
  if (!r) continue;
11446
11516
  let i = new x(r), a = zt(i);
11447
- if (!(!a || i.offset === 0) && r.slice(i.offset).trim().length === 0) return bh(a, t + e), a;
11517
+ if (!(!a || i.offset === 0) && r.slice(i.offset).trim().length === 0) return Ch(a, t + e), a;
11448
11518
  }
11449
11519
  return null;
11450
11520
  }
11451
- function kh(e) {
11521
+ function Mh(e) {
11452
11522
  return Math.max(0, ...Vp(e).map((e) => e.kind === "single" ? e.steps.length : Math.max(e.first.length, e.last.length)));
11453
11523
  }
11454
- function Ah(e) {
11524
+ function Nh(e) {
11455
11525
  return Vp(e).length;
11456
11526
  }
11457
- function jh(e, t) {
11527
+ function Ph(e, t) {
11458
11528
  if (!e) return t;
11459
11529
  if (!t) return e;
11460
- let n = kh(e), r = kh(t);
11461
- return n === r ? Ah(e) >= Ah(t) ? e : t : n > r ? e : t;
11530
+ let n = Mh(e), r = Mh(t);
11531
+ return n === r ? Nh(e) >= Nh(t) ? e : t : n > r ? e : t;
11462
11532
  }
11463
- function Mh(e) {
11533
+ function Fh(e) {
11464
11534
  return e.map((e) => ({
11465
11535
  reference: e,
11466
- specificity: kh(e)
11536
+ specificity: Mh(e)
11467
11537
  })).filter((e) => e.specificity > 0).sort((e, t) => t.specificity - e.specificity)[0]?.reference ?? null;
11468
11538
  }
11469
- function Nh(e, { actionIndex: t = e.length } = {}) {
11539
+ function Ih(e, { actionIndex: t = e.length } = {}) {
11470
11540
  let n = /\barticle\b/i.exec(e);
11471
11541
  if (!n || n.index === void 0) return null;
11472
11542
  let r = n.index, i = new x(e.slice(r)), a = pn(i);
11473
11543
  if (!a) return null;
11474
- bh(a, r);
11475
- let o = e.slice(0, r), s = r + i.offset, c = e.slice(s, t), l = jh(Mh(Ph(o)), Oh(o, 0)) ?? Mh(Ph(c)) ?? Oh(c, s);
11544
+ Ch(a, r);
11545
+ let o = e.slice(0, r), s = r + i.offset, c = e.slice(s, t), l = Ph(Fh(Lh(o)), jh(o, 0)) ?? Fh(Lh(c)) ?? jh(c, s);
11476
11546
  return l ? ht(a, l) : null;
11477
11547
  }
11478
- function Ph(e) {
11479
- return eh(new x(e));
11548
+ function Lh(e) {
11549
+ return rh(new x(e));
11480
11550
  }
11481
11551
  //#endregion
11482
11552
  //#region src/lib/extractors/quoted_text.ts
11483
- function Fh(e) {
11553
+ function Rh(e) {
11484
11554
  return e.split(/\n+/).map((e) => e.replace(/^\s*[«“"]\s*/u, "").trim()).filter((e) => e.length > 0).join("\n").replace(/[»”"]\s*$/u, "").trim();
11485
11555
  }
11486
- function Ih(e) {
11487
- let t = [], n = 0;
11488
- for (; n < e.length;) {
11489
- let r = e.indexOf("«", n);
11490
- if (r === -1) break;
11491
- let i = new x(e);
11492
- i.offset = r;
11493
- let a = Z(i);
11494
- if (!a) {
11495
- n = r + 1;
11496
- continue;
11497
- }
11498
- let o = Fh(em(e, a)), s = a.position ?? {
11499
- start: r,
11500
- stop: r + 1
11501
- };
11502
- t.push({
11503
- text: o,
11504
- start: s.start,
11505
- end: s.stop
11506
- });
11507
- let c = s.stop ?? r + 1;
11508
- n = Math.max(c, r + 1);
11509
- }
11510
- return t;
11556
+ function zh(e, t) {
11557
+ return tm(e, t).map((t) => ({
11558
+ closed: t.closed,
11559
+ text: Rh(t.content.map(({ start: t, stop: n }) => e.slice(t, n)).join("\n")),
11560
+ start: t.position.start,
11561
+ end: t.position.stop
11562
+ }));
11511
11563
  }
11512
- function Lh(e, t) {
11564
+ function Bh(e, t) {
11513
11565
  if (t.length === 0) return e;
11514
11566
  let n = 0, r = [];
11515
11567
  for (let { start: i, end: a } of t) {
@@ -11518,55 +11570,30 @@ function Lh(e, t) {
11518
11570
  }
11519
11571
  return n < e.length && r.push(e.slice(n)), r.join("");
11520
11572
  }
11521
- function Rh(e) {
11522
- let t = [], n = 0;
11523
- for (; n < e.length;) {
11524
- let r = e.indexOf("«", n);
11525
- if (r === -1) break;
11526
- let i = e.indexOf("»", r + 1);
11527
- if (i === -1) {
11528
- t.push({
11529
- start: r,
11530
- end: e.length
11531
- });
11532
- break;
11533
- }
11534
- t.push({
11535
- start: r,
11536
- end: i + 1
11537
- }), n = i + 1;
11538
- }
11539
- return t;
11573
+ function Vh(e) {
11574
+ return tm(e, { allowUnclosed: !0 }).map(({ position: e }) => ({
11575
+ start: e.start,
11576
+ end: e.stop
11577
+ }));
11540
11578
  }
11541
- function zh(e, t) {
11579
+ function Hh(e, t) {
11542
11580
  return e ? t.some((t) => e.start >= t.start && e.stop <= t.end) : !1;
11543
11581
  }
11544
- function Bh(e, t) {
11545
- return zh(e, t);
11582
+ function Uh(e, t) {
11583
+ return Hh(e, t);
11546
11584
  }
11547
- function Vh(e) {
11585
+ function Wh(e) {
11548
11586
  if (!e.includes("«")) return e;
11549
- let t = e.split(""), n = !1;
11550
- for (let e = 0; e < t.length; e++) {
11551
- let r = t[e];
11552
- if (r === "«") {
11553
- n = !0;
11554
- continue;
11555
- }
11556
- if (r === "»") {
11557
- n = !1;
11558
- continue;
11559
- }
11560
- n && (t[e] = " ");
11561
- }
11587
+ let t = e.split("");
11588
+ for (let { start: n, end: r } of Vh(e)) for (let e = n + 1; e < r; e++) t[e] === "«" || t[e] === "»" || (t[e] = " ");
11562
11589
  return t.join("");
11563
11590
  }
11564
11591
  //#endregion
11565
11592
  //#region src/lib/text_parsers/action_citation_patterns.ts
11566
- function Hh(e) {
11593
+ function Gh(e) {
11567
11594
  return `(?:${e.join("|")})`;
11568
11595
  }
11569
- var Uh = [
11596
+ var Kh = [
11570
11597
  "(?:à\\s+|de\\s+)?l[’']année",
11571
11598
  "(?:à\\s+|de\\s+)?la date",
11572
11599
  "(?:à\\s+|de\\s+)?la mention",
@@ -11584,7 +11611,7 @@ var Uh = [
11584
11611
  "(?:aux|des|les)\\s+nombres",
11585
11612
  "(?:aux|des|les)\\s+références",
11586
11613
  "le tableau intitulé"
11587
- ], Wh = [
11614
+ ], qh = [
11588
11615
  "l[’']année",
11589
11616
  "la date",
11590
11617
  "la mention",
@@ -11602,10 +11629,10 @@ var Uh = [
11602
11629
  "les mots",
11603
11630
  "les nombres",
11604
11631
  "les références"
11605
- ], Gh = Hh(Uh), Kh = Hh(Wh);
11632
+ ], Jh = Gh(Kh), Yh = Gh(qh);
11606
11633
  //#endregion
11607
11634
  //#region src/lib/text_parsers/action_directives.ts
11608
- function qh(e) {
11635
+ function Xh(e) {
11609
11636
  return e.type === "reference_et_action" ? {
11610
11637
  action: e.action,
11611
11638
  reference: e.reference
@@ -11614,7 +11641,7 @@ function qh(e) {
11614
11641
  reference: e
11615
11642
  };
11616
11643
  }
11617
- function Jh(e) {
11644
+ function Zh(e) {
11618
11645
  let t = e.indices?.[0]?.[0] ?? e.index, n = /« ?(.*?) ?»/dg, r = [], i;
11619
11646
  for (; (i = n.exec(e[0])) !== null;) {
11620
11647
  let e = i.indices?.[1], n = i.indices?.[0];
@@ -11630,21 +11657,21 @@ function Jh(e) {
11630
11657
  }
11631
11658
  return r;
11632
11659
  }
11633
- var Yh = a([
11634
- _(`${Gh}s?`, { flags: "i" }),
11660
+ var Qh = a([
11661
+ _(`${Jh}s?`, { flags: "i" }),
11635
11662
  _(" ?: ?"),
11636
11663
  Z
11637
- ], { value: (e) => e[2] }), Xh = a([
11638
- _(`${Kh}s?(?: suivant(?:e)?s?)?`, { flags: "i" }),
11664
+ ], { value: (e) => e[2] }), $h = a([
11665
+ _(`${Yh}s?(?: suivant(?:e)?s?)?`, { flags: "i" }),
11639
11666
  _(" ?: ?"),
11640
11667
  Z
11641
- ], { value: (e) => e[2] }), Zh = a([
11668
+ ], { value: (e) => e[2] }), eg = a([
11642
11669
  w,
11643
- Yh,
11670
+ Qh,
11644
11671
  C,
11645
11672
  o(_("est remplacée? par", { flags: "i" }), _("sont remplacée?s par", { flags: "i" })),
11646
11673
  C,
11647
- Xh
11674
+ $h
11648
11675
  ], { value: (e) => ({
11649
11676
  action: {
11650
11677
  action: "remplacer",
@@ -11655,9 +11682,9 @@ var Yh = a([
11655
11682
  replacementCitation: e[5],
11656
11683
  targetCitation: e[1]
11657
11684
  }
11658
- }) }), Qh = o(_(`(?:, ?| )(?:${Gh}s? ?: ?« ?[^»]+ ?»(?: ?(?:,|et) ?)*)+(?:est|sont) (?:supprimée?s?|abrogée?s?)`, {
11685
+ }) }), tg = o(_(`(?:, ?| )(?:${Jh}s? ?: ?« ?[^»]+ ?»(?: ?(?:,|et) ?)*)+(?:est|sont) (?:supprimée?s?|abrogée?s?)`, {
11659
11686
  flags: "di",
11660
- value: (e) => Jh(e).map((e) => ({
11687
+ value: (e) => Zh(e).map((e) => ({
11661
11688
  action: {
11662
11689
  action: "supprimer",
11663
11690
  actionInContent: !0
@@ -11669,8 +11696,8 @@ var Yh = a([
11669
11696
  }))
11670
11697
  }), a([
11671
11698
  w,
11672
- Yh,
11673
- b([_("(?:, ?| et )"), Yh], { value: (e) => e.map((e) => e[1]) }),
11699
+ Qh,
11700
+ b([_("(?:, ?| et )"), Qh], { value: (e) => e.map((e) => e[1]) }),
11674
11701
  C,
11675
11702
  o(_("est supprimée?", { flags: "i" }), _("sont supprimée?s", { flags: "i" }), _("est abrogée?", { flags: "i" }), _("sont abrogée?s", { flags: "i" }))
11676
11703
  ], { value: (e) => [e[1], ...e[2] ?? []].map((e) => ({
@@ -11682,9 +11709,9 @@ var Yh = a([
11682
11709
  kind: "delete",
11683
11710
  targetCitation: e
11684
11711
  }
11685
- })) })), $h = o(a([
11712
+ })) })), ng = o(a([
11686
11713
  w,
11687
- rh,
11714
+ oh,
11688
11715
  C,
11689
11716
  _("(?:la référence|la mention|le mot|les mots|le signe)", { flags: "i" }),
11690
11717
  _(" ?: ?"),
@@ -11700,10 +11727,10 @@ var Yh = a([
11700
11727
  },
11701
11728
  operation: {
11702
11729
  insertCitation: e[9],
11703
- kind: ah(e[1]),
11730
+ kind: ch(e[1]),
11704
11731
  targetCitation: e[5]
11705
11732
  }
11706
- }) }), Zh, Qh, a([
11733
+ }) }), eg, tg, a([
11707
11734
  w,
11708
11735
  o(_("est ainsi rédigée?", { flags: "i" }), _("sont ainsi rédigée?s", { flags: "i" }), _("est rédigée? (?:ainsi qu'il|comme) suit", { flags: "i" }), _("sont rédigée?s (?:ainsi qu'il|comme) suit", { flags: "i" })),
11709
11736
  _(" ?: ?"),
@@ -11718,27 +11745,27 @@ var Yh = a([
11718
11745
  replacementCitation: e[3],
11719
11746
  replacementKind: "text"
11720
11747
  }
11721
- }) })), eg = o($h, a([_(" et"), $h], { value: (e) => e[1] })), tg = S(o(a([
11748
+ }) })), rg = o(ng, a([_(" et"), ng], { value: (e) => e[1] })), ig = S(o(a([
11722
11749
  C,
11723
11750
  _("par", { flags: "i" }),
11724
11751
  C,
11725
- Xh
11752
+ $h
11726
11753
  ], { value: (e) => ({
11727
11754
  citation: e[3],
11728
11755
  kind: "replace"
11729
- }) }), a([C, Xh], { value: (e) => ({
11756
+ }) }), a([C, $h], { value: (e) => ({
11730
11757
  citation: e[1],
11731
11758
  kind: "insert"
11732
11759
  }) })), { default: null });
11733
- function ng(e) {
11760
+ function ag(e) {
11734
11761
  return typeof e == "object" && !!e && "action" in e && "operation" in e;
11735
11762
  }
11736
- function rg(e) {
11763
+ function og(e) {
11737
11764
  let t = [];
11738
- for (let n of e) ng(n) ? t.push(n) : Array.isArray(n) && t.push(...rg(n));
11765
+ for (let n of e) ag(n) ? t.push(n) : Array.isArray(n) && t.push(...og(n));
11739
11766
  return t;
11740
11767
  }
11741
- function ig(e, t) {
11768
+ function sg(e, t) {
11742
11769
  if (!e) return [];
11743
11770
  let n = e.originalCitations ?? [];
11744
11771
  if (e.action === "remplacer") {
@@ -11786,12 +11813,12 @@ function ig(e, t) {
11786
11813
  }
11787
11814
  return [];
11788
11815
  }
11789
- var ag = xe("après|avant|remplacée?s?|supprimée?s?|abrogée?s?|ins[eé]r[eé]e?s?|ajout[eé]e?s?|rédigée?s?", a([
11790
- Hm,
11791
- tg,
11792
- b(eg, { value: (e) => rg(e) })
11816
+ var cg = xe("après|avant|remplacée?s?|supprimée?s?|abrogée?s?|ins[eé]r[eé]e?s?|ajout[eé]e?s?|rédigée?s?", a([
11817
+ Gm,
11818
+ ig,
11819
+ b(rg, { value: (e) => og(e) })
11793
11820
  ], { value: (e, t) => {
11794
- let { action: n, reference: r } = qh(e[0]), i = [...ig(n, e[1]), ...e[2] ?? []], a = n ?? i[0]?.action;
11821
+ let { action: n, reference: r } = Xh(e[0]), i = [...sg(n, e[1]), ...e[2] ?? []], a = n ?? i[0]?.action;
11795
11822
  if (!(!a || i.length === 0)) return {
11796
11823
  action: a,
11797
11824
  operations: i.map(({ operation: e }) => e),
@@ -11799,7 +11826,7 @@ var ag = xe("après|avant|remplacée?s?|supprimée?s?|abrogée?s?|ins[eé]r[eé]
11799
11826
  reference: r,
11800
11827
  type: "action_directive"
11801
11828
  };
11802
- } }), 200), og = a([
11829
+ } }), 200), lg = a([
11803
11830
  _("la\\s+fin\\s+de\\s+", { flags: "i" }),
11804
11831
  S(_("(?:la\\s+|l['’]\\s*)", { flags: "i" }), { default: "" }),
11805
11832
  o(_("phrase", {
@@ -11816,14 +11843,14 @@ var ag = xe("après|avant|remplacée?s?|supprimée?s?|abrogée?s?|ins[eé]r[eé]
11816
11843
  type: "tail_after_target",
11817
11844
  unit: e[2]
11818
11845
  }) });
11819
- function sg(e) {
11846
+ function ug(e) {
11820
11847
  if (e.type === "phrase") return "phrase";
11821
11848
  if (e.type === "alinéa") return "alinéa";
11822
11849
  if (e.type === "article") return "article";
11823
- if (e.type === "parent-enfant") return sg(e.child);
11850
+ if (e.type === "parent-enfant") return ug(e.child);
11824
11851
  }
11825
- function cg(e) {
11826
- let t = uh(e);
11852
+ function dg(e) {
11853
+ let t = ph(e);
11827
11854
  if (!/\bla\s+fin\s+d/iu.test(t)) return null;
11828
11855
  let n = /\bla\s+fin\s+(?:de\s+la|d['’]?une|du|de\s+l['’]?|des)\s*[^,;.]*\bphrase\b/u.test(t) ? "phrase" : /\bla\s+fin\s+(?:de\s+la|d['’]?un|du|de\s+l['’]?|des)\s*[^,;.]*\balinea\b/u.test(t) ? "alinéa" : /\bla\s+fin\s+(?:de\s+l['’]?|d['’]?)article\b/u.test(t) ? "article" : void 0;
11829
11856
  return {
@@ -11833,24 +11860,28 @@ function cg(e) {
11833
11860
  }
11834
11861
  //#endregion
11835
11862
  //#region src/lib/text_parsers/action_occurrences.ts
11836
- function lg(e) {
11863
+ function fg(e) {
11837
11864
  return e.replace(/\s+/gu, " ").trim().normalize("NFD").replace(/[\u0300-\u036f]/gu, "").replace(/[’‘]/gu, "'").toLowerCase();
11838
11865
  }
11839
- function ug(e, t) {
11866
+ function pg(e, t) {
11840
11867
  let n = e.slice(0, Math.max(0, t)), r = RegExp(`\\b(${_e})\\s+occurrence\\b`, "giu"), i = null, a;
11841
11868
  for (; (a = r.exec(n)) !== null;) {
11869
+ if (/^derni(?:ère|ere)$/iu.test(a[1] ?? "")) {
11870
+ i = -1;
11871
+ continue;
11872
+ }
11842
11873
  let e = ge(a[1] ?? "");
11843
11874
  e && e > 0 && (i = e);
11844
11875
  }
11845
11876
  return i;
11846
11877
  }
11847
- function dg(e) {
11848
- let t = lg(e);
11849
- return /\b(?:derniere\s+occurrence|a\s+la\s+fin)\b/u.test(t) ? "last" : ug(e, e.length) ?? void 0;
11878
+ function mg(e) {
11879
+ let t = fg(e);
11880
+ return /\b(?:derniere\s+occurrence|a\s+la\s+fin)\b/u.test(t) ? "last" : pg(e, e.length) ?? void 0;
11850
11881
  }
11851
11882
  //#endregion
11852
11883
  //#region src/lib/extractors/action_directives.ts
11853
- function fg() {
11884
+ function hg() {
11854
11885
  return {
11855
11886
  applyApplicabilityDatesMs: 0,
11856
11887
  buildListItemTreeMs: 0,
@@ -11886,31 +11917,31 @@ function fg() {
11886
11917
  function Q(e, t, n) {
11887
11918
  e !== void 0 && (e[t] += Math.round((performance.now() - n) * 10) / 10);
11888
11919
  }
11889
- var pg = "(?:(?:alinea|alineas|section|sous-section|paragraphe|sous-paragraphe|sous-sous-paragraphe|chapitre|titre|livre|partie)|(?:[ivxlcdm]+|[a-z]|\\d+\\s*°?)(?:\\s+(?:bis|ter|quater|quinquies|sexies|septies|octies|nonies|decies|undecies|duodecies))?)", mg = "(?:un|une|l['’]?|le|la)";
11890
- function hg(e) {
11920
+ var gg = "(?:(?:alinea|alineas|section|sous-section|paragraphe|sous-paragraphe|sous-sous-paragraphe|chapitre|titre|livre|partie)|(?:[ivxlcdm]+|[a-z]|\\d+\\s*°?)(?:\\s+(?:bis|ter|quater|quinquies|sexies|septies|octies|nonies|decies|undecies|duodecies))?)", _g = "(?:un|une|l['’]?|le|la)";
11921
+ function vg(e) {
11891
11922
  return /\b(?:les?|la|l['’]?)\s+(?:mots?|references?|mentions?|signes?|nombres?|montants?|taux|pourcentages?|dates?|annees?)\b/u.test(e);
11892
11923
  }
11893
- function gg(e) {
11924
+ function yg(e) {
11894
11925
  return /\b(?:une|la|les?)\s+phrases?\b/u.test(e);
11895
11926
  }
11896
- function _g(e) {
11897
- return new RegExp(String.raw`\b(?:insere(?:e|es|s)?|ajoute(?:e|es|s)?|complete(?:e|es|s)?|retabli(?:e|es|s)?)\b[\s\S]{0,90}\b${mg}\s+${pg}\b`, "u").test(e) ? !0 : new RegExp(String.raw`\b${mg}\s+${pg}\b[\s\S]{0,90}\b(?:est|sont)\s+(?:ainsi\s+)?(?:insere(?:e|es|s)?|ajoute(?:e|es|s)?|complete(?:e|es|s)?|retabli(?:e|es|s)?)\b`, "u").test(e);
11927
+ function bg(e) {
11928
+ return new RegExp(String.raw`\b(?:insere(?:e|es|s)?|ajoute(?:e|es|s)?|complete(?:e|es|s)?|retabli(?:e|es|s)?)\b[\s\S]{0,90}\b${_g}\s+${gg}\b`, "u").test(e) ? !0 : new RegExp(String.raw`\b${_g}\s+${gg}\b[\s\S]{0,90}\b(?:est|sont)\s+(?:ainsi\s+)?(?:insere(?:e|es|s)?|ajoute(?:e|es|s)?|complete(?:e|es|s)?|retabli(?:e|es|s)?)\b`, "u").test(e);
11898
11929
  }
11899
- function vg({ hasRedactionIntro: e, insertText: t, normalized: n }) {
11900
- if (!hg(n) && !gg(n) && (_g(n) && /\balinea\b/u.test(n) || e && Sp(t))) return "block";
11930
+ function xg({ hasRedactionIntro: e, insertText: t, normalized: n }) {
11931
+ if (!vg(n) && !yg(n) && (bg(n) && /\balinea\b/u.test(n) || e && Sp(t))) return "block";
11901
11932
  }
11902
- function yg({ hasRedactionIntro: e, normalized: t, replacementText: n }) {
11903
- if (!gg(t) && (e && /\balineas?\b/u.test(t) || e && Sp(n))) return "block";
11933
+ function Sg({ hasRedactionIntro: e, normalized: t, replacementText: n }) {
11934
+ if (!yg(t) && (e && /\balineas?\b/u.test(t) || e && Sp(n))) return "block";
11904
11935
  }
11905
- function bg(e) {
11936
+ function Cg(e) {
11906
11937
  let t = Cp(e);
11907
11938
  return t ? t.restText : e;
11908
11939
  }
11909
- function xg(e) {
11910
- let t = bg(e);
11940
+ function wg(e) {
11941
+ let t = Cg(e);
11911
11942
  return t === e ? e.replace(yp, "") : t;
11912
11943
  }
11913
- function Sg(e) {
11944
+ function Tg(e) {
11914
11945
  let t = e.split("\n"), n = [], r = 0;
11915
11946
  for (let e of t) {
11916
11947
  let t = r, i = t + e.length;
@@ -11922,10 +11953,10 @@ function Sg(e) {
11922
11953
  }
11923
11954
  return n;
11924
11955
  }
11925
- function Cg(e) {
11956
+ function Eg(e) {
11926
11957
  return Cp(e) !== void 0 || yp.test(e);
11927
11958
  }
11928
- function wg(e) {
11959
+ function Dg(e) {
11929
11960
  if (yp.test(e)) return {
11930
11961
  marker: "-",
11931
11962
  level: 5
@@ -11933,118 +11964,118 @@ function wg(e) {
11933
11964
  let t = Cp(e);
11934
11965
  return t ? {
11935
11966
  marker: t.token,
11936
- level: Tg(t.token)
11967
+ level: Og(t.token)
11937
11968
  } : null;
11938
11969
  }
11939
- function Tg(e) {
11970
+ function Og(e) {
11940
11971
  let t = e.trim().split(/\s+/u)[0]?.replace(/[^\p{L}\p{N}]+/gu, "") ?? "";
11941
11972
  return /^\d+$/u.test(t) ? 2 : /^[ivxlcdm]+$/u.test(t) && (t.length > 1 || /^[ivx]$/u.test(t)) ? 4 : /^[a-z]$/u.test(t) ? 3 : xp(t) || /^[A-Z]$/u.test(t) ? 1 : 2;
11942
11973
  }
11943
- function Eg(e) {
11974
+ function kg(e) {
11944
11975
  let t = [], n = e;
11945
11976
  for (;;) {
11946
- let e = wg(n);
11977
+ let e = Dg(n);
11947
11978
  if (!e) return t;
11948
11979
  t.push(e.marker);
11949
- let r = xg(n);
11980
+ let r = wg(n);
11950
11981
  if (r === n) return t;
11951
11982
  n = r.trimStart();
11952
11983
  }
11953
11984
  }
11954
- function Dg(e) {
11955
- let t = uh(Lh(e, Ih(e)));
11956
- return /(?:^|[;:.]\s*)(?:(?:il\s+)?est|sont)\s+(?:inseree?s?|ajoutee?s?)\s+(?:la\s+reference|la\s+mention|les\s+mots|le\s+mot|le\s+signe|les\s+references)?\s*:/.exec(t)?.index ?? null;
11985
+ function Ag(e) {
11986
+ let t = ph(Bh(e, zh(e))), n = String.raw`(?:(?:la\s+reference|la\s+mention|les\s+mots|le\s+mot|le\s+signe|les\s+references)|(?:${_g}\s+${gg}))?`;
11987
+ return new RegExp(String.raw`(?:^|[;:.]\s*)(?:(?:il\s+)?est|sont)\s+${"(?:insere(?:e|es|s)?|ajoute(?:e|es|s)?)"}\s+${n}\s*(?:ainsi\s+redigee?s?)?\s*:`, "u").exec(t)?.index ?? null;
11957
11988
  }
11958
- function Og(e) {
11959
- let t = Dg(e);
11989
+ function jg(e) {
11990
+ let t = Ag(e);
11960
11991
  if (t !== null) return t;
11961
11992
  for (let t = 0; t < e.length; t += 1) {
11962
11993
  let n = new x(e.slice(t));
11963
- if (jm(n) && n.offset > 0) return t;
11994
+ if (Pm(n) && n.offset > 0) return t;
11964
11995
  }
11965
11996
  return null;
11966
11997
  }
11967
- function kg() {
11998
+ function Mg() {
11968
11999
  return {
11969
12000
  actionIndexByText: /* @__PURE__ */ new Map(),
11970
12001
  quoteRangesByText: /* @__PURE__ */ new Map(),
11971
12002
  referencesByText: /* @__PURE__ */ new Map()
11972
12003
  };
11973
12004
  }
11974
- function Ag(e, t, n) {
11975
- if (e === void 0) return Og(t);
12005
+ function Ng(e, t, n) {
12006
+ if (e === void 0) return jg(t);
11976
12007
  if (e.actionIndexByText.has(t)) return n !== void 0 && (n.listActionIndexCacheHitCount += 1), e.actionIndexByText.get(t) ?? null;
11977
12008
  n !== void 0 && (n.listActionIndexCacheMissCount += 1);
11978
- let r = Og(t);
12009
+ let r = jg(t);
11979
12010
  return e.actionIndexByText.set(t, r), r;
11980
12011
  }
11981
- function jg(e, t, n) {
11982
- if (e === void 0) return Rh(t);
12012
+ function Pg(e, t, n) {
12013
+ if (e === void 0) return Vh(t);
11983
12014
  let r = e.quoteRangesByText.get(t);
11984
12015
  if (r !== void 0) return n !== void 0 && (n.listQuoteRangeCacheHitCount += 1), r;
11985
12016
  n !== void 0 && (n.listQuoteRangeCacheMissCount += 1);
11986
- let i = Rh(t);
12017
+ let i = Vh(t);
11987
12018
  return e.quoteRangesByText.set(t, i), i;
11988
12019
  }
11989
- function Mg(e, t, n) {
11990
- if (e === void 0) return eh(new x(t));
12020
+ function Fg(e, t, n) {
12021
+ if (e === void 0) return rh(new x(t));
11991
12022
  let r = e.referencesByText.get(t);
11992
12023
  if (r !== void 0) return n !== void 0 && (n.listReferenceCacheHitCount += 1), structuredClone(r);
11993
12024
  n !== void 0 && (n.listReferenceCacheMissCount += 1);
11994
- let i = eh(new x(t));
12025
+ let i = rh(new x(t));
11995
12026
  return e.referencesByText.set(t, structuredClone(i)), i;
11996
12027
  }
11997
- function Ng(e) {
12028
+ function Ig(e) {
11998
12029
  return e.type === "reference_et_action" ? e.reference : e;
11999
12030
  }
12000
- function Pg(e, t, n, r = e.length) {
12001
- let i = jg(t, e, n);
12002
- return Mg(t, e, n).map(Ng).find((e) => xt(e) === "article" && !Bh(e.position, i) && (e.position?.start ?? 0) < r) || (W_(Vh(e).slice(0, r))?.reference ?? null);
12031
+ function Lg(e, t, n, r = e.length) {
12032
+ let i = Pg(t, e, n);
12033
+ return Fg(t, e, n).map(Ig).find((e) => xt(e) === "article" && !Uh(e.position, i) && (e.position?.start ?? 0) < r) || (Q_(Wh(e).slice(0, r))?.reference ?? null);
12003
12034
  }
12004
- function Fg(e, t, n, r) {
12005
- let i = jg(n, e, r), a = Mg(n, e, r), o = a.flatMap((e) => Array.from(D(Ng(e)))).filter((e) => e.type === "article" && e.position).map((e) => ({
12035
+ function Rg(e, t, n, r) {
12036
+ let i = Pg(n, e, r), a = Fg(n, e, r), o = a.flatMap((e) => Array.from(D(Ig(e)))).filter((e) => e.type === "article" && e.position).map((e) => ({
12006
12037
  start: e.position.start,
12007
12038
  end: e.position.stop
12008
- })), s = a.map(Ng).filter((e) => !Bh(e.position, i) && !zh(e.position, o) && xt(e) !== "article" && (e.position?.start ?? 0) < t).sort((e, t) => (e.position?.start ?? 0) - (t.position?.start ?? 0)), c = e.slice(0, t).trimEnd(), l = Oh(O_(c), 0) ?? Oh(c, 0) ?? Oh(c.replace(/\b(?:est|sont)\s*$/iu, "").trimEnd(), 0), u = l && !zh(l.position, o) ? l : null, d = s[0];
12009
- return d ? jh(d, u) : u;
12039
+ })), s = a.map(Ig).filter((e) => !Uh(e.position, i) && !Hh(e.position, o) && xt(e) !== "article" && (e.position?.start ?? 0) < t).sort((e, t) => (e.position?.start ?? 0) - (t.position?.start ?? 0)), c = e.slice(0, t).trimEnd(), l = jh(N_(c), 0) ?? jh(c, 0) ?? jh(c.replace(/\b(?:est|sont)\s*$/iu, "").trimEnd(), 0), u = l && !Hh(l.position, o) ? l : null, d = s[0];
12040
+ return d ? Ph(d, u) : u;
12010
12041
  }
12011
- function Ig(e, t, n) {
12012
- let r = Ag(t, e, n) ?? e.length, i = jg(t, e, n), a = Mg(t, e, n).map(Ng).filter((e) => !Bh(e.position, i) && (e.position?.start ?? 0) < r).sort((e, t) => (e.position?.start ?? 0) - (t.position?.start ?? 0));
12042
+ function zg(e, t, n) {
12043
+ let r = Ng(t, e, n) ?? e.length, i = Pg(t, e, n), a = Fg(t, e, n).map(Ig).filter((e) => !Uh(e.position, i) && (e.position?.start ?? 0) < r).sort((e, t) => (e.position?.start ?? 0) - (t.position?.start ?? 0));
12013
12044
  return a.length === 0 ? null : a.find((e) => xt(e) !== "article") ?? null ?? a[0] ?? null;
12014
12045
  }
12015
- function Lg(e, t, n) {
12016
- let r = [e, bg(e)].map((e) => e.trim()).filter((e, t, n) => e && n.indexOf(e) === t);
12046
+ function Bg(e, t, n) {
12047
+ let r = [e, Cg(e)].map((e) => e.trim()).filter((e, t, n) => e && n.indexOf(e) === t);
12017
12048
  for (let e of r) {
12018
- let r = Ag(t, e, n) ?? e.length, i = Oh(e, 0) ?? Nh(e, { actionIndex: r }) ?? Ig(e, t, n) ?? Pg(e, t, n);
12049
+ let r = Ng(t, e, n) ?? e.length, i = jh(e, 0) ?? Ih(e, { actionIndex: r }) ?? zg(e, t, n) ?? Lg(e, t, n);
12019
12050
  if (i) return i;
12020
12051
  }
12021
12052
  return null;
12022
12053
  }
12023
- function Rg(e) {
12054
+ function Vg(e) {
12024
12055
  return e?.toLowerCase().replace(/[.)]/g, "").trim();
12025
12056
  }
12026
- function zg(e, t) {
12027
- return !(e.type !== t.type || e.index !== void 0 && t.index !== void 0 && e.index !== t.index || e.num !== void 0 && t.num !== void 0 && Rg(e.num) !== Rg(t.num));
12057
+ function Hg(e, t) {
12058
+ return !(e.type !== t.type || e.index !== void 0 && t.index !== void 0 && e.index !== t.index || e.num !== void 0 && t.num !== void 0 && Vg(e.num) !== Vg(t.num));
12028
12059
  }
12029
- function Bg(e) {
12060
+ function Ug(e) {
12030
12061
  let t = null;
12031
12062
  for (let n of D(e)) t = n;
12032
12063
  return t;
12033
12064
  }
12034
- function Vg(e, t) {
12035
- return t && e.type === "parent-enfant" && zg(e.parent, t) ? e.child : e;
12065
+ function Wg(e, t) {
12066
+ return t && e.type === "parent-enfant" && Hg(e.parent, t) ? e.child : e;
12036
12067
  }
12037
- function Hg(e, t) {
12068
+ function Gg(e, t) {
12038
12069
  let n = null;
12039
12070
  for (let r of D(e)) r.type === t && r.relative === void 0 && (r.index === void 0 && r.num === void 0 || (n = r));
12040
12071
  return n;
12041
12072
  }
12042
- function Ug(e, t) {
12073
+ function Kg(e, t) {
12043
12074
  if (!t) return e;
12044
12075
  let n = structuredClone(e), r = (e) => {
12045
12076
  if (e.type !== "parent-enfant" && e.type !== "bounded-interval" && e.type !== "counted-interval" && e.type !== "enumeration" && e.type !== "exclusion" && e.type !== "reference_et_action") {
12046
12077
  if (e.relative === 0) {
12047
- let n = Hg(t, e.type);
12078
+ let n = Gg(t, e.type);
12048
12079
  n && (e.index = n.index, e.num = n.num, delete e.relative);
12049
12080
  }
12050
12081
  return;
@@ -12070,7 +12101,7 @@ function Ug(e, t) {
12070
12101
  };
12071
12102
  return r(n), n;
12072
12103
  }
12073
- function Wg(e) {
12104
+ function qg(e) {
12074
12105
  let t = (e) => {
12075
12106
  if (e.type !== "parent-enfant" && e.type !== "bounded-interval" && e.type !== "counted-interval" && e.type !== "enumeration" && e.type !== "exclusion" && e.type !== "reference_et_action") return e.relative !== void 0;
12076
12107
  switch (e.type) {
@@ -12084,14 +12115,25 @@ function Wg(e) {
12084
12115
  };
12085
12116
  return t(e);
12086
12117
  }
12087
- function Gg(e) {
12118
+ function Jg(e) {
12088
12119
  let t = [], n = [];
12089
12120
  for (let r of e) {
12090
- if (!Cg(r.text)) {
12091
- n[n.length - 1]?.body.push(r);
12121
+ if (!Eg(r.text)) {
12122
+ let e = n[n.length - 1];
12123
+ if (e && Yg(r.text)) {
12124
+ let i = (e.marker === "" ? e.level - 1 : e.level) + 1, a = {
12125
+ body: [],
12126
+ children: [],
12127
+ level: i,
12128
+ line: r,
12129
+ marker: ""
12130
+ };
12131
+ for (; n.length > 0 && n[n.length - 1].level >= i;) n.pop();
12132
+ n.length === 0 ? t.push(a) : n[n.length - 1]?.children.push(a), n.push(a);
12133
+ } else e?.body.push(r);
12092
12134
  continue;
12093
12135
  }
12094
- let e = wg(r.text), i = e?.level ?? 0, a = {
12136
+ let e = Dg(r.text), i = e?.level ?? 0, a = {
12095
12137
  body: [],
12096
12138
  children: [],
12097
12139
  level: i,
@@ -12103,24 +12145,28 @@ function Gg(e) {
12103
12145
  }
12104
12146
  return t;
12105
12147
  }
12106
- function Kg(e, t, n) {
12148
+ function Yg(e) {
12149
+ let t = wg(e).trim();
12150
+ return !t || iv(t) ? !1 : jg(t) !== null;
12151
+ }
12152
+ function Xg(e, t, n) {
12107
12153
  for (let r of e) {
12108
- let e = Yg(r);
12154
+ let e = $g(r);
12109
12155
  if (e) {
12110
- let r = performance.now(), i = Ag(t, e, n);
12156
+ let r = performance.now(), i = Ng(t, e, n);
12111
12157
  if (Q(n, "listFindActionIndexMs", r), i !== null) return !0;
12112
12158
  }
12113
- if (Kg(r.children, t, n)) return !0;
12159
+ if (Xg(r.children, t, n)) return !0;
12114
12160
  }
12115
12161
  return !1;
12116
12162
  }
12117
- function qg(e, t) {
12163
+ function Zg(e, t) {
12118
12164
  if (!e) return t;
12119
12165
  if (!t) return e;
12120
- let n = Vg(t, Bg(e));
12166
+ let n = Wg(t, Ug(e));
12121
12167
  return n.type === "article" || xt(n), ht(e, n);
12122
12168
  }
12123
- function Jg(e, t) {
12169
+ function Qg(e, t) {
12124
12170
  return {
12125
12171
  ...ht(e, t),
12126
12172
  position: {
@@ -12129,16 +12175,16 @@ function Jg(e, t) {
12129
12175
  }
12130
12176
  };
12131
12177
  }
12132
- function Yg(e) {
12133
- return [xg(e.line.text), ...e.body.map((e) => e.text)].join("\n").trim();
12178
+ function $g(e) {
12179
+ return [wg(e.line.text), ...e.body.map((e) => e.text)].join("\n").trim();
12134
12180
  }
12135
- function Xg(e) {
12181
+ function e_(e) {
12136
12182
  return e.body[e.body.length - 1]?.end ?? e.line.end;
12137
12183
  }
12138
- function Zg(e) {
12184
+ function t_(e) {
12139
12185
  return (e ?? "").replace(/°/gu, "").replace(/\s+/gu, " ").trim();
12140
12186
  }
12141
- function Qg(e, t) {
12187
+ function n_(e, t) {
12142
12188
  let n = new x(e, t), r = me(n);
12143
12189
  return typeof r == "string" && n.offset > t ? {
12144
12190
  date: r,
@@ -12146,14 +12192,14 @@ function Qg(e, t) {
12146
12192
  stop: n.offset
12147
12193
  } : null;
12148
12194
  }
12149
- function $g(e) {
12150
- let t = Rh(e), n = [];
12195
+ function r_(e) {
12196
+ let t = Vh(e), n = [];
12151
12197
  for (let r = 0; r < e.length; r += 1) {
12152
12198
  let i = e[r];
12153
12199
  if (i === void 0 || !/\d/u.test(i)) continue;
12154
- let a = Qg(e, r);
12200
+ let a = n_(e, r);
12155
12201
  if (a) {
12156
- if (zh(a, t)) {
12202
+ if (Hh(a, t)) {
12157
12203
  r = Math.max(r, a.stop - 1);
12158
12204
  continue;
12159
12205
  }
@@ -12162,25 +12208,25 @@ function $g(e) {
12162
12208
  }
12163
12209
  return n;
12164
12210
  }
12165
- function e_(e) {
12166
- return uh(e).replace(/\s+/gu, " ");
12211
+ function i_(e) {
12212
+ return ph(e).replace(/\s+/gu, " ");
12167
12213
  }
12168
- function t_(e) {
12169
- let t = e_(e), n = /\b(?:entr(?:e|ent|era|eront)\s+en\s+vigueur|s['’]?\s*appli(?:que|quent)|est\s+applicable|sont\s+applicables?|applicables?)\b/giu, r = null, i;
12214
+ function a_(e) {
12215
+ let t = i_(e), n = /\b(?:entr(?:e|ent|era|eront)\s+en\s+vigueur|s['’]?\s*appli(?:que|quent)|est\s+applicable|sont\s+applicables?|applicables?)\b/giu, r = null, i;
12170
12216
  for (; (i = n.exec(t)) !== null;) r = i;
12171
12217
  return r;
12172
12218
  }
12173
- function n_(e, t) {
12174
- let n = e_(e.slice(0, t.start)), r = e_(e.slice(t.stop));
12175
- return !!(/\bau\s*$/u.test(n) && r.startsWith(",") || /\ba compter\s+(?:du|de la|de l['’]?|des)?\s*$/u.test(n) || /\babroge(?:e|es|s)?\s+a compter\s+(?:du|de la|de l['’]?|des)?\s*$/u.test(n) || t_(e.slice(0, t.start)));
12219
+ function o_(e, t) {
12220
+ let n = i_(e.slice(0, t.start)), r = i_(e.slice(t.stop));
12221
+ return !!(/\bau\s*$/u.test(n) && r.startsWith(",") || /\ba compter\s+(?:du|de la|de l['’]?|des)?\s*$/u.test(n) || /\babroge(?:e|es|s)?\s+a compter\s+(?:du|de la|de l['’]?|des)?\s*$/u.test(n) || a_(e.slice(0, t.start)));
12176
12222
  }
12177
- function r_(e) {
12178
- return $g(e).find((t) => n_(e, t))?.date;
12223
+ function s_(e) {
12224
+ return r_(e).find((t) => o_(e, t))?.date;
12179
12225
  }
12180
- function i_(e) {
12181
- return e.map((e) => Zg(e.num)).filter((e) => e.length > 0);
12226
+ function c_(e) {
12227
+ return e.map((e) => t_(e.num)).filter((e) => e.length > 0);
12182
12228
  }
12183
- function a_(e, t) {
12229
+ function l_(e, t) {
12184
12230
  let n = e.at(-1), r = t.at(-1);
12185
12231
  if (!n || !r) return [e, t];
12186
12232
  let i = e.slice(0, -1), a = t.slice(0, -1);
@@ -12191,51 +12237,51 @@ function a_(e, t) {
12191
12237
  for (let e = o; e <= s; e += 1) c.push([...i, String(e)]);
12192
12238
  return c;
12193
12239
  }
12194
- function o_(e) {
12240
+ function u_(e) {
12195
12241
  if (e.kind === "single") {
12196
- let t = i_(e.steps);
12242
+ let t = c_(e.steps);
12197
12243
  return t.length > 0 ? [t] : [];
12198
12244
  }
12199
- let t = i_(e.first), n = i_(e.last);
12200
- return t.length === 0 && n.length === 0 ? [] : a_(t, n);
12245
+ let t = c_(e.first), n = c_(e.last);
12246
+ return t.length === 0 && n.length === 0 ? [] : l_(t, n);
12201
12247
  }
12202
- function s_(e) {
12203
- let t = eh(new x(e)), n = [];
12204
- for (let e of t.map(Ng)) {
12248
+ function d_(e) {
12249
+ let t = rh(new x(e)), n = [];
12250
+ for (let e of t.map(Ig)) {
12205
12251
  if (e.type === "article" && e.present) {
12206
12252
  n.push([]);
12207
12253
  continue;
12208
12254
  }
12209
- for (let t of Vp(e)) n.push(...o_(t));
12255
+ for (let t of Vp(e)) n.push(...u_(t));
12210
12256
  }
12211
12257
  return n.filter((e, t, n) => n.findIndex((t) => t.join("\0") === e.join("\0")) === t);
12212
12258
  }
12213
- function c_(e) {
12259
+ function f_(e) {
12214
12260
  let t = [], n = e.split(/(?<=[.;])\s+/u).map((e) => e.trim()).filter(Boolean);
12215
- for (let e of n) for (let n of $g(e)) {
12216
- if (!n_(e, n)) continue;
12217
- let r = t_(e.slice(0, n.start));
12261
+ for (let e of n) for (let n of r_(e)) {
12262
+ if (!o_(e, n)) continue;
12263
+ let r = a_(e.slice(0, n.start));
12218
12264
  if (!r) continue;
12219
- let i = s_(e.slice(0, r.index).trim());
12265
+ let i = d_(e.slice(0, r.index).trim());
12220
12266
  if (i.length === 0) continue;
12221
12267
  t.push({
12222
12268
  date: n.date,
12223
12269
  paths: i
12224
12270
  });
12225
- let a = l_(e.slice(n.stop), i);
12271
+ let a = p_(e.slice(n.stop), i);
12226
12272
  t.push(...a);
12227
12273
  }
12228
12274
  return t;
12229
12275
  }
12230
- function l_(e, t) {
12276
+ function p_(e, t) {
12231
12277
  let n = /(?:^|[^\p{L}\p{N}_])(?:a|à)\s+l['’]exception\s+(.+?)(?:\bqui\b|\bentr(?:e|ent|era|eront)\s+en\s+vigueur\b)/iu.exec(e);
12232
12278
  if (!n) return [];
12233
12279
  let r = n.index + n[0].length, i = n[1]?.trim();
12234
12280
  if (!i) return [];
12235
- let a = s_(i);
12281
+ let a = d_(i);
12236
12282
  if (a.length === 0) return [];
12237
12283
  let o = [];
12238
- for (let n of $g(e.slice(r))) {
12284
+ for (let n of r_(e.slice(r))) {
12239
12285
  let e = n.date;
12240
12286
  o.push({
12241
12287
  date: e,
@@ -12246,44 +12292,44 @@ function l_(e, t) {
12246
12292
  }
12247
12293
  return o;
12248
12294
  }
12249
- function u_(e, t, n) {
12295
+ function m_(e, t, n) {
12250
12296
  return [
12251
12297
  ...e,
12252
- Zg(t.marker),
12253
- ...Eg(n).map(Zg)
12298
+ t_(t.marker),
12299
+ ...kg(n).map(t_)
12254
12300
  ].filter((e) => e.length > 0);
12255
12301
  }
12256
- function d_(e) {
12302
+ function h_(e) {
12257
12303
  let t = [];
12258
- for (let n of e) t.push(...c_(Yg(n))), t.push(...d_(n.children));
12304
+ for (let n of e) t.push(...f_($g(n))), t.push(...h_(n.children));
12259
12305
  return t;
12260
12306
  }
12261
- function f_(e, t) {
12307
+ function g_(e, t) {
12262
12308
  return t.length > e.length ? !1 : t.every((t, n) => e[n] === t);
12263
12309
  }
12264
- function p_(e, t) {
12310
+ function __(e, t) {
12265
12311
  if (t.length > e.length) return !1;
12266
12312
  let n = e.length - t.length;
12267
12313
  return t.every((t, r) => e[n + r] === t);
12268
12314
  }
12269
- function m_(e, t, n) {
12270
- return n ? n.some((n) => m_(e, n) ? m_(e, f_(e, n) ? [...n, ...t] : t) : !1) : t.length === 0 ? !0 : f_(e, t) || p_(e, t);
12315
+ function v_(e, t, n) {
12316
+ return n ? n.some((n) => v_(e, n) ? v_(e, g_(e, n) ? [...n, ...t] : t) : !1) : t.length === 0 ? !0 : g_(e, t) || __(e, t);
12271
12317
  }
12272
- function h_(e, t, n) {
12318
+ function y_(e, t, n) {
12273
12319
  if (e.length === 0 || n.length === 0) return;
12274
12320
  let r = new Map(t.map((e) => [e.directive, e.sourcePath]));
12275
12321
  for (let t of e) {
12276
12322
  if (t.applicabilityDate) continue;
12277
12323
  let e = r.get(t) ?? [], i, a = -1;
12278
12324
  for (let t of n) for (let n of t.paths) {
12279
- if (!m_(e, n, t.parentPaths)) continue;
12325
+ if (!v_(e, n, t.parentPaths)) continue;
12280
12326
  let r = n.length + Math.max(0, ...t.parentPaths?.map((e) => e.length) ?? [0]);
12281
12327
  r > a && (i = t.date, a = r);
12282
12328
  }
12283
12329
  i && (t.applicabilityDate = i);
12284
12330
  }
12285
12331
  }
12286
- function g_(e, t) {
12332
+ function b_(e, t) {
12287
12333
  if (!e) return t;
12288
12334
  if (!t) return e;
12289
12335
  let n = t.rowIndex ?? e.rowIndex, r = t.columnIndex ?? e.columnIndex;
@@ -12293,23 +12339,44 @@ function g_(e, t) {
12293
12339
  ...r ? { columnIndex: r } : {}
12294
12340
  };
12295
12341
  }
12296
- function __(e) {
12342
+ function x_(e) {
12297
12343
  return e !== void 0 && (e.rowIndex !== void 0 || e.columnIndex !== void 0);
12298
12344
  }
12299
- function v_(e, t, n, r, i = [], a = [], o, s) {
12345
+ function S_(e, t, n, r) {
12346
+ if (t.kind === "compound") return null;
12347
+ let i = [...cg.extract(new x(e), { overlapWindow: 100 })];
12348
+ if (i.length < 2) return null;
12349
+ let a = rh(new x(e)).flatMap((e) => [...D(e)]).filter((e) => e.type === "article");
12350
+ if (a.length !== 1) return null;
12351
+ let o = a[0], s = Zg(n, o), c = [t];
12352
+ for (let t = 1; t < i.length; t += 1) {
12353
+ let n = i[t], a = i[t + 1], o = $_(e.slice(n.position.start, a?.position.start ?? e.length), { allowListExtraction: !1 });
12354
+ if (o.length !== 1 || o[0].kind === "compound") return null;
12355
+ let l = o[0];
12356
+ if ([...D(l.reference)].some((e) => e.type === "article")) return null;
12357
+ c.push({
12358
+ ...l,
12359
+ reference: Zg(s, l.reference),
12360
+ sourcePosition: r,
12361
+ sourceText: e
12362
+ });
12363
+ }
12364
+ return c;
12365
+ }
12366
+ function C_(e, t, n, r, i = [], a = [], o, s) {
12300
12367
  let c = [], l = t;
12301
12368
  for (let u of e) {
12302
12369
  s !== void 0 && (s.listItemCount += 1);
12303
- let e = xg(u.line.text), d = u_(i, u, e), f = Yg(u);
12370
+ let e = wg(u.line.text), d = m_(i, u, e), f = $g(u);
12304
12371
  if (!f) continue;
12305
- let p = g_(r, D_(f, r !== void 0)), m, h, g = () => {
12372
+ let p = b_(r, M_(f, r !== void 0)), m, h, g = () => {
12306
12373
  if (m !== void 0) return m;
12307
12374
  let t = performance.now();
12308
- return m = Lg(e, o, s), Q(s, "listPickLineReferenceMs", t), m;
12309
- }, _ = () => (h === void 0 && (h = qg(t, g())), h), v = performance.now(), y = Ag(o, f, s);
12375
+ return m = Bg(e, o, s), Q(s, "listPickLineReferenceMs", t), m;
12376
+ }, _ = () => (h === void 0 && (h = Zg(t, g())), h), v = performance.now(), y = Ng(o, f, s);
12310
12377
  if (Q(s, "listFindActionIndexMs", v), y === null) {
12311
12378
  if (h = _(), u.children.length > 0) {
12312
- let e = h ?? t, r = v_(u.children, e, n, p, d, a, o, s);
12379
+ let e = h ?? t, r = C_(u.children, e, n, p, d, a, o, s);
12313
12380
  r.length > 0 && (c.push(...r), l = r[r.length - 1]?.reference ?? l);
12314
12381
  continue;
12315
12382
  }
@@ -12317,23 +12384,23 @@ function v_(e, t, n, r, i = [], a = [], o, s) {
12317
12384
  continue;
12318
12385
  }
12319
12386
  s !== void 0 && (s.listActionItemCount += 1);
12320
- let b = performance.now(), ee = Fg(f, y ?? f.length, o, s), te = ee === null ? Pg(f, o, s, y ?? f.length) : null, ne = ee ?? te ?? g();
12387
+ let b = performance.now(), ee = Rg(f, y ?? f.length, o, s), te = ee === null ? Lg(f, o, s, y ?? f.length) : null, ne = ee ?? te ?? g();
12321
12388
  Q(s, "listPickLocalReferenceMs", b);
12322
- let x = qg(t, ne) ?? te ?? h;
12389
+ let x = Zg(t, ne) ?? te ?? h;
12323
12390
  if (!x) {
12324
12391
  if (u.children.length > 0) {
12325
- let e = v_(u.children, h ?? t, n, p, d, a, o, s);
12392
+ let e = C_(u.children, h ?? t, n, p, d, a, o, s);
12326
12393
  c.push(...e);
12327
12394
  }
12328
12395
  continue;
12329
12396
  }
12330
- x = Ug(x, Wg(x) ? l ?? t : t);
12331
- let re = performance.now(), ie = U_({
12397
+ x = Kg(x, qg(x) ? l ?? t : t);
12398
+ let re = performance.now(), ie = Z_({
12332
12399
  action: { action: "modifier" },
12333
12400
  reference: x,
12334
12401
  sourcePosition: {
12335
12402
  start: u.line.start,
12336
- stop: Xg(u)
12403
+ stop: e_(u)
12337
12404
  },
12338
12405
  sourceText: f,
12339
12406
  fullText: n,
@@ -12342,45 +12409,44 @@ function v_(e, t, n, r, i = [], a = [], o, s) {
12342
12409
  if (Q(s, "listBuildActionDirectiveMs", re), !ie) {
12343
12410
  if (l = x, u.children.length > 0) {
12344
12411
  h = _();
12345
- let e = v_(u.children, h ?? x, n, p, d, a, o, s);
12412
+ let e = C_(u.children, h ?? x, n, p, d, a, o, s);
12346
12413
  c.push(...e), l = e[e.length - 1]?.reference ?? l;
12347
12414
  }
12348
12415
  continue;
12349
12416
  }
12350
- if (Array.isArray(ie)) {
12351
- c.push(...ie);
12352
- for (let e of ie) a.push({
12353
- directive: e,
12354
- sourcePath: d
12355
- });
12356
- } else c.push(ie), a.push({
12357
- directive: ie,
12417
+ let ae = Array.isArray(ie) ? ie : S_(f, ie, t, {
12418
+ start: u.line.start,
12419
+ stop: e_(u)
12420
+ }) ?? [ie];
12421
+ c.push(...ae);
12422
+ for (let e of ae) a.push({
12423
+ directive: e,
12358
12424
  sourcePath: d
12359
12425
  });
12360
12426
  if (l = x, u.children.length > 0) {
12361
12427
  h = _();
12362
- let e = v_(u.children, h ?? x, n, p, d, a, o, s);
12428
+ let e = C_(u.children, h ?? x, n, p, d, a, o, s);
12363
12429
  e.length > 0 && (c.push(...e), l = e[e.length - 1]?.reference ?? l);
12364
12430
  }
12365
12431
  }
12366
- return H_(c);
12432
+ return X_(c);
12367
12433
  }
12368
- function y_(e, t) {
12369
- let n = Sg(e), r = n.findIndex((e) => Cg(e.text));
12434
+ function w_(e, t) {
12435
+ let n = Tg(e), r = n.findIndex((e) => Eg(e.text));
12370
12436
  if (r === -1) return null;
12371
- let i = kg(), a = performance.now(), o = Gg(n.slice(r));
12372
- if (Q(t, "buildListItemTreeMs", a), !Kg(o, i, t)) return null;
12437
+ let i = Mg(), a = performance.now(), o = Jg(n.slice(r));
12438
+ if (Q(t, "buildListItemTreeMs", a), !Xg(o, i, t)) return null;
12373
12439
  let s = performance.now(), c = null;
12374
- for (let e = r - 1; e >= 0 && (c = Lg(n[e]?.text ?? "", i, t), c === null); --e);
12440
+ for (let e = r - 1; e >= 0 && (c = Bg(n[e]?.text ?? "", i, t), c === null); --e);
12375
12441
  Q(t, "findBaseReferenceMs", s);
12376
- let l = [], u = performance.now(), d = v_(o, c, e, void 0, [], l, i, t);
12442
+ let l = [], u = performance.now(), d = C_(o, c, e, void 0, [], l, i, t);
12377
12443
  Q(t, "processListItemNodesMs", u);
12378
- let f = performance.now(), p = d_(o);
12444
+ let f = performance.now(), p = h_(o);
12379
12445
  Q(t, "collectApplicabilityScopesMs", f);
12380
12446
  let m = performance.now();
12381
- return h_(d, l, p), Q(t, "applyApplicabilityDatesMs", m), d.length > 0 ? d : null;
12447
+ return y_(d, l, p), Q(t, "applyApplicabilityDatesMs", m), d.length > 0 ? d : null;
12382
12448
  }
12383
- function b_(e, t) {
12449
+ function T_(e, t) {
12384
12450
  let n = e.indexOf("«");
12385
12451
  if (n === -1) return;
12386
12452
  let r = e.indexOf("»", n + 1);
@@ -12395,40 +12461,40 @@ function b_(e, t) {
12395
12461
  }
12396
12462
  };
12397
12463
  }
12398
- function x_(e) {
12399
- let t = uh(e);
12464
+ function E_(e) {
12465
+ let t = ph(e);
12400
12466
  return /\btableau\b/.test(t) && /\b(?:tableau|celui)\s+(?:suivant|ainsi\s+redigee?|ainsi\s+rediges|ainsi\s+redigees)\b/.test(t);
12401
12467
  }
12402
- function S_(e) {
12403
- for (let t of Sg(e)) {
12404
- if (!x_(t.text)) continue;
12468
+ function D_(e) {
12469
+ for (let t of Tg(e)) {
12470
+ if (!E_(t.text)) continue;
12405
12471
  let e = t.text.indexOf(":");
12406
12472
  return e === -1 ? t.end : t.start + e + 1;
12407
12473
  }
12408
12474
  return null;
12409
12475
  }
12410
- function C_(e, t) {
12411
- let n = S_(e);
12412
- return n === null ? b_(e, t) : b_(e.slice(n), t + n);
12476
+ function O_(e, t) {
12477
+ let n = D_(e);
12478
+ return n === null ? T_(e, t) : T_(e.slice(n), t + n);
12413
12479
  }
12414
- function w_(e, t) {
12415
- return ug(e, t);
12480
+ function k_(e, t) {
12481
+ return pg(e, t);
12416
12482
  }
12417
- function T_(e, t) {
12418
- let n = Dm(e, t);
12483
+ function A_(e, t) {
12484
+ let n = Am(e, t);
12419
12485
  return n && n > 1 ? n : void 0;
12420
12486
  }
12421
- function E_(e, t) {
12487
+ function j_(e, t) {
12422
12488
  if (!Array.isArray(e) || e.length < 2 || t.length < e.length) return e;
12423
12489
  let n = e[0];
12424
12490
  return e.some((e) => JSON.stringify(e) !== JSON.stringify(n)) ? e : n;
12425
12491
  }
12426
- function D_(e, t = !1) {
12427
- let n = Lh(e, Ih(e)), r = uh(n), i = /\btableau\b/.test(r);
12492
+ function M_(e, t = !1) {
12493
+ let n = Bh(e, zh(e)), r = ph(n), i = /\btableau\b/.test(r);
12428
12494
  if (!i && !t) return;
12429
12495
  let a = (e) => {
12430
12496
  if (!e) return;
12431
- let t = e.replace(/^(?:a|à)\s+la\s+/iu, "").trim(), n = uh(t);
12497
+ let t = e.replace(/^(?:a|à)\s+la\s+/iu, "").trim(), n = ph(t);
12432
12498
  if (/^derni(?:er|ere)s?\b/u.test(n)) return -1;
12433
12499
  let r = ge(t);
12434
12500
  return r && r > 0 ? r : void 0;
@@ -12449,30 +12515,30 @@ function D_(e, t = !1) {
12449
12515
  let l = /\bla\s+(.+?)\s+ligne\b/iu.exec(n), u = /\bla\s+(.+?)\s+colonne\b/iu.exec(n);
12450
12516
  return o(a(l?.[1]), a(u?.[1])) || (i ? { type: "table" } : void 0);
12451
12517
  }
12452
- function O_(e) {
12518
+ function N_(e) {
12453
12519
  return e.replace(/(?:[,;:]\s*)?(?:(?:le|la|les|l['’])\s+)?(?:année|date|dispositions?|mention|montant|mot|mots|nombre|nombres|pourcentage|référence|références|signe|taux|texte|phrase|phrases|tableau)(?:\s+[^,;:]*)?\s*:?\s*$/iu, "").trimEnd();
12454
12520
  }
12455
- function k_(e) {
12521
+ function P_(e) {
12456
12522
  return e.replace(/(?:[,;:]\s*)?(?:(?:le|la|les|l['’])\s+)?(?:année|date|dispositions?|mention|montant|mot|mots|nombre|nombres|pourcentage|référence|références|signe|taux|texte|tableau)(?:\s+[^,;:]*)?\s*:?\s*$/iu, "").trimEnd();
12457
12523
  }
12458
- var A_ = [
12459
- j_("(?:la\\s+date\\s+d(?:u|e|[’']))"),
12460
- j_("(?:le\\s+montant\\s+d(?:e|[’']))"),
12461
- j_("(?:la\\s+référence\\s+à)")
12524
+ var F_ = [
12525
+ I_("(?:la\\s+date\\s+d(?:u|e|[’']))"),
12526
+ I_("(?:le\\s+montant\\s+d(?:e|[’']))"),
12527
+ I_("(?:la\\s+référence\\s+à)")
12462
12528
  ];
12463
- function j_(e) {
12529
+ function I_(e) {
12464
12530
  return new RegExp(String.raw`(?:^|[,;:]\s*)${e}\s+(?<target>.+?)\s+(?:est|sont)\s+remplac[eé]e?s?\s+par\s+${e}\s+(?<replacement>.+?)(?=\s*(?:[.;]|$))`, "iu");
12465
12531
  }
12466
- function M_(e) {
12532
+ function L_(e) {
12467
12533
  return e.replace(/\s+/gu, " ").replace(/\s+([,;])/gu, "$1").trim();
12468
12534
  }
12469
- function N_(e) {
12535
+ function R_(e) {
12470
12536
  if (e.includes("«") || e.includes("»")) return null;
12471
- for (let t of A_) {
12537
+ for (let t of F_) {
12472
12538
  let n = t.exec(e), r = n?.groups?.target, i = n?.groups?.replacement;
12473
12539
  if (!(!r || !i)) return {
12474
- targetText: M_(r),
12475
- replacementText: M_(i),
12540
+ targetText: L_(r),
12541
+ replacementText: L_(i),
12476
12542
  operandRange: {
12477
12543
  start: n.index,
12478
12544
  end: n.index + n[0].length
@@ -12481,30 +12547,64 @@ function N_(e) {
12481
12547
  }
12482
12548
  return null;
12483
12549
  }
12484
- function P_(e) {
12485
- let t = N_(e);
12550
+ function z_(e, t) {
12551
+ return mh(ph(e.slice(0, t.start)), ph(e));
12552
+ }
12553
+ function B_(e) {
12554
+ return /^[\s.;]*$/u.test(e);
12555
+ }
12556
+ function V_(e, t) {
12557
+ let n = [];
12558
+ for (let r = 0; r < t.length; r++) {
12559
+ let i = t[r];
12560
+ if (i.closed === !1 && !z_(e, i)) continue;
12561
+ if (!z_(e, i)) {
12562
+ n.push(i);
12563
+ continue;
12564
+ }
12565
+ let a = [i];
12566
+ for (; r + 1 < t.length;) {
12567
+ let n = t[r + 1];
12568
+ if (!B_(e.slice(a.at(-1).end, n.start))) break;
12569
+ a.push(n), r++;
12570
+ }
12571
+ n.push({
12572
+ closed: a.every((e) => e.closed !== !1),
12573
+ text: a.map((e) => e.text).join("\n"),
12574
+ start: a[0].start,
12575
+ end: a.at(-1).end
12576
+ });
12577
+ }
12578
+ return n;
12579
+ }
12580
+ function H_(e) {
12581
+ let t = R_(e);
12486
12582
  return t ? [t.operandRange] : [];
12487
12583
  }
12488
- function F_(e, t) {
12489
- return zh(e.position, t) ? !0 : Array.from(D(Ng(e))).some((e) => zh(e.position, t));
12584
+ function U_(e, t) {
12585
+ return Hh(e.position, t) ? !0 : Array.from(D(Ig(e))).some((e) => Hh(e.position, t));
12490
12586
  }
12491
- function I_(e, t, n, r, i, a) {
12492
- let o = uh(e), s = uh(Lh(e, i)), c = dh(s, o), l = fh(s), u = ph(s), d = sh(s), f = n.action === "rétablir" || mh(s), p = hh(s) || f, m = gh(s), h = _h(s), g = x_(e), _ = u ? "insert_before" : "insert_after", v = l ? cg(s) : null, y = m ? v : null, b = h ? v : null, ee = () => {
12587
+ function W_(e, t, n, r, i, a) {
12588
+ let o = ph(e), s = ph(Bh(e, i)), c = mh(s, o), l = hh(s), u = gh(s), d = uh(s), f = n.action === "rétablir" || _h(s), p = vh(s) || f, m = yh(s), h = bh(s), g = E_(e), _ = u ? "insert_before" : "insert_after", v = l ? dg(s) : null, y = m ? v : null, b = h ? v : null, ee = () => {
12493
12589
  let n = i[0]?.start;
12494
- return (n === void 0 ? void 0 : T_(t, n)) ?? Em(e) ?? void 0;
12590
+ return (n === void 0 ? void 0 : A_(t, n)) ?? km(e) ?? void 0;
12495
12591
  }, te = () => {
12496
12592
  let e = i[0]?.start;
12497
- return (e === void 0 ? void 0 : w_(t, e)) ?? void 0;
12498
- }, ne = ({ kind: e, targetText: t, insertText: n, expectsFollowingTable: r }) => {
12499
- let i = vg({
12593
+ return (e === void 0 ? void 0 : k_(t, e)) ?? void 0;
12594
+ }, ne = () => {
12595
+ let e = i[0]?.start;
12596
+ return e === void 0 ? !1 : mh(ph(t.slice(0, e)), o);
12597
+ }, x = ({ kind: e, targetText: t, insertText: n, expectsFollowingTable: r }) => {
12598
+ let i = xg({
12500
12599
  hasRedactionIntro: c,
12501
12600
  insertText: n,
12502
12601
  normalized: o
12503
- });
12602
+ }), a = t ? te() : void 0;
12504
12603
  return {
12505
12604
  kind: e,
12506
12605
  targetText: t,
12507
12606
  insertText: n,
12607
+ ...a === void 0 ? {} : { occurrenceIndex: a },
12508
12608
  ...i ? { insertLayout: i } : {},
12509
12609
  ...r ? { expectsFollowingTable: r } : {}
12510
12610
  };
@@ -12515,7 +12615,7 @@ function I_(e, t, n, r, i, a) {
12515
12615
  kind: "delete",
12516
12616
  targetText: e[0],
12517
12617
  extraTargetTexts: e.slice(1)
12518
- }, ne({
12618
+ }, x({
12519
12619
  kind: _,
12520
12620
  targetText: t,
12521
12621
  insertText: n,
@@ -12528,7 +12628,7 @@ function I_(e, t, n, r, i, a) {
12528
12628
  kind: "delete",
12529
12629
  targetText: e[0],
12530
12630
  extraTargetTexts: e.slice(1)
12531
- }, ne({
12631
+ }, x({
12532
12632
  kind: "insert_after",
12533
12633
  targetText: "",
12534
12634
  insertText: t,
@@ -12541,7 +12641,7 @@ function I_(e, t, n, r, i, a) {
12541
12641
  kind: "replace",
12542
12642
  targetText: a[0],
12543
12643
  replacementText: a[1]
12544
- }, ne({
12644
+ }, x({
12545
12645
  kind: _,
12546
12646
  targetText: e,
12547
12647
  insertText: t,
@@ -12573,8 +12673,8 @@ function I_(e, t, n, r, i, a) {
12573
12673
  ...y ? { targetScope: y } : {}
12574
12674
  }];
12575
12675
  }
12576
- let x = s.match(/\bremplace(?:e|es|s)?\b/gu)?.length ?? 0;
12577
- if (m && !p && a.length >= 4 && a.length % 2 == 0 && x >= 2) {
12676
+ let re = s.match(/\bremplace(?:e|es|s)?\b/gu)?.length ?? 0;
12677
+ if (m && !p && a.length >= 4 && a.length % 2 == 0 && re >= 2) {
12578
12678
  let e = [];
12579
12679
  for (let t = 0; t < a.length; t += 2) e.push({
12580
12680
  kind: "replace",
@@ -12603,7 +12703,7 @@ function I_(e, t, n, r, i, a) {
12603
12703
  replacement: { type: "following_table" }
12604
12704
  };
12605
12705
  if (m && !p && !h && a.length === 0) {
12606
- let t = N_(e);
12706
+ let t = R_(e);
12607
12707
  if (t) return {
12608
12708
  kind: "replace",
12609
12709
  targetText: t.targetText,
@@ -12622,14 +12722,18 @@ function I_(e, t, n, r, i, a) {
12622
12722
  ...y ? { targetScope: y } : {}
12623
12723
  };
12624
12724
  }
12625
- if (l && c && a.length >= 2 && v) return {
12626
- kind: "replace",
12627
- targetText: a[0],
12628
- replacementText: a[1],
12629
- targetScope: v
12630
- };
12631
- if (!p && a.length === 1 && c) {
12632
- let e = yg({
12725
+ if (l && c && a.length >= 2 && v) {
12726
+ let e = te();
12727
+ return {
12728
+ kind: "replace",
12729
+ targetText: a[0],
12730
+ replacementText: a[1],
12731
+ ...e === void 0 ? {} : { occurrenceIndex: e },
12732
+ targetScope: v
12733
+ };
12734
+ }
12735
+ if (!p && a.length === 1 && c && ne()) {
12736
+ let e = Sg({
12633
12737
  hasRedactionIntro: c,
12634
12738
  normalized: o,
12635
12739
  replacementText: a[0]
@@ -12643,7 +12747,7 @@ function I_(e, t, n, r, i, a) {
12643
12747
  ...e ? { replacementLayout: e } : {}
12644
12748
  };
12645
12749
  }
12646
- if (p && g) return ne(u ? {
12750
+ if (p && g) return x(u ? {
12647
12751
  kind: "insert_before",
12648
12752
  targetText: "",
12649
12753
  insertText: "",
@@ -12655,20 +12759,20 @@ function I_(e, t, n, r, i, a) {
12655
12759
  expectsFollowingTable: !0
12656
12760
  });
12657
12761
  if (p && a.length >= 2) {
12658
- if (l) return ne({
12762
+ if (l) return x({
12659
12763
  kind: "insert_after",
12660
12764
  targetText: a[0],
12661
12765
  insertText: a[1],
12662
12766
  expectsFollowingTable: g
12663
12767
  });
12664
- if (u) return ne({
12768
+ if (u) return x({
12665
12769
  kind: "insert_before",
12666
12770
  targetText: a[0],
12667
12771
  insertText: a[1],
12668
12772
  expectsFollowingTable: g
12669
12773
  });
12670
12774
  }
12671
- return p && a.length === 1 ? ne(l ? {
12775
+ return p && a.length === 1 ? x(l ? {
12672
12776
  kind: "insert_after",
12673
12777
  targetText: "",
12674
12778
  insertText: a[0],
@@ -12685,17 +12789,18 @@ function I_(e, t, n, r, i, a) {
12685
12789
  expectsFollowingTable: g
12686
12790
  }) : null;
12687
12791
  }
12688
- function L_(e) {
12689
- let t = uh(e);
12792
+ function G_(e) {
12793
+ let t = ph(e);
12690
12794
  return /\bapres\b/.test(t) && /\bla\s+fin\s+(?:(?:de\s+l['’]?)|d['’]?|de|du|des)?\s*$/u.test(t);
12691
12795
  }
12692
- function R_(e) {
12796
+ function K_(e) {
12693
12797
  switch (e.kind) {
12694
12798
  case "insert_after":
12695
12799
  case "insert_before": return {
12696
12800
  kind: e.kind,
12697
12801
  targetText: e.targetText,
12698
12802
  insertText: e.insertText,
12803
+ ...e.occurrenceIndex === void 0 ? {} : { occurrenceIndex: e.occurrenceIndex },
12699
12804
  ...e.insertLayout ? { insertLayout: e.insertLayout } : {},
12700
12805
  ...e.citation ? { citation: e.citation } : {},
12701
12806
  ...e.tableTarget ? { tableTarget: e.tableTarget } : {}
@@ -12733,7 +12838,7 @@ function R_(e) {
12733
12838
  case "delete_article": return { kind: "delete_article" };
12734
12839
  }
12735
12840
  }
12736
- function z_(e) {
12841
+ function q_(e) {
12737
12842
  let t = (t) => {
12738
12843
  let n = e[t];
12739
12844
  return typeof n == "string" ? n : "";
@@ -12750,7 +12855,7 @@ function z_(e) {
12750
12855
  o
12751
12856
  ].join("|");
12752
12857
  }
12753
- function B_(e, t, n) {
12858
+ function J_(e, t, n) {
12754
12859
  return t.targetType === n.targetType && JSON.stringify(t.reference) === JSON.stringify(n.reference) && JSON.stringify(t.portionSelectors) === JSON.stringify(n.portionSelectors) ? e : {
12755
12860
  ...e,
12756
12861
  targetType: t.targetType,
@@ -12758,10 +12863,10 @@ function B_(e, t, n) {
12758
12863
  portionSelectors: t.portionSelectors
12759
12864
  };
12760
12865
  }
12761
- function V_(e, t) {
12762
- return (e.kind === "compound" ? e.operations : [R_(e)]).map((n) => B_(n, e, t));
12866
+ function Y_(e, t) {
12867
+ return (e.kind === "compound" ? e.operations : [K_(e)]).map((n) => J_(n, e, t));
12763
12868
  }
12764
- function H_(e) {
12869
+ function X_(e) {
12765
12870
  let t = [];
12766
12871
  for (let n = 0; n < e.length; n += 1) {
12767
12872
  let r = e[n];
@@ -12776,14 +12881,14 @@ function H_(e) {
12776
12881
  continue;
12777
12882
  }
12778
12883
  let o = i[0], s = [];
12779
- for (let [e, t] of i.entries()) for (let [n, r] of V_(t, o).entries()) s.push({
12884
+ for (let [e, t] of i.entries()) for (let [n, r] of Y_(t, o).entries()) s.push({
12780
12885
  directiveIndex: e,
12781
12886
  operationIndex: n,
12782
12887
  operation: r
12783
12888
  });
12784
12889
  let c = /* @__PURE__ */ new Set(), l = [];
12785
12890
  for (let e = s.length - 1; e >= 0; --e) {
12786
- let t = s[e], n = z_(t.operation);
12891
+ let t = s[e], n = q_(t.operation);
12787
12892
  c.has(n) || (c.add(n), l.push(t));
12788
12893
  }
12789
12894
  l.sort((e, t) => e.directiveIndex - t.directiveIndex || e.operationIndex - t.operationIndex), t.push({
@@ -12802,14 +12907,17 @@ function H_(e) {
12802
12907
  }
12803
12908
  return t;
12804
12909
  }
12805
- function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullText: i, tableTarget: a }) {
12806
- let o = e.target ?? xt(t), s = Vp(t), c = i && n.start < i.length ? i.slice(n.start) : r, l = i && n.start < i.length ? n.start : 0, u = i === r && n.start < r.length && !L_(r.slice(0, n.start)) ? r.slice(n.start) : r, d = Ih(u), f = I_(r, u, e, o, d, d.map((e) => e.text));
12910
+ function Z_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullText: i, tableTarget: a }) {
12911
+ let o = e.target ?? xt(t), s = Vp(t), c = i && n.start < i.length ? i.slice(n.start) : r, l = i && n.start < i.length ? n.start : 0, u = i === r && n.start < r.length && !G_(r.slice(0, n.start)) ? r.slice(n.start) : r, d = V_(u, zh(u, {
12912
+ allowClosingQuoteAsOpening: !0,
12913
+ allowUnclosed: !0
12914
+ })), f = W_(r, u, e, o, d, d.map((e) => e.text));
12807
12915
  if (!f) return null;
12808
- let p = E_(f, s), m = r_(r), h = {
12916
+ let p = j_(f, s), m = s_(r), h = {
12809
12917
  ...m ? { applicabilityDate: m } : {},
12810
12918
  sourcePosition: n,
12811
12919
  sourceText: r
12812
- }, g = C_(c, l), _ = (e) => {
12920
+ }, g = O_(c, l), _ = (e) => {
12813
12921
  switch (e.kind) {
12814
12922
  case "insert_after":
12815
12923
  case "insert_before": return {
@@ -12869,9 +12977,10 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12869
12977
  portionSelectors: s,
12870
12978
  targetText: e.targetText,
12871
12979
  insertText: e.insertText,
12980
+ ...e.occurrenceIndex === void 0 ? {} : { occurrenceIndex: e.occurrenceIndex },
12872
12981
  ...e.insertLayout ? { insertLayout: e.insertLayout } : {},
12873
12982
  ...e.expectsFollowingTable && g ? { citation: g } : {},
12874
- ...__(a) ? { tableTarget: a } : {},
12983
+ ...x_(a) ? { tableTarget: a } : {},
12875
12984
  ...h
12876
12985
  };
12877
12986
  case "replace": return {
@@ -12888,7 +12997,7 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12888
12997
  ...e.occurrenceIndex === void 0 ? {} : { occurrenceIndex: e.occurrenceIndex },
12889
12998
  ...e.targetOccurrenceCount === void 0 ? {} : { targetOccurrenceCount: e.targetOccurrenceCount },
12890
12999
  ...e.targetScope ? { targetScope: e.targetScope } : {},
12891
- ...__(a) ? { tableTarget: a } : {},
13000
+ ...x_(a) ? { tableTarget: a } : {},
12892
13001
  ...h
12893
13002
  };
12894
13003
  case "replace_portion": return e.replacement.type === "following_table" && !g ? null : {
@@ -12900,11 +13009,11 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12900
13009
  replacement: e.replacement,
12901
13010
  ...e.replacementLayout ? { replacementLayout: e.replacementLayout } : {},
12902
13011
  ...e.replacement.type === "following_table" && g ? { citation: g } : {},
12903
- ...__(a) ? { tableTarget: a } : {},
13012
+ ...x_(a) ? { tableTarget: a } : {},
12904
13013
  ...h
12905
13014
  };
12906
13015
  case "delete": {
12907
- let n = d.map((e) => w_(u, e.start)), r = /* @__PURE__ */ new Map();
13016
+ let n = d.map((e) => k_(u, e.start)), r = /* @__PURE__ */ new Map();
12908
13017
  for (let [e, t] of d.entries()) r.has(t.text) || r.set(t.text, n[e] ?? null);
12909
13018
  let i = [e.targetText, ...e.extraTargetTexts ?? []].filter((e) => e && e.trim().length > 0).filter((e, t, n) => n.indexOf(e) === t);
12910
13019
  return i.length > 1 ? v(i.map((t) => ({
@@ -12913,7 +13022,7 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12913
13022
  ...e.targetScope ? { targetScope: e.targetScope } : {},
12914
13023
  occurrenceIndex: r.get(t) ?? void 0,
12915
13024
  ...t === e.targetText && e.targetOccurrenceCount !== void 0 ? { targetOccurrenceCount: e.targetOccurrenceCount } : {},
12916
- ...__(a) ? { tableTarget: a } : {}
13025
+ ...x_(a) ? { tableTarget: a } : {}
12917
13026
  }))) : {
12918
13027
  kind: "delete",
12919
13028
  targetType: o,
@@ -12923,7 +13032,7 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12923
13032
  ...e.targetScope ? { targetScope: e.targetScope } : {},
12924
13033
  occurrenceIndex: r.get(e.targetText) ?? void 0,
12925
13034
  ...e.targetOccurrenceCount === void 0 ? {} : { targetOccurrenceCount: e.targetOccurrenceCount },
12926
- ...__(a) ? { tableTarget: a } : {},
13035
+ ...x_(a) ? { tableTarget: a } : {},
12927
13036
  ...h
12928
13037
  };
12929
13038
  }
@@ -12932,7 +13041,7 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12932
13041
  targetType: o,
12933
13042
  reference: t,
12934
13043
  portionSelectors: s,
12935
- ...__(a) ? { tableTarget: a } : {},
13044
+ ...x_(a) ? { tableTarget: a } : {},
12936
13045
  ...h
12937
13046
  };
12938
13047
  case "delete_article": return o === "article" ? {
@@ -12956,7 +13065,7 @@ function U_({ action: e, reference: t, sourcePosition: n, sourceText: r, fullTex
12956
13065
  }
12957
13066
  return y(p);
12958
13067
  }
12959
- function W_(e) {
13068
+ function Q_(e) {
12960
13069
  let t = /\barticle\s+([0-9]+(?:-[0-9]+)?(?:\s*[A-Z])?(?:\s+[a-z]+)?)\b/i.exec(e);
12961
13070
  if (!t || t.index === void 0) return null;
12962
13071
  let n = t.index, r = t.index + t[0].length;
@@ -12975,73 +13084,73 @@ function W_(e) {
12975
13084
  }
12976
13085
  };
12977
13086
  }
12978
- function G_(e, t) {
13087
+ function $_(e, t) {
12979
13088
  let n = performance.now(), r = be(e);
12980
13089
  Q(t.diagnostics, "simplifyMs", n);
12981
13090
  let i = r.output;
12982
13091
  if (t.allowListExtraction) {
12983
- let e = performance.now(), n = y_(i, t.diagnostics);
13092
+ let e = performance.now(), n = w_(i, t.diagnostics);
12984
13093
  if (Q(t.diagnostics, "listExtractionMs", e), n) return t.diagnostics !== void 0 && (t.diagnostics.directiveCount = n.length), n;
12985
13094
  }
12986
- let a = performance.now(), o = Rh(i), s = P_(i), c = Vh(i);
13095
+ let a = performance.now(), o = Vh(i), s = H_(i), c = Wh(i);
12987
13096
  Q(t.diagnostics, "prepareRangesMs", a);
12988
- let l = new x(i), u = performance.now(), d = eh(l);
13097
+ let l = new x(i), u = performance.now(), d = rh(l);
12989
13098
  Q(t.diagnostics, "extractReferencesMs", u);
12990
13099
  let f = [...o, ...s];
12991
13100
  if (f.length > 0) {
12992
13101
  let e = performance.now();
12993
- d = d.filter((e) => !F_(e, f)), Q(t.diagnostics, "filterReferencesMs", e);
13102
+ d = d.filter((e) => !U_(e, f)), Q(t.diagnostics, "filterReferencesMs", e);
12994
13103
  }
12995
13104
  if (d.length === 0) {
12996
13105
  let e = performance.now();
12997
- d = eh(new x(c.split(",")[0] ?? c)), Q(t.diagnostics, "fallbackReferencesMs", e);
13106
+ d = rh(new x(c.split(",")[0] ?? c)), Q(t.diagnostics, "fallbackReferencesMs", e);
12998
13107
  }
12999
13108
  if (d.length === 0) {
13000
- let e = performance.now(), n = W_(c);
13109
+ let e = performance.now(), n = Q_(c);
13001
13110
  n && (d = [{
13002
13111
  ...n.reference,
13003
13112
  position: n.position
13004
13113
  }]), Q(t.diagnostics, "fallbackReferencesMs", e);
13005
13114
  }
13006
13115
  t.diagnostics !== void 0 && (t.diagnostics.referenceCount = d.length);
13007
- let p = performance.now(), m = Og(c);
13116
+ let p = performance.now(), m = jg(c);
13008
13117
  if (d.length === 1 && d[0]?.type === "article") {
13009
- let e = Nh(c, { actionIndex: m ?? c.length });
13118
+ let e = Ih(c, { actionIndex: m ?? c.length });
13010
13119
  e && (d = [e]);
13011
13120
  }
13012
13121
  if (m !== null) {
13013
- let e = d.some((e) => xt(Ng(e)) === "article"), t = d.some((e) => [...D(Ng(e))].some((e) => e.type === "article")), n = c.slice(0, m), r = Oh(O_(n), 0) ?? Oh(n, 0), i = d.map(Ng).sort((e, t) => kh(t) - kh(e) || Ah(t) - Ah(e))[0], a = jh(i ?? null, r);
13122
+ let e = d.some((e) => xt(Ig(e)) === "article"), t = d.some((e) => [...D(Ig(e))].some((e) => e.type === "article")), n = c.slice(0, m), r = jh(N_(n), 0) ?? jh(n, 0), i = d.map(Ig).sort((e, t) => Mh(t) - Mh(e) || Nh(t) - Nh(e))[0], a = Ph(i ?? null, r);
13014
13123
  if (!e && a && a === r && (d = [r]), !t) {
13015
13124
  let e = i, t = n.indexOf(":");
13016
13125
  if (t !== -1) {
13017
- let r = t + 1, i = Oh(k_(n.slice(r)), r), a = i ? Vp(i) : [];
13018
- e && i && kh(e) > 0 && (a.length > 1 || a.some((e) => e.kind === "range")) && (d = [Jg(e, i)]);
13126
+ let r = t + 1, i = jh(P_(n.slice(r)), r), a = i ? Vp(i) : [];
13127
+ e && i && Mh(e) > 0 && (a.length > 1 || a.some((e) => e.kind === "range")) && (d = [Qg(e, i)]);
13019
13128
  }
13020
13129
  }
13021
13130
  if (t) {
13022
- let e = d.map(Ng).filter((e) => [...D(e)].some((e) => e.type === "article")).sort((e, t) => kh(t) - kh(e) || Ah(t) - Ah(e))[0], t = n.indexOf(":"), r = t === -1 ? 0 : t + 1, i = Oh(k_(n.slice(r)), r), a = i ? Vp(i) : [];
13023
- t !== -1 && e && i && kh(e) > 0 && (a.length > 1 || a.some((e) => e.kind === "range")) && d.push(Jg(e, i));
13131
+ let e = d.map(Ig).filter((e) => [...D(e)].some((e) => e.type === "article")).sort((e, t) => Mh(t) - Mh(e) || Nh(t) - Nh(e))[0], t = n.indexOf(":"), r = t === -1 ? 0 : t + 1, i = jh(P_(n.slice(r)), r), a = i ? Vp(i) : [];
13132
+ t !== -1 && e && i && Mh(e) > 0 && (a.length > 1 || a.some((e) => e.kind === "range")) && d.push(Qg(e, i));
13024
13133
  }
13025
13134
  }
13026
13135
  Q(t.diagnostics, "refineReferencesMs", p);
13027
13136
  let h = [], g = performance.now();
13028
13137
  for (let e of d) {
13029
13138
  if (e.type === "reference_et_action") {
13030
- let t = e.position?.start ?? 0, n = i.lastIndexOf("\n", Math.max(0, t - 1)) + 1, r = L_(i.slice(n, t)) ? n : t, a = {
13139
+ let t = e.position?.start ?? 0, n = i.lastIndexOf("\n", Math.max(0, t - 1)) + 1, r = G_(i.slice(n, t)) ? n : t, a = {
13031
13140
  start: r,
13032
13141
  stop: i.length
13033
- }, o = i.slice(r), s = U_({
13142
+ }, o = i.slice(r), s = Z_({
13034
13143
  action: e.action,
13035
13144
  reference: e.reference,
13036
13145
  sourcePosition: a,
13037
13146
  sourceText: o,
13038
13147
  fullText: i,
13039
- tableTarget: D_(o) ?? D_(i)
13148
+ tableTarget: M_(o) ?? M_(i)
13040
13149
  });
13041
13150
  s && (Array.isArray(s) ? h.push(...s) : h.push(s));
13042
13151
  continue;
13043
13152
  }
13044
- let t = U_({
13153
+ let t = Z_({
13045
13154
  action: { action: "modifier" },
13046
13155
  reference: e,
13047
13156
  sourcePosition: e.position ?? {
@@ -13050,92 +13159,92 @@ function G_(e, t) {
13050
13159
  },
13051
13160
  sourceText: i,
13052
13161
  fullText: i,
13053
- tableTarget: D_(i)
13162
+ tableTarget: M_(i)
13054
13163
  });
13055
13164
  t && (Array.isArray(t) ? h.push(...t) : h.push(t));
13056
13165
  }
13057
13166
  if (h.length === 0) {
13058
- let e = W_(c);
13167
+ let e = Q_(c);
13059
13168
  if (e) {
13060
- let t = U_({
13169
+ let t = Z_({
13061
13170
  action: { action: "modifier" },
13062
13171
  reference: e.reference,
13063
13172
  sourcePosition: e.position,
13064
13173
  sourceText: i,
13065
13174
  fullText: i,
13066
- tableTarget: D_(i)
13175
+ tableTarget: M_(i)
13067
13176
  });
13068
13177
  t && (Array.isArray(t) ? h.push(...t) : h.push(t));
13069
13178
  }
13070
13179
  }
13071
13180
  Q(t.diagnostics, "buildDirectivesMs", g);
13072
- let _ = performance.now(), v = H_(h);
13181
+ let _ = performance.now(), v = X_(h);
13073
13182
  return Q(t.diagnostics, "canonicalizeMs", _), t.diagnostics !== void 0 && (t.diagnostics.directiveCount = v.length), v;
13074
13183
  }
13075
- function K_(e) {
13184
+ function ev(e) {
13076
13185
  let t = new x(be(e).output);
13077
- return [...ag.extract(t, { overlapWindow: 100 })];
13186
+ return [...cg.extract(t, { overlapWindow: 100 })];
13078
13187
  }
13079
- function q_(e, t) {
13080
- return G_(e, {
13188
+ function tv(e, t) {
13189
+ return $_(e, {
13081
13190
  allowListExtraction: !0,
13082
13191
  diagnostics: t
13083
13192
  });
13084
13193
  }
13085
- var J_ = q_;
13086
- function Y_(e) {
13087
- let t = uh(e);
13088
- return t.includes("«") || t.includes("»") || !e.trim().endsWith(":") ? !1 : vh(t);
13194
+ var nv = tv;
13195
+ function rv(e) {
13196
+ let t = ph(e);
13197
+ return t.includes("«") || t.includes("»") || !e.trim().endsWith(":") ? !1 : xh(t);
13089
13198
  }
13090
- function X_(e) {
13199
+ function iv(e) {
13091
13200
  return e.trimStart().startsWith("«");
13092
13201
  }
13093
- function Z_(e) {
13202
+ function av(e) {
13094
13203
  return /»[.;]?\s*$/u.test(e);
13095
13204
  }
13096
- function Q_(e, t) {
13205
+ function ov(e, t) {
13097
13206
  for (let n = t; n < e.length; n += 1) {
13098
- let t = bg(e[n]).trim();
13207
+ let t = Cg(e[n]).trim();
13099
13208
  if (t.length > 0) return t;
13100
13209
  }
13101
13210
  }
13102
- function $_(e, t) {
13211
+ function sv(e, t) {
13103
13212
  let n = [], r = !1, i = t + 1;
13104
13213
  for (; i < e.length;) {
13105
- let t = e[i], a = bg(t);
13214
+ let t = e[i], a = Cg(t);
13106
13215
  if (!r && a.includes("«") && (r = !0), r) {
13107
13216
  n.push(a);
13108
- let t = Q_(e, i + 1);
13109
- if (Z_(a) && (t === void 0 || !X_(t))) break;
13217
+ let t = ov(e, i + 1);
13218
+ if (av(a) && (t === void 0 || !iv(t))) break;
13110
13219
  } else if (a.trim().length > 0) break;
13111
13220
  i += 1;
13112
13221
  }
13113
13222
  return !r || n.length === 0 ? null : {
13114
- combinedText: [bg(e[t]), ...n].join("\n"),
13223
+ combinedText: [Cg(e[t]), ...n].join("\n"),
13115
13224
  endIndex: i
13116
13225
  };
13117
13226
  }
13118
- function ev(e) {
13227
+ function cv(e) {
13119
13228
  let t = v()(e).output.split("\n").map((e) => e.trim()).filter((e) => e.length > 0), n = [];
13120
13229
  for (let e = 0; e < t.length; e += 1) {
13121
13230
  let r = t[e];
13122
- if (Y_(r)) {
13123
- let r = $_(t, e);
13231
+ if (rv(r)) {
13232
+ let r = sv(t, e);
13124
13233
  if (r) {
13125
- let t = q_(r.combinedText);
13234
+ let t = tv(r.combinedText);
13126
13235
  if (t.length > 0) {
13127
13236
  n.push(...t), e = r.endIndex;
13128
13237
  continue;
13129
13238
  }
13130
13239
  }
13131
13240
  }
13132
- let i = G_(r, { allowListExtraction: !1 });
13241
+ let i = $_(r, { allowListExtraction: !1 });
13133
13242
  i.length > 0 && n.push(...i);
13134
13243
  }
13135
13244
  return n;
13136
13245
  }
13137
- var tv = ev, nv;
13138
- function rv(e) {
13246
+ var lv = cv, uv;
13247
+ function dv(e) {
13139
13248
  return {
13140
13249
  dateDebut: e.dateDebut ?? "0001-01-01",
13141
13250
  dateFin: e.dateFin ?? "2999-01-01",
@@ -13144,7 +13253,7 @@ function rv(e) {
13144
13253
  textId: e.textId
13145
13254
  };
13146
13255
  }
13147
- function iv(e) {
13256
+ function fv(e) {
13148
13257
  if (e.length === 0) return;
13149
13258
  let t = /* @__PURE__ */ new Map();
13150
13259
  for (let n of e) {
@@ -13163,7 +13272,7 @@ function iv(e) {
13163
13272
  let [{ id: n }] = [...t.values()];
13164
13273
  return { articleId: n };
13165
13274
  }
13166
- function av(e) {
13275
+ function pv(e) {
13167
13276
  let t = e["@id"];
13168
13277
  return t === void 0 ? null : {
13169
13278
  dateDebut: e["@debut"] ?? null,
@@ -13173,10 +13282,10 @@ function av(e) {
13173
13282
  title: e["#text"] ?? null
13174
13283
  };
13175
13284
  }
13176
- function ov(e, t) {
13285
+ function mv(e, t) {
13177
13286
  return (e.dateDebut === null || e.dateDebut <= t) && (e.dateFin === null || e.dateFin >= t);
13178
13287
  }
13179
- var sv = class extends Ae {
13288
+ var hv = class extends Ae {
13180
13289
  canutesDb;
13181
13290
  articleHistoryInfoByTextAndNum = /* @__PURE__ */ new Map();
13182
13291
  articleRowsByNumByTextAndDate = /* @__PURE__ */ new Map();
@@ -13202,12 +13311,12 @@ var sv = class extends Ae {
13202
13311
  WHERE
13203
13312
  data -> 'CONTEXTE' -> 'TEXTE' ->> '@cid' = ${n}
13204
13313
  AND num = ${t}
13205
- `).map(rv), this.articleRowsByNumByTextAndDate.set(r, i)), i;
13314
+ `).map(dv), this.articleRowsByNumByTextAndDate.set(r, i)), i;
13206
13315
  }
13207
13316
  async getArticleHistoryInfo({ num: e, textId: t }) {
13208
13317
  if (e === void 0) return;
13209
13318
  let n = `${t}\0${e}`, r = this.articleHistoryInfoByTextAndNum.get(n);
13210
- return r === void 0 && (r = iv(await this.canutesDb`
13319
+ return r === void 0 && (r = fv(await this.canutesDb`
13211
13320
  SELECT
13212
13321
  id,
13213
13322
  data -> 'META' -> 'META_SPEC' -> 'META_ARTICLE' ->> 'DATE_DEBUT' AS "dateDebut",
@@ -13230,7 +13339,7 @@ var sv = class extends Ae {
13230
13339
  SELECT data
13231
13340
  FROM legifrance.textelr
13232
13341
  WHERE id = ${t}
13233
- `)[0]?.data.STRUCT?.LIEN_SECTION_TA?.map(av).filter((e) => e !== null).filter((t) => ov(t, e)) ?? [] : i.map(av).filter((e) => e !== null).filter((t) => ov(t, e)), this.directSectionChildrenByParentAndDate.set(n, r);
13342
+ `)[0]?.data.STRUCT?.LIEN_SECTION_TA?.map(pv).filter((e) => e !== null).filter((t) => mv(t, e)) ?? [] : i.map(pv).filter((e) => e !== null).filter((t) => mv(t, e)), this.directSectionChildrenByParentAndDate.set(n, r);
13234
13343
  }
13235
13344
  return r;
13236
13345
  }
@@ -13273,7 +13382,7 @@ var sv = class extends Ae {
13273
13382
  FROM legifrance.article
13274
13383
  WHERE num = ${t}
13275
13384
  LIMIT 100
13276
- `).map(rv), this.globalArticleRowsByNumAndDate.set(n, r)), r;
13385
+ `).map(dv), this.globalArticleRowsByNumAndDate.set(n, r)), r;
13277
13386
  }
13278
13387
  async preloadTextTitlesInfos(e = {}) {
13279
13388
  let t = (t, n = {}) => {
@@ -13288,7 +13397,7 @@ var sv = class extends Ae {
13288
13397
  return;
13289
13398
  }
13290
13399
  let n = new Ee("canutes.preloadTextTitlesInfos");
13291
- nv === void 0 ? (t("queryTextTitlesInfos:start"), nv = (async () => {
13400
+ uv === void 0 ? (t("queryTextTitlesInfos:start"), uv = (async () => {
13292
13401
  let e = await n.time("queryTextTitlesInfos", () => this.canutesDb`
13293
13402
  SELECT
13294
13403
  data -> 'META' -> 'META_SPEC' -> 'META_TEXTE_CHRONICLE' ->> 'CID' AS cid,
@@ -13318,8 +13427,8 @@ var sv = class extends Ae {
13318
13427
  `);
13319
13428
  t("queryTextTitlesInfos:done", { count: e.length }), t("buildTextTitlesInfos:start", { count: e.length }), await we(e, { onProgress: ({ count: e, phase: n }) => t(`buildTextTitlesInfos:${n}`, { count: e }) }), t("buildTextTitlesInfos:done", { count: e.length }), t("setTextTitlesInfos:done");
13320
13429
  })().catch((e) => {
13321
- throw nv = void 0, e;
13322
- })) : t("waiting-for-shared-preload"), await nv, n.log(), this.textTitlesInfosLoaded = !0;
13430
+ throw uv = void 0, e;
13431
+ })) : t("waiting-for-shared-preload"), await uv, n.log(), this.textTitlesInfosLoaded = !0;
13323
13432
  }
13324
13433
  async preloadUniqueActiveArticlesByNums({ date: e, nums: t }) {
13325
13434
  let n = [...new Set([...t].filter(Boolean))].filter((t) => !this.globalArticleRowsByNumAndDate.has(`${t}\0${e}`));
@@ -13333,7 +13442,7 @@ var sv = class extends Ae {
13333
13442
  data -> 'META' -> 'META_SPEC' -> 'META_ARTICLE' ->> 'DATE_FIN' AS "dateFin"
13334
13443
  FROM legifrance.article
13335
13444
  WHERE num IN ${this.canutesDb(n)}
13336
- `).map(rv), i = /* @__PURE__ */ new Map();
13445
+ `).map(dv), i = /* @__PURE__ */ new Map();
13337
13446
  for (let e of r) {
13338
13447
  if (e.num === null) continue;
13339
13448
  let t = i.get(e.num);
@@ -13344,7 +13453,7 @@ var sv = class extends Ae {
13344
13453
  };
13345
13454
  //#endregion
13346
13455
  //#region src/lib/extractors/links.ts
13347
- function cv() {
13456
+ function gv() {
13348
13457
  return {
13349
13458
  citationCount: 0,
13350
13459
  fastPath: {
@@ -13361,7 +13470,7 @@ function cv() {
13361
13470
  }
13362
13471
  };
13363
13472
  }
13364
- function lv() {
13473
+ function _v() {
13365
13474
  return {
13366
13475
  articleDefinitionLinkCount: 0,
13367
13476
  articleDirectLookupMs: 0,
@@ -13391,7 +13500,7 @@ function lv() {
13391
13500
  textLinkMs: 0
13392
13501
  };
13393
13502
  }
13394
- function uv() {
13503
+ function vv() {
13395
13504
  return {
13396
13505
  alternativeTargetCandidateCount: 0,
13397
13506
  getActiveArticlesByTextAndNumCount: 0,
@@ -13402,7 +13511,7 @@ function uv() {
13402
13511
  uniqueFallbackCheckCount: 0
13403
13512
  };
13404
13513
  }
13405
- function dv(e, t, n, r, i) {
13514
+ function yv(e, t, n, r, i) {
13406
13515
  let a = e.get(t);
13407
13516
  a === void 0 && (a = /* @__PURE__ */ new Map(), e.set(t, a));
13408
13517
  let o = a.get(n) ?? {
@@ -13412,7 +13521,7 @@ function dv(e, t, n, r, i) {
13412
13521
  };
13413
13522
  o.count += 1, o.outputSize += i, o.totalMs += r, a.set(n, o);
13414
13523
  }
13415
- function fv(e) {
13524
+ function bv(e) {
13416
13525
  return Object.fromEntries([...e.entries()].map(([e, t]) => {
13417
13526
  let n = 0, r = 0, i = 0;
13418
13527
  for (let e of t.values()) n += e.count, r += e.outputSize, i += e.totalMs;
@@ -13430,7 +13539,7 @@ function fv(e) {
13430
13539
  }];
13431
13540
  }));
13432
13541
  }
13433
- var pv = class {
13542
+ var xv = class {
13434
13543
  inner;
13435
13544
  diagnostics;
13436
13545
  constructor(e, t) {
@@ -13438,67 +13547,67 @@ var pv = class {
13438
13547
  }
13439
13548
  async getActiveArticlesByTextAndNum(e) {
13440
13549
  let t = performance.now(), n = await this.inner.getActiveArticlesByTextAndNum(e);
13441
- return dv(this.diagnostics, "getActiveArticlesByTextAndNum", `${e.date}\0${e.textId}\0${e.num ?? ""}`, performance.now() - t, n.length), n;
13550
+ return yv(this.diagnostics, "getActiveArticlesByTextAndNum", `${e.date}\0${e.textId}\0${e.num ?? ""}`, performance.now() - t, n.length), n;
13442
13551
  }
13443
13552
  async getArticleHistoryInfo(e) {
13444
13553
  let t = performance.now(), n = await this.inner.getArticleHistoryInfo(e);
13445
- return dv(this.diagnostics, "getArticleHistoryInfo", `${e.textId}\0${e.num ?? ""}`, performance.now() - t, n === void 0 ? 0 : 1), n;
13554
+ return yv(this.diagnostics, "getArticleHistoryInfo", `${e.textId}\0${e.num ?? ""}`, performance.now() - t, n === void 0 ? 0 : 1), n;
13446
13555
  }
13447
13556
  async getDirectSectionChildren(e) {
13448
13557
  let t = performance.now(), n = await this.inner.getDirectSectionChildren(e);
13449
- return dv(this.diagnostics, "getDirectSectionChildren", `${e.date}\0${e.parentPath}`, performance.now() - t, n.length), n;
13558
+ return yv(this.diagnostics, "getDirectSectionChildren", `${e.date}\0${e.parentPath}`, performance.now() - t, n.length), n;
13450
13559
  }
13451
13560
  async getEuropeanTextUrl(e) {
13452
13561
  let t = performance.now(), n = await this.inner.getEuropeanTextUrl(e);
13453
- return dv(this.diagnostics, "getEuropeanTextUrl", e, performance.now() - t, n === void 0 ? 0 : 1), n;
13562
+ return yv(this.diagnostics, "getEuropeanTextUrl", e, performance.now() - t, n === void 0 ? 0 : 1), n;
13454
13563
  }
13455
13564
  async getTextIdFromSegmentId(e) {
13456
13565
  let t = performance.now(), n = await this.inner.getTextIdFromSegmentId(e);
13457
- return dv(this.diagnostics, "getTextIdFromSegmentId", e, performance.now() - t, n === void 0 ? 0 : 1), n;
13566
+ return yv(this.diagnostics, "getTextIdFromSegmentId", e, performance.now() - t, n === void 0 ? 0 : 1), n;
13458
13567
  }
13459
13568
  async getUniqueActiveArticlesByNum(e) {
13460
13569
  let t = performance.now(), n = await this.inner.getUniqueActiveArticlesByNum(e);
13461
- return dv(this.diagnostics, "getUniqueActiveArticlesByNum", `${e.date}\0${e.num ?? ""}`, performance.now() - t, n.length), n;
13570
+ return yv(this.diagnostics, "getUniqueActiveArticlesByNum", `${e.date}\0${e.num ?? ""}`, performance.now() - t, n.length), n;
13462
13571
  }
13463
13572
  async preloadActiveArticlesByTextIds(e) {
13464
13573
  let t = [...e.nums ?? []].filter((e) => e !== void 0).toSorted(), n = [...e.textIds].filter((e) => e !== void 0).toSorted(), r = performance.now();
13465
- await this.inner.preloadActiveArticlesByTextIds(e), dv(this.diagnostics, "preloadActiveArticlesByTextIds", `${e.date}\0texts=${n.length}\0nums=${t.length}`, performance.now() - r, n.length * Math.max(1, t.length));
13574
+ await this.inner.preloadActiveArticlesByTextIds(e), yv(this.diagnostics, "preloadActiveArticlesByTextIds", `${e.date}\0texts=${n.length}\0nums=${t.length}`, performance.now() - r, n.length * Math.max(1, t.length));
13466
13575
  }
13467
13576
  async preloadTextTitlesInfos(e) {
13468
13577
  let t = performance.now();
13469
- await this.inner.preloadTextTitlesInfos(e), dv(this.diagnostics, "preloadTextTitlesInfos", "all", performance.now() - t, 1);
13578
+ await this.inner.preloadTextTitlesInfos(e), yv(this.diagnostics, "preloadTextTitlesInfos", "all", performance.now() - t, 1);
13470
13579
  }
13471
13580
  async preloadUniqueActiveArticlesByNums(e) {
13472
13581
  let t = [...e.nums].filter((e) => e !== void 0).toSorted(), n = performance.now();
13473
13582
  await this.inner.preloadUniqueActiveArticlesByNums({
13474
13583
  ...e,
13475
13584
  nums: t
13476
- }), dv(this.diagnostics, "preloadUniqueActiveArticlesByNums", `${e.date}\0nums=${t.length}`, performance.now() - n, t.length);
13585
+ }), yv(this.diagnostics, "preloadUniqueActiveArticlesByNums", `${e.date}\0nums=${t.length}`, performance.now() - n, t.length);
13477
13586
  }
13478
13587
  };
13479
13588
  function $(e, t, n) {
13480
13589
  e[t] += Math.round((performance.now() - n) * 10) / 10;
13481
13590
  }
13482
- function mv(e) {
13591
+ function Sv(e) {
13483
13592
  let t = {};
13484
13593
  for (let n of e) t[n.type] = (t[n.type] ?? 0) + 1;
13485
13594
  return t;
13486
13595
  }
13487
- function hv(e, t = 20) {
13596
+ function Cv(e, t = 20) {
13488
13597
  return Object.entries(e).map(([e, t]) => ({
13489
13598
  count: t,
13490
13599
  value: e
13491
13600
  })).toSorted((e, t) => t.count - e.count).slice(0, t);
13492
13601
  }
13493
- async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgnoredReferencesTypes: i, logPartialReferences: a, logReferences: o, state: s, transformation: c }) {
13494
- let l = r ?? (e === void 0 ? void 0 : new sv(e));
13602
+ async function* wv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgnoredReferencesTypes: i, logPartialReferences: a, logReferences: o, state: s, transformation: c }) {
13603
+ let l = r ?? (e === void 0 ? void 0 : new hv(e));
13495
13604
  if (l === void 0) throw Error("A Canutes database or legal resolver is required");
13496
- let u = new Ee("extractTextLinks"), d = /* @__PURE__ */ new Map(), f = u.enabled ? new pv(l, d) : l, p = cv(), m = lv(), h = uv(), _ = {}, v = c === void 0 ? void 0 : g(c), y = s === void 0 ? {} : structuredClone(s), b = u.timeSync("extractReferences", () => {
13605
+ let u = new Ee("extractTextLinks"), d = /* @__PURE__ */ new Map(), f = u.enabled ? new xv(l, d) : l, p = gv(), m = _v(), h = vv(), _ = {}, v = c === void 0 ? void 0 : g(c), y = s === void 0 ? {} : structuredClone(s), b = u.timeSync("extractReferences", () => {
13497
13606
  let e = [];
13498
- for (let n of c === void 0 ? Zm(t, { diagnostics: p }) : $m(t, c, { diagnostics: p })) o && console.log(`In "${t.input.slice(n.position.start, n.position.stop)}": \nReference "${t.text(n.position)}": ${JSON.stringify(n, null, 2)}`), e.push(n);
13607
+ for (let n of c === void 0 ? eh(t, { diagnostics: p }) : nh(t, c, { diagnostics: p })) o && console.log(`In "${t.input.slice(n.position.start, n.position.stop)}": \nReference "${t.text(n.position)}": ${JSON.stringify(n, null, 2)}`), e.push(n);
13499
13608
  return e;
13500
13609
  }, { inputSize: t.input.length }), ee = performance.now();
13501
- for (let e of b) for (let n of Lv(t, e)) {
13610
+ for (let e of b) for (let n of Gv(t, e)) {
13502
13611
  let r = n.type === "parent-enfant" ? n.parent : n;
13503
13612
  switch (r.type) {
13504
13613
  case "alinéa":
@@ -13527,7 +13636,7 @@ async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgno
13527
13636
  r.definition && y.textId === void 0 && a && console.log(`In "${t.input.slice(e.position.start, e.position.stop)}": Missing state.textId for division definition`);
13528
13637
  break;
13529
13638
  case "texte":
13530
- _v({
13639
+ Tv({
13531
13640
  context: t,
13532
13641
  logPartialReferences: a,
13533
13642
  reference: e,
@@ -13543,14 +13652,14 @@ async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgno
13543
13652
  phase: "collectDefinitionsAndTextState"
13544
13653
  });
13545
13654
  let te = /* @__PURE__ */ new Set();
13546
- for (let e of b) for (let t of Iv(e, { citations: !0 })) te.add(t);
13547
- let ne = vv(t, b);
13655
+ for (let e of b) for (let t of Wv(e, { citations: !0 })) te.add(t);
13656
+ let ne = Ev(t, b);
13548
13657
  await u.time("preloadActiveArticlesByTextIds", () => f.preloadActiveArticlesByTextIds({
13549
13658
  date: n,
13550
13659
  nums: te,
13551
13660
  textIds: ne
13552
13661
  }), { count: ne.size });
13553
- let x = await u.time("collectUniqueFallbackArticleNums", () => yv({
13662
+ let x = await u.time("collectUniqueFallbackArticleNums", () => Dv({
13554
13663
  context: t,
13555
13664
  date: n,
13556
13665
  legiResolver: f,
@@ -13564,7 +13673,7 @@ async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgno
13564
13673
  nums: x
13565
13674
  }), { count: x.size }), y = s === void 0 ? {} : s;
13566
13675
  let re = 0, ie = performance.now();
13567
- for (let e of b) for await (let r of Hv({
13676
+ for (let e of b) for await (let r of Xv({
13568
13677
  articleDefinitionByNumByTextId: _,
13569
13678
  legiResolver: f,
13570
13679
  context: t,
@@ -13583,12 +13692,12 @@ async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgno
13583
13692
  phase: "iterReferenceLinks"
13584
13693
  }), u.log({
13585
13694
  articleNumCount: te.size,
13586
- referenceTypeCounts: mv(b),
13695
+ referenceTypeCounts: Sv(b),
13587
13696
  referenceCount: b.length,
13588
13697
  iterationDiagnostics: m,
13589
- resolverCallDiagnostics: fv(d),
13698
+ resolverCallDiagnostics: bv(d),
13590
13699
  resolverDiagnostics: h,
13591
- topFastPathAnchors: hv(p.fastPath.anchorCounts),
13700
+ topFastPathAnchors: Cv(p.fastPath.anchorCounts),
13592
13701
  uniqueFallbackArticleNumCount: x.size,
13593
13702
  fastPathCandidateCount: p.fastPath.candidateCount,
13594
13703
  fastPathCheckedOffsetCount: p.fastPath.checkedOffsetCount,
@@ -13602,7 +13711,7 @@ async function* gv({ canutesDb: e, context: t, date: n, legiResolver: r, logIgno
13602
13711
  extractReferencesCitationCount: p.citationCount
13603
13712
  });
13604
13713
  }
13605
- function _v({ context: e, logPartialReferences: t, reference: n, state: r, text: i }) {
13714
+ function Tv({ context: e, logPartialReferences: t, reference: n, state: r, text: i }) {
13606
13715
  switch (i.nature) {
13607
13716
  case "ARRETE":
13608
13717
  case "CIRCULAIRE":
@@ -13673,17 +13782,17 @@ function _v({ context: e, logPartialReferences: t, reference: n, state: r, text:
13673
13782
  default: i.nature === void 0 ? delete r.textId : m("nature", i.nature);
13674
13783
  }
13675
13784
  }
13676
- function vv(e, t) {
13785
+ function Ev(e, t) {
13677
13786
  let n = /* @__PURE__ */ new Set();
13678
- for (let r of t) for (let t of Lv(e, r, { citations: !0 })) {
13787
+ for (let r of t) for (let t of Gv(e, r, { citations: !0 })) {
13679
13788
  let e = t.type === "parent-enfant" ? t.parent : t;
13680
13789
  e.type === "texte" && e.cid !== void 0 ? n.add(e.cid) : e.type === "article" && e.implicitText?.cid !== void 0 && n.add(e.implicitText.cid);
13681
13790
  }
13682
13791
  return n;
13683
13792
  }
13684
- async function yv({ context: e, date: t, legiResolver: n, logPartialReferences: r, resolverDiagnostics: i, references: a, state: o }) {
13793
+ async function Dv({ context: e, date: t, legiResolver: n, logPartialReferences: r, resolverDiagnostics: i, references: a, state: o }) {
13685
13794
  let s = /* @__PURE__ */ new Set();
13686
- for (let c of a) await bv({
13795
+ for (let c of a) await Ov({
13687
13796
  articleNums: s,
13688
13797
  context: e,
13689
13798
  date: t,
@@ -13695,8 +13804,8 @@ async function yv({ context: e, date: t, legiResolver: n, logPartialReferences:
13695
13804
  });
13696
13805
  return s;
13697
13806
  }
13698
- async function bv({ articleNums: e, context: t, date: n, legiResolver: r, logPartialReferences: i, resolverDiagnostics: a, reference: o, state: s }) {
13699
- for (let c of Lv(t, o)) await xv({
13807
+ async function Ov({ articleNums: e, context: t, date: n, legiResolver: r, logPartialReferences: i, resolverDiagnostics: a, reference: o, state: s }) {
13808
+ for (let c of Gv(t, o)) await kv({
13700
13809
  articleNums: e,
13701
13810
  atomicOrParentChildReference: c,
13702
13811
  context: t,
@@ -13712,7 +13821,7 @@ async function bv({ articleNums: e, context: t, date: n, legiResolver: r, logPar
13712
13821
  if (c !== void 0) {
13713
13822
  for (let o of c) if (o.references !== void 0) {
13714
13823
  let c = structuredClone(s);
13715
- for (let s of o.references) await bv({
13824
+ for (let s of o.references) await Ov({
13716
13825
  articleNums: e,
13717
13826
  context: t,
13718
13827
  date: n,
@@ -13726,7 +13835,7 @@ async function bv({ articleNums: e, context: t, date: n, legiResolver: r, logPar
13726
13835
  }
13727
13836
  }
13728
13837
  }
13729
- async function xv({ articleNums: e, atomicOrParentChildReference: t, context: n, date: r, legiResolver: i, logPartialReferences: a, resolverDiagnostics: o, reference: s, state: c }) {
13838
+ async function kv({ articleNums: e, atomicOrParentChildReference: t, context: n, date: r, legiResolver: i, logPartialReferences: a, resolverDiagnostics: o, reference: s, state: c }) {
13730
13839
  let l = t.type === "parent-enfant" ? t.parent : t, u = t.type === "parent-enfant" ? t : void 0;
13731
13840
  switch (l.type) {
13732
13841
  case "alinéa":
@@ -13735,7 +13844,7 @@ async function xv({ articleNums: e, atomicOrParentChildReference: t, context: n,
13735
13844
  case "phrase": break;
13736
13845
  case "article":
13737
13846
  if (l.definition && c.textId !== void 0) break;
13738
- await Pv({
13847
+ await Hv({
13739
13848
  article: l,
13740
13849
  date: r,
13741
13850
  legiResolver: i,
@@ -13754,7 +13863,7 @@ async function xv({ articleNums: e, atomicOrParentChildReference: t, context: n,
13754
13863
  case "sous-titre":
13755
13864
  case "titre":
13756
13865
  if (l.definition && c.textId !== void 0) break;
13757
- u !== void 0 && await bv({
13866
+ u !== void 0 && await Ov({
13758
13867
  articleNums: e,
13759
13868
  context: n,
13760
13869
  date: r,
@@ -13766,13 +13875,13 @@ async function xv({ articleNums: e, atomicOrParentChildReference: t, context: n,
13766
13875
  });
13767
13876
  break;
13768
13877
  case "texte":
13769
- _v({
13878
+ Tv({
13770
13879
  context: n,
13771
13880
  logPartialReferences: a,
13772
13881
  reference: s,
13773
13882
  state: c,
13774
13883
  text: l
13775
- }), u !== void 0 && await bv({
13884
+ }), u !== void 0 && await Ov({
13776
13885
  articleNums: e,
13777
13886
  context: n,
13778
13887
  date: r,
@@ -13786,14 +13895,14 @@ async function xv({ articleNums: e, atomicOrParentChildReference: t, context: n,
13786
13895
  default: break;
13787
13896
  }
13788
13897
  }
13789
- var Sv = new Set([
13898
+ var Av = new Set([
13790
13899
  "LEGITEXT000005634379",
13791
13900
  "LEGITEXT000006069583",
13792
13901
  "LEGITEXT000006070933",
13793
13902
  "LEGITEXT000006072026",
13794
13903
  "LEGITEXT000006073984",
13795
13904
  "LEGITEXT000006074096"
13796
- ]), Cv = new Set([
13905
+ ]), jv = new Set([
13797
13906
  "LEGITEXT000006069568",
13798
13907
  "LEGITEXT000006069569",
13799
13908
  "LEGITEXT000006069574",
@@ -13801,41 +13910,41 @@ var Sv = new Set([
13801
13910
  "LEGITEXT000006069577",
13802
13911
  "LEGITEXT000006069583"
13803
13912
  ]);
13804
- function wv(e, t, n) {
13913
+ function Mv(e, t, n) {
13805
13914
  let r = n.replace(/\s+/gu, " ").trim();
13806
13915
  r !== "" && r !== t && e.add(r);
13807
13916
  }
13808
- function Tv(e, t) {
13917
+ function Nv(e, t) {
13809
13918
  let n = new Set([e]), r = new Set([e]);
13810
13919
  for (let i = 0; i < 3; i++) {
13811
13920
  let i = /* @__PURE__ */ new Set();
13812
13921
  for (let a of r) {
13813
13922
  let r = /* @__PURE__ */ new Set();
13814
- wv(r, e, a.replace(/\s*-\s*/gu, "-")), wv(r, e, a.replace(/^(R\*)\s*(\d)/u, "$1 $2")), t === "LEGITEXT000006069583" && (wv(r, e, a.replace(/^(R)(\d)/u, "$1*$2")), wv(r, e, a.replace(/^(R)(\d)/u, "$1* $2"))), wv(r, e, a.replace(/^R\*/u, "*R")), wv(r, e, a.replace(/^R\*/u, "R"));
13815
- for (let t of a.matchAll(/-(?=\p{L})/gu)) wv(r, e, `${a.slice(0, t.index)} ${a.slice(t.index + 1)}`);
13816
- wv(r, e, a.replace(/-O(?=\p{L}|\s|$)/gu, "-0")), wv(r, e, a.replace(/-0(?=\p{L})/gu, "-0 "));
13923
+ Mv(r, e, a.replace(/\s*-\s*/gu, "-")), Mv(r, e, a.replace(/^(R\*)\s*(\d)/u, "$1 $2")), t === "LEGITEXT000006069583" && (Mv(r, e, a.replace(/^(R)(\d)/u, "$1*$2")), Mv(r, e, a.replace(/^(R)(\d)/u, "$1* $2"))), Mv(r, e, a.replace(/^R\*/u, "*R")), Mv(r, e, a.replace(/^R\*/u, "R"));
13924
+ for (let t of a.matchAll(/-(?=\p{L})/gu)) Mv(r, e, `${a.slice(0, t.index)} ${a.slice(t.index + 1)}`);
13925
+ Mv(r, e, a.replace(/-O(?=\p{L}|\s|$)/gu, "-0")), Mv(r, e, a.replace(/-0(?=\p{L})/gu, "-0 "));
13817
13926
  let o = a.match(/^((?:L\s*O|[LRDA])\*?\s*)(\d{4,})$/u);
13818
13927
  if (o !== null) {
13819
13928
  let [, t, n] = o;
13820
- for (let i = 2; i < n.length; i++) wv(r, e, `${t}${n.slice(0, i)}-${n.slice(i)}`);
13929
+ for (let i = 2; i < n.length; i++) Mv(r, e, `${t}${n.slice(0, i)}-${n.slice(i)}`);
13821
13930
  }
13822
- if (/^(?:L\s*O|[LRDA])\*?/u.test(a) && wv(r, e, a.replace(/\s+(\d+)$/u, "-$1")), t === "LEGITEXT000006069576" && /^0\d+$/u.test(a) && wv(r, e, String(Number(a))), Sv.has(t) && /^\d/u.test(a)) for (let t of [
13931
+ if (/^(?:L\s*O|[LRDA])\*?/u.test(a) && Mv(r, e, a.replace(/\s+(\d+)$/u, "-$1")), t === "LEGITEXT000006069576" && /^0\d+$/u.test(a) && Mv(r, e, String(Number(a))), Av.has(t) && /^\d/u.test(a)) for (let t of [
13823
13932
  "L",
13824
13933
  "R",
13825
13934
  "D",
13826
13935
  "A",
13827
13936
  "R*",
13828
13937
  "*R"
13829
- ]) wv(r, e, `${t}${a}`);
13830
- wv(r, e, a.replace(/(\d)\s+0(?=\s*-?\s*\p{L})/gu, "$1-0")), wv(r, e, a.replace(/(\p{L})\s+(\d{2})-([\p{L}])$/u, "$1-$2 $3"));
13938
+ ]) Mv(r, e, `${t}${a}`);
13939
+ Mv(r, e, a.replace(/(\d)\s+0(?=\s*-?\s*\p{L})/gu, "$1-0")), Mv(r, e, a.replace(/(\p{L})\s+(\d{2})-([\p{L}])$/u, "$1-$2 $3"));
13831
13940
  for (let e of r) n.has(e) || (n.add(e), i.add(e));
13832
13941
  }
13833
13942
  r = i;
13834
13943
  }
13835
13944
  return n.delete(e), [...n];
13836
13945
  }
13837
- function Ev(e, t) {
13838
- if (!Cv.has(t)) return [];
13946
+ function Pv(e, t) {
13947
+ if (!jv.has(t)) return [];
13839
13948
  let n = [], r = e;
13840
13949
  for (let e = 0; e < 4; e++) {
13841
13950
  let e = r.replace(/(?:\s*-\s*|\s+)(?:[IVX]+|[1-9]\d*)(?:\s+(?:bis|ter|quater|quinquies|sexies))?$/iu, "").trim();
@@ -13844,10 +13953,10 @@ function Ev(e, t) {
13844
13953
  }
13845
13954
  return n;
13846
13955
  }
13847
- function Dv(e, t) {
13956
+ function Fv(e, t) {
13848
13957
  return `${e}\0${t}`;
13849
13958
  }
13850
- var Ov = new Map([
13959
+ var Iv = new Map([
13851
13960
  ...[
13852
13961
  "1594 F quinquies A",
13853
13962
  "1594 F quinquies-D",
@@ -13855,7 +13964,7 @@ var Ov = new Map([
13855
13964
  "1594 F quinquies E II",
13856
13965
  "1594 F quinquies- E-I",
13857
13966
  "1594 F quinquies K"
13858
- ].map((e) => [Dv("LEGITEXT000006069577", e), {
13967
+ ].map((e) => [Fv("LEGITEXT000006069577", e), {
13859
13968
  num: "1594 F quinquies",
13860
13969
  textId: "LEGITEXT000006069577"
13861
13970
  }]),
@@ -13864,7 +13973,7 @@ var Ov = new Map([
13864
13973
  "1594-0 G-A",
13865
13974
  "1594-0 G-A-II",
13866
13975
  "1594-0 G-A-VI"
13867
- ].map((e) => [Dv("LEGITEXT000006069577", e), {
13976
+ ].map((e) => [Fv("LEGITEXT000006069577", e), {
13868
13977
  num: "1594-0 G",
13869
13978
  textId: "LEGITEXT000006069577"
13870
13979
  }]),
@@ -13876,23 +13985,23 @@ var Ov = new Map([
13876
13985
  ["38 B", "LEGITEXT000006069574"],
13877
13986
  ["49 octies D", "LEGITEXT000006069574"],
13878
13987
  ["199-0", "LEGITEXT000006069576"]
13879
- ].map(([e, t]) => [Dv("LEGITEXT000006069577", e), {
13988
+ ].map(([e, t]) => [Fv("LEGITEXT000006069577", e), {
13880
13989
  num: e,
13881
13990
  textId: t
13882
13991
  }]),
13883
- [Dv("LEGITEXT000006069577", "L173"), {
13992
+ [Fv("LEGITEXT000006069577", "L173"), {
13884
13993
  num: "173",
13885
13994
  textId: "LEGITEXT000006069577"
13886
13995
  }],
13887
- [Dv("LEGITEXT000006069583", "L38 B"), {
13996
+ [Fv("LEGITEXT000006069583", "L38 B"), {
13888
13997
  num: "L38",
13889
13998
  textId: "LEGITEXT000006069583"
13890
13999
  }],
13891
- ...["L311-13 C", "L311-13 D"].map((e) => [Dv("LEGITEXT000006070158", e), {
14000
+ ...["L311-13 C", "L311-13 D"].map((e) => [Fv("LEGITEXT000006070158", e), {
13892
14001
  num: "L311-13",
13893
14002
  textId: "LEGITEXT000006070158"
13894
14003
  }]),
13895
- [Dv("LEGITEXT000006071154", "226-14"), {
14004
+ [Fv("LEGITEXT000006071154", "226-14"), {
13896
14005
  num: "226-14",
13897
14006
  textId: "LEGITEXT000006070719"
13898
14007
  }],
@@ -13900,17 +14009,17 @@ var Ov = new Map([
13900
14009
  "1300-1",
13901
14010
  "1300-2",
13902
14011
  "1300-4"
13903
- ].map((e) => [Dv("LEGITEXT000006070721", e), {
14012
+ ].map((e) => [Fv("LEGITEXT000006070721", e), {
13904
14013
  num: e,
13905
14014
  textId: "LEGITEXT000006070716"
13906
14015
  }])
13907
- ]), kv = new Map([
13908
- [Dv("LEGITEXT000006069574", "382-0 C bis"), "LEGIARTI000036256024"],
13909
- [Dv("LEGITEXT000006069577", "1586 quinquies"), "LEGIARTI000023380915"],
13910
- [Dv("LEGITEXT000006069577", "1681 sexies"), "LEGIARTI000037986425"],
13911
- [Dv("LEGITEXT000006069577", "286"), "LEGIARTI000033815246"]
14016
+ ]), Lv = new Map([
14017
+ [Fv("LEGITEXT000006069574", "382-0 C bis"), "LEGIARTI000036256024"],
14018
+ [Fv("LEGITEXT000006069577", "1586 quinquies"), "LEGIARTI000023380915"],
14019
+ [Fv("LEGITEXT000006069577", "1681 sexies"), "LEGIARTI000037986425"],
14020
+ [Fv("LEGITEXT000006069577", "286"), "LEGIARTI000033815246"]
13912
14021
  ]);
13913
- function Av(e, t) {
14022
+ function Rv(e, t) {
13914
14023
  let n = /* @__PURE__ */ new Map(), r = (t, r) => {
13915
14024
  let i = r.replace(/[.·]/gu, "-").replace(/\s*-\s*/gu, "-").replace(/\s+/gu, "-").replace(/-{2,}/gu, "-").replace(/^-|-$/gu, "").replace(/-(?=\s)/gu, "").replace(/\s+/gu, " ").trim();
13916
14025
  i === "" || i === e || !/^(?:[LRDA]\s*)?\d+(?:-\d+)*(?:\s+(?:bis|ter|quater|quinquies|sexies|septies))?$/iu.test(i) || n.set(`${t}\0${i}`, {
@@ -13919,12 +14028,12 @@ function Av(e, t) {
13919
14028
  });
13920
14029
  }, i = /^(.*\d)\s*[,,;]?\s*(css|cgi|cibs|lpf|cch|cja|casf|cgct|coj|cpi|csp|ceseda|cmf|comofi|cpce)$/iu.exec(e);
13921
14030
  if (i !== null) {
13922
- let e = om(i[2]);
14031
+ let e = lm(i[2]);
13923
14032
  e !== void 0 && r(e, i[1]);
13924
14033
  }
13925
14034
  let a = /^(.*\d)[\s,;]+(?:du\s+|de\s+la\s+|de\s+l')?(code\b[\w'\s]*)$/iu.exec(e);
13926
14035
  if (a !== null) {
13927
- let e = om(a[2]);
14036
+ let e = lm(a[2]);
13928
14037
  e !== void 0 && r(e, a[1]);
13929
14038
  }
13930
14039
  t !== void 0 && r(t, e);
@@ -13944,18 +14053,18 @@ function Av(e, t) {
13944
14053
  });
13945
14054
  return o;
13946
14055
  }
13947
- function jv(e) {
13948
- let t = new Set(e.flatMap(({ num: e, textId: t }) => e === null || t === null ? [] : [Dv(t, e)]));
14056
+ function zv(e) {
14057
+ let t = new Set(e.flatMap(({ num: e, textId: t }) => e === null || t === null ? [] : [Fv(t, e)]));
13949
14058
  if (t.size !== 1) return;
13950
- let n = kv.get([...t][0]);
14059
+ let n = Lv.get([...t][0]);
13951
14060
  if (n !== void 0) return e.find(({ id: e }) => e === n);
13952
14061
  }
13953
- function Mv(e) {
14062
+ function Bv(e) {
13954
14063
  if (e.length < 2) return;
13955
14064
  let [t, ...n] = [...e].sort((e, t) => t.dateDebut.localeCompare(e.dateDebut));
13956
14065
  if (!n.some(({ dateDebut: e }) => e >= t.dateDebut)) return t;
13957
14066
  }
13958
- async function Nv({ alternatives: e, date: t, legiResolver: n, resolverDiagnostics: r }) {
14067
+ async function Vv({ alternatives: e, date: t, legiResolver: n, resolverDiagnostics: r }) {
13959
14068
  let i = [];
13960
14069
  r.alternativeTargetCandidateCount += e.length;
13961
14070
  for (let { num: a, textId: o } of e) {
@@ -13969,7 +14078,7 @@ async function Nv({ alternatives: e, date: t, legiResolver: n, resolverDiagnosti
13969
14078
  }
13970
14079
  return i.length === 1 ? i[0] : [];
13971
14080
  }
13972
- async function Pv({ article: e, date: t, legiResolver: n, resolverDiagnostics: r, state: i }) {
14081
+ async function Hv({ article: e, date: t, legiResolver: n, resolverDiagnostics: r, state: i }) {
13973
14082
  if (r.uniqueFallbackCheckCount++, e.present || e.num === void 0) return !1;
13974
14083
  let a = e.implicitText?.cid ?? i.textId;
13975
14084
  return !(a !== void 0 && (r.getActiveArticlesByTextAndNumCount++, (await n.getActiveArticlesByTextAndNum({
@@ -13982,7 +14091,7 @@ async function Pv({ article: e, date: t, legiResolver: n, resolverDiagnostics: r
13982
14091
  textId: i.defaultTextId
13983
14092
  })).length > 0));
13984
14093
  }
13985
- async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date: i, logPartialReferences: a, originalPositionsFromTransformedIterator: o, reference: c, iterationDiagnostics: l, resolverDiagnostics: u, state: d }) {
14094
+ async function* Uv({ ancestors: e, article: t, legiResolver: n, context: r, date: i, logPartialReferences: a, originalPositionsFromTransformedIterator: o, reference: c, iterationDiagnostics: l, resolverDiagnostics: u, state: d }) {
13986
14095
  let f = performance.now();
13987
14096
  if (t.present) {
13988
14097
  $(l, "articleLinkMs", f);
@@ -14001,10 +14110,10 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14001
14110
  }), $(l, "articleDirectLookupMs", e), p.length > 0 && (h = p);
14002
14111
  }
14003
14112
  if (p.length === 0 && t.num !== void 0 && m !== void 0) {
14004
- let e = Ov.get(Dv(m, t.num));
14113
+ let e = Iv.get(Fv(m, t.num));
14005
14114
  if (e !== void 0) {
14006
14115
  let t = performance.now();
14007
- p = await Nv({
14116
+ p = await Vv({
14008
14117
  alternatives: [e],
14009
14118
  date: i,
14010
14119
  legiResolver: n,
@@ -14014,8 +14123,8 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14014
14123
  }
14015
14124
  if (p.length === 0 && t.num !== void 0 && m !== void 0) {
14016
14125
  let e = performance.now();
14017
- p = await Nv({
14018
- alternatives: Tv(t.num, m).map((e) => ({
14126
+ p = await Vv({
14127
+ alternatives: Nv(t.num, m).map((e) => ({
14019
14128
  num: e,
14020
14129
  textId: m
14021
14130
  })),
@@ -14026,8 +14135,8 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14026
14135
  }
14027
14136
  if (p.length === 0 && t.num !== void 0 && m !== void 0) {
14028
14137
  let e = performance.now();
14029
- p = await Nv({
14030
- alternatives: Ev(t.num, m).map((e) => ({
14138
+ p = await Vv({
14139
+ alternatives: Pv(t.num, m).map((e) => ({
14031
14140
  num: e,
14032
14141
  textId: m
14033
14142
  })),
@@ -14037,7 +14146,7 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14037
14146
  }), $(l, "articleFiscalParentLookupMs", e);
14038
14147
  }
14039
14148
  let g = [];
14040
- if (p.length === 0 && t.num !== void 0 && (g = Av(t.num, m), g.length > 0 && (p = await Nv({
14149
+ if (p.length === 0 && t.num !== void 0 && (g = Rv(t.num, m), g.length > 0 && (p = await Vv({
14041
14150
  alternatives: g,
14042
14151
  date: i,
14043
14152
  legiResolver: n,
@@ -14066,10 +14175,10 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14066
14175
  if (n.length === 1) d.articleId = n[0].id;
14067
14176
  else {
14068
14177
  n.length !== 0 && (p = n);
14069
- let e = jv(p);
14178
+ let e = zv(p);
14070
14179
  if (e !== void 0) d.articleId = e.id;
14071
14180
  else {
14072
- let e = Mv(p.filter(({ dateDebut: e, dateFin: t }) => e <= i && t > i));
14181
+ let e = Bv(p.filter(({ dateDebut: e, dateFin: t }) => e <= i && t > i));
14073
14182
  e === void 0 ? (n = p.filter(({ id: e }) => !d.textId?.startsWith("JORF") || e.startsWith("JORF")), n.length === 1 ? d.articleId = n[0].id : (n.length !== 0 && (p = n), a && console.warn(`In "${r.input.slice(t.position.start, t.position.stop)}": Unable to filter article ${t.num ?? null} of text ${d.textId ?? null} among IDs ${JSON.stringify(p.map(({ id: e }) => e), null, 2)} for reference ${JSON.stringify(t, null, 2)}`), delete d.articleId)) : d.articleId = e.id;
14074
14183
  }
14075
14184
  }
@@ -14098,7 +14207,7 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14098
14207
  });
14099
14208
  $(l, "articleHistoryLookupMs", e), r !== void 0 && (v = r.articleId);
14100
14209
  } else if (h.length === 0 && m !== void 0 && g.length !== 1) {
14101
- let e = [], r = new Set([...Ev(t.num, m), ...Tv(t.num, m)]);
14210
+ let e = [], r = new Set([...Pv(t.num, m), ...Nv(t.num, m)]);
14102
14211
  for (let t of r) {
14103
14212
  u.getActiveArticlesByTextAndNumCount++;
14104
14213
  let r = performance.now(), a = await n.getActiveArticlesByTextAndNum({
@@ -14134,91 +14243,91 @@ async function* Fv({ ancestors: e, article: t, legiResolver: n, context: r, date
14134
14243
  type: "external_article"
14135
14244
  }).filter(([, e]) => e !== void 0)), l.articleExternalLinkCount++, l.articleLinkCount++, $(l, "articleLinkMs", f);
14136
14245
  }
14137
- function* Iv(e, { citations: t = !1 } = {}) {
14246
+ function* Wv(e, { citations: t = !1 } = {}) {
14138
14247
  switch (e.type) {
14139
14248
  case "article":
14140
14249
  e.num !== void 0 && (yield e.num);
14141
14250
  break;
14142
14251
  case "bounded-interval":
14143
- yield* Iv(e.first, { citations: t }), yield* Iv(e.last, { citations: t });
14252
+ yield* Wv(e.first, { citations: t }), yield* Wv(e.last, { citations: t });
14144
14253
  break;
14145
14254
  case "counted-interval":
14146
- yield* Iv(e.first, { citations: t });
14255
+ yield* Wv(e.first, { citations: t });
14147
14256
  break;
14148
14257
  case "enumeration":
14149
14258
  case "exclusion":
14150
- yield* Iv(e.left, { citations: t }), yield* Iv(e.right, { citations: t });
14259
+ yield* Wv(e.left, { citations: t }), yield* Wv(e.right, { citations: t });
14151
14260
  break;
14152
14261
  case "parent-enfant":
14153
- yield* Iv(e.parent, { citations: t }), yield* Iv(e.child, { citations: t });
14262
+ yield* Wv(e.parent, { citations: t }), yield* Wv(e.child, { citations: t });
14154
14263
  break;
14155
14264
  case "reference_et_action":
14156
- if (yield* Iv(e.reference, { citations: t }), t) {
14265
+ if (yield* Wv(e.reference, { citations: t }), t) {
14157
14266
  let { originalCitations: n } = e.action;
14158
14267
  if (n !== void 0) {
14159
- for (let e of n) if (e.references !== void 0) for (let n of e.references) yield* Iv(n, { citations: t });
14268
+ for (let e of n) if (e.references !== void 0) for (let n of e.references) yield* Wv(n, { citations: t });
14160
14269
  }
14161
14270
  }
14162
14271
  break;
14163
14272
  }
14164
14273
  }
14165
- function* Lv(e, t, { citations: n = !1 } = {}) {
14274
+ function* Gv(e, t, { citations: n = !1 } = {}) {
14166
14275
  switch (t.type) {
14167
14276
  case "bounded-interval":
14168
- yield* Lv(e, t.first, { citations: n }), yield* Lv(e, t.last, { citations: n });
14277
+ yield* Gv(e, t.first, { citations: n }), yield* Gv(e, t.last, { citations: n });
14169
14278
  break;
14170
14279
  case "counted-interval":
14171
- yield* Lv(e, t.first, { citations: n });
14280
+ yield* Gv(e, t.first, { citations: n });
14172
14281
  break;
14173
14282
  case "enumeration":
14174
14283
  case "exclusion":
14175
- yield* Lv(e, t.left, { citations: n }), yield* Lv(e, t.right, { citations: n });
14284
+ yield* Gv(e, t.left, { citations: n }), yield* Gv(e, t.right, { citations: n });
14176
14285
  break;
14177
14286
  case "reference_et_action":
14178
- if (yield* Lv(e, t.reference, { citations: n }), n) {
14287
+ if (yield* Gv(e, t.reference, { citations: n }), n) {
14179
14288
  let { originalCitations: r } = t.action;
14180
14289
  if (r !== void 0) {
14181
- for (let t of r) if (t.references !== void 0) for (let r of t.references) yield* Lv(e, r, { citations: n });
14290
+ for (let t of r) if (t.references !== void 0) for (let r of t.references) yield* Gv(e, r, { citations: n });
14182
14291
  }
14183
14292
  }
14184
14293
  break;
14185
14294
  default: yield t;
14186
14295
  }
14187
14296
  }
14188
- function* Rv(e, t) {
14297
+ function* Kv(e, t) {
14189
14298
  if (t.type === "texte") console.error(`iterDeepestDivisionsOrArticles must not be called with a text:\n${JSON.stringify(t, null, 2)}`);
14190
14299
  else if (ft(t) || t.type === "article") yield t;
14191
14300
  else if (!(pt(t) || t.type === "incomplete-header")) switch (t.type) {
14192
14301
  case "bounded-interval":
14193
- yield* Rv(e, t.first), yield* Rv(e, t.last);
14302
+ yield* Kv(e, t.first), yield* Kv(e, t.last);
14194
14303
  break;
14195
14304
  case "counted-interval":
14196
- yield* Rv(e, t.first);
14305
+ yield* Kv(e, t.first);
14197
14306
  break;
14198
14307
  case "enumeration":
14199
14308
  case "exclusion":
14200
- yield* Rv(e, t.left), yield* Rv(e, t.right);
14309
+ yield* Kv(e, t.left), yield* Kv(e, t.right);
14201
14310
  break;
14202
14311
  case "parent-enfant": {
14203
- let n = [...Rv(e, t.child)];
14204
- n.length === 0 ? yield* Rv(e, t.parent) : yield* n;
14312
+ let n = [...Kv(e, t.child)];
14313
+ n.length === 0 ? yield* Kv(e, t.parent) : yield* n;
14205
14314
  break;
14206
14315
  }
14207
14316
  case "reference_et_action": {
14208
- yield* Rv(e, t.reference);
14317
+ yield* Kv(e, t.reference);
14209
14318
  let { originalCitations: n } = t.action;
14210
14319
  if (n !== void 0) {
14211
- for (let t of n) if (t.references !== void 0) for (let n of t.references) yield* Rv(e, n);
14320
+ for (let t of n) if (t.references !== void 0) for (let n of t.references) yield* Kv(e, n);
14212
14321
  }
14213
14322
  break;
14214
14323
  }
14215
14324
  default: m("iterDeepestDivisionsOrArticles reference.type", t);
14216
14325
  }
14217
14326
  }
14218
- function zv(e) {
14327
+ function qv(e) {
14219
14328
  return e?.split(":")[0].trim().toLowerCase().split(/\s+/).map((e) => e.trim()).filter((e) => e !== "").join(" ");
14220
14329
  }
14221
- async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, division: i, divisionChildReference: a, logIgnoredReferencesTypes: o, logPartialReferences: c, originalPositionsFromTransformedIterator: l, parentSectionChildren: u, reference: d, iterationDiagnostics: f, resolverDiagnostics: p, state: m }) {
14330
+ async function* Jv({ ancestors: e, legiResolver: t, context: n, date: r, division: i, divisionChildReference: a, logIgnoredReferencesTypes: o, logPartialReferences: c, originalPositionsFromTransformedIterator: l, parentSectionChildren: u, reference: d, iterationDiagnostics: f, resolverDiagnostics: p, state: m }) {
14222
14331
  let h = performance.now();
14223
14332
  if (i.present) {
14224
14333
  $(f, "divisionLinkMs", h);
@@ -14235,20 +14344,20 @@ async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, divisio
14235
14344
  }
14236
14345
  if (u !== void 0) {
14237
14346
  for (let e of u) {
14238
- let t = zv(e.title);
14347
+ let t = qv(e.title);
14239
14348
  if (t !== void 0) {
14240
14349
  let n = !1;
14241
- if (i.index !== void 0 && (n = Vv(i.type, i.index).some((e) => e === t)), !n && i.num !== void 0 && (n = `${i.type} ${i.num.toLowerCase()}` === t), n) {
14350
+ if (i.index !== void 0 && (n = Yv(i.type, i.index).some((e) => e === t)), !n && i.num !== void 0 && (n = `${i.type} ${i.num.toLowerCase()}` === t), n) {
14242
14351
  g = e;
14243
14352
  break;
14244
14353
  }
14245
14354
  }
14246
14355
  }
14247
14356
  if (g === void 0 && (g = u.find((e) => {
14248
- let t = zv(e.title)?.split(/\s+/);
14357
+ let t = qv(e.title)?.split(/\s+/);
14249
14358
  return t !== void 0 && t.length === 2 && st.includes(t[0]) && t[1] === "législative";
14250
14359
  }), g !== void 0)) {
14251
- let e = zv(g.title).split(/\s+/), t = {
14360
+ let e = qv(g.title).split(/\s+/), t = {
14252
14361
  start: i.position.stop,
14253
14362
  stop: i.position.stop
14254
14363
  }, n = l === void 0 ? void 0 : s(l, t), r = Object.fromEntries(Object.entries({
@@ -14266,8 +14375,8 @@ async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, divisio
14266
14375
  }).filter(([, e]) => e !== void 0)), i = r;
14267
14376
  }
14268
14377
  }
14269
- let _ = a === void 0 ? [] : [...Rv(n, a.child)], v = 0;
14270
- if (a !== void 0) for (let s of Lv(n, a.child)) {
14378
+ let _ = a === void 0 ? [] : [...Kv(n, a.child)], v = 0;
14379
+ if (a !== void 0) for (let s of Gv(n, a.child)) {
14271
14380
  let u = s.type === "parent-enfant" ? s.parent : s, h = s.type === "parent-enfant" ? s : void 0;
14272
14381
  switch (u.type) {
14273
14382
  case "alinéa":
@@ -14276,7 +14385,7 @@ async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, divisio
14276
14385
  case "phrase": break;
14277
14386
  case "article": {
14278
14387
  let a = performance.now();
14279
- for await (let a of Fv({
14388
+ for await (let a of Uv({
14280
14389
  ancestors: _.length === 1 ? [...e ?? [], i] : void 0,
14281
14390
  article: u,
14282
14391
  legiResolver: t,
@@ -14312,7 +14421,7 @@ async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, divisio
14312
14421
  }), $(f, "divisionDirectChildrenLookupMs", e);
14313
14422
  }
14314
14423
  let s = performance.now();
14315
- for await (let s of Bv({
14424
+ for await (let s of Jv({
14316
14425
  ancestors: _.length === 1 ? [...e ?? [], i] : void 0,
14317
14426
  legiResolver: t,
14318
14427
  context: n,
@@ -14354,7 +14463,7 @@ async function* Bv({ ancestors: e, legiResolver: t, context: n, date: r, divisio
14354
14463
  }
14355
14464
  $(f, "divisionLinkMs", h);
14356
14465
  }
14357
- function* Vv(e, t) {
14466
+ function* Yv(e, t) {
14358
14467
  let n = Math.floor(t), i = Math.floor((t - n) * 1e3);
14359
14468
  if (i === 0) {
14360
14469
  for (let t of r(n)) yield `${t.toLowerCase()} ${e}`;
@@ -14364,9 +14473,9 @@ function* Vv(e, t) {
14364
14473
  for (let r of ne(n)) yield `${e} ${t} ${r.toLowerCase()}`;
14365
14474
  }
14366
14475
  }
14367
- async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context: n, date: r, logIgnoredReferencesTypes: i, logPartialReferences: a, originalPositionsFromTransformedIterator: o, reference: c, iterationDiagnostics: l, resolverDiagnostics: u, state: d }) {
14368
- let f = e ?? {}, p = u ?? uv(), m = l ?? lv(), h = d === void 0 ? {} : d;
14369
- for (let e of Lv(n, c)) {
14476
+ async function* Xv({ articleDefinitionByNumByTextId: e, legiResolver: t, context: n, date: r, logIgnoredReferencesTypes: i, logPartialReferences: a, originalPositionsFromTransformedIterator: o, reference: c, iterationDiagnostics: l, resolverDiagnostics: u, state: d }) {
14477
+ let f = e ?? {}, p = u ?? vv(), m = l ?? _v(), h = d === void 0 ? {} : d;
14478
+ for (let e of Gv(n, c)) {
14370
14479
  let l = e.type === "parent-enfant" ? e.parent : e, u = e.type === "parent-enfant" ? e : void 0;
14371
14480
  switch (l.type) {
14372
14481
  case "alinéa":
@@ -14377,7 +14486,7 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14377
14486
  if (l.definition && h.textId !== void 0) {
14378
14487
  let e = f[h.textId]?.[l.num];
14379
14488
  e !== void 0 && (e.originalTransformation === void 0 && o !== void 0 && (e.originalTransformation = s(o, e.position)), yield e, m.articleDefinitionLinkCount++, m.articleLinkCount++);
14380
- } else for await (let e of Fv({
14489
+ } else for await (let e of Uv({
14381
14490
  article: l,
14382
14491
  legiResolver: t,
14383
14492
  context: n,
@@ -14400,7 +14509,7 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14400
14509
  case "sous-sous-paragraphe":
14401
14510
  case "sous-titre":
14402
14511
  case "titre":
14403
- if (!(l.definition && h.textId !== void 0)) for await (let e of Bv({
14512
+ if (!(l.definition && h.textId !== void 0)) for await (let e of Jv({
14404
14513
  legiResolver: t,
14405
14514
  context: n,
14406
14515
  date: r,
@@ -14417,15 +14526,15 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14417
14526
  break;
14418
14527
  case "texte": {
14419
14528
  let e = performance.now();
14420
- _v({
14529
+ Tv({
14421
14530
  context: n,
14422
14531
  logPartialReferences: a,
14423
14532
  reference: c,
14424
14533
  state: h,
14425
14534
  text: l
14426
14535
  });
14427
- let d = u === void 0 ? [] : [...Rv(n, u.child)], f = 0;
14428
- if (u !== void 0) for (let e of Lv(n, u.child)) {
14536
+ let d = u === void 0 ? [] : [...Kv(n, u.child)], f = 0;
14537
+ if (u !== void 0) for (let e of Gv(n, u.child)) {
14429
14538
  let s = e.type === "parent-enfant" ? e.parent : e, g = e.type === "parent-enfant" ? e : void 0;
14430
14539
  switch (s.type) {
14431
14540
  case "alinéa":
@@ -14434,7 +14543,7 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14434
14543
  case "phrase": break;
14435
14544
  case "article": {
14436
14545
  let e = performance.now();
14437
- for await (let e of Fv({
14546
+ for await (let e of Uv({
14438
14547
  ancestors: d.length === 1 ? [l] : void 0,
14439
14548
  article: s,
14440
14549
  legiResolver: t,
@@ -14470,7 +14579,7 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14470
14579
  }), $(m, "divisionDirectChildrenLookupMs", n);
14471
14580
  }
14472
14581
  let u = performance.now();
14473
- for await (let u of Bv({
14582
+ for await (let u of Jv({
14474
14583
  ancestors: d.length === 1 ? [l] : void 0,
14475
14584
  legiResolver: t,
14476
14585
  context: n,
@@ -14530,7 +14639,7 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14530
14639
  for (let c of s.references) {
14531
14640
  m.citationReferenceCount++;
14532
14641
  let s = performance.now();
14533
- for await (let s of Hv({
14642
+ for await (let s of Xv({
14534
14643
  articleDefinitionByNumByTextId: f,
14535
14644
  legiResolver: t,
14536
14645
  context: n,
@@ -14551,13 +14660,13 @@ async function* Hv({ articleDefinitionByNumByTextId: e, legiResolver: t, context
14551
14660
  }
14552
14661
  //#endregion
14553
14662
  //#region src/lib/extractors/table_of_contents.ts
14554
- function Uv(e) {
14663
+ function Zv(e) {
14555
14664
  let t = e;
14556
14665
  return t.items ?? [...t.articles ?? [], ...t.divisions ?? []];
14557
14666
  }
14558
- function* Wv({ context: e, tableOfContents: t, transformation: n }) {
14667
+ function* Qv({ context: e, tableOfContents: t, transformation: n }) {
14559
14668
  let r = 0, i = g(n);
14560
- for (let n of Kv(t)) {
14669
+ for (let n of ey(t)) {
14561
14670
  let t = n.line.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), a = RegExp(`^${t}$`, "m");
14562
14671
  a.lastIndex = r;
14563
14672
  let o = a.exec(e.input);
@@ -14569,7 +14678,7 @@ function* Wv({ context: e, tableOfContents: t, transformation: n }) {
14569
14678
  u.originalTransformation = l, u.position = c, yield u, r = c.stop;
14570
14679
  }
14571
14680
  }
14572
- function Gv(e) {
14681
+ function $v(e) {
14573
14682
  let t = new x(e), n = { items: [] }, r = [];
14574
14683
  for (let e of En(t)) if (ft(e)) {
14575
14684
  let i = r.findIndex(({ type: t }) => t === e.type);
@@ -14587,20 +14696,20 @@ function Gv(e) {
14587
14696
  else throw Error(`Unexpected type "${e.type}" in definition:\n${JSON.stringify(e, null, 2)}`);
14588
14697
  return n;
14589
14698
  }
14590
- function* Kv(e) {
14699
+ function* ey(e) {
14591
14700
  e.type !== void 0 && (yield e);
14592
- for (let t of Uv(e)) t.type === "article" ? yield t : yield* Kv(t);
14701
+ for (let t of Zv(e)) t.type === "article" ? yield t : yield* ey(t);
14593
14702
  }
14594
14703
  //#endregion
14595
14704
  //#region src/lib/links.ts
14596
- var qv = ["Exploratrice", "Forgejo"];
14597
- function Jv(e) {
14705
+ var ty = ["Exploratrice", "Forgejo"];
14706
+ function ny(e) {
14598
14707
  let t = /^articles?\s+(?:n°\s*)?((?:1er|\d+)(?:\s+(?:bis|ter|quater|quinquies|septies))?(?:[-.·\s]\d+)*)\s+(?:du|de\s+la|de\s+l'|des|au|à)\b/iu.exec(e);
14599
14708
  if (t === null) return;
14600
14709
  let n = t[1].replace(/^(\d+)er\b/iu, "$1").replace(/[.·\s]/gu, "-").replace(/-{2,}/gu, "-").replace(/^-|-$/gu, "");
14601
14710
  return /^\d+(?:-\d+)*(?:-(?:bis|ter|quater|quinquies|septies))?$/iu.test(n) ? n : void 0;
14602
14711
  }
14603
- function Yv(e, t, n) {
14712
+ function ry(e, t, n) {
14604
14713
  if (n.match(qe) === null) throw Error(`Unknown ID format: ${n}`);
14605
14714
  switch (e) {
14606
14715
  case "Exploratrice": return new URL(`legifrance/articles/${n}/versions`, t).toString();
@@ -14608,7 +14717,7 @@ function Yv(e, t, n) {
14608
14717
  default: m("urlFromArticleVersionsId linkType", e);
14609
14718
  }
14610
14719
  }
14611
- function Xv(e, t, n) {
14720
+ function iy(e, t, n) {
14612
14721
  let r = n.match(qe);
14613
14722
  if (r === null) throw Error(`Unknown ID format: ${n}`);
14614
14723
  switch (e) {
@@ -14629,19 +14738,19 @@ function Xv(e, t, n) {
14629
14738
  }
14630
14739
  //#endregion
14631
14740
  //#region src/lib/linkers/html.ts
14632
- function Zv(e, t) {
14741
+ function ay(e, t) {
14633
14742
  if (e !== void 0) return e;
14634
- if (t !== void 0) return new sv(t);
14743
+ if (t !== void 0) return new hv(t);
14635
14744
  throw Error("A Canutes database or legal resolver is required");
14636
14745
  }
14637
- function Qv(e, t) {
14746
+ function oy(e, t) {
14638
14747
  return t.type === "reference_et_action" ? JSON.stringify({
14639
14748
  ...e,
14640
14749
  action: t.action
14641
14750
  }) : JSON.stringify(e);
14642
14751
  }
14643
- async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl: i, linkType: a, logIgnoredReferencesTypes: o, logPartialReferences: s, logReferences: c, onLink: l, previousContext: u, state: d }) {
14644
- let f = new Ee("addLinksToHtml"), p = Zv(t, e);
14752
+ async function sy({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl: i, linkType: a, logIgnoredReferencesTypes: o, logPartialReferences: s, logReferences: c, onLink: l, previousContext: u, state: d }) {
14753
+ let f = new Ee("addLinksToHtml"), p = ay(t, e);
14645
14754
  await f.time("preloadTextTitlesInfos", () => p.preloadTextTitlesInfos());
14646
14755
  let h = f.timeSync("simplifyHtml", () => v({ removeAWithHref: !0 })(r), {
14647
14756
  inputSize: r.length,
@@ -14650,7 +14759,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14650
14759
  g.currentArticle = u?.currentArticle, g.currentText = u?.currentText;
14651
14760
  let _ = [], y = { value: 0 }, b = -1;
14652
14761
  await f.time("extractTextLinks", async () => {
14653
- for await (let e of gv({
14762
+ for await (let e of wv({
14654
14763
  legiResolver: p,
14655
14764
  context: g,
14656
14765
  date: n,
@@ -14663,7 +14772,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14663
14772
  case "article_definition": {
14664
14773
  let { article: t, originalTransformation: n, textId: i } = e;
14665
14774
  if (n === void 0) throw Error(`Missing originalTransformation attribute in article definition: ${JSON.stringify(e, null, 2)}`);
14666
- ty({
14775
+ ly({
14667
14776
  inputHtml: r,
14668
14777
  originalTransformation: n,
14669
14778
  output: { replacements: _ },
@@ -14676,10 +14785,10 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14676
14785
  let { articleId: t, historyArticleId: n, originalTransformation: o } = e;
14677
14786
  if (t === void 0 && n === void 0) break;
14678
14787
  if (o === void 0) throw Error(`Missing originalTransformation attribute in external article link: ${JSON.stringify(e, null, 2)}`);
14679
- let s = t === void 0 ? Yv(a, i, n) : Xv(a, i, t);
14788
+ let s = t === void 0 ? ry(a, i, n) : iy(a, i, t);
14680
14789
  if (s === void 0) break;
14681
14790
  let c = t === void 0 ? `class="lien_article_historique" href="${s}" title="Versions de l'article"` : `class="lien_article_externe" href="${s}"`;
14682
- ty({
14791
+ ly({
14683
14792
  inputHtml: r,
14684
14793
  originalTransformation: o,
14685
14794
  output: { replacements: _ },
@@ -14692,12 +14801,12 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14692
14801
  let { originalTransformation: t, sectionTaId: n } = e;
14693
14802
  if (n !== void 0) {
14694
14803
  if (t === void 0) throw Error(`Missing originalTransformation attribute in external division link: ${JSON.stringify(e, null, 2)}`);
14695
- ty({
14804
+ ly({
14696
14805
  inputHtml: r,
14697
14806
  originalTransformation: t,
14698
14807
  output: { replacements: _ },
14699
14808
  replacementCounter: y,
14700
- tagHtmlFromOriginal: (e) => `<a class="lien_division_externe" href="${Xv(a, i, n)}">${e}</a>`
14809
+ tagHtmlFromOriginal: (e) => `<a class="lien_division_externe" href="${iy(a, i, n)}">${e}</a>`
14701
14810
  });
14702
14811
  }
14703
14812
  break;
@@ -14709,7 +14818,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14709
14818
  continue;
14710
14819
  }
14711
14820
  if (t === void 0) throw Error(`Missing originalTransformation attribute in external text link: ${JSON.stringify(e, null, 2)}`);
14712
- let c = Jv(g.text(o.position)), l, u;
14821
+ let c = ny(g.text(o.position)), l, u;
14713
14822
  if (c !== void 0) {
14714
14823
  let e = await p.getActiveArticlesByTextAndNum({
14715
14824
  date: n,
@@ -14726,17 +14835,17 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14726
14835
  }
14727
14836
  }
14728
14837
  if (l === void 0 && u === void 0) {
14729
- ty({
14838
+ ly({
14730
14839
  inputHtml: r,
14731
14840
  originalTransformation: t,
14732
14841
  output: { replacements: _ },
14733
14842
  replacementCounter: y,
14734
- tagHtmlFromOriginal: (e) => `<a class="lien_texte_externe" href="${Xv(a, i, o.cid)}">${e}</a>`
14843
+ tagHtmlFromOriginal: (e) => `<a class="lien_texte_externe" href="${iy(a, i, o.cid)}">${e}</a>`
14735
14844
  });
14736
14845
  break;
14737
14846
  }
14738
- let d = l ?? u, f = l === void 0 ? `class="lien_article_historique" href="${Yv(a, i, d)}" title="Versions de l'article"` : `class="lien_article_externe" href="${Xv(a, i, d)}"`;
14739
- ty({
14847
+ let d = l ?? u, f = l === void 0 ? `class="lien_article_historique" href="${ry(a, i, d)}" title="Versions de l'article"` : `class="lien_article_externe" href="${iy(a, i, d)}"`;
14848
+ ly({
14740
14849
  inputHtml: r,
14741
14850
  originalTransformation: t,
14742
14851
  output: { replacements: _ },
@@ -14749,7 +14858,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14749
14858
  let { url: t, originalTransformation: n } = e;
14750
14859
  if (t === void 0) continue;
14751
14860
  if (n === void 0) throw Error(`Missing originalTransformation attribute in european text link: ${JSON.stringify(e, null, 2)}`);
14752
- ty({
14861
+ ly({
14753
14862
  inputHtml: r,
14754
14863
  originalTransformation: n,
14755
14864
  output: { replacements: _ },
@@ -14761,7 +14870,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14761
14870
  case "internal_article": {
14762
14871
  let { definition: t, originalTransformation: n } = e;
14763
14872
  if (n === void 0) throw Error(`Missing originalTransformation attribute in internal article link: ${JSON.stringify(e, null, 2)}`);
14764
- ty({
14873
+ ly({
14765
14874
  inputHtml: r,
14766
14875
  originalTransformation: n,
14767
14876
  output: { replacements: _ },
@@ -14773,7 +14882,7 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14773
14882
  default: m("Link", e);
14774
14883
  }
14775
14884
  }, { count: b + 1 });
14776
- let ee = f.timeSync("applyHtmlReplacements", () => ey(r, _), {
14885
+ let ee = f.timeSync("applyHtmlReplacements", () => cy(r, _), {
14777
14886
  count: _.length,
14778
14887
  inputSize: r.length
14779
14888
  });
@@ -14785,13 +14894,13 @@ async function $v({ canutesDb: e, legiResolver: t, date: n, html: r, linkBaseUrl
14785
14894
  output: _.length === 0 ? null : ee
14786
14895
  };
14787
14896
  }
14788
- function ey(e, t) {
14897
+ function cy(e, t) {
14789
14898
  if (t.length === 0) return e;
14790
14899
  let n = [], r = 0;
14791
14900
  for (let i of t.toSorted((e, t) => e.start - t.start || e.stop - t.stop || e.order - t.order)) i.start < r || (n.push(e.slice(r, i.start)), n.push(i.replacement), r = i.stop);
14792
14901
  return n.push(e.slice(r)), n.join("");
14793
14902
  }
14794
- function ty({ inputHtml: e, originalTransformation: t, output: n, replacementCounter: r, tagHtmlFromOriginal: i }) {
14903
+ function ly({ inputHtml: e, originalTransformation: t, output: n, replacementCounter: r, tagHtmlFromOriginal: i }) {
14795
14904
  let a = te(t, i(p(e, t, 0) ?? ""));
14796
14905
  n.replacements.push({
14797
14906
  order: r.value++,
@@ -14800,11 +14909,11 @@ function ty({ inputHtml: e, originalTransformation: t, output: n, replacementCou
14800
14909
  stop: t.position.stop
14801
14910
  });
14802
14911
  }
14803
- function ny({ attributes: e, inputHtml: t, originalTransformation: n, outputByType: r, replacementCounter: i }) {
14912
+ function uy({ attributes: e, inputHtml: t, originalTransformation: n, outputByType: r, replacementCounter: i }) {
14804
14913
  let a = Object.entries(e).map(([e, t]) => `${e}="${tt(t, !0)}"`).join(" ");
14805
14914
  for (let e of ["links", "links_or_references"]) {
14806
14915
  let o = r[e];
14807
- o !== void 0 && ty({
14916
+ o !== void 0 && ly({
14808
14917
  inputHtml: t,
14809
14918
  originalTransformation: n,
14810
14919
  output: o,
@@ -14813,11 +14922,11 @@ function ny({ attributes: e, inputHtml: t, originalTransformation: n, outputByTy
14813
14922
  });
14814
14923
  }
14815
14924
  }
14816
- function ry({ id: e, outputByType: t }) {
14925
+ function dy({ id: e, outputByType: t }) {
14817
14926
  return t.references !== void 0 || e === void 0 && t.links_or_references !== void 0;
14818
14927
  }
14819
- async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlTransformation: i, inputHtml: a, linkBaseUrl: o, linkType: s, logIgnoredReferencesTypes: c, logPartialReferences: l, logReferences: u, outputTypes: d, referredLegifranceTextsInfos: f }) {
14820
- let p = Zv(t, e);
14928
+ async function fy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, htmlTransformation: i, inputHtml: a, linkBaseUrl: o, linkType: s, logIgnoredReferencesTypes: c, logPartialReferences: l, logReferences: u, outputTypes: d, referredLegifranceTextsInfos: f }) {
14929
+ let p = ay(t, e);
14821
14930
  await p.preloadTextTitlesInfos();
14822
14931
  let h = new x(i.output), g = {}, _ = {};
14823
14932
  for (let e of d) _[e] = {
@@ -14826,7 +14935,7 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14826
14935
  replacements: []
14827
14936
  };
14828
14937
  let v = { value: 0 };
14829
- for await (let e of gv({
14938
+ for await (let e of wv({
14830
14939
  legiResolver: p,
14831
14940
  context: h,
14832
14941
  date: n,
@@ -14839,7 +14948,7 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14839
14948
  case "article_definition": {
14840
14949
  let { article: t, originalTransformation: n, textId: r } = e;
14841
14950
  if (n === void 0) throw Error(`Missing originalTransformation attribute in article definition: ${JSON.stringify(e, null, 2)}`);
14842
- for (let e of Object.values(_)) ty({
14951
+ for (let e of Object.values(_)) ly({
14843
14952
  inputHtml: a,
14844
14953
  originalTransformation: n,
14845
14954
  output: e,
@@ -14852,10 +14961,10 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14852
14961
  let { article: t, articleId: n, historyArticleId: r, originalTransformation: i } = e;
14853
14962
  if (i === void 0) throw Error(`Missing originalTransformation attribute in external article link: ${JSON.stringify(e, null, 2)}`);
14854
14963
  if (n !== void 0) {
14855
- if (ny({
14964
+ if (uy({
14856
14965
  attributes: {
14857
14966
  class: "lien_article_externe",
14858
- href: Xv(s, o, n)
14967
+ href: iy(s, o, n)
14859
14968
  },
14860
14969
  inputHtml: a,
14861
14970
  originalTransformation: i,
@@ -14866,8 +14975,8 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14866
14975
  e != null && (g[e] = (g[e] ?? 0) + 1);
14867
14976
  }
14868
14977
  } else if (r !== void 0) {
14869
- let e = Yv(s, o, r);
14870
- e !== void 0 && ny({
14978
+ let e = ry(s, o, r);
14979
+ e !== void 0 && uy({
14871
14980
  attributes: {
14872
14981
  class: "lien_article_historique",
14873
14982
  href: e,
@@ -14879,14 +14988,14 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14879
14988
  replacementCounter: v
14880
14989
  });
14881
14990
  }
14882
- ry({
14991
+ dy({
14883
14992
  id: n,
14884
14993
  outputByType: _
14885
- }) && ay({
14994
+ }) && py({
14886
14995
  attributes: {
14887
14996
  class: "reference_article",
14888
14997
  style: "background-color: #eae462",
14889
- title: Qv(t, e.reference)
14998
+ title: oy(t, e.reference)
14890
14999
  },
14891
15000
  id: n,
14892
15001
  inputHtml: a,
@@ -14899,10 +15008,10 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14899
15008
  case "external_division": {
14900
15009
  let { division: t, originalTransformation: n, sectionTaId: r } = e;
14901
15010
  if (n === void 0) throw Error(`Missing originalTransformation attribute in external division link: ${JSON.stringify(e, null, 2)}`);
14902
- if (r !== void 0 && (ny({
15011
+ if (r !== void 0 && (uy({
14903
15012
  attributes: {
14904
15013
  class: "lien_division_externe",
14905
- href: Xv(s, o, r)
15014
+ href: iy(s, o, r)
14906
15015
  },
14907
15016
  inputHtml: a,
14908
15017
  originalTransformation: n,
@@ -14912,14 +15021,14 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14912
15021
  let e = await p.getTextIdFromSegmentId(r);
14913
15022
  e != null && (g[e] = (g[e] ?? 0) + 1);
14914
15023
  }
14915
- ry({
15024
+ dy({
14916
15025
  id: r,
14917
15026
  outputByType: _
14918
- }) && ay({
15027
+ }) && py({
14919
15028
  attributes: {
14920
15029
  class: "reference_division",
14921
15030
  style: "background-color: #eae462",
14922
- title: Qv(t, e.reference)
15031
+ title: oy(t, e.reference)
14923
15032
  },
14924
15033
  id: r,
14925
15034
  inputHtml: a,
@@ -14932,7 +15041,7 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14932
15041
  case "european_text": {
14933
15042
  let { url: t, originalTransformation: n, text: r, titleId: i } = e;
14934
15043
  if (n === void 0) throw Error(`Missing originalTransformation attribute in external text link: ${JSON.stringify(e, null, 2)}`);
14935
- ny({
15044
+ uy({
14936
15045
  attributes: {
14937
15046
  class: "lien_texte_european",
14938
15047
  href: t,
@@ -14942,14 +15051,14 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14942
15051
  originalTransformation: n,
14943
15052
  outputByType: _,
14944
15053
  replacementCounter: v
14945
- }), ry({
15054
+ }), dy({
14946
15055
  id: i,
14947
15056
  outputByType: _
14948
- }) && ay({
15057
+ }) && py({
14949
15058
  attributes: {
14950
15059
  class: "reference_texte",
14951
15060
  style: "background-color: #eae462",
14952
- title: Qv(r, e.reference)
15061
+ title: oy(r, e.reference)
14953
15062
  },
14954
15063
  id: i,
14955
15064
  inputHtml: a,
@@ -14964,7 +15073,7 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14964
15073
  if (t === void 0) throw Error(`Missing originalTransformation attribute in external text link: ${JSON.stringify(e, null, 2)}`);
14965
15074
  if (r.cid === void 0) !r.present && l && console.error(`Link to text "${h.text(r.position)}" without CID: ${JSON.stringify(r, null, 2)}`);
14966
15075
  else {
14967
- let e = Jv(h.text(r.position)), i;
15076
+ let e = ny(h.text(r.position)), i;
14968
15077
  if (e !== void 0) {
14969
15078
  let t = await p.getActiveArticlesByTextAndNum({
14970
15079
  date: n,
@@ -14973,13 +15082,13 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14973
15082
  }), a = t.filter(({ dateDebut: e, dateFin: t }) => e <= n && t > n);
14974
15083
  if (a.length === 1) i = {
14975
15084
  class: "lien_article_externe",
14976
- href: Xv(s, o, a[0].id)
15085
+ href: iy(s, o, a[0].id)
14977
15086
  };
14978
15087
  else if (t.length > 0) {
14979
15088
  let t = await p.getArticleHistoryInfo({
14980
15089
  num: e,
14981
15090
  textId: r.cid
14982
- }), n = t === void 0 ? void 0 : Yv(s, o, t.articleId);
15091
+ }), n = t === void 0 ? void 0 : ry(s, o, t.articleId);
14983
15092
  n !== void 0 && (i = {
14984
15093
  class: "lien_article_historique",
14985
15094
  href: n,
@@ -14987,10 +15096,10 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14987
15096
  });
14988
15097
  }
14989
15098
  }
14990
- ny({
15099
+ uy({
14991
15100
  attributes: i ?? {
14992
15101
  class: "lien_texte_externe",
14993
- href: Xv(s, o, r.cid)
15102
+ href: iy(s, o, r.cid)
14994
15103
  },
14995
15104
  inputHtml: a,
14996
15105
  originalTransformation: t,
@@ -14998,14 +15107,14 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
14998
15107
  replacementCounter: v
14999
15108
  }), i === void 0 && f && (g[r.cid] = (g[r.cid] ?? 0) + 1);
15000
15109
  }
15001
- ry({
15110
+ dy({
15002
15111
  id: r.cid,
15003
15112
  outputByType: _
15004
- }) && ay({
15113
+ }) && py({
15005
15114
  attributes: {
15006
15115
  class: "reference_texte",
15007
15116
  style: "background-color: #eae462",
15008
- title: Qv(r, e.reference)
15117
+ title: oy(r, e.reference)
15009
15118
  },
15010
15119
  id: r.cid,
15011
15120
  inputHtml: a,
@@ -15018,7 +15127,7 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
15018
15127
  case "internal_article": {
15019
15128
  let { definition: t, originalTransformation: n } = e;
15020
15129
  if (n === void 0) throw Error(`Missing originalTransformation attribute in internal article link: ${JSON.stringify(e, null, 2)}`);
15021
- for (let e of Object.values(_)) ty({
15130
+ for (let e of Object.values(_)) ly({
15022
15131
  inputHtml: a,
15023
15132
  originalTransformation: n,
15024
15133
  output: e,
@@ -15029,18 +15138,18 @@ async function iy({ canutesDb: e, legiResolver: t, date: n, defaultTextId: r, ht
15029
15138
  }
15030
15139
  default: m("Link", e);
15031
15140
  }
15032
- for (let e of Object.values(_)) e.html = ey(a, e.replacements);
15141
+ for (let e of Object.values(_)) e.html = cy(a, e.replacements);
15033
15142
  return {
15034
15143
  outputByType: _,
15035
15144
  referredLegifranceTextCountByCid: g
15036
15145
  };
15037
15146
  }
15038
- function ay({ attributes: e, id: t, inputHtml: n, originalTransformation: r, outputByType: i, replacementCounter: a }) {
15147
+ function py({ attributes: e, id: t, inputHtml: n, originalTransformation: r, outputByType: i, replacementCounter: a }) {
15039
15148
  let o = Object.entries(e).map(([e, t]) => `${e}="${tt(t, !0)}"`).join(" ");
15040
15149
  for (let e of ["links_or_references", "references"]) {
15041
15150
  if (e === "links_or_references" && t !== void 0) continue;
15042
15151
  let s = i[e];
15043
- s !== void 0 && ty({
15152
+ s !== void 0 && ly({
15044
15153
  inputHtml: n,
15045
15154
  originalTransformation: r,
15046
15155
  output: s,
@@ -15050,4 +15159,4 @@ function ay({ attributes: e, id: t, inputHtml: n, originalTransformation: r, out
15050
15159
  }
15051
15160
  }
15052
15161
  //#endregion
15053
- export { Vp as $, nh as A, gt as At, Nm as B, ot as Bt, ag as C, Vt as Ct, ih as D, Bt as Dt, lh as E, zt as Et, th as F, nt as Ft, xm as G, ut as Gt, wm as H, ft as Ht, Wm as I, rt as It, Yp as J, mm as K, lt as Kt, Hm as L, st as Lt, Zm as M, E as Mt, $m as N, D as Nt, ah as O, kt as Ot, eh as P, St as Pt, Pp as Q, Um as R, it as Rt, sg as S, Xt as St, Gh as T, Ot as Tt, Sm as U, pt as Ut, jm as V, dt as Vt, Cm as W, ct as Wt, em as X, Xp as Y, Jp as Z, J_ as _, cn as _t, Yv as a, vn as at, dg as b, Jt as bt, Gv as c, Tn as ct, gv as d, pn as dt, Sp as et, Hv as f, dn as ft, tv as g, rn as gt, K_ as h, on as ht, qv as i, En as it, Xm as j, vt as jt, rh as k, ht as kt, Uv as l, mn as lt, fg as m, an as mt, $v as n, qp as nt, Xv as o, yn as ot, sv as p, nn as pt, Z as q, Jv as r, pp as rt, Wv as s, Sn as st, iy as t, Cp as tt, Kv as u, _n as ut, ev as v, $t as vt, Kh as w, Ht as wt, og as x, Yt as xt, q_ as y, Zt as yt, Fm as z, at as zt };
15162
+ export { em as $, ah as A, kt as At, Im as B, it as Bt, cg as C, Yt as Ct, sh as D, Ot as Dt, fh as E, Ht as Et, ih as F, D as Ft, wm as G, pt as Gt, Dm as H, ot as Ht, qm as I, St as It, Yp as J, lt as Jt, _m as K, ct as Kt, Gm as L, nt as Lt, eh as M, gt as Mt, nh as N, vt as Nt, ch as O, zt as Ot, rh as P, E as Pt, tm as Q, Km as R, rt as Rt, ug as S, Jt as St, Jh as T, Vt as Tt, Tm as U, dt as Ut, Pm as V, at as Vt, Em as W, ft as Wt, rm as X, Xp as Y, Jp as Z, nv as _, on as _t, ry as a, pp as at, mg as b, $t as bt, $v as c, yn as ct, wv as d, mn as dt, Pp as et, Xv as f, _n as ft, lv as g, an as gt, ev as h, nn as ht, ty as i, qp as it, $m as j, ht as jt, oh as k, Bt as kt, Zv as l, Sn as lt, hg as m, dn as mt, sy as n, Sp as nt, iy as o, En as ot, hv as p, pn as pt, Z as q, ut as qt, ny as r, Cp as rt, Qv as s, vn as st, fy as t, Vp as tt, ey as u, Tn as ut, cv as v, rn as vt, Yh as w, Xt as wt, lg as x, Zt as xt, tv as y, cn as yt, Rm as z, st as zt };