From f678f49ada2e9c7c3708e33a70234abb31c50727 Mon Sep 17 00:00:00 2001 From: Tobias Berger Date: Fri, 18 Dec 2020 10:38:17 +0100 Subject: [PATCH] JavaScript Day 18 Signed-off-by: Tobias Berger --- JS/day18/.eslintrc.json | 22 + JS/day18/input | 378 +++++++++++++++++ JS/day18/package.json | 19 + JS/day18/solution_a.mjs | 91 +++++ JS/day18/solution_b.mjs | 99 +++++ JS/day18/yarn.lock | 812 +++++++++++++++++++++++++++++++++++++ JS/template/package.json | 1 + JS/template/solution_a.mjs | 4 +- JS/template/solution_b.mjs | 4 +- 9 files changed, 1426 insertions(+), 4 deletions(-) create mode 100644 JS/day18/.eslintrc.json create mode 100644 JS/day18/input create mode 100644 JS/day18/package.json create mode 100644 JS/day18/solution_a.mjs create mode 100644 JS/day18/solution_b.mjs create mode 100644 JS/day18/yarn.lock diff --git a/JS/day18/.eslintrc.json b/JS/day18/.eslintrc.json new file mode 100644 index 0000000..615107c --- /dev/null +++ b/JS/day18/.eslintrc.json @@ -0,0 +1,22 @@ +{ + "env": { + "browser": true, + "es2021": true, + "node": true + }, + "plugins": [ + "prettier", + "jsdoc" + ], + "rules": { + "prettier/prettier": "error", + "jsdoc/valid-types": "off" + }, + "extends": [ + "plugin:jsdoc/recommended" + ], + "parserOptions": { + "ecmaVersion": 12, + "sourceType": "module" + } +} diff --git a/JS/day18/input b/JS/day18/input new file mode 100644 index 0000000..474f0b4 --- /dev/null +++ b/JS/day18/input @@ -0,0 +1,378 @@ +3 * (2 + (9 * 2 * 2 + 8) * (7 * 6 * 7 * 3) * (3 * 9 * 7) * (6 * 6)) * 9 * 8 + 6 +6 + 4 + 6 * 2 + 5 * (8 + 5 + 5 + (8 * 7 + 2 + 6 * 5 * 4)) +9 + 3 + 5 + 3 * (5 + (8 + 7 * 8 * 8) * (5 + 9 + 9 * 9 * 4)) * (6 * (8 * 5 * 6 * 8 + 4 * 5)) +4 * ((8 * 6 + 3 * 3 * 9 * 8) + (2 * 3 * 4 + 9 * 2 * 3) + 4) +4 * 9 + (6 + 4) * 6 +6 * 7 + (8 * 2 + 9) + 4 * 7 +(2 + 6 * 4 + 3 + 7 * 2) * 2 + 7 + 2 + (9 * 4 + 9 + 7 + 9) + (2 * 4 + 3 + 5 + 2 + 7) +(7 * 5 + 4) * 7 +3 + 8 + (5 + 9 * 8 + 6 + 4 * (3 + 3 * 8 + 7)) + (2 * 4 + 4 * 3) +2 + 2 + ((8 * 9 + 2 * 8) * 7 + 5 * (5 + 7 * 3) + 7 * 5) * 3 + 8 * 7 +5 * 9 + (5 * (9 * 7 * 9 * 9) + 9 * 2 + 6 * 2) +9 + 9 * (4 + 9 * 9 * 6 + 5) * 7 * 8 * ((7 + 6 * 6 * 4 * 8) * (7 * 8) + 7 * 6 * 8 * 9) +6 + ((3 + 4) + (2 * 9 + 8 + 9 * 3 * 7) * 3 + (7 * 8 + 9 * 3)) +6 + (3 * (9 + 2) * 9 + 4 + (5 + 4 + 3 * 2 * 4 + 4) + 6) +(8 * 3) * ((8 * 4 + 4) + 7 * 2 * 7 * 8 * 9) + 2 + (4 * 3 + (7 + 6) + 4 * (3 * 8 * 3 * 8) * 3) +(9 * (3 * 6 + 7) + (2 * 3 * 2) + (7 + 8 + 7 * 4 * 4) + 6) + 3 +6 * (3 + (5 + 6 * 2 * 3) + (8 + 7 + 2 + 7 * 2 * 5) * 3) + 4 * 4 + 7 * 7 +4 + 3 + 9 + 5 * 3 * (7 + 6 + (5 + 2 + 7) + 8) +5 * 4 + 4 * 4 + (2 + 9) +8 + 6 + ((8 + 5 + 2 * 9 * 3 + 3) * 8 * 4) + (7 + (7 * 4 + 9) * 4) +2 * 8 * 4 + ((3 + 2) * 8) + 3 +4 * ((6 + 8 * 6 * 7 + 3) * 6 + 9 + 8 * 6 * (5 * 9 + 4)) * (2 + 8 + 6 * 3 + 9) +(3 + 6 + 3) * 3 * 4 * 6 + ((9 + 9 + 7) * 6 + 9 + 6) + (7 * 7 + 8 * 2 * 2) +(3 * 8 + 9 * 2 * 8 * (2 + 3 * 4)) + 3 * 3 +(7 + 9 * 5 + 6 * 4) + 9 * 4 + 2 * 2 +(6 + 9 + 2 * 7 * 6) * 9 * (5 + 9 * 6) +(2 * 4 * 8 + 2 * (4 + 3 + 2 * 2)) * 4 * 3 + 6 + ((8 * 5) + (9 * 5 * 3 * 9 * 7 + 7) * 7 + 9) + (4 * 8 + 9 + 5 + 2) +3 + ((6 + 3) * 3 * 8 + 9 + 5) +9 + 7 * (9 + 5 + (2 * 7 + 8 + 3 + 9 * 2)) + 4 +4 * (8 * 7 + 9 * 9 * 3) * (5 + 5 + 9 + 4 * 9 * 6) + (4 + 3) * (9 + 3 + 4 + 7 * 5) + 7 +(7 + 9 + 5) + 3 * ((6 + 7 * 7 + 4) + (3 * 3) + 3) +5 + (6 * (5 + 6 * 5) + 9 * (3 * 5 + 7 + 6) + (2 * 3 * 4 + 5 * 9) + 4) +((2 + 3 + 5 + 5 + 2 * 7) + 5 + 2 * 7 + 6) + 8 * 9 + 4 + 5 +3 * 3 * 4 * 4 * 6 + (4 + (7 + 6)) +(2 + 8 + 6 + 7 + 6) * (8 + 4) + 4 + 3 +(7 + 3 + (5 + 3 + 3 + 5)) * 5 + 4 * (7 * 3) +4 * 2 * (5 + 5 * 7 + 8 * (4 * 6 * 8 + 6 + 7 + 2) * (4 + 3)) * (2 * 3 * 7 * 3 + 8 + 5) * 4 +6 + (2 * 6 * 7 + (6 * 6 + 8 + 4 * 2) + 6 + 5) * (8 + 3 * (4 * 4)) + (2 * 5 + 6 + 8 * 3 + 6) * 9 + (3 + 3 * 3 + 8) +2 + (4 * 3 * 9 + (2 + 4)) * (3 + (5 * 8 + 9) + 6 * (7 * 3) + 6 + 6) + 8 * 2 * 7 +8 * (4 * 5 * 7 * (4 * 8 + 4 + 3) + 6) + 5 * 2 +((5 + 5) * 9) + 2 + 8 + 3 + 6 +8 * (9 + 7 + (5 * 3 + 7 * 3)) + 5 +5 + 5 * 2 + (6 * 4 + 4 * (5 + 7 * 4 * 8 + 7 + 5) * 5 + 7) +(5 + 9 + 6 * 7 + 4) * 3 * 9 + 7 * (2 + 9 + 8 * 4) +7 * 4 + 7 + (7 + 4 + 8) + 9 * (6 + 5) +2 + 3 * 2 +8 * (3 + 4 * 7 + 6 + 9 * 2) + (7 * 2 * 5) +(4 + 3 + 3) * (6 * 8 + 2 + (6 * 5)) * 8 * 9 +8 * (2 + 8 * 3 * 5 + 2) + 9 * 4 + ((4 * 8 * 4) * 9 * 4 + 3 * 4) * 8 +(4 + 3) * 5 +3 + 8 * 8 * (3 * 7 + 5 * 7 * (2 * 8 + 3 + 8) * (5 + 2 * 6 + 3 * 2 + 3)) +3 * ((5 * 9 + 2 + 8) * (9 + 9)) + (4 + 9 * 2 + 8 * 6) * 7 * (8 + (3 + 6 * 3 + 5)) + 3 +5 + 2 * 7 * 8 + 2 + (8 * 3 * 2 * 7 * 5) +(3 + (6 + 5) * (2 * 2 * 6) + 8 + 5 * 8) + 9 + 2 * 8 +(8 + 3 * 8) + 7 + ((9 + 3 + 2) * (8 * 5 + 3 + 7) + 9) +2 + 5 + ((5 * 8 + 7) * 2) + 7 + 6 +6 * 5 * 3 +5 * ((3 * 7 * 6) * 2 * 5) * 5 * 8 * 6 * (9 + 9 + 2 * 3 + 6 + 4) +9 * (6 * (4 + 9 + 9 + 7 * 5 * 3)) + 7 + 7 + 6 * 5 +9 * (4 + (3 * 9 + 3 + 6 * 7) * 7 * 9 + 3 * 6) + 7 +(4 * 3) + 4 * 6 * 3 * 5 +3 * 9 * 8 * (9 + 8 * 6) + 8 + (7 + (5 * 5 * 8 + 6)) +6 * 3 +2 + (3 + (6 + 2) + 5 + 9 * 7 * (3 + 5)) + 4 +(7 * (8 * 6 + 3) * 4 * 5) * 6 * 9 + 9 + 9 +((3 * 4 * 7 + 8) + 5 + 5) + 9 + (2 + (5 + 9 + 7 * 7 + 8) + (3 + 3 + 2) + 9) * (3 + (6 * 3) * 9) * 5 +(6 * 6 + 7) + 7 + 8 * 5 +(6 + 2 + 3 + 4) + (6 + 9 + 5 + 8) + (4 + 3 * 2) * 7 +5 * ((5 + 5 * 9 * 7 * 8 + 2) * 7 + (7 + 5 + 5 + 5 * 9 * 8) + 5 * 6 * 3) +(9 * 6 * 5) + (7 + 2 + 4 * 7 + 8) * (3 * 6) + (9 + 7 + 3 * 7 + 4) +4 + ((5 + 8 + 3) + 7 + 4 + 9 * 3) + 5 + 2 + 6 +2 + 6 + 5 * (6 + (9 + 8 * 4 * 5 * 4) + 6 + 9) * (7 * 4 + 6 + 4 + 7) * 6 +((9 + 8 * 5 * 9 * 9 * 2) * 5) + 8 * 9 +9 * 7 * 5 + (8 + 4 + 3 * 5 + 2 * 6) +8 * 7 * 7 * 9 + (6 * 3 + 8 * 7 * 8 * (2 * 9)) +7 * (5 + (7 + 3 + 2 * 4 + 8)) * 8 * 3 +6 * (8 + 3) + ((7 * 9 + 7 * 8 * 9 * 8) + 3 * (9 * 7 + 3 * 7) + 3 * 6 * 7) +7 + 6 * 7 * 4 * (4 * 2) + ((7 + 5 * 9 + 5 + 9) + 7 * 4 * 4 + 8) +5 + 6 + 4 + 9 * 2 * (9 * 4 + (7 + 6 * 7) + (2 * 8 + 9 + 6) * 2 + 8) +6 + 6 * 8 + 9 + (3 + 2 + 7 * 7 * (7 * 7 * 3 + 3 + 5 * 6) + 9) +3 + 2 + 2 + 6 + 6 + 9 +8 * 3 * (7 * 6 + 6 * 9 * 9 * 9) +7 + 5 + (6 * 4 + (7 + 7 + 9) + (5 + 7) + 9) + (9 * 7 + 6 * 8) +7 + (5 + (9 + 4) * (8 * 8 + 2 + 6 + 8) * (5 * 5) * 5 * 9) +5 * 7 + 6 + (7 * 4 + (7 + 2 + 8 + 5) * 8 * 6 * (3 * 4 * 9 * 5)) + 9 +(7 * 5 + 7 + (6 * 5) + 3 + 5) + 4 * 2 + ((5 + 2) + 5 * (6 + 7 + 4 * 8 * 6) + (8 * 4) + 5 * (2 + 5 * 8 + 6 + 2 * 8)) +6 * 9 +9 + (3 * 7 + 8 + 9 * 5) * 3 +(4 * (7 * 7) + 8 * 5 + 8) * 3 +6 * (5 + 2 * 2 * 2 + 2) +(2 * 3 * 6 + 9) * 8 +2 * 7 * 4 * (4 + 2) * (3 + 5 * 8 + 5 * 9) +((2 * 8 + 7 * 2 * 6 + 6) * 5 + 9 + (8 + 7 * 4) + 8 + 6) * (6 * (5 + 5 * 7 + 2 + 3) + 4 * 4 + 5 + 3) + 8 +6 + 7 * (9 * 7 * (4 + 2 * 5) * 4 * (7 + 3 + 2) * 2) +8 * 3 * 5 + (3 + (3 * 5 + 8 + 9) + 5 + 2) +2 * ((5 * 6 + 3 * 6) * 8 * 4 * 9) * 3 +5 + (3 + 8 * 8 + (8 * 8 * 2 * 7) + 8 + 4) * 4 + 2 * 5 +7 * (4 * (2 * 8 + 2 * 8) + 2) * 8 +8 * 4 * 3 * 6 + (6 + 2 * 5 + (8 + 3 + 8 * 7 * 8) + 6 * 2) +(3 * (8 * 4 + 9 + 8 + 8) * (4 + 5 * 3 * 3) * 6 + (8 + 5)) + 9 * 7 + 4 +6 + (5 * 5 + 5 * 8 + 2) * 8 + 9 * 5 +2 + 4 + (9 * 2 + 7 + (6 * 2 * 5 * 8 + 2 * 8) + 5 + 9) + 3 * 4 +3 * (9 * 4) * 8 +2 + 8 +7 * 9 * 5 * 4 +8 + 8 * (2 + 5 * 4 * 6 * 8) + 9 + 9 +(8 * 5 * 4 + 3 * 7) + 5 + 9 * 3 * (4 * 7 + (7 * 8 + 4 * 7 + 7) + (4 + 6 + 9 + 5 + 5)) + (5 + (4 * 2 * 3) * 2 + 6 * 3) +(2 + 8) * 3 * (8 + 6 + 5) * 2 * 3 +(6 + 7 + (8 * 2 * 5 * 4 * 4) + 2) * (6 * 8 + 6) +(6 * 9 * (8 * 6 * 8)) * 6 + (4 + 7 * 6 + 7 + 8 + (2 * 6 * 3 + 9 + 5)) +((3 + 9 + 9 + 4 + 3 * 4) + 5 * 9 + 5 + 6 * (2 * 5 * 3)) * 4 +9 * 9 + (8 + (8 * 3 + 4 + 7 * 7 + 3) + 4 * 7 * 4) * (6 * 6 * (5 * 7 + 8) * 2 * 4 * 7) +2 + 8 * (5 + 5) * (3 + 9 + 8) +8 * (4 * 7 * 9 * 8 + 8 * 7) * (6 + 7) * 6 * 3 +2 * 6 + ((7 * 3) + 6 * (5 + 4 * 7 * 9 + 9 + 5) + 5) * 9 + 9 + 2 +2 + (3 + 2 + 9 * 6 + 3) + 2 * 9 + (4 + 9 + 4 + 4) +2 * (8 * 9 * 4 + 9) + 6 + (6 + 5 * (2 + 4 + 5 + 9 + 5 * 6) * (3 * 2 + 5 + 4) + 5) +3 * 9 + (6 * 9) + 9 * ((5 + 2 + 3 * 2 * 4) * 8 + 8) + 3 +((9 + 8 * 9 + 4 * 5) * 2 + 8 + 7) + 8 +(6 + 8 + 2 + 4 + 8 * 6) + 7 +6 * 9 + 9 * (6 + 6 * 8) * (5 + 4 + 4) * 7 +((4 * 4 * 7 * 8) + 6) * 3 +7 * 3 + (7 * 5 * 3 + 4) +5 * ((8 * 9 * 8 + 4 + 2 * 6) + 7) + ((7 + 7 * 3) * 5 + 9 + 9 + 5) + 2 * ((3 * 2 * 9 * 2 * 5) + (6 + 4) * 6 + 6) * 8 +(3 + 6 * (9 + 4 + 5 * 2 * 5) * 2) + ((8 * 9) * 5 + 4 + (8 * 8 + 8 + 2 * 8 * 5)) + 4 +3 * 4 + ((7 + 6 + 9 * 7) * 7 * 9) + (6 + 3 * (2 * 9 * 2 * 3) + 6 * (8 + 2 * 8 + 9)) +3 * 3 + ((7 * 7) + 4 + 3 + 5 + 8 + 8) + 3 * (7 + 8) + (8 + 9 * 2 + 5 * 9) +6 + 9 + ((3 + 2 * 2 + 6 * 7) * 9) + 8 + 4 + 2 +(5 * 4 + 7 + (5 * 4) * 8 + 2) * 5 + (8 * (6 + 7 + 7 + 9 * 7 + 5) + 6 + 3 + 3) + 6 + (4 * 4 * 2) + (9 * 7 + 6) +5 + 3 * (2 + (8 * 9 * 4 * 3) * (2 + 8)) +(6 * 5 + 3 + (4 + 9 * 7 * 2 + 3 * 6)) + 6 * ((3 * 2 * 2 * 6) + 7) * 5 + 7 * 5 +6 + (8 * 5 * 3 + 9 + 6 + (7 * 5 * 4 + 4 + 2)) * 4 + 7 * (4 + 8) + 7 +2 * 2 * 9 * 6 * ((6 * 8 * 8) * (2 + 7 + 3 * 9 * 5 + 2) * 9) * 5 +8 * 8 +(9 * 2) + 5 + (5 * 8 * (2 + 3 + 9 * 8)) * 4 + 6 +((4 * 8 + 9 + 5 + 8) + 6 * 8 * (2 + 3)) * 8 * 3 * 2 + (2 * 7) +8 + 4 * ((2 + 4 + 7 + 4 * 2) * 3 * 6 + 3 * 7 + 3) * 8 * 9 + 4 +5 + ((2 + 9 * 3 * 9) + 6 * (3 * 7 + 2 + 7 * 5 + 9)) * (9 + 8) +9 * (5 + 7) + 5 * 6 * 9 + 7 +9 * 5 + 8 * 5 * (5 * 7 * 9) * (5 * 3 + 9 + (7 + 2 + 5 * 6) * 5 + 5) +3 * 7 * (8 + (3 * 4 * 6 + 4 + 2 * 8) * 8 + 2 * 9) + 2 * 6 +2 + 6 + 9 * (6 * 2 + 9 * 9 * 8) * 3 +(2 + 4 * 4 + 7 + 3) * 2 * 8 +6 * 6 + 4 + 5 * 4 * 2 +(3 + 6) * 3 + 9 + (7 + 8 * 3 + (2 + 5 + 4 * 4 * 8 * 5)) + 9 +(5 + 5 * (5 + 3 + 5 * 4)) + ((3 * 7 * 9 + 7 * 7) * 4 * 6) +(6 * 3 * 3 + (8 + 8 * 6 + 3) * 2) * (5 + 3 * 8 * 4) + (6 + 6) * ((3 + 9 + 7) + (5 + 2 + 2) * 7 + (7 * 2 * 4 + 7 + 2 * 9)) * 2 + 5 +(8 + 8 + 2 * 4) + (6 * 8 + (6 * 4 + 2 + 9 * 9 * 8) * (4 + 4 + 2 + 4)) * ((8 + 6 * 5) + 6 * (2 + 6 + 3 * 5 + 4 + 8)) + 9 + 8 + 3 +5 + 7 + ((7 + 9 + 9) * 3 + 6) + 6 * 2 * 4 +(8 + 5) + 8 * 7 * (9 * 2 + 6) * (2 * 2) +7 * 6 * (2 + 7 + 6) * 8 +5 + 6 * (5 + 4 + (8 * 4)) * 3 + 3 +5 * 4 + 7 + 7 + (2 + 6 * (6 + 3 * 9 + 7 * 4 * 5) * 6) * 8 +(9 * (9 + 8 + 4 * 8)) + 6 + ((8 + 6) * 5 * 5 * 2 + 9 + 2) * 5 +5 * (4 * 9 + (3 + 7 + 9 * 6 * 2 * 4)) * 4 * 6 +4 + 2 * (7 + 2 + 8 * 3) + 2 +5 * ((9 * 3 * 4 * 2) * 2 + (2 * 7) * 2 * 4 * 6) +9 + (6 + 8) + 9 * 9 * ((6 * 7 + 2 * 8 * 8) * 8) + 8 +9 + 9 * 2 * (8 * 3 + 2 + 4 + 2) * (4 * 4 + 3 + 2) + 2 +3 * (5 + 9 + 5 * (8 * 3) * 6) + 3 * 6 * (4 * 8 + 6 * (4 * 8) * 5) + 3 +3 + (3 + 7 + 7 * (3 + 5 + 8 + 5 * 7 + 6) + 3) * 8 + 4 + 7 +3 * (7 * 6 * 6 + 9 * 8) + 5 + 7 + 4 + (7 * 3) +8 + (4 * 9 * 5 * 5 + 9) * 3 * 5 * ((7 * 5 + 8 * 9 + 2) + 6 * (9 * 5 * 6 + 7 + 7) * 8) +(3 * 4) + (7 + 2 + (2 * 7) + 6 + 8 + (5 * 6 * 5 * 2 + 8 * 2)) + ((7 + 9 * 3 + 7 + 8) * (9 * 3 + 5 + 4 * 5) + (4 + 9 * 7 * 4 * 3) + 5) + 6 * 2 +(3 + 2 * 4 * (6 * 6 + 5 * 2)) + 7 * 8 + (3 + (5 * 6 * 3) + (8 + 9 * 6 * 6 * 2 * 6) * 8) * 2 * (2 + 6) +8 * 6 * (8 * 5 + (7 * 7 + 7 * 5 + 4 + 8) + 5 + (6 + 8 * 4 + 2 + 7)) * 2 + 9 +5 + 9 * 5 * 9 + (8 * 6 + (7 + 6) * 6 * 5 + 7) + 4 +4 * ((4 + 8 + 6 + 7 * 2 + 6) * 2 + 5) + ((5 + 8 + 9 + 9) + (7 * 3 + 3 + 2 + 9) + 6 * 8 * (9 + 5 + 8 + 5) * (6 + 9 * 9 * 6 * 7 + 8)) * (2 + 6 * 9 * 7) + 3 * 2 +(4 + 7 + 5 * 8) + (3 + 5) + 7 +7 * 8 + (6 * 4) +6 * 3 * 7 + 4 + 3 * 4 +(6 * (6 * 7 * 9 + 9) + 4 * 3 * 2) + 8 +8 * 3 * 9 + 5 + 6 * 6 +5 + 4 * 2 + 9 * 5 * 8 +5 + 8 + 3 +(6 + 2 + 9 * 8) + 3 * 4 + (5 + 7 * 3 + 5) +((5 * 5) * 6) * 7 +8 + ((2 + 6 + 6 * 3 + 2) + 6) + 4 +(5 * 2 * 9 + 2 * 2) + 4 + (3 + 2 + 3 * 4) * 3 + ((5 * 3 * 7) * (8 * 2 + 3 * 2) + 9 * 8 + (8 * 7 + 8 + 9 * 3) + 7) +6 + 5 * 6 + 8 * (3 * 8 + (7 + 4 * 4 + 3)) +6 * (7 + (2 * 3) + 2) * 8 + 4 + 6 + 5 +7 * 3 * 6 * 4 + 3 +(8 * 8 + (5 + 5 + 5 + 9)) * 5 + 3 + 5 + 5 +(2 * 3 * 6) + 9 + (3 * 2 * 6) * 4 + ((6 * 6 + 9 * 3 + 3) * 7 + 7 * 6) + 6 +7 + 6 * 3 * ((7 + 5 + 2 + 8) * 4 * 5 * 3) + 7 * 6 +6 * ((8 * 3 + 6 + 5 * 6 * 7) + (9 + 6 * 2 + 6) * 8 * 8) + (4 * 5 + 9 * 6) * 7 +(9 + 7 + 2 + 2) + 9 + 7 * 4 +(9 + 3 * 2 * 4) * 7 * 6 + 2 * (4 * (3 * 9) + 4 * 3 * 3) + 9 +7 + 2 + 2 + 6 * 2 + (6 * 7) +6 + ((2 * 3 * 3 + 3) + 3 * 9 + 7 + 4 * 2) + 3 +7 + 6 + 9 * (8 * 4) * 9 +2 * ((4 * 3) + 5) + 7 + 4 + 3 +(5 * 4 * (8 * 6) + 4) * 6 * (3 * 3 + 5 * (3 + 3 + 6 * 7 * 6) + 6 + 8) +4 * 7 + 3 * 8 +5 + 3 + 7 +5 * 8 * (3 + 4 + (3 + 6) * (4 + 6 * 3 * 5 + 8) + (5 + 2 + 3 + 2 * 3 * 8)) + 7 * 4 +(7 + 8) + (6 * 7 + 9) * ((2 * 4 * 7 + 2 + 8) + 9 * 9 + 5 * 3 + 3) * 6 + 4 * 6 +2 + 4 * 5 + 3 + (7 + 9 * (6 + 2)) +8 + (9 + 2 * 4) * 4 * (7 * 7 * 5) * (4 * (3 + 2 + 3 * 4)) + 9 +7 * 2 * 7 * 4 + 2 * (2 + 4 * 5 + 2) +5 * (3 * 7 * 8 * (4 + 2 + 8)) + 5 * 4 + 3 +((8 + 6 + 4 * 9 * 7 + 8) * 9 * (7 * 9 + 5 * 8) * 4) * 9 + (5 * (5 * 7 * 4 + 3 * 9) + 6 + 2 * 9 * 2) +6 * (5 + 2 * 3) + 5 + 5 * 2 +(4 * (7 * 3 * 3 + 4 * 6) + 6 * 9 * 6 + (8 * 4)) * 5 * 9 + 3 * 9 +4 * (2 * 8 * 8) * 5 * ((4 + 2 * 7 * 4 * 4 * 3) + 5) + 4 +7 * ((8 + 8 + 6) * (5 * 5 * 2 * 8 + 7) * 8 * 2 * 8 * 8) * ((3 * 3 + 9 * 8) * 3 * 3) +8 + (4 * (3 + 6 + 9 * 6 * 9) + 5 * 6) * 9 + 2 + 6 +(6 + (6 + 9 + 5)) + (3 * 7 * 7 * 8) * 4 * 7 * (2 * (9 + 2 * 4 + 7 * 2)) +2 + (6 + 6 * 6) * 9 * 4 +9 * (9 + 3 * 4 + 8 + (4 * 4 + 5 + 8 + 8 * 2) + 5) * 9 + 5 +((9 * 6 * 9) + (4 + 4 * 3 + 2 * 2 * 6) * 4 * 6 * (9 * 4 * 9 + 9 * 3)) + (5 * 6 * 9 * (8 * 5 * 9 * 6 + 4) + 3) + 8 +6 + (2 * 3 + 5 * 7 * 7) + 2 + 4 +2 * 9 + 6 + (2 * 7 + 7 * 3) * (7 * 5 * 7 + 5 * 4) * 2 +6 + 6 * 5 * 7 + (3 * (2 * 7) * 3 * (9 * 4 * 5 + 5 * 7 * 5)) +8 * ((4 + 9 + 9) + 8) * (5 * 4 * (9 + 3 * 3 + 6) + 3) * (8 * 7 * 9 + (8 + 8 * 3 + 9 * 7) * (3 + 7 + 9) * 7) + 6 +8 + 8 * 3 * 8 + 5 +2 + 3 * ((4 * 7 + 3 * 2 * 8 * 4) + 7 + 3 + (3 * 5) * 5) * 9 + 5 +(3 + 7) + 6 * 4 * 7 * 3 * (4 * 7 + 3 * 6 + 5) +3 * (3 * (2 * 5 * 4 + 9 * 8 * 8) * (6 * 4 + 2 + 5 * 4) * 4 * 6) + (9 + 9 * 9 + 3 + 5) + 7 * (7 + 7) +((9 + 8 + 8 * 8) * 9 + 8 + (2 * 7 * 4) * 2 + 5) * (9 + (7 * 3 + 4 + 2 * 2) * 4) * 7 * 2 +2 * (7 + 9 * 7 + (3 + 2 + 2) + (9 + 5 * 2 * 8 * 6) * 2) * 4 + 3 * 5 * (5 * (7 * 8) * (5 + 3 + 4 + 3 * 3) + 7) +(7 * (9 + 7) + 5 * 7 + 3) * (2 + 8) * (2 + 9 * (7 * 7 * 7 + 4) + 6 * 2) * 9 * 8 +(3 + 5) + (8 * 4 * 4 + 3 * 8 + 7) + 5 * 5 * 7 +5 * 9 + (2 + 9 * 9 * 6 * 4) + 5 +3 * 6 * 2 * ((2 * 3) + 6 * (6 + 8 + 9 * 2 + 5) * 2 + 5 + 5) * (7 + 6 + 4 + 9 + 6 + 3) + 4 +8 * 9 * 3 * 7 +(2 + 8) * 3 + 7 +(9 + 7 + 8 * 5 * 9) + 9 +3 + ((7 * 6 * 4 * 5 * 9 + 3) * 5 + 4 + 3 * 5) +(2 + 8 * (8 + 3 * 3 + 4 * 5)) + (5 + (3 + 8 + 4 + 7 + 3 + 3) + (9 * 8 + 3)) + 9 * (7 * 5 * 2 + 2 * (4 * 7 * 3 * 4 + 8 + 4) + (2 * 2 + 4 * 7 + 9 + 8)) +((4 * 9) + 5 * 3 * 3 + 6 * 7) * 7 * 7 +(9 + 4 + 4 + 6 + 7 * 2) + 2 + 3 * 7 + 9 +5 * (4 * (9 * 3) + 9) * 7 * (6 * 8 + 3 * 4 + 7 + 3) * 9 * 6 +6 * ((8 + 7 * 3 + 7 * 4) * 5 + (5 * 5 + 9) + 6 * 3) * (6 * 6 + 7 * (3 + 4 + 9 * 5 + 7) * (8 + 3 * 7 * 6) + 4) + 8 * 7 + 6 +(9 + 3 * 9 * (5 * 6 * 8) * (4 * 2 + 3) * 6) + ((6 + 2 + 6 + 8 + 4) + 4 * 7 + 7) * 5 + (6 * 8 * 5) + 7 * 6 +8 + 3 * (9 + 6 + 2 + (4 * 2 * 8) * 7 + (7 + 7 * 7 + 5 * 4 + 6)) * 9 + 9 + 7 +(2 * 2 + 7 * 3 * 3 * 4) * 9 * 9 * 7 +(2 * (9 * 6 * 6 * 5 + 2 + 7) * 3 + 3 * 4) + 2 * 6 + (9 + (2 + 2 + 9)) * (2 + (7 * 6 * 5 * 9) + 6 * 3) * 9 +8 * 2 * 5 + 9 + ((3 + 7) * 7 * 6 + 5) +9 * 8 * 4 + (8 + 9) + (4 * 7 * 4 + 6) +5 * (8 * 4 * 6 * 7 * 6) * 9 * 7 * (6 + 6 * 6 + 7 + 4) +7 + (2 + 2 * 3) * 6 * 8 + 9 * 6 +3 * 4 * (4 + (6 * 9) + 3 + 8 * 9 * 5) +3 * (5 * 6 * (8 * 4 + 6 + 3)) + 4 + (9 + 8) + ((6 * 3 + 2) * 9 * 5 + 5 + 8 * 3) +3 + ((4 + 9 * 2 + 2 + 2) * (9 * 3 * 4 * 7) * (8 * 7 + 2 * 6 * 2) * 2 + 3 * 4) +5 * (2 + 2 + 9 * 5) + 7 * 8 + 7 +4 + 2 + 8 +7 + (2 + 8 + 9 * 4) + 4 * ((9 * 4 * 4 * 4 * 4 + 3) * 3) +2 + (9 + 4 * 3) + ((2 + 5 * 5 * 5 + 5) + (5 * 6 * 9 * 8)) + 4 + 9 +(7 + 4 + (5 + 3 + 3 + 8 + 9) + 9 * 6) + 4 * 9 + 3 + 5 +2 + (4 + 2 + 7) + (5 + 9 + 3 + 7) + 7 * ((2 + 8 + 5 + 4) + 5 + 6) * (4 * 8 * 4 * 8) +(8 + 7 + 3 + (8 * 3) + 6 * 2) * 4 + ((5 + 6 * 4) * 6 + 4 + 5) +(8 + 2 * 7 * 3 + 5) * 2 * ((9 + 3 * 4 * 6 + 2) * 2 * (7 * 9 * 4 * 5 + 8 * 5)) +((9 + 8 + 3 * 2 + 8) + (8 + 4 + 2 * 5 + 3 * 9) + (9 * 3 * 2 * 4 * 8) * 8) + (8 * 5 + 3 + 3 + 9) * 8 + (4 + 7 * 7 + (3 + 7 * 9 + 8 + 2) * 5 + (5 * 5)) + 9 + 2 +(5 + 3 + (6 * 2 + 5 + 4 + 3 + 9) + 5) + 5 * 9 * 8 * 8 + 3 +(3 + 8 * 8 * 2 * 3) + 7 + 4 + 3 + 5 + 4 +7 + 9 + 5 * 6 * 9 + ((4 * 8 * 7 + 8 * 2 * 8) + (7 * 2 + 9 + 4 + 2 * 4) * 2) +((6 * 4 + 8 * 7) + 9 + 5 * 5) * 8 + 8 + 4 +(6 + 2 * 6 + 4) + ((5 * 4 + 5) * 4 + 3) +6 + (2 * 4 * 4 + 6) + (8 * 5 * 2) * 4 +7 + (4 + 3 * 5 * 5 * 5 * 4) * 4 +(6 + 2) + (9 + 6 + (9 + 3) + (3 + 7 + 2 * 6) + 6) * 3 + 5 + 8 + 7 +2 + (9 * (4 * 7 * 9) + 7 * 5 + 2) * 3 +6 * (6 * 8 * 3 * 6 * 3 + 4) +4 + (2 + (3 + 3 * 8) + 8 + 4 + 3 + 6) * (6 + (3 + 9 + 9 + 7 * 6 * 7) + 9 + 9 + 6) + 5 * 5 +(9 * (6 + 7 * 5 * 9 + 3 + 8) + 4 + 4 * 6) + 8 * 3 +7 * (7 * 5 * 5) + 8 +8 * 8 * 2 + ((4 + 2 + 5 + 4 + 3) + 2) + (3 * 5 * 3 + 4) +9 + 2 * 9 * (8 * 7 + 2 * 3) * 2 +8 * (6 * 6) * 7 + 3 * 5 * ((8 + 3) + 3 + 7 * 3) +7 * 8 * (7 + (2 + 6) * 5) + 5 + 2 +3 * 2 + 5 + (5 * 9 * 8) + 7 +(8 * 7 + 9) + (7 * 7 * 8 + 9 * 3) + (8 * 9 * 4 * 9) +8 * 9 + 7 * 2 + 3 + (2 + 3 * (4 * 2 * 3 * 3) + 4) +(5 + 4 * 3 + 8) * (8 * (2 + 3 + 2 + 2) + 9 * 8 * 9) +7 * 7 * 9 * (5 * 9 * 4 * 5 + (9 * 3 * 4 * 4)) +4 * ((2 + 6 * 4) + 7) * 8 + 7 + ((9 + 2 + 3 + 8) + (5 * 9)) * 2 +6 + 5 + 4 * 7 * 6 + (6 * 7 * 2 * 6 + 8 * 2) +4 * (8 * (5 + 2 * 2 + 4) + 4 + (2 + 8 * 3 + 7 + 8)) + (4 + 7 + 9 * 4 + 8 * (8 * 6 * 6 * 9)) + 6 * 8 * ((3 + 3 * 7 * 2 + 7 + 5) * 2 * 5) +5 * (2 * (4 * 4 * 6 + 3 + 4 + 8) * 7 * (8 * 3 + 9 + 2 * 8) * 5) + 5 * ((7 + 7 * 3 * 5 * 7 + 3) * 7 + 3 + 6 * 7) + 8 +(2 * 3 + 8 * 5 * 6 + 2) * 6 + (6 * 5 + 2 * 9 + 3 * (9 + 5 * 2)) +9 + ((8 + 9 * 7 * 5 * 8) * 4 * 2) +3 * 6 * 4 + 4 + 3 * (4 + 3 + 4 + 6 + (4 + 6 + 2) + 3) +5 * 2 * ((9 + 9) * 2 + (4 + 2) + 9 * 4 * 3) +(4 + 8) + 2 * 4 + 5 +(3 * 7 * 5 * (7 + 6 * 9 * 2 * 7 * 3)) * 4 * 4 * 8 + 9 * 5 +6 * 8 * ((5 + 4 * 4 + 9) * 4 * 6 * 9) + 9 * 9 + (2 + (9 + 3 + 7 * 7 + 2 + 8) + 7 + 4 * 8 * (8 * 3 * 3)) +((9 * 6 * 6 + 3) * 2) + 7 + 6 +9 * 6 * 5 + 6 * (7 * 6 * 9 + 4 * 4) +9 * (4 * 9 + 9) * (2 * 3 * 6) + 7 + (6 + 9 * 6 * 7 + 4) * 6 +(2 * 9) * 2 + 5 + 6 + 8 + (8 + 7 + 3) +(2 + 3 + 6 + 2) * (6 * 3 + 7 * 5 + 5 + 7) + 4 * 4 + 2 +5 + (4 + (8 + 2 + 9 + 6 + 6 * 7) + 2 + 9 + 4) * 8 * 8 * ((3 + 3 + 7) * 7 + 9 * 7 + 6 * 9) * 9 +7 * (7 * 5 + 6 + (6 * 7 + 8 * 5 + 3 + 5) + 4) +6 + 4 * (3 + 2 * (5 * 7 + 6 + 2) * (8 + 8 + 2) + (7 + 2)) +5 * ((4 + 5 * 9) + 3 * 4 + (2 * 3 * 2) * 5 + 4) + (7 + 9) * 6 + (8 + 2 * 6 * 9) +(4 + 9 + 2) * (4 + 8 * 9 + 6 * 8) + 4 + 8 * 9 +4 + 8 + 3 + 5 + (5 * 9 * (3 * 3 * 8)) +(5 + 4 * 8 + 9 * 3) * 2 + 5 + 8 +(3 + 3 * 9) + 6 * (2 * 9 + 6) + 5 +3 + 4 + 3 * 9 * 2 + ((7 * 7) * 3 * (9 * 5 * 7 * 4 * 2)) +7 * 7 * (8 + 4) * (7 + 9 + (6 * 7 * 7 * 2 * 6 * 6) * 7) +7 + (4 + (5 + 4 + 9 * 2 + 6 * 5) + 2 + 6) + 7 +(3 + (5 + 9) * 8 * 3 + 9) * 5 + ((6 * 7 * 5) * (4 * 8 + 6 + 5) + 3 + 4 + 8) + (4 * (2 + 7 + 5 * 7 + 2) * 8 * 8 + 6 + 3) +6 * (5 * 3) * 4 * 8 * 6 +4 * 5 * 4 * 3 * 5 +3 + 6 * 2 + 7 + ((3 + 7 + 3) + 5) * 8 +9 * 5 + (6 + 7 * 9 + 8 + 3 + 8) + (9 + (2 + 9 * 4) * 9 * 9 * (3 * 2 * 3 * 5 + 3) * (2 + 9 * 3 * 4 * 7)) +5 * 6 * 3 * (7 * 3 + 3 + (2 * 7)) +9 + 8 * 5 + (7 * 6) * 9 + 3 +8 + 6 + 4 * (6 * 8) +3 * (4 * (2 * 4 + 4 * 8 + 7) * (2 + 7 * 4 * 6 + 3) + 8 * 4) * (7 + (7 * 9 + 8 + 7 + 8 * 8)) +3 + (8 * 9) * 6 + (5 + 6) +6 + 2 + (7 * 6 + 7 * 6 + 3) +5 + 9 * (9 * 7 + 4 + 6) + (9 + 7 + 6) +(9 * 7 * (3 + 6 * 3)) + 3 + 6 +5 * (9 * 5 * 2 * 5) * 8 +((2 + 9 * 6) * 5 * (2 + 2) + 7 * 9 + 3) + 4 + 6 + 5 +6 + 8 + 9 * (4 * 2 * 7) + 4 + 6 +4 * (9 * (4 * 8 + 3 * 3)) * 2 +(7 * (3 + 3) * 8 * 8 * 9) + 5 + 4 + 6 * 2 + (8 * (6 * 6) + 5 * 2 * 8) +((9 * 3 * 4 + 4 + 4) + 8 * 3 + 2 + 9) + ((4 + 4 + 8 + 7 + 7 * 9) + (7 + 8 + 9 + 3 + 7) * 9 * 7 * 8) +(8 + 6 + 3 * 8 + 3) * 6 * 4 + 9 * 2 * (7 * (3 * 2 * 2 + 7 * 7 * 3) * 7 * 2 * (3 + 2 + 2 + 5) + (7 * 8 + 3)) +7 + 5 * 5 * (4 + (7 * 3) * 5 + (7 + 5) + 3) * 4 * 8 +4 * (3 + 6) + 8 + 6 +5 * 2 * 7 + 8 * 5 +3 + (9 + (4 * 5) + 5 * (9 + 3 * 3) * 3 * 5) +7 * (5 * 3 + 3 * (9 + 9 + 6 * 6 + 8 * 9) + (8 * 2 * 9 * 4)) +((5 + 7 * 7 * 9 + 3) * 3 + 6) * 7 * 5 +(7 * 7 * 9) * 5 + 8 * 6 * 5 + 5 +2 * 6 + 3 * 4 + (9 + 4) + 4 +6 * 6 + 2 * ((5 + 9 * 2 + 6) + 9 * 9 * 6 * 4 + (9 * 4 + 2)) + 3 +5 * 3 * ((6 + 7 + 6 + 3 * 9 + 3) + 8 * 5 + 2) * 9 * (7 * (7 + 2 * 6 + 2 * 2) * 4 * 3) + 5 +9 + ((7 + 4 + 5 * 5 * 6) + 4 + 4 * 9) +((5 + 9) * (4 * 6) * (8 + 3 * 8 + 8 + 3)) * 8 + ((5 * 5 + 5 + 4) + (4 + 9) + 2 * (7 + 5 * 4) * 5) + (5 * 5 + 2 * 3 * 6) +8 * 4 + 8 * 8 +(4 + 8) + (7 + 4) +8 + (8 + 6 * 5 + 6 + 9 * 8) + 7 * 2 +3 + 9 + 4 + (6 + (9 * 6 + 6 + 6) * 7) + 7 * 3 +2 * (8 + 9 + 7 * 4 + (2 * 9) * 6) + 3 +6 + (5 + 2) +3 * 9 * 3 + 2 + 3 +4 * 3 + 8 * 2 + (2 * (8 + 2 * 5) * 3 * 4 * 3) +9 + (2 + 4 * 8 * 7 * 5) + 8 + (6 + (3 * 4 + 6) * 5 * 8 + (2 * 5 * 4 * 8 * 3 * 5)) +5 + 4 +4 + 8 * (6 + (3 + 9 + 5 * 4 * 8) * (8 + 3 * 2 * 5) + 9 + (9 + 2 + 6 + 6) + 4) + 5 + (6 * (3 + 3 + 5 * 6 * 9 + 2) + 4 * 4) +(9 * (6 + 9 + 4 + 6 * 9)) * 9 * 8 * 7 * 8 +(4 * 6 * 6 * 7 * 3) + (3 + (3 * 8) + 3 * (8 * 4)) * 2 +(7 + 2 + 6 + 2) + (4 + 5 * (5 * 2 + 4) * 3) * 5 + 4 * 5 * 8 +(3 * 3 + 7 + 7 + 8) * (3 * 4 * (6 * 2 * 3 + 6 * 7 * 7) + 5 * 3 * (7 * 9 + 7 + 9 * 2)) +7 + (8 + 9 * (4 + 5 + 4 + 2 + 2 * 3) * 7 + 8 * (4 * 6 * 7 * 6 * 2)) * 5 + 6 * 3 + (4 + 8) +(4 + 3) + ((9 * 7) + 2 * 2 + 4 + 6 + 7) * 6 * 3 * 8 +7 + (4 * (7 * 9 + 2) + 3) * 2 * 8 + 9 + 2 +8 * 5 * (7 * 8 + (7 + 6)) * 7 +(4 * 6 * 9 + 7) + 3 + 6 + 2 * 3 +2 * 2 * 9 * (4 * (9 * 8 * 4 + 2 + 3)) +9 + 6 * ((2 * 6 + 6 + 9) + 9 * 5 + (7 * 3 * 9 * 3 + 5 + 6)) + 2 * 4 +5 * 7 + (9 + 3 * 4) +5 * 3 * 3 + (9 + 3 * 9 + 5) * 7 + 8 +3 + 2 + 7 + (6 + 8 + (2 * 6 + 5) * 2) +8 * 8 * (6 * (3 + 6 + 4 * 7 * 8) + 7 + 9 * (3 * 8) + 8) + 3 +5 + 3 * 9 + 2 * 4 * (8 * 7 * (7 + 6) + (9 + 3 * 8 * 7 * 7 * 3)) +(4 + 8 * 3 + 6 * 9) * 2 + 4 * (7 * 4) + 7 + 5 +7 + ((8 + 6 + 7) * 2 * 8 + (9 * 3 + 8) + 2) +6 * 9 + (3 + 4 * 5 * (8 * 6) + 4) * 8 * (7 * 7) + 5 +5 + 7 + 4 + (2 * (5 + 3 * 2 * 5 + 7 * 4)) +3 + 6 * 9 + (5 + (7 + 3 * 4 * 3 * 5) * 6 * 5 * 2 * (8 * 5 * 5)) + 8 +((9 + 8 * 2) + 9 * 8 * 3) + ((8 * 7 + 3 + 4 * 7 * 5) * 4 + 3) + 3 + 9 + 2 +(8 + (6 * 7 + 5 * 7 * 7 + 3) + 9 + 6 * 2) * 3 + 4 + 2 + 4 +5 + 8 + ((5 * 9 * 7 * 9) * 8 * 8) + (8 * 7 + 8 * (6 + 9 * 3 * 2) * 6 + 6) + 3 * 9 +5 * ((3 * 5 + 3) * 7 * 3 * 3 * 6) + 4 + 6 +((2 + 6 * 8 + 7) * (6 + 2 * 2) + (4 * 8 + 9) * 4 + 5) * 4 * 3 +9 * 9 * 2 * 2 +2 * (4 * 2 * 8 * 8) * 5 * (7 + 9 + 8) +4 + (2 + 5 + 8 + 8) * (9 + 4) * 8 + ((6 * 3 + 5 + 8 * 5 + 2) * (4 + 7 + 9) * 9 + 3 + (4 * 4 * 6 + 2 + 2) * 4) + 7 +5 + 5 * 9 * (2 * 6 * 2 + 3 * 7 * (3 + 7 * 4 + 5)) + 6 + 8 +9 * 4 + 2 + (6 * 8 + 5 * 7) +(6 * 5 * 7 * 8 + 3) + ((9 + 5 * 5 + 8 * 4 + 3) * 6 + (6 * 4 + 8 * 6 * 3) + 3 + 5 + 5) * 7 * 5 + 7 * 5 \ No newline at end of file diff --git a/JS/day18/package.json b/JS/day18/package.json new file mode 100644 index 0000000..8afa6c8 --- /dev/null +++ b/JS/day18/package.json @@ -0,0 +1,19 @@ +{ + "main": "solution.js", + "scripts": { + "a": "node solution_a.mjs", + "b": "node solution_b.mjs", + "c": "node solution_a.mjs && node solution_b.mjs", + "lint": "eslint -f visualstudio solution_a.mjs solution_b.mjs --fix" + }, + "devDependencies": { + "@types/node": "^14.14.10", + "eslint": "^7.14.0", + "eslint-plugin-jsdoc": "^30.7.8", + "eslint-plugin-prettier": "^3.1.4", + "prettier": "^2.2.1" + }, + "dependencies": { + "@types/mathjs": "^6.0.9" + } +} diff --git a/JS/day18/solution_a.mjs b/JS/day18/solution_a.mjs new file mode 100644 index 0000000..9bf8513 --- /dev/null +++ b/JS/day18/solution_a.mjs @@ -0,0 +1,91 @@ +import fs from "fs"; + +/** + * + * @param {string} infix + */ +function infixToPostfix(infix) { + infix = `(${infix})`.replace(/\s+/g, ''); + const l = infix.length; + /** @type {string[]} */ + const char_stack = []; + /** @type {string[]} */ + const output = [] + + function getPriority(c) { + return ['-','+','*','/'].includes(c) ? 1 : 0 + } + + for(let i = 0; i < l; i++) { + if(/[a-z0-9]/i.test(infix[i])) { + output.push(infix[i]) + } else if (infix[i] === "(") { + char_stack.push('(') + } else if (infix[i] === ")") { + while(char_stack[char_stack.length-1] !== "(") { + output.push(char_stack.pop()) + } + + char_stack.pop(); + } else if (!/[a-z0-9]/i.test(char_stack[char_stack.length-1])) { + while(getPriority(infix[i]) <= getPriority(char_stack[char_stack.length-1])) { + output.push(char_stack.pop()) + } + char_stack.push(infix[i]) + } + } + return output.join(" ") +} + +function solvePostfix(postfix) { + const resultStack = []; + postfix = postfix.split(" "); + for(let i = 0; i < postfix.length; i++) { + if(!isNaN(parseFloat(postfix[i])) && isFinite(parseInt(postfix[i]))) { + resultStack.push(postfix[i]); + } else { + const a = resultStack.pop(); + const b = resultStack.pop(); + if(postfix[i] === "+") { + resultStack.push(parseInt(a) + parseInt(b)); + } else if(postfix[i] === "-") { + resultStack.push(parseInt(b) - parseInt(a)); + } else if(postfix[i] === "*") { + resultStack.push(parseInt(a) * parseInt(b)); + } else if(postfix[i] === "/") { + resultStack.push(parseInt(b) / parseInt(a)); + } else if(postfix[i] === "^") { + resultStack.push(Math.pow(parseInt(b), parseInt(a))); + } + } + } + if(resultStack.length > 1) { + return "error"; + } else { + return resultStack.pop(); + } + +} + +/** + * Main function for Part 1 + * + * @param {string} data - Puzzle input as a single string. + */ +async function main(data) { + const results = data + .split(/\r?\n/) + .map((line) => solvePostfix(infixToPostfix(line))); + return results.reduce((prev, cur) => prev+cur); +} + +fs.readFile("input", (err, data) => { + if (err) throw err; + console.time("Part 1"); + main(data.toString()) + .then((...args) => { + console.timeEnd("Part 1"); + console.log(...args); + }) + .catch(console.error); +}); diff --git a/JS/day18/solution_b.mjs b/JS/day18/solution_b.mjs new file mode 100644 index 0000000..b31ea2e --- /dev/null +++ b/JS/day18/solution_b.mjs @@ -0,0 +1,99 @@ +import fs from "fs"; + +/** + * @param {string} infix + */ +function infixToPostfix(infix) { + infix = `(${infix})`.replace(/\s+/g, ''); + const l = infix.length; + /** @type {string[]} */ + const char_stack = []; + /** @type {string[]} */ + const output = [] + + function getPriority(c) { + switch(c) { + case '*': + case '/': + return 1; + case '-': + case '+': + return 2; + default: + return 0; + } + } + + for(let i = 0; i < l; i++) { + if(/[a-z0-9]/i.test(infix[i])) { + output.push(infix[i]) + } else if (infix[i] === "(") { + char_stack.push('(') + } else if (infix[i] === ")") { + while(char_stack[char_stack.length-1] !== "(") { + output.push(char_stack.pop()) + } + + char_stack.pop(); + } else if (!/[a-z0-9]/i.test(char_stack[char_stack.length-1])) { + while(getPriority(infix[i]) <= getPriority(char_stack[char_stack.length-1])) { + output.push(char_stack.pop()) + } + char_stack.push(infix[i]) + } + } + return output.join(" ") +} + +function solvePostfix(postfix) { + const resultStack = []; + postfix = postfix.split(" "); + for(let i = 0; i < postfix.length; i++) { + if(!isNaN(parseFloat(postfix[i])) && isFinite(parseInt(postfix[i]))) { + resultStack.push(postfix[i]); + } else { + const a = resultStack.pop(); + const b = resultStack.pop(); + if(postfix[i] === "+") { + resultStack.push(parseInt(a) + parseInt(b)); + } else if(postfix[i] === "-") { + resultStack.push(parseInt(b) - parseInt(a)); + } else if(postfix[i] === "*") { + resultStack.push(parseInt(a) * parseInt(b)); + } else if(postfix[i] === "/") { + resultStack.push(parseInt(b) / parseInt(a)); + } else if(postfix[i] === "^") { + resultStack.push(Math.pow(parseInt(b), parseInt(a))); + } + } + } + if(resultStack.length > 1) { + return "error"; + } else { + return resultStack.pop(); + } + +} + +/** + * Main function for Part 2 + * + * @param {string} data - Puzzle input as a single string. + */ +async function main(data) { + const results = data + .split(/\r?\n/) + .map((line) => solvePostfix(infixToPostfix(line))); + return results.reduce((prev, cur) => prev+cur); +} + +fs.readFile("input", (err, data) => { + if (err) throw err; + console.time("Part 2"); + main(data.toString()) + .then((...args) => { + console.timeEnd("Part 2"); + console.log(...args); + }) + .catch(console.error); +}); diff --git a/JS/day18/yarn.lock b/JS/day18/yarn.lock new file mode 100644 index 0000000..72446a9 --- /dev/null +++ b/JS/day18/yarn.lock @@ -0,0 +1,812 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@eslint/eslintrc@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" + integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@types/mathjs@^6.0.9": + version "6.0.9" + resolved "https://registry.yarnpkg.com/@types/mathjs/-/mathjs-6.0.9.tgz#39d05a208565295427565f7b6f148d1e1a59fcd9" + integrity sha512-u93l9ZU0DhbT+gGtrP12/jPhx/X2eshLiv1if97qC7Nuld4/kxS+1WoyIM7NC5b5XiwvATWDTHsI8LvcPBWxcA== + dependencies: + decimal.js "^10.0.0" + +"@types/node@^14.14.10": + version "14.14.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" + integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== + +acorn-jsx@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +comment-parser@^0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.6.tgz#0e743a53c8e646c899a1323db31f6cd337b10f12" + integrity sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.0.1, debug@^4.1.1, debug@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decimal.js@^10.0.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +deep-is@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-plugin-jsdoc@^30.7.8: + version "30.7.8" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.8.tgz#4a678c25ddb2c5732163f0258bb1d05edf34f61c" + integrity sha512-OWm2AYvXjCl7nRbpcw5xisfSVkpVAyp4lGqL9T+DeK4kaPm6ecnmTc/G5s1PtcRrwbaI8bIWGzwScqv5CdGyxA== + dependencies: + comment-parser "^0.7.6" + debug "^4.2.0" + jsdoctypeparser "^9.0.0" + lodash "^4.17.20" + regextras "^0.7.1" + semver "^7.3.2" + spdx-expression-parse "^3.0.1" + +eslint-plugin-prettier@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" + integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344" + integrity sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.2.1" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.0" + esquery "^1.2.0" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.19" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^4.0.0, is-glob@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsdoctypeparser@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz#8c97e2fb69315eb274b0f01377eaa5c940bd7b26" + integrity sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regextras@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2" + integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +semver@^7.2.1, semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" diff --git a/JS/template/package.json b/JS/template/package.json index 539551f..82b906b 100644 --- a/JS/template/package.json +++ b/JS/template/package.json @@ -3,6 +3,7 @@ "scripts": { "a": "node solution_a.mjs", "b": "node solution_b.mjs", + "c": "node solution_a.mjs && node solution_b.mjs", "lint": "eslint -f visualstudio solution_a.mjs solution_b.mjs --fix" }, "devDependencies": { diff --git a/JS/template/solution_a.mjs b/JS/template/solution_a.mjs index 41beb47..ffd0570 100644 --- a/JS/template/solution_a.mjs +++ b/JS/template/solution_a.mjs @@ -10,12 +10,12 @@ async function main(data) { } fs.readFile("input", (err, data) => { - console.time("Part 1"); if (err) throw err; + console.time("Part 1"); main(data.toString()) .then((...args) => { - console.log(...args); console.timeEnd("Part 1"); + console.log(...args); }) .catch(console.error); }); diff --git a/JS/template/solution_b.mjs b/JS/template/solution_b.mjs index 7816965..e08afb7 100644 --- a/JS/template/solution_b.mjs +++ b/JS/template/solution_b.mjs @@ -10,12 +10,12 @@ async function main(data) { } fs.readFile("input", (err, data) => { - console.time("Part 2"); if (err) throw err; + console.time("Part 2"); main(data.toString()) .then((...args) => { - console.log(...args); console.timeEnd("Part 2"); + console.log(...args); }) .catch(console.error); });