chrono-node 2.7.7 → 2.7.9

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.
Files changed (201) hide show
  1. package/dist/cjs/common/parsers/SlashDateFormatParser.js +1 -1
  2. package/dist/cjs/common/parsers/SlashDateFormatParser.js.map +1 -1
  3. package/dist/cjs/locales/en/configuration.js +2 -0
  4. package/dist/cjs/locales/en/configuration.js.map +1 -1
  5. package/dist/cjs/locales/en/parsers/ENCasualDateParser.js +4 -1
  6. package/dist/cjs/locales/en/parsers/ENCasualDateParser.js.map +1 -1
  7. package/dist/cjs/locales/en/parsers/ENMonthNameParser.js +1 -1
  8. package/dist/cjs/locales/en/parsers/ENMonthNameParser.js.map +1 -1
  9. package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.d.ts +2 -1
  10. package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.js +7 -0
  11. package/dist/cjs/locales/en/parsers/ENTimeExpressionParser.js.map +1 -1
  12. package/dist/cjs/locales/en/parsers/ENWeekdayParser.d.ts +1 -1
  13. package/dist/cjs/locales/en/parsers/ENWeekdayParser.js +24 -3
  14. package/dist/cjs/locales/en/parsers/ENWeekdayParser.js.map +1 -1
  15. package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.d.ts +6 -0
  16. package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.js +35 -0
  17. package/dist/cjs/locales/en/refiners/ENUnlikelyFormatFilter.js.map +1 -0
  18. package/dist/cjs/locales/it/constants.d.ts +28 -0
  19. package/dist/cjs/locales/it/constants.js +165 -0
  20. package/dist/cjs/locales/it/constants.js.map +1 -0
  21. package/dist/cjs/locales/it/index.d.ts +9 -0
  22. package/dist/cjs/locales/it/index.js +66 -0
  23. package/dist/cjs/locales/it/index.js.map +1 -0
  24. package/dist/cjs/locales/it/parsers/ITCasualDateParser.d.ts +7 -0
  25. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +65 -0
  26. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -0
  27. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +6 -0
  28. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +47 -0
  29. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -0
  30. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.d.ts +10 -0
  31. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js +35 -0
  32. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +1 -0
  33. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +7 -0
  34. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +57 -0
  35. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -0
  36. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +6 -0
  37. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +59 -0
  38. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -0
  39. package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +6 -0
  40. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +43 -0
  41. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -0
  42. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.d.ts +7 -0
  43. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +57 -0
  44. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -0
  45. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +7 -0
  46. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +18 -0
  47. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js.map +1 -0
  48. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +10 -0
  49. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +50 -0
  50. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -0
  51. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +9 -0
  52. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +24 -0
  53. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -0
  54. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +7 -0
  55. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +26 -0
  56. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -0
  57. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +9 -0
  58. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +23 -0
  59. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -0
  60. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +7 -0
  61. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +19 -0
  62. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -0
  63. package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +7 -0
  64. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +43 -0
  65. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -0
  66. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +4 -0
  67. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +13 -0
  68. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -0
  69. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +4 -0
  70. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +13 -0
  71. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -0
  72. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.d.ts +7 -0
  73. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js +36 -0
  74. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +1 -0
  75. package/dist/cjs/locales/ja/parsers/JPCasualDateParser.js +4 -4
  76. package/dist/cjs/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -1
  77. package/dist/cjs/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -1
  78. package/dist/cjs/results.d.ts +2 -0
  79. package/dist/cjs/results.js +16 -0
  80. package/dist/cjs/results.js.map +1 -1
  81. package/dist/esm/common/parsers/SlashDateFormatParser.js +1 -1
  82. package/dist/esm/common/parsers/SlashDateFormatParser.js.map +1 -1
  83. package/dist/esm/locales/en/configuration.js +2 -0
  84. package/dist/esm/locales/en/configuration.js.map +1 -1
  85. package/dist/esm/locales/en/parsers/ENCasualDateParser.js +4 -1
  86. package/dist/esm/locales/en/parsers/ENCasualDateParser.js.map +1 -1
  87. package/dist/esm/locales/en/parsers/ENMonthNameParser.js +1 -1
  88. package/dist/esm/locales/en/parsers/ENMonthNameParser.js.map +1 -1
  89. package/dist/esm/locales/en/parsers/ENTimeExpressionParser.d.ts +2 -1
  90. package/dist/esm/locales/en/parsers/ENTimeExpressionParser.js +7 -0
  91. package/dist/esm/locales/en/parsers/ENTimeExpressionParser.js.map +1 -1
  92. package/dist/esm/locales/en/parsers/ENWeekdayParser.d.ts +1 -1
  93. package/dist/esm/locales/en/parsers/ENWeekdayParser.js +24 -3
  94. package/dist/esm/locales/en/parsers/ENWeekdayParser.js.map +1 -1
  95. package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.d.ts +6 -0
  96. package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js +32 -0
  97. package/dist/esm/locales/en/refiners/ENUnlikelyFormatFilter.js.map +1 -0
  98. package/dist/esm/locales/it/constants.d.ts +28 -0
  99. package/dist/esm/locales/it/constants.js +200 -0
  100. package/dist/esm/locales/it/constants.js.map +1 -0
  101. package/dist/esm/locales/it/index.d.ts +9 -0
  102. package/dist/esm/locales/it/index.js +56 -0
  103. package/dist/esm/locales/it/index.js.map +1 -0
  104. package/dist/esm/locales/it/parsers/ITCasualDateParser.d.ts +7 -0
  105. package/dist/esm/locales/it/parsers/ITCasualDateParser.js +40 -0
  106. package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -0
  107. package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +6 -0
  108. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +41 -0
  109. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -0
  110. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.d.ts +10 -0
  111. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js +32 -0
  112. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +1 -0
  113. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +7 -0
  114. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +54 -0
  115. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -0
  116. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +6 -0
  117. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +56 -0
  118. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -0
  119. package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +6 -0
  120. package/dist/esm/locales/it/parsers/ITMonthNameParser.js +40 -0
  121. package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -0
  122. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.d.ts +7 -0
  123. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +51 -0
  124. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -0
  125. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +7 -0
  126. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +15 -0
  127. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js.map +1 -0
  128. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +10 -0
  129. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +47 -0
  130. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -0
  131. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +9 -0
  132. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +21 -0
  133. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -0
  134. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +7 -0
  135. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +23 -0
  136. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -0
  137. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +9 -0
  138. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +20 -0
  139. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -0
  140. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +7 -0
  141. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +16 -0
  142. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -0
  143. package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +7 -0
  144. package/dist/esm/locales/it/parsers/ITWeekdayParser.js +40 -0
  145. package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -0
  146. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +4 -0
  147. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +7 -0
  148. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -0
  149. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +4 -0
  150. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +7 -0
  151. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -0
  152. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.d.ts +7 -0
  153. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js +33 -0
  154. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +1 -0
  155. package/dist/esm/locales/ja/parsers/JPCasualDateParser.js +4 -4
  156. package/dist/esm/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -1
  157. package/dist/esm/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -1
  158. package/dist/esm/results.d.ts +2 -0
  159. package/dist/esm/results.js +16 -0
  160. package/dist/esm/results.js.map +1 -1
  161. package/package.json +1 -1
  162. package/src/common/parsers/SlashDateFormatParser.ts +1 -1
  163. package/src/locales/en/configuration.ts +2 -0
  164. package/src/locales/en/parsers/ENCasualDateParser.ts +5 -1
  165. package/src/locales/en/parsers/ENMonthNameParser.ts +1 -1
  166. package/src/locales/en/parsers/ENTimeExpressionParser.ts +13 -1
  167. package/src/locales/en/parsers/ENWeekdayParser.ts +28 -4
  168. package/src/locales/en/refiners/ENUnlikelyFormatFilter.ts +44 -0
  169. package/src/locales/it/constants.ts +230 -0
  170. package/src/locales/it/index.ts +99 -0
  171. package/src/locales/it/parsers/ITCasualDateParser.ts +53 -0
  172. package/src/locales/it/parsers/ITCasualTimeParser.ts +50 -0
  173. package/src/locales/it/parsers/ITCasualYearMonthDayParser.ts +49 -0
  174. package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +69 -0
  175. package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +78 -0
  176. package/src/locales/it/parsers/ITMonthNameParser.ts +62 -0
  177. package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +71 -0
  178. package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +26 -0
  179. package/src/locales/it/parsers/ITTimeExpressionParser.ts +55 -0
  180. package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +25 -0
  181. package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +30 -0
  182. package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +27 -0
  183. package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +26 -0
  184. package/src/locales/it/parsers/ITWeekdayParser.ts +47 -0
  185. package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +17 -0
  186. package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +13 -0
  187. package/src/locales/it/refiners/ITMergeRelativeDateRefiner.ts +58 -0
  188. package/src/locales/ja/parsers/JPCasualDateParser.ts +4 -4
  189. package/src/locales/ja/refiners/JPMergeDateRangeRefiner.ts +1 -1
  190. package/src/results.ts +18 -0
  191. package/test/en/en_casual.test.ts +4 -0
  192. package/test/en/en_month.test.ts +22 -1
  193. package/test/en/en_slash.test.ts +4 -0
  194. package/test/en/en_time_exp.test.ts +9 -0
  195. package/test/en/en_time_units_ago.test.ts +4 -0
  196. package/test/en/en_time_units_casual_relative.test.ts +5 -0
  197. package/test/en/en_time_units_later.test.ts +1 -0
  198. package/test/en/en_time_units_within.test.ts +2 -0
  199. package/test/en/en_weekday.test.ts +43 -0
  200. package/test/ja/ja_casual.test.ts +8 -0
  201. package/test/ja/ja_standard.test.ts +19 -0
@@ -1 +1 @@
1
- {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/results.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/results.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "preset": "ts-jest"
16
16
  },
17
17
  "license": "MIT",
18
- "version": "2.7.7",
18
+ "version": "2.7.9",
19
19
  "directories": {
20
20
  "source": "./src",
21
21
  "test": "./test"
@@ -98,6 +98,6 @@ export default class SlashDateFormatParser implements Parser {
98
98
  result.start.imply("year", year);
99
99
  }
100
100
 
101
- return result;
101
+ return result.addTag("parser/SlashDateFormatParser");
102
102
  }
103
103
  }
@@ -24,6 +24,7 @@ import ENMergeRelativeAfterDateRefiner from "./refiners/ENMergeRelativeAfterDate
24
24
  import ENMergeRelativeFollowByDateRefiner from "./refiners/ENMergeRelativeFollowByDateRefiner";
25
25
  import OverlapRemovalRefiner from "../../common/refiners/OverlapRemovalRefiner";
26
26
  import ENExtractYearSuffixRefiner from "./refiners/ENExtractYearSuffixRefiner";
27
+ import ENUnlikelyFormatFilter from "./refiners/ENUnlikelyFormatFilter";
27
28
 
28
29
  export default class ENDefaultConfiguration {
29
30
  /**
@@ -37,6 +38,7 @@ export default class ENDefaultConfiguration {
37
38
  option.parsers.push(new ENMonthNameParser());
38
39
  option.parsers.push(new ENRelativeDateFormatParser());
39
40
  option.parsers.push(new ENTimeUnitCasualRelativeFormatParser());
41
+ option.refiners.push(new ENUnlikelyFormatFilter());
40
42
  return option;
41
43
  }
42
44
 
@@ -5,7 +5,7 @@ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/
5
5
  import { assignSimilarDate } from "../../../utils/dayjs";
6
6
  import * as references from "../../../common/casualReferences";
7
7
 
8
- const PATTERN = /(now|today|tonight|tomorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i;
8
+ const PATTERN = /(now|today|tonight|tomorrow|overmorrow|tmr|tmrw|yesterday|last\s*night)(?=\W|$)/i;
9
9
 
10
10
  export default class ENCasualDateParser extends AbstractParserWithWordBoundaryChecking {
11
11
  innerPattern(context: ParsingContext): RegExp {
@@ -40,6 +40,10 @@ export default class ENCasualDateParser extends AbstractParserWithWordBoundaryCh
40
40
  component = references.tonight(context.reference);
41
41
  break;
42
42
 
43
+ case "overmorrow":
44
+ component = references.theDayAfter(context.reference, 2);
45
+ break;
46
+
43
47
  default:
44
48
  if (lowerText.match(/last\s*night/)) {
45
49
  if (targetDate.hour() > 6) {
@@ -10,7 +10,7 @@ const PATTERN = new RegExp(
10
10
  `(${matchAnyPattern(MONTH_DICTIONARY)})` +
11
11
  `\\s*` +
12
12
  `(?:` +
13
- `[,-]?\\s*(${YEAR_PATTERN})?` +
13
+ `(?:,|-|of)?\\s*(${YEAR_PATTERN})?` +
14
14
  ")?" +
15
15
  "(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)",
16
16
  "i"
@@ -1,5 +1,5 @@
1
1
  import { ParsingContext } from "../../../chrono";
2
- import { ParsingComponents } from "../../../results";
2
+ import { ParsingComponents, ParsingResult } from "../../../results";
3
3
  import { Meridiem } from "../../../types";
4
4
  import { AbstractTimeExpressionParser } from "../../../common/parsers/AbstractTimeExpressionParser";
5
5
 
@@ -54,4 +54,16 @@ export default class ENTimeExpressionParser extends AbstractTimeExpressionParser
54
54
 
55
55
  return components.addTag("parser/ENTimeExpressionParser");
56
56
  }
57
+
58
+ extractFollowingTimeComponents(
59
+ context: ParsingContext,
60
+ match: RegExpMatchArray,
61
+ result: ParsingResult
62
+ ): ParsingComponents | null {
63
+ const followingComponents = super.extractFollowingTimeComponents(context, match, result);
64
+ if (followingComponents) {
65
+ followingComponents.addTag("parser/ENTimeExpressionParser");
66
+ }
67
+ return followingComponents;
68
+ }
57
69
  }
@@ -4,12 +4,13 @@ import { WEEKDAY_DICTIONARY } from "../constants";
4
4
  import { matchAnyPattern } from "../../../utils/pattern";
5
5
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
6
6
  import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays";
7
+ import { Weekday } from "../../../types";
7
8
 
8
9
  const PATTERN = new RegExp(
9
10
  "(?:(?:\\,|\\(|\\()\\s*)?" +
10
11
  "(?:on\\s*?)?" +
11
12
  "(?:(this|last|past|next)\\s*)?" +
12
- `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
13
+ `(${matchAnyPattern(WEEKDAY_DICTIONARY)}|weekend|weekday)` +
13
14
  "(?:\\s*(?:\\,|\\)|\\)))?" +
14
15
  "(?:\\s*(this|last|past|next)\\s*week)?" +
15
16
  "(?=\\W|$)",
@@ -25,9 +26,7 @@ export default class ENWeekdayParser extends AbstractParserWithWordBoundaryCheck
25
26
  return PATTERN;
26
27
  }
27
28
 
28
- innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
29
- const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
30
- const weekday = WEEKDAY_DICTIONARY[dayOfWeek];
29
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | null {
31
30
  const prefix = match[PREFIX_GROUP];
32
31
  const postfix = match[POSTFIX_GROUP];
33
32
  let modifierWord = prefix || postfix;
@@ -43,6 +42,31 @@ export default class ENWeekdayParser extends AbstractParserWithWordBoundaryCheck
43
42
  modifier = "this";
44
43
  }
45
44
 
45
+ const weekday_word = match[WEEKDAY_GROUP].toLowerCase();
46
+ let weekday;
47
+ if (WEEKDAY_DICTIONARY[weekday_word] !== undefined) {
48
+ weekday = WEEKDAY_DICTIONARY[weekday_word];
49
+ } else if (weekday_word == "weekend") {
50
+ // This depends on what days are weekend setting, but typically:
51
+ // 'This/next weekend' means the coming Saturday, 'last weekend' means last Sunday.
52
+ weekday = modifier == "last" ? Weekday.SUNDAY : Weekday.SATURDAY;
53
+ } else if (weekday_word == "weekday") {
54
+ // In English, the "weekday" means any day of the week except weekend.
55
+ // This also depends on what days are weekend setting, but typically:
56
+ // - On weekend ref, this means the coming Monday or last Friday.
57
+ // - On weekday ref, this means the next/last working day.
58
+ const refWeekday = context.reference.getDateWithAdjustedTimezone().getDay();
59
+ if (refWeekday == Weekday.SUNDAY || refWeekday == Weekday.SATURDAY) {
60
+ weekday = modifier == "last" ? Weekday.FRIDAY : Weekday.MONDAY;
61
+ } else {
62
+ weekday = refWeekday - 1;
63
+ weekday = modifier == "last" ? weekday - 1 : weekday + 1;
64
+ weekday = (weekday % 5) + 1;
65
+ }
66
+ } else {
67
+ return null;
68
+ }
69
+
46
70
  return createParsingComponentsAtWeekday(context.reference, weekday, modifier);
47
71
  }
48
72
  }
@@ -0,0 +1,44 @@
1
+ import { Filter } from "../../../common/abstractRefiners";
2
+ import { ParsingResult } from "../../../results";
3
+
4
+ export default class ENUnlikelyFormatFilter extends Filter {
5
+ constructor() {
6
+ super();
7
+ }
8
+
9
+ isValid(context, result: ParsingResult): boolean {
10
+ const text = result.text.trim();
11
+
12
+ // If the result is consists of the whole text (e.g. "2024", "May", etc),
13
+ // then it is unlikely to be a date.
14
+ if (text === context.text.trim()) {
15
+ return true;
16
+ }
17
+
18
+ // In English, the word "may" is a month name, but it is also a modal verb.
19
+ // Check if the text before "may" follows some allowed patterns.
20
+ if (text.toLowerCase() === "may") {
21
+ const textBefore = context.text.substring(0, result.index).trim();
22
+ if (!textBefore.match(/\b(in)$/i)) {
23
+ context.debug(() => {
24
+ console.log(`Removing unlikely result: ${result}`);
25
+ });
26
+
27
+ return false;
28
+ }
29
+ }
30
+
31
+ // In English, "the second" could refer to the ordinal number or timeunit.
32
+ if (text.toLowerCase().endsWith("the second")) {
33
+ const textAfter = context.text.substring(result.index + result.text.length).trim();
34
+ if (textAfter.length > 0) {
35
+ context.debug(() => {
36
+ console.log(`Removing unlikely result: ${result}`);
37
+ });
38
+ }
39
+ return false;
40
+ }
41
+
42
+ return true;
43
+ }
44
+ }
@@ -0,0 +1,230 @@
1
+ import { OpUnitType, QUnitType } from "dayjs";
2
+ import { matchAnyPattern, repeatedTimeunitPattern } from "../../utils/pattern";
3
+ import { findMostLikelyADYear } from "../../calculation/years";
4
+ import { TimeUnits } from "../../utils/timeunits";
5
+
6
+ export const WEEKDAY_DICTIONARY: { [word: string]: number } = {
7
+ "domenica": 0,
8
+ "dom": 0,
9
+ "lunedì": 1,
10
+ "lun": 1,
11
+ "martedì": 2,
12
+ "mar": 2,
13
+ "mercoledì": 3,
14
+ "merc": 3,
15
+ "giovedì": 4,
16
+ "giov": 4,
17
+ "venerdì": 5,
18
+ "ven": 5,
19
+ "sabato": 6,
20
+ "sab": 6,
21
+ };
22
+
23
+ export const FULL_MONTH_NAME_DICTIONARY: { [word: string]: number } = {};
24
+
25
+ export const MONTH_DICTIONARY: { [word: string]: number } = {
26
+ ...FULL_MONTH_NAME_DICTIONARY,
27
+ "gennaio": 1,
28
+ "gen": 1,
29
+ "gen.": 1,
30
+ "febbraio": 2,
31
+ "feb": 2,
32
+ "feb.": 2,
33
+ "febraio": 2,
34
+ "febb": 2,
35
+ "febb.": 2,
36
+ "marzo": 3,
37
+ "mar": 3,
38
+ "mar.": 3,
39
+ "aprile": 4,
40
+ "apr": 4,
41
+ "apr.": 4,
42
+ "maggio": 5,
43
+ "mag": 5,
44
+ "giugno": 6,
45
+ "giu": 6,
46
+ "luglio": 7,
47
+ "lug": 7,
48
+ "lugl": 7,
49
+ "lug.": 7,
50
+ "agosto": 8,
51
+ "ago": 8,
52
+ "settembre": 9,
53
+ "set": 9,
54
+ "set.": 9,
55
+ "sett": 9,
56
+ "sett.": 9,
57
+ "ottobre": 10,
58
+ "ott": 10,
59
+ "ott.": 10,
60
+ "novembre": 11,
61
+ "nov": 11,
62
+ "nov.": 11,
63
+ "dicembre": 12,
64
+ "dic": 12,
65
+ "dice": 12,
66
+ "dic.": 12,
67
+ };
68
+
69
+ export const INTEGER_WORD_DICTIONARY: { [word: string]: number } = {
70
+ "uno": 1,
71
+ "due": 2,
72
+ "tre": 3,
73
+ "quattro": 4,
74
+ "cinque": 5,
75
+ "sei": 6,
76
+ "sette": 7,
77
+ "otto": 8,
78
+ "nove": 9,
79
+ "dieci": 10,
80
+ "undici": 11,
81
+ "dodici": 12,
82
+ };
83
+
84
+ export const ORDINAL_WORD_DICTIONARY: { [word: string]: number } = {
85
+ "primo": 1,
86
+ "secondo": 2,
87
+ "terzo": 3,
88
+ "quarto": 4,
89
+ "quinto": 5,
90
+ "sesto": 6,
91
+ "settimo": 7,
92
+ "ottavo": 8,
93
+ "nono": 9,
94
+ "decimo": 10,
95
+ "undicesimo": 11,
96
+ "dodicesimo": 12,
97
+ "tredicesimo": 13,
98
+ "quattordicesimo": 14,
99
+ "quindicesimo": 15,
100
+ "sedicesimo": 16,
101
+ "diciassettesimo": 17,
102
+ "diciottesimo": 18,
103
+ "diciannovesimo": 19,
104
+ "ventesimo": 20,
105
+ "ventunesimo": 21,
106
+ "ventiduesimo": 22,
107
+ "ventitreesimo": 23,
108
+ "ventiquattresimo": 24,
109
+ "venticinquesimo": 25,
110
+ "ventiseiesimo": 26,
111
+ "ventisettesimo": 27,
112
+ "ventottesimo": 28,
113
+ "ventinovesimo": 29,
114
+ "trentesimo": 30,
115
+ "trentunesimo": 31,
116
+ };
117
+
118
+ export const TIME_UNIT_DICTIONARY: { [word: string]: OpUnitType | QUnitType } = {
119
+ "sec": "second",
120
+ "secondo": "second",
121
+ "secondi": "second",
122
+ "min": "minute",
123
+ "mins": "minute",
124
+ "minuti": "minute",
125
+ "h": "hour",
126
+ "hr": "hour",
127
+ "o": "hour",
128
+ "ora": "hour",
129
+ "ore": "hour",
130
+ "giorno": "d",
131
+ "giorni": "d",
132
+ "settimana": "week",
133
+ "settimane": "week",
134
+ "mese": "month",
135
+ "trimestre": "quarter",
136
+ "trimestri": "quarter",
137
+ "anni": "year",
138
+ "anno": "year",
139
+ };
140
+
141
+ //-----------------------------
142
+
143
+ export const NUMBER_PATTERN = `(?:${matchAnyPattern(
144
+ INTEGER_WORD_DICTIONARY
145
+ )}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}un?)?|un?\\b(?:\\s{0,2}qualcuno)?|qualcuno|molti|a?\\s{0,2}alcuni\\s{0,2}(?:of)?)`;
146
+
147
+ export function parseNumberPattern(match: string): number {
148
+ const num = match.toLowerCase();
149
+ if (INTEGER_WORD_DICTIONARY[num] !== undefined) {
150
+ return INTEGER_WORD_DICTIONARY[num];
151
+ } else if (num === "un" || num === "una") {
152
+ return 1;
153
+ } else if (num.match(/alcuni/)) {
154
+ return 3;
155
+ } else if (num.match(/metá/)) {
156
+ return 0.5;
157
+ } else if (num.match(/paio/)) {
158
+ return 2;
159
+ } else if (num.match(/molti/)) {
160
+ return 7;
161
+ }
162
+
163
+ return parseFloat(num);
164
+ }
165
+
166
+ //-----------------------------
167
+
168
+ export const ORDINAL_NUMBER_PATTERN = `(?:${matchAnyPattern(
169
+ ORDINAL_WORD_DICTIONARY
170
+ )}|[0-9]{1,2}(?:mo|ndo|rzo|simo|esimo)?)`;
171
+ export function parseOrdinalNumberPattern(match: string): number {
172
+ let num = match.toLowerCase();
173
+ if (ORDINAL_WORD_DICTIONARY[num] !== undefined) {
174
+ return ORDINAL_WORD_DICTIONARY[num];
175
+ }
176
+
177
+ num = num.replace(/(?:imo|ndo|rzo|rto|nto|sto|tavo|nono|cimo|timo|esimo)$/i, "");
178
+ return parseInt(num);
179
+ }
180
+
181
+ //-----------------------------
182
+
183
+ export const YEAR_PATTERN = `(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])`;
184
+ export function parseYear(match: string): number {
185
+ if (/BE/i.test(match)) {
186
+ // Buddhist Era
187
+ match = match.replace(/BE/i, "");
188
+ return parseInt(match) - 543;
189
+ }
190
+
191
+ if (/BCE?/i.test(match)) {
192
+ // Before Christ, Before Common Era
193
+ match = match.replace(/BCE?/i, "");
194
+ return -parseInt(match);
195
+ }
196
+
197
+ if (/(AD|CE)/i.test(match)) {
198
+ // Anno Domini, Common Era
199
+ match = match.replace(/(AD|CE)/i, "");
200
+ return parseInt(match);
201
+ }
202
+
203
+ const rawYearNumber = parseInt(match);
204
+ return findMostLikelyADYear(rawYearNumber);
205
+ }
206
+
207
+ //-----------------------------
208
+
209
+ const SINGLE_TIME_UNIT_PATTERN = `(${NUMBER_PATTERN})\\s{0,3}(${matchAnyPattern(TIME_UNIT_DICTIONARY)})`;
210
+ const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i");
211
+
212
+ export const TIME_UNITS_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN);
213
+
214
+ export function parseTimeUnits(timeunitText): TimeUnits {
215
+ const fragments = {};
216
+ let remainingText = timeunitText;
217
+ let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
218
+ while (match) {
219
+ collectDateTimeFragment(fragments, match);
220
+ remainingText = remainingText.substring(match[0].length).trim();
221
+ match = SINGLE_TIME_UNIT_REGEX.exec(remainingText);
222
+ }
223
+ return fragments;
224
+ }
225
+
226
+ function collectDateTimeFragment(fragments, match) {
227
+ const num = parseNumberPattern(match[1]);
228
+ const unit = TIME_UNIT_DICTIONARY[match[2].toLowerCase()];
229
+ fragments[unit] = num;
230
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Chrono components for Italian support (*parsers*, *refiners*, and *configuration*)
3
+ *
4
+ * @module
5
+ */
6
+
7
+ import ENTimeUnitWithinFormatParser from "./parsers/ITTimeUnitWithinFormatParser";
8
+ import ENMonthNameLittleEndianParser from "./parsers/ITMonthNameLittleEndianParser";
9
+ import ENMonthNameMiddleEndianParser from "./parsers/ITMonthNameMiddleEndianParser";
10
+ import ENMonthNameParser from "./parsers/ITMonthNameParser";
11
+ import ENCasualYearMonthDayParser from "./parsers/ITCasualYearMonthDayParser";
12
+ import ENSlashMonthFormatParser from "./parsers/ITSlashMonthFormatParser";
13
+ import ENTimeExpressionParser from "./parsers/ITTimeExpressionParser";
14
+ import ENTimeUnitAgoFormatParser from "./parsers/ITTimeUnitAgoFormatParser";
15
+ import ENTimeUnitLaterFormatParser from "./parsers/ITTimeUnitLaterFormatParser";
16
+ import ENMergeDateRangeRefiner from "./refiners/ITMergeDateRangeRefiner";
17
+ import ENMergeDateTimeRefiner from "./refiners/ITMergeDateTimeRefiner";
18
+
19
+ import { includeCommonConfiguration } from "../../configurations";
20
+ import ENCasualDateParser from "./parsers/ITCasualDateParser";
21
+ import ENCasualTimeParser from "./parsers/ITCasualTimeParser";
22
+ import ENWeekdayParser from "./parsers/ITWeekdayParser";
23
+ import ENRelativeDateFormatParser from "./parsers/ITRelativeDateFormatParser";
24
+
25
+ import { ParsedResult, ParsingOption } from "../../index";
26
+ import { Chrono, Configuration } from "../../chrono";
27
+ import SlashDateFormatParser from "../../common/parsers/SlashDateFormatParser";
28
+ import ENTimeUnitCasualRelativeFormatParser from "./parsers/ITTimeUnitCasualRelativeFormatParser";
29
+ import ENMergeRelativeDateRefiner from "./refiners/ITMergeRelativeDateRefiner";
30
+
31
+ /**
32
+ * Chrono object configured for parsing *casual* Italian
33
+ */
34
+ export const casual = new Chrono(createCasualConfiguration(false));
35
+
36
+ /**
37
+ * Chrono object configured for parsing *strict* Italian
38
+ */
39
+ export const strict = new Chrono(createConfiguration(true, false));
40
+
41
+ /**
42
+ * Chrono object configured for parsing Italian
43
+ */
44
+ export const GB = new Chrono(createConfiguration(false, true));
45
+
46
+ /**
47
+ * A shortcut for en.casual.parse()
48
+ */
49
+ export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] {
50
+ return casual.parse(text, ref, option);
51
+ }
52
+
53
+ /**
54
+ * A shortcut for en.casual.parseDate()
55
+ */
56
+ export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date {
57
+ return casual.parseDate(text, ref, option);
58
+ }
59
+
60
+ /**
61
+ * Create a default *casual* {@Link Configuration} for Italian chrono.
62
+ * It calls {@Link createConfiguration} and includes additional parsers.
63
+ */
64
+ export function createCasualConfiguration(littleEndian = false): Configuration {
65
+ const option = createConfiguration(false, littleEndian);
66
+ option.parsers.unshift(new ENCasualDateParser());
67
+ option.parsers.unshift(new ENCasualTimeParser());
68
+ option.parsers.unshift(new ENMonthNameParser());
69
+ option.parsers.unshift(new ENRelativeDateFormatParser());
70
+ option.parsers.unshift(new ENTimeUnitCasualRelativeFormatParser());
71
+ return option;
72
+ }
73
+
74
+ /**
75
+ * Create a default {@Link Configuration} for Italian chrono
76
+ *
77
+ * @param strictMode If the timeunit mentioning should be strict, not casual
78
+ * @param littleEndian If format should be date-first/littleEndian (e.g. en_UK), not month-first/middleEndian (e.g. en_US)
79
+ */
80
+ export function createConfiguration(strictMode = true, littleEndian = false): Configuration {
81
+ return includeCommonConfiguration(
82
+ {
83
+ parsers: [
84
+ new SlashDateFormatParser(littleEndian),
85
+ new ENTimeUnitWithinFormatParser(),
86
+ new ENMonthNameLittleEndianParser(),
87
+ new ENMonthNameMiddleEndianParser(),
88
+ new ENWeekdayParser(),
89
+ new ENCasualYearMonthDayParser(),
90
+ new ENSlashMonthFormatParser(),
91
+ new ENTimeExpressionParser(strictMode),
92
+ new ENTimeUnitAgoFormatParser(strictMode),
93
+ new ENTimeUnitLaterFormatParser(strictMode),
94
+ ],
95
+ refiners: [new ENMergeRelativeDateRefiner(), new ENMergeDateTimeRefiner(), new ENMergeDateRangeRefiner()],
96
+ },
97
+ strictMode
98
+ );
99
+ }
@@ -0,0 +1,53 @@
1
+ import { ParsingContext } from "../../../chrono";
2
+ import { ParsingComponents, ParsingResult } from "../../../results";
3
+ import dayjs from "dayjs";
4
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
5
+ import { assignSimilarDate } from "../../../utils/dayjs";
6
+ import * as references from "../../../common/casualReferences";
7
+
8
+ const PATTERN = /(ora|oggi|stasera|questa sera|domani|dmn|ieri\s*sera)(?=\W|$)/i;
9
+
10
+ export default class ENCasualDateParser extends AbstractParserWithWordBoundaryChecking {
11
+ innerPattern(context: ParsingContext): RegExp {
12
+ return PATTERN;
13
+ }
14
+
15
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | ParsingResult {
16
+ let targetDate = dayjs(context.refDate);
17
+ const lowerText = match[0].toLowerCase();
18
+ const component = context.createParsingComponents();
19
+
20
+ switch (lowerText) {
21
+ case "ora":
22
+ return references.now(context.reference);
23
+
24
+ case "oggi":
25
+ return references.today(context.reference);
26
+
27
+ case "ieri":
28
+ return references.yesterday(context.reference);
29
+
30
+ case "domani":
31
+ case "dmn":
32
+ return references.tomorrow(context.reference);
33
+
34
+ case "stasera":
35
+ case "questa sera":
36
+ return references.tonight(context.reference);
37
+
38
+ default:
39
+ if (lowerText.match(/ieri\s*sera/)) {
40
+ if (targetDate.hour() > 6) {
41
+ targetDate = targetDate.add(-1, "day");
42
+ }
43
+
44
+ assignSimilarDate(component, targetDate);
45
+ component.imply("hour", 0);
46
+ }
47
+
48
+ break;
49
+ }
50
+
51
+ return component;
52
+ }
53
+ }
@@ -0,0 +1,50 @@
1
+ import { ParsingContext } from "../../../chrono";
2
+ import { Meridiem } from "../../../index";
3
+ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
4
+ import dayjs from "dayjs";
5
+ import { assignTheNextDay } from "../../../utils/dayjs";
6
+
7
+ const PATTERN = /(?:questo|questa)?\s{0,3}(mattina|pomeriggio|sera|notte|mezzanotte|mezzogiorno)(?=\W|$)/i;
8
+
9
+ export default class ENCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
10
+ innerPattern() {
11
+ return PATTERN;
12
+ }
13
+
14
+ innerExtract(context: ParsingContext, match: RegExpMatchArray) {
15
+ const targetDate = dayjs(context.refDate);
16
+ const component = context.createParsingComponents();
17
+
18
+ switch (match[1].toLowerCase()) {
19
+ case "pomeriggio":
20
+ component.imply("meridiem", Meridiem.PM);
21
+ component.imply("hour", 15);
22
+ break;
23
+
24
+ case "sera":
25
+ case "notte":
26
+ component.imply("meridiem", Meridiem.PM);
27
+ component.imply("hour", 20);
28
+ break;
29
+
30
+ case "mezzanotte":
31
+ assignTheNextDay(component, targetDate);
32
+ component.imply("hour", 0);
33
+ component.imply("minute", 0);
34
+ component.imply("second", 0);
35
+ break;
36
+
37
+ case "mattina":
38
+ component.imply("meridiem", Meridiem.AM);
39
+ component.imply("hour", 6);
40
+ break;
41
+
42
+ case "mezzogiorno":
43
+ component.imply("meridiem", Meridiem.AM);
44
+ component.imply("hour", 12);
45
+ break;
46
+ }
47
+
48
+ return component;
49
+ }
50
+ }