chrono-node 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/chrono.iml +13 -0
- package/.idea/compiler.xml +7 -0
- package/.idea/dictionaries/wanasit.xml +8 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/.idea/jsLinters/eslint.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +6 -0
- package/.idea/workspace.xml +327 -0
- package/README.md +1 -1
- package/benchmark/results/chrono.chart.html +111 -0
- package/coverage/clover.xml +4771 -0
- package/coverage/coverage-final.json +147 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +686 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/results.ts.html +701 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/calculation/index.html +131 -0
- package/coverage/lcov-report/src/calculation/mergingCalculation.ts.html +319 -0
- package/coverage/lcov-report/src/calculation/weeks.ts.html +199 -0
- package/coverage/lcov-report/src/calculation/yearCalculation.ts.html +194 -0
- package/coverage/lcov-report/src/calculation/years.ts.html +199 -0
- package/coverage/lcov-report/src/chrono.js.html +368 -0
- package/coverage/lcov-report/src/chrono.ts.html +649 -0
- package/coverage/lcov-report/src/common/abstractRefiners.ts.html +286 -0
- package/coverage/lcov-report/src/common/calculation/index.html +116 -0
- package/coverage/lcov-report/src/common/calculation/weekdays.ts.html +352 -0
- package/coverage/lcov-report/src/common/casualReferences.ts.html +499 -0
- package/coverage/lcov-report/src/common/index.html +131 -0
- package/coverage/lcov-report/src/common/parsers/AbstractParserWithWordBoundary.ts.html +214 -0
- package/coverage/lcov-report/src/common/parsers/AbstractTimeExpressionParser.ts.html +1384 -0
- package/coverage/lcov-report/src/common/parsers/ISOFormatParser.ts.html +340 -0
- package/coverage/lcov-report/src/common/parsers/SlashDateFormatParser.ts.html +385 -0
- package/coverage/lcov-report/src/common/parsers/index.html +161 -0
- package/coverage/lcov-report/src/common/refiners/AbstractMergeDateRangeRefiner.ts.html +268 -0
- package/coverage/lcov-report/src/common/refiners/AbstractMergeDateTimeRefiner.ts.html +172 -0
- package/coverage/lcov-report/src/common/refiners/ExtractTimezoneAbbrRefiner.ts.html +883 -0
- package/coverage/lcov-report/src/common/refiners/ExtractTimezoneOffsetRefiner.ts.html +226 -0
- package/coverage/lcov-report/src/common/refiners/ForwardDateRefiner.ts.html +334 -0
- package/coverage/lcov-report/src/common/refiners/MergeWeekdayComponentRefiner.ts.html +187 -0
- package/coverage/lcov-report/src/common/refiners/OverlapRemovalRefiner.ts.html +199 -0
- package/coverage/lcov-report/src/common/refiners/UnlikelyFormatFilter.ts.html +265 -0
- package/coverage/lcov-report/src/common/refiners/index.html +221 -0
- package/coverage/lcov-report/src/configurations.ts.html +154 -0
- package/coverage/lcov-report/src/debugging.ts.html +154 -0
- package/coverage/lcov-report/src/index.html +191 -0
- package/coverage/lcov-report/src/index.ts.html +520 -0
- package/coverage/lcov-report/src/locales/de/constants.ts.html +664 -0
- package/coverage/lcov-report/src/locales/de/index.html +131 -0
- package/coverage/lcov-report/src/locales/de/index.ts.html +238 -0
- package/coverage/lcov-report/src/locales/de/parsers/DECasualDateParser.ts.html +325 -0
- package/coverage/lcov-report/src/locales/de/parsers/DECasualTimeParser.ts.html +325 -0
- package/coverage/lcov-report/src/locales/de/parsers/DEMonthNameLittleEndianParser.ts.html +268 -0
- package/coverage/lcov-report/src/locales/de/parsers/DESpecificTimeExpressionParser.ts.html +535 -0
- package/coverage/lcov-report/src/locales/de/parsers/DETimeExpressionParser.ts.html +151 -0
- package/coverage/lcov-report/src/locales/de/parsers/DETimeUnitRelativeFormatParser.ts.html +211 -0
- package/coverage/lcov-report/src/locales/de/parsers/DEWeekdayParser.ts.html +232 -0
- package/coverage/lcov-report/src/locales/de/parsers/index.html +206 -0
- package/coverage/lcov-report/src/locales/de/refiners/DEMergeDateRangeRefiner.ts.html +130 -0
- package/coverage/lcov-report/src/locales/de/refiners/DEMergeDateTimeRefiner.ts.html +115 -0
- package/coverage/lcov-report/src/locales/de/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/en/constants.ts.html +859 -0
- package/coverage/lcov-report/src/locales/en/index.html +131 -0
- package/coverage/lcov-report/src/locales/en/index.ts.html +382 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENCasualDateParser.ts.html +244 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENCasualTimeParser.ts.html +169 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENCasualYearMonthDayParser.ts.html +232 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENDeadlineFormatParser.ts.html +311 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENISOFormatParser.ts.html +317 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENMonthNameLittleEndianParser.ts.html +292 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts.html +319 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENMonthNameParser.ts.html +271 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENRelativeDateFormatParser.ts.html +292 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENSlashDateFormatParser.ts.html +443 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENSlashDateFormatStartWithYearParser.ts.html +221 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENSlashMonthFormatParser.ts.html +163 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeExpressionParser.ts.html +250 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeUnitAgoFormatParser.ts.html +160 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.ts.html +166 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeUnitDeadlineFormatParser.ts.html +149 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeUnitLaterFormatParser.ts.html +166 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts.html +163 -0
- package/coverage/lcov-report/src/locales/en/parsers/ENWeekdayParser.ts.html +229 -0
- package/coverage/lcov-report/src/locales/en/parsers/index.html +311 -0
- package/coverage/lcov-report/src/locales/en/refiners/ENMergeDateRangeRefiner.ts.html +136 -0
- package/coverage/lcov-report/src/locales/en/refiners/ENMergeDateTimeRefiner.ts.html +124 -0
- package/coverage/lcov-report/src/locales/en/refiners/ENMergeRelativeDateRefiner.ts.html +259 -0
- package/coverage/lcov-report/src/locales/en/refiners/index.html +146 -0
- package/coverage/lcov-report/src/locales/es/constants.ts.html +340 -0
- package/coverage/lcov-report/src/locales/es/index.html +131 -0
- package/coverage/lcov-report/src/locales/es/index.ts.html +256 -0
- package/coverage/lcov-report/src/locales/es/parsers/ESCasualDateParser.ts.html +178 -0
- package/coverage/lcov-report/src/locales/es/parsers/ESCasualTimeParser.ts.html +226 -0
- package/coverage/lcov-report/src/locales/es/parsers/ESMonthNameLittleEndianParser.ts.html +265 -0
- package/coverage/lcov-report/src/locales/es/parsers/ESTimeExpressionParser.ts.html +145 -0
- package/coverage/lcov-report/src/locales/es/parsers/ESWeekdayParser.ts.html +235 -0
- package/coverage/lcov-report/src/locales/es/parsers/index.html +176 -0
- package/coverage/lcov-report/src/locales/es/refiners/ESMergeDateRangeRefiner.ts.html +130 -0
- package/coverage/lcov-report/src/locales/es/refiners/ESMergeDateTimeRefiner.ts.html +115 -0
- package/coverage/lcov-report/src/locales/es/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/fr/constants.ts.html +637 -0
- package/coverage/lcov-report/src/locales/fr/index.html +131 -0
- package/coverage/lcov-report/src/locales/fr/index.ts.html +280 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRCasualDateParser.ts.html +223 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRCasualTimeParser.ts.html +232 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRMonthNameLittleEndianParser.ts.html +277 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRSpecificTimeExpressionParser.ts.html +484 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRTimeExpressionParser.ts.html +151 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRTimeUnitAgoFormatParser.ts.html +151 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRTimeUnitRelativeFormatParser.ts.html +214 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRTimeUnitWithinFormatParser.ts.html +130 -0
- package/coverage/lcov-report/src/locales/fr/parsers/FRWeekdayParser.ts.html +223 -0
- package/coverage/lcov-report/src/locales/fr/parsers/index.html +236 -0
- package/coverage/lcov-report/src/locales/fr/refiners/FRMergeDateRangeRefiner.ts.html +130 -0
- package/coverage/lcov-report/src/locales/fr/refiners/FRMergeDateTimeRefiner.ts.html +115 -0
- package/coverage/lcov-report/src/locales/fr/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/ja/constants.ts.html +157 -0
- package/coverage/lcov-report/src/locales/ja/index.html +131 -0
- package/coverage/lcov-report/src/locales/ja/index.ts.html +214 -0
- package/coverage/lcov-report/src/locales/ja/parsers/JPCasualDateParser.ts.html +217 -0
- package/coverage/lcov-report/src/locales/ja/parsers/JPStandardParser.ts.html +247 -0
- package/coverage/lcov-report/src/locales/ja/parsers/index.html +131 -0
- package/coverage/lcov-report/src/locales/ja/refiners/JPMergeDateRangeRefiner.ts.html +124 -0
- package/coverage/lcov-report/src/locales/ja/refiners/index.html +116 -0
- package/coverage/lcov-report/src/locales/nl/constants.ts.html +796 -0
- package/coverage/lcov-report/src/locales/nl/index.html +131 -0
- package/coverage/lcov-report/src/locales/nl/index.ts.html +304 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLCasualDateParser.ts.html +181 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLCasualDateTimeParser.ts.html +310 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLCasualTimeParser.ts.html +265 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLCasualYearMonthDayParser.ts.html +232 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLMonthNameMiddleEndianParser.ts.html +349 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLMonthNameParser.ts.html +235 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLRelativeDateFormatParser.ts.html +295 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLSlashMonthFormatParser.ts.html +163 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLTimeExpressionParser.ts.html +163 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLTimeUnitAgoFormatParser.ts.html +163 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.ts.html +166 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLTimeUnitLaterFormatParser.ts.html +166 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLTimeUnitWithinFormatParser.ts.html +130 -0
- package/coverage/lcov-report/src/locales/nl/parsers/NLWeekdayParser.ts.html +223 -0
- package/coverage/lcov-report/src/locales/nl/parsers/index.html +311 -0
- package/coverage/lcov-report/src/locales/nl/refiners/NLMergeDateRangeRefiner.ts.html +136 -0
- package/coverage/lcov-report/src/locales/nl/refiners/NLMergeDateTimeRefiner.ts.html +124 -0
- package/coverage/lcov-report/src/locales/nl/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/pt/constants.ts.html +343 -0
- package/coverage/lcov-report/src/locales/pt/index.html +131 -0
- package/coverage/lcov-report/src/locales/pt/index.ts.html +256 -0
- package/coverage/lcov-report/src/locales/pt/parsers/PTCasualDateParser.ts.html +181 -0
- package/coverage/lcov-report/src/locales/pt/parsers/PTCasualTimeParser.ts.html +226 -0
- package/coverage/lcov-report/src/locales/pt/parsers/PTMonthNameLittleEndianParser.ts.html +265 -0
- package/coverage/lcov-report/src/locales/pt/parsers/PTTimeExpressionParser.ts.html +145 -0
- package/coverage/lcov-report/src/locales/pt/parsers/PTWeekdayParser.ts.html +235 -0
- package/coverage/lcov-report/src/locales/pt/parsers/index.html +176 -0
- package/coverage/lcov-report/src/locales/pt/refiners/PTMergeDateRangeRefiner.ts.html +130 -0
- package/coverage/lcov-report/src/locales/pt/refiners/PTMergeDateTimeRefiner.ts.html +115 -0
- package/coverage/lcov-report/src/locales/pt/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/ru/constants.ts.html +1111 -0
- package/coverage/lcov-report/src/locales/ru/index.html +131 -0
- package/coverage/lcov-report/src/locales/ru/index.ts.html +337 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUCasualDateParser.ts.html +217 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUCasualTimeParser.ts.html +253 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUMonthNameLittleEndianParser.ts.html +301 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUMonthNameParser.ts.html +268 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RURelativeDateFormatParser.ts.html +310 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUTimeExpressionParser.ts.html +277 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUTimeUnitAgoFormatParser.ts.html +157 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts.html +187 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUTimeUnitWithinFormatParser.ts.html +157 -0
- package/coverage/lcov-report/src/locales/ru/parsers/RUWeekdayParser.ts.html +256 -0
- package/coverage/lcov-report/src/locales/ru/parsers/index.html +251 -0
- package/coverage/lcov-report/src/locales/ru/refiners/RUMergeDateRangeRefiner.ts.html +124 -0
- package/coverage/lcov-report/src/locales/ru/refiners/RUMergeDateTimeRefiner.ts.html +124 -0
- package/coverage/lcov-report/src/locales/ru/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/zh/hans/constants.ts.html +241 -0
- package/coverage/lcov-report/src/locales/zh/hans/index.html +131 -0
- package/coverage/lcov-report/src/locales/zh/hans/index.ts.html +271 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansCasualDateParser.ts.html +469 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansDateParser.ts.html +310 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.ts.html +328 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.ts.html +292 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansTimeExpressionParser.ts.html +1357 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/ZHHansWeekdayParser.ts.html +223 -0
- package/coverage/lcov-report/src/locales/zh/hans/parsers/index.html +191 -0
- package/coverage/lcov-report/src/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.ts.html +106 -0
- package/coverage/lcov-report/src/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.ts.html +106 -0
- package/coverage/lcov-report/src/locales/zh/hans/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/zh/hant/constants.ts.html +244 -0
- package/coverage/lcov-report/src/locales/zh/hant/index.html +131 -0
- package/coverage/lcov-report/src/locales/zh/hant/index.ts.html +274 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantCasualDateParser.ts.html +469 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantDateParser.ts.html +289 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.ts.html +328 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.ts.html +292 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantTimeExpressionParser.ts.html +1357 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/ZHHantWeekdayParser.ts.html +223 -0
- package/coverage/lcov-report/src/locales/zh/hant/parsers/index.html +191 -0
- package/coverage/lcov-report/src/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.ts.html +106 -0
- package/coverage/lcov-report/src/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.ts.html +106 -0
- package/coverage/lcov-report/src/locales/zh/hant/refiners/index.html +131 -0
- package/coverage/lcov-report/src/locales/zh/index.html +116 -0
- package/coverage/lcov-report/src/locales/zh/index.ts.html +91 -0
- package/coverage/lcov-report/src/options.js.html +1085 -0
- package/coverage/lcov-report/src/parsers/de/DECasualDateParser.js.html +368 -0
- package/coverage/lcov-report/src/parsers/de/DEDeadlineFormatParser.js.html +374 -0
- package/coverage/lcov-report/src/parsers/de/DEMonthNameLittleEndianParser.js.html +347 -0
- package/coverage/lcov-report/src/parsers/de/DEMonthNameParser.js.html +329 -0
- package/coverage/lcov-report/src/parsers/de/DESlashDateFormatParser.js.html +398 -0
- package/coverage/lcov-report/src/parsers/de/DETimeAgoFormatParser.js.html +401 -0
- package/coverage/lcov-report/src/parsers/de/DETimeExpressionParser.js.html +836 -0
- package/coverage/lcov-report/src/parsers/de/DEWeekdayParser.js.html +338 -0
- package/coverage/lcov-report/src/parsers/de/index.html +216 -0
- package/coverage/lcov-report/src/parsers/en/ENCasualDateParser.js.html +275 -0
- package/coverage/lcov-report/src/parsers/en/ENCasualTimeParser.js.html +242 -0
- package/coverage/lcov-report/src/parsers/en/ENDeadlineFormatParser.js.html +359 -0
- package/coverage/lcov-report/src/parsers/en/ENISOFormatParser.js.html +389 -0
- package/coverage/lcov-report/src/parsers/en/ENMonthNameLittleEndianParser.js.html +416 -0
- package/coverage/lcov-report/src/parsers/en/ENMonthNameMiddleEndianParser.js.html +437 -0
- package/coverage/lcov-report/src/parsers/en/ENMonthNameParser.js.html +320 -0
- package/coverage/lcov-report/src/parsers/en/ENRelativeDateFormatParser.js.html +518 -0
- package/coverage/lcov-report/src/parsers/en/ENSlashDateFormatParser.js.html +479 -0
- package/coverage/lcov-report/src/parsers/en/ENSlashDateFormatStartWithYearParser.js.html +245 -0
- package/coverage/lcov-report/src/parsers/en/ENSlashMonthFormatParser.js.html +221 -0
- package/coverage/lcov-report/src/parsers/en/ENTimeAgoFormatParser.js.html +287 -0
- package/coverage/lcov-report/src/parsers/en/ENTimeExpressionParser.js.html +869 -0
- package/coverage/lcov-report/src/parsers/en/ENTimeLaterFormatParser.js.html +305 -0
- package/coverage/lcov-report/src/parsers/en/ENWeekdayParser.js.html +356 -0
- package/coverage/lcov-report/src/parsers/en/index.html +321 -0
- package/coverage/lcov-report/src/parsers/es/ESCasualDateParser.js.html +452 -0
- package/coverage/lcov-report/src/parsers/es/ESDeadlineFormatParser.js.html +260 -0
- package/coverage/lcov-report/src/parsers/es/ESMonthNameLittleEndianParser.js.html +338 -0
- package/coverage/lcov-report/src/parsers/es/ESSlashDateFormatParser.js.html +419 -0
- package/coverage/lcov-report/src/parsers/es/ESTimeAgoFormatParser.js.html +341 -0
- package/coverage/lcov-report/src/parsers/es/ESTimeExpressionParser.js.html +782 -0
- package/coverage/lcov-report/src/parsers/es/ESWeekdayParser.js.html +260 -0
- package/coverage/lcov-report/src/parsers/es/index.html +201 -0
- package/coverage/lcov-report/src/parsers/fr/FRCasualDateParser.js.html +311 -0
- package/coverage/lcov-report/src/parsers/fr/FRDeadlineFormatParser.js.html +359 -0
- package/coverage/lcov-report/src/parsers/fr/FRMonthNameLittleEndianParser.js.html +338 -0
- package/coverage/lcov-report/src/parsers/fr/FRRelativeDateFormatParser.js.html +545 -0
- package/coverage/lcov-report/src/parsers/fr/FRSlashDateFormatParser.js.html +437 -0
- package/coverage/lcov-report/src/parsers/fr/FRTimeAgoFormatParser.js.html +341 -0
- package/coverage/lcov-report/src/parsers/fr/FRTimeExpressionParser.js.html +803 -0
- package/coverage/lcov-report/src/parsers/fr/FRWeekdayParser.js.html +257 -0
- package/coverage/lcov-report/src/parsers/fr/index.html +216 -0
- package/coverage/lcov-report/src/parsers/index.html +111 -0
- package/coverage/lcov-report/src/parsers/ja/JPCasualDateParser.js.html +245 -0
- package/coverage/lcov-report/src/parsers/ja/JPStandardParser.js.html +293 -0
- package/coverage/lcov-report/src/parsers/ja/index.html +126 -0
- package/coverage/lcov-report/src/parsers/nl/NLCasualDateParser.js.html +395 -0
- package/coverage/lcov-report/src/parsers/nl/NLCasualTimeParser.js.html +278 -0
- package/coverage/lcov-report/src/parsers/nl/NLMonthNameLittleEndianParser.js.html +383 -0
- package/coverage/lcov-report/src/parsers/nl/NLMonthNameParser.js.html +320 -0
- package/coverage/lcov-report/src/parsers/nl/NLSlashDateFormatParser.js.html +389 -0
- package/coverage/lcov-report/src/parsers/nl/NLTimeExpressionParser.js.html +836 -0
- package/coverage/lcov-report/src/parsers/nl/NLWeekdayParser.js.html +377 -0
- package/coverage/lcov-report/src/parsers/nl/index.html +201 -0
- package/coverage/lcov-report/src/parsers/parser.js.html +500 -0
- package/coverage/lcov-report/src/parsers/pt/PTCasualDateParser.js.html +449 -0
- package/coverage/lcov-report/src/parsers/pt/PTDeadlineFormatParser.js.html +263 -0
- package/coverage/lcov-report/src/parsers/pt/PTMonthNameLittleEndianParser.js.html +338 -0
- package/coverage/lcov-report/src/parsers/pt/PTSlashDateFormatParser.js.html +419 -0
- package/coverage/lcov-report/src/parsers/pt/PTTimeAgoFormatParser.js.html +341 -0
- package/coverage/lcov-report/src/parsers/pt/PTTimeExpressionParser.js.html +782 -0
- package/coverage/lcov-report/src/parsers/pt/PTWeekdayParser.js.html +260 -0
- package/coverage/lcov-report/src/parsers/pt/index.html +201 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/ZHHantCasualDateParser.js.html +494 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/ZHHantDateParser.js.html +281 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/ZHHantDeadlineFormatParser.js.html +353 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/ZHHantTimeExpressionParser.js.html +1346 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/ZHHantWeekdayParser.js.html +239 -0
- package/coverage/lcov-report/src/parsers/zh-Hant/index.html +171 -0
- package/coverage/lcov-report/src/refiners/ExtractTimezoneAbbrRefiner.js.html +245 -0
- package/coverage/lcov-report/src/refiners/ExtractTimezoneOffsetRefiner.js.html +218 -0
- package/coverage/lcov-report/src/refiners/ForwardDateRefiner.js.html +239 -0
- package/coverage/lcov-report/src/refiners/OverlapRemovalRefiner.js.html +200 -0
- package/coverage/lcov-report/src/refiners/UnlikelyFormatFilter.js.html +131 -0
- package/coverage/lcov-report/src/refiners/de/DEMergeDateRangeRefiner.js.html +116 -0
- package/coverage/lcov-report/src/refiners/de/DEMergeDateTimeRefiner.js.html +377 -0
- package/coverage/lcov-report/src/refiners/de/index.html +126 -0
- package/coverage/lcov-report/src/refiners/en/ENMergeDateRangeRefiner.js.html +416 -0
- package/coverage/lcov-report/src/refiners/en/ENMergeDateTimeRefiner.js.html +533 -0
- package/coverage/lcov-report/src/refiners/en/ENPrioritizeSpecificDateRefiner.js.html +422 -0
- package/coverage/lcov-report/src/refiners/en/index.html +141 -0
- package/coverage/lcov-report/src/refiners/fr/FRMergeDateRangeRefiner.js.html +374 -0
- package/coverage/lcov-report/src/refiners/fr/FRMergeDateTimeRefiner.js.html +395 -0
- package/coverage/lcov-report/src/refiners/fr/index.html +126 -0
- package/coverage/lcov-report/src/refiners/index.html +186 -0
- package/coverage/lcov-report/src/refiners/ja/JPMergeDateRangeRefiner.js.html +113 -0
- package/coverage/lcov-report/src/refiners/ja/index.html +111 -0
- package/coverage/lcov-report/src/refiners/nl/NLMergeDateRangeRefiner.js.html +116 -0
- package/coverage/lcov-report/src/refiners/nl/NLMergeDateTimeRefiner.js.html +362 -0
- package/coverage/lcov-report/src/refiners/nl/index.html +126 -0
- package/coverage/lcov-report/src/refiners/refiner.js.html +239 -0
- package/coverage/lcov-report/src/result.js.html +545 -0
- package/coverage/lcov-report/src/results.ts.html +916 -0
- package/coverage/lcov-report/src/timezone.ts.html +700 -0
- package/coverage/lcov-report/src/utils/DE.js.html +308 -0
- package/coverage/lcov-report/src/utils/EN.js.html +596 -0
- package/coverage/lcov-report/src/utils/ES.js.html +254 -0
- package/coverage/lcov-report/src/utils/FR.js.html +302 -0
- package/coverage/lcov-report/src/utils/JP.js.html +215 -0
- package/coverage/lcov-report/src/utils/NL.js.html +620 -0
- package/coverage/lcov-report/src/utils/PT.js.html +263 -0
- package/coverage/lcov-report/src/utils/ParserWithWordEndingDetection.ts.html +176 -0
- package/coverage/lcov-report/src/utils/ZH-Hant.js.html +236 -0
- package/coverage/lcov-report/src/utils/dayjs.ts.html +223 -0
- package/coverage/lcov-report/src/utils/index.html +146 -0
- package/coverage/lcov-report/src/utils/pattern.ts.html +175 -0
- package/coverage/lcov-report/src/utils/timeunits.ts.html +199 -0
- package/coverage/lcov-report/test/index.html +116 -0
- package/coverage/lcov-report/test/test_util.js.html +299 -0
- package/coverage/lcov-report/test/test_util.ts.html +490 -0
- package/coverage/lcov.info +8049 -0
- package/dist/common/casualReferences.d.ts +1 -0
- package/dist/common/casualReferences.js +23 -2
- package/dist/common/casualReferences.js.map +1 -1
- package/dist/common/parsers/SlashDateFormatParser.js +5 -3
- package/dist/common/parsers/SlashDateFormatParser.js.map +1 -1
- package/dist/common/refiners/AbstractMergeDateTimeRefiner.d.ts +1 -1
- package/dist/common/refiners/AbstractMergeDateTimeRefiner.js +2 -2
- package/dist/common/refiners/AbstractMergeDateTimeRefiner.js.map +1 -1
- package/dist/common/refiners/ForwardDateRefiner.js +12 -0
- package/dist/common/refiners/ForwardDateRefiner.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/locales/en/constants.js +6 -0
- package/dist/locales/en/constants.js.map +1 -1
- package/dist/locales/en/parsers/ENCasualTimeParser.js +27 -26
- package/dist/locales/en/parsers/ENCasualTimeParser.js.map +1 -1
- package/dist/locales/es/constants.d.ts +8 -0
- package/dist/locales/es/constants.js +84 -0
- package/dist/locales/es/constants.js.map +1 -0
- package/dist/locales/es/index.d.ts +8 -0
- package/dist/locales/es/index.js +46 -0
- package/dist/locales/es/index.js.map +1 -0
- package/dist/locales/es/parsers/ESCasualDateParser.d.ts +7 -0
- package/dist/locales/es/parsers/ESCasualDateParser.js +45 -0
- package/dist/locales/es/parsers/ESCasualDateParser.js.map +1 -0
- package/dist/locales/es/parsers/ESCasualTimeParser.d.ts +6 -0
- package/dist/locales/es/parsers/ESCasualTimeParser.js +46 -0
- package/dist/locales/es/parsers/ESCasualTimeParser.js.map +1 -0
- package/dist/locales/es/parsers/ESMonthNameLittleEndianParser.d.ts +7 -0
- package/dist/locales/es/parsers/ESMonthNameLittleEndianParser.js +49 -0
- package/dist/locales/es/parsers/ESMonthNameLittleEndianParser.js.map +1 -0
- package/dist/locales/es/parsers/ESTimeExpressionParser.d.ts +5 -0
- package/dist/locales/es/parsers/ESTimeExpressionParser.js +13 -0
- package/dist/locales/es/parsers/ESTimeExpressionParser.js.map +1 -0
- package/dist/locales/es/parsers/ESWeekdayParser.d.ts +7 -0
- package/dist/locales/es/parsers/ESWeekdayParser.js +44 -0
- package/dist/locales/es/parsers/ESWeekdayParser.js.map +1 -0
- package/dist/locales/es/refiners/ESMergeDateRangeRefiner.d.ts +4 -0
- package/dist/locales/es/refiners/ESMergeDateRangeRefiner.js +13 -0
- package/dist/locales/es/refiners/ESMergeDateRangeRefiner.js.map +1 -0
- package/dist/locales/es/refiners/ESMergeDateTimeRefiner.d.ts +4 -0
- package/dist/locales/es/refiners/ESMergeDateTimeRefiner.js +13 -0
- package/dist/locales/es/refiners/ESMergeDateTimeRefiner.js.map +1 -0
- package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js +1 -1
- package/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js.map +1 -1
- package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js +26 -26
- package/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js.map +1 -1
- package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js +26 -26
- package/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js.map +1 -1
- package/dist/utils/dayjs.d.ts +2 -0
- package/dist/utils/dayjs.js +13 -1
- package/dist/utils/dayjs.js.map +1 -1
- package/docs/assets/css/main.css +2660 -0
- package/docs/assets/images/icons.png +0 -0
- package/docs/assets/images/icons@2x.png +0 -0
- package/docs/assets/images/widgets.png +0 -0
- package/docs/assets/images/widgets@2x.png +0 -0
- package/docs/assets/js/main.js +248 -0
- package/docs/assets/js/search.js +1 -0
- package/docs/classes/chrono.html +377 -0
- package/docs/enums/meridiem.html +191 -0
- package/docs/index.html +329 -0
- package/docs/interfaces/parsedcomponents.html +270 -0
- package/docs/interfaces/parsedresult.html +283 -0
- package/docs/interfaces/parser.html +240 -0
- package/docs/interfaces/parsingoption.html +218 -0
- package/docs/interfaces/refiner.html +218 -0
- package/docs/modules/de.html +298 -0
- package/docs/modules/en.html +361 -0
- package/docs/modules/fr.html +248 -0
- package/docs/modules/ja.html +248 -0
- package/docs/modules/nl.html +275 -0
- package/docs/modules/pt.html +248 -0
- package/package.json +1 -1
- package/src/common/casualReferences.ts +31 -2
- package/src/common/parsers/SlashDateFormatParser.ts +7 -6
- package/src/common/refiners/AbstractMergeDateTimeRefiner.ts +1 -1
- package/src/common/refiners/ForwardDateRefiner.ts +13 -0
- package/src/index.ts +2 -1
- package/src/locales/en/constants.ts +6 -0
- package/src/locales/en/parsers/ENCasualTimeParser.ts +9 -31
- package/src/locales/es/constants.ts +85 -0
- package/src/locales/es/index.ts +57 -0
- package/src/locales/es/parsers/ESCasualDateParser.ts +31 -0
- package/src/locales/es/parsers/ESCasualTimeParser.ts +47 -0
- package/src/locales/es/parsers/ESMonthNameLittleEndianParser.ts +60 -0
- package/src/locales/es/parsers/ESTimeExpressionParser.ts +20 -0
- package/src/locales/es/parsers/ESWeekdayParser.ts +50 -0
- package/src/locales/es/refiners/ESMergeDateRangeRefiner.ts +15 -0
- package/src/locales/es/refiners/ESMergeDateTimeRefiner.ts +10 -0
- package/src/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.ts +1 -1
- package/src/locales/ru/refiners/RUMergeDateTimeRefiner.ts +1 -1
- package/src/locales/zh/hans/parsers/ZHHansTimeExpressionParser.ts +26 -26
- package/src/locales/zh/hant/parsers/ZHHantTimeExpressionParser.ts +26 -26
- package/src/utils/dayjs.ts +12 -0
- package/test/en/en_casual.test.ts +34 -4
- package/test/en/en_slash.test.ts +12 -11
- package/test/en/en_time_exp.test.ts +53 -0
- package/test/en/en_time_units_ago.test.ts +17 -0
- package/test/en/en_time_units_later.test.ts +30 -0
- package/test/en/negative_cases.test.ts +11 -0
- package/test/es/es_casual.test.ts +175 -0
- package/test/es/es_month_name_little_endian.test.ts +217 -0
- package/test/es/es_slash.test.ts +26 -0
- package/test/es/es_time_exp.test.ts +175 -0
- package/test/ru/ru_time_units_casual_relative.test.ts +12 -0
- package/test/zh/zh_hans_time_exp.test.ts +15 -0
- package/test/zh/zh_hant_time_exp.test.ts +14 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ParsingContext } from "../../../chrono";
|
|
2
|
+
import { Meridiem } from "../../../index";
|
|
3
|
+
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
4
|
+
import { assignTheNextDay } from "../../../utils/dayjs";
|
|
5
|
+
import dayjs from "dayjs";
|
|
6
|
+
|
|
7
|
+
export default class ESCasualTimeParser extends AbstractParserWithWordBoundaryChecking {
|
|
8
|
+
innerPattern() {
|
|
9
|
+
return /(?:esta\s*)?(mañana|tarde|medianoche|mediodia|mediodía|noche)(?=\W|$)/i;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
innerExtract(context: ParsingContext, match: RegExpMatchArray) {
|
|
13
|
+
const targetDate = dayjs(context.refDate);
|
|
14
|
+
const component = context.createParsingComponents();
|
|
15
|
+
switch (match[1].toLowerCase()) {
|
|
16
|
+
case "tarde":
|
|
17
|
+
component.imply("meridiem", Meridiem.PM);
|
|
18
|
+
component.imply("hour", 15);
|
|
19
|
+
break;
|
|
20
|
+
|
|
21
|
+
case "noche":
|
|
22
|
+
component.imply("meridiem", Meridiem.PM);
|
|
23
|
+
component.imply("hour", 22);
|
|
24
|
+
break;
|
|
25
|
+
|
|
26
|
+
case "mañana":
|
|
27
|
+
component.imply("meridiem", Meridiem.AM);
|
|
28
|
+
component.imply("hour", 6);
|
|
29
|
+
break;
|
|
30
|
+
|
|
31
|
+
case "medianoche":
|
|
32
|
+
assignTheNextDay(component, targetDate);
|
|
33
|
+
component.imply("hour", 0);
|
|
34
|
+
component.imply("minute", 0);
|
|
35
|
+
component.imply("second", 0);
|
|
36
|
+
break;
|
|
37
|
+
|
|
38
|
+
case "mediodia":
|
|
39
|
+
case "mediodía":
|
|
40
|
+
component.imply("meridiem", Meridiem.AM);
|
|
41
|
+
component.imply("hour", 12);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return component;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ParsingContext } from "../../../chrono";
|
|
2
|
+
import { ParsingResult } from "../../../results";
|
|
3
|
+
import { findYearClosestToRef } from "../../../calculation/years";
|
|
4
|
+
import { MONTH_DICTIONARY } from "../constants";
|
|
5
|
+
import { YEAR_PATTERN, parseYear } from "../constants";
|
|
6
|
+
import { matchAnyPattern } from "../../../utils/pattern";
|
|
7
|
+
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
8
|
+
|
|
9
|
+
const PATTERN = new RegExp(
|
|
10
|
+
`([0-9]{1,2})(?:º|ª|°)?` +
|
|
11
|
+
"(?:\\s*(?:desde|de|\\-|\\–|ao?|\\s)\\s*([0-9]{1,2})(?:º|ª|°)?)?\\s*(?:de)?\\s*" +
|
|
12
|
+
`(?:-|/|\\s*(?:de|,)?\\s*)` +
|
|
13
|
+
`(${matchAnyPattern(MONTH_DICTIONARY)})` +
|
|
14
|
+
`(?:\\s*(?:de|,)?\\s*(${YEAR_PATTERN}))?` +
|
|
15
|
+
`(?=\\W|$)`,
|
|
16
|
+
"i"
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const DATE_GROUP = 1;
|
|
20
|
+
const DATE_TO_GROUP = 2;
|
|
21
|
+
const MONTH_NAME_GROUP = 3;
|
|
22
|
+
const YEAR_GROUP = 4;
|
|
23
|
+
|
|
24
|
+
export default class ESMonthNameLittleEndianParser extends AbstractParserWithWordBoundaryChecking {
|
|
25
|
+
innerPattern(): RegExp {
|
|
26
|
+
return PATTERN;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingResult {
|
|
30
|
+
const result = context.createParsingResult(match.index, match[0]);
|
|
31
|
+
|
|
32
|
+
const month = MONTH_DICTIONARY[match[MONTH_NAME_GROUP].toLowerCase()];
|
|
33
|
+
const day = parseInt(match[DATE_GROUP]);
|
|
34
|
+
if (day > 31) {
|
|
35
|
+
// e.g. "[96 Aug]" => "9[6 Aug]", we need to shift away from the next number
|
|
36
|
+
match.index = match.index + match[DATE_GROUP].length;
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
result.start.assign("month", month);
|
|
41
|
+
result.start.assign("day", day);
|
|
42
|
+
|
|
43
|
+
if (match[YEAR_GROUP]) {
|
|
44
|
+
const yearNumber = parseYear(match[YEAR_GROUP]);
|
|
45
|
+
result.start.assign("year", yearNumber);
|
|
46
|
+
} else {
|
|
47
|
+
const year = findYearClosestToRef(context.refDate, day, month);
|
|
48
|
+
result.start.imply("year", year);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (match[DATE_TO_GROUP]) {
|
|
52
|
+
const endDate = parseInt(match[DATE_TO_GROUP]);
|
|
53
|
+
|
|
54
|
+
result.end = result.start.clone();
|
|
55
|
+
result.end.assign("day", endDate);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AbstractTimeExpressionParser } from "../../../common/parsers/AbstractTimeExpressionParser";
|
|
2
|
+
|
|
3
|
+
export default class ESTimeExpressionParser extends AbstractTimeExpressionParser {
|
|
4
|
+
primaryPrefix(): string {
|
|
5
|
+
return "(?:(?:aslas|deslas|las?|al?|de|del)\\s*)?";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
followingPhase(): string {
|
|
9
|
+
return "\\s*(?:\\-|\\–|\\~|\\〜|a(?:l)?|\\?)\\s*";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// extractPrimaryTimeComponents(context: ParsingContext, match: RegExpMatchArray): ParsingComponents | null {
|
|
13
|
+
// // This looks more like a year e.g. 2020
|
|
14
|
+
// // if (match[0].match(/^\s*\d{4}\s*$/)) {
|
|
15
|
+
// // return null;
|
|
16
|
+
// // }
|
|
17
|
+
//
|
|
18
|
+
// return super.extractPrimaryTimeComponents(context, match);
|
|
19
|
+
// }
|
|
20
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ParsingContext } from "../../../chrono";
|
|
2
|
+
import { ParsingComponents } from "../../../results";
|
|
3
|
+
import { WEEKDAY_DICTIONARY } from "../constants";
|
|
4
|
+
import { matchAnyPattern } from "../../../utils/pattern";
|
|
5
|
+
import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/AbstractParserWithWordBoundary";
|
|
6
|
+
import { createParsingComponentsAtWeekday } from "../../../common/calculation/weekdays";
|
|
7
|
+
|
|
8
|
+
const PATTERN = new RegExp(
|
|
9
|
+
"(?:(?:\\,|\\(|\\()\\s*)?" +
|
|
10
|
+
"(?:(este|esta|pasado|pr[oó]ximo)\\s*)?" +
|
|
11
|
+
`(${matchAnyPattern(WEEKDAY_DICTIONARY)})` +
|
|
12
|
+
"(?:\\s*(?:\\,|\\)|\\)))?" +
|
|
13
|
+
"(?:\\s*(este|esta|pasado|pr[óo]ximo)\\s*semana)?" +
|
|
14
|
+
"(?=\\W|\\d|$)",
|
|
15
|
+
"i"
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const PREFIX_GROUP = 1;
|
|
19
|
+
const WEEKDAY_GROUP = 2;
|
|
20
|
+
const POSTFIX_GROUP = 3;
|
|
21
|
+
|
|
22
|
+
export default class ESWeekdayParser extends AbstractParserWithWordBoundaryChecking {
|
|
23
|
+
innerPattern(): RegExp {
|
|
24
|
+
return PATTERN;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
innerExtract(context: ParsingContext, match: RegExpMatchArray): ParsingComponents {
|
|
28
|
+
const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();
|
|
29
|
+
const weekday = WEEKDAY_DICTIONARY[dayOfWeek];
|
|
30
|
+
if (weekday === undefined) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const prefix = match[PREFIX_GROUP];
|
|
35
|
+
const postfix = match[POSTFIX_GROUP];
|
|
36
|
+
let norm = prefix || postfix || "";
|
|
37
|
+
norm = norm.toLowerCase();
|
|
38
|
+
|
|
39
|
+
let modifier = null;
|
|
40
|
+
if (norm == "pasado") {
|
|
41
|
+
modifier = "this";
|
|
42
|
+
} else if (norm == "próximo" || norm == "proximo") {
|
|
43
|
+
modifier = "next";
|
|
44
|
+
} else if (norm == "este") {
|
|
45
|
+
modifier = "this";
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return createParsingComponentsAtWeekday(context.reference, weekday, modifier);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import AbstractMergeDateRangeRefiner from "../../../common/refiners/AbstractMergeDateRangeRefiner";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Merging before and after results (see. AbstractMergeDateRangeRefiner)
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export default class ESMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner {
|
|
12
|
+
patternBetween(): RegExp {
|
|
13
|
+
return /^\s*(?:-)\s*$/i;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMergeDateTimeRefiner";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Merging date-only result and time-only result (see. AbstractMergeDateTimeRefiner).
|
|
5
|
+
*/
|
|
6
|
+
export default class ESMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner {
|
|
7
|
+
patternBetween(): RegExp {
|
|
8
|
+
return new RegExp("^\\s*(?:,|de|aslas|a)?\\s*$");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -5,7 +5,7 @@ import { AbstractParserWithWordBoundaryChecking } from "../../../common/parsers/
|
|
|
5
5
|
import { reverseTimeUnits } from "../../../utils/timeunits";
|
|
6
6
|
|
|
7
7
|
const PATTERN = new RegExp(
|
|
8
|
-
`(
|
|
8
|
+
`(эти|последние|прошлые|следующие|после|спустя|через|\\+|-)\\s*(${TIME_UNITS_PATTERN})${REGEX_PARTS.rightBoundary}`,
|
|
9
9
|
REGEX_PARTS.flags
|
|
10
10
|
);
|
|
11
11
|
|
|
@@ -2,7 +2,7 @@ import AbstractMergeDateTimeRefiner from "../../../common/refiners/AbstractMerge
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Merging date-only result and time-only result (see. AbstractMergeDateTimeRefiner).
|
|
5
|
-
* This implementation should provide
|
|
5
|
+
* This implementation should provide Russian connecting phases
|
|
6
6
|
* - 2020-02-13 [в] 6:00
|
|
7
7
|
* - Завтра [,] 7:00
|
|
8
8
|
*/
|
|
@@ -76,7 +76,7 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
76
76
|
|
|
77
77
|
const refMoment = dayjs(context.refDate);
|
|
78
78
|
const result = context.createParsingResult(match.index, match[0]);
|
|
79
|
-
|
|
79
|
+
let startMoment = refMoment.clone();
|
|
80
80
|
|
|
81
81
|
// ----- Day
|
|
82
82
|
if (match[DAY_GROUP_1]) {
|
|
@@ -84,18 +84,18 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
84
84
|
if (day1 == "明") {
|
|
85
85
|
// Check not "Tomorrow" on late night
|
|
86
86
|
if (refMoment.hour() > 1) {
|
|
87
|
-
startMoment.add(1, "day");
|
|
87
|
+
startMoment = startMoment.add(1, "day");
|
|
88
88
|
}
|
|
89
89
|
} else if (day1 == "昨") {
|
|
90
|
-
startMoment.add(-1, "day");
|
|
90
|
+
startMoment = startMoment.add(-1, "day");
|
|
91
91
|
} else if (day1 == "前") {
|
|
92
|
-
startMoment.add(-2, "day");
|
|
92
|
+
startMoment = startMoment.add(-2, "day");
|
|
93
93
|
} else if (day1 == "大前") {
|
|
94
|
-
startMoment.add(-3, "day");
|
|
94
|
+
startMoment = startMoment.add(-3, "day");
|
|
95
95
|
} else if (day1 == "后") {
|
|
96
|
-
startMoment.add(2, "day");
|
|
96
|
+
startMoment = startMoment.add(2, "day");
|
|
97
97
|
} else if (day1 == "大后") {
|
|
98
|
-
startMoment.add(3, "day");
|
|
98
|
+
startMoment = startMoment.add(3, "day");
|
|
99
99
|
}
|
|
100
100
|
result.start.assign("day", startMoment.date());
|
|
101
101
|
result.start.assign("month", startMoment.month() + 1);
|
|
@@ -103,17 +103,17 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
103
103
|
} else if (match[DAY_GROUP_3]) {
|
|
104
104
|
const day3 = match[DAY_GROUP_3];
|
|
105
105
|
if (day3 == "明") {
|
|
106
|
-
startMoment.add(1, "day");
|
|
106
|
+
startMoment = startMoment.add(1, "day");
|
|
107
107
|
} else if (day3 == "昨") {
|
|
108
|
-
startMoment.add(-1, "day");
|
|
108
|
+
startMoment = startMoment.add(-1, "day");
|
|
109
109
|
} else if (day3 == "前") {
|
|
110
|
-
startMoment.add(-2, "day");
|
|
110
|
+
startMoment = startMoment.add(-2, "day");
|
|
111
111
|
} else if (day3 == "大前") {
|
|
112
|
-
startMoment.add(-3, "day");
|
|
112
|
+
startMoment = startMoment.add(-3, "day");
|
|
113
113
|
} else if (day3 == "后") {
|
|
114
|
-
startMoment.add(2, "day");
|
|
114
|
+
startMoment = startMoment.add(2, "day");
|
|
115
115
|
} else if (day3 == "大后") {
|
|
116
|
-
startMoment.add(3, "day");
|
|
116
|
+
startMoment = startMoment.add(3, "day");
|
|
117
117
|
}
|
|
118
118
|
result.start.assign("day", startMoment.date());
|
|
119
119
|
result.start.assign("month", startMoment.month() + 1);
|
|
@@ -242,7 +242,7 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
242
242
|
return result;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
let endMoment = startMoment.clone();
|
|
246
246
|
result.end = context.createParsingComponents();
|
|
247
247
|
|
|
248
248
|
// ----- Day
|
|
@@ -251,18 +251,18 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
251
251
|
if (day1 == "明") {
|
|
252
252
|
// Check not "Tomorrow" on late night
|
|
253
253
|
if (refMoment.hour() > 1) {
|
|
254
|
-
endMoment.add(1, "day");
|
|
254
|
+
endMoment = endMoment.add(1, "day");
|
|
255
255
|
}
|
|
256
256
|
} else if (day1 == "昨") {
|
|
257
|
-
endMoment.add(-1, "day");
|
|
257
|
+
endMoment = endMoment.add(-1, "day");
|
|
258
258
|
} else if (day1 == "前") {
|
|
259
|
-
endMoment.add(-2, "day");
|
|
259
|
+
endMoment = endMoment.add(-2, "day");
|
|
260
260
|
} else if (day1 == "大前") {
|
|
261
|
-
endMoment.add(-3, "day");
|
|
261
|
+
endMoment = endMoment.add(-3, "day");
|
|
262
262
|
} else if (day1 == "后") {
|
|
263
|
-
endMoment.add(2, "day");
|
|
263
|
+
endMoment = endMoment.add(2, "day");
|
|
264
264
|
} else if (day1 == "大后") {
|
|
265
|
-
endMoment.add(3, "day");
|
|
265
|
+
endMoment = endMoment.add(3, "day");
|
|
266
266
|
}
|
|
267
267
|
result.end.assign("day", endMoment.date());
|
|
268
268
|
result.end.assign("month", endMoment.month() + 1);
|
|
@@ -270,17 +270,17 @@ export default class ZHHansTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
270
270
|
} else if (match[DAY_GROUP_3]) {
|
|
271
271
|
const day3 = match[DAY_GROUP_3];
|
|
272
272
|
if (day3 == "明") {
|
|
273
|
-
endMoment.add(1, "day");
|
|
273
|
+
endMoment = endMoment.add(1, "day");
|
|
274
274
|
} else if (day3 == "昨") {
|
|
275
|
-
endMoment.add(-1, "day");
|
|
275
|
+
endMoment = endMoment.add(-1, "day");
|
|
276
276
|
} else if (day3 == "前") {
|
|
277
|
-
endMoment.add(-2, "day");
|
|
277
|
+
endMoment = endMoment.add(-2, "day");
|
|
278
278
|
} else if (day3 == "大前") {
|
|
279
|
-
endMoment.add(-3, "day");
|
|
279
|
+
endMoment = endMoment.add(-3, "day");
|
|
280
280
|
} else if (day3 == "后") {
|
|
281
|
-
endMoment.add(2, "day");
|
|
281
|
+
endMoment = endMoment.add(2, "day");
|
|
282
282
|
} else if (day3 == "大后") {
|
|
283
|
-
endMoment.add(3, "day");
|
|
283
|
+
endMoment = endMoment.add(3, "day");
|
|
284
284
|
}
|
|
285
285
|
result.end.assign("day", endMoment.date());
|
|
286
286
|
result.end.assign("month", endMoment.month() + 1);
|
|
@@ -76,7 +76,7 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
76
76
|
|
|
77
77
|
const refMoment = dayjs(context.refDate);
|
|
78
78
|
const result = context.createParsingResult(match.index, match[0]);
|
|
79
|
-
|
|
79
|
+
let startMoment = refMoment.clone();
|
|
80
80
|
|
|
81
81
|
// ----- Day
|
|
82
82
|
if (match[DAY_GROUP_1]) {
|
|
@@ -84,18 +84,18 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
84
84
|
if (day1 == "明" || day1 == "聽") {
|
|
85
85
|
// Check not "Tomorrow" on late night
|
|
86
86
|
if (refMoment.hour() > 1) {
|
|
87
|
-
startMoment.add(1, "day");
|
|
87
|
+
startMoment = startMoment.add(1, "day");
|
|
88
88
|
}
|
|
89
89
|
} else if (day1 == "昨" || day1 == "尋" || day1 == "琴") {
|
|
90
|
-
startMoment.add(-1, "day");
|
|
90
|
+
startMoment = startMoment.add(-1, "day");
|
|
91
91
|
} else if (day1 == "前") {
|
|
92
|
-
startMoment.add(-2, "day");
|
|
92
|
+
startMoment = startMoment.add(-2, "day");
|
|
93
93
|
} else if (day1 == "大前") {
|
|
94
|
-
startMoment.add(-3, "day");
|
|
94
|
+
startMoment = startMoment.add(-3, "day");
|
|
95
95
|
} else if (day1 == "後") {
|
|
96
|
-
startMoment.add(2, "day");
|
|
96
|
+
startMoment = startMoment.add(2, "day");
|
|
97
97
|
} else if (day1 == "大後") {
|
|
98
|
-
startMoment.add(3, "day");
|
|
98
|
+
startMoment = startMoment.add(3, "day");
|
|
99
99
|
}
|
|
100
100
|
result.start.assign("day", startMoment.date());
|
|
101
101
|
result.start.assign("month", startMoment.month() + 1);
|
|
@@ -103,17 +103,17 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
103
103
|
} else if (match[DAY_GROUP_3]) {
|
|
104
104
|
var day3 = match[DAY_GROUP_3];
|
|
105
105
|
if (day3 == "明" || day3 == "聽") {
|
|
106
|
-
startMoment.add(1, "day");
|
|
106
|
+
startMoment = startMoment.add(1, "day");
|
|
107
107
|
} else if (day3 == "昨" || day3 == "尋" || day3 == "琴") {
|
|
108
|
-
startMoment.add(-1, "day");
|
|
108
|
+
startMoment = startMoment.add(-1, "day");
|
|
109
109
|
} else if (day3 == "前") {
|
|
110
|
-
startMoment.add(-2, "day");
|
|
110
|
+
startMoment = startMoment.add(-2, "day");
|
|
111
111
|
} else if (day3 == "大前") {
|
|
112
|
-
startMoment.add(-3, "day");
|
|
112
|
+
startMoment = startMoment.add(-3, "day");
|
|
113
113
|
} else if (day3 == "後") {
|
|
114
|
-
startMoment.add(2, "day");
|
|
114
|
+
startMoment = startMoment.add(2, "day");
|
|
115
115
|
} else if (day3 == "大後") {
|
|
116
|
-
startMoment.add(3, "day");
|
|
116
|
+
startMoment = startMoment.add(3, "day");
|
|
117
117
|
}
|
|
118
118
|
result.start.assign("day", startMoment.date());
|
|
119
119
|
result.start.assign("month", startMoment.month() + 1);
|
|
@@ -242,7 +242,7 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
242
242
|
return result;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
let endMoment = startMoment.clone();
|
|
246
246
|
result.end = context.createParsingComponents();
|
|
247
247
|
|
|
248
248
|
// ----- Day
|
|
@@ -251,18 +251,18 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
251
251
|
if (day1 == "明" || day1 == "聽") {
|
|
252
252
|
// Check not "Tomorrow" on late night
|
|
253
253
|
if (refMoment.hour() > 1) {
|
|
254
|
-
endMoment.add(1, "day");
|
|
254
|
+
endMoment = endMoment.add(1, "day");
|
|
255
255
|
}
|
|
256
256
|
} else if (day1 == "昨" || day1 == "尋" || day1 == "琴") {
|
|
257
|
-
endMoment.add(-1, "day");
|
|
257
|
+
endMoment = endMoment.add(-1, "day");
|
|
258
258
|
} else if (day1 == "前") {
|
|
259
|
-
endMoment.add(-2, "day");
|
|
259
|
+
endMoment = endMoment.add(-2, "day");
|
|
260
260
|
} else if (day1 == "大前") {
|
|
261
|
-
endMoment.add(-3, "day");
|
|
261
|
+
endMoment = endMoment.add(-3, "day");
|
|
262
262
|
} else if (day1 == "後") {
|
|
263
|
-
endMoment.add(2, "day");
|
|
263
|
+
endMoment = endMoment.add(2, "day");
|
|
264
264
|
} else if (day1 == "大後") {
|
|
265
|
-
endMoment.add(3, "day");
|
|
265
|
+
endMoment = endMoment.add(3, "day");
|
|
266
266
|
}
|
|
267
267
|
result.end.assign("day", endMoment.date());
|
|
268
268
|
result.end.assign("month", endMoment.month() + 1);
|
|
@@ -270,17 +270,17 @@ export default class ZHHantTimeExpressionParser extends AbstractParserWithWordBo
|
|
|
270
270
|
} else if (match[DAY_GROUP_3]) {
|
|
271
271
|
var day3 = match[DAY_GROUP_3];
|
|
272
272
|
if (day3 == "明" || day3 == "聽") {
|
|
273
|
-
endMoment.add(1, "day");
|
|
273
|
+
endMoment = endMoment.add(1, "day");
|
|
274
274
|
} else if (day3 == "昨" || day3 == "尋" || day3 == "琴") {
|
|
275
|
-
endMoment.add(-1, "day");
|
|
275
|
+
endMoment = endMoment.add(-1, "day");
|
|
276
276
|
} else if (day3 == "前") {
|
|
277
|
-
endMoment.add(-2, "day");
|
|
277
|
+
endMoment = endMoment.add(-2, "day");
|
|
278
278
|
} else if (day3 == "大前") {
|
|
279
|
-
endMoment.add(-3, "day");
|
|
279
|
+
endMoment = endMoment.add(-3, "day");
|
|
280
280
|
} else if (day3 == "後") {
|
|
281
|
-
endMoment.add(2, "day");
|
|
281
|
+
endMoment = endMoment.add(2, "day");
|
|
282
282
|
} else if (day3 == "大後") {
|
|
283
|
-
endMoment.add(3, "day");
|
|
283
|
+
endMoment = endMoment.add(3, "day");
|
|
284
284
|
}
|
|
285
285
|
result.end.assign("day", endMoment.date());
|
|
286
286
|
result.end.assign("month", endMoment.month() + 1);
|
package/src/utils/dayjs.ts
CHANGED
|
@@ -8,6 +8,12 @@ export function assignTheNextDay(component: ParsingComponents, targetDayJs: dayj
|
|
|
8
8
|
implySimilarTime(component, targetDayJs);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
export function implyTheNextDay(component: ParsingComponents, targetDayJs: dayjs.Dayjs) {
|
|
12
|
+
targetDayJs = targetDayJs.add(1, "day");
|
|
13
|
+
implySimilarDate(component, targetDayJs);
|
|
14
|
+
implySimilarTime(component, targetDayJs);
|
|
15
|
+
}
|
|
16
|
+
|
|
11
17
|
export function assignSimilarDate(component: ParsingComponents, targetDayJs: dayjs.Dayjs) {
|
|
12
18
|
component.assign("day", targetDayJs.date());
|
|
13
19
|
component.assign("month", targetDayJs.month() + 1);
|
|
@@ -26,6 +32,12 @@ export function assignSimilarTime(component: ParsingComponents, targetDayJs: day
|
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
34
|
|
|
35
|
+
export function implySimilarDate(component: ParsingComponents, targetDayJs: dayjs.Dayjs) {
|
|
36
|
+
component.imply("day", targetDayJs.date());
|
|
37
|
+
component.imply("month", targetDayJs.month() + 1);
|
|
38
|
+
component.imply("year", targetDayJs.year());
|
|
39
|
+
}
|
|
40
|
+
|
|
29
41
|
export function implySimilarTime(component: ParsingComponents, targetDayJs: dayjs.Dayjs) {
|
|
30
42
|
component.imply("hour", targetDayJs.hour());
|
|
31
43
|
component.imply("minute", targetDayJs.minute());
|
|
@@ -132,15 +132,35 @@ test("Test - Single Expression", () => {
|
|
|
132
132
|
expect(result.start.get("hour")).toBe(0);
|
|
133
133
|
});
|
|
134
134
|
|
|
135
|
-
// "Midnight" at 0~
|
|
136
|
-
|
|
137
|
-
testSingleCase(chrono.casual, "The Deadline was midnight ", new Date(2012, 7, 10, 1), (result) => {
|
|
135
|
+
// "Midnight" at 0~2AM, assume it's the passed midnight
|
|
136
|
+
testSingleCase(chrono.casual, "The Deadline was midnight ", new Date(2012, 8 - 1, 10, 1), (result) => {
|
|
138
137
|
expect(result.text).toBe("midnight");
|
|
139
138
|
expect(result.start.get("year")).toBe(2012);
|
|
140
139
|
expect(result.start.get("month")).toBe(8);
|
|
141
|
-
expect(result.start.get("day")).toBe(
|
|
140
|
+
expect(result.start.get("day")).toBe(10);
|
|
142
141
|
expect(result.start.get("hour")).toBe(0);
|
|
142
|
+
expect(result.start.get("minute")).toBe(0);
|
|
143
|
+
expect(result.start.get("second")).toBe(0);
|
|
144
|
+
expect(result.start.get("millisecond")).toBe(0);
|
|
143
145
|
});
|
|
146
|
+
|
|
147
|
+
// "Midnight" at 0~2AM with forwardDate option, should be the next night
|
|
148
|
+
testSingleCase(
|
|
149
|
+
chrono.casual,
|
|
150
|
+
"The Deadline was midnight ",
|
|
151
|
+
new Date(2012, 8 - 1, 10, 1),
|
|
152
|
+
{ forwardDate: true },
|
|
153
|
+
(result) => {
|
|
154
|
+
expect(result.text).toBe("midnight");
|
|
155
|
+
expect(result.start.get("year")).toBe(2012);
|
|
156
|
+
expect(result.start.get("month")).toBe(8);
|
|
157
|
+
expect(result.start.get("day")).toBe(11);
|
|
158
|
+
expect(result.start.get("hour")).toBe(0);
|
|
159
|
+
expect(result.start.get("minute")).toBe(0);
|
|
160
|
+
expect(result.start.get("second")).toBe(0);
|
|
161
|
+
expect(result.start.get("millisecond")).toBe(0);
|
|
162
|
+
}
|
|
163
|
+
);
|
|
144
164
|
});
|
|
145
165
|
|
|
146
166
|
test("Test - Combined Expression", () => {
|
|
@@ -337,6 +357,16 @@ test("Test - Random text", () => {
|
|
|
337
357
|
expect(result.start.get("day")).toBe(1);
|
|
338
358
|
expect(result.start.get("hour")).toBe(15);
|
|
339
359
|
});
|
|
360
|
+
|
|
361
|
+
testSingleCase(chrono.casual, "at midnight on 12th August", new Date(2012, 8 - 1, 10, 15), (result) => {
|
|
362
|
+
expect(result.start.get("year")).toBe(2012);
|
|
363
|
+
expect(result.start.get("month")).toBe(8);
|
|
364
|
+
expect(result.start.get("day")).toBe(12);
|
|
365
|
+
expect(result.start.get("hour")).toBe(0);
|
|
366
|
+
expect(result.start.get("minute")).toBe(0);
|
|
367
|
+
expect(result.start.get("second")).toBe(0);
|
|
368
|
+
expect(result.start.get("millisecond")).toBe(0);
|
|
369
|
+
});
|
|
340
370
|
});
|
|
341
371
|
|
|
342
372
|
test("Test - Casual time with timezone", () => {
|
package/test/en/en_slash.test.ts
CHANGED
|
@@ -168,23 +168,24 @@ test("Test - Splitter variances patterns", function () {
|
|
|
168
168
|
testWithExpectedDate(chrono, "05-25-2015", expectDate);
|
|
169
169
|
testWithExpectedDate(chrono, "05/25/2015", expectDate);
|
|
170
170
|
testWithExpectedDate(chrono, "05.25.2015", expectDate);
|
|
171
|
+
testWithExpectedDate(chrono, "/05/25/2015", expectDate);
|
|
171
172
|
|
|
172
173
|
// Also, guessing ambiguous date
|
|
173
174
|
testWithExpectedDate(chrono, "25/05/2015", expectDate);
|
|
174
175
|
});
|
|
175
176
|
|
|
176
177
|
test("Test - Impossible Dates and Unexpected Results", function () {
|
|
177
|
-
testUnexpectedResult(chrono, "8/32/2014"
|
|
178
|
-
|
|
179
|
-
testUnexpectedResult(chrono, "
|
|
180
|
-
|
|
181
|
-
testUnexpectedResult(chrono, "
|
|
182
|
-
|
|
183
|
-
testUnexpectedResult(chrono, "
|
|
184
|
-
|
|
185
|
-
testUnexpectedResult(chrono, "
|
|
186
|
-
|
|
187
|
-
testUnexpectedResult(chrono, "
|
|
178
|
+
testUnexpectedResult(chrono, "8/32/2014");
|
|
179
|
+
testUnexpectedResult(chrono, "8/32");
|
|
180
|
+
testUnexpectedResult(chrono, "2/29/2014");
|
|
181
|
+
testUnexpectedResult(chrono, "2014/22/29");
|
|
182
|
+
testUnexpectedResult(chrono, "2014/13/22");
|
|
183
|
+
testUnexpectedResult(chrono, "80-32-89-89");
|
|
184
|
+
testUnexpectedResult(chrono, "02/29/2022");
|
|
185
|
+
testUnexpectedResult(chrono, "06/31/2022");
|
|
186
|
+
testUnexpectedResult(chrono, "06/-31/2022");
|
|
187
|
+
testUnexpectedResult(chrono, "18/13/2022");
|
|
188
|
+
testUnexpectedResult(chrono, "15/28/2022");
|
|
188
189
|
});
|
|
189
190
|
|
|
190
191
|
test("Test - forward dates only option", function () {
|
|
@@ -287,3 +287,56 @@ test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]' (Stri
|
|
|
287
287
|
|
|
288
288
|
testUnexpectedResult(chrono.strict, "7-730");
|
|
289
289
|
});
|
|
290
|
+
|
|
291
|
+
test("Test - forward dates only option", function () {
|
|
292
|
+
testSingleCase(
|
|
293
|
+
chrono,
|
|
294
|
+
"1am",
|
|
295
|
+
{
|
|
296
|
+
instant: new Date("Wed May 26 2022 01:57:00 GMT-0500 (CDT)"),
|
|
297
|
+
timezone: "CDT",
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
forwardDate: true,
|
|
301
|
+
},
|
|
302
|
+
(result) => {
|
|
303
|
+
expect(result.start.get("year")).toBe(2022);
|
|
304
|
+
expect(result.start.get("month")).toBe(5);
|
|
305
|
+
expect(result.start.get("day")).toBe(27);
|
|
306
|
+
expect(result.start.get("hour")).toBe(1);
|
|
307
|
+
}
|
|
308
|
+
);
|
|
309
|
+
|
|
310
|
+
testSingleCase(chrono, "11am", new Date(2016, 10 - 1, 1, 12), { forwardDate: true }, (result) => {
|
|
311
|
+
expect(result.start.get("year")).toBe(2016);
|
|
312
|
+
expect(result.start.get("month")).toBe(10);
|
|
313
|
+
expect(result.start.get("day")).toBe(2);
|
|
314
|
+
expect(result.start.get("hour")).toBe(11);
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
testSingleCase(chrono, " 11am to 1am ", new Date(2016, 10 - 1, 1, 12), { forwardDate: true }, (result) => {
|
|
318
|
+
expect(result.start.get("year")).toBe(2016);
|
|
319
|
+
expect(result.start.get("month")).toBe(10);
|
|
320
|
+
expect(result.start.get("day")).toBe(2);
|
|
321
|
+
expect(result.start.get("hour")).toBe(11);
|
|
322
|
+
|
|
323
|
+
expect(result.end).not.toBeNull();
|
|
324
|
+
expect(result.end.get("year")).toBe(2016);
|
|
325
|
+
expect(result.end.get("month")).toBe(10);
|
|
326
|
+
expect(result.end.get("day")).toBe(3);
|
|
327
|
+
expect(result.end.get("hour")).toBe(1);
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
testSingleCase(chrono, " 10am to 12pm ", new Date(2016, 10 - 1, 1, 11), { forwardDate: true }, (result) => {
|
|
331
|
+
expect(result.start.get("year")).toBe(2016);
|
|
332
|
+
expect(result.start.get("month")).toBe(10);
|
|
333
|
+
expect(result.start.get("day")).toBe(2);
|
|
334
|
+
expect(result.start.get("hour")).toBe(10);
|
|
335
|
+
|
|
336
|
+
expect(result.end).not.toBeNull();
|
|
337
|
+
expect(result.end.get("year")).toBe(2016);
|
|
338
|
+
expect(result.end.get("month")).toBe(10);
|
|
339
|
+
expect(result.end.get("day")).toBe(2);
|
|
340
|
+
expect(result.end.get("hour")).toBe(12);
|
|
341
|
+
});
|
|
342
|
+
});
|