# Changelog for [`duckling` package](https://github.com/facebook/duckling) ## 0.2.0.0 ### Core * Bump versions on dependencies * ExampleMain: add support for setting the port * Support for GHC >= 8.8.x && GHC <= 9.0.1 * Relicense to BSD-3 * Probabilistic layer bug fix * Remove dependency on Data.Some * Depend on regex-pcre-builtin on Windows * Update cabal-version to 2.2 * Migrate to GitHub CI over Travis * Some attempts at getting smaller parse trees (less exploitable) ### Rulesets * Common * Correct CDT TimeZone offset CDT is (-300), not 540. * Fixed BST and IST offsets. BST is +1 (60) and IST is +5:30 (330) * Make unicode output in tests sane by not relying on `Show` * Add type=value to JSON response for Email, PhoneNumber, and Url, for consistency * CreditCardNumber: **new!** (duckling can now recognise credit cards) * Email: Add DE (German) + IS (Icelandic) spelled out email * Numeral: Don't accept dashes ('-') as token separators * Time: Add Karva Chauth holiday * Time: Add Vaisakhi holiday * Time: Add daylight savings start/endtimes to holidays * Time: Add Purim and Shushan Purim (Jewish holidays) * Time: Add Guru Gobind Singh Jayanti holiday * Time: Extend support for Ramadan and Eid al-Fitr from 1950 to 2050 * Time: Add support for Parsi New Year * Time: Add support for Dayananda Saraswati Jayanti holiday * Time: Extend support for Mawlid from 1950 to 1998 * Time: Add Rabindra Jayanti holiday * Time: Add Guru Ravidass Jayanti holiday * Time: Extend support for Eid al-Adha from 1950 to 2000 * Time: Add Krishna Janmashtami holiday * Time: Add Mahavir Jayanti holiday * Time: Add Maha Shivaratri holiday * Time: add Ugadi holiday * Volume: interval support * AF (Afrikaans) * Numeral: **new!** * AR (Arabic) * Add a new locale: EG (Egyptian) * AmountOfMoney: Add more variants of EGP * Numeral: Add support for numerals written in Arabic script * Numeral: Support decimals and comma-separated integers * PhoneNumber: **new!** * Time: Add periodic times * Time: Add rule for a week ago * BG (Bulgarian) * Time: **new!** * BN (Bengali) * Numeral: **new!** * CA (Catalan) * Numeral: **new!** * Ordinal: **new!** * DA (Danish) * Ordinal: Add support for larger spelled-out ordinals * Time: recognise abbreviation 'kl' * DE (German) * Distance: **new!** * Duration: Add more common durations * Numeral: Fix typo on "fünfzehn"(15) * Time: Fix wrong parsing of YYYY-MM-DD dates * Time: Add rule for 'the day before yesterday' * Time: Fix a bug for "fünfter"¬ * Time: support for "am ersten Dezember" to " am einunddreißigsten Dezember"¬ * Time: now recognise "der fünfte Dezember"¬ * Time: Add support for (pre-)computed holidays * Time: Don't parse 'so' * Time: improve approximations * Time: Add rule for week after next * Time: Add rule for montag in n wochen * Volume: **new!** * EN (English) * AmountOfMoney: Add support for subunits of dollars, e.g. nickels, dimes, quarters, as well as the number of coins * AmountOfMoney: Add support for latent * AmountOfMoney: Add support for lakh and crore * AmountOfMoney: correct regex to match three letter currency codes beginning with C * AmountOfMoney: Make ruleInterval{Max,Min} symmetric * AmountOfMoney: Support abbreviations of lakh and crore * AmountOfMoney: Add UAH currency * AmountOfMoney: Add HKD * AmountOfMoney: dollar and \ * AmountOfMoney: dollar and a half * AmountOfMoney: intersection for \ and a half * AmountOfMoney: extend interval support * AmountOfMoney: Add more variants of EGP * Distance: Support composite distances * Distance: one meter and \ * Distance: \ meters and \ * Distance: Add interval support * Duration: Fix composite durations without delimiters. It previously only worked with commas/'and'-separated tokens * Duration: Support more words in `ruleDurationNumeralMore` * Duration: \ and a half minutes * Duration: support for \ hour and \ * Duration: parse Xm as X minutes and X.Y hrs as X.Y hours * Duration: Leverage TimeGrain for x.y hours * Duration: Support composite duration * Numeral: Fix ambiguous parses when both ruleNegative and ruleMultiply apply * Numeral: Extend fraction rule * Numeral: Add mixed fraction rules * Numeral: Add prefix of 10/100/10_000 rules * Quantity: Support 'k.g' and 'k.g.' for kilograms * Temperature: Support temperatures with decimal values * Time: Fix palm sunday regex * Time: Fix latent time of days like "ten thirty" * Time: Don't parse time of days above 12 with meridiem like "13 am" * Time: Add rule to match \ + \ * Time: Add "all week"/"rest of the week" rules * Time: Parse time intervals like: 2015-03-28 17:00:00/2015-03-28 21:00:00 * Time: Add rules to handle "DD/MM/YYYY" or "DD MM YYYY" * Time: Add support for YYYYQQ and YYQQ expressions, like '2018Q4' and '18Q4' * Time: Add rule for 'during \' * Time: Restrict 'on' absorption to days * Time: Fix durations, upper intervals should all be exclusive * Time: Fix grain on some intervals for time-of-days * Time: Add rule 'in \ at \ * Time: Add \ - \ (interval) timezone rule * Time: '\ in \ should only operate on grain \> Hour * Time: Add '\ \ from \' rule * Time: Add \ past \ * Time: Make 'the week' resolve to interval from `today` to `end of week` * Time: Add support for \h\ * Time: Add rule for a quarter after \ * Time: Support 'Martin Luther Kings Day' * Time: Add more holiday aliases (Veteran Day, Mardi Gras, St. Paddy's Day) * Time: Intersect "9 tomorrow morning" * Time: Support 'Chinese New Years' * Time: Support "Saint" Patrick's Day * Time: Add Ratha-Yatra Holiday * Time: Add support for Ganesh Chaturthi holiday * Time: Add rama navami holiday * Time: Add '\ at \' rule * Time: Modify 'this|last|next \' to capture things like "the month" in "the first Saturday of the month" * Time: Support 'the \ of \' * Time: Add Orthodox Good Friday holiday * Time: The (nth) closest (day) to (time) * Time: Add rule for 'midday' * Time: Fix a problem with parsing fractional minutes * Time: parse 'upcoming xxx weeks' and 'xxx upcoming weeks' * Time: Add new rule to parse phrase in the pattern 'xxx minutes to \ * Time: Add support for spelled-out times * Time: Add support to parse \ \ * Time: Fix parsing 'next \' * Time: Treat 'coming' as 'next' * Time: Make duckling time not treat 0:xx and 12:xx ambiguously * Add 'asap', 'at the moment' to EN time * Parse latent year intervals * Time: last \ * Time: \ \ * Volume: Extend interval support * Time: Handle 2-digit date in existing DD/MM/YYYY rule * EN_UK (English, United Kingdom) * Duration: **new!** * Time: **new!** * EN_US (English, United States) * Time: Super Tuesday * ES (Spanish) * AmountOfMoney: Add support for intervals * Duration: Add support for parsing phrases like half hour, quarter of an hour * Duration: Support composite durations * Numeral: Fix typo of 22 (veinto -> venti) * Numeral: Add locale rules, since Spain and South America use different decimal separators * Numeral: parse 'cero dos' as 'dos' * Numeral: composite numerals * Ordinal: Add missing 'tercer' regex * Quantity: **new!** * Time: Add support for periodic holidays * Time: Fix `ruleYearLatent` to not match numerals that could be hours * Time: Make 'n horas' latent * Time: Fixed a problem with parsing 'day of month' that contains 'dia' * Time: Add rule for 'next week' * Time: \ \ * Time: support for 'noon' * Time: Allow para before timestamps * Time: Add rule to parse '\ (in the afternoon)' * Time: Add rule to parse 'last \ of \' * Time: Add rule for next week * Time: Add more corpus for tomorrow so that tomorrow latent doesn't prevail * Time: Fix multi-word timestamps * FA (Persian) * Numeral: **new!** * FI (Finnish) * Numeral: **new!** * FR (French) * Temperature: Support temperatures with decimal values * Time: Update month interval rules to handle ordinals and spelled-out numerals (e.g. "du premier au quinze juin") * Volume: Add 'Centilitre' type * HE (Hebrew) * AmountOfMoney: add more rules * HI (Hindi) * Duration: Pakhwada (पखवाड़ा) is 15 days n, not a fortnight * Duration: Add support for composite duration * Duration: Add support for specific times * Numeral: Support more numerals * Temperature: **new!** * Time: Add support for quarter till, quarter past, and half * ID (Indonesian) * AmountOfMoney: support intervals * IS (Icelandic) * Numeral: **new!** * IT (Italian) * AmountOfMoney: **new!** * Distance: **new!** * Duration: Fix ruleDurationAgo * KA (Georgian) * AmountOfMoney: **new!** * Duration: **new!** * Numeral: **new!** * Ordinal: **new!** * Time: **new!** * Time: Improvements for times in the past * Time: Add support for quarters * KM (Khmer) * Distance: **new!** * Numeral: **new!** * Ordinal: **new!** * Quantity: **new!** * Temperature: **new!** * Volume: **new!** * KN (Kannada) * Numeral: **new!** * KO (Korean) * AmountOfMoney: support intervals * LO (Lao) * Numeral: **new!** * ML (Malayalam) * Numeral: **new!** * Ordinal: **new!** * MN (Mongolian) * Numeral: **new!** * NL (Dutch) * AmountOfMoney: make decimal thousands separator optional * Duration: Add 'anderhalf uur' * Duration: support composite durations * Quantity: **new!** * Time: Add support for King's Day (Koningsdag) * Time: stop 'for \' from resolving as times * Volume: remove gallon * Volume: Fix typo in milliliter * NO (Norwegian) * AmountOfMoney: Parse more currencies * Numeral: The written numeral 8 had a typo: "otte" -> "åtte" * Numeral: Parse powers of ten with spaces as well as dots * Numeral: Add more textual powers of ten * Numeral: Parse textual numbers from 21 to 99 with _and_ without spaces * Time: Add support for half an hour before as e.g. "halv to" * Time: Add support for alternative clock denotation "klokka" * Time: Add support for alternative tomorrow denotation "i morra" * Time: Add some more unambiguous datetime parsing * PL (Polish) * Numeral: Add support for seventy, eighty, ninety * Duration: Fix typo: miej -> mniej * Time: Add 'evening' to corpus * PT (Portuguese) * Ordinal: Add 13..99 * Ordinal: Corpus, keep accents consistent * Time: Last and quarter expressions * RO (Romanian) * Numeral: Fix multipliers with values above 20 In Romanian, for numerals above 20, we say '20 de milioane', not '20 milioane'. * Time: Implement 'the day after tomorrow' * RU (Russian) * AmountOfMoney: Add UAH currency * Numeral: Be more permissive with numerals [20, 90] * Time: **new!** * SK (Slovak) * Numeral: **new!** * SW (Swahili) * Numeral: **new!** * TA (Tamil) * Ordinal: **new!** * TE (Telugu) * Numeral: **new!** * TH (Thai) * Numeral: **new!** * TR (Turkish) * AmountOfMoney: **new!** * Time: **new!** * VI (Vietnamese) * AmountOfMoney: Add interval support * AmountOfMoney: ruleNg, ruleDollar, ruleVND modified to better capture usage of VI * Numeral: Add "ngàn" common synonym of "nghìn", and "chục", colloquially used to count tens. * Numeral: Remove ? in some regex where they don't make sense * Time: Fix double-digit month matching * Time: don't parse ngày * ZH (Chinese) * Duration: Add more common expressions * Numeral: Add more common expressions * Time: Parse YYYY-MM * Time: Value before month can be integer or chinese char * Time: Add support for (pre-)computed holidays * Time: Add more common expressions * Volume: **new!** ### Server * Skip logfile creation if no logging * Document how example application can use specific dimensions only * Use System.FilePath.Posix instead of System.FilePath * Use all dimensions by default * Load timezones more leniently * Docker: Reduce size of image drastically * Dockerfile: Use Debian Buster ## 0.1.6.1 ### Core * Warn against incomplete pattern matching in GHC options * Updated readme for custom dimensions * Coding style documentation ### Rulesets * Common * AmountOfMoney: change `financeWith` to `isAmountOfMoney` where applicable * Temperature: implement temperature intervals * EN * AmountOfMoney: support "grand" * Time: Absorb "since" before month/year * Time: Fix before/after/until/since + * Time: Make partial meridies latent * Time: Global Youth Service Day * Time: Vesak * Time: Earth Hour * Time: Regex update for Rosh Hashanah and Chanukkah * Time: add