chrono-node 2.9.2 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/locales/en/constants.d.ts +1 -1
- package/dist/cjs/locales/en/constants.js +1 -1
- package/dist/cjs/locales/en/constants.js.map +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
- package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/cjs/locales/fr/constants.js +13 -0
- package/dist/cjs/locales/fr/constants.js.map +1 -1
- package/dist/cjs/locales/it/configuration.d.ts +5 -0
- package/dist/cjs/locales/it/configuration.js +66 -0
- package/dist/cjs/locales/it/configuration.js.map +1 -0
- package/dist/cjs/locales/it/constants.d.ts +8 -4
- package/dist/cjs/locales/it/constants.js +216 -90
- package/dist/cjs/locales/it/constants.js.map +1 -1
- package/dist/cjs/locales/it/index.d.ts +9 -7
- package/dist/cjs/locales/it/index.js +13 -51
- package/dist/cjs/locales/it/index.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITCasualDateParser.js +19 -10
- package/dist/cjs/locales/it/parsers/ITCasualDateParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js +70 -37
- package/dist/cjs/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js +6 -6
- package/dist/cjs/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -6
- package/dist/cjs/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.js +5 -4
- package/dist/cjs/locales/it/parsers/ITMonthNameParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
- package/dist/cjs/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITSlashMonthFormatParser.js +2 -2
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js +37 -29
- package/dist/cjs/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
- package/dist/cjs/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +17 -9
- package/dist/cjs/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
- package/dist/cjs/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js +21 -6
- package/dist/cjs/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.js +21 -12
- package/dist/cjs/locales/it/parsers/ITWeekdayParser.js.map +1 -1
- package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
- package/dist/cjs/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -8
- package/dist/cjs/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
- package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js +34 -0
- package/dist/cjs/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js +3 -3
- package/dist/cjs/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js +3 -3
- package/dist/cjs/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
- package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
- package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +30 -0
- package/dist/cjs/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
- package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
- package/dist/cjs/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +8 -8
- package/dist/cjs/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
- package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
- package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js +26 -0
- package/dist/cjs/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
- package/dist/cjs/results.js +15 -9
- package/dist/cjs/results.js.map +1 -1
- package/dist/esm/locales/en/constants.d.ts +1 -1
- package/dist/esm/locales/en/constants.js +1 -1
- package/dist/esm/locales/en/constants.js.map +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +1 -1
- package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/esm/locales/fr/constants.js +13 -0
- package/dist/esm/locales/fr/constants.js.map +1 -1
- package/dist/esm/locales/it/configuration.d.ts +5 -0
- package/dist/esm/locales/it/configuration.js +60 -0
- package/dist/esm/locales/it/configuration.js.map +1 -0
- package/dist/esm/locales/it/constants.d.ts +8 -4
- package/dist/esm/locales/it/constants.js +256 -117
- package/dist/esm/locales/it/constants.js.map +1 -1
- package/dist/esm/locales/it/index.d.ts +9 -7
- package/dist/esm/locales/it/index.js +8 -48
- package/dist/esm/locales/it/index.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITCasualDateParser.js +19 -10
- package/dist/esm/locales/it/parsers/ITCasualDateParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js +37 -37
- package/dist/esm/locales/it/parsers/ITCasualTimeParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js +5 -5
- package/dist/esm/locales/it/parsers/ITMonthNameLittleEndianParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.d.ts +4 -2
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js +17 -5
- package/dist/esm/locales/it/parsers/ITMonthNameMiddleEndianParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITMonthNameParser.d.ts +2 -2
- package/dist/esm/locales/it/parsers/ITMonthNameParser.js +4 -3
- package/dist/esm/locales/it/parsers/ITMonthNameParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js +21 -7
- package/dist/esm/locales/it/parsers/ITRelativeDateFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITSlashMonthFormatParser.js +1 -1
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.d.ts +3 -2
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js +35 -27
- package/dist/esm/locales/it/parsers/ITTimeExpressionParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js +9 -7
- package/dist/esm/locales/it/parsers/ITTimeUnitAgoFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.d.ts +3 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js +18 -9
- package/dist/esm/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js +9 -6
- package/dist/esm/locales/it/parsers/ITTimeUnitLaterFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.d.ts +3 -1
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js +22 -6
- package/dist/esm/locales/it/parsers/ITTimeUnitWithinFormatParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/ITWeekdayParser.d.ts +1 -1
- package/dist/esm/locales/it/parsers/ITWeekdayParser.js +21 -12
- package/dist/esm/locales/it/parsers/ITWeekdayParser.js.map +1 -1
- package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.d.ts → ITYearMonthDayParser.d.ts} +3 -1
- package/dist/esm/locales/it/parsers/{ITCasualYearMonthDayParser.js → ITYearMonthDayParser.js} +20 -7
- package/dist/esm/locales/it/parsers/ITYearMonthDayParser.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.d.ts +5 -0
- package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js +31 -0
- package/dist/esm/locales/it/refiners/ITExtractYearSuffixRefiner.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.d.ts +1 -1
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js +2 -2
- package/dist/esm/locales/it/refiners/ITMergeDateRangeRefiner.js.map +1 -1
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.d.ts +1 -1
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js +2 -2
- package/dist/esm/locales/it/refiners/ITMergeDateTimeRefiner.js.map +1 -1
- package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.d.ts +6 -0
- package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js +27 -0
- package/dist/esm/locales/it/refiners/ITMergeRelativeAfterDateRefiner.js.map +1 -0
- package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.d.ts → ITMergeRelativeFollowByDateRefiner.d.ts} +1 -1
- package/dist/esm/locales/it/refiners/{ITMergeRelativeDateRefiner.js → ITMergeRelativeFollowByDateRefiner.js} +7 -7
- package/dist/esm/locales/it/refiners/ITMergeRelativeFollowByDateRefiner.js.map +1 -0
- package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.d.ts +6 -0
- package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js +23 -0
- package/dist/esm/locales/it/refiners/ITUnlikelyFormatFilter.js.map +1 -0
- package/dist/esm/results.js +14 -9
- package/dist/esm/results.js.map +1 -1
- package/package.json +5 -1
- package/src/locales/en/constants.ts +1 -1
- package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +1 -1
- package/src/locales/fr/constants.ts +13 -0
- package/src/locales/it/configuration.ts +85 -0
- package/src/locales/it/constants.ts +273 -123
- package/src/locales/it/index.ts +14 -73
- package/src/locales/it/parsers/ITCasualDateParser.ts +20 -12
- package/src/locales/it/parsers/ITCasualTimeParser.ts +39 -44
- package/src/locales/it/parsers/ITMonthNameLittleEndianParser.ts +6 -6
- package/src/locales/it/parsers/ITMonthNameMiddleEndianParser.ts +34 -17
- package/src/locales/it/parsers/ITMonthNameParser.ts +9 -8
- package/src/locales/it/parsers/ITRelativeDateFormatParser.ts +33 -12
- package/src/locales/it/parsers/ITSlashMonthFormatParser.ts +1 -1
- package/src/locales/it/parsers/ITTimeExpressionParser.ts +42 -28
- package/src/locales/it/parsers/ITTimeUnitAgoFormatParser.ts +9 -8
- package/src/locales/it/parsers/ITTimeUnitCasualRelativeFormatParser.ts +21 -11
- package/src/locales/it/parsers/ITTimeUnitLaterFormatParser.ts +12 -6
- package/src/locales/it/parsers/ITTimeUnitWithinFormatParser.ts +28 -8
- package/src/locales/it/parsers/ITWeekdayParser.ts +23 -13
- package/src/locales/it/parsers/{ITCasualYearMonthDayParser.ts → ITYearMonthDayParser.ts} +19 -8
- package/src/locales/it/refiners/ITExtractYearSuffixRefiner.ts +34 -0
- package/src/locales/it/refiners/ITMergeDateRangeRefiner.ts +5 -9
- package/src/locales/it/refiners/ITMergeDateTimeRefiner.ts +5 -5
- package/src/locales/it/refiners/ITMergeRelativeAfterDateRefiner.ts +46 -0
- package/src/locales/it/refiners/{ITMergeRelativeDateRefiner.ts → ITMergeRelativeFollowByDateRefiner.ts} +10 -10
- package/src/locales/it/refiners/ITUnlikelyFormatFilter.ts +31 -0
- package/src/results.ts +40 -9
- package/dist/cjs/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
- package/dist/cjs/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
- package/dist/esm/locales/it/parsers/ITCasualYearMonthDayParser.js.map +0 -1
- package/dist/esm/locales/it/refiners/ITMergeRelativeDateRefiner.js.map +0 -1
- package/test/calculation_duration.test.ts +0 -165
- package/test/calculation_weekdays.test.ts +0 -133
- package/test/de/de_casual.test.ts +0 -336
- package/test/de/de_dash.test.ts +0 -32
- package/test/de/de_month_name_little_endian.test.ts +0 -273
- package/test/de/de_time_exp.test.ts +0 -223
- package/test/de/de_time_units_casual_relative.test.ts +0 -120
- package/test/de/de_time_units_within.test.ts +0 -119
- package/test/de/de_weekday.test.ts +0 -158
- package/test/de/de_year.test.ts +0 -147
- package/test/debugging.test.ts +0 -17
- package/test/en/en.test.ts +0 -191
- package/test/en/en_casual.test.ts +0 -425
- package/test/en/en_inter_std.test.ts +0 -118
- package/test/en/en_merging_relative_dates.test.ts +0 -50
- package/test/en/en_month.test.ts +0 -339
- package/test/en/en_month_name_little_endian.test.ts +0 -448
- package/test/en/en_month_name_middle_endian.test.ts +0 -386
- package/test/en/en_performance.test.ts +0 -26
- package/test/en/en_relative.test.ts +0 -393
- package/test/en/en_slash.test.ts +0 -284
- package/test/en/en_time_exp.test.ts +0 -535
- package/test/en/en_time_units_ago.test.ts +0 -357
- package/test/en/en_time_units_casual_relative.test.ts +0 -186
- package/test/en/en_time_units_later.test.ts +0 -361
- package/test/en/en_time_units_within.test.ts +0 -417
- package/test/en/en_timezone_exp.test.ts +0 -410
- package/test/en/en_weekday.test.ts +0 -573
- package/test/en/en_year.test.ts +0 -138
- package/test/en/en_year_month_day.test.ts +0 -101
- package/test/en/negative_cases.test.ts +0 -99
- package/test/es/es_casual.test.ts +0 -175
- package/test/es/es_month_name_little_endian.test.ts +0 -217
- package/test/es/es_slash.test.ts +0 -26
- package/test/es/es_time_exp.test.ts +0 -175
- package/test/es/es_time_units_within.test.ts +0 -119
- package/test/fi/fi_casual.test.ts +0 -99
- package/test/fi/fi_casual_time.test.ts +0 -56
- package/test/fi/fi_month_name_little_endian.test.ts +0 -50
- package/test/fi/fi_time_exp.test.ts +0 -39
- package/test/fi/fi_time_units_ago.test.ts +0 -93
- package/test/fi/fi_time_units_casual_relative.test.ts +0 -117
- package/test/fi/fi_time_units_within.test.ts +0 -74
- package/test/fi/fi_weekday.test.ts +0 -90
- package/test/fr/fr_casual.test.ts +0 -314
- package/test/fr/fr_little_endian.test.ts +0 -320
- package/test/fr/fr_slash.test.ts +0 -49
- package/test/fr/fr_time_exp.test.ts +0 -588
- package/test/fr/fr_time_units_ago.test.ts +0 -103
- package/test/fr/fr_time_units_casual_relative.test.ts +0 -114
- package/test/fr/fr_time_units_within.test.ts +0 -129
- package/test/fr/fr_weekday.test.ts +0 -130
- package/test/it/it_casual.test.ts +0 -81
- package/test/it/it_month_name_little_endian.test.ts +0 -28
- package/test/it/it_month_name_middle_endian.test.ts +0 -39
- package/test/it/it_time_exp.test.ts +0 -84
- package/test/it/it_weekday.test.ts +0 -37
- package/test/it/it_year_month_day.test.ts +0 -41
- package/test/ja/ja_casual.test.ts +0 -73
- package/test/ja/ja_slash_date_format.test.ts +0 -60
- package/test/ja/ja_standard.test.ts +0 -235
- package/test/ja/ja_time_exp.test.ts +0 -305
- package/test/ja/ja_weekday.test.ts +0 -183
- package/test/nl/nl_casual.test.ts +0 -408
- package/test/nl/nl_month.test.ts +0 -205
- package/test/nl/nl_month_name_little_endian.test.ts +0 -358
- package/test/nl/nl_relative.test.ts +0 -242
- package/test/nl/nl_slash.test.ts +0 -206
- package/test/nl/nl_time_exp.test.ts +0 -79
- package/test/nl/nl_time_units_ago.test.ts +0 -243
- package/test/nl/nl_time_units_casual_relative.test.ts +0 -130
- package/test/nl/nl_time_units_later.test.ts +0 -250
- package/test/nl/nl_time_units_within.test.ts +0 -225
- package/test/nl/nl_weekday.test.ts +0 -216
- package/test/pt/pt_casual.test.ts +0 -175
- package/test/pt/pt_month_name_little_endian.test.ts +0 -217
- package/test/pt/pt_slash.test.ts +0 -26
- package/test/pt/pt_time_exp.test.ts +0 -175
- package/test/result.test.ts +0 -283
- package/test/ru/ru_casual.test.ts +0 -159
- package/test/ru/ru_month.test.ts +0 -70
- package/test/ru/ru_month_name_little_endian.test.ts +0 -145
- package/test/ru/ru_relative.test.ts +0 -107
- package/test/ru/ru_time_exp.test.ts +0 -111
- package/test/ru/ru_time_units_ago.test.ts +0 -48
- package/test/ru/ru_time_units_casual_relative.test.ts +0 -190
- package/test/ru/ru_time_units_within.test.ts +0 -16
- package/test/ru/ru_weekday.test.ts +0 -52
- package/test/sv/sv_casual.test.ts +0 -87
- package/test/sv/sv_month_name_little_endian.test.ts +0 -48
- package/test/sv/sv_time_units_casual_relative.test.ts +0 -143
- package/test/sv/sv_weekday.test.ts +0 -68
- package/test/system.test.ts +0 -247
- package/test/system_timezone.test.ts +0 -284
- package/test/test_util.ts +0 -135
- package/test/uk/uk_casual.test.ts +0 -153
- package/test/uk/uk_month.test.ts +0 -70
- package/test/uk/uk_month_name_little_endian.test.ts +0 -148
- package/test/uk/uk_relative.test.ts +0 -107
- package/test/uk/uk_time_exp.test.ts +0 -111
- package/test/uk/uk_time_units_ago.test.ts +0 -48
- package/test/uk/uk_time_units_casual_relative.test.ts +0 -142
- package/test/uk/uk_time_units_within.test.ts +0 -23
- package/test/uk/uk_weekday.test.ts +0 -52
- package/test/vi/vi_casual.test.ts +0 -84
- package/test/vi/vi_casual_time.test.ts +0 -77
- package/test/vi/vi_date_range.test.ts +0 -61
- package/test/vi/vi_forward_date.test.ts +0 -45
- package/test/vi/vi_month_year.test.ts +0 -40
- package/test/vi/vi_negative_cases.test.ts +0 -60
- package/test/vi/vi_slash.test.ts +0 -36
- package/test/vi/vi_standard.test.ts +0 -86
- package/test/vi/vi_strict.test.ts +0 -67
- package/test/vi/vi_time_exp.test.ts +0 -99
- package/test/vi/vi_time_units_ago.test.ts +0 -56
- package/test/vi/vi_time_units_casual_relative.test.ts +0 -56
- package/test/vi/vi_time_units_later.test.ts +0 -43
- package/test/vi/vi_time_units_within.test.ts +0 -24
- package/test/vi/vi_weekday.test.ts +0 -77
- package/test/vi/vi_year.test.ts +0 -42
- package/test/zh/hans/zh_hans_ago.test.ts +0 -58
- package/test/zh/hans/zh_hans_casual.test.ts +0 -242
- package/test/zh/hans/zh_hans_date.test.ts +0 -116
- package/test/zh/hans/zh_hans_deadline.test.ts +0 -175
- package/test/zh/hans/zh_hans_time_exp.test.ts +0 -508
- package/test/zh/hans/zh_hans_weekday.test.ts +0 -219
- package/test/zh/hant/zh_hant_ago.test.ts +0 -58
- package/test/zh/hant/zh_hant_casual.test.ts +0 -260
- package/test/zh/hant/zh_hant_date.test.ts +0 -116
- package/test/zh/hant/zh_hant_deadline.test.ts +0 -136
- package/test/zh/hant/zh_hant_time_exp.test.ts +0 -226
- package/test/zh/hant/zh_hant_weekday.test.ts +0 -175
- package/test/zh/zh.test.ts +0 -36
- package/tsconfig.build.esm.json +0 -8
- package/tsconfig.build.json +0 -10
- package/tsconfig.json +0 -29
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
test("Test - h\u00f4m nay (today)", () => {
|
|
5
|
-
testSingleCase(chrono.vi, "Cu\u1ed9c h\u1ecdn h\u00f4m nay.", new Date(2012, 7, 10, 12), (r) => {
|
|
6
|
-
expect(r.index).toBe(9);
|
|
7
|
-
expect(r.text).toBe("h\u00f4m nay");
|
|
8
|
-
expect(r.start.get("year")).toBe(2012);
|
|
9
|
-
expect(r.start.get("month")).toBe(8);
|
|
10
|
-
expect(r.start.get("day")).toBe(10);
|
|
11
|
-
expect(r.start).toBeDate(new Date(2012, 7, 10, 12));
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test("Test - h\u00f4m qua (yesterday)", () => {
|
|
16
|
-
testSingleCase(chrono.vi, "H\u1ed9i ngh\u1ecb h\u00f4m qua.", new Date(2012, 7, 10, 12), (r) => {
|
|
17
|
-
expect(r.index).toBe(9);
|
|
18
|
-
expect(r.text).toBe("h\u00f4m qua");
|
|
19
|
-
expect(r.start.get("year")).toBe(2012);
|
|
20
|
-
expect(r.start.get("month")).toBe(8);
|
|
21
|
-
expect(r.start.get("day")).toBe(9);
|
|
22
|
-
expect(r.start).toBeDate(new Date(2012, 7, 9, 12));
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
testSingleCase(chrono.vi, "h\u00f4m qua", new Date(2012, 7, 1, 12), (r) => {
|
|
26
|
-
expect(r.start.get("month")).toBe(7); // July — crosses month boundary
|
|
27
|
-
expect(r.start.get("day")).toBe(31);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("Test - ng\u00e0y mai (tomorrow)", () => {
|
|
32
|
-
testSingleCase(chrono.vi, "L\u1ecbch ng\u00e0y mai.", new Date(2012, 7, 10, 12), (r) => {
|
|
33
|
-
expect(r.index).toBe(5);
|
|
34
|
-
expect(r.text).toBe("ng\u00e0y mai");
|
|
35
|
-
expect(r.start.get("day")).toBe(11);
|
|
36
|
-
expect(r.start.get("month")).toBe(8);
|
|
37
|
-
expect(r.start).toBeDate(new Date(2012, 7, 11, 12));
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
testSingleCase(chrono.vi, "ng\u00e0y mai", new Date(2012, 7, 31, 12), (r) => {
|
|
41
|
-
expect(r.start.get("month")).toBe(9); // Sept — crosses month boundary
|
|
42
|
-
expect(r.start.get("day")).toBe(1);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test("Test - ng\u00e0y kia (day after tomorrow)", () => {
|
|
47
|
-
testSingleCase(chrono.vi, "ng\u00e0y kia", new Date(2012, 7, 10, 12), (r) => {
|
|
48
|
-
expect(r.text).toBe("ng\u00e0y kia");
|
|
49
|
-
expect(r.start.get("day")).toBe(12);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Test - b\u00e2y gi\u1edd / l\u00fac n\u00e0y (now)", () => {
|
|
54
|
-
testSingleCase(chrono.vi, "b\u00e2y gi\u1edd", new Date(2012, 7, 10, 8, 9, 10, 11), (r) => {
|
|
55
|
-
expect(r.start.get("year")).toBe(2012);
|
|
56
|
-
expect(r.start.get("month")).toBe(8);
|
|
57
|
-
expect(r.start.get("day")).toBe(10);
|
|
58
|
-
expect(r.start.get("hour")).toBe(8);
|
|
59
|
-
expect(r.start.get("minute")).toBe(9);
|
|
60
|
-
expect(r.start.get("second")).toBe(10);
|
|
61
|
-
expect(r.start).toBeDate(new Date(2012, 7, 10, 8, 9, 10, 11));
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
testSingleCase(chrono.vi, "l\u00fac n\u00e0y", new Date(2012, 7, 10, 8, 9, 10, 11), (r) => {
|
|
65
|
-
expect(r.start.get("hour")).toBe(8);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
test("Test - hôm kia (day before yesterday, -2)", () => {
|
|
70
|
-
testSingleCase(chrono.vi, "hôm kia", new Date(2012, 7, 10, 12), (r) => {
|
|
71
|
-
expect(r.start.get("year")).toBe(2012);
|
|
72
|
-
expect(r.start.get("month")).toBe(8);
|
|
73
|
-
expect(r.start.get("day")).toBe(8); // 10 - 2
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
test("Test - isCertain: casual date sets day/month/year certain, hour not", () => {
|
|
78
|
-
testSingleCase(chrono.vi, "hôm nay", new Date(2012, 7, 10, 12), (r) => {
|
|
79
|
-
expect(r.start.isCertain("day")).toBe(true);
|
|
80
|
-
expect(r.start.isCertain("month")).toBe(true);
|
|
81
|
-
expect(r.start.isCertain("year")).toBe(true);
|
|
82
|
-
expect(r.start.isCertain("hour")).toBe(false);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12); // 2012-08-10 noon
|
|
5
|
-
|
|
6
|
-
test("Test - sáng (morning, AM)", () => {
|
|
7
|
-
// "buổi sáng" is a time-of-day modifier; test it with an explicit time expression
|
|
8
|
-
testSingleCase(chrono.vi, "7 giờ sáng", REF, (r) => {
|
|
9
|
-
expect(r.start.get("hour")).toBe(7);
|
|
10
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
11
|
-
});
|
|
12
|
-
// standalone "sáng" sets implied hour=9, AM
|
|
13
|
-
testSingleCase(chrono.vi, "hôm nay buổi sáng", new Date(2012, 7, 10, 6), (r) => {
|
|
14
|
-
expect(r.start.get("hour")).toBe(9);
|
|
15
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test("Test - trưa (noon, PM)", () => {
|
|
20
|
-
testSingleCase(chrono.vi, "buổi trưa", REF, (r) => {
|
|
21
|
-
expect(r.start.get("hour")).toBe(12);
|
|
22
|
-
expect(r.start.get("meridiem")).toBe(1); // PM — noon is 12:00 PM
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("Test - chiều (afternoon, PM)", () => {
|
|
27
|
-
testSingleCase(chrono.vi, "buổi chiều", REF, (r) => {
|
|
28
|
-
expect(r.start.get("hour")).toBe(15);
|
|
29
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test("Test - tối (evening, PM)", () => {
|
|
34
|
-
testSingleCase(chrono.vi, "buổi tối", REF, (r) => {
|
|
35
|
-
expect(r.start.get("hour")).toBe(19);
|
|
36
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
test("Test - đêm (late night, PM)", () => {
|
|
41
|
-
testSingleCase(chrono.vi, "buổi đêm", REF, (r) => {
|
|
42
|
-
expect(r.start.get("hour")).toBe(22);
|
|
43
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// Standalone "đêm" without "buổi" prefix — works after removing \b from pattern
|
|
47
|
-
testSingleCase(chrono.vi, "đêm", REF, (r) => {
|
|
48
|
-
expect(r.start.get("hour")).toBe(22);
|
|
49
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Test - nửa đêm (midnight, AM)", () => {
|
|
54
|
-
testSingleCase(chrono.vi, "nửa đêm", REF, (r) => {
|
|
55
|
-
expect(r.start.get("hour")).toBe(0);
|
|
56
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
test("Test - bình minh / sáng sớm (dawn)", () => {
|
|
61
|
-
testSingleCase(chrono.vi, "bình minh", REF, (r) => {
|
|
62
|
-
expect(r.start.get("hour")).toBe(6);
|
|
63
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
testSingleCase(chrono.vi, "sáng sớm", REF, (r) => {
|
|
67
|
-
expect(r.start.get("hour")).toBe(6);
|
|
68
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
test("Test - time keyword merges with date", () => {
|
|
73
|
-
testSingleCase(chrono.vi, "hôm nay buổi chiều", REF, (r) => {
|
|
74
|
-
expect(r.start.get("day")).toBe(10);
|
|
75
|
-
expect(r.start.get("hour")).toBe(15);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12); // 2012-08-10 noon
|
|
5
|
-
|
|
6
|
-
test("Test - từ ngày X đến ngày Y (đến connector)", () => {
|
|
7
|
-
testSingleCase(chrono.vi, "từ ngày 5 tháng 8 đến ngày 10 tháng 8 năm 2012", REF, (r) => {
|
|
8
|
-
expect(r.start.get("day")).toBe(5);
|
|
9
|
-
expect(r.start.get("month")).toBe(8);
|
|
10
|
-
expect(r.start.get("year")).toBe(2012);
|
|
11
|
-
|
|
12
|
-
expect(r.end).not.toBeNull();
|
|
13
|
-
expect(r.end.get("day")).toBe(10);
|
|
14
|
-
expect(r.end.get("month")).toBe(8);
|
|
15
|
-
expect(r.end.get("year")).toBe(2012);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test("Test - em dash separator (–)", () => {
|
|
20
|
-
testSingleCase(chrono.vi, "ngày 1 tháng 4 – ngày 30 tháng 4 năm 2000", REF, (r) => {
|
|
21
|
-
expect(r.start.get("day")).toBe(1);
|
|
22
|
-
expect(r.start.get("month")).toBe(4);
|
|
23
|
-
|
|
24
|
-
expect(r.end).not.toBeNull();
|
|
25
|
-
expect(r.end.get("day")).toBe(30);
|
|
26
|
-
expect(r.end.get("month")).toBe(4);
|
|
27
|
-
expect(r.end.get("year")).toBe(2000);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("Test - hyphen separator (-)", () => {
|
|
32
|
-
testSingleCase(chrono.vi, "ngày 3 tháng 9 - ngày 5 tháng 9 năm 1945", REF, (r) => {
|
|
33
|
-
expect(r.start.get("day")).toBe(3);
|
|
34
|
-
expect(r.start.get("month")).toBe(9);
|
|
35
|
-
expect(r.start.get("year")).toBe(1945);
|
|
36
|
-
|
|
37
|
-
expect(r.end).not.toBeNull();
|
|
38
|
-
expect(r.end.get("day")).toBe(5);
|
|
39
|
-
expect(r.end.get("month")).toBe(9);
|
|
40
|
-
expect(r.end.get("year")).toBe(1945);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
test("Test - tới connector", () => {
|
|
45
|
-
testSingleCase(chrono.vi, "tháng 3 tới tháng 5 năm 1975", REF, (r) => {
|
|
46
|
-
expect(r.start.get("month")).toBe(3);
|
|
47
|
-
|
|
48
|
-
expect(r.end).not.toBeNull();
|
|
49
|
-
expect(r.end.get("month")).toBe(5);
|
|
50
|
-
expect(r.end.get("year")).toBe(1975);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
test("Test - start is before end", () => {
|
|
55
|
-
testSingleCase(chrono.vi, "ngày 1 tháng 1 đến ngày 31 tháng 12 năm 2020", REF, (r) => {
|
|
56
|
-
expect(r.end).not.toBeNull();
|
|
57
|
-
const startDate = r.start.date();
|
|
58
|
-
const endDate = r.end.date();
|
|
59
|
-
expect(startDate.getTime()).toBeLessThan(endDate.getTime());
|
|
60
|
-
});
|
|
61
|
-
});
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
test("Test - forwardDate: time-only rolls to next day when ref is past", () => {
|
|
5
|
-
// "7 gi\u1edd s\u00e1ng" = 7:00 AM; ref is 8:00 AM same day \u2192 next day
|
|
6
|
-
testSingleCase(chrono.vi, "7 gi\u1edd s\u00e1ng", new Date(2012, 7, 10, 8, 0), { forwardDate: true }, (r) => {
|
|
7
|
-
expect(r.start.get("day")).toBe(11);
|
|
8
|
-
expect(r.start.get("hour")).toBe(7);
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("Test - forwardDate: weekday rolls to next occurrence", () => {
|
|
13
|
-
// REF = Tuesday Aug 14, 2012; "th\u1ee9 hai" (Monday) last was Aug 13 \u2192 next Monday = Aug 20
|
|
14
|
-
testSingleCase(chrono.vi, "th\u1ee9 hai", new Date(2012, 7, 14, 12), { forwardDate: true }, (r) => {
|
|
15
|
-
expect(r.start.get("weekday")).toBe(1);
|
|
16
|
-
expect(r.start.get("day")).toBe(20);
|
|
17
|
-
expect(r.start.get("month")).toBe(8);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test("Test - forwardDate: slash date without year rolls to next year", () => {
|
|
22
|
-
// "15/3" = March 15; ref is Aug 10 (past March) \u2192 year 2013
|
|
23
|
-
testSingleCase(chrono.vi, "15/3", new Date(2012, 7, 10, 12), { forwardDate: true }, (r) => {
|
|
24
|
-
expect(r.start.get("day")).toBe(15);
|
|
25
|
-
expect(r.start.get("month")).toBe(3);
|
|
26
|
-
expect(r.start.get("year")).toBe(2013);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test("Test - forwardDate: same weekday as ref stays on same day", () => {
|
|
31
|
-
// REF = Thursday Aug 9, 2012; "thứ năm" (Thursday) = same day → stays on Aug 9 (not past)
|
|
32
|
-
testSingleCase(chrono.vi, "th\u1ee9 n\u0103m", new Date(2012, 7, 9, 12), { forwardDate: true }, (r) => {
|
|
33
|
-
expect(r.start.get("weekday")).toBe(4);
|
|
34
|
-
expect(r.start.get("day")).toBe(9);
|
|
35
|
-
expect(r.start.get("month")).toBe(8);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test("Test - forwardDate: month without year rolls to next year", () => {
|
|
40
|
-
// "th\u00e1ng 3" = March; ref is Aug 10 \u2192 next March = 2013
|
|
41
|
-
testSingleCase(chrono.vi, "th\u00e1ng 3", new Date(2012, 7, 10, 12), { forwardDate: true }, (r) => {
|
|
42
|
-
expect(r.start.get("month")).toBe(3);
|
|
43
|
-
expect(r.start.get("year")).toBe(2013);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12); // 2012-08-10
|
|
5
|
-
|
|
6
|
-
test("Test - tháng M năm YYYY", () => {
|
|
7
|
-
testSingleCase(chrono.vi, "tháng 4 năm 1975", REF, (r) => {
|
|
8
|
-
expect(r.text).toBe("tháng 4 năm 1975");
|
|
9
|
-
expect(r.start.get("month")).toBe(4);
|
|
10
|
-
expect(r.start.get("year")).toBe(1975);
|
|
11
|
-
expect(r.start.isCertain("month")).toBe(true);
|
|
12
|
-
expect(r.start.isCertain("year")).toBe(true);
|
|
13
|
-
expect(r.start.isCertain("day")).toBe(false); // day is implied
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
testSingleCase(chrono.vi, "tháng 1 năm 1863", REF, (r) => {
|
|
17
|
-
expect(r.start.get("month")).toBe(1);
|
|
18
|
-
expect(r.start.get("year")).toBe(1863);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test("Test - tháng M/YYYY (slash separator)", () => {
|
|
23
|
-
testSingleCase(chrono.vi, "tháng 3/1975", REF, (r) => {
|
|
24
|
-
expect(r.start.get("month")).toBe(3);
|
|
25
|
-
expect(r.start.get("year")).toBe(1975);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test("Test - tháng M only (implies current year)", () => {
|
|
30
|
-
testSingleCase(chrono.vi, "tháng 3", REF, (r) => {
|
|
31
|
-
expect(r.start.get("month")).toBe(3);
|
|
32
|
-
expect(r.start.isCertain("year")).toBe(false); // year implied from reference
|
|
33
|
-
expect(r.start.get("year")).toBe(2012);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test("Test - negative: month > 12 rejected", () => {
|
|
38
|
-
testUnexpectedResult(chrono.vi, "tháng 13", REF);
|
|
39
|
-
testUnexpectedResult(chrono.vi, "tháng 0", REF);
|
|
40
|
-
});
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12); // 2012-08-10
|
|
5
|
-
|
|
6
|
-
test("Test - invalid day rejected", () => {
|
|
7
|
-
testUnexpectedResult(chrono.vi, "ngày 0 tháng 4 năm 2000", REF);
|
|
8
|
-
// "ngày 32 tháng 4" — VIStandardParser skips "ngày 3" and sub-matches "2 tháng 4"
|
|
9
|
-
// (day bounds are not pre-validated in the regex). This is known parser behaviour.
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("Test - invalid month rejected", () => {
|
|
13
|
-
testUnexpectedResult(chrono.vi, "tháng 0", REF);
|
|
14
|
-
testUnexpectedResult(chrono.vi, "tháng 13", REF);
|
|
15
|
-
testUnexpectedResult(chrono.vi, "ngày 1 tháng 13", REF);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
test("Test - invalid slash date rejected", () => {
|
|
19
|
-
testUnexpectedResult(chrono.vi, "32/13/2020", REF);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test("Test - bare 4-digit number without năm prefix is not a year", () => {
|
|
23
|
-
testUnexpectedResult(chrono.vi, "Có 1975 người tham gia.", REF);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("Test - phone number not parsed as date", () => {
|
|
27
|
-
testUnexpectedResult(chrono.vi, "0912345678", REF);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test("Test - bare numbers not parsed as dates", () => {
|
|
31
|
-
testUnexpectedResult(chrono.vi, "3", REF);
|
|
32
|
-
testUnexpectedResult(chrono.vi, "11", REF);
|
|
33
|
-
testUnexpectedResult(chrono.vi, "0.5", REF);
|
|
34
|
-
testUnexpectedResult(chrono.vi, "35.49", REF);
|
|
35
|
-
testUnexpectedResult(chrono.vi, "12.53%", REF);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test("Test - currency and measurement not parsed as dates", () => {
|
|
39
|
-
testUnexpectedResult(chrono.vi, "$1,194.09", REF);
|
|
40
|
-
testUnexpectedResult(chrono.vi, "at 6.5 kilograms", REF);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test("Test - version numbers not parsed as dates", () => {
|
|
44
|
-
testUnexpectedResult(chrono.vi, "1.1.3", REF);
|
|
45
|
-
testUnexpectedResult(chrono.vi, "1.10.30", REF);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test("Test - hyphenated number ranges not parsed as dates", () => {
|
|
49
|
-
testUnexpectedResult(chrono.vi, "1-2", REF);
|
|
50
|
-
testUnexpectedResult(chrono.vi, "1-2-3", REF);
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
test("Test - URL-encoded strings not parsed as dates", () => {
|
|
54
|
-
testUnexpectedResult(chrono.vi, "%e7%b7%8a", REF);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test("Test - impossible minute rejected", () => {
|
|
58
|
-
testUnexpectedResult(chrono.vi, "7 giờ 61 phút", REF);
|
|
59
|
-
testUnexpectedResult(chrono.vi, "7 giờ 99 phút", REF);
|
|
60
|
-
});
|
package/test/vi/vi_slash.test.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12);
|
|
5
|
-
|
|
6
|
-
test("Test - DD/MM/YYYY (little-endian)", () => {
|
|
7
|
-
testSingleCase(chrono.vi, "Ng\u00e0y 30/04/1975.", REF, (r) => {
|
|
8
|
-
expect(r.index).toBe(5);
|
|
9
|
-
expect(r.start.get("day")).toBe(30);
|
|
10
|
-
expect(r.start.get("month")).toBe(4);
|
|
11
|
-
expect(r.start.get("year")).toBe(1975);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
testSingleCase(chrono.vi, "H\u1ed9i ngh\u1ecb 01/01/1954", REF, (r) => {
|
|
15
|
-
expect(r.index).toBe(9);
|
|
16
|
-
expect(r.start.get("day")).toBe(1);
|
|
17
|
-
expect(r.start.get("month")).toBe(1);
|
|
18
|
-
expect(r.start.get("year")).toBe(1954);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test("Test - D/M/YYYY (no zero padding)", () => {
|
|
23
|
-
testSingleCase(chrono.vi, "3/5/1968", REF, (r) => {
|
|
24
|
-
expect(r.start.get("day")).toBe(3);
|
|
25
|
-
expect(r.start.get("month")).toBe(5);
|
|
26
|
-
expect(r.start.get("year")).toBe(1968);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test("Test - ISO 2024-03-15 also parses", () => {
|
|
31
|
-
testSingleCase(chrono.vi, "Ng\u00e0y 2024-03-15 l\u00e0 quan tr\u1ecdng.", REF, (r) => {
|
|
32
|
-
expect(r.start.get("year")).toBe(2024);
|
|
33
|
-
expect(r.start.get("month")).toBe(3);
|
|
34
|
-
expect(r.start.get("day")).toBe(15);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12, 0, 0); // 2012-08-10
|
|
5
|
-
|
|
6
|
-
test("Test - ng\u00e0y D th\u00e1ng M n\u0103m YYYY (full with ng\u00e0y prefix)", () => {
|
|
7
|
-
testSingleCase(
|
|
8
|
-
chrono.vi,
|
|
9
|
-
"Ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975 l\u00e0 ng\u00e0y gi\u1ea3i ph\u00f3ng.",
|
|
10
|
-
REF,
|
|
11
|
-
(r) => {
|
|
12
|
-
expect(r.start.get("year")).toBe(1975);
|
|
13
|
-
expect(r.start.get("month")).toBe(4);
|
|
14
|
-
expect(r.start.get("day")).toBe(30);
|
|
15
|
-
expect(r.start.isCertain("year")).toBe(true);
|
|
16
|
-
expect(r.start.isCertain("month")).toBe(true);
|
|
17
|
-
expect(r.start.isCertain("day")).toBe(true);
|
|
18
|
-
}
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
testSingleCase(
|
|
22
|
-
chrono.vi,
|
|
23
|
-
"Hi\u1ec7p \u0111\u1ecbnh \u0111\u01b0\u1ee3c k\u00fd ng\u00e0y 27 th\u00e1ng 1 n\u0103m 1973.",
|
|
24
|
-
REF,
|
|
25
|
-
(r) => {
|
|
26
|
-
expect(r.text).toBe("ng\u00e0y 27 th\u00e1ng 1 n\u0103m 1973");
|
|
27
|
-
expect(r.start.get("year")).toBe(1973);
|
|
28
|
-
expect(r.start.get("month")).toBe(1);
|
|
29
|
-
expect(r.start.get("day")).toBe(27);
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
testSingleCase(chrono.vi, "ng\u00e0y 2 th\u00e1ng 9 n\u0103m 1945", REF, (r) => {
|
|
34
|
-
expect(r.start.get("year")).toBe(1945);
|
|
35
|
-
expect(r.start.get("month")).toBe(9);
|
|
36
|
-
expect(r.start.get("day")).toBe(2);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
test("Test - D th\u00e1ng M n\u0103m YYYY (no ng\u00e0y prefix)", () => {
|
|
41
|
-
testSingleCase(
|
|
42
|
-
chrono.vi,
|
|
43
|
-
"7 th\u00e1ng 5 n\u0103m 1954 l\u00e0 ng\u00e0y ch\u1ea5m d\u1ee9t tr\u1eadn \u0110i\u1ec7n Bi\u00ean Ph\u1ee7.",
|
|
44
|
-
REF,
|
|
45
|
-
(r) => {
|
|
46
|
-
expect(r.start.get("day")).toBe(7);
|
|
47
|
-
expect(r.start.get("month")).toBe(5);
|
|
48
|
-
expect(r.start.get("year")).toBe(1954);
|
|
49
|
-
}
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
testSingleCase(chrono.vi, "1 th\u00e1ng 1 n\u0103m 1863", REF, (r) => {
|
|
53
|
-
expect(r.start.get("day")).toBe(1);
|
|
54
|
-
expect(r.start.get("month")).toBe(1);
|
|
55
|
-
expect(r.start.get("year")).toBe(1863);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
test("Test - Date without year implies closest year", () => {
|
|
60
|
-
testSingleCase(chrono.vi, "ng\u00e0y 15 th\u00e1ng 3", REF, (r) => {
|
|
61
|
-
expect(r.start.get("day")).toBe(15);
|
|
62
|
-
expect(r.start.get("month")).toBe(3);
|
|
63
|
-
expect(r.start.isCertain("year")).toBe(false);
|
|
64
|
-
expect(r.start.isCertain("day")).toBe(true);
|
|
65
|
-
expect(r.start.isCertain("month")).toBe(true);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
test("Test - index position is correct", () => {
|
|
70
|
-
testSingleCase(
|
|
71
|
-
chrono.vi,
|
|
72
|
-
"S\u1ef1 ki\u1ec7n ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975 quan tr\u1ecdng.",
|
|
73
|
-
REF,
|
|
74
|
-
(r) => {
|
|
75
|
-
expect(r.index).toBe(8);
|
|
76
|
-
expect(r.text).toBe("ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975");
|
|
77
|
-
expect(r.start.get("year")).toBe(1975);
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test("Test - negative: invalid month rejected", () => {
|
|
83
|
-
// tháng 13 is rejected; without a year, no other parser fires
|
|
84
|
-
testUnexpectedResult(chrono.vi, "ngày 1 tháng 13", REF);
|
|
85
|
-
// "ngày 32 tháng 4" partially matches as "2 tháng 4" — day bounds enforced by VIStandardParser (day > 31)
|
|
86
|
-
});
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase, testUnexpectedResult } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12); // 2012-08-10
|
|
5
|
-
|
|
6
|
-
test("Test - Strict rejects casual date expressions", () => {
|
|
7
|
-
testUnexpectedResult(chrono.vi.strict, "h\u00f4m nay", REF);
|
|
8
|
-
testUnexpectedResult(chrono.vi.strict, "h\u00f4m qua", REF);
|
|
9
|
-
testUnexpectedResult(chrono.vi.strict, "ng\u00e0y mai", REF);
|
|
10
|
-
testUnexpectedResult(chrono.vi.strict, "ng\u00e0y kia", REF);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
test("Test - Strict rejects casual time-of-day expressions", () => {
|
|
14
|
-
testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i s\u00e1ng", REF);
|
|
15
|
-
testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i tr\u01b0a", REF);
|
|
16
|
-
testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i chi\u1ec1u", REF);
|
|
17
|
-
testUnexpectedResult(chrono.vi.strict, "bu\u1ed5i t\u1ed1i", REF);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test("Test - Strict rejects casual relative expressions", () => {
|
|
21
|
-
testUnexpectedResult(chrono.vi.strict, "tu\u1ea7n n\u00e0y", REF);
|
|
22
|
-
testUnexpectedResult(chrono.vi.strict, "th\u00e1ng tr\u01b0\u1edbc", REF);
|
|
23
|
-
testUnexpectedResult(chrono.vi.strict, "n\u0103m sau", REF);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("Test - Strict rejects weekday-only expressions", () => {
|
|
27
|
-
testUnexpectedResult(chrono.vi.strict, "th\u1ee9 hai", REF);
|
|
28
|
-
testUnexpectedResult(chrono.vi.strict, "ch\u1ee7 nh\u1eadt", REF);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("Test - Strict accepts standard full dates and times", () => {
|
|
32
|
-
testSingleCase(chrono.vi.strict, "ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975", REF, (r) => {
|
|
33
|
-
expect(r.start.get("year")).toBe(1975);
|
|
34
|
-
expect(r.start.get("month")).toBe(4);
|
|
35
|
-
expect(r.start.get("day")).toBe(30);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
testSingleCase(chrono.vi.strict, "l\u00fac 7 gi\u1edd 30 ph\u00fat", REF, (r) => {
|
|
39
|
-
expect(r.start.get("hour")).toBe(7);
|
|
40
|
-
expect(r.start.get("minute")).toBe(30);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
test("Test - Strict accepts slash dates", () => {
|
|
45
|
-
testSingleCase(chrono.vi.strict, "30/4/1975", REF, (r) => {
|
|
46
|
-
expect(r.start.get("day")).toBe(30);
|
|
47
|
-
expect(r.start.get("month")).toBe(4);
|
|
48
|
-
expect(r.start.get("year")).toBe(1975);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
testSingleCase(chrono.vi.strict, "15/3", REF, (r) => {
|
|
52
|
-
expect(r.start.get("day")).toBe(15);
|
|
53
|
-
expect(r.start.get("month")).toBe(3);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test("Test - Strict accepts explicit time unit expressions", () => {
|
|
58
|
-
testSingleCase(chrono.vi.strict, "3 ng\u00e0y tr\u01b0\u1edbc", REF, (r) => {
|
|
59
|
-
expect(r.start.get("day")).toBe(7);
|
|
60
|
-
expect(r.start.get("month")).toBe(8);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
testSingleCase(chrono.vi.strict, "2 tu\u1ea7n sau", REF, (r) => {
|
|
64
|
-
expect(r.start.get("day")).toBe(24);
|
|
65
|
-
expect(r.start.get("month")).toBe(8);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import * as chrono from "../../src/";
|
|
2
|
-
import { testSingleCase } from "../test_util";
|
|
3
|
-
|
|
4
|
-
const REF = new Date(2012, 7, 10, 12);
|
|
5
|
-
|
|
6
|
-
test("Test - X gi\u1edd", () => {
|
|
7
|
-
testSingleCase(chrono.vi, "Cu\u1ed9c h\u1ecdn l\u00fac 7 gi\u1edd.", REF, (r) => {
|
|
8
|
-
expect(r.index).toBe(9);
|
|
9
|
-
expect(r.text).toBe("l\u00fac 7 gi\u1edd");
|
|
10
|
-
expect(r.start.get("hour")).toBe(7);
|
|
11
|
-
expect(r.start.get("minute")).toBe(0);
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
testSingleCase(chrono.vi, "7 gi\u1edd s\u00e1ng", REF, (r) => {
|
|
15
|
-
expect(r.start.get("hour")).toBe(7);
|
|
16
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
testSingleCase(chrono.vi, "7 gi\u1edd t\u1ed1i", REF, (r) => {
|
|
20
|
-
expect(r.start.get("hour")).toBe(19);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
test("Test - X gi\u1edd Y ph\u00fat", () => {
|
|
25
|
-
testSingleCase(chrono.vi, "l\u00fac 7 gi\u1edd 30 ph\u00fat", REF, (r) => {
|
|
26
|
-
expect(r.start.get("hour")).toBe(7);
|
|
27
|
-
expect(r.start.get("minute")).toBe(30);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
testSingleCase(chrono.vi, "v\u00e0o 15 gi\u1edd 45 ph\u00fat", REF, (r) => {
|
|
31
|
-
expect(r.start.get("hour")).toBe(15);
|
|
32
|
-
expect(r.start.get("minute")).toBe(45);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test("Test - colon format HH:MM", () => {
|
|
37
|
-
testSingleCase(chrono.vi, "H\u1ecdn l\u00fac 15:30.", REF, (r) => {
|
|
38
|
-
expect(r.start.get("hour")).toBe(15);
|
|
39
|
-
expect(r.start.get("minute")).toBe(30);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test("Test - date + time combined", () => {
|
|
44
|
-
testSingleCase(chrono.vi, "ng\u00e0y 30 th\u00e1ng 4 n\u0103m 1975 l\u00fac 11 gi\u1edd", REF, (r) => {
|
|
45
|
-
expect(r.start.get("day")).toBe(30);
|
|
46
|
-
expect(r.start.get("month")).toBe(4);
|
|
47
|
-
expect(r.start.get("year")).toBe(1975);
|
|
48
|
-
expect(r.start.get("hour")).toBe(11);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
test("Test - meridiem: s\u00e1ng/chi\u1ec1u/t\u1ed1i/\u0111\u00eam", () => {
|
|
53
|
-
testSingleCase(chrono.vi, "9 gi\u1edd s\u00e1ng", REF, (r) => {
|
|
54
|
-
expect(r.start.get("hour")).toBe(9);
|
|
55
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
56
|
-
});
|
|
57
|
-
testSingleCase(chrono.vi, "3 gi\u1edd chi\u1ec1u", REF, (r) => {
|
|
58
|
-
expect(r.start.get("hour")).toBe(15);
|
|
59
|
-
});
|
|
60
|
-
testSingleCase(chrono.vi, "10 gi\u1edd \u0111\u00eam", REF, (r) => {
|
|
61
|
-
expect(r.start.get("hour")).toBe(22);
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
test("Test - trưa meridiem: X giờ trưa → PM (hour + 12)", () => {
|
|
66
|
-
// trưa = noon/midday — times expressed with trưa are PM
|
|
67
|
-
testSingleCase(chrono.vi, "1 giờ trưa", REF, (r) => {
|
|
68
|
-
expect(r.start.get("hour")).toBe(13);
|
|
69
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
70
|
-
});
|
|
71
|
-
testSingleCase(chrono.vi, "11 giờ trưa", REF, (r) => {
|
|
72
|
-
expect(r.start.get("hour")).toBe(11);
|
|
73
|
-
expect(r.start.get("meridiem")).toBe(0); // AM — 11 giờ trưa = approaching noon
|
|
74
|
-
});
|
|
75
|
-
// 12 giờ trưa = noon, no offset applied (12 < 12 is false)
|
|
76
|
-
testSingleCase(chrono.vi, "12 giờ trưa", REF, (r) => {
|
|
77
|
-
expect(r.start.get("hour")).toBe(12);
|
|
78
|
-
expect(r.start.get("meridiem")).toBe(1); // PM
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test("Test - 12 giờ sáng = midnight (00:00)", () => {
|
|
83
|
-
testSingleCase(chrono.vi, "12 giờ sáng", REF, (r) => {
|
|
84
|
-
expect(r.start.get("hour")).toBe(0);
|
|
85
|
-
expect(r.start.get("meridiem")).toBe(0); // AM
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
test("Test - isCertain: hour and meridiem certainty", () => {
|
|
90
|
-
testSingleCase(chrono.vi, "lúc 7 giờ", REF, (r) => {
|
|
91
|
-
expect(r.start.isCertain("hour")).toBe(true);
|
|
92
|
-
expect(r.start.isCertain("meridiem")).toBe(false);
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
testSingleCase(chrono.vi, "7 giờ sáng", REF, (r) => {
|
|
96
|
-
expect(r.start.isCertain("hour")).toBe(true);
|
|
97
|
-
expect(r.start.isCertain("meridiem")).toBe(true);
|
|
98
|
-
});
|
|
99
|
-
});
|