@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.
- package/README.md +13 -9
- package/dist/{html-DN3bob0k.js → html-9cEkPW9X.js} +946 -837
- package/dist/index.js +135 -135
- package/dist/server.js +957 -727
- package/dist/src/lib/extractors/action_directives.d.ts +2 -0
- package/dist/src/lib/extractors/article_action_effects.d.ts +17 -0
- package/dist/src/lib/extractors/article_action_effects.test.d.ts +1 -0
- package/dist/src/lib/extractors/article_action_effects_long.test.d.ts +1 -0
- package/dist/src/lib/extractors/article_action_targets.d.ts +11 -0
- package/dist/src/lib/extractors/article_action_targets.test.d.ts +1 -0
- package/dist/src/lib/extractors/quoted_text.d.ts +3 -1
- package/dist/src/lib/index.d.ts +1 -1
- package/dist/src/lib/server/parsed_bills.d.ts +7 -1
- package/dist/src/lib/text_parsers/articles.d.ts +4 -2
- package/dist/src/lib/text_parsers/citations.d.ts +21 -4
- package/package.json +1 -1
|
@@ -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|
|
|
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)
|
|
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
|
-
|
|
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
|
|
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
|
-
})(
|
|
5208
|
-
var
|
|
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
|
-
})(
|
|
5212
|
-
function el(e) {
|
|
5213
|
-
return e >= W.ZERO && e <= W.NINE;
|
|
5214
|
-
}
|
|
5217
|
+
})(el ||= {});
|
|
5215
5218
|
function tl(e) {
|
|
5216
|
-
return e >=
|
|
5219
|
+
return e >= Qc.ZERO && e <= Qc.NINE;
|
|
5217
5220
|
}
|
|
5218
5221
|
function nl(e) {
|
|
5219
|
-
return 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
|
|
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
|
|
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
|
-
})(
|
|
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 =
|
|
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 =
|
|
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
|
|
5242
|
-
case
|
|
5243
|
-
case
|
|
5244
|
-
case
|
|
5245
|
-
case
|
|
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) |
|
|
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 (
|
|
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 (
|
|
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 ===
|
|
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 !==
|
|
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 &
|
|
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 ||
|
|
5287
|
-
if (r = n[this.treeIndex], i = (r &
|
|
5288
|
-
if (a ===
|
|
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] &
|
|
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] &
|
|
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
|
|
5307
|
-
case
|
|
5308
|
-
case
|
|
5309
|
-
case
|
|
5310
|
-
case
|
|
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 &
|
|
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
|
-
|
|
10382
|
-
|
|
10383
|
-
|
|
10384
|
-
|
|
10385
|
-
|
|
10386
|
-
|
|
10387
|
-
|
|
10388
|
-
|
|
10389
|
-
|
|
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
|
|
10451
|
-
return
|
|
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
|
|
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
|
-
],
|
|
10676
|
+
], am = im.map((e) => ({
|
|
10607
10677
|
alias: e,
|
|
10608
10678
|
regExp: RegExp(`^(?:${e.pattern})$`, "iv")
|
|
10609
|
-
})),
|
|
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
|
-
},
|
|
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
|
|
10625
|
-
let t = e.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/gu, "").replace(/\s+/gu, " ").trim(), n =
|
|
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 =
|
|
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([...
|
|
10633
|
-
var
|
|
10634
|
-
info:
|
|
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:
|
|
10707
|
+
info: sm.postes,
|
|
10638
10708
|
regExp: /code\s+des\s+postes\s+et\s+(?:des?\s+)?communications?\s+[eé]lectroniques?/giu
|
|
10639
|
-
}],
|
|
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
|
|
10731
|
+
function pm(e, t) {
|
|
10662
10732
|
let n = [];
|
|
10663
|
-
for (let { info: r, regExp: i } of
|
|
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
|
|
10673
|
-
if (/^cpce$/iv.test(e)) return t === void 0 ? void 0 :
|
|
10674
|
-
let n =
|
|
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
|
|
10753
|
+
function hm(e, t) {
|
|
10684
10754
|
return e.cid === "LEGITEXT000006070716" && t !== void 0 && /^[LR]\d/u.test(t) ? {
|
|
10685
|
-
...
|
|
10755
|
+
...sm.execution,
|
|
10686
10756
|
position: e.position,
|
|
10687
10757
|
type: "texte"
|
|
10688
10758
|
} : e;
|
|
10689
10759
|
}
|
|
10690
|
-
function
|
|
10691
|
-
let r =
|
|
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
|
|
10771
|
+
var _m = o(...im.map(({ pattern: e }) => _(`${e}(?=$|\\P{Alphabetic})`, {
|
|
10702
10772
|
flags: "iv",
|
|
10703
|
-
value: (e, t) =>
|
|
10704
|
-
})), _(`${
|
|
10773
|
+
value: (e, t) => gm(e[0], t.position(), t.input)
|
|
10774
|
+
})), _(`${om}(?=$|\\P{Alphabetic})`, {
|
|
10705
10775
|
flags: "iv",
|
|
10706
|
-
value: (e, t) =>
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 } =
|
|
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 =
|
|
10801
|
+
let l = gm(r, c, t.input);
|
|
10732
10802
|
if (l === void 0) return;
|
|
10733
|
-
let u =
|
|
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
|
|
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 =
|
|
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
|
-
}),
|
|
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
|
-
} }),
|
|
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(
|
|
10774
|
-
|
|
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:
|
|
10849
|
+
parent: hm(e[1], n.num),
|
|
10780
10850
|
position: t.position(),
|
|
10781
10851
|
type: "parent-enfant"
|
|
10782
10852
|
};
|
|
10783
|
-
} }),
|
|
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) =>
|
|
10786
|
-
}),
|
|
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 =
|
|
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:
|
|
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
|
-
}),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
10932
|
+
var Mm = (e) => a([
|
|
10863
10933
|
_(e, { flags: "i" }),
|
|
10864
|
-
|
|
10934
|
+
Om,
|
|
10865
10935
|
_(e === "est" ? "remplacée?" : "remplacée?s", { flags: "i" })
|
|
10866
|
-
], { value: "remplacer" }),
|
|
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
|
-
})),
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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] }) }))),
|
|
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
|
-
} }),
|
|
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
|
-
} }),
|
|
11142
|
-
S(
|
|
11211
|
+
} }), Rm), Um = a([
|
|
11212
|
+
S(Nm, { default: null }),
|
|
11143
11213
|
a([
|
|
11144
11214
|
oe,
|
|
11145
|
-
|
|
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(
|
|
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
|
-
} }),
|
|
11161
|
-
S(
|
|
11230
|
+
} }), Wm = o(a([
|
|
11231
|
+
S(Nm, { default: null }),
|
|
11162
11232
|
a([
|
|
11163
11233
|
ce,
|
|
11164
|
-
|
|
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(
|
|
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
|
-
} }),
|
|
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
|
-
}) }),
|
|
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(
|
|
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(
|
|
11261
|
+
}), y(Km, { value: (e) => [e] }));
|
|
11192
11262
|
//#endregion
|
|
11193
11263
|
//#region src/lib/extractors/references.ts
|
|
11194
|
-
function
|
|
11264
|
+
function Jm({ text: e }) {
|
|
11195
11265
|
return /^\p{Lowercase_Letter}$/u.test(e);
|
|
11196
11266
|
}
|
|
11197
|
-
function
|
|
11267
|
+
function Ym(e) {
|
|
11198
11268
|
return !/^[\p{Alphabetic}\p{Decimal_Number}]$/u.test(e);
|
|
11199
11269
|
}
|
|
11200
|
-
function
|
|
11270
|
+
function Xm(e) {
|
|
11201
11271
|
return e !== void 0 && /^[\p{Alphabetic}\p{Decimal_Number}«]$/u.test(e);
|
|
11202
11272
|
}
|
|
11203
|
-
function
|
|
11273
|
+
function Zm(e, t) {
|
|
11204
11274
|
if (t <= 0) return !0;
|
|
11205
11275
|
let n = e[t - 1], r = e[t];
|
|
11206
|
-
return
|
|
11276
|
+
return Xm(r) && (Ym(n) || Ym(r));
|
|
11207
11277
|
}
|
|
11208
|
-
function
|
|
11209
|
-
return e !== void 0 &&
|
|
11278
|
+
function Qm(e) {
|
|
11279
|
+
return e !== void 0 && Jm(e) ? 5 : void 0;
|
|
11210
11280
|
}
|
|
11211
|
-
function*
|
|
11281
|
+
function* $m(e, t, n = {}) {
|
|
11212
11282
|
n.diagnostics !== void 0 && n.diagnostics.citationCount++;
|
|
11213
|
-
let r =
|
|
11214
|
-
for (let e of
|
|
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*
|
|
11224
|
-
yield*
|
|
11293
|
+
function* eh(e, t = {}) {
|
|
11294
|
+
yield* th(e, t);
|
|
11225
11295
|
}
|
|
11226
|
-
function*
|
|
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,
|
|
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:
|
|
11299
|
+
canStartAtOffset: Zm,
|
|
11230
11300
|
diagnostics: t.diagnostics?.fastPath,
|
|
11231
11301
|
overlapWindow: 80,
|
|
11232
|
-
overlapWindowForCandidate: (e, n) => t.overlapWindowForCandidate?.(e) ??
|
|
11233
|
-
})) if (r !== void 0) if (r.type === "citation") yield*
|
|
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
|
|
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*
|
|
11314
|
+
function* nh(e, t, n = {}) {
|
|
11245
11315
|
let r = g(t);
|
|
11246
|
-
for (let t of
|
|
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
|
|
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
|
-
})),
|
|
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
|
|
11334
|
+
function ch(e) {
|
|
11265
11335
|
return e === "before" ? "insert_before" : "insert_after";
|
|
11266
11336
|
}
|
|
11267
|
-
function
|
|
11268
|
-
let 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
|
|
11272
|
-
let 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
|
|
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
|
|
11281
|
-
function
|
|
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
|
|
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
|
|
11288
|
-
return
|
|
11357
|
+
function hh(e) {
|
|
11358
|
+
return lh(e) === "after";
|
|
11289
11359
|
}
|
|
11290
|
-
function
|
|
11291
|
-
return
|
|
11360
|
+
function gh(e) {
|
|
11361
|
+
return lh(e) === "before";
|
|
11292
11362
|
}
|
|
11293
|
-
function
|
|
11363
|
+
function _h(e) {
|
|
11294
11364
|
return /\bretabl/.test(e);
|
|
11295
11365
|
}
|
|
11296
|
-
function
|
|
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
|
|
11369
|
+
function yh(e) {
|
|
11300
11370
|
return /\bremplace\b|\bremplacee\b|\bremplaces\b|\bremplacees\b/.test(e);
|
|
11301
11371
|
}
|
|
11302
|
-
function
|
|
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
|
|
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
|
|
11380
|
+
function Sh(e, t) {
|
|
11311
11381
|
e && (e.start += t, e.stop += t);
|
|
11312
11382
|
}
|
|
11313
|
-
function
|
|
11383
|
+
function Ch(e, t) {
|
|
11314
11384
|
if (e.type === "parent-enfant") {
|
|
11315
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11393
|
+
Ch(e.first, t), Sh(e.position, t);
|
|
11324
11394
|
return;
|
|
11325
11395
|
}
|
|
11326
11396
|
if (e.type === "enumeration" || e.type === "exclusion") {
|
|
11327
|
-
|
|
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
|
-
|
|
11401
|
+
Ch(e.reference, t), Sh(e.position, t);
|
|
11332
11402
|
return;
|
|
11333
11403
|
}
|
|
11334
|
-
|
|
11404
|
+
Sh(e.position, t);
|
|
11335
11405
|
}
|
|
11336
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
11354
|
-
for (let t of
|
|
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
|
|
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
|
|
11367
|
-
let r = n.slice(e).trim(), i =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
11460
|
+
let i = Th(r.text);
|
|
11391
11461
|
if (!i) {
|
|
11392
11462
|
d.length = 0;
|
|
11393
11463
|
break;
|
|
11394
11464
|
}
|
|
11395
|
-
let a =
|
|
11465
|
+
let a = Dh(`${i.text} ${m}`);
|
|
11396
11466
|
if (!a) {
|
|
11397
11467
|
d.length = 0;
|
|
11398
11468
|
break;
|
|
11399
11469
|
}
|
|
11400
|
-
|
|
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
|
|
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
|
|
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 =
|
|
11426
|
-
if (s) return
|
|
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
|
|
11437
|
-
let n =
|
|
11506
|
+
function jh(e, t) {
|
|
11507
|
+
let n = wh(e);
|
|
11438
11508
|
if (!n) return null;
|
|
11439
|
-
let r =
|
|
11509
|
+
let r = Ah(n, t);
|
|
11440
11510
|
if (r) return r;
|
|
11441
|
-
let i =
|
|
11511
|
+
let i = kh(n, t);
|
|
11442
11512
|
if (i) return i;
|
|
11443
|
-
for (let e of
|
|
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
|
|
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
|
|
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
|
|
11524
|
+
function Nh(e) {
|
|
11455
11525
|
return Vp(e).length;
|
|
11456
11526
|
}
|
|
11457
|
-
function
|
|
11527
|
+
function Ph(e, t) {
|
|
11458
11528
|
if (!e) return t;
|
|
11459
11529
|
if (!t) return e;
|
|
11460
|
-
let n =
|
|
11461
|
-
return n === r ?
|
|
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
|
|
11533
|
+
function Fh(e) {
|
|
11464
11534
|
return e.map((e) => ({
|
|
11465
11535
|
reference: e,
|
|
11466
|
-
specificity:
|
|
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
|
|
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
|
-
|
|
11475
|
-
let o = e.slice(0, r), s = r + i.offset, c = e.slice(s, t), l =
|
|
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
|
|
11479
|
-
return
|
|
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
|
|
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
|
|
11487
|
-
|
|
11488
|
-
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
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
|
|
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
|
|
11522
|
-
|
|
11523
|
-
|
|
11524
|
-
|
|
11525
|
-
|
|
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
|
|
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
|
|
11545
|
-
return
|
|
11582
|
+
function Uh(e, t) {
|
|
11583
|
+
return Hh(e, t);
|
|
11546
11584
|
}
|
|
11547
|
-
function
|
|
11585
|
+
function Wh(e) {
|
|
11548
11586
|
if (!e.includes("«")) return e;
|
|
11549
|
-
let t = e.split("")
|
|
11550
|
-
for (let 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
|
|
11593
|
+
function Gh(e) {
|
|
11567
11594
|
return `(?:${e.join("|")})`;
|
|
11568
11595
|
}
|
|
11569
|
-
var
|
|
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
|
-
],
|
|
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
|
-
],
|
|
11632
|
+
], Jh = Gh(Kh), Yh = Gh(qh);
|
|
11606
11633
|
//#endregion
|
|
11607
11634
|
//#region src/lib/text_parsers/action_directives.ts
|
|
11608
|
-
function
|
|
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
|
|
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
|
|
11634
|
-
_(`${
|
|
11660
|
+
var Qh = a([
|
|
11661
|
+
_(`${Jh}s?`, { flags: "i" }),
|
|
11635
11662
|
_(" ?: ?"),
|
|
11636
11663
|
Z
|
|
11637
|
-
], { value: (e) => e[2] }),
|
|
11638
|
-
_(`${
|
|
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] }),
|
|
11668
|
+
], { value: (e) => e[2] }), eg = a([
|
|
11642
11669
|
w,
|
|
11643
|
-
|
|
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
|
-
|
|
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
|
-
}) }),
|
|
11685
|
+
}) }), tg = o(_(`(?:, ?| )(?:${Jh}s? ?: ?« ?[^»]+ ?»(?: ?(?:,|et) ?)*)+(?:est|sont) (?:supprimée?s?|abrogée?s?)`, {
|
|
11659
11686
|
flags: "di",
|
|
11660
|
-
value: (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
|
-
|
|
11673
|
-
b([_("(?:, ?| et )"),
|
|
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
|
-
})) })),
|
|
11712
|
+
})) })), ng = o(a([
|
|
11686
11713
|
w,
|
|
11687
|
-
|
|
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:
|
|
11730
|
+
kind: ch(e[1]),
|
|
11704
11731
|
targetCitation: e[5]
|
|
11705
11732
|
}
|
|
11706
|
-
}) }),
|
|
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
|
-
}) })),
|
|
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
|
-
|
|
11752
|
+
$h
|
|
11726
11753
|
], { value: (e) => ({
|
|
11727
11754
|
citation: e[3],
|
|
11728
11755
|
kind: "replace"
|
|
11729
|
-
}) }), a([C,
|
|
11756
|
+
}) }), a([C, $h], { value: (e) => ({
|
|
11730
11757
|
citation: e[1],
|
|
11731
11758
|
kind: "insert"
|
|
11732
11759
|
}) })), { default: null });
|
|
11733
|
-
function
|
|
11760
|
+
function ag(e) {
|
|
11734
11761
|
return typeof e == "object" && !!e && "action" in e && "operation" in e;
|
|
11735
11762
|
}
|
|
11736
|
-
function
|
|
11763
|
+
function og(e) {
|
|
11737
11764
|
let t = [];
|
|
11738
|
-
for (let n of e)
|
|
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
|
|
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
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
b(
|
|
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 } =
|
|
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),
|
|
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
|
|
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
|
|
11850
|
+
if (e.type === "parent-enfant") return ug(e.child);
|
|
11824
11851
|
}
|
|
11825
|
-
function
|
|
11826
|
-
let t =
|
|
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
|
|
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
|
|
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
|
|
11848
|
-
let t =
|
|
11849
|
-
return /\b(?:derniere\s+occurrence|a\s+la\s+fin)\b/u.test(t) ? "last" :
|
|
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
|
|
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
|
|
11890
|
-
function
|
|
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
|
|
11924
|
+
function yg(e) {
|
|
11894
11925
|
return /\b(?:une|la|les?)\s+phrases?\b/u.test(e);
|
|
11895
11926
|
}
|
|
11896
|
-
function
|
|
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${
|
|
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
|
|
11900
|
-
if (!
|
|
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
|
|
11903
|
-
if (!
|
|
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
|
|
11936
|
+
function Cg(e) {
|
|
11906
11937
|
let t = Cp(e);
|
|
11907
11938
|
return t ? t.restText : e;
|
|
11908
11939
|
}
|
|
11909
|
-
function
|
|
11910
|
-
let t =
|
|
11940
|
+
function wg(e) {
|
|
11941
|
+
let t = Cg(e);
|
|
11911
11942
|
return t === e ? e.replace(yp, "") : t;
|
|
11912
11943
|
}
|
|
11913
|
-
function
|
|
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
|
|
11956
|
+
function Eg(e) {
|
|
11926
11957
|
return Cp(e) !== void 0 || yp.test(e);
|
|
11927
11958
|
}
|
|
11928
|
-
function
|
|
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:
|
|
11967
|
+
level: Og(t.token)
|
|
11937
11968
|
} : null;
|
|
11938
11969
|
}
|
|
11939
|
-
function
|
|
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
|
|
11974
|
+
function kg(e) {
|
|
11944
11975
|
let t = [], n = e;
|
|
11945
11976
|
for (;;) {
|
|
11946
|
-
let e =
|
|
11977
|
+
let e = Dg(n);
|
|
11947
11978
|
if (!e) return t;
|
|
11948
11979
|
t.push(e.marker);
|
|
11949
|
-
let r =
|
|
11980
|
+
let r = wg(n);
|
|
11950
11981
|
if (r === n) return t;
|
|
11951
11982
|
n = r.trimStart();
|
|
11952
11983
|
}
|
|
11953
11984
|
}
|
|
11954
|
-
function
|
|
11955
|
-
let t =
|
|
11956
|
-
return
|
|
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
|
|
11959
|
-
let t =
|
|
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 (
|
|
11994
|
+
if (Pm(n) && n.offset > 0) return t;
|
|
11964
11995
|
}
|
|
11965
11996
|
return null;
|
|
11966
11997
|
}
|
|
11967
|
-
function
|
|
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
|
|
11975
|
-
if (e === void 0) return
|
|
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 =
|
|
12009
|
+
let r = jg(t);
|
|
11979
12010
|
return e.actionIndexByText.set(t, r), r;
|
|
11980
12011
|
}
|
|
11981
|
-
function
|
|
11982
|
-
if (e === void 0) return
|
|
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 =
|
|
12017
|
+
let i = Vh(t);
|
|
11987
12018
|
return e.quoteRangesByText.set(t, i), i;
|
|
11988
12019
|
}
|
|
11989
|
-
function
|
|
11990
|
-
if (e === void 0) return
|
|
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 =
|
|
12025
|
+
let i = rh(new x(t));
|
|
11995
12026
|
return e.referencesByText.set(t, structuredClone(i)), i;
|
|
11996
12027
|
}
|
|
11997
|
-
function
|
|
12028
|
+
function Ig(e) {
|
|
11998
12029
|
return e.type === "reference_et_action" ? e.reference : e;
|
|
11999
12030
|
}
|
|
12000
|
-
function
|
|
12001
|
-
let i =
|
|
12002
|
-
return
|
|
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
|
|
12005
|
-
let i =
|
|
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(
|
|
12009
|
-
return d ?
|
|
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
|
|
12012
|
-
let r =
|
|
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
|
|
12016
|
-
let r = [e,
|
|
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 =
|
|
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
|
|
12054
|
+
function Vg(e) {
|
|
12024
12055
|
return e?.toLowerCase().replace(/[.)]/g, "").trim();
|
|
12025
12056
|
}
|
|
12026
|
-
function
|
|
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 &&
|
|
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
|
|
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
|
|
12035
|
-
return t && e.type === "parent-enfant" &&
|
|
12065
|
+
function Wg(e, t) {
|
|
12066
|
+
return t && e.type === "parent-enfant" && Hg(e.parent, t) ? e.child : e;
|
|
12036
12067
|
}
|
|
12037
|
-
function
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
12118
|
+
function Jg(e) {
|
|
12088
12119
|
let t = [], n = [];
|
|
12089
12120
|
for (let r of e) {
|
|
12090
|
-
if (!
|
|
12091
|
-
n[n.length - 1]
|
|
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 =
|
|
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
|
|
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 =
|
|
12154
|
+
let e = $g(r);
|
|
12109
12155
|
if (e) {
|
|
12110
|
-
let r = performance.now(), i =
|
|
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 (
|
|
12159
|
+
if (Xg(r.children, t, n)) return !0;
|
|
12114
12160
|
}
|
|
12115
12161
|
return !1;
|
|
12116
12162
|
}
|
|
12117
|
-
function
|
|
12163
|
+
function Zg(e, t) {
|
|
12118
12164
|
if (!e) return t;
|
|
12119
12165
|
if (!t) return e;
|
|
12120
|
-
let n =
|
|
12166
|
+
let n = Wg(t, Ug(e));
|
|
12121
12167
|
return n.type === "article" || xt(n), ht(e, n);
|
|
12122
12168
|
}
|
|
12123
|
-
function
|
|
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
|
|
12133
|
-
return [
|
|
12178
|
+
function $g(e) {
|
|
12179
|
+
return [wg(e.line.text), ...e.body.map((e) => e.text)].join("\n").trim();
|
|
12134
12180
|
}
|
|
12135
|
-
function
|
|
12181
|
+
function e_(e) {
|
|
12136
12182
|
return e.body[e.body.length - 1]?.end ?? e.line.end;
|
|
12137
12183
|
}
|
|
12138
|
-
function
|
|
12184
|
+
function t_(e) {
|
|
12139
12185
|
return (e ?? "").replace(/°/gu, "").replace(/\s+/gu, " ").trim();
|
|
12140
12186
|
}
|
|
12141
|
-
function
|
|
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
|
|
12150
|
-
let t =
|
|
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 =
|
|
12200
|
+
let a = n_(e, r);
|
|
12155
12201
|
if (a) {
|
|
12156
|
-
if (
|
|
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
|
|
12166
|
-
return
|
|
12211
|
+
function i_(e) {
|
|
12212
|
+
return ph(e).replace(/\s+/gu, " ");
|
|
12167
12213
|
}
|
|
12168
|
-
function
|
|
12169
|
-
let t =
|
|
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
|
|
12174
|
-
let n =
|
|
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) ||
|
|
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
|
|
12178
|
-
return
|
|
12223
|
+
function s_(e) {
|
|
12224
|
+
return r_(e).find((t) => o_(e, t))?.date;
|
|
12179
12225
|
}
|
|
12180
|
-
function
|
|
12181
|
-
return e.map((e) =>
|
|
12226
|
+
function c_(e) {
|
|
12227
|
+
return e.map((e) => t_(e.num)).filter((e) => e.length > 0);
|
|
12182
12228
|
}
|
|
12183
|
-
function
|
|
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
|
|
12240
|
+
function u_(e) {
|
|
12195
12241
|
if (e.kind === "single") {
|
|
12196
|
-
let t =
|
|
12242
|
+
let t = c_(e.steps);
|
|
12197
12243
|
return t.length > 0 ? [t] : [];
|
|
12198
12244
|
}
|
|
12199
|
-
let t =
|
|
12200
|
-
return t.length === 0 && n.length === 0 ? [] :
|
|
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
|
|
12203
|
-
let t =
|
|
12204
|
-
for (let e of t.map(
|
|
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(...
|
|
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
|
|
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
|
|
12216
|
-
if (!
|
|
12217
|
-
let r =
|
|
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 =
|
|
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 =
|
|
12271
|
+
let a = p_(e.slice(n.stop), i);
|
|
12226
12272
|
t.push(...a);
|
|
12227
12273
|
}
|
|
12228
12274
|
return t;
|
|
12229
12275
|
}
|
|
12230
|
-
function
|
|
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 =
|
|
12281
|
+
let a = d_(i);
|
|
12236
12282
|
if (a.length === 0) return [];
|
|
12237
12283
|
let o = [];
|
|
12238
|
-
for (let n of
|
|
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
|
|
12295
|
+
function m_(e, t, n) {
|
|
12250
12296
|
return [
|
|
12251
12297
|
...e,
|
|
12252
|
-
|
|
12253
|
-
...
|
|
12298
|
+
t_(t.marker),
|
|
12299
|
+
...kg(n).map(t_)
|
|
12254
12300
|
].filter((e) => e.length > 0);
|
|
12255
12301
|
}
|
|
12256
|
-
function
|
|
12302
|
+
function h_(e) {
|
|
12257
12303
|
let t = [];
|
|
12258
|
-
for (let n of e) t.push(...
|
|
12304
|
+
for (let n of e) t.push(...f_($g(n))), t.push(...h_(n.children));
|
|
12259
12305
|
return t;
|
|
12260
12306
|
}
|
|
12261
|
-
function
|
|
12307
|
+
function g_(e, t) {
|
|
12262
12308
|
return t.length > e.length ? !1 : t.every((t, n) => e[n] === t);
|
|
12263
12309
|
}
|
|
12264
|
-
function
|
|
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
|
|
12270
|
-
return n ? n.some((n) =>
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
|
12342
|
+
function x_(e) {
|
|
12297
12343
|
return e !== void 0 && (e.rowIndex !== void 0 || e.columnIndex !== void 0);
|
|
12298
12344
|
}
|
|
12299
|
-
function
|
|
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 =
|
|
12370
|
+
let e = wg(u.line.text), d = m_(i, u, e), f = $g(u);
|
|
12304
12371
|
if (!f) continue;
|
|
12305
|
-
let p =
|
|
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 =
|
|
12309
|
-
}, _ = () => (h === void 0 && (h =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
12389
|
+
let x = Zg(t, ne) ?? te ?? h;
|
|
12323
12390
|
if (!x) {
|
|
12324
12391
|
if (u.children.length > 0) {
|
|
12325
|
-
let e =
|
|
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 =
|
|
12331
|
-
let re = performance.now(), ie =
|
|
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:
|
|
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 =
|
|
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
|
-
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
|
|
12355
|
-
|
|
12356
|
-
|
|
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 =
|
|
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
|
|
12432
|
+
return X_(c);
|
|
12367
12433
|
}
|
|
12368
|
-
function
|
|
12369
|
-
let n =
|
|
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 =
|
|
12372
|
-
if (Q(t, "buildListItemTreeMs", a), !
|
|
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 =
|
|
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 =
|
|
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 =
|
|
12444
|
+
let f = performance.now(), p = h_(o);
|
|
12379
12445
|
Q(t, "collectApplicabilityScopesMs", f);
|
|
12380
12446
|
let m = performance.now();
|
|
12381
|
-
return
|
|
12447
|
+
return y_(d, l, p), Q(t, "applyApplicabilityDatesMs", m), d.length > 0 ? d : null;
|
|
12382
12448
|
}
|
|
12383
|
-
function
|
|
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
|
|
12399
|
-
let t =
|
|
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
|
|
12403
|
-
for (let t of
|
|
12404
|
-
if (!
|
|
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
|
|
12411
|
-
let n =
|
|
12412
|
-
return n === null ?
|
|
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
|
|
12415
|
-
return
|
|
12480
|
+
function k_(e, t) {
|
|
12481
|
+
return pg(e, t);
|
|
12416
12482
|
}
|
|
12417
|
-
function
|
|
12418
|
-
let n =
|
|
12483
|
+
function A_(e, t) {
|
|
12484
|
+
let n = Am(e, t);
|
|
12419
12485
|
return n && n > 1 ? n : void 0;
|
|
12420
12486
|
}
|
|
12421
|
-
function
|
|
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
|
|
12427
|
-
let n =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
12459
|
-
|
|
12460
|
-
|
|
12461
|
-
|
|
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
|
|
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
|
|
12532
|
+
function L_(e) {
|
|
12467
12533
|
return e.replace(/\s+/gu, " ").replace(/\s+([,;])/gu, "$1").trim();
|
|
12468
12534
|
}
|
|
12469
|
-
function
|
|
12535
|
+
function R_(e) {
|
|
12470
12536
|
if (e.includes("«") || e.includes("»")) return null;
|
|
12471
|
-
for (let t of
|
|
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:
|
|
12475
|
-
replacementText:
|
|
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
|
|
12485
|
-
|
|
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
|
|
12489
|
-
return
|
|
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
|
|
12492
|
-
let o =
|
|
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 :
|
|
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 :
|
|
12498
|
-
}, ne = (
|
|
12499
|
-
let
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
12577
|
-
if (m && !p && a.length >= 4 && a.length % 2 == 0 &&
|
|
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 =
|
|
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)
|
|
12626
|
-
|
|
12627
|
-
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
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
|
|
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
|
|
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
|
|
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 ?
|
|
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
|
|
12689
|
-
let t =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
12762
|
-
return (e.kind === "compound" ? e.operations : [
|
|
12866
|
+
function Y_(e, t) {
|
|
12867
|
+
return (e.kind === "compound" ? e.operations : [K_(e)]).map((n) => J_(n, e, t));
|
|
12763
12868
|
}
|
|
12764
|
-
function
|
|
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
|
|
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 =
|
|
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
|
|
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 && !
|
|
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 =
|
|
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 =
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
13012
|
+
...x_(a) ? { tableTarget: a } : {},
|
|
12904
13013
|
...h
|
|
12905
13014
|
};
|
|
12906
13015
|
case "delete": {
|
|
12907
|
-
let n = d.map((e) =>
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
-
...
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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) => !
|
|
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 =
|
|
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 =
|
|
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 =
|
|
13116
|
+
let p = performance.now(), m = jg(c);
|
|
13008
13117
|
if (d.length === 1 && d[0]?.type === "article") {
|
|
13009
|
-
let e =
|
|
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(
|
|
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 =
|
|
13018
|
-
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(
|
|
13023
|
-
t !== -1 && 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 =
|
|
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 =
|
|
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:
|
|
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 =
|
|
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:
|
|
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 =
|
|
13167
|
+
let e = Q_(c);
|
|
13059
13168
|
if (e) {
|
|
13060
|
-
let t =
|
|
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:
|
|
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 =
|
|
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
|
|
13184
|
+
function ev(e) {
|
|
13076
13185
|
let t = new x(be(e).output);
|
|
13077
|
-
return [...
|
|
13186
|
+
return [...cg.extract(t, { overlapWindow: 100 })];
|
|
13078
13187
|
}
|
|
13079
|
-
function
|
|
13080
|
-
return
|
|
13188
|
+
function tv(e, t) {
|
|
13189
|
+
return $_(e, {
|
|
13081
13190
|
allowListExtraction: !0,
|
|
13082
13191
|
diagnostics: t
|
|
13083
13192
|
});
|
|
13084
13193
|
}
|
|
13085
|
-
var
|
|
13086
|
-
function
|
|
13087
|
-
let t =
|
|
13088
|
-
return t.includes("«") || t.includes("»") || !e.trim().endsWith(":") ? !1 :
|
|
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
|
|
13199
|
+
function iv(e) {
|
|
13091
13200
|
return e.trimStart().startsWith("«");
|
|
13092
13201
|
}
|
|
13093
|
-
function
|
|
13202
|
+
function av(e) {
|
|
13094
13203
|
return /»[.;]?\s*$/u.test(e);
|
|
13095
13204
|
}
|
|
13096
|
-
function
|
|
13205
|
+
function ov(e, t) {
|
|
13097
13206
|
for (let n = t; n < e.length; n += 1) {
|
|
13098
|
-
let t =
|
|
13207
|
+
let t = Cg(e[n]).trim();
|
|
13099
13208
|
if (t.length > 0) return t;
|
|
13100
13209
|
}
|
|
13101
13210
|
}
|
|
13102
|
-
function
|
|
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 =
|
|
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 =
|
|
13109
|
-
if (
|
|
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: [
|
|
13223
|
+
combinedText: [Cg(e[t]), ...n].join("\n"),
|
|
13115
13224
|
endIndex: i
|
|
13116
13225
|
};
|
|
13117
13226
|
}
|
|
13118
|
-
function
|
|
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 (
|
|
13123
|
-
let r =
|
|
13231
|
+
if (rv(r)) {
|
|
13232
|
+
let r = sv(t, e);
|
|
13124
13233
|
if (r) {
|
|
13125
|
-
let t =
|
|
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 =
|
|
13241
|
+
let i = $_(r, { allowListExtraction: !1 });
|
|
13133
13242
|
i.length > 0 && n.push(...i);
|
|
13134
13243
|
}
|
|
13135
13244
|
return n;
|
|
13136
13245
|
}
|
|
13137
|
-
var
|
|
13138
|
-
function
|
|
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
|
|
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
|
|
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
|
|
13285
|
+
function mv(e, t) {
|
|
13177
13286
|
return (e.dateDebut === null || e.dateDebut <= t) && (e.dateFin === null || e.dateFin >= t);
|
|
13178
13287
|
}
|
|
13179
|
-
var
|
|
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(
|
|
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 =
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
|
13322
|
-
})) : t("waiting-for-shared-preload"), await
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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),
|
|
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),
|
|
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
|
-
}),
|
|
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
|
|
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
|
|
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*
|
|
13494
|
-
let l = r ?? (e === void 0 ? void 0 : new
|
|
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
|
|
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 ?
|
|
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
|
|
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
|
-
|
|
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
|
|
13547
|
-
let ne =
|
|
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", () =>
|
|
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
|
|
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:
|
|
13695
|
+
referenceTypeCounts: Sv(b),
|
|
13587
13696
|
referenceCount: b.length,
|
|
13588
13697
|
iterationDiagnostics: m,
|
|
13589
|
-
resolverCallDiagnostics:
|
|
13698
|
+
resolverCallDiagnostics: bv(d),
|
|
13590
13699
|
resolverDiagnostics: h,
|
|
13591
|
-
topFastPathAnchors:
|
|
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
|
|
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
|
|
13785
|
+
function Ev(e, t) {
|
|
13677
13786
|
let n = /* @__PURE__ */ new Set();
|
|
13678
|
-
for (let r of t) for (let t of
|
|
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
|
|
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
|
|
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
|
|
13699
|
-
for (let c of
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
13898
|
+
var Av = new Set([
|
|
13790
13899
|
"LEGITEXT000005634379",
|
|
13791
13900
|
"LEGITEXT000006069583",
|
|
13792
13901
|
"LEGITEXT000006070933",
|
|
13793
13902
|
"LEGITEXT000006072026",
|
|
13794
13903
|
"LEGITEXT000006073984",
|
|
13795
13904
|
"LEGITEXT000006074096"
|
|
13796
|
-
]),
|
|
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
|
|
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
|
|
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
|
-
|
|
13815
|
-
for (let t of a.matchAll(/-(?=\p{L})/gu))
|
|
13816
|
-
|
|
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++)
|
|
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) &&
|
|
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
|
-
])
|
|
13830
|
-
|
|
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
|
|
13838
|
-
if (!
|
|
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
|
|
13956
|
+
function Fv(e, t) {
|
|
13848
13957
|
return `${e}\0${t}`;
|
|
13849
13958
|
}
|
|
13850
|
-
var
|
|
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) => [
|
|
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) => [
|
|
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]) => [
|
|
13988
|
+
].map(([e, t]) => [Fv("LEGITEXT000006069577", e), {
|
|
13880
13989
|
num: e,
|
|
13881
13990
|
textId: t
|
|
13882
13991
|
}]),
|
|
13883
|
-
[
|
|
13992
|
+
[Fv("LEGITEXT000006069577", "L173"), {
|
|
13884
13993
|
num: "173",
|
|
13885
13994
|
textId: "LEGITEXT000006069577"
|
|
13886
13995
|
}],
|
|
13887
|
-
[
|
|
13996
|
+
[Fv("LEGITEXT000006069583", "L38 B"), {
|
|
13888
13997
|
num: "L38",
|
|
13889
13998
|
textId: "LEGITEXT000006069583"
|
|
13890
13999
|
}],
|
|
13891
|
-
...["L311-13 C", "L311-13 D"].map((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
|
-
[
|
|
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) => [
|
|
14012
|
+
].map((e) => [Fv("LEGITEXT000006070721", e), {
|
|
13904
14013
|
num: e,
|
|
13905
14014
|
textId: "LEGITEXT000006070716"
|
|
13906
14015
|
}])
|
|
13907
|
-
]),
|
|
13908
|
-
[
|
|
13909
|
-
[
|
|
13910
|
-
[
|
|
13911
|
-
[
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
13948
|
-
let t = new Set(e.flatMap(({ num: e, textId: t }) => e === null || t === null ? [] : [
|
|
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 =
|
|
14059
|
+
let n = Lv.get([...t][0]);
|
|
13951
14060
|
if (n !== void 0) return e.find(({ id: e }) => e === n);
|
|
13952
14061
|
}
|
|
13953
|
-
function
|
|
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
|
|
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
|
|
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*
|
|
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 =
|
|
14113
|
+
let e = Iv.get(Fv(m, t.num));
|
|
14005
14114
|
if (e !== void 0) {
|
|
14006
14115
|
let t = performance.now();
|
|
14007
|
-
p = await
|
|
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
|
|
14018
|
-
alternatives:
|
|
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
|
|
14030
|
-
alternatives:
|
|
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 =
|
|
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 =
|
|
14178
|
+
let e = zv(p);
|
|
14070
14179
|
if (e !== void 0) d.articleId = e.id;
|
|
14071
14180
|
else {
|
|
14072
|
-
let e =
|
|
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([...
|
|
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*
|
|
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*
|
|
14252
|
+
yield* Wv(e.first, { citations: t }), yield* Wv(e.last, { citations: t });
|
|
14144
14253
|
break;
|
|
14145
14254
|
case "counted-interval":
|
|
14146
|
-
yield*
|
|
14255
|
+
yield* Wv(e.first, { citations: t });
|
|
14147
14256
|
break;
|
|
14148
14257
|
case "enumeration":
|
|
14149
14258
|
case "exclusion":
|
|
14150
|
-
yield*
|
|
14259
|
+
yield* Wv(e.left, { citations: t }), yield* Wv(e.right, { citations: t });
|
|
14151
14260
|
break;
|
|
14152
14261
|
case "parent-enfant":
|
|
14153
|
-
yield*
|
|
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*
|
|
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*
|
|
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*
|
|
14274
|
+
function* Gv(e, t, { citations: n = !1 } = {}) {
|
|
14166
14275
|
switch (t.type) {
|
|
14167
14276
|
case "bounded-interval":
|
|
14168
|
-
yield*
|
|
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*
|
|
14280
|
+
yield* Gv(e, t.first, { citations: n });
|
|
14172
14281
|
break;
|
|
14173
14282
|
case "enumeration":
|
|
14174
14283
|
case "exclusion":
|
|
14175
|
-
yield*
|
|
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*
|
|
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*
|
|
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*
|
|
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*
|
|
14302
|
+
yield* Kv(e, t.first), yield* Kv(e, t.last);
|
|
14194
14303
|
break;
|
|
14195
14304
|
case "counted-interval":
|
|
14196
|
-
yield*
|
|
14305
|
+
yield* Kv(e, t.first);
|
|
14197
14306
|
break;
|
|
14198
14307
|
case "enumeration":
|
|
14199
14308
|
case "exclusion":
|
|
14200
|
-
yield*
|
|
14309
|
+
yield* Kv(e, t.left), yield* Kv(e, t.right);
|
|
14201
14310
|
break;
|
|
14202
14311
|
case "parent-enfant": {
|
|
14203
|
-
let n = [...
|
|
14204
|
-
n.length === 0 ? yield*
|
|
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*
|
|
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*
|
|
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
|
|
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*
|
|
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 =
|
|
14347
|
+
let t = qv(e.title);
|
|
14239
14348
|
if (t !== void 0) {
|
|
14240
14349
|
let n = !1;
|
|
14241
|
-
if (i.index !== void 0 && (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 =
|
|
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 =
|
|
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 ? [] : [...
|
|
14270
|
-
if (a !== void 0) for (let s of
|
|
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
|
|
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
|
|
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*
|
|
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*
|
|
14368
|
-
let f = e ?? {}, p = u ??
|
|
14369
|
-
for (let e of
|
|
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
|
|
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
|
|
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
|
-
|
|
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 ? [] : [...
|
|
14428
|
-
if (u !== void 0) for (let e of
|
|
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
|
|
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
|
|
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
|
|
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
|
|
14663
|
+
function Zv(e) {
|
|
14555
14664
|
let t = e;
|
|
14556
14665
|
return t.items ?? [...t.articles ?? [], ...t.divisions ?? []];
|
|
14557
14666
|
}
|
|
14558
|
-
function*
|
|
14667
|
+
function* Qv({ context: e, tableOfContents: t, transformation: n }) {
|
|
14559
14668
|
let r = 0, i = g(n);
|
|
14560
|
-
for (let n of
|
|
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
|
|
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*
|
|
14699
|
+
function* ey(e) {
|
|
14591
14700
|
e.type !== void 0 && (yield e);
|
|
14592
|
-
for (let t of
|
|
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
|
|
14597
|
-
function
|
|
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
|
|
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
|
|
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
|
|
14741
|
+
function ay(e, t) {
|
|
14633
14742
|
if (e !== void 0) return e;
|
|
14634
|
-
if (t !== void 0) return new
|
|
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
|
|
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
|
|
14644
|
-
let f = new Ee("addLinksToHtml"), p =
|
|
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
|
|
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
|
-
|
|
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 ?
|
|
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
|
-
|
|
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
|
-
|
|
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="${
|
|
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 =
|
|
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
|
-
|
|
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="${
|
|
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="${
|
|
14739
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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", () =>
|
|
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
|
|
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
|
|
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
|
|
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 &&
|
|
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
|
|
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
|
|
14820
|
-
let p =
|
|
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
|
|
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(_))
|
|
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 (
|
|
14964
|
+
if (uy({
|
|
14856
14965
|
attributes: {
|
|
14857
14966
|
class: "lien_article_externe",
|
|
14858
|
-
href:
|
|
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 =
|
|
14870
|
-
e !== void 0 &&
|
|
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
|
-
|
|
14991
|
+
dy({
|
|
14883
14992
|
id: n,
|
|
14884
14993
|
outputByType: _
|
|
14885
|
-
}) &&
|
|
14994
|
+
}) && py({
|
|
14886
14995
|
attributes: {
|
|
14887
14996
|
class: "reference_article",
|
|
14888
14997
|
style: "background-color: #eae462",
|
|
14889
|
-
title:
|
|
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 && (
|
|
15011
|
+
if (r !== void 0 && (uy({
|
|
14903
15012
|
attributes: {
|
|
14904
15013
|
class: "lien_division_externe",
|
|
14905
|
-
href:
|
|
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
|
-
|
|
15024
|
+
dy({
|
|
14916
15025
|
id: r,
|
|
14917
15026
|
outputByType: _
|
|
14918
|
-
}) &&
|
|
15027
|
+
}) && py({
|
|
14919
15028
|
attributes: {
|
|
14920
15029
|
class: "reference_division",
|
|
14921
15030
|
style: "background-color: #eae462",
|
|
14922
|
-
title:
|
|
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
|
-
|
|
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
|
-
}),
|
|
15054
|
+
}), dy({
|
|
14946
15055
|
id: i,
|
|
14947
15056
|
outputByType: _
|
|
14948
|
-
}) &&
|
|
15057
|
+
}) && py({
|
|
14949
15058
|
attributes: {
|
|
14950
15059
|
class: "reference_texte",
|
|
14951
15060
|
style: "background-color: #eae462",
|
|
14952
|
-
title:
|
|
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 =
|
|
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:
|
|
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 :
|
|
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
|
-
|
|
15099
|
+
uy({
|
|
14991
15100
|
attributes: i ?? {
|
|
14992
15101
|
class: "lien_texte_externe",
|
|
14993
|
-
href:
|
|
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
|
-
|
|
15110
|
+
dy({
|
|
15002
15111
|
id: r.cid,
|
|
15003
15112
|
outputByType: _
|
|
15004
|
-
}) &&
|
|
15113
|
+
}) && py({
|
|
15005
15114
|
attributes: {
|
|
15006
15115
|
class: "reference_texte",
|
|
15007
15116
|
style: "background-color: #eae462",
|
|
15008
|
-
title:
|
|
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(_))
|
|
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 =
|
|
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
|
|
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 &&
|
|
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 {
|
|
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 };
|