@finbheara/domain 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/age.js +23 -1
- package/package.json +1 -1
package/dist/age.js
CHANGED
|
@@ -8,7 +8,11 @@ var AND_OVER = /(?<![0-9])(?<![0-9][a-z]*)(?<!(?:^|[^a-z0-9])[a-z])(\d{1,2})\s*(
|
|
|
8
8
|
var OVER_WORD = /(?:\bover\s*|\bos\s+cionn\s*|(?<![a-z0-9])o[./]?\s*)(\d{1,2})(?![a-z0-9])/i;
|
|
9
9
|
var OVER_GLUED = /(?<![a-z0-9])(\d{1,2})\s*o(?![a-z'’])/i;
|
|
10
10
|
var OVER_PLUS = /(?<![a-z0-9])(\d{1,2})\s*\+/;
|
|
11
|
-
var
|
|
11
|
+
var UNDER_WORD = String.raw`(?:\bund(?:er)?\.?\s*(?:age\s*)?|\bfaoi\s*|(?<![a-z0-9])u[./]?\s*)`;
|
|
12
|
+
var UNDER = new RegExp(String.raw`${UNDER_WORD}(\d{1,2})(?![0-9])(?![a-z][a-z0-9])`, "i");
|
|
13
|
+
var JOINED_CAPS = new RegExp(String.raw`${UNDER_WORD}\d{1,2}(?![0-9])(?:(?:\s*(?:&|,|\/|\band\b)\s*(?:${UNDER_WORD})?|\s+${UNDER_WORD})\d{1,2}(?![0-9]))+`, "i");
|
|
14
|
+
var JOINED_NOT = /^(?:\s*(?:yrs?|years?|-?\s*hand)\b|[a-z])/i;
|
|
15
|
+
var JOINED_OPEN = /^(?:\s*\+|\s*(?:&|and)\s*(?:o|over|older|up)\b)/i;
|
|
12
16
|
var UNDER_STRIDE = /^\s*\/\s*0*([1-9]\d?)\s*yrs?(?![a-z0-9])/i;
|
|
13
17
|
var AND_UNDER = /(?<![a-z0-9])(\d{1,2})\s*(?:years?\s*)?(?:&|\/|\band\b)\s*u(?:nder)?(?![a-z])(?!\s*\d)/i;
|
|
14
18
|
var AND_UNDER_RANGE = /(?<![a-z0-9])(\d{1,2})\s*(?:&|\band\b)\s*under\s*(\d{1,2})(?![a-z0-9])/i;
|
|
@@ -37,7 +41,25 @@ function inFence(a, b) {
|
|
|
37
41
|
const hi = Number(b);
|
|
38
42
|
return lo >= TITLE_RANGE_MIN && hi <= TITLE_RANGE_MAX && lo < hi;
|
|
39
43
|
}
|
|
44
|
+
function readJoined(title, s, offset) {
|
|
45
|
+
const j = JOINED_CAPS.exec(s);
|
|
46
|
+
if (j === null)
|
|
47
|
+
return null;
|
|
48
|
+
const end = j.index + j[0].length;
|
|
49
|
+
const tail = s.slice(end);
|
|
50
|
+
if (JOINED_NOT.test(tail))
|
|
51
|
+
return null;
|
|
52
|
+
const caps = [...j[0].matchAll(/\d{1,2}/g)].map((d) => Number(d[0]));
|
|
53
|
+
if (caps.some((c, i) => i > 0 && c < (caps[i - 1] ?? 0)))
|
|
54
|
+
return null;
|
|
55
|
+
if (JOINED_OPEN.test(tail))
|
|
56
|
+
return NONE;
|
|
57
|
+
return at(title, offset, j.index, end, `u${Math.max(...caps)}`);
|
|
58
|
+
}
|
|
40
59
|
function readAnchored(title, s, offset, aside = false) {
|
|
60
|
+
const joined = readJoined(title, s, offset);
|
|
61
|
+
if (joined !== null)
|
|
62
|
+
return joined;
|
|
41
63
|
for (const re of [AND_OVER, OVER_WORD, OVER_GLUED]) {
|
|
42
64
|
const m = re.exec(s);
|
|
43
65
|
if (m?.[1] !== undefined)
|
package/package.json
CHANGED