chrono-node 2.3.7 → 2.4.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/calculation/mergingCalculation.js +1 -0
- package/dist/calculation/mergingCalculation.js.map +1 -0
- package/dist/calculation/weeks.js +1 -0
- package/dist/calculation/weeks.js.map +1 -0
- package/dist/calculation/years.js +1 -0
- package/dist/calculation/years.js.map +1 -0
- package/dist/chrono.js +1 -0
- package/dist/chrono.js.map +1 -0
- package/dist/common/abstractRefiners.js +1 -0
- package/dist/common/abstractRefiners.js.map +1 -0
- package/dist/common/calculation/weekdays.d.ts +7 -0
- package/dist/common/calculation/weekdays.js +68 -0
- package/dist/common/calculation/weekdays.js.map +1 -0
- package/dist/common/casualReferences.d.ts +8 -0
- package/dist/common/casualReferences.js +65 -9
- package/dist/common/casualReferences.js.map +1 -0
- package/dist/common/parsers/AbstractParserWithWordBoundary.d.ts +1 -0
- package/dist/common/parsers/AbstractParserWithWordBoundary.js +5 -1
- package/dist/common/parsers/AbstractParserWithWordBoundary.js.map +1 -0
- package/dist/common/parsers/AbstractTimeExpressionParser.d.ts +2 -0
- package/dist/common/parsers/AbstractTimeExpressionParser.js +40 -27
- package/dist/common/parsers/AbstractTimeExpressionParser.js.map +1 -0
- package/dist/common/parsers/ISOFormatParser.js +1 -0
- package/dist/common/parsers/ISOFormatParser.js.map +1 -0
- package/dist/common/parsers/SlashDateFormatParser.js +1 -0
- package/dist/common/parsers/SlashDateFormatParser.js.map +1 -0
- package/dist/common/refiners/AbstractMergeDateRangeRefiner.js +1 -0
- package/dist/common/refiners/AbstractMergeDateRangeRefiner.js.map +1 -0
- package/dist/common/refiners/AbstractMergeDateTimeRefiner.js +1 -0
- package/dist/common/refiners/AbstractMergeDateTimeRefiner.js.map +1 -0
- package/dist/common/refiners/ExtractTimezoneAbbrRefiner.js +2 -1
- package/dist/common/refiners/ExtractTimezoneAbbrRefiner.js.map +1 -0
- package/dist/common/refiners/ExtractTimezoneOffsetRefiner.js +5 -1
- package/dist/common/refiners/ExtractTimezoneOffsetRefiner.js.map +1 -0
- package/dist/common/refiners/ForwardDateRefiner.js +1 -0
- package/dist/common/refiners/ForwardDateRefiner.js.map +1 -0
- package/dist/common/refiners/MergeWeekdayComponentRefiner.js +1 -0
- package/dist/common/refiners/MergeWeekdayComponentRefiner.js.map +1 -0
- package/dist/common/refiners/OverlapRemovalRefiner.js +1 -0
- package/dist/common/refiners/OverlapRemovalRefiner.js.map +1 -0
- package/dist/common/refiners/UnlikelyFormatFilter.js +1 -0
- package/dist/common/refiners/UnlikelyFormatFilter.js.map +1 -0
- package/dist/configurations.js +1 -0
- package/dist/configurations.js.map +1 -0
- package/dist/debugging.js +1 -0
- package/dist/debugging.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -0
- package/dist/locales/de/constants.d.ts +3 -3
- package/dist/locales/de/constants.js +39 -20
- package/dist/locales/de/constants.js.map +1 -0
- package/dist/locales/de/index.js +5 -0
- package/dist/locales/de/index.js.map +1 -0
- package/dist/locales/de/parsers/DECasualDateParser.js +1 -0
- package/dist/locales/de/parsers/DECasualDateParser.js.map +1 -0
- package/dist/locales/de/parsers/DECasualTimeParser.js +1 -0
- package/dist/locales/de/parsers/DECasualTimeParser.js.map +1 -0
- package/dist/locales/de/parsers/DEMonthNameLittleEndianParser.js +1 -0
- package/dist/locales/de/parsers/DEMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/de/parsers/DESpecificTimeExpressionParser.d.ts +7 -0
- package/dist/locales/de/parsers/DESpecificTimeExpressionParser.js +115 -0
- package/dist/locales/de/parsers/DESpecificTimeExpressionParser.js.map +1 -0
- package/dist/locales/de/parsers/DETimeExpressionParser.d.ts +0 -1
- package/dist/locales/de/parsers/DETimeExpressionParser.js +4 -21
- package/dist/locales/de/parsers/DETimeExpressionParser.js.map +1 -0
- package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.d.ts +8 -0
- package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js +35 -0
- package/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js.map +1 -0
- package/dist/locales/de/parsers/DEWeekdayParser.js +3 -8
- package/dist/locales/de/parsers/DEWeekdayParser.js.map +1 -0
- package/dist/locales/de/refiners/DEMergeDateRangeRefiner.js +1 -0
- package/dist/locales/de/refiners/DEMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/de/refiners/DEMergeDateTimeRefiner.js +1 -0
- package/dist/locales/de/refiners/DEMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/en/constants.d.ts +4 -3
- package/dist/locales/en/constants.js +4 -0
- package/dist/locales/en/constants.js.map +1 -0
- package/dist/locales/en/index.js +1 -0
- package/dist/locales/en/index.js.map +1 -0
- package/dist/locales/en/parsers/ENCasualDateParser.js +1 -0
- package/dist/locales/en/parsers/ENCasualDateParser.js.map +1 -0
- package/dist/locales/en/parsers/ENCasualTimeParser.js +1 -0
- package/dist/locales/en/parsers/ENCasualTimeParser.js.map +1 -0
- package/dist/locales/en/parsers/ENCasualYearMonthDayParser.js +1 -0
- package/dist/locales/en/parsers/ENCasualYearMonthDayParser.js.map +1 -0
- package/dist/locales/en/parsers/ENMonthNameLittleEndianParser.js +1 -0
- package/dist/locales/en/parsers/ENMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -0
- package/dist/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -0
- package/dist/locales/en/parsers/ENMonthNameParser.js +1 -0
- package/dist/locales/en/parsers/ENMonthNameParser.js.map +1 -0
- package/dist/locales/en/parsers/ENRelativeDateFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENRelativeDateFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENSlashMonthFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENSlashMonthFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENTimeExpressionParser.js +1 -0
- package/dist/locales/en/parsers/ENTimeExpressionParser.js.map +1 -0
- package/dist/locales/en/parsers/ENTimeUnitAgoFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENTimeUnitLaterFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENTimeUnitLaterFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENTimeUnitWithinFormatParser.js +1 -0
- package/dist/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/locales/en/parsers/ENWeekdayParser.js +4 -9
- package/dist/locales/en/parsers/ENWeekdayParser.js.map +1 -0
- package/dist/locales/en/refiners/ENMergeDateRangeRefiner.js +1 -0
- package/dist/locales/en/refiners/ENMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/en/refiners/ENMergeDateTimeRefiner.js +1 -0
- package/dist/locales/en/refiners/ENMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js +1 -0
- package/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +1 -0
- package/dist/locales/fr/constants.js +1 -0
- package/dist/locales/fr/constants.js.map +1 -0
- package/dist/locales/fr/index.js +1 -0
- package/dist/locales/fr/index.js.map +1 -0
- package/dist/locales/fr/parsers/FRCasualDateParser.js +1 -0
- package/dist/locales/fr/parsers/FRCasualDateParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRCasualTimeParser.js +1 -0
- package/dist/locales/fr/parsers/FRCasualTimeParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRMonthNameLittleEndianParser.js +1 -0
- package/dist/locales/fr/parsers/FRMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRSpecificTimeExpressionParser.js +1 -0
- package/dist/locales/fr/parsers/FRSpecificTimeExpressionParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRTimeExpressionParser.js +1 -0
- package/dist/locales/fr/parsers/FRTimeExpressionParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRTimeUnitAgoFormatParser.js +1 -0
- package/dist/locales/fr/parsers/FRTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js +1 -0
- package/dist/locales/fr/parsers/FRTimeUnitRelativeFormatParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRTimeUnitWithinFormatParser.js +2 -1
- package/dist/locales/fr/parsers/FRTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/locales/fr/parsers/FRWeekdayParser.js +5 -10
- package/dist/locales/fr/parsers/FRWeekdayParser.js.map +1 -0
- package/dist/locales/fr/refiners/FRMergeDateRangeRefiner.js +1 -0
- package/dist/locales/fr/refiners/FRMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/fr/refiners/FRMergeDateTimeRefiner.js +1 -0
- package/dist/locales/fr/refiners/FRMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/ja/constants.js +1 -0
- package/dist/locales/ja/constants.js.map +1 -0
- package/dist/locales/ja/index.js +1 -0
- package/dist/locales/ja/index.js.map +1 -0
- package/dist/locales/ja/parsers/JPCasualDateParser.js +1 -0
- package/dist/locales/ja/parsers/JPCasualDateParser.js.map +1 -0
- package/dist/locales/ja/parsers/JPStandardParser.js +1 -0
- package/dist/locales/ja/parsers/JPStandardParser.js.map +1 -0
- package/dist/locales/ja/refiners/JPMergeDateRangeRefiner.js +1 -0
- package/dist/locales/ja/refiners/JPMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/nl/constants.js +1 -0
- package/dist/locales/nl/constants.js.map +1 -0
- package/dist/locales/nl/index.js +1 -0
- package/dist/locales/nl/index.js.map +1 -0
- package/dist/locales/nl/parsers/NLCasualDateParser.js +1 -0
- package/dist/locales/nl/parsers/NLCasualDateParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLCasualDateTimeParser.js +1 -0
- package/dist/locales/nl/parsers/NLCasualDateTimeParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLCasualTimeParser.js +1 -0
- package/dist/locales/nl/parsers/NLCasualTimeParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLCasualYearMonthDayParser.js +1 -0
- package/dist/locales/nl/parsers/NLCasualYearMonthDayParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLMonthNameMiddleEndianParser.js +1 -0
- package/dist/locales/nl/parsers/NLMonthNameMiddleEndianParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLMonthNameParser.js +1 -0
- package/dist/locales/nl/parsers/NLMonthNameParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLRelativeDateFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLSlashMonthFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLSlashMonthFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLTimeExpressionParser.js +1 -0
- package/dist/locales/nl/parsers/NLTimeExpressionParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitWithinFormatParser.js +1 -0
- package/dist/locales/nl/parsers/NLTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/locales/nl/parsers/NLWeekdayParser.js +4 -9
- package/dist/locales/nl/parsers/NLWeekdayParser.js.map +1 -0
- package/dist/locales/nl/refiners/NLMergeDateRangeRefiner.js +1 -0
- package/dist/locales/nl/refiners/NLMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/nl/refiners/NLMergeDateTimeRefiner.js +1 -0
- package/dist/locales/nl/refiners/NLMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/pt/constants.js +1 -0
- package/dist/locales/pt/constants.js.map +1 -0
- package/dist/locales/pt/index.js +1 -0
- package/dist/locales/pt/index.js.map +1 -0
- package/dist/locales/pt/parsers/PTCasualDateParser.js +1 -0
- package/dist/locales/pt/parsers/PTCasualDateParser.js.map +1 -0
- package/dist/locales/pt/parsers/PTCasualTimeParser.js +1 -0
- package/dist/locales/pt/parsers/PTCasualTimeParser.js.map +1 -0
- package/dist/locales/pt/parsers/PTMonthNameLittleEndianParser.js +1 -0
- package/dist/locales/pt/parsers/PTMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/pt/parsers/PTTimeExpressionParser.js +1 -0
- package/dist/locales/pt/parsers/PTTimeExpressionParser.js.map +1 -0
- package/dist/locales/pt/parsers/PTWeekdayParser.js +5 -10
- package/dist/locales/pt/parsers/PTWeekdayParser.js.map +1 -0
- package/dist/locales/pt/refiners/PTMergeDateRangeRefiner.js +1 -0
- package/dist/locales/pt/refiners/PTMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/pt/refiners/PTMergeDateTimeRefiner.js +1 -0
- package/dist/locales/pt/refiners/PTMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/ru/constants.d.ts +33 -0
- package/dist/locales/ru/constants.js +301 -0
- package/dist/locales/ru/constants.js.map +1 -0
- package/dist/locales/ru/index.d.ts +8 -0
- package/dist/locales/ru/index.js +56 -0
- package/dist/locales/ru/index.js.map +1 -0
- package/dist/locales/ru/parsers/RUCasualDateParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUCasualDateParser.js +52 -0
- package/dist/locales/ru/parsers/RUCasualDateParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUCasualTimeParser.d.ts +7 -0
- package/dist/locales/ru/parsers/RUCasualTimeParser.js +74 -0
- package/dist/locales/ru/parsers/RUCasualTimeParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js +59 -0
- package/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUMonthNameParser.d.ts +7 -0
- package/dist/locales/ru/parsers/RUMonthNameParser.js +45 -0
- package/dist/locales/ru/parsers/RUMonthNameParser.js.map +1 -0
- package/dist/locales/ru/parsers/RURelativeDateFormatParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RURelativeDateFormatParser.js +60 -0
- package/dist/locales/ru/parsers/RURelativeDateFormatParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUTimeExpressionParser.d.ts +12 -0
- package/dist/locales/ru/parsers/RUTimeExpressionParser.js +57 -0
- package/dist/locales/ru/parsers/RUTimeExpressionParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js +22 -0
- package/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +29 -0
- package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js +22 -0
- package/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js.map +1 -0
- package/dist/locales/ru/parsers/RUWeekdayParser.d.ts +8 -0
- package/dist/locales/ru/parsers/RUWeekdayParser.js +49 -0
- package/dist/locales/ru/parsers/RUWeekdayParser.js.map +1 -0
- package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.d.ts +4 -0
- package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js +13 -0
- package/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.d.ts +4 -0
- package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js +13 -0
- package/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/zh/hans/constants.js +1 -0
- package/dist/locales/zh/hans/constants.js.map +1 -0
- package/dist/locales/zh/hans/index.js +1 -0
- package/dist/locales/zh/hans/index.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansDateParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansDateParser.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js.map +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js +1 -0
- package/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js.map +1 -0
- package/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js +1 -0
- package/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js +1 -0
- package/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/zh/hant/constants.js +1 -0
- package/dist/locales/zh/hant/constants.js.map +1 -0
- package/dist/locales/zh/hant/index.js +1 -0
- package/dist/locales/zh/hant/index.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantDateParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantDateParser.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js.map +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js +1 -0
- package/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js.map +1 -0
- package/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js +1 -0
- package/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js +1 -0
- package/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/zh/index.d.ts +1 -1
- package/dist/locales/zh/index.js +14 -2
- package/dist/locales/zh/index.js.map +1 -0
- package/dist/results.d.ts +5 -4
- package/dist/results.js +16 -12
- package/dist/results.js.map +1 -0
- package/dist/timezone.d.ts +1 -1
- package/dist/timezone.js +3 -2
- package/dist/timezone.js.map +1 -0
- package/dist/utils/dayjs.js +1 -0
- package/dist/utils/dayjs.js.map +1 -0
- package/dist/utils/pattern.js +1 -0
- package/dist/utils/pattern.js.map +1 -0
- package/dist/utils/timeunits.js +1 -0
- package/dist/utils/timeunits.js.map +1 -0
- package/package.json +1 -1
- package/src/chrono.ts +3 -1
- package/src/common/calculation/weekdays.ts +89 -0
- package/src/common/casualReferences.ts +64 -9
- package/src/common/parsers/AbstractParserWithWordBoundary.ts +5 -1
- package/src/common/parsers/AbstractTimeExpressionParser.ts +52 -28
- package/src/common/refiners/ExtractTimezoneAbbrRefiner.ts +3 -1
- package/src/common/refiners/ExtractTimezoneOffsetRefiner.ts +5 -1
- package/src/index.ts +12 -1
- package/src/locales/de/constants.ts +42 -22
- package/src/locales/de/index.ts +4 -0
- package/src/locales/de/parsers/DESpecificTimeExpressionParser.ts +150 -0
- package/src/locales/de/parsers/DETimeExpressionParser.ts +4 -23
- package/src/locales/de/parsers/DETimeUnitRelativeFormatParser.ts +42 -0
- package/src/locales/de/parsers/DEWeekdayParser.ts +2 -8
- package/src/locales/en/constants.ts +7 -3
- package/src/locales/en/parsers/ENWeekdayParser.ts +3 -9
- package/src/locales/fr/parsers/FRTimeUnitWithinFormatParser.ts +1 -1
- package/src/locales/fr/parsers/FRWeekdayParser.ts +4 -10
- package/src/locales/nl/parsers/NLWeekdayParser.ts +3 -9
- package/src/locales/pt/parsers/PTWeekdayParser.ts +4 -10
- package/src/locales/ru/constants.ts +342 -0
- package/src/locales/ru/index.ts +84 -0
- package/src/locales/ru/parsers/RUCasualDateParser.ts +44 -0
- package/src/locales/ru/parsers/RUCasualTimeParser.ts +56 -0
- package/src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts +72 -0
- package/src/locales/ru/parsers/RUMonthNameParser.ts +61 -0
- package/src/locales/ru/parsers/RURelativeDateFormatParser.ts +75 -0
- package/src/locales/ru/parsers/RUTimeExpressionParser.ts +64 -0
- package/src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts +24 -0
- package/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts +34 -0
- package/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts +24 -0
- package/src/locales/ru/parsers/RUWeekdayParser.ts +57 -0
- package/src/locales/ru/refiners/RUMergeDateRangeRefiner.ts +13 -0
- package/src/locales/ru/refiners/RUMergeDateTimeRefiner.ts +13 -0
- package/src/locales/zh/index.ts +1 -1
- package/src/results.ts +32 -21
- package/src/timezone.ts +3 -3
- package/src/utils/timeunits.ts +2 -2
- package/test/calculation.test.ts +116 -0
- package/test/de/de_month_name_little_endian.test.ts +12 -0
- package/test/de/de_time_exp.test.ts +59 -0
- package/test/de/de_time_units_casual_relative.test.ts +108 -0
- package/test/de/de_year.test.ts +147 -0
- package/test/en/en.test.ts +10 -0
- package/test/en/en_relative.test.ts +47 -2
- package/test/en/en_time_units_ago.test.ts +3 -3
- package/test/en/en_time_units_within.test.ts +2 -2
- package/test/en/en_timezone_exp.test.ts +30 -3
- package/test/en/en_weekday.test.ts +116 -1
- package/test/en/negative_cases.test.ts +8 -0
- package/test/fr/fr_time_units_ago.test.ts +3 -3
- package/test/fr/fr_time_units_within.test.ts +9 -2
- package/test/nl/nl_relative.test.ts +2 -2
- package/test/nl/nl_time_units_ago.test.ts +3 -3
- package/test/ru/ru_casual.test.ts +147 -0
- package/test/ru/ru_month.test.ts +70 -0
- package/test/ru/ru_month_name_little_endian.test.ts +145 -0
- package/test/ru/ru_relative.test.ts +74 -0
- package/test/ru/ru_time_exp.test.ts +111 -0
- package/test/ru/ru_time_units_ago.test.ts +48 -0
- package/test/ru/ru_time_units_casual_relative.test.ts +112 -0
- package/test/ru/ru_time_units_within.test.ts +16 -0
- package/test/ru/ru_weekday.test.ts +52 -0
- package/test/system_timezone.test.ts +22 -0
- package/tsconfig.json +1 -1
- package/src/calculation/weeks.ts +0 -38
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - 'This' expressions", () => {
|
|
5
|
+
testSingleCase(chrono.ru, "на этой неделе", new Date(2017, 11 - 1, 19, 12), (result, text) => {
|
|
6
|
+
expect(result.index).toBe(0);
|
|
7
|
+
expect(result.text).toBe(text);
|
|
8
|
+
expect(result.start).toBeDate(new Date(2017, 11 - 1, 19, 12));
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono.ru, "в этом месяце", new Date(2017, 11 - 1, 19, 12), (result, text) => {
|
|
12
|
+
expect(result.index).toBe(0);
|
|
13
|
+
expect(result.text).toBe(text);
|
|
14
|
+
expect(result.start).toBeDate(new Date(2017, 11 - 1, 1, 12));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono.ru, "в этом месяце", new Date(2017, 11 - 1, 1, 12), (result, text) => {
|
|
18
|
+
expect(result.index).toBe(0);
|
|
19
|
+
expect(result.text).toBe(text);
|
|
20
|
+
expect(result.start).toBeDate(new Date(2017, 11 - 1, 1, 12));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono.ru, "в этом году", new Date(2017, 11 - 1, 19, 12), (result, text) => {
|
|
24
|
+
expect(result.index).toBe(0);
|
|
25
|
+
expect(result.text).toBe(text);
|
|
26
|
+
expect(result.start).toBeDate(new Date(2017, 1 - 1, 1, 12));
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("Test - Past relative expressions", () => {
|
|
31
|
+
testSingleCase(chrono.ru, "на прошлой неделе", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
32
|
+
expect(result.index).toBe(0);
|
|
33
|
+
expect(result.text).toBe(text);
|
|
34
|
+
expect(result.start).toBeDate(new Date(2016, 9 - 1, 24, 12));
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
testSingleCase(chrono.ru, "в прошлом месяце", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
38
|
+
expect(result.index).toBe(0);
|
|
39
|
+
expect(result.text).toBe(text);
|
|
40
|
+
expect(result.start).toBeDate(new Date(2016, 9 - 1, 1, 12));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
testSingleCase(chrono.ru, "в прошлом году", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
44
|
+
expect(result.index).toBe(0);
|
|
45
|
+
expect(result.text).toBe(text);
|
|
46
|
+
expect(result.start).toBeDate(new Date(2015, 10 - 1, 1, 12));
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test("Test - Future relative expressions", () => {
|
|
51
|
+
testSingleCase(chrono.ru, "на следующей неделе", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
52
|
+
expect(result.index).toBe(0);
|
|
53
|
+
expect(result.text).toBe(text);
|
|
54
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 8, 12));
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
testSingleCase(chrono.ru, "в следующем месяце", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
58
|
+
expect(result.index).toBe(0);
|
|
59
|
+
expect(result.text).toBe(text);
|
|
60
|
+
expect(result.start).toBeDate(new Date(2016, 11 - 1, 1, 12));
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
testSingleCase(chrono.ru, "в следующем квартале", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
64
|
+
expect(result.index).toBe(0);
|
|
65
|
+
expect(result.text).toBe(text);
|
|
66
|
+
expect(result.start).toBeDate(new Date(2017, 1 - 1, 1, 12));
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
testSingleCase(chrono.ru, "в следующем году", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
70
|
+
expect(result.index).toBe(0);
|
|
71
|
+
expect(result.text).toBe(text);
|
|
72
|
+
expect(result.start).toBeDate(new Date(2017, 10 - 1, 1, 12));
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Time expression", function () {
|
|
5
|
+
testSingleCase(chrono.ru, "20:32:13", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
6
|
+
expect(result.index).toBe(0);
|
|
7
|
+
expect(result.text).toBe(text);
|
|
8
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 20, 32, 13));
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test("Test - Time range expression", function () {
|
|
13
|
+
testSingleCase(chrono.ru, "10:00:00 - 21:45:01", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
14
|
+
expect(result.index).toBe(0);
|
|
15
|
+
expect(result.text).toBe(text);
|
|
16
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 10));
|
|
17
|
+
expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 21, 45, 1));
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test("Test - Casual time number expression", function () {
|
|
22
|
+
testSingleCase(chrono.ru, "в 11 утра", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
23
|
+
expect(result.index).toBe(0);
|
|
24
|
+
expect(result.text).toBe(text);
|
|
25
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 11));
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
testSingleCase(chrono.ru, "в 11 вечера", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
29
|
+
expect(result.index).toBe(0);
|
|
30
|
+
expect(result.text).toBe(text);
|
|
31
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 23));
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test("Test - Time range's meridiem handling", function () {
|
|
36
|
+
testSingleCase(chrono.ru, "с 10 до 11 утра", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
37
|
+
expect(result.index).toBe(0);
|
|
38
|
+
expect(result.text).toBe(text);
|
|
39
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 10));
|
|
40
|
+
expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 11));
|
|
41
|
+
});
|
|
42
|
+
testSingleCase(chrono.ru, "с 10 до 11 вечера", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
|
43
|
+
expect(result.index).toBe(0);
|
|
44
|
+
expect(result.text).toBe(text);
|
|
45
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 22));
|
|
46
|
+
expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 23));
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test("Test - Parsing causal positive cases", function () {
|
|
51
|
+
testSingleCase(chrono.ru.casual, "в 1", (result) => {
|
|
52
|
+
expect(result.index).toBe(0);
|
|
53
|
+
expect(result.text).toBe("в 1");
|
|
54
|
+
expect(result.start.get("hour")).toBe(1);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
testSingleCase(chrono.ru.casual, "в 12", (result) => {
|
|
58
|
+
expect(result.index).toBe(0);
|
|
59
|
+
expect(result.text).toBe("в 12");
|
|
60
|
+
expect(result.start.get("hour")).toBe(12);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
testSingleCase(chrono.ru.casual, "в 12.30", (result) => {
|
|
64
|
+
expect(result.index).toBe(0);
|
|
65
|
+
expect(result.text).toBe("в 12.30");
|
|
66
|
+
expect(result.start.get("hour")).toBe(12);
|
|
67
|
+
expect(result.start.get("minute")).toBe(30);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test("Test - Parsing negative cases : [year-like] pattern", function () {
|
|
72
|
+
testUnexpectedResult(chrono.ru, "2020");
|
|
73
|
+
|
|
74
|
+
testUnexpectedResult(chrono.ru, "2020 ");
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test("Test - Parsing negative cases : 'at [some numbers]'", function () {
|
|
78
|
+
testUnexpectedResult(chrono.ru, "Температура 101,194 градусов!");
|
|
79
|
+
|
|
80
|
+
testUnexpectedResult(chrono.ru, "Температура 101 градусов!");
|
|
81
|
+
|
|
82
|
+
testUnexpectedResult(chrono.ru, "Температура 10.1");
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]'", function () {
|
|
86
|
+
testUnexpectedResult(chrono.ru, "Это в 10.1 - 10.12");
|
|
87
|
+
|
|
88
|
+
testUnexpectedResult(chrono.ru, "Это в 10 - 10.1");
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
test("Test - Parsing negative cases (Strict)", function () {
|
|
92
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 101,194 телефон!");
|
|
93
|
+
|
|
94
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 101 стул!");
|
|
95
|
+
|
|
96
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 10.1");
|
|
97
|
+
|
|
98
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 10");
|
|
99
|
+
|
|
100
|
+
testUnexpectedResult(chrono.ru.strict, "2020");
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]' (Strict)", function () {
|
|
104
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 10.1 - 10.12");
|
|
105
|
+
|
|
106
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 10 - 10.1");
|
|
107
|
+
|
|
108
|
+
testUnexpectedResult(chrono.ru.strict, "Это в 10 - 20");
|
|
109
|
+
|
|
110
|
+
testUnexpectedResult(chrono.ru.strict, "7-730");
|
|
111
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as chrono from "../../src/";
|
|
2
|
+
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Single Expression", function () {
|
|
5
|
+
testSingleCase(chrono.ru, "5 дней назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
6
|
+
expect(result.index).toBe(0);
|
|
7
|
+
expect(result.text).toBe("5 дней назад");
|
|
8
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 5));
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono.ru, "5 минут назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
12
|
+
expect(result.index).toBe(0);
|
|
13
|
+
expect(result.text).toBe("5 минут назад");
|
|
14
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 9, 23, 55));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono.ru, "полчаса назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
18
|
+
expect(result.index).toBe(0);
|
|
19
|
+
expect(result.text).toBe("полчаса назад");
|
|
20
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 9, 23, 30));
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
test("Test - Nested time ago", function () {
|
|
25
|
+
testSingleCase(chrono.ru, "5 дней 2 часа назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
26
|
+
expect(result.index).toBe(0);
|
|
27
|
+
expect(result.text).toBe("5 дней 2 часа назад");
|
|
28
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 4, 22));
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
testSingleCase(chrono.ru, "5 минут 20 секунд назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
32
|
+
expect(result.index).toBe(0);
|
|
33
|
+
expect(result.text).toBe("5 минут 20 секунд назад");
|
|
34
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 9, 23, 54, 40));
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
testSingleCase(chrono.ru, "2 часа 5 минут назад что-то было", new Date(2012, 7 - 1, 10), (result) => {
|
|
38
|
+
expect(result.index).toBe(0);
|
|
39
|
+
expect(result.text).toBe("2 часа 5 минут назад");
|
|
40
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 9, 21, 55));
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test("Test - Negative cases", function () {
|
|
45
|
+
testUnexpectedResult(chrono.ru, "15 часов 29 мин");
|
|
46
|
+
testUnexpectedResult(chrono.ru, "несколько часов");
|
|
47
|
+
testUnexpectedResult(chrono.ru, "5 дней");
|
|
48
|
+
});
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Positive time units", () => {
|
|
5
|
+
testSingleCase(chrono.ru, "следующие 2 недели", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
6
|
+
expect(result.index).toBe(0);
|
|
7
|
+
expect(result.text).toBe(text);
|
|
8
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 15, 12));
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono.ru, "следующие 2 дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
12
|
+
expect(result.index).toBe(0);
|
|
13
|
+
expect(result.text).toBe(text);
|
|
14
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 3, 12));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono.ru, "следующие два года", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
18
|
+
expect(result.index).toBe(0);
|
|
19
|
+
expect(result.text).toBe(text);
|
|
20
|
+
expect(result.start).toBeDate(new Date(2018, 10 - 1, 1, 12));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono.ru, "следующие 2 недели 3 дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
24
|
+
expect(result.index).toBe(0);
|
|
25
|
+
expect(result.text).toBe(text);
|
|
26
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 18, 12));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
testSingleCase(chrono.ru, "через пару минут", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
30
|
+
expect(result.index).toBe(0);
|
|
31
|
+
expect(result.text).toBe(text);
|
|
32
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 12, 2));
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
testSingleCase(chrono.ru, "через полчаса", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
36
|
+
expect(result.index).toBe(0);
|
|
37
|
+
expect(result.text).toBe(text);
|
|
38
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 12, 30));
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
testSingleCase(chrono.ru, "через 2 часа", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
42
|
+
expect(result.index).toBe(0);
|
|
43
|
+
expect(result.text).toBe(text);
|
|
44
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 14));
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
testSingleCase(chrono.ru, "через три месяца", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
48
|
+
expect(result.index).toBe(0);
|
|
49
|
+
expect(result.text).toBe(text);
|
|
50
|
+
expect(result.start).toBeDate(new Date(2017, 1 - 1, 1, 12));
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
testSingleCase(chrono.ru, "через неделю", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
54
|
+
expect(result.index).toBe(0);
|
|
55
|
+
expect(result.text).toBe(text);
|
|
56
|
+
expect(result.start).toBeDate(new Date(2016, 10 - 1, 8, 12));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
testSingleCase(chrono.ru, "через месяц", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
60
|
+
expect(result.index).toBe(0);
|
|
61
|
+
expect(result.text).toBe(text);
|
|
62
|
+
expect(result.start).toBeDate(new Date(2016, 11 - 1, 1, 12));
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
testSingleCase(chrono.ru, "через год", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
|
|
66
|
+
expect(result.index).toBe(0);
|
|
67
|
+
expect(result.text).toBe(text);
|
|
68
|
+
expect(result.start).toBeDate(new Date(2021, 11 - 1, 22, 12, 11, 32, 6));
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test("Test - Negative time units", () => {
|
|
73
|
+
testSingleCase(chrono.ru, "прошлые 2 недели", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
74
|
+
expect(result.index).toBe(0);
|
|
75
|
+
expect(result.text).toBe(text);
|
|
76
|
+
expect(result.start).toBeDate(new Date(2016, 9 - 1, 17, 12));
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
testSingleCase(chrono.ru, "прошлые два дня", new Date(2016, 10 - 1, 1, 12), (result, text) => {
|
|
80
|
+
expect(result.index).toBe(0);
|
|
81
|
+
expect(result.text).toBe(text);
|
|
82
|
+
expect(result.start).toBeDate(new Date(2016, 9 - 1, 29, 12));
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
test("Test - Plus '+' sign", () => {
|
|
87
|
+
testSingleCase(chrono.ru.casual, "+15 минут", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
88
|
+
expect(result.index).toBe(0);
|
|
89
|
+
expect(result.text).toBe(text);
|
|
90
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
testSingleCase(chrono.ru.casual, "+15мин", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
94
|
+
expect(result.index).toBe(0);
|
|
95
|
+
expect(result.text).toBe(text);
|
|
96
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 29));
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
testSingleCase(chrono.ru.casual, "+1 день 2 часа", new Date(2012, 7 - 1, 10, 12, 14), (result, text) => {
|
|
100
|
+
expect(result.index).toBe(0);
|
|
101
|
+
expect(result.text).toBe(text);
|
|
102
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 11, 14, 14));
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
test("Test - Minus '-' sign", () => {
|
|
107
|
+
testSingleCase(chrono.ru.casual, "-3 года", new Date(2015, 7 - 1, 10, 12, 14), (result, text) => {
|
|
108
|
+
expect(result.index).toBe(0);
|
|
109
|
+
expect(result.text).toBe(text);
|
|
110
|
+
expect(result.start).toBeDate(new Date(2012, 7 - 1, 10, 12, 14));
|
|
111
|
+
});
|
|
112
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - The normal within expression", () => {
|
|
5
|
+
testSingleCase(chrono.ru, "будет сделано в течение минуты", new Date(2012, 7, 10), (result) => {
|
|
6
|
+
expect(result.index).toBe(14);
|
|
7
|
+
expect(result.text).toBe("в течение минуты");
|
|
8
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 0, 1));
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono.ru, "будет сделано в течение 2 часов.", new Date(2012, 7, 10), (result) => {
|
|
12
|
+
expect(result.index).toBe(14);
|
|
13
|
+
expect(result.text).toBe("в течение 2 часов");
|
|
14
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 2));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as chrono from "../../src";
|
|
2
|
+
import { testSingleCase } from "../test_util";
|
|
3
|
+
|
|
4
|
+
test("Test - Single Expression", function () {
|
|
5
|
+
testSingleCase(chrono.ru.casual, "понедельник", new Date(2012, 7, 9), (result) => {
|
|
6
|
+
expect(result.index).toBe(0);
|
|
7
|
+
expect(result.text).toBe("понедельник");
|
|
8
|
+
expect(result.start).toBeDate(new Date(2012, 7, 6, 12));
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
testSingleCase(chrono.ru.casual, "Дедлайн в пятницу...", new Date(2012, 7, 9), (result) => {
|
|
12
|
+
expect(result.index).toBe(8);
|
|
13
|
+
expect(result.text).toBe("в пятницу");
|
|
14
|
+
expect(result.start).toBeDate(new Date(2012, 7, 10, 12));
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
testSingleCase(chrono.ru.casual, "Дедлайн в прошлый четверг!", new Date(2012, 7, 9), (result) => {
|
|
18
|
+
expect(result.index).toBe(8);
|
|
19
|
+
expect(result.text).toBe("в прошлый четверг");
|
|
20
|
+
expect(result.start).toBeDate(new Date(2012, 7, 2, 12));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
testSingleCase(chrono.ru.casual, "Дедлайн в следующий вторник", new Date(2015, 3, 18), (result) => {
|
|
24
|
+
expect(result.index).toBe(8);
|
|
25
|
+
expect(result.text).toBe("в следующий вторник");
|
|
26
|
+
expect(result.start).toBeDate(new Date(2015, 3, 21, 12));
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test("Test - Weekday With Casual Time", function () {
|
|
31
|
+
testSingleCase(chrono.ru.casual, "Позвони в среду утром", new Date(2015, 3, 18), (result) => {
|
|
32
|
+
expect(result.index).toBe(8);
|
|
33
|
+
expect(result.text).toBe("в среду утром");
|
|
34
|
+
expect(result.start).toBeDate(new Date(2015, 3, 15, 6));
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test("Test - Weekday Overlap", function () {
|
|
39
|
+
testSingleCase(chrono.ru.casual, "воскресенье, 7 декабря 2014", new Date(2012, 7, 9), (result) => {
|
|
40
|
+
expect(result.index).toBe(0);
|
|
41
|
+
expect(result.text).toBe("воскресенье, 7 декабря 2014");
|
|
42
|
+
expect(result.start).toBeDate(new Date(2014, 12 - 1, 7, 12));
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test("Test - forward dates only option", () => {
|
|
47
|
+
testSingleCase(chrono.ru.casual, "В понедельник?", new Date(2012, 7, 9), { forwardDate: true }, (result) => {
|
|
48
|
+
expect(result.index).toBe(0);
|
|
49
|
+
expect(result.text).toBe("В понедельник");
|
|
50
|
+
expect(result.start).toBeDate(new Date(2012, 7, 13, 12));
|
|
51
|
+
});
|
|
52
|
+
});
|
|
@@ -16,6 +16,28 @@ test("Test - Timezone difference on reference example", function () {
|
|
|
16
16
|
);
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
+
test("Test - Timezone difference on default timezone", function () {
|
|
20
|
+
const INPUT = "Friday at 4pm";
|
|
21
|
+
const REF_INSTANT = new Date(2021, 6 - 1, 9, 7, 0, 0);
|
|
22
|
+
const EXPECTED_INSTANT = new Date(2021, 6 - 1, 11, 16, 0, 0);
|
|
23
|
+
|
|
24
|
+
testSingleCase(chrono, INPUT, REF_INSTANT, (result) => {
|
|
25
|
+
expect(result).toBeDate(EXPECTED_INSTANT);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
testSingleCase(chrono, INPUT, { instant: REF_INSTANT }, (result) => {
|
|
29
|
+
expect(result).toBeDate(EXPECTED_INSTANT);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
testSingleCase(chrono, INPUT, { instant: REF_INSTANT, timezone: null }, (result) => {
|
|
33
|
+
expect(result).toBeDate(EXPECTED_INSTANT);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
testSingleCase(chrono, INPUT, { instant: REF_INSTANT, timezone: "" }, (result) => {
|
|
37
|
+
expect(result).toBeDate(EXPECTED_INSTANT);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
19
41
|
test("Test - Timezone difference on reference date", function () {
|
|
20
42
|
// Sun Jun 06 2021 19:00:00 GMT+0900 (JST)
|
|
21
43
|
// Sun Jun 06 2021 11:00:00 GMT+0100 (BST)
|
package/tsconfig.json
CHANGED
package/src/calculation/weeks.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import dayjs, { Dayjs } from "dayjs";
|
|
2
|
-
|
|
3
|
-
export function toDayJSWeekday(refDate: Date, offset: number, modifier?: "this" | "next" | "last"): Dayjs {
|
|
4
|
-
if (!modifier) {
|
|
5
|
-
return toDayJSClosestWeekday(refDate, offset);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
let date = dayjs(refDate);
|
|
9
|
-
switch (modifier) {
|
|
10
|
-
case "this":
|
|
11
|
-
date = date.day(offset);
|
|
12
|
-
break;
|
|
13
|
-
|
|
14
|
-
case "next":
|
|
15
|
-
date = date.day(offset + 7);
|
|
16
|
-
break;
|
|
17
|
-
|
|
18
|
-
case "last":
|
|
19
|
-
date = date.day(offset - 7);
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return date;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function toDayJSClosestWeekday(refDate: Date, offset: number): Dayjs {
|
|
27
|
-
let date = dayjs(refDate);
|
|
28
|
-
const refOffset = date.day();
|
|
29
|
-
if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) {
|
|
30
|
-
date = date.day(offset - 7);
|
|
31
|
-
} else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) {
|
|
32
|
-
date = date.day(offset + 7);
|
|
33
|
-
} else {
|
|
34
|
-
date = date.day(offset);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return date;
|
|
38
|
-
}
|