chrono-node 2.8.5 → 2.9.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.
- package/README.md +2 -2
- package/dist/cjs/calculation/mergingCalculation.js +4 -1
- package/dist/cjs/calculation/mergingCalculation.js.map +1 -1
- package/dist/cjs/common/casualReferences.d.ts +1 -1
- package/dist/cjs/common/casualReferences.js +4 -4
- package/dist/cjs/common/casualReferences.js.map +1 -1
- package/dist/cjs/common/refiners/ForwardDateRefiner.js +8 -13
- package/dist/cjs/common/refiners/ForwardDateRefiner.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/locales/de/parsers/DETimeUnitRelativeFormatParser.js +1 -1
- package/dist/cjs/locales/de/parsers/DETimeUnitRelativeFormatParser.js.map +1 -1
- package/dist/cjs/locales/en/constants.d.ts +1 -1
- package/dist/cjs/locales/en/constants.js +1 -1
- package/dist/cjs/locales/en/parsers/ENWeekdayParser.js +1 -1
- package/dist/cjs/locales/en/parsers/ENWeekdayParser.js.map +1 -1
- package/dist/cjs/locales/es/parsers/ESCasualTimeParser.js +5 -0
- package/dist/cjs/locales/es/parsers/ESCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/fi/constants.d.ts +24 -0
- package/dist/cjs/locales/fi/constants.js +197 -0
- package/dist/cjs/locales/fi/constants.js.map +1 -0
- package/dist/cjs/locales/fi/index.d.ts +11 -0
- package/dist/cjs/locales/fi/index.js +62 -0
- package/dist/cjs/locales/fi/index.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FICasualDateParser.d.ts +7 -0
- package/dist/cjs/locales/fi/parsers/FICasualDateParser.js +102 -0
- package/dist/cjs/locales/fi/parsers/FICasualDateParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FICasualTimeParser.d.ts +8 -0
- package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js +70 -0
- package/dist/cjs/locales/fi/parsers/FICasualTimeParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FIMonthNameLittleEndianParser.d.ts +7 -0
- package/dist/cjs/locales/fi/parsers/FIMonthNameLittleEndianParser.js +48 -0
- package/dist/cjs/locales/fi/parsers/FIMonthNameLittleEndianParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FITimeExpressionParser.d.ts +8 -0
- package/dist/cjs/locales/fi/parsers/FITimeExpressionParser.js +19 -0
- package/dist/cjs/locales/fi/parsers/FITimeExpressionParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitAgoFormatParser.d.ts +7 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitAgoFormatParser.js +18 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitAgoFormatParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.d.ts +9 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.js +39 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitWithinFormatParser.d.ts +7 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitWithinFormatParser.js +16 -0
- package/dist/cjs/locales/fi/parsers/FITimeUnitWithinFormatParser.js.map +1 -0
- package/dist/cjs/locales/fi/parsers/FIWeekdayParser.d.ts +7 -0
- package/dist/cjs/locales/fi/parsers/FIWeekdayParser.js +39 -0
- package/dist/cjs/locales/fi/parsers/FIWeekdayParser.js.map +1 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateRangeRefiner.d.ts +4 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateRangeRefiner.js +13 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateRangeRefiner.js.map +1 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateTimeRefiner.d.ts +4 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateTimeRefiner.js +13 -0
- package/dist/cjs/locales/fi/refiners/FIMergeDateTimeRefiner.js.map +1 -0
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
- package/dist/cjs/locales/nl/parsers/NLCasualTimeParser.js +5 -0
- package/dist/cjs/locales/nl/parsers/NLCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/pt/parsers/PTCasualTimeParser.js +5 -0
- package/dist/cjs/locales/pt/parsers/PTCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/vi/constants.d.ts +20 -0
- package/dist/cjs/locales/vi/constants.js +107 -0
- package/dist/cjs/locales/vi/constants.js.map +1 -0
- package/dist/cjs/locales/vi/index.d.ts +11 -0
- package/dist/cjs/locales/vi/index.js +73 -0
- package/dist/cjs/locales/vi/index.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VICasualDateParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VICasualDateParser.js +63 -0
- package/dist/cjs/locales/vi/parsers/VICasualDateParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VICasualTimeParser.d.ts +8 -0
- package/dist/cjs/locales/vi/parsers/VICasualTimeParser.js +59 -0
- package/dist/cjs/locales/vi/parsers/VICasualTimeParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VIMonthYearParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VIMonthYearParser.js +30 -0
- package/dist/cjs/locales/vi/parsers/VIMonthYearParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VIStandardParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VIStandardParser.js +39 -0
- package/dist/cjs/locales/vi/parsers/VIStandardParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VITimeExpressionParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VITimeExpressionParser.js +60 -0
- package/dist/cjs/locales/vi/parsers/VITimeExpressionParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitAgoFormatParser.d.ts +9 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitAgoFormatParser.js +24 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitAgoFormatParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.js +37 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitLaterFormatParser.d.ts +9 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitLaterFormatParser.js +23 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitLaterFormatParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitWithinFormatParser.d.ts +9 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitWithinFormatParser.js +23 -0
- package/dist/cjs/locales/vi/parsers/VITimeUnitWithinFormatParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VIWeekdayParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VIWeekdayParser.js +36 -0
- package/dist/cjs/locales/vi/parsers/VIWeekdayParser.js.map +1 -0
- package/dist/cjs/locales/vi/parsers/VIYearParser.d.ts +7 -0
- package/dist/cjs/locales/vi/parsers/VIYearParser.js +29 -0
- package/dist/cjs/locales/vi/parsers/VIYearParser.js.map +1 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateRangeRefiner.d.ts +4 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateRangeRefiner.js +13 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateRangeRefiner.js.map +1 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateTimeRefiner.d.ts +4 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateTimeRefiner.js +13 -0
- package/dist/cjs/locales/vi/refiners/VIMergeDateTimeRefiner.js.map +1 -0
- package/dist/cjs/locales/vi/refiners/VIMergeWeekdayComponentRefiner.d.ts +3 -0
- package/dist/cjs/locales/vi/refiners/VIMergeWeekdayComponentRefiner.js +10 -0
- package/dist/cjs/locales/vi/refiners/VIMergeWeekdayComponentRefiner.js.map +1 -0
- package/dist/cjs/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -0
- package/dist/cjs/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js +10 -4
- package/dist/cjs/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js.map +1 -1
- package/dist/cjs/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -0
- package/dist/cjs/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js +8 -2
- package/dist/cjs/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js.map +1 -1
- package/dist/cjs/results.d.ts +0 -2
- package/dist/cjs/results.js +1 -10
- package/dist/cjs/results.js.map +1 -1
- package/dist/esm/calculation/mergingCalculation.js +4 -1
- package/dist/esm/calculation/mergingCalculation.js.map +1 -1
- package/dist/esm/common/casualReferences.d.ts +1 -1
- package/dist/esm/common/casualReferences.js +3 -3
- package/dist/esm/common/casualReferences.js.map +1 -1
- package/dist/esm/common/refiners/ForwardDateRefiner.js +8 -13
- package/dist/esm/common/refiners/ForwardDateRefiner.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/locales/de/parsers/DETimeUnitRelativeFormatParser.js +1 -1
- package/dist/esm/locales/de/parsers/DETimeUnitRelativeFormatParser.js.map +1 -1
- package/dist/esm/locales/en/constants.d.ts +1 -1
- package/dist/esm/locales/en/constants.js +1 -1
- package/dist/esm/locales/en/parsers/ENWeekdayParser.js +1 -1
- package/dist/esm/locales/en/parsers/ENWeekdayParser.js.map +1 -1
- package/dist/esm/locales/es/parsers/ESCasualTimeParser.js +5 -0
- package/dist/esm/locales/es/parsers/ESCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/fi/constants.d.ts +24 -0
- package/dist/esm/locales/fi/constants.js +191 -0
- package/dist/esm/locales/fi/constants.js.map +1 -0
- package/dist/esm/locales/fi/index.d.ts +11 -0
- package/dist/esm/locales/fi/index.js +48 -0
- package/dist/esm/locales/fi/index.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FICasualDateParser.d.ts +7 -0
- package/dist/esm/locales/fi/parsers/FICasualDateParser.js +63 -0
- package/dist/esm/locales/fi/parsers/FICasualDateParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FICasualTimeParser.d.ts +8 -0
- package/dist/esm/locales/fi/parsers/FICasualTimeParser.js +67 -0
- package/dist/esm/locales/fi/parsers/FICasualTimeParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FIMonthNameLittleEndianParser.d.ts +7 -0
- package/dist/esm/locales/fi/parsers/FIMonthNameLittleEndianParser.js +45 -0
- package/dist/esm/locales/fi/parsers/FIMonthNameLittleEndianParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FITimeExpressionParser.d.ts +8 -0
- package/dist/esm/locales/fi/parsers/FITimeExpressionParser.js +16 -0
- package/dist/esm/locales/fi/parsers/FITimeExpressionParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitAgoFormatParser.d.ts +7 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitAgoFormatParser.js +15 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitAgoFormatParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.d.ts +9 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.js +37 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitWithinFormatParser.d.ts +7 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitWithinFormatParser.js +13 -0
- package/dist/esm/locales/fi/parsers/FITimeUnitWithinFormatParser.js.map +1 -0
- package/dist/esm/locales/fi/parsers/FIWeekdayParser.d.ts +7 -0
- package/dist/esm/locales/fi/parsers/FIWeekdayParser.js +36 -0
- package/dist/esm/locales/fi/parsers/FIWeekdayParser.js.map +1 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateRangeRefiner.d.ts +4 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateRangeRefiner.js +7 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateRangeRefiner.js.map +1 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateTimeRefiner.d.ts +4 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateTimeRefiner.js +7 -0
- package/dist/esm/locales/fi/refiners/FIMergeDateTimeRefiner.js.map +1 -0
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +1 -1
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
- package/dist/esm/locales/nl/parsers/NLCasualTimeParser.js +5 -0
- package/dist/esm/locales/nl/parsers/NLCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/pt/parsers/PTCasualTimeParser.js +5 -0
- package/dist/esm/locales/pt/parsers/PTCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/vi/constants.d.ts +20 -0
- package/dist/esm/locales/vi/constants.js +101 -0
- package/dist/esm/locales/vi/constants.js.map +1 -0
- package/dist/esm/locales/vi/index.d.ts +11 -0
- package/dist/esm/locales/vi/index.js +59 -0
- package/dist/esm/locales/vi/index.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VICasualDateParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VICasualDateParser.js +27 -0
- package/dist/esm/locales/vi/parsers/VICasualDateParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VICasualTimeParser.d.ts +8 -0
- package/dist/esm/locales/vi/parsers/VICasualTimeParser.js +56 -0
- package/dist/esm/locales/vi/parsers/VICasualTimeParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VIMonthYearParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VIMonthYearParser.js +27 -0
- package/dist/esm/locales/vi/parsers/VIMonthYearParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VIStandardParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VIStandardParser.js +36 -0
- package/dist/esm/locales/vi/parsers/VIStandardParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VITimeExpressionParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VITimeExpressionParser.js +56 -0
- package/dist/esm/locales/vi/parsers/VITimeExpressionParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitAgoFormatParser.d.ts +9 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitAgoFormatParser.js +22 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitAgoFormatParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.js +34 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitLaterFormatParser.d.ts +9 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitLaterFormatParser.js +21 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitLaterFormatParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitWithinFormatParser.d.ts +9 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitWithinFormatParser.js +21 -0
- package/dist/esm/locales/vi/parsers/VITimeUnitWithinFormatParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VIWeekdayParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VIWeekdayParser.js +33 -0
- package/dist/esm/locales/vi/parsers/VIWeekdayParser.js.map +1 -0
- package/dist/esm/locales/vi/parsers/VIYearParser.d.ts +7 -0
- package/dist/esm/locales/vi/parsers/VIYearParser.js +26 -0
- package/dist/esm/locales/vi/parsers/VIYearParser.js.map +1 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateRangeRefiner.d.ts +4 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateRangeRefiner.js +7 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateRangeRefiner.js.map +1 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateTimeRefiner.d.ts +4 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateTimeRefiner.js +7 -0
- package/dist/esm/locales/vi/refiners/VIMergeDateTimeRefiner.js.map +1 -0
- package/dist/esm/locales/vi/refiners/VIMergeWeekdayComponentRefiner.d.ts +3 -0
- package/dist/esm/locales/vi/refiners/VIMergeWeekdayComponentRefiner.js +4 -0
- package/dist/esm/locales/vi/refiners/VIMergeWeekdayComponentRefiner.js.map +1 -0
- package/dist/esm/locales/zh/hans/parsers/ZHHansTimeExpressionParser.d.ts +1 -0
- package/dist/esm/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js +10 -4
- package/dist/esm/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js.map +1 -1
- package/dist/esm/locales/zh/hant/parsers/ZHHantTimeExpressionParser.d.ts +1 -0
- package/dist/esm/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js +8 -2
- package/dist/esm/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js.map +1 -1
- package/dist/esm/results.d.ts +0 -2
- package/dist/esm/results.js +1 -7
- package/dist/esm/results.js.map +1 -1
- package/package.json +3 -5
- package/src/calculation/mergingCalculation.ts +7 -1
- package/src/common/casualReferences.ts +4 -10
- package/src/common/refiners/ForwardDateRefiner.ts +8 -14
- package/src/index.ts +3 -1
- package/src/locales/de/parsers/DETimeUnitRelativeFormatParser.ts +1 -1
- package/src/locales/en/constants.ts +1 -1
- package/src/locales/en/parsers/ENWeekdayParser.ts +1 -1
- package/src/locales/es/parsers/ESCasualTimeParser.ts +5 -0
- package/src/locales/fi/constants.ts +209 -0
- package/src/locales/fi/index.ts +57 -0
- package/src/locales/fi/parsers/FICasualDateParser.ts +82 -0
- package/src/locales/fi/parsers/FICasualTimeParser.ts +78 -0
- package/src/locales/fi/parsers/FIMonthNameLittleEndianParser.ts +57 -0
- package/src/locales/fi/parsers/FITimeExpressionParser.ts +22 -0
- package/src/locales/fi/parsers/FITimeUnitAgoFormatParser.ts +18 -0
- package/src/locales/fi/parsers/FITimeUnitCasualRelativeFormatParser.ts +47 -0
- package/src/locales/fi/parsers/FITimeUnitWithinFormatParser.ts +15 -0
- package/src/locales/fi/parsers/FIWeekdayParser.ts +46 -0
- package/src/locales/fi/refiners/FIMergeDateRangeRefiner.ts +7 -0
- package/src/locales/fi/refiners/FIMergeDateTimeRefiner.ts +7 -0
- package/src/locales/it/parsers/ITTimeExpressionParser.ts +1 -1
- package/src/locales/nl/parsers/NLCasualTimeParser.ts +5 -0
- package/src/locales/pt/parsers/PTCasualTimeParser.ts +5 -0
- package/src/locales/vi/constants.ts +113 -0
- package/src/locales/vi/index.ts +73 -0
- package/src/locales/vi/parsers/VICasualDateParser.ts +31 -0
- package/src/locales/vi/parsers/VICasualTimeParser.ts +62 -0
- package/src/locales/vi/parsers/VIMonthYearParser.ts +35 -0
- package/src/locales/vi/parsers/VIStandardParser.ts +45 -0
- package/src/locales/vi/parsers/VITimeExpressionParser.ts +66 -0
- package/src/locales/vi/parsers/VITimeUnitAgoFormatParser.ts +23 -0
- package/src/locales/vi/parsers/VITimeUnitCasualRelativeFormatParser.ts +46 -0
- package/src/locales/vi/parsers/VITimeUnitLaterFormatParser.ts +25 -0
- package/src/locales/vi/parsers/VITimeUnitWithinFormatParser.ts +22 -0
- package/src/locales/vi/parsers/VIWeekdayParser.ts +41 -0
- package/src/locales/vi/parsers/VIYearParser.ts +31 -0
- package/src/locales/vi/refiners/VIMergeDateRangeRefiner.ts +7 -0
- package/src/locales/vi/refiners/VIMergeDateTimeRefiner.ts +7 -0
- package/src/locales/vi/refiners/VIMergeWeekdayComponentRefiner.ts +7 -0
- package/src/locales/zh/hans/parsers/ZHHansTimeExpressionParser.ts +15 -4
- package/src/locales/zh/hant/parsers/ZHHantTimeExpressionParser.ts +14 -2
- package/src/results.ts +1 -10
- package/test/de/de_time_units_casual_relative.test.ts +12 -0
- package/test/en/en_month_name_little_endian.test.ts +30 -0
- package/test/en/en_time_units_casual_relative.test.ts +11 -0
- package/test/en/en_weekday.test.ts +123 -0
- package/test/fi/fi_casual.test.ts +85 -0
- package/test/fi/fi_casual_time.test.ts +56 -0
- package/test/fi/fi_month_name_little_endian.test.ts +50 -0
- package/test/fi/fi_time_exp.test.ts +39 -0
- package/test/fi/fi_time_units_ago.test.ts +93 -0
- package/test/fi/fi_time_units_casual_relative.test.ts +117 -0
- package/test/fi/fi_time_units_within.test.ts +74 -0
- package/test/fi/fi_weekday.test.ts +90 -0
- package/test/it/it_month_name_middle_endian.test.ts +39 -0
- package/test/it/it_time_exp.test.ts +84 -0
- package/test/it/it_year_month_day.test.ts +41 -0
- package/test/result.test.ts +8 -0
- package/test/system.test.ts +4 -3
- package/test/system_timezone.test.ts +99 -0
- package/test/vi/vi_casual.test.ts +84 -0
- package/test/vi/vi_casual_time.test.ts +77 -0
- package/test/vi/vi_date_range.test.ts +61 -0
- package/test/vi/vi_forward_date.test.ts +45 -0
- package/test/vi/vi_month_year.test.ts +40 -0
- package/test/vi/vi_negative_cases.test.ts +60 -0
- package/test/vi/vi_slash.test.ts +36 -0
- package/test/vi/vi_standard.test.ts +86 -0
- package/test/vi/vi_strict.test.ts +67 -0
- package/test/vi/vi_time_exp.test.ts +99 -0
- package/test/vi/vi_time_units_ago.test.ts +56 -0
- package/test/vi/vi_time_units_casual_relative.test.ts +56 -0
- package/test/vi/vi_time_units_later.test.ts +43 -0
- package/test/vi/vi_time_units_within.test.ts +24 -0
- package/test/vi/vi_weekday.test.ts +77 -0
- package/test/vi/vi_year.test.ts +42 -0
- package/test/zh/hans/zh_hans_time_exp.test.ts +252 -6
- package/test/zh/hant/zh_hant_time_exp.test.ts +30 -0
|
@@ -342,6 +342,111 @@ test("Test - Weekday range", () => {
|
|
|
342
342
|
});
|
|
343
343
|
});
|
|
344
344
|
|
|
345
|
+
test("Test - Weekday 'of next/last/this week' connector", function () {
|
|
346
|
+
// Ref date is a Tuesday — the same weekday as most test targets below.
|
|
347
|
+
// Before the fix, 'Tuesday of next week' silently dropped the modifier and
|
|
348
|
+
// resolved to today (0 days forward) instead of +7 days.
|
|
349
|
+
const refDate = new Date("Tue Aug 2 2022");
|
|
350
|
+
|
|
351
|
+
// --- of next week ---
|
|
352
|
+
|
|
353
|
+
testSingleCase(chrono.casual, "Tuesday of next week", refDate, (result) => {
|
|
354
|
+
expect(result.text).toBe("Tuesday of next week");
|
|
355
|
+
expect(result.start.get("year")).toBe(2022);
|
|
356
|
+
expect(result.start.get("month")).toBe(8);
|
|
357
|
+
expect(result.start.get("day")).toBe(9); // Aug 9 — NOT today (Aug 2)
|
|
358
|
+
expect(result.start.get("weekday")).toBe(2);
|
|
359
|
+
expect(result.start).toBeDate(new Date(2022, 7, 9, 12));
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
testSingleCase(chrono.casual, "Friday of next week", refDate, (result) => {
|
|
363
|
+
expect(result.text).toBe("Friday of next week");
|
|
364
|
+
expect(result.start.get("year")).toBe(2022);
|
|
365
|
+
expect(result.start.get("month")).toBe(8);
|
|
366
|
+
expect(result.start.get("day")).toBe(12); // Aug 12
|
|
367
|
+
expect(result.start.get("weekday")).toBe(5);
|
|
368
|
+
expect(result.start).toBeDate(new Date(2022, 7, 12, 12));
|
|
369
|
+
});
|
|
370
|
+
|
|
371
|
+
testSingleCase(chrono.casual, "Monday of next week", refDate, (result) => {
|
|
372
|
+
expect(result.text).toBe("Monday of next week");
|
|
373
|
+
expect(result.start.get("year")).toBe(2022);
|
|
374
|
+
expect(result.start.get("month")).toBe(8);
|
|
375
|
+
expect(result.start.get("day")).toBe(8); // Aug 8
|
|
376
|
+
expect(result.start.get("weekday")).toBe(1);
|
|
377
|
+
expect(result.start).toBeDate(new Date(2022, 7, 8, 12));
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
// --- of last week ---
|
|
381
|
+
|
|
382
|
+
testSingleCase(chrono.casual, "Tuesday of last week", refDate, (result) => {
|
|
383
|
+
expect(result.text).toBe("Tuesday of last week");
|
|
384
|
+
expect(result.start.get("year")).toBe(2022);
|
|
385
|
+
expect(result.start.get("month")).toBe(7);
|
|
386
|
+
expect(result.start.get("day")).toBe(26); // Jul 26
|
|
387
|
+
expect(result.start.get("weekday")).toBe(2);
|
|
388
|
+
expect(result.start).toBeDate(new Date(2022, 6, 26, 12));
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
testSingleCase(chrono.casual, "Friday of last week", refDate, (result) => {
|
|
392
|
+
expect(result.text).toBe("Friday of last week");
|
|
393
|
+
expect(result.start.get("year")).toBe(2022);
|
|
394
|
+
expect(result.start.get("month")).toBe(7);
|
|
395
|
+
expect(result.start.get("day")).toBe(29); // Jul 29
|
|
396
|
+
expect(result.start.get("weekday")).toBe(5);
|
|
397
|
+
expect(result.start).toBeDate(new Date(2022, 6, 29, 12));
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// --- of this week ---
|
|
401
|
+
|
|
402
|
+
testSingleCase(chrono.casual, "Wednesday of this week", refDate, (result) => {
|
|
403
|
+
expect(result.text).toBe("Wednesday of this week");
|
|
404
|
+
expect(result.start.get("year")).toBe(2022);
|
|
405
|
+
expect(result.start.get("month")).toBe(8);
|
|
406
|
+
expect(result.start.get("day")).toBe(3); // Aug 3
|
|
407
|
+
expect(result.start.get("weekday")).toBe(3);
|
|
408
|
+
expect(result.start).toBeDate(new Date(2022, 7, 3, 12));
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
testSingleCase(chrono.casual, "Tuesday of this week", refDate, (result) => {
|
|
412
|
+
expect(result.text).toBe("Tuesday of this week");
|
|
413
|
+
expect(result.start.get("year")).toBe(2022);
|
|
414
|
+
expect(result.start.get("month")).toBe(8);
|
|
415
|
+
expect(result.start.get("day")).toBe(2); // Aug 2 — same day as ref
|
|
416
|
+
expect(result.start.get("weekday")).toBe(2);
|
|
417
|
+
expect(result.start).toBeDate(new Date(2022, 7, 2, 12));
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
// --- with time: merges into a single result (the original bug produced two) ---
|
|
421
|
+
|
|
422
|
+
testSingleCase(chrono.casual, "Tuesday of next week after 2pm", refDate, (result) => {
|
|
423
|
+
expect(result.text).toBe("Tuesday of next week after 2pm");
|
|
424
|
+
expect(result.start.get("year")).toBe(2022);
|
|
425
|
+
expect(result.start.get("month")).toBe(8);
|
|
426
|
+
expect(result.start.get("day")).toBe(9); // Aug 9
|
|
427
|
+
expect(result.start.get("hour")).toBe(14);
|
|
428
|
+
expect(result.start).toBeDate(new Date(2022, 7, 9, 14));
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
testSingleCase(chrono.casual, "Friday of next week at 9am", refDate, (result) => {
|
|
432
|
+
expect(result.text).toBe("Friday of next week at 9am");
|
|
433
|
+
expect(result.start.get("year")).toBe(2022);
|
|
434
|
+
expect(result.start.get("month")).toBe(8);
|
|
435
|
+
expect(result.start.get("day")).toBe(12); // Aug 12
|
|
436
|
+
expect(result.start.get("hour")).toBe(9);
|
|
437
|
+
expect(result.start).toBeDate(new Date(2022, 7, 12, 9));
|
|
438
|
+
});
|
|
439
|
+
|
|
440
|
+
// --- in sentence context ---
|
|
441
|
+
|
|
442
|
+
testSingleCase(chrono.casual, "Let's sync on Tuesday of next week", refDate, (result) => {
|
|
443
|
+
expect(result.text).toBe("on Tuesday of next week");
|
|
444
|
+
expect(result.start.get("day")).toBe(9);
|
|
445
|
+
expect(result.start.get("month")).toBe(8);
|
|
446
|
+
expect(result.start.get("year")).toBe(2022);
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
|
|
345
450
|
test("Test - forward dates only option", () => {
|
|
346
451
|
testSingleCase(
|
|
347
452
|
chrono.casual,
|
|
@@ -447,4 +552,22 @@ test("Test - forward dates only option", () => {
|
|
|
447
552
|
expect(result.end.get("day")).toBe(21);
|
|
448
553
|
}
|
|
449
554
|
);
|
|
555
|
+
|
|
556
|
+
testSingleCase(
|
|
557
|
+
chrono.casual,
|
|
558
|
+
"timeoff monday 7 to 9am",
|
|
559
|
+
new Date("thursday 13 June 2019"),
|
|
560
|
+
{ forwardDate: true },
|
|
561
|
+
(result) => {
|
|
562
|
+
expect(result.text).toBe("monday 7 to 9am");
|
|
563
|
+
|
|
564
|
+
expect(result.start.get("year")).toBe(2019);
|
|
565
|
+
expect(result.start.get("month")).toBe(6);
|
|
566
|
+
expect(result.start.get("day")).toBe(17);
|
|
567
|
+
|
|
568
|
+
expect(result.end.get("year")).toBe(2019);
|
|
569
|
+
expect(result.end.get("month")).toBe(6);
|
|
570
|
+
expect(result.end.get("day")).toBe(17);
|
|
571
|
+
}
|
|
572
|
+
);
|
|
450
573
|
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as chrono from "../../src/locales/fi";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Single Expression", function () {
|
|
5
|
+
testSingleCase(chrono, "tänään", new Date(2012, 7, 10), (result) => {
|
|
6
|
+
expect(result.start.get("year")).toBe(2012);
|
|
7
|
+
expect(result.start.get("month")).toBe(8);
|
|
8
|
+
expect(result.start.get("day")).toBe(10);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono, "huomenna", new Date(2012, 7, 10), (result) => {
|
|
12
|
+
expect(result.start.get("year")).toBe(2012);
|
|
13
|
+
expect(result.start.get("month")).toBe(8);
|
|
14
|
+
expect(result.start.get("day")).toBe(11);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono, "eilen", new Date(2012, 7, 10), (result) => {
|
|
18
|
+
expect(result.start.get("year")).toBe(2012);
|
|
19
|
+
expect(result.start.get("month")).toBe(8);
|
|
20
|
+
expect(result.start.get("day")).toBe(9);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono, "ylihuomenna", new Date(2012, 7, 10), (result) => {
|
|
24
|
+
expect(result.start.get("year")).toBe(2012);
|
|
25
|
+
expect(result.start.get("month")).toBe(8);
|
|
26
|
+
expect(result.start.get("day")).toBe(12);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
testSingleCase(chrono, "toissapäivänä", new Date(2012, 7, 10), (result) => {
|
|
30
|
+
expect(result.start.get("year")).toBe(2012);
|
|
31
|
+
expect(result.start.get("month")).toBe(8);
|
|
32
|
+
expect(result.start.get("day")).toBe(8);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test("Test - Combined Expression", function () {
|
|
37
|
+
testSingleCase(chrono, "tänään aamulla", new Date(2012, 7, 10), (result) => {
|
|
38
|
+
expect(result.start.get("year")).toBe(2012);
|
|
39
|
+
expect(result.start.get("month")).toBe(8);
|
|
40
|
+
expect(result.start.get("day")).toBe(10);
|
|
41
|
+
expect(result.start.get("hour")).toBe(6);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
testSingleCase(chrono, "tänään aamupäivällä", new Date(2012, 7, 10), (result) => {
|
|
45
|
+
expect(result.start.get("year")).toBe(2012);
|
|
46
|
+
expect(result.start.get("month")).toBe(8);
|
|
47
|
+
expect(result.start.get("day")).toBe(10);
|
|
48
|
+
expect(result.start.get("hour")).toBe(9);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
testSingleCase(chrono, "tänään päivällä", new Date(2012, 7, 10), (result) => {
|
|
52
|
+
expect(result.start.get("year")).toBe(2012);
|
|
53
|
+
expect(result.start.get("month")).toBe(8);
|
|
54
|
+
expect(result.start.get("day")).toBe(10);
|
|
55
|
+
expect(result.start.get("hour")).toBe(12);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
testSingleCase(chrono, "tänään iltapäivällä", new Date(2012, 7, 10), (result) => {
|
|
59
|
+
expect(result.start.get("year")).toBe(2012);
|
|
60
|
+
expect(result.start.get("month")).toBe(8);
|
|
61
|
+
expect(result.start.get("day")).toBe(10);
|
|
62
|
+
expect(result.start.get("hour")).toBe(15);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
testSingleCase(chrono, "tänään illalla", new Date(2012, 7, 10), (result) => {
|
|
66
|
+
expect(result.start.get("year")).toBe(2012);
|
|
67
|
+
expect(result.start.get("month")).toBe(8);
|
|
68
|
+
expect(result.start.get("day")).toBe(10);
|
|
69
|
+
expect(result.start.get("hour")).toBe(18);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
testSingleCase(chrono, "tänään yöllä", new Date(2012, 7, 10), (result) => {
|
|
73
|
+
expect(result.start.get("year")).toBe(2012);
|
|
74
|
+
expect(result.start.get("month")).toBe(8);
|
|
75
|
+
expect(result.start.get("day")).toBe(10);
|
|
76
|
+
expect(result.start.get("hour")).toBe(22);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
testSingleCase(chrono, "tänään keskiyöllä", new Date(2012, 7, 10), (result) => {
|
|
80
|
+
expect(result.start.get("year")).toBe(2012);
|
|
81
|
+
expect(result.start.get("month")).toBe(8);
|
|
82
|
+
expect(result.start.get("day")).toBe(10);
|
|
83
|
+
expect(result.start.get("hour")).toBe(0);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as chrono from "../../src/locales/fi";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Standalone casual time expressions", function () {
|
|
5
|
+
testSingleCase(chrono, "aamulla", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
6
|
+
expect(result.text).toBe("aamulla");
|
|
7
|
+
expect(result.start.get("hour")).toBe(6);
|
|
8
|
+
expect(result.start.get("minute")).toBe(0);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono, "aamupäivällä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
12
|
+
expect(result.text).toBe("aamupäivällä");
|
|
13
|
+
expect(result.start.get("hour")).toBe(9);
|
|
14
|
+
expect(result.start.get("minute")).toBe(0);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono, "päivällä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
18
|
+
expect(result.text).toBe("päivällä");
|
|
19
|
+
expect(result.start.get("hour")).toBe(12);
|
|
20
|
+
expect(result.start.get("minute")).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono, "iltapäivällä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
24
|
+
expect(result.text).toBe("iltapäivällä");
|
|
25
|
+
expect(result.start.get("hour")).toBe(15);
|
|
26
|
+
expect(result.start.get("minute")).toBe(0);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
testSingleCase(chrono, "illalla", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
30
|
+
expect(result.text).toBe("illalla");
|
|
31
|
+
expect(result.start.get("hour")).toBe(18);
|
|
32
|
+
expect(result.start.get("minute")).toBe(0);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
testSingleCase(chrono, "yöllä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
36
|
+
expect(result.text).toBe("yöllä");
|
|
37
|
+
expect(result.start.get("hour")).toBe(22);
|
|
38
|
+
expect(result.start.get("minute")).toBe(0);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
testSingleCase(chrono, "keskiyöllä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
42
|
+
expect(result.text).toBe("keskiyöllä");
|
|
43
|
+
expect(result.start.get("hour")).toBe(0);
|
|
44
|
+
expect(result.start.get("minute")).toBe(0);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test("Test - 'viime yönä' (last night)", function () {
|
|
49
|
+
testSingleCase(chrono, "viime yönä", new Date(2012, 7, 10, 14, 0), (result) => {
|
|
50
|
+
expect(result.text).toBe("viime yönä");
|
|
51
|
+
expect(result.start.get("year")).toBe(2012);
|
|
52
|
+
expect(result.start.get("month")).toBe(8);
|
|
53
|
+
expect(result.start.get("day")).toBe(9);
|
|
54
|
+
expect(result.start.get("hour")).toBe(0);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as chrono from "../../src/locales/fi";
|
|
2
|
+
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Single expression", function () {
|
|
5
|
+
testSingleCase(chrono, "15. elokuuta", new Date(2012, 7, 10), (result) => {
|
|
6
|
+
expect(result.start.get("year")).toBe(2012);
|
|
7
|
+
expect(result.start.get("month")).toBe(8);
|
|
8
|
+
expect(result.start.get("day")).toBe(15);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono, "15 elokuuta 2012", new Date(2012, 7, 10), (result) => {
|
|
12
|
+
expect(result.start.get("year")).toBe(2012);
|
|
13
|
+
expect(result.start.get("month")).toBe(8);
|
|
14
|
+
expect(result.start.get("day")).toBe(15);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono, "15. elo 2012", new Date(2012, 7, 10), (result) => {
|
|
18
|
+
expect(result.start.get("year")).toBe(2012);
|
|
19
|
+
expect(result.start.get("month")).toBe(8);
|
|
20
|
+
expect(result.start.get("day")).toBe(15);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono, "3 tammikuuta", new Date(2012, 7, 10), (result) => {
|
|
24
|
+
expect(result.start.get("year")).toBe(2013);
|
|
25
|
+
expect(result.start.get("month")).toBe(1);
|
|
26
|
+
expect(result.start.get("day")).toBe(3);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
testSingleCase(chrono, "1 joulukuuta 2023", new Date(2023, 10, 1), (result) => {
|
|
30
|
+
expect(result.start.get("year")).toBe(2023);
|
|
31
|
+
expect(result.start.get("month")).toBe(12);
|
|
32
|
+
expect(result.start.get("day")).toBe(1);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test("Test - Range expression", function () {
|
|
37
|
+
testSingleCase(chrono, "15-16 elokuuta", new Date(2012, 7, 10), (result) => {
|
|
38
|
+
expect(result.start.get("year")).toBe(2012);
|
|
39
|
+
expect(result.start.get("month")).toBe(8);
|
|
40
|
+
expect(result.start.get("day")).toBe(15);
|
|
41
|
+
|
|
42
|
+
expect(result.end.get("year")).toBe(2012);
|
|
43
|
+
expect(result.end.get("month")).toBe(8);
|
|
44
|
+
expect(result.end.get("day")).toBe(16);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test("Test - Impossible Dates", function () {
|
|
49
|
+
testUnexpectedResult(chrono, "32 elokuuta", new Date(2012, 7, 10));
|
|
50
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as chrono from "../../src/locales/fi";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Time expression", function () {
|
|
5
|
+
testSingleCase(chrono, "klo 15:00", new Date(2012, 7, 10), (result) => {
|
|
6
|
+
expect(result.start.get("hour")).toBe(15);
|
|
7
|
+
expect(result.start.get("minute")).toBe(0);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
testSingleCase(chrono, "kello 8:30", new Date(2012, 7, 10), (result) => {
|
|
11
|
+
expect(result.start.get("hour")).toBe(8);
|
|
12
|
+
expect(result.start.get("minute")).toBe(30);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
testSingleCase(chrono, "klo 13.00", new Date(2012, 7, 10), (result) => {
|
|
16
|
+
expect(result.start.get("hour")).toBe(13);
|
|
17
|
+
expect(result.start.get("minute")).toBe(0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("Test - Time range expression", function () {
|
|
22
|
+
testSingleCase(chrono, "klo 10:00-12:00", new Date(2012, 7, 10), (result) => {
|
|
23
|
+
expect(result.start.get("hour")).toBe(10);
|
|
24
|
+
expect(result.start.get("minute")).toBe(0);
|
|
25
|
+
|
|
26
|
+
expect(result.end.get("hour")).toBe(12);
|
|
27
|
+
expect(result.end.get("minute")).toBe(0);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test("Test - Date and time expression", function () {
|
|
32
|
+
testSingleCase(chrono, "15 elokuuta 2012 klo 14:00", new Date(2012, 7, 10), (result) => {
|
|
33
|
+
expect(result.start.get("year")).toBe(2012);
|
|
34
|
+
expect(result.start.get("month")).toBe(8);
|
|
35
|
+
expect(result.start.get("day")).toBe(15);
|
|
36
|
+
expect(result.start.get("hour")).toBe(14);
|
|
37
|
+
expect(result.start.get("minute")).toBe(0);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Single Expression", function () {
|
|
5
|
+
testSingleCase(chrono.fi, "5 päivää sitten tehtiin jotain", new Date(2012, 8 - 1, 10), (result) => {
|
|
6
|
+
expect(result.start).not.toBeNull();
|
|
7
|
+
expect(result.start.get("year")).toBe(2012);
|
|
8
|
+
expect(result.start.get("month")).toBe(8);
|
|
9
|
+
expect(result.start.get("day")).toBe(5);
|
|
10
|
+
|
|
11
|
+
expect(result.index).toBe(0);
|
|
12
|
+
expect(result.text).toBe("5 päivää sitten");
|
|
13
|
+
|
|
14
|
+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 5));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono.fi, "10 päivää sitten tehtiin jotain", new Date(2012, 7, 10, 13, 30), (result) => {
|
|
18
|
+
expect(result.start).not.toBeNull();
|
|
19
|
+
expect(result.start.get("year")).toBe(2012);
|
|
20
|
+
expect(result.start.get("month")).toBe(7);
|
|
21
|
+
expect(result.start.get("day")).toBe(31);
|
|
22
|
+
|
|
23
|
+
expect(result.index).toBe(0);
|
|
24
|
+
expect(result.text).toBe("10 päivää sitten");
|
|
25
|
+
|
|
26
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 31, 13, 30));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
testSingleCase(chrono.fi, "15 minuuttia sitten", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
30
|
+
expect(result.index).toBe(0);
|
|
31
|
+
expect(result.text).toBe("15 minuuttia sitten");
|
|
32
|
+
expect(result.start.get("hour")).toBe(11);
|
|
33
|
+
expect(result.start.get("minute")).toBe(59);
|
|
34
|
+
|
|
35
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 11, 59));
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
testSingleCase(chrono.fi, " 12 tuntia sitten", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
39
|
+
expect(result.index).toBe(3);
|
|
40
|
+
expect(result.text).toBe("12 tuntia sitten");
|
|
41
|
+
expect(result.start.get("hour")).toBe(0);
|
|
42
|
+
expect(result.start.get("minute")).toBe(14);
|
|
43
|
+
|
|
44
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
testSingleCase(chrono.fi, "12 tuntia sitten tapahtui jotain", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
48
|
+
expect(result.index).toBe(0);
|
|
49
|
+
expect(result.text).toBe("12 tuntia sitten");
|
|
50
|
+
expect(result.start.get("hour")).toBe(0);
|
|
51
|
+
expect(result.start.get("minute")).toBe(14);
|
|
52
|
+
|
|
53
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 14));
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test("Test - Single Expression (Casual)", function () {
|
|
58
|
+
testSingleCase(chrono.fi, "5 kuukautta sitten tehtiin jotain", new Date(2012, 10 - 1, 10), (result) => {
|
|
59
|
+
expect(result.start).not.toBeNull();
|
|
60
|
+
expect(result.start.get("year")).toBe(2012);
|
|
61
|
+
expect(result.start.get("month")).toBe(5);
|
|
62
|
+
expect(result.start.get("day")).toBe(10);
|
|
63
|
+
|
|
64
|
+
expect(result.index).toBe(0);
|
|
65
|
+
expect(result.text).toBe("5 kuukautta sitten");
|
|
66
|
+
|
|
67
|
+
expect(result.start).toBeDate(new Date(2012, 5 - 1, 10));
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
testSingleCase(chrono.fi, "5 vuotta sitten tehtiin jotain", new Date(2012, 8 - 1, 10, 22, 22), (result) => {
|
|
71
|
+
expect(result.start).not.toBeNull();
|
|
72
|
+
expect(result.start.get("year")).toBe(2007);
|
|
73
|
+
expect(result.start.get("month")).toBe(8);
|
|
74
|
+
expect(result.start.get("day")).toBe(10);
|
|
75
|
+
|
|
76
|
+
expect(result.index).toBe(0);
|
|
77
|
+
expect(result.text).toBe("5 vuotta sitten");
|
|
78
|
+
|
|
79
|
+
expect(result.start).toBeDate(new Date(2007, 8 - 1, 10, 22, 22));
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
testSingleCase(chrono.fi, "yksi viikkoa sitten tehtiin jotain", new Date(2012, 8 - 1, 3, 8, 34), (result) => {
|
|
83
|
+
expect(result.start).not.toBeNull();
|
|
84
|
+
expect(result.start.get("year")).toBe(2012);
|
|
85
|
+
expect(result.start.get("month")).toBe(7);
|
|
86
|
+
expect(result.start.get("day")).toBe(27);
|
|
87
|
+
|
|
88
|
+
expect(result.index).toBe(0);
|
|
89
|
+
expect(result.text).toBe("yksi viikkoa sitten");
|
|
90
|
+
|
|
91
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 27, 8, 34));
|
|
92
|
+
});
|
|
93
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Positive time units", () => {
|
|
5
|
+
testSingleCase(chrono.fi, "seuraavat 2 viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
6
|
+
expect(result.text).toBe(text);
|
|
7
|
+
expect(result.start.get("year")).toBe(2016);
|
|
8
|
+
expect(result.start.get("month")).toBe(10);
|
|
9
|
+
expect(result.start.get("day")).toBe(15);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
testSingleCase(chrono.fi, "seuraavat 2 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
13
|
+
expect(result.text).toBe(text);
|
|
14
|
+
expect(result.start.get("year")).toBe(2016);
|
|
15
|
+
expect(result.start.get("month")).toBe(10);
|
|
16
|
+
expect(result.start.get("day")).toBe(3);
|
|
17
|
+
expect(result.start.get("hour")).toBe(12);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
testSingleCase(chrono.fi, "seuraavat kaksi vuotta", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
21
|
+
expect(result.text).toBe(text);
|
|
22
|
+
expect(result.start.get("year")).toBe(2018);
|
|
23
|
+
expect(result.start.get("month")).toBe(10);
|
|
24
|
+
expect(result.start.get("day")).toBe(1);
|
|
25
|
+
expect(result.start.get("hour")).toBe(12);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
testSingleCase(chrono.fi, "seuraavat 2 viikkoa 3 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
29
|
+
expect(result.text).toBe(text);
|
|
30
|
+
expect(result.start.get("year")).toBe(2016);
|
|
31
|
+
expect(result.start.get("month")).toBe(10);
|
|
32
|
+
expect(result.start.get("day")).toBe(18);
|
|
33
|
+
expect(result.start.get("hour")).toBe(12);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
testSingleCase(chrono.fi, "seuraava yksi vuotta", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
37
|
+
expect(result.text).toBe(text);
|
|
38
|
+
expect(result.start.get("year")).toBe(2017);
|
|
39
|
+
expect(result.start.get("month")).toBe(10);
|
|
40
|
+
expect(result.start.get("day")).toBe(1);
|
|
41
|
+
expect(result.start.get("hour")).toBe(12);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("Test - Negative time units", () => {
|
|
46
|
+
testSingleCase(chrono.fi, "edelliset 2 viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
47
|
+
expect(result.text).toBe(text);
|
|
48
|
+
expect(result.start.get("year")).toBe(2016);
|
|
49
|
+
expect(result.start.get("month")).toBe(9);
|
|
50
|
+
expect(result.start.get("day")).toBe(17);
|
|
51
|
+
expect(result.start.get("hour")).toBe(12);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
testSingleCase(chrono.fi, "viimeiset 2 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
55
|
+
expect(result.text).toBe(text);
|
|
56
|
+
expect(result.start.get("year")).toBe(2016);
|
|
57
|
+
expect(result.start.get("month")).toBe(9);
|
|
58
|
+
expect(result.start.get("day")).toBe(29);
|
|
59
|
+
expect(result.start.get("hour")).toBe(12);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
testSingleCase(chrono.fi, "kuluneet kaksi viikkoa", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
63
|
+
expect(result.text).toBe(text);
|
|
64
|
+
expect(result.start.get("year")).toBe(2016);
|
|
65
|
+
expect(result.start.get("month")).toBe(9);
|
|
66
|
+
expect(result.start.get("day")).toBe(17);
|
|
67
|
+
expect(result.start.get("hour")).toBe(12);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
testSingleCase(chrono.fi, "+2 kuukautta 5 päivää", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
71
|
+
expect(result.text).toBe(text);
|
|
72
|
+
expect(result.start.get("year")).toBe(2016);
|
|
73
|
+
expect(result.start.get("month")).toBe(12);
|
|
74
|
+
expect(result.start.get("day")).toBe(6);
|
|
75
|
+
expect(result.start.get("hour")).toBe(12);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
test("Test - Plus '+' sign", () => {
|
|
80
|
+
testSingleCase(chrono.fi.casual, "+15 minuuttia", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
81
|
+
expect(result.text).toBe(text);
|
|
82
|
+
expect(result.start.get("hour")).toBe(12);
|
|
83
|
+
expect(result.start.get("minute")).toBe(29);
|
|
84
|
+
|
|
85
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
testSingleCase(chrono.fi.casual, "+15min", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
89
|
+
expect(result.text).toBe(text);
|
|
90
|
+
expect(result.start.get("hour")).toBe(12);
|
|
91
|
+
expect(result.start.get("minute")).toBe(29);
|
|
92
|
+
|
|
93
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
testSingleCase(chrono.fi.casual, "+1 päivä 2 tuntia", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
97
|
+
expect(result.text).toBe(text);
|
|
98
|
+
expect(result.start.get("day")).toBe(11);
|
|
99
|
+
expect(result.start.get("hour")).toBe(14);
|
|
100
|
+
expect(result.start.get("minute")).toBe(14);
|
|
101
|
+
|
|
102
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 11, 14, 14));
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test("Test - Minus '-' sign", () => {
|
|
107
|
+
testSingleCase(chrono.fi.casual, "-3vuotta", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
|
|
108
|
+
expect(result.text).toBe(text);
|
|
109
|
+
expect(result.start.get("year")).toBe(2012);
|
|
110
|
+
expect(result.start.get("month")).toBe(7);
|
|
111
|
+
expect(result.start.get("day")).toBe(10);
|
|
112
|
+
expect(result.start.get("hour")).toBe(12);
|
|
113
|
+
expect(result.start.get("minute")).toBe(14);
|
|
114
|
+
|
|
115
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 14));
|
|
116
|
+
});
|
|
117
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - 'sisällä' (within) expression", () => {
|
|
5
|
+
testSingleCase(chrono.fi, "pitää tehdä jotain 5 päivää sisällä", new Date(2012, 7, 10), (result) => {
|
|
6
|
+
expect(result.text).toBe("5 päivää sisällä");
|
|
7
|
+
|
|
8
|
+
expect(result.start).not.toBeNull();
|
|
9
|
+
expect(result.start.get("year")).toBe(2012);
|
|
10
|
+
expect(result.start.get("month")).toBe(8);
|
|
11
|
+
expect(result.start.get("day")).toBe(15);
|
|
12
|
+
|
|
13
|
+
expect(result.start).toBeDate(new Date(2012, 8 - 1, 15));
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
testSingleCase(chrono.fi, "5 minuuttia sisällä", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
17
|
+
expect(result.index).toBe(0);
|
|
18
|
+
expect(result.text).toBe("5 minuuttia sisällä");
|
|
19
|
+
|
|
20
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono.fi, "1 tuntia sisällä", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
24
|
+
expect(result.index).toBe(0);
|
|
25
|
+
expect(result.text).toBe("1 tuntia sisällä");
|
|
26
|
+
|
|
27
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 14));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
testSingleCase(chrono.fi, "2 viikkoa sisällä", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
31
|
+
expect(result.text).toBe("2 viikkoa sisällä");
|
|
32
|
+
|
|
33
|
+
expect(result.start).toBeDate(new Date(2012, 7, 24, 12, 14));
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test("Test - 'kuluessa' (within/during) expression", () => {
|
|
38
|
+
testSingleCase(chrono.fi, "5 päivää kuluessa", new Date(2012, 7, 10), (result) => {
|
|
39
|
+
expect(result.text).toBe("5 päivää kuluessa");
|
|
40
|
+
|
|
41
|
+
expect(result.start.get("year")).toBe(2012);
|
|
42
|
+
expect(result.start.get("month")).toBe(8);
|
|
43
|
+
expect(result.start.get("day")).toBe(15);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
testSingleCase(chrono.fi, "yksi vuotta kuluessa", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
47
|
+
expect(result.text).toBe("yksi vuotta kuluessa");
|
|
48
|
+
|
|
49
|
+
expect(result.start).toBeDate(new Date(2013, 7, 10, 12, 14));
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("Test - 'päästä' (from now) expression", () => {
|
|
54
|
+
testSingleCase(chrono.fi, "5 minuuttia päästä", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
55
|
+
expect(result.text).toBe("5 minuuttia päästä");
|
|
56
|
+
|
|
57
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19));
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
testSingleCase(chrono.fi, "3 päivää päästä", new Date(2012, 7, 10, 12, 14), (result) => {
|
|
61
|
+
expect(result.text).toBe("3 päivää päästä");
|
|
62
|
+
|
|
63
|
+
expect(result.start.get("year")).toBe(2012);
|
|
64
|
+
expect(result.start.get("month")).toBe(8);
|
|
65
|
+
expect(result.start.get("day")).toBe(13);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
testSingleCase(chrono.fi, "2 viikkoa päästä", new Date(2016, 10 - 1, 1), (result) => {
|
|
69
|
+
expect(result.text).toBe("2 viikkoa päästä");
|
|
70
|
+
expect(result.start.get("year")).toBe(2016);
|
|
71
|
+
expect(result.start.get("month")).toBe(10);
|
|
72
|
+
expect(result.start.get("day")).toBe(15);
|
|
73
|
+
});
|
|
74
|
+
});
|