chrono-node 2.10.0 → 2.10.1

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 (178) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/locales/en/constants.d.ts +1 -1
  3. package/dist/cjs/locales/en/constants.js +1 -1
  4. package/dist/cjs/locales/en/constants.js.map +1 -1
  5. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  6. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  7. package/dist/cjs/locales/fr/constants.js +13 -0
  8. package/dist/cjs/locales/fr/constants.js.map +1 -1
  9. package/dist/cjs/locales/it/configuration.d.ts +5 -0
  10. package/dist/cjs/locales/it/configuration.js +66 -0
  11. package/dist/cjs/locales/it/configuration.js.map +1 -0
  12. package/dist/cjs/locales/it/constants.d.ts +8 -4
  13. package/dist/cjs/locales/it/constants.js +216 -90
  14. package/dist/cjs/locales/it/constants.js.map +1 -1
  15. package/dist/cjs/locales/it/index.d.ts +9 -7
  16. package/dist/cjs/locales/it/index.js +13 -51
  17. package/dist/cjs/locales/it/index.js.map +1 -1
  18. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +19 -10
  19. package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  20. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  21. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +70 -37
  22. package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  23. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  24. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +6 -6
  25. package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  26. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  27. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -6
  28. package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  29. package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  30. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +5 -4
  31. package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  32. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  33. package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  34. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  35. package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +2 -2
  36. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  37. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +37 -29
  38. package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  39. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  40. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  41. package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  42. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  43. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +17 -9
  44. package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  45. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  46. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  47. package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  48. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  49. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +21 -6
  50. package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  51. package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  52. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +21 -12
  53. package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  54. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  55. package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -8
  56. package/dist/cjs/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  57. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  58. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js +34 -0
  59. package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  60. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  61. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +3 -3
  62. package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  63. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  64. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +3 -3
  65. package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  66. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  67. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +30 -0
  68. package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  69. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  70. package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +8 -8
  71. package/dist/cjs/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  72. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  73. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js +26 -0
  74. package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  75. package/dist/esm/locales/en/constants.d.ts +1 -1
  76. package/dist/esm/locales/en/constants.js +1 -1
  77. package/dist/esm/locales/en/constants.js.map +1 -1
  78. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
  79. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  80. package/dist/esm/locales/fr/constants.js +13 -0
  81. package/dist/esm/locales/fr/constants.js.map +1 -1
  82. package/dist/esm/locales/it/configuration.d.ts +5 -0
  83. package/dist/esm/locales/it/configuration.js +60 -0
  84. package/dist/esm/locales/it/configuration.js.map +1 -0
  85. package/dist/esm/locales/it/constants.d.ts +8 -4
  86. package/dist/esm/locales/it/constants.js +256 -117
  87. package/dist/esm/locales/it/constants.js.map +1 -1
  88. package/dist/esm/locales/it/index.d.ts +9 -7
  89. package/dist/esm/locales/it/index.js +8 -48
  90. package/dist/esm/locales/it/index.js.map +1 -1
  91. package/dist/esm/locales/it/parsers/ITCasualDateParser.js +19 -10
  92. package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -1
  93. package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
  94. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +37 -37
  95. package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
  96. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
  97. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +5 -5
  98. package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
  99. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
  100. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -5
  101. package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
  102. package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
  103. package/dist/esm/locales/it/parsers/ITMonthNameParser.js +4 -3
  104. package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -1
  105. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
  106. package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
  107. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
  108. package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +1 -1
  109. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
  110. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +35 -27
  111. package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
  112. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
  113. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
  114. package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
  115. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
  116. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +18 -9
  117. package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
  118. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
  119. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
  120. package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
  121. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
  122. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +22 -6
  123. package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
  124. package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
  125. package/dist/esm/locales/it/parsers/ITWeekdayParser.js +21 -12
  126. package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -1
  127. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
  128. package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -7
  129. package/dist/esm/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
  130. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
  131. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js +31 -0
  132. package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
  133. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
  134. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +2 -2
  135. package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
  136. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
  137. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +2 -2
  138. package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
  139. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
  140. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +27 -0
  141. package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
  142. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  143. package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +7 -7
  144. package/dist/esm/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
  145. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
  146. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js +23 -0
  147. package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
  148. package/package.json +1 -1
  149. package/src/locales/en/constants.ts +1 -1
  150. package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +1 -1
  151. package/src/locales/fr/constants.ts +13 -0
  152. package/src/locales/it/configuration.ts +85 -0
  153. package/src/locales/it/constants.ts +273 -123
  154. package/src/locales/it/index.ts +14 -73
  155. package/src/locales/it/parsers/ITCasualDateParser.ts +20 -12
  156. package/src/locales/it/parsers/ITCasualTimeParser.ts +39 -44
  157. package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +6 -6
  158. package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +34 -17
  159. package/src/locales/it/parsers/ITMonthNameParser.ts +9 -8
  160. package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +33 -12
  161. package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +1 -1
  162. package/src/locales/it/parsers/ITTimeExpressionParser.ts +42 -28
  163. package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +9 -8
  164. package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +21 -11
  165. package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +12 -6
  166. package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +28 -8
  167. package/src/locales/it/parsers/ITWeekdayParser.ts +23 -13
  168. package/src/locales/it/parsers/{ITCasualYearMonthDayParser.ts → ITYearMonthDayParser.ts} +19 -8
  169. package/src/locales/it/refiners/ITExtractYearSuffixRefiner.ts +34 -0
  170. package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +5 -9
  171. package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +5 -5
  172. package/src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts +46 -0
  173. package/src/locales/it/refiners/{ITMergeRelativeDateRefiner.ts → ITMergeRelativeFollowByDateRefiner.ts} +10 -10
  174. package/src/locales/it/refiners/ITUnlikelyFormatFilter.ts +31 -0
  175. package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  176. package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
  177. package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
  178. package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import { parseDuration, TIME_UNITS_PATTERN } from "../constants.js";
1
+ import { parseDuration, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:dopo|più tardi|da adesso|avanti|oltre|a seguire)` + "(?=(?:\\W|$))", "i");
5
- const STRICT_PATTERN = new RegExp("" + "(" + TIME_UNITS_PATTERN + ")" + "(dopo|più tardi)" + "(?=(?:\\W|$))", "i");
4
+ const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:dopo|più\\s*tardi|da\\s*adesso|da\\s*ora)` + "(?=(?:\\W|$))", "i");
5
+ const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(dopo|più\\s*tardi|da\\s*adesso|da\\s*ora)(?=\\W|$)`, "i");
6
6
  const GROUP_NUM_TIMEUNITS = 1;
7
- export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
7
+ export default class ITTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking {
8
8
  strictMode;
9
9
  constructor(strictMode) {
10
10
  super();
@@ -14,8 +14,11 @@ export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordB
14
14
  return this.strictMode ? STRICT_PATTERN : PATTERN;
15
15
  }
16
16
  innerExtract(context, match) {
17
- const fragments = parseDuration(match[GROUP_NUM_TIMEUNITS]);
18
- return ParsingComponents.createRelativeFromReference(context.reference, fragments);
17
+ const timeUnits = parseDuration(match[GROUP_NUM_TIMEUNITS]);
18
+ if (!timeUnits) {
19
+ return null;
20
+ }
21
+ return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
19
22
  }
20
23
  }
21
24
  //# sourceMappingURL=ITTimeUnitLaterFormatParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitLaterFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,IAAI,kBAAkB,8DAA8D,GAAG,eAAe,EACtG,GAAG,CACN,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,kBAAkB,GAAG,GAAG,GAAG,kBAAkB,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC;AACnH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,sCAAsC;IACvE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitLaterFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,IAAI,kBAAkB,uDAAuD,GAAG,eAAe,EAC/F,GAAG,CACN,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,MAAM,CAC7B,IAAI,0BAA0B,8DAA8D,EAC5F,GAAG,CACN,CAAC;AACF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,sCAAsC;IACvE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -1,7 +1,9 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- export default class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ export default class ITTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
5
+ private strictMode;
6
+ constructor(strictMode: boolean);
5
7
  innerPattern(context: ParsingContext): RegExp;
6
8
  innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
7
9
  }
@@ -1,15 +1,31 @@
1
- import { TIME_UNITS_PATTERN, parseDuration } from "../constants.js";
1
+ import { TIME_UNITS_PATTERN, parseDuration, TIME_UNITS_NO_ABBR_PATTERN } from "../constants.js";
2
2
  import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN_WITH_PREFIX = new RegExp(`(?:within|in|for)\\s*` +
5
- `(?:(?:più o meno|intorno|approssimativamente|verso|verso le)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
- const PATTERN_WITHOUT_PREFIX = new RegExp(`(?:(?:più o meno|intorno|approssimativamente|verso|verso le)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
7
- export default class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
4
+ const PATTERN_WITH_OPTIONAL_PREFIX = new RegExp(`(?:(?:entro|tra|fra|in|per)\\s*)?` +
5
+ `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
6
+ const PATTERN_WITH_PREFIX = new RegExp(`(?:entro|tra|fra|in|per)\\s*` + `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_PATTERN})(?=\\W|$)`, "i");
7
+ const PATTERN_WITH_PREFIX_STRICT = new RegExp(`(?:entro|tra|fra|in|per)\\s*` +
8
+ `(?:(?:circa|approssimativamente)\\s*(?:~\\s*)?)?(${TIME_UNITS_NO_ABBR_PATTERN})(?=\\W|$)`, "i");
9
+ export default class ITTimeUnitWithinFormatParser extends AbstractParserWithWordBoundaryChecking {
10
+ strictMode;
11
+ constructor(strictMode) {
12
+ super();
13
+ this.strictMode = strictMode;
14
+ }
8
15
  innerPattern(context) {
9
- return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX;
16
+ if (this.strictMode) {
17
+ return PATTERN_WITH_PREFIX_STRICT;
18
+ }
19
+ return context.option.forwardDate ? PATTERN_WITH_OPTIONAL_PREFIX : PATTERN_WITH_PREFIX;
10
20
  }
11
21
  innerExtract(context, match) {
22
+ if (match[0].match(/^per\s*(il|la|l')\s*\w+/)) {
23
+ return null;
24
+ }
12
25
  const timeUnits = parseDuration(match[1]);
26
+ if (!timeUnits) {
27
+ return null;
28
+ }
13
29
  return ParsingComponents.createRelativeFromReference(context.reference, timeUnits);
14
30
  }
15
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ITTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAClC,uBAAuB;IACnB,gFAAgF,kBAAkB,YAAY,EAClH,GAAG,CACN,CAAC;AAEF,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACrC,gFAAgF,kBAAkB,YAAY,EAC9G,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IAC5F,YAAY,CAAC,OAAuB;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrF,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITTimeUnitWithinFormatParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAEhH,MAAM,4BAA4B,GAAG,IAAI,MAAM,CAC3C,mCAAmC;IAC/B,oDAAoD,kBAAkB,YAAY,EACtF,GAAG,CACN,CAAC;AAEF,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAClC,8BAA8B,GAAG,oDAAoD,kBAAkB,YAAY,EACnH,GAAG,CACN,CAAC;AAEF,MAAM,0BAA0B,GAAG,IAAI,MAAM,CACzC,8BAA8B;IAC1B,oDAAoD,0BAA0B,YAAY,EAC9F,GAAG,CACN,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,sCAAsC;IACxE;IAApB,YAAoB,UAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAS;IAEvC,CAAC;IAED,YAAY,CAAC,OAAuB;QAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,0BAA0B,CAAC;QACtC,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC3F,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QAEzD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;CACJ"}
@@ -3,5 +3,5 @@ import { ParsingComponents } from "../../../results.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  export default class ITWeekdayParser extends AbstractParserWithWordBoundaryChecking {
5
5
  innerPattern(): RegExp;
6
- innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents;
6
+ innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | null;
7
7
  }
@@ -2,12 +2,12 @@ import { WEEKDAY_DICTIONARY } from "../constants.js";
2
2
  import { matchAnyPattern } from "../../../utils/pattern.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
4
  import { createParsingComponentsAtWeekday } from "../../../calculation/weekdays.js";
5
+ import { Weekday } from "../../../types.js";
5
6
  const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" +
6
- "(?:il\\s*?)?" +
7
- "(?:(questa|l'ultima|scorsa|prossima)\\s*)?" +
8
- `(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
7
+ "(?:(questo|questa|quest'|scorso|scorsa|prossimo|prossima)\\s*)?" +
8
+ `(${matchAnyPattern(WEEKDAY_DICTIONARY)}|weekend|fine\\s*settimana)` +
9
9
  "(?:\\s*(?:\\,|\\)|\\)))?" +
10
- "(?:\\s*(questa|l'ultima|scorsa|prossima)\\s*settimana)?" +
10
+ "(?:\\s*(scorso|scorsa|prossimo|prossima)(?:\\s*settimana)?)?" +
11
11
  "(?=\\W|$)", "i");
12
12
  const PREFIX_GROUP = 1;
13
13
  const WEEKDAY_GROUP = 2;
@@ -17,22 +17,31 @@ export default class ITWeekdayParser extends AbstractParserWithWordBoundaryCheck
17
17
  return PATTERN;
18
18
  }
19
19
  innerExtract(context, match) {
20
- const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
21
- const weekday = WEEKDAY_DICTIONARY[dayOfWeek];
22
20
  const prefix = match[PREFIX_GROUP];
23
21
  const postfix = match[POSTFIX_GROUP];
24
22
  let modifierWord = prefix || postfix;
25
23
  modifierWord = modifierWord || "";
26
24
  modifierWord = modifierWord.toLowerCase();
27
25
  let modifier = null;
28
- if (modifierWord == "ultima" || modifierWord == "scorsa") {
29
- modifier = "ultima";
26
+ if (modifierWord == "scorso" || modifierWord == "scorsa") {
27
+ modifier = "last";
30
28
  }
31
- else if (modifierWord == "prossima") {
32
- modifier = "prossima";
29
+ else if (modifierWord == "prossimo" || modifierWord == "prossima") {
30
+ modifier = "next";
33
31
  }
34
- else if (modifierWord == "questa") {
35
- modifier = "questa";
32
+ else if (modifierWord == "questo" || modifierWord == "questa" || modifierWord == "quest'") {
33
+ modifier = "this";
34
+ }
35
+ const weekday_word = match[WEEKDAY_GROUP].toLowerCase();
36
+ let weekday;
37
+ if (WEEKDAY_DICTIONARY[weekday_word] !== undefined) {
38
+ weekday = WEEKDAY_DICTIONARY[weekday_word];
39
+ }
40
+ else if (weekday_word == "weekend" || weekday_word.match(/fine\s*settimana/)) {
41
+ weekday = modifier == "last" ? Weekday.SUNDAY : Weekday.SATURDAY;
42
+ }
43
+ else {
44
+ return null;
36
45
  }
37
46
  return createParsingComponentsAtWeekday(context.reference, weekday, modifier);
38
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ITWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AAEjF,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,0BAA0B;IACtB,cAAc;IACd,4CAA4C;IAC5C,IAAI,eAAe,CAAC,kBAAkB,CAAC,GAAG;IAC1C,0BAA0B;IAC1B,yDAAyD;IACzD,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sCAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YACvD,QAAQ,GAAG,QAAQ,CAAC;QACxB,CAAC;aAAM,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YACpC,QAAQ,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAClC,QAAQ,GAAG,QAAQ,CAAC;QACxB,CAAC;QACD,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
1
+ {"version":3,"file":"ITWeekdayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITWeekdayParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,0BAA0B;IACtB,iEAAiE;IACjE,IAAI,eAAe,CAAC,kBAAkB,CAAC,6BAA6B;IACpE,0BAA0B;IAC1B,8DAA8D;IAC9D,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sCAAsC;IAC/E,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC;QACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YACvD,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,YAAY,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAClE,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;aAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC1F,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC;QACZ,IAAI,kBAAkB,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,YAAY,IAAI,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAE7E,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,gCAAgC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
@@ -1,6 +1,8 @@
1
1
  import { ParsingContext } from "../../../chrono.js";
2
2
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
3
- export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
3
+ export default class ITYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
4
+ private strictMonthDateOrder;
5
+ constructor(strictMonthDateOrder: boolean);
4
6
  innerPattern(): RegExp;
5
7
  innerExtract(context: ParsingContext, match: RegExpMatchArray): {
6
8
  day: number;
@@ -1,27 +1,40 @@
1
1
  import { MONTH_DICTIONARY } from "../constants.js";
2
2
  import { matchAnyPattern } from "../../../utils/pattern.js";
3
3
  import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary.js";
4
- const PATTERN = new RegExp(`([0-9]{4})[\\.\\/\\s]` +
5
- `(?:(${matchAnyPattern(MONTH_DICTIONARY)})|([0-9]{1,2}))[\\.\\/\\s]` +
4
+ const PATTERN = new RegExp(`([0-9]{4})[-\\.\\/\\s]` +
5
+ `(?:(${matchAnyPattern(MONTH_DICTIONARY)})|([0-9]{1,2}))[-\\.\\/\\s]` +
6
6
  `([0-9]{1,2})` +
7
7
  "(?=\\W|$)", "i");
8
8
  const YEAR_NUMBER_GROUP = 1;
9
9
  const MONTH_NAME_GROUP = 2;
10
10
  const MONTH_NUMBER_GROUP = 3;
11
11
  const DATE_NUMBER_GROUP = 4;
12
- export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
12
+ export default class ITYearMonthDayParser extends AbstractParserWithWordBoundaryChecking {
13
+ strictMonthDateOrder;
14
+ constructor(strictMonthDateOrder) {
15
+ super();
16
+ this.strictMonthDateOrder = strictMonthDateOrder;
17
+ }
13
18
  innerPattern() {
14
19
  return PATTERN;
15
20
  }
16
21
  innerExtract(context, match) {
17
- const month = match[MONTH_NUMBER_GROUP]
22
+ const year = parseInt(match[YEAR_NUMBER_GROUP]);
23
+ let day = parseInt(match[DATE_NUMBER_GROUP]);
24
+ let month = match[MONTH_NUMBER_GROUP]
18
25
  ? parseInt(match[MONTH_NUMBER_GROUP])
19
26
  : MONTH_DICTIONARY[match[MONTH_NAME_GROUP].toLowerCase()];
20
27
  if (month < 1 || month > 12) {
28
+ if (this.strictMonthDateOrder) {
29
+ return null;
30
+ }
31
+ if (day >= 1 && day <= 12) {
32
+ [month, day] = [day, month];
33
+ }
34
+ }
35
+ if (day < 1 || day > 31) {
21
36
  return null;
22
37
  }
23
- const year = parseInt(match[YEAR_NUMBER_GROUP]);
24
- const day = parseInt(match[DATE_NUMBER_GROUP]);
25
38
  return {
26
39
  day: day,
27
40
  month: month,
@@ -29,4 +42,4 @@ export default class ENCasualYearMonthDayParser extends AbstractParserWithWordBo
29
42
  };
30
43
  }
31
44
  }
32
- //# sourceMappingURL=ITCasualYearMonthDayParser.js.map
45
+ //# sourceMappingURL=ITYearMonthDayParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITYearMonthDayParser.js","sourceRoot":"","sources":["../../../../../src/locales/it/parsers/ITYearMonthDayParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sCAAsC,EAAE,MAAM,wDAAwD,CAAC;AAShH,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,wBAAwB;IACpB,OAAO,eAAe,CAAC,gBAAgB,CAAC,6BAA6B;IACrE,cAAc;IACd,WAAW,EACf,GAAG,CACN,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,sCAAsC;IAChE;IAApB,YAAoB,oBAA6B;QAC7C,KAAK,EAAE,CAAC;QADQ,yBAAoB,GAApB,oBAAoB,CAAS;IAEjD,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,YAAY,CAAC,OAAuB,EAAE,KAAuB;QACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACrC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;gBACxB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACH,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,5 @@
1
+ import { ParsingContext, Refiner } from "../../../chrono.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ export default class ITExtractYearSuffixRefiner implements Refiner {
4
+ refine(context: ParsingContext, results: ParsingResult[]): ParsingResult[];
5
+ }
@@ -0,0 +1,31 @@
1
+ import { YEAR_PATTERN, parseYear } from "../constants.js";
2
+ const YEAR_SUFFIX_PATTERN = new RegExp(`^\\s*(${YEAR_PATTERN})`, "i");
3
+ const YEAR_GROUP = 1;
4
+ export default class ITExtractYearSuffixRefiner {
5
+ refine(context, results) {
6
+ results.forEach(function (result) {
7
+ if (!result.start.isDateWithUnknownYear()) {
8
+ return;
9
+ }
10
+ const suffix = context.text.substring(result.index + result.text.length);
11
+ const match = YEAR_SUFFIX_PATTERN.exec(suffix);
12
+ if (!match) {
13
+ return;
14
+ }
15
+ if (match[0].trim().length <= 3) {
16
+ return;
17
+ }
18
+ context.debug(() => {
19
+ console.log(`Extracting year: '${match[0]}' into : ${result}`);
20
+ });
21
+ const year = parseYear(match[YEAR_GROUP]);
22
+ if (result.end != null) {
23
+ result.end.assign("year", year);
24
+ }
25
+ result.start.assign("year", year);
26
+ result.text += match[0];
27
+ });
28
+ return results;
29
+ }
30
+ }
31
+ //# sourceMappingURL=ITExtractYearSuffixRefiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITExtractYearSuffixRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITExtractYearSuffixRefiner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,SAAS,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC3C,MAAM,CAAC,OAAuB,EAAE,OAAwB;QACpD,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YAED,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACX,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
1
  import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMergeDateRangeRefiner.js";
2
- export default class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
2
+ export default class ITMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
3
3
  patternBetween(): RegExp;
4
4
  }
@@ -1,7 +1,7 @@
1
1
  import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMergeDateRangeRefiner.js";
2
- export default class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
2
+ export default class ITMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
3
3
  patternBetween() {
4
- return /^\s*(to|-)\s*$/i;
4
+ return /^\s*(a|al|-|–|fino\s*a|fino\s*al)\s*$/i;
5
5
  }
6
6
  }
7
7
  //# sourceMappingURL=ITMergeDateRangeRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITMergeDateRangeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateRangeRefiner.ts"],"names":[],"mappings":"AAIA,OAAO,6BAA6B,MAAM,wDAAwD,CAAC;AAQnG,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,6BAA6B;IAC9E,cAAc;QACV,OAAO,iBAAiB,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"ITMergeDateRangeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateRangeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,MAAM,wDAAwD,CAAC;AAQnG,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,6BAA6B;IAC9E,cAAc;QACV,OAAO,wCAAwC,CAAC;IACpD,CAAC;CACJ"}
@@ -1,4 +1,4 @@
1
1
  import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMergeDateTimeRefiner.js";
2
- export default class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
2
+ export default class ITMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
3
3
  patternBetween(): RegExp;
4
4
  }
@@ -1,7 +1,7 @@
1
1
  import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMergeDateTimeRefiner.js";
2
- export default class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
2
+ export default class ITMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
3
3
  patternBetween() {
4
- return new RegExp("^\\s*(T|alle|dopo|prima|il|di|del|delle|,|-)?\\s*$");
4
+ return new RegExp("^\\s*(T|alle?|dopo\\s*le|prima\\s*delle?|,|-|\\.|∙|:)?\\s*$");
5
5
  }
6
6
  }
7
7
  //# sourceMappingURL=ITMergeDateTimeRefiner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITMergeDateTimeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateTimeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,uDAAuD,CAAC;AAQjG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,cAAc;QACV,OAAO,IAAI,MAAM,CAAC,oDAAoD,CAAC,CAAC;IAC5E,CAAC;CACJ"}
1
+ {"version":3,"file":"ITMergeDateTimeRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeDateTimeRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,MAAM,uDAAuD,CAAC;AAQjG,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,4BAA4B;IAC5E,cAAc;QACV,OAAO,IAAI,MAAM,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import { MergingRefiner } from "../../../common/abstractRefiners.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ export default class ITMergeRelativeAfterDateRefiner extends MergingRefiner {
4
+ shouldMergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult): boolean;
5
+ mergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult, context: any): ParsingResult;
6
+ }
@@ -0,0 +1,27 @@
1
+ import { MergingRefiner } from "../../../common/abstractRefiners.js";
2
+ import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../../../results.js";
3
+ import { parseDuration } from "../constants.js";
4
+ import { reverseDuration } from "../../../calculation/duration.js";
5
+ function IsPositiveFollowingReference(result) {
6
+ return result.text.match(/^[+-]/i) != null;
7
+ }
8
+ function IsNegativeFollowingReference(result) {
9
+ return result.text.match(/^-/i) != null;
10
+ }
11
+ export default class ITMergeRelativeAfterDateRefiner extends MergingRefiner {
12
+ shouldMergeResults(textBetween, currentResult, nextResult) {
13
+ if (!textBetween.match(/^\s*$/i)) {
14
+ return false;
15
+ }
16
+ return IsPositiveFollowingReference(nextResult) || IsNegativeFollowingReference(nextResult);
17
+ }
18
+ mergeResults(textBetween, currentResult, nextResult, context) {
19
+ let timeUnits = parseDuration(nextResult.text);
20
+ if (IsNegativeFollowingReference(nextResult)) {
21
+ timeUnits = reverseDuration(timeUnits);
22
+ }
23
+ const components = ParsingComponents.createRelativeFromReference(ReferenceWithTimezone.fromDate(currentResult.start.date()), timeUnits);
24
+ return new ParsingResult(currentResult.reference, currentResult.index, `${currentResult.text}${textBetween}${nextResult.text}`, components);
25
+ }
26
+ }
27
+ //# sourceMappingURL=ITMergeRelativeAfterDateRefiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITMergeRelativeAfterDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,+BAAgC,SAAQ,cAAc;IACvE,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAC3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,4BAA4B,CAAC,UAAU,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB,EAAE,OAAO;QAC9F,IAAI,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,2BAA2B,CAC5D,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAC1D,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,aAAa,CACpB,aAAa,CAAC,SAAS,EACvB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  import { MergingRefiner } from "../../../common/abstractRefiners.js";
2
2
  import { ParsingResult } from "../../../results.js";
3
- export default class ENMergeRelativeDateRefiner extends MergingRefiner {
3
+ export default class ITMergeRelativeFollowByDateRefiner extends MergingRefiner {
4
4
  patternBetween(): RegExp;
5
5
  shouldMergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult): boolean;
6
6
  mergeResults(textBetween: string, currentResult: ParsingResult, nextResult: ParsingResult): ParsingResult;
@@ -3,12 +3,12 @@ import { ParsingComponents, ParsingResult, ReferenceWithTimezone } from "../../.
3
3
  import { parseDuration } from "../constants.js";
4
4
  import { reverseDuration } from "../../../calculation/duration.js";
5
5
  function hasImpliedEarlierReferenceDate(result) {
6
- return result.text.match(/\s+(prima|dal)$/i) != null;
6
+ return result.text.match(/\s+(prima|da)$/i) != null;
7
7
  }
8
8
  function hasImpliedLaterReferenceDate(result) {
9
- return result.text.match(/\s+(dopo|dal|fino)$/i) != null;
9
+ return result.text.match(/\s+(dopo|dal?)$/i) != null;
10
10
  }
11
- export default class ENMergeRelativeDateRefiner extends MergingRefiner {
11
+ export default class ITMergeRelativeFollowByDateRefiner extends MergingRefiner {
12
12
  patternBetween() {
13
13
  return /^\s*$/i;
14
14
  }
@@ -22,12 +22,12 @@ export default class ENMergeRelativeDateRefiner extends MergingRefiner {
22
22
  return !!nextResult.start.get("day") && !!nextResult.start.get("month") && !!nextResult.start.get("year");
23
23
  }
24
24
  mergeResults(textBetween, currentResult, nextResult) {
25
- let timeUnits = parseDuration(currentResult.text);
25
+ let duration = parseDuration(currentResult.text);
26
26
  if (hasImpliedEarlierReferenceDate(currentResult)) {
27
- timeUnits = reverseDuration(timeUnits);
27
+ duration = reverseDuration(duration);
28
28
  }
29
- const components = ParsingComponents.createRelativeFromReference(ReferenceWithTimezone.fromDate(nextResult.start.date()), timeUnits);
29
+ const components = ParsingComponents.createRelativeFromReference(ReferenceWithTimezone.fromDate(nextResult.start.date()), duration);
30
30
  return new ParsingResult(nextResult.reference, currentResult.index, `${currentResult.text}${textBetween}${nextResult.text}`, components);
31
31
  }
32
32
  }
33
- //# sourceMappingURL=ITMergeRelativeDateRefiner.js.map
33
+ //# sourceMappingURL=ITMergeRelativeFollowByDateRefiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITMergeRelativeFollowByDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,SAAS,8BAA8B,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;AACxD,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;AACzD,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,kCAAmC,SAAQ,cAAc;IAC1E,cAAc;QACV,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAE3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;QAID,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAAE,CAAC;YACjG,OAAO,KAAK,CAAC;QACjB,CAAC;QAGD,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QACrF,IAAI,QAAQ,GAAG,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,8BAA8B,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,2BAA2B,CAC5D,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EACvD,QAAQ,CACX,CAAC;QAEF,OAAO,IAAI,aAAa,CACpB,UAAU,CAAC,SAAS,EACpB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ import { Filter } from "../../../common/abstractRefiners.js";
2
+ import { ParsingResult } from "../../../results.js";
3
+ export default class ITUnlikelyFormatFilter extends Filter {
4
+ constructor();
5
+ isValid(context: any, result: ParsingResult): boolean;
6
+ }
@@ -0,0 +1,23 @@
1
+ import { Filter } from "../../../common/abstractRefiners.js";
2
+ export default class ITUnlikelyFormatFilter extends Filter {
3
+ constructor() {
4
+ super();
5
+ }
6
+ isValid(context, result) {
7
+ const text = result.text.trim();
8
+ if (text === context.text.trim()) {
9
+ return true;
10
+ }
11
+ if (text.toLowerCase().endsWith("il secondo") || text.toLowerCase() === "secondo") {
12
+ const textAfter = context.text.substring(result.index + result.text.length).trim();
13
+ if (textAfter.length > 0) {
14
+ context.debug(() => {
15
+ console.log(`Removing unlikely result: ${result}`);
16
+ });
17
+ }
18
+ return false;
19
+ }
20
+ return true;
21
+ }
22
+ }
23
+ //# sourceMappingURL=ITUnlikelyFormatFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITUnlikelyFormatFilter.js","sourceRoot":"","sources":["../../../../../src/locales/it/refiners/ITUnlikelyFormatFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG1D,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,MAAM;IACtD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,MAAqB;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAIhC,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QAGD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACnF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;oBACf,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACP,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "preset": "ts-jest"
16
16
  },
17
17
  "license": "MIT",
18
- "version": "2.10.0",
18
+ "version": "2.10.1",
19
19
  "directories": {
20
20
  "source": "./src",
21
21
  "test": "./test"
@@ -230,7 +230,7 @@ export function parseOrdinalNumberPattern(match: string): number {
230
230
 
231
231
  //-----------------------------
232
232
 
233
- export const YEAR_PATTERN = `(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-9][0-9]{3}|[5-9][0-9]|2[0-5])`;
233
+ export const YEAR_PATTERN = `(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-9][0-9]{3}|[0-9]{2}(?!\\w|:\\d|\\s+(?:am|pm|o\\s*clock|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)))`;
234
234
  export function parseYear(match: string): number {
235
235
  if (/BE/i.test(match)) {
236
236
  // Buddhist Era
@@ -60,7 +60,7 @@ export default class ENMonthNameMiddleEndianParser extends AbstractParserWithWor
60
60
 
61
61
  // Skip the case where the day looks like a year (ex: January 21)
62
62
  if (this.shouldSkipYearLikeDate) {
63
- if (!match[DATE_TO_GROUP] && !match[YEAR_GROUP] && match[DATE_GROUP].match(/^2[0-5]$/)) {
63
+ if (!match[DATE_TO_GROUP] && !match[YEAR_GROUP] && match[DATE_GROUP].match(/^\d{2}$/)) {
64
64
  return null;
65
65
  }
66
66
  }
@@ -22,12 +22,18 @@ export const MONTH_DICTIONARY: { [word: string]: number } = {
22
22
  "janvier": 1,
23
23
  "jan": 1,
24
24
  "jan.": 1,
25
+ "janv": 1,
26
+ "janv.": 1,
25
27
  "février": 2,
26
28
  "fév": 2,
27
29
  "fév.": 2,
30
+ "févr": 2,
31
+ "févr.": 2,
28
32
  "fevrier": 2,
29
33
  "fev": 2,
30
34
  "fev.": 2,
35
+ "fevr": 2,
36
+ "fevr.": 2,
31
37
  "mars": 3,
32
38
  "mar": 3,
33
39
  "mar.": 3,
@@ -36,13 +42,18 @@ export const MONTH_DICTIONARY: { [word: string]: number } = {
36
42
  "avr.": 4,
37
43
  "mai": 5,
38
44
  "juin": 6,
45
+ "juin.": 6,
39
46
  "jun": 6,
47
+ "jun.": 6,
40
48
  "juillet": 7,
41
49
  "juil": 7,
50
+ "juil.": 7,
42
51
  "jul": 7,
43
52
  "jul.": 7,
44
53
  "août": 8,
54
+ "août.": 8,
45
55
  "aout": 8,
56
+ "aout.": 8,
46
57
  "septembre": 9,
47
58
  "sep": 9,
48
59
  "sep.": 9,
@@ -58,6 +69,8 @@ export const MONTH_DICTIONARY: { [word: string]: number } = {
58
69
  "decembre": 12,
59
70
  "dec": 12,
60
71
  "dec.": 12,
72
+ "déc": 12,
73
+ "déc.": 12,
61
74
  };
62
75
 
63
76
  export const INTEGER_WORD_DICTIONARY: { [word: string]: number } = {