Index: trip-planner-front/node_modules/y18n/CHANGELOG.md
===================================================================
--- trip-planner-front/node_modules/y18n/CHANGELOG.md	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ trip-planner-front/node_modules/y18n/CHANGELOG.md	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -3,27 +3,13 @@
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
-### [5.0.8](https://www.github.com/yargs/y18n/compare/v5.0.7...v5.0.8) (2021-04-07)
+
+### [4.0.3](https://www.github.com/yargs/y18n/compare/y18n-v4.0.2...y18n-v4.0.3) (2021-04-07)
 
 
 ### Bug Fixes
 
-* **deno:** force modern release for Deno ([b1c215a](https://www.github.com/yargs/y18n/commit/b1c215aed714bee5830e76de3e335504dc2c4dab))
+* **release:** 4.x.x should not enforce Node 10 ([#126](https://www.github.com/yargs/y18n/issues/126)) ([1e21a53](https://www.github.com/yargs/y18n/commit/1e21a536e9135d8403a47be88922157a706b7cde))
 
-### [5.0.7](https://www.github.com/yargs/y18n/compare/v5.0.6...v5.0.7) (2021-04-07)
-
-
-### Bug Fixes
-
-* **deno:** force release for deno ([#121](https://www.github.com/yargs/y18n/issues/121)) ([d3f2560](https://www.github.com/yargs/y18n/commit/d3f2560e6cedf2bfa2352e9eec044da53f9a06b2))
-
-### [5.0.6](https://www.github.com/yargs/y18n/compare/v5.0.5...v5.0.6) (2021-04-05)
-
-
-### Bug Fixes
-
-* **webpack:** skip readFileSync if not defined ([#117](https://www.github.com/yargs/y18n/issues/117)) ([6966fa9](https://www.github.com/yargs/y18n/commit/6966fa91d2881cc6a6c531e836099e01f4da1616))
-
-### [5.0.5](https://www.github.com/yargs/y18n/compare/v5.0.4...v5.0.5) (2020-10-25)
-
+### 4.0.1 (2020-11-30)
 
 ### Bug Fixes
@@ -31,57 +17,6 @@
 * address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/a9ac604abf756dec9687be3843e2c93bfe581f25))
 
-### [5.0.4](https://www.github.com/yargs/y18n/compare/v5.0.3...v5.0.4) (2020-10-16)
-
-
-### Bug Fixes
-
-* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#105](https://www.github.com/yargs/y18n/issues/105)) ([4f85d80](https://www.github.com/yargs/y18n/commit/4f85d80dbaae6d2c7899ae394f7ad97805df4886))
-
-### [5.0.3](https://www.github.com/yargs/y18n/compare/v5.0.2...v5.0.3) (2020-10-16)
-
-
-### Bug Fixes
-
-* **exports:** node 13.0-13.6 require a string fallback ([#103](https://www.github.com/yargs/y18n/issues/103)) ([e39921e](https://www.github.com/yargs/y18n/commit/e39921e1017f88f5d8ea97ddea854ffe92d68e74))
-
-### [5.0.2](https://www.github.com/yargs/y18n/compare/v5.0.1...v5.0.2) (2020-10-01)
-
-
-### Bug Fixes
-
-* **deno:** update types for deno ^1.4.0 ([#100](https://www.github.com/yargs/y18n/issues/100)) ([3834d9a](https://www.github.com/yargs/y18n/commit/3834d9ab1332f2937c935ada5e76623290efae81))
-
-### [5.0.1](https://www.github.com/yargs/y18n/compare/v5.0.0...v5.0.1) (2020-09-05)
-
-
-### Bug Fixes
-
-* main had old index path ([#98](https://www.github.com/yargs/y18n/issues/98)) ([124f7b0](https://www.github.com/yargs/y18n/commit/124f7b047ba9596bdbdf64459988304e77f3de1b))
-
-## [5.0.0](https://www.github.com/yargs/y18n/compare/v4.0.0...v5.0.0) (2020-09-05)
-
-
-### ⚠ BREAKING CHANGES
-
-* exports maps are now used, which modifies import behavior.
-* drops Node 6 and 4. begin following Node.js LTS schedule (#89)
-
-### Features
-
-* add support for ESM and Deno [#95](https://www.github.com/yargs/y18n/issues/95)) ([4d7ae94](https://www.github.com/yargs/y18n/commit/4d7ae94bcb42e84164e2180366474b1cd321ed94))
-
-
-### Build System
-
-* drops Node 6 and 4. begin following Node.js LTS schedule ([#89](https://www.github.com/yargs/y18n/issues/89)) ([3cc0c28](https://www.github.com/yargs/y18n/commit/3cc0c287240727b84eaf1927f903612ec80f5e43))
-
-### 4.0.1 (2020-10-25)
-
-
-### Bug Fixes
-
-* address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/7de58ca0d315990cdb38234e97fc66254cdbcd71))
-
-## [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10)
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10)
 
 
Index: trip-planner-front/node_modules/y18n/README.md
===================================================================
--- trip-planner-front/node_modules/y18n/README.md	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ trip-planner-front/node_modules/y18n/README.md	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -1,4 +1,6 @@
 # y18n
 
+[![Build Status][travis-image]][travis-url]
+[![Coverage Status][coveralls-image]][coveralls-url]
 [![NPM version][npm-image]][npm-url]
 [![js-standard-style][standard-image]][standard-url]
@@ -14,7 +16,7 @@
 
 ```js
-const __ = require('y18n')().__;
+var __ = require('y18n').__
 
-console.log(__('my awesome string %s', 'foo'));
+console.log(__('my awesome string %s', 'foo'))
 ```
 
@@ -26,9 +28,8 @@
 
 ```js
-const __ = require('y18n')().__;
+var __ = require('y18n').__
+var str = 'foo'
 
-const str = 'foo';
-
-console.log(__`my awesome string ${str}`);
+console.log(__`my awesome string ${str}`)
 ```
 
@@ -40,7 +41,7 @@
 
 ```js
-const __n = require('y18n')().__n;
+var __n = require('y18n').__n
 
-console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'));
+console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'))
 ```
 
@@ -48,21 +49,4 @@
 
 `2 fishes foo`
-
-## Deno Example
-
-As of `v5` `y18n` supports [Deno](https://github.com/denoland/deno):
-
-```typescript
-import y18n from "https://deno.land/x/y18n/deno.ts";
-
-const __ = y18n({
-  locale: 'pirate',
-  directory: './test/locales'
-}).__
-
-console.info(__`Hi, ${'Ben'} ${'Coe'}!`)
-```
-
-You will need to run with `--allow-read` to load alternative locales.
 
 ## JSON Language Files
@@ -112,14 +96,12 @@
 Update the current locale with the key value pairs in `obj`.
 
-## Supported Node.js Versions
-
-Libraries in this ecosystem make a best effort to track
-[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a
-post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a).
-
 ## License
 
 ISC
 
+[travis-url]: https://travis-ci.org/yargs/y18n
+[travis-image]: https://img.shields.io/travis/yargs/y18n.svg
+[coveralls-url]: https://coveralls.io/github/yargs/y18n
+[coveralls-image]: https://img.shields.io/coveralls/yargs/y18n.svg
 [npm-url]: https://npmjs.org/package/y18n
 [npm-image]: https://img.shields.io/npm/v/y18n.svg
Index: trip-planner-front/node_modules/y18n/build/index.cjs
===================================================================
--- trip-planner-front/node_modules/y18n/build/index.cjs	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ 	(revision )
@@ -1,203 +1,0 @@
-'use strict';
-
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
-
-let shim;
-class Y18N {
-    constructor(opts) {
-        // configurable options.
-        opts = opts || {};
-        this.directory = opts.directory || './locales';
-        this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;
-        this.locale = opts.locale || 'en';
-        this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;
-        // internal stuff.
-        this.cache = Object.create(null);
-        this.writeQueue = [];
-    }
-    __(...args) {
-        if (typeof arguments[0] !== 'string') {
-            return this._taggedLiteral(arguments[0], ...arguments);
-        }
-        const str = args.shift();
-        let cb = function () { }; // start with noop.
-        if (typeof args[args.length - 1] === 'function')
-            cb = args.pop();
-        cb = cb || function () { }; // noop.
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        // we've observed a new string, update the language file.
-        if (!this.cache[this.locale][str] && this.updateFiles) {
-            this.cache[this.locale][str] = str;
-            // include the current directory and locale,
-            // since these values could change before the
-            // write is performed.
-            this._enqueueWrite({
-                directory: this.directory,
-                locale: this.locale,
-                cb
-            });
-        }
-        else {
-            cb();
-        }
-        return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));
-    }
-    __n() {
-        const args = Array.prototype.slice.call(arguments);
-        const singular = args.shift();
-        const plural = args.shift();
-        const quantity = args.shift();
-        let cb = function () { }; // start with noop.
-        if (typeof args[args.length - 1] === 'function')
-            cb = args.pop();
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        let str = quantity === 1 ? singular : plural;
-        if (this.cache[this.locale][singular]) {
-            const entry = this.cache[this.locale][singular];
-            str = entry[quantity === 1 ? 'one' : 'other'];
-        }
-        // we've observed a new string, update the language file.
-        if (!this.cache[this.locale][singular] && this.updateFiles) {
-            this.cache[this.locale][singular] = {
-                one: singular,
-                other: plural
-            };
-            // include the current directory and locale,
-            // since these values could change before the
-            // write is performed.
-            this._enqueueWrite({
-                directory: this.directory,
-                locale: this.locale,
-                cb
-            });
-        }
-        else {
-            cb();
-        }
-        // if a %d placeholder is provided, add quantity
-        // to the arguments expanded by util.format.
-        const values = [str];
-        if (~str.indexOf('%d'))
-            values.push(quantity);
-        return shim.format.apply(shim.format, values.concat(args));
-    }
-    setLocale(locale) {
-        this.locale = locale;
-    }
-    getLocale() {
-        return this.locale;
-    }
-    updateLocale(obj) {
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        for (const key in obj) {
-            if (Object.prototype.hasOwnProperty.call(obj, key)) {
-                this.cache[this.locale][key] = obj[key];
-            }
-        }
-    }
-    _taggedLiteral(parts, ...args) {
-        let str = '';
-        parts.forEach(function (part, i) {
-            const arg = args[i + 1];
-            str += part;
-            if (typeof arg !== 'undefined') {
-                str += '%s';
-            }
-        });
-        return this.__.apply(this, [str].concat([].slice.call(args, 1)));
-    }
-    _enqueueWrite(work) {
-        this.writeQueue.push(work);
-        if (this.writeQueue.length === 1)
-            this._processWriteQueue();
-    }
-    _processWriteQueue() {
-        const _this = this;
-        const work = this.writeQueue[0];
-        // destructure the enqueued work.
-        const directory = work.directory;
-        const locale = work.locale;
-        const cb = work.cb;
-        const languageFile = this._resolveLocaleFile(directory, locale);
-        const serializedLocale = JSON.stringify(this.cache[locale], null, 2);
-        shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
-            _this.writeQueue.shift();
-            if (_this.writeQueue.length > 0)
-                _this._processWriteQueue();
-            cb(err);
-        });
-    }
-    _readLocaleFile() {
-        let localeLookup = {};
-        const languageFile = this._resolveLocaleFile(this.directory, this.locale);
-        try {
-            // When using a bundler such as webpack, readFileSync may not be defined:
-            if (shim.fs.readFileSync) {
-                localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));
-            }
-        }
-        catch (err) {
-            if (err instanceof SyntaxError) {
-                err.message = 'syntax error in ' + languageFile;
-            }
-            if (err.code === 'ENOENT')
-                localeLookup = {};
-            else
-                throw err;
-        }
-        this.cache[this.locale] = localeLookup;
-    }
-    _resolveLocaleFile(directory, locale) {
-        let file = shim.resolve(directory, './', locale + '.json');
-        if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
-            // attempt fallback to language only
-            const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');
-            if (this._fileExistsSync(languageFile))
-                file = languageFile;
-        }
-        return file;
-    }
-    _fileExistsSync(file) {
-        return shim.exists(file);
-    }
-}
-function y18n$1(opts, _shim) {
-    shim = _shim;
-    const y18n = new Y18N(opts);
-    return {
-        __: y18n.__.bind(y18n),
-        __n: y18n.__n.bind(y18n),
-        setLocale: y18n.setLocale.bind(y18n),
-        getLocale: y18n.getLocale.bind(y18n),
-        updateLocale: y18n.updateLocale.bind(y18n),
-        locale: y18n.locale
-    };
-}
-
-var nodePlatformShim = {
-    fs: {
-        readFileSync: fs.readFileSync,
-        writeFile: fs.writeFile
-    },
-    format: util.format,
-    resolve: path.resolve,
-    exists: (file) => {
-        try {
-            return fs.statSync(file).isFile();
-        }
-        catch (err) {
-            return false;
-        }
-    }
-};
-
-const y18n = (opts) => {
-    return y18n$1(opts, nodePlatformShim);
-};
-
-module.exports = y18n;
Index: trip-planner-front/node_modules/y18n/build/lib/cjs.js
===================================================================
--- trip-planner-front/node_modules/y18n/build/lib/cjs.js	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ 	(revision )
@@ -1,6 +1,0 @@
-import { y18n as _y18n } from './index.js';
-import nodePlatformShim from './platform-shims/node.js';
-const y18n = (opts) => {
-    return _y18n(opts, nodePlatformShim);
-};
-export default y18n;
Index: trip-planner-front/node_modules/y18n/build/lib/index.js
===================================================================
--- trip-planner-front/node_modules/y18n/build/lib/index.js	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ 	(revision )
@@ -1,174 +1,0 @@
-let shim;
-class Y18N {
-    constructor(opts) {
-        // configurable options.
-        opts = opts || {};
-        this.directory = opts.directory || './locales';
-        this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;
-        this.locale = opts.locale || 'en';
-        this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;
-        // internal stuff.
-        this.cache = Object.create(null);
-        this.writeQueue = [];
-    }
-    __(...args) {
-        if (typeof arguments[0] !== 'string') {
-            return this._taggedLiteral(arguments[0], ...arguments);
-        }
-        const str = args.shift();
-        let cb = function () { }; // start with noop.
-        if (typeof args[args.length - 1] === 'function')
-            cb = args.pop();
-        cb = cb || function () { }; // noop.
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        // we've observed a new string, update the language file.
-        if (!this.cache[this.locale][str] && this.updateFiles) {
-            this.cache[this.locale][str] = str;
-            // include the current directory and locale,
-            // since these values could change before the
-            // write is performed.
-            this._enqueueWrite({
-                directory: this.directory,
-                locale: this.locale,
-                cb
-            });
-        }
-        else {
-            cb();
-        }
-        return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));
-    }
-    __n() {
-        const args = Array.prototype.slice.call(arguments);
-        const singular = args.shift();
-        const plural = args.shift();
-        const quantity = args.shift();
-        let cb = function () { }; // start with noop.
-        if (typeof args[args.length - 1] === 'function')
-            cb = args.pop();
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        let str = quantity === 1 ? singular : plural;
-        if (this.cache[this.locale][singular]) {
-            const entry = this.cache[this.locale][singular];
-            str = entry[quantity === 1 ? 'one' : 'other'];
-        }
-        // we've observed a new string, update the language file.
-        if (!this.cache[this.locale][singular] && this.updateFiles) {
-            this.cache[this.locale][singular] = {
-                one: singular,
-                other: plural
-            };
-            // include the current directory and locale,
-            // since these values could change before the
-            // write is performed.
-            this._enqueueWrite({
-                directory: this.directory,
-                locale: this.locale,
-                cb
-            });
-        }
-        else {
-            cb();
-        }
-        // if a %d placeholder is provided, add quantity
-        // to the arguments expanded by util.format.
-        const values = [str];
-        if (~str.indexOf('%d'))
-            values.push(quantity);
-        return shim.format.apply(shim.format, values.concat(args));
-    }
-    setLocale(locale) {
-        this.locale = locale;
-    }
-    getLocale() {
-        return this.locale;
-    }
-    updateLocale(obj) {
-        if (!this.cache[this.locale])
-            this._readLocaleFile();
-        for (const key in obj) {
-            if (Object.prototype.hasOwnProperty.call(obj, key)) {
-                this.cache[this.locale][key] = obj[key];
-            }
-        }
-    }
-    _taggedLiteral(parts, ...args) {
-        let str = '';
-        parts.forEach(function (part, i) {
-            const arg = args[i + 1];
-            str += part;
-            if (typeof arg !== 'undefined') {
-                str += '%s';
-            }
-        });
-        return this.__.apply(this, [str].concat([].slice.call(args, 1)));
-    }
-    _enqueueWrite(work) {
-        this.writeQueue.push(work);
-        if (this.writeQueue.length === 1)
-            this._processWriteQueue();
-    }
-    _processWriteQueue() {
-        const _this = this;
-        const work = this.writeQueue[0];
-        // destructure the enqueued work.
-        const directory = work.directory;
-        const locale = work.locale;
-        const cb = work.cb;
-        const languageFile = this._resolveLocaleFile(directory, locale);
-        const serializedLocale = JSON.stringify(this.cache[locale], null, 2);
-        shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
-            _this.writeQueue.shift();
-            if (_this.writeQueue.length > 0)
-                _this._processWriteQueue();
-            cb(err);
-        });
-    }
-    _readLocaleFile() {
-        let localeLookup = {};
-        const languageFile = this._resolveLocaleFile(this.directory, this.locale);
-        try {
-            // When using a bundler such as webpack, readFileSync may not be defined:
-            if (shim.fs.readFileSync) {
-                localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));
-            }
-        }
-        catch (err) {
-            if (err instanceof SyntaxError) {
-                err.message = 'syntax error in ' + languageFile;
-            }
-            if (err.code === 'ENOENT')
-                localeLookup = {};
-            else
-                throw err;
-        }
-        this.cache[this.locale] = localeLookup;
-    }
-    _resolveLocaleFile(directory, locale) {
-        let file = shim.resolve(directory, './', locale + '.json');
-        if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
-            // attempt fallback to language only
-            const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');
-            if (this._fileExistsSync(languageFile))
-                file = languageFile;
-        }
-        return file;
-    }
-    _fileExistsSync(file) {
-        return shim.exists(file);
-    }
-}
-export function y18n(opts, _shim) {
-    shim = _shim;
-    const y18n = new Y18N(opts);
-    return {
-        __: y18n.__.bind(y18n),
-        __n: y18n.__n.bind(y18n),
-        setLocale: y18n.setLocale.bind(y18n),
-        getLocale: y18n.getLocale.bind(y18n),
-        updateLocale: y18n.updateLocale.bind(y18n),
-        locale: y18n.locale
-    };
-}
Index: trip-planner-front/node_modules/y18n/build/lib/platform-shims/node.js
===================================================================
--- trip-planner-front/node_modules/y18n/build/lib/platform-shims/node.js	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ 	(revision )
@@ -1,19 +1,0 @@
-import { readFileSync, statSync, writeFile } from 'fs';
-import { format } from 'util';
-import { resolve } from 'path';
-export default {
-    fs: {
-        readFileSync,
-        writeFile
-    },
-    format,
-    resolve,
-    exists: (file) => {
-        try {
-            return statSync(file).isFile();
-        }
-        catch (err) {
-            return false;
-        }
-    }
-};
Index: trip-planner-front/node_modules/y18n/index.js
===================================================================
--- trip-planner-front/node_modules/y18n/index.js	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner-front/node_modules/y18n/index.js	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -0,0 +1,188 @@
+var fs = require('fs')
+var path = require('path')
+var util = require('util')
+
+function Y18N (opts) {
+  // configurable options.
+  opts = opts || {}
+  this.directory = opts.directory || './locales'
+  this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true
+  this.locale = opts.locale || 'en'
+  this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true
+
+  // internal stuff.
+  this.cache = Object.create(null)
+  this.writeQueue = []
+}
+
+Y18N.prototype.__ = function () {
+  if (typeof arguments[0] !== 'string') {
+    return this._taggedLiteral.apply(this, arguments)
+  }
+  var args = Array.prototype.slice.call(arguments)
+  var str = args.shift()
+  var cb = function () {} // start with noop.
+
+  if (typeof args[args.length - 1] === 'function') cb = args.pop()
+  cb = cb || function () {} // noop.
+
+  if (!this.cache[this.locale]) this._readLocaleFile()
+
+  // we've observed a new string, update the language file.
+  if (!this.cache[this.locale][str] && this.updateFiles) {
+    this.cache[this.locale][str] = str
+
+    // include the current directory and locale,
+    // since these values could change before the
+    // write is performed.
+    this._enqueueWrite([this.directory, this.locale, cb])
+  } else {
+    cb()
+  }
+
+  return util.format.apply(util, [this.cache[this.locale][str] || str].concat(args))
+}
+
+Y18N.prototype._taggedLiteral = function (parts) {
+  var args = arguments
+  var str = ''
+  parts.forEach(function (part, i) {
+    var arg = args[i + 1]
+    str += part
+    if (typeof arg !== 'undefined') {
+      str += '%s'
+    }
+  })
+  return this.__.apply(null, [str].concat([].slice.call(arguments, 1)))
+}
+
+Y18N.prototype._enqueueWrite = function (work) {
+  this.writeQueue.push(work)
+  if (this.writeQueue.length === 1) this._processWriteQueue()
+}
+
+Y18N.prototype._processWriteQueue = function () {
+  var _this = this
+  var work = this.writeQueue[0]
+
+  // destructure the enqueued work.
+  var directory = work[0]
+  var locale = work[1]
+  var cb = work[2]
+
+  var languageFile = this._resolveLocaleFile(directory, locale)
+  var serializedLocale = JSON.stringify(this.cache[locale], null, 2)
+
+  fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
+    _this.writeQueue.shift()
+    if (_this.writeQueue.length > 0) _this._processWriteQueue()
+    cb(err)
+  })
+}
+
+Y18N.prototype._readLocaleFile = function () {
+  var localeLookup = {}
+  var languageFile = this._resolveLocaleFile(this.directory, this.locale)
+
+  try {
+    localeLookup = JSON.parse(fs.readFileSync(languageFile, 'utf-8'))
+  } catch (err) {
+    if (err instanceof SyntaxError) {
+      err.message = 'syntax error in ' + languageFile
+    }
+
+    if (err.code === 'ENOENT') localeLookup = {}
+    else throw err
+  }
+
+  this.cache[this.locale] = localeLookup
+}
+
+Y18N.prototype._resolveLocaleFile = function (directory, locale) {
+  var file = path.resolve(directory, './', locale + '.json')
+  if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
+    // attempt fallback to language only
+    var languageFile = path.resolve(directory, './', locale.split('_')[0] + '.json')
+    if (this._fileExistsSync(languageFile)) file = languageFile
+  }
+  return file
+}
+
+// this only exists because fs.existsSync() "will be deprecated"
+// see https://nodejs.org/api/fs.html#fs_fs_existssync_path
+Y18N.prototype._fileExistsSync = function (file) {
+  try {
+    return fs.statSync(file).isFile()
+  } catch (err) {
+    return false
+  }
+}
+
+Y18N.prototype.__n = function () {
+  var args = Array.prototype.slice.call(arguments)
+  var singular = args.shift()
+  var plural = args.shift()
+  var quantity = args.shift()
+
+  var cb = function () {} // start with noop.
+  if (typeof args[args.length - 1] === 'function') cb = args.pop()
+
+  if (!this.cache[this.locale]) this._readLocaleFile()
+
+  var str = quantity === 1 ? singular : plural
+  if (this.cache[this.locale][singular]) {
+    str = this.cache[this.locale][singular][quantity === 1 ? 'one' : 'other']
+  }
+
+  // we've observed a new string, update the language file.
+  if (!this.cache[this.locale][singular] && this.updateFiles) {
+    this.cache[this.locale][singular] = {
+      one: singular,
+      other: plural
+    }
+
+    // include the current directory and locale,
+    // since these values could change before the
+    // write is performed.
+    this._enqueueWrite([this.directory, this.locale, cb])
+  } else {
+    cb()
+  }
+
+  // if a %d placeholder is provided, add quantity
+  // to the arguments expanded by util.format.
+  var values = [str]
+  if (~str.indexOf('%d')) values.push(quantity)
+
+  return util.format.apply(util, values.concat(args))
+}
+
+Y18N.prototype.setLocale = function (locale) {
+  this.locale = locale
+}
+
+Y18N.prototype.getLocale = function () {
+  return this.locale
+}
+
+Y18N.prototype.updateLocale = function (obj) {
+  if (!this.cache[this.locale]) this._readLocaleFile()
+
+  for (var key in obj) {
+    this.cache[this.locale][key] = obj[key]
+  }
+}
+
+module.exports = function (opts) {
+  var y18n = new Y18N(opts)
+
+  // bind all functions to y18n, so that
+  // they can be used in isolation.
+  for (var key in y18n) {
+    if (typeof y18n[key] === 'function') {
+      y18n[key] = y18n[key].bind(y18n)
+    }
+  }
+
+  return y18n
+}
Index: trip-planner-front/node_modules/y18n/index.mjs
===================================================================
--- trip-planner-front/node_modules/y18n/index.mjs	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ 	(revision )
@@ -1,8 +1,0 @@
-import shim from './build/lib/platform-shims/node.js'
-import { y18n as _y18n } from './build/lib/index.js'
-
-const y18n = (opts) => {
-  return _y18n(opts, shim)
-}
-
-export default y18n
Index: trip-planner-front/node_modules/y18n/package.json
===================================================================
--- trip-planner-front/node_modules/y18n/package.json	(revision 59329aad30ff25ec5095bb7ffb78ddb59b7dc111)
+++ trip-planner-front/node_modules/y18n/package.json	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -1,71 +1,47 @@
 {
-  "_args": [
-    [
-      "y18n@5.0.8",
-      "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front"
-    ]
-  ],
-  "_development": true,
-  "_from": "y18n@5.0.8",
-  "_id": "y18n@5.0.8",
+  "_from": "y18n@^4.0.0",
+  "_id": "y18n@4.0.3",
   "_inBundle": false,
-  "_integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+  "_integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
   "_location": "/y18n",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "y18n@5.0.8",
+    "raw": "y18n@^4.0.0",
     "name": "y18n",
     "escapedName": "y18n",
-    "rawSpec": "5.0.8",
+    "rawSpec": "^4.0.0",
     "saveSpec": null,
-    "fetchSpec": "5.0.8"
+    "fetchSpec": "^4.0.0"
   },
   "_requiredBy": [
-    "/karma/yargs",
     "/yargs"
   ],
-  "_resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
-  "_spec": "5.0.8",
-  "_where": "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front",
+  "_resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+  "_shasum": "b5f259c82cd6e336921efd7bfd8bf560de9eeedf",
+  "_spec": "y18n@^4.0.0",
+  "_where": "C:\\Users\\DELL\\Desktop\\bachelor-thesis\\trip-planner-front\\node_modules\\yargs",
   "author": {
     "name": "Ben Coe",
-    "email": "bencoe@gmail.com"
+    "email": "ben@npmjs.com"
   },
   "bugs": {
     "url": "https://github.com/yargs/y18n/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "the bare-bones internationalization library used by yargs",
   "devDependencies": {
-    "@types/node": "^14.6.4",
-    "@wessberg/rollup-plugin-ts": "^1.3.1",
-    "c8": "^7.3.0",
     "chai": "^4.0.1",
-    "cross-env": "^7.0.2",
-    "gts": "^3.0.0",
-    "mocha": "^8.0.0",
-    "rimraf": "^3.0.2",
-    "rollup": "^2.26.10",
-    "standardx": "^7.0.0",
-    "ts-transform-default-export": "^1.0.2",
-    "typescript": "^4.0.0"
-  },
-  "engines": {
-    "node": ">=10"
-  },
-  "exports": {
-    ".": [
-      {
-        "import": "./index.mjs",
-        "require": "./build/index.cjs"
-      },
-      "./build/index.cjs"
-    ]
+    "coveralls": "^3.0.0",
+    "mocha": "^4.0.1",
+    "nyc": "^11.0.1",
+    "rimraf": "^2.5.0",
+    "standard": "^10.0.0-beta.0",
+    "standard-version": "^4.2.0"
   },
   "files": [
-    "build",
-    "index.mjs",
-    "!*.d.ts"
+    "index.js"
   ],
   "homepage": "https://github.com/yargs/y18n",
@@ -76,31 +52,16 @@
   ],
   "license": "ISC",
-  "main": "./build/index.cjs",
-  "module": "./build/lib/index.js",
+  "main": "index.js",
   "name": "y18n",
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/yargs/y18n.git"
+    "url": "git+ssh://git@github.com/yargs/y18n.git"
   },
   "scripts": {
-    "build:cjs": "rollup -c",
-    "check": "standardx **/*.ts **/*.cjs **/*.mjs",
-    "compile": "tsc",
-    "coverage": "c8 report --check-coverage",
-    "fix": "standardx --fix **/*.ts **/*.cjs **/*.mjs",
-    "postcompile": "npm run build:cjs",
-    "posttest": "npm run check",
-    "precompile": "rimraf build",
-    "prepare": "npm run compile",
-    "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs",
-    "test": "c8 --reporter=text --reporter=html mocha test/*.cjs",
-    "test:esm": "c8 --reporter=text --reporter=html mocha test/esm/*.mjs"
+    "coverage": "nyc report --reporter=text-lcov | coveralls",
+    "pretest": "standard",
+    "release": "standard-version",
+    "test": "nyc mocha"
   },
-  "standardx": {
-    "ignore": [
-      "build"
-    ]
-  },
-  "type": "module",
-  "version": "5.0.8"
+  "version": "4.0.3"
 }
