All notable changes to opening_hours.js will be documented in this file.
This project adheres to Semantic Versioning and human-readable changelog.
Note that most of the v2.X.Z releases have not been added to the changelog yet.
- [putnik] - Sergey Leschina
- [Cactusbone] - Charly Koza
- [don-vip] - Vincent Privat
- [sesam] - Simon B.
- [NonnEmilia]
- [damjang]
- [jgpacker] - João G. Packer
- [openfirmware] - James Badger
- [burrbull] - Zgarbul Andrey
- [blorger] - Blaž Lorger
- [dmromanov] - Dmitrii Romanov
- [maxerickson]
- [amenk] - Alexander Menk
- [edqd]
- [simon04] - Simon Legner
- [MKnight] - Michael Knight
- [elgaard] - Niels Elgaard Larsen
- [afita] - Adrian Fita
- [sanderd17]
- [marcgemis]
- [drMerry]
- [endro]
- [rmikke] - Ryszard Mikke
- [VorpalBlade] - Arvid Norlander
- [mmn] - Mikael Nordfeldth
- [adrianojbr]
- [AndreasTUHU]
- [mkyral] - Marián Kyral
- [pke] - Philipp Kursawe
- [spawn-guy] - Paul Rysiavets
- [bugvillage]
- [ItsNotYou]
- [chiak597]
- [skifans] - Alex
- [shouze] - Sébastien HOUZÉ
- [Gazer75]
- [yourock17]
- [urbalazs] - Balázs Úr
- [HolgerJeromin] - Holger Jeromin
- [Gerw88]
- [sommerluk] - Lukas Sommer
- [Discostu36] - Michael
- [debyos] - Gábor Babos
- [StephanGeorg] - Stephan Georg
- [hariskar] - Haris K
- [Virtakuono] - Juho Häppölä
- [blef00fr]
- [mstock] - Manfred Stock
- [emilsivro]
- [simonpoole] - Simon Poole
- [jmontane] - Joan Montané
Thanks very much to all contributors!
Thanks for helping by allowing employees to work on the project during work hours!
master - unreleased
- Public holiday definitions added:
- Added Easter Sunday to Slovak holidays. [chiak597]
- Localizations added: Hungarian [urbalazs, debyos]
- School holiday definitions added:
- Translate error tolerance warnings into German. [ypid]
- Add additional warnings:
- Misused
.
character. Example:Jan 01,Dec 24.-25.
. [ypid] - Trailing
,
after time selector. Example:We 12:00-18:00,
. [ypid] - Additional rule which evaluates to closed. Example:
Mo-Fr 10:00-20:00, We off
. [ypid] - Value consists of multiple rules each only using a time selector. Example:
11:30-14:30;17:30-23:00
. [ypid] - Potentially missing use of
<additional_rule_separator>
if the previous rule has a time range which wraps over midnight and the current rule matches one of the following days of the previous rule. One that the warning is not emitted in case wide range selectors are used in both involved rules to avoid a false positive warning where the two rules would never match days directly following each other. Nevertheless this check has false positives and which can be ignored in cases mentioned in the warning. Example:Fr 22:00-04:00; Sa 21:00-04:00
[ypid]
- Misused
- Extend error tolerance:
- Public holiday definitions updated:
- Germany [StephanGeorg]
- Migrated to use ES2015 modules and rollup for module bundling. [simon04]
- Increased NodeJS version requirement to
6.0.0
. Technically, the code should still work with4.0.0
but support has been dropped becausenpm-install-peers
depends on6.0.0
. [ypid] - Update to holiday definition format 2.2.0. Holidays are now maintained in YAML files, one for each country. [ypid]
- Update to holiday definition format 3.0.0. Use nested key-value pairs instead of arrays with a known structure. [ypid]
- Rework the way Nominatim responses are handled (used for testing). [ypid]
- Allow "gaps" in school holiday definitions. This became necessary because countries/states might add/remove holidays like winter holidays from one year to another. [ypid]
- Error tolerance: For a value such as
Mo-Fr 08:00-12:00 by_appointment
the tool did previously suggest to useMo-Fr 08:00-12:00 "on appointment"
but as whether to useby appointment
oron appointment
is not defined the tool now just uses the already given variant (Mo-Fr 08:00-12:00 "by appointment"
in this case). [ypid] - Error tolerance: Interpret the German :regexp:`werktags?` as
Mo-Sa
instead ofMo-Fr
. Ref: § 3 Bundesurlaubsgesetz (BUrlG). [ypid] - Make error tolerance warnings translatable. [ypid]
- Improved performance of common constructor calls by factor 6! [ypid]
- Improve number input in the evaluation tool and other HTML and CSS improvements. Useful for example on mobile devices. [HolgerJeromin, ypid]
- Merge country into state holidays. This avoids repeating country-wide holidays. [simon04]
- Fix German public holiday definitions. Since 2018, Reformationstag is also a public holiday in Bremen, Schleswig-Holstein, Niedersachsen and Hamburg. [Discostu36, ypid]
- Fix Russian public holiday definitions. Regions where not in local language and thus not matched properly. [ypid]
- Fix school holiday selector code which caused the main selector traversal function to not advance any further (returning closed for all following dates) after the school holiday selector code hit a holiday definition ending on the last day of the year. [ypid]
- Fix
check-diff-%.js
Makefile target. :command:`git diff` might not have shown changes or failed to return with an error before. [ypid] - Fix support for legacy browsers (IE) with using proper for...in loops. [shouze]
- Error tolerance: Fix mapping of Spanish weekdays. [maxerickson]
- Do not zero pad
positive_number
symbols by default inoh.prettifyValue
. [ypid]
v3.5.0 - 2017-02-17
- Public holiday definitions added:
- Brazil [adrianojbr]
- Sweden [VorpalBlade, mmn, ypid]
- Poland [endro, rmikke]
- Czech [mkyral]
- Hungary [AndreasTUHU]
- Slovakia [chiak597]
- School holiday definitions added: Hungary [AndreasTUHU]
- Changelog file. [ypid]
- Holidays definition documentation 2.1.0. [ypid]
- AMD with RequireJS. [ItsNotYou]
- Test the package on Travis CI against a version matrix (refer to
.travis.yml
for details). [ypid]
- Make the evaluation tool prettier. [MKnight]
- Use
peerDependencies
to allow dependency reuse by other npm packages. [pke, ypid] - Use caret ranges for all npm dependencies. [ypid, pke]
- Increased NodeJS version requirement to 0.12.3 which fixes one test case. [ypid]
- Public holiday definitions fixed:
- Germany, Saxony: Add missing "Buß- und Bettag" to the public holiday definition of [bugvillage, ypid]
- Fix the getDateOfWeekdayInDateRange helper function used to calculate PH of Sweden and Germany Saxony. PH definitions using this functions might have been wrong before. [ypid]
- Fix timezone problem in
PH_SH_exporter.js
(local time was interpreted as UTC). [ypid] - Fix handling of legacy 12-hour clock format.
12:xxAM
and12:xxPM
was handled incorrectly! [ypid] - Fix timezone issue for PH_SH_exporter.js unless the
--omit-date-hyphens
option was given. Exported dates which are in DST might be wrong when your system is in a timezone with DST and DST was not active when you run the script. [ypid] - Fix current week number calculation which was caused by incorrect use of
new Date()
which is a "Reactive" variable. [spawn-guy]
v3.4.0 - 2016-01-02
- Public holiday definitions added:
- School holiday definitions added: Romania [afita]
- Localizations added: Dutch [marcgemis]
- Added simple HTML usage example for using the library in a website. [ypid]
- Browserified the library. [simon04]
oh.isEqualTo
: Implemented check if two oh objects have the same meaning (are equal). [ypid]- Expose
oh.isEqualTo
in the evaluation tool. [ypid]
- Changed license to LGPL-3.0. [ypid]
- Refer to YoHours in the evaluation tool. [ypid]
- Use HTTPS everywhere (in the documentation and in code comments). [ypid]
v3.3.0 - 2015-08-02
- Public holiday definitions added: Czech Republic [edqd]
- Support for localized error and warning messages. [amenk funded by iMi digital and AddisMap]
- Support to localize oh.prettifyValue opening_hours value. [amenk funded by iMi digital and AddisMap]
- Wrote SH_batch_exporter.sh and added support to write (SH) definitions for all states in Germany. [ypid]
- Added more tests to the test framework. [ypid]
- Updated translation modules to latest versions.
- Fixed false positive warning for missing PH for value 'PH'.
- Fixed evaluation of SH after year wrap (of by one).
v3.2.0 - 2015-05-16
- Show warning for missing PH. Required API extension (fully backwards compatible, upgrade recommended).
- Show warning for year in past, not year range.
- Added more error checking and tests for: Wrong constructor call, e.g bad parameters.
- Added more tests to the test framework.
- Improved input/error tolerance.
- Refactored source code.
- Updated examples in evaluation tool.
- Statistics: Optimized Overpass import.
- Statistics: Fixed wrong stats for 'not prettified'.
- Statistics: real_test.js: Implemented punchcard weekly report generation. See blog post.
- Statistics: Wrote
gen_weekly_task_report
.
v3.1.1 - 2015-04-12
- Public holiday definitions added: Italian [damjang, ypid]
- Added support to use data from the Overpass API to generate statistics.
- Give better error message for wrong usage of
<additional_rule_separator>
. - Always use strict
===
comparison in JavaScript.
v3.1.0 - 2015-02-15
- Public holiday definitions added:
- USA and python script for testing the holiday JSON (ref: us_holidays) [maxerickson]
- Public holiday definitions fixed: France
v3.0.2 - 2015-01-24
- Added
make release
target.
- package.json: Narrowed down version of dependencies.
- Enhanced Makefile.
- Updated README.md
v3.0.1 - 2015-01-24
- Public holiday definitions added: Russian [dmromanov]
- Improved error tolerance for values
bis open end
andSonn- und Feiertags
. - real_test.js: Added the following OSM tags to the evaluation:
- Key:happy_hours
- Key:delivery_hours
- Key:opening_hours:delivery
- Evaluation tool: Added
noscript
tag to give a hint to the user to enable JavaScript.
- Fixed up README.md.
- Fixed error when parsing input value
SH off; Mo-Sa 18:00+
. - Require 2.7.x of the moment library because of API change in recent versions.
v3.0.0 - 2014-09-08
- Release notes.
oh.prettifyValue
: Implemented selector reordering.oh.prettifyValue
: Changed API for optional parameters. API is backwards compatible in case you are not using any of the optional parameters.- Evaluation tool: Highlight selectors and other tokens and give more information.
- real_test.js: Write verbose log file for all values and states.
- real_test.js: Added tag filter command line parameter and csv stats output.
- Created favicon.
- Bundle (and test) minified version as
opening_hours.min.js
. - More unit tests:
- Rule has no time selector.
- Changed default state not first rule like
Mo 12:00-14:00; closed
. - Valid use of
<separator_for_readability>
. - And more.
oh.getMatchingRule
: Changed API. Not backwards compatible.- Week selector rework. Using ISO 8601 week dates.
- Made second rule of '07:00+,12:00-16:00; 16:00-24:00 closed "needed because of open end"' obsolete.
- Improved error tolerance.
- real_test.js: Enhanced implementation.
- Fixed evaluation for some (not to often used) values.
- Optimized source code with JSHint. Some internal variables where defined in global scope.
- Removed duplicate warnings for
test.addShouldWarn
in test framework.
v2.1.9 - 2014-08-17
- Many more unit tests.
- Internal tokens array documentation.
- Using moment.js for date localization.
- Many improve error tolerance: comments, am/pm time format, …
- Updated examples in the evaluation tool.
- Internal refactoring and enhancements.
- Fixed problems reported by
real_test
- Fixed bug in test framework.
v2.1.8 - 2014-04-26
- Public holiday definitions added: Canadian [openfirmware], Ukraine [burrbull], Slovenian [blorger]
- Localizations added: Ukrainian [burrbull]
- Localizations fixed: Russian [openfirmware]
v2.1.0 - 2014-03-03
- Public holiday definitions added: French [don-vip]
- Localizations added: French [don-vip], Ukrainian [jgpacker], Italian [NonnEmilia]
- Docs: Improved understandability of overlapping rules in README.md. [sesam]
v2.0.0 - 2013-10-27
package.json
file. [Cactusbone]
- Initial coding and design. [AMDmi3]
- demo page (now called evaluation tool) improvements. [putnik]