From 2a4646440e6d681ba605eea647f7c7ef9c376be8 Mon Sep 17 00:00:00 2001 From: "Rodrigo Q. Saramago" Date: Wed, 28 Sep 2022 11:26:11 +0200 Subject: [PATCH] Fix regex when only the days have leading zeros --- test/translate.ts | 1 + translate.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/test/translate.ts b/test/translate.ts index 44697c19..5e8934f4 100644 --- a/test/translate.ts +++ b/test/translate.ts @@ -21,6 +21,7 @@ tape('Version string to Semver translator', function (t) { t.test('Broken nightly with leading zeroes', function (st) { st.equal(versionToSemver('0.3.6-nightly.2016.08.27+commit.91d4fa47.Emscripten.clang'), '0.3.6-nightly.2016.8.27+commit.91d4fa47.Emscripten.clang'); st.equal(versionToSemver('0.4.1-nightly.2016.09.09+commit.79867f49.Emscripten.clang'), '0.4.1-nightly.2016.9.9+commit.79867f49.Emscripten.clang'); + st.equal(versionToSemver('0.4.1-nightly.2016.12.06+commit.79867f49.Emscripten.clang'), '0.4.1-nightly.2016.12.6+commit.79867f49.Emscripten.clang'); st.end(); }); t.test('Old style 0.1.1', function (st) { diff --git a/translate.ts b/translate.ts index 54df9ae0..551817f2 100644 --- a/translate.ts +++ b/translate.ts @@ -30,7 +30,8 @@ function versionToSemver (version) { return '0.3.5'; } // This parses the obsolete nightly style where the date can have leading zeroes. - const nightlyParsed = version.match(/^([0-9]+\.[0-9]+\.[0-9]+)-nightly\.([0-9]+)\.0?([1-9])\.0?([1-9])(.*)$/); + // It does not validate the dates, but only if the date format is correct (i.e. YYYY.[M]M.[D]D). + const nightlyParsed = version.match(/^([0-9]+\.[0-9]+\.[0-9]+)-nightly\.([0-9]+)\.0?([1-9]+)\.0?([1-9]+)(.*)$/); if (nightlyParsed) { return nightlyParsed[1] + '-nightly.' + nightlyParsed[2] + '.' + nightlyParsed[3] + '.' + nightlyParsed[4] + nightlyParsed[5]; }