Index: frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,88 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var config_loader_1 = require("../config-loader");
+var path_1 = require("path");
+describe("config-loader", function () {
+    it("should use explicitParams when set", function () {
+        var result = (0, config_loader_1.configLoader)({
+            explicitParams: {
+                baseUrl: "/foo/bar",
+                paths: {
+                    asd: ["asd"],
+                },
+            },
+            cwd: "/baz",
+        });
+        var successResult = result;
+        // assert.equal(successResult.resultType, "success");
+        // assert.equal(successResult.absoluteBaseUrl, "/foo/bar");
+        // assert.equal(successResult.paths["asd"][0], "asd");
+        expect(successResult.resultType).toBe("success");
+        expect(successResult.absoluteBaseUrl).toBe("/foo/bar");
+        expect(successResult.paths["asd"][0]).toBe("asd");
+    });
+    it("should use explicitParams when set and add cwd when path is relative", function () {
+        var result = (0, config_loader_1.configLoader)({
+            explicitParams: {
+                baseUrl: "bar/",
+                paths: {
+                    asd: ["asd"],
+                },
+            },
+            cwd: "/baz",
+        });
+        var successResult = result;
+        // assert.equal(successResult.resultType, "success");
+        // assert.equal(successResult.absoluteBaseUrl, join("/baz", "bar/"));
+        expect(successResult.resultType).toBe("success");
+        expect(successResult.absoluteBaseUrl).toBe((0, path_1.join)("/baz", "bar/"));
+    });
+    it("should fallback to tsConfigLoader when explicitParams is not set", function () {
+        var result = (0, config_loader_1.configLoader)({
+            explicitParams: undefined,
+            cwd: "/baz",
+            // tslint:disable-next-line:no-any
+            tsConfigLoader: function (_) { return ({
+                tsConfigPath: "/baz/tsconfig.json",
+                baseUrl: "./src",
+                paths: {},
+            }); },
+        });
+        var successResult = result;
+        // assert.equal(successResult.resultType, "success");
+        // assert.equal(successResult.absoluteBaseUrl, join("/baz", "src"));
+        expect(successResult.resultType).toBe("success");
+        expect(successResult.absoluteBaseUrl).toBe((0, path_1.join)("/baz", "src"));
+    });
+    it("should show an error message when baseUrl is missing", function () {
+        var result = (0, config_loader_1.configLoader)({
+            explicitParams: undefined,
+            cwd: "/baz",
+            // tslint:disable-next-line:no-any
+            tsConfigLoader: function (_) { return ({
+                tsConfigPath: "/baz/tsconfig.json",
+                baseUrl: undefined,
+                paths: {},
+            }); },
+        });
+        var failResult = result;
+        // assert.equal(failResult.resultType, "failed");
+        // assert.isTrue(failResult.message.indexOf("baseUrl") > -1);
+        expect(failResult.resultType).toBe("failed");
+        expect(failResult.message.indexOf("baseUrl") > -1).toBeTruthy();
+    });
+    it("should presume cwd to be a tsconfig file when loadConfig is called with absolute path to tsconfig.json", function () {
+        // using tsconfig-named.json to ensure that future changes to fix
+        // https://github.com/dividab/tsconfig-paths/issues/31
+        // do not pass this test case just because of a directory walk looking
+        // for tsconfig.json
+        var configFile = (0, path_1.join)(__dirname, "tsconfig-named.json");
+        var result = (0, config_loader_1.loadConfig)(configFile);
+        var successResult = result;
+        // assert.equal(successResult.resultType, "success");
+        // assert.equal(successResult.configFileAbsolutePath, configFile);
+        expect(successResult.resultType).toBe("success");
+        expect(successResult.configFileAbsolutePath).toBe(configFile);
+    });
+});
+//# sourceMappingURL=config-loader.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/config-loader.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"config-loader.test.js","sourceRoot":"","sources":["../../src/__tests__/config-loader.test.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,17 @@
+export interface OneTest {
+    readonly name: string;
+    readonly only?: boolean;
+    readonly skip?: boolean;
+    readonly absoluteBaseUrl: string;
+    readonly paths: {
+        [key: string]: Array<string>;
+    };
+    readonly mainFields?: string[];
+    readonly addMatchAll?: boolean;
+    readonly existingFiles: ReadonlyArray<string>;
+    readonly requestedModule: string;
+    readonly extensions: ReadonlyArray<string>;
+    readonly packageJson?: {};
+    readonly expectedPath: string | undefined;
+}
+export declare const tests: ReadonlyArray<OneTest>;
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,205 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.tests = void 0;
+var path_1 = require("path");
+var filesystem_1 = require("../../filesystem");
+var defaultExtensionsWhenRunningInTsNode = [
+    ".js",
+    ".json",
+    ".node",
+    ".ts",
+    ".tsx",
+];
+exports.tests = [
+    {
+        name: "should locate path that matches with star and exists",
+        absoluteBaseUrl: "/root/",
+        paths: {
+            "lib/*": ["location/*"],
+        },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
+        requestedModule: "lib/mylib",
+        expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should resolve to correct path when many are specified",
+        absoluteBaseUrl: "/root/",
+        paths: {
+            "lib/*": ["foo1/*", "foo2/*", "location/*", "foo3/*"],
+        },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
+        requestedModule: "lib/mylib",
+        extensions: [".ts"],
+        expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
+    },
+    {
+        name: "should locate path that matches with star and prioritize pattern with longest prefix",
+        absoluteBaseUrl: "/root/",
+        paths: {
+            "*": ["location/*"],
+            "lib/*": ["location/*"],
+        },
+        existingFiles: [
+            (0, path_1.join)("/root", "location", "lib", "mylib", "index.ts"),
+            (0, path_1.join)("/root", "location", "mylib", "index.ts"),
+        ],
+        requestedModule: "lib/mylib",
+        expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should locate path that matches with star and exists with extension",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib.myext")],
+        requestedModule: "lib/mylib",
+        extensions: [".js", ".myext"],
+        expectedPath: (0, filesystem_1.removeExtension)((0, path_1.join)("/root", "location", "mylib.myext")),
+    },
+    {
+        name: "should resolve request with extension specified",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("/root", "location", "test.jpg")],
+        requestedModule: "lib/test.jpg",
+        expectedPath: (0, path_1.join)("/root", "location", "test.jpg"),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should locate path that matches without star and exists",
+        absoluteBaseUrl: "/root/",
+        paths: {
+            "lib/foo": ["location/foo"],
+        },
+        existingFiles: [(0, path_1.join)("/root", "location", "foo.ts")],
+        requestedModule: "lib/foo",
+        expectedPath: (0, filesystem_1.removeExtension)((0, path_1.join)("/root", "location", "foo.ts")),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should resolve to parent folder when filename is in subfolder",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
+        requestedModule: "lib/mylib",
+        expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should resolve from main field in package.json",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib", "kalle.ts")],
+        packageJson: { main: "./kalle.ts" },
+        requestedModule: "lib/mylib",
+        expectedPath: (0, path_1.join)("/root", "location", "mylib", "kalle.ts"),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should resolve from main field in package.json (js)",
+        absoluteBaseUrl: "/root",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib.js", "kalle.js")],
+        packageJson: { main: "./kalle.js" },
+        requestedModule: "lib/mylib.js",
+        extensions: [".ts", ".js"],
+        expectedPath: (0, path_1.join)("/root", "location", "mylib.js", "kalle.js"),
+    },
+    {
+        name: "should resolve from list of fields by priority in package.json",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        mainFields: ["missing", "browser", "main"],
+        packageJson: { main: "./main.js", browser: "./browser.js" },
+        existingFiles: [
+            (0, path_1.join)("/root", "location", "mylibjs", "main.js"),
+            (0, path_1.join)("/root", "location", "mylibjs", "browser.js"), // browserFilePath
+        ],
+        extensions: [".ts", ".js"],
+        requestedModule: "lib/mylibjs",
+        expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "browser.js"),
+    },
+    {
+        name: "should ignore field mappings to missing files in package.json",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        mainFields: ["browser", "main"],
+        existingFiles: [(0, path_1.join)("/root", "location", "mylibjs", "kalle.js")],
+        requestedModule: "lib/mylibjs",
+        packageJson: {
+            main: "./kalle.js",
+            browser: "./nope.js",
+        },
+        extensions: [".ts", ".js"],
+        expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
+    },
+    {
+        name: "should ignore advanced field mappings in package.json",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [
+            (0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
+            (0, path_1.join)("/root", "location", "mylibjs", "browser.js"),
+        ],
+        requestedModule: "lib/mylibjs",
+        packageJson: {
+            main: "./kalle.js",
+            browser: { mylibjs: "./browser.js", "./kalle.js": "./browser.js" },
+        },
+        extensions: [".ts", ".js"],
+        expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
+    },
+    {
+        name: "should resolve to with the help of baseUrl when not explicitly set",
+        absoluteBaseUrl: "/root/",
+        paths: {},
+        existingFiles: [(0, path_1.join)("/root", "mylib", "index.ts")],
+        requestedModule: "mylib",
+        expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "mylib", "index.ts")),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should not resolve with the help of baseUrl when asked not to",
+        absoluteBaseUrl: "/root/",
+        paths: {},
+        addMatchAll: false,
+        existingFiles: [(0, path_1.join)("/root", "mylib", "index.ts")],
+        requestedModule: "mylib",
+        expectedPath: undefined,
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should not locate path that does not match",
+        absoluteBaseUrl: "/root/",
+        paths: { "lib/*": ["location/*"] },
+        existingFiles: [(0, path_1.join)("root", "location", "mylib")],
+        requestedModule: "mylib",
+        expectedPath: undefined,
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should not resolve typings file (index.d.ts)",
+        absoluteBaseUrl: "/root/",
+        paths: {
+            "lib/*": ["location/*"],
+        },
+        existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.d.ts")],
+        requestedModule: "lib/mylib",
+        expectedPath: undefined,
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+    {
+        name: "should resolve main file with cjs file extension",
+        absoluteBaseUrl: "/root/",
+        paths: {},
+        existingFiles: [(0, path_1.join)("/root", "mylib", "index.cjs")],
+        packageJson: {
+            main: "./index.cjs",
+        },
+        requestedModule: "mylib",
+        expectedPath: (0, path_1.join)("/root", "mylib", "index.cjs"),
+        extensions: defaultExtensionsWhenRunningInTsNode,
+    },
+];
+//# sourceMappingURL=match-path-data.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/data/match-path-data.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"match-path-data.js","sourceRoot":"","sources":["../../../src/__tests__/data/match-path-data.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,64 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var Filesystem = require("../filesystem");
+var path = require("path");
+describe("filesystem", function () {
+    var fileThatExists = path.join(__dirname, "../../package.json");
+    var fileThatNotExists = path.join(__dirname, "../../package2.json");
+    it("should find file that exists, sync", function () {
+        var result = Filesystem.fileExistsSync(fileThatExists);
+        // assert.equal(result, true);
+        expect(result).toBe(true);
+    });
+    it("should not find file that not exists, sync", function () {
+        var result = Filesystem.fileExistsSync(fileThatNotExists);
+        // assert.equal(result, false);
+        expect(result).toBe(false);
+    });
+    it("should find file that exists, async", function (done) {
+        Filesystem.fileExistsAsync(fileThatExists, function (_err, result) {
+            try {
+                // assert.equal(result, true);
+                expect(result).toBe(true);
+                done();
+            }
+            catch (error) {
+                done(error);
+            }
+        });
+    });
+    it("should not find file that not exists, async", function (done) {
+        Filesystem.fileExistsAsync(fileThatNotExists, function (_err, result) {
+            try {
+                // assert.equal(result, false);
+                expect(result).toBe(false);
+                done();
+            }
+            catch (error) {
+                done(error);
+            }
+        });
+    });
+    it("should load json, sync", function () {
+        var result = Filesystem.readJsonFromDiskSync(fileThatExists);
+        // assert.isOk(result);
+        expect(result);
+        // assert.equal(result.main, "lib/index.js");
+        expect(result.main).toBe("lib/index.js");
+    });
+    it("should load json, async", function (done) {
+        Filesystem.readJsonFromDiskAsync(fileThatExists, function (_err, result) {
+            try {
+                // assert.isOk(result); // Asserts that object is truthy.
+                expect(result).toBeTruthy();
+                // assert.equal(result.main, "lib/index.js");
+                expect(result.main).toBe("lib/index.js");
+                done();
+            }
+            catch (error) {
+                done(error);
+            }
+        });
+    });
+});
+//# sourceMappingURL=filesystem.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/filesystem.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"filesystem.test.js","sourceRoot":"","sources":["../../src/__tests__/filesystem.test.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,2BAA6B;AAE7B,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAClE,IAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEtE,EAAE,CAAC,oCAAoC,EAAE;QACvC,IAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACzD,8BAA8B;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE;QAC/C,IAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC5D,+BAA+B;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,UAAC,IAAI;QAC7C,UAAU,CAAC,eAAe,CAAC,cAAc,EAAE,UAAC,IAAI,EAAE,MAAM;YACtD,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,UAAC,IAAI;QACrD,UAAU,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAC,IAAI,EAAE,MAAM;YACzD,IAAI;gBACF,+BAA+B;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE;QAC3B,IAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC/D,uBAAuB;QACvB,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,6CAA6C;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,UAAC,IAAI;QACjC,UAAU,CAAC,qBAAqB,CAAC,cAAc,EAAE,UAAC,IAAI,EAAE,MAAM;YAC5D,IAAI;gBACF,yDAAyD;gBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5B,6CAA6C;gBAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACzC,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,66 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var mapping_entry_1 = require("../mapping-entry");
+var path_1 = require("path");
+describe("mapping-entry", function () {
+    it("should change to absolute paths and sort in longest prefix order", function () {
+        var result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {
+            "*": ["/foo1", "/foo2"],
+            "longest/pre/fix/*": ["/foo2/bar"],
+            "pre/fix/*": ["/foo3"],
+        }, true);
+        // assert.deepEqual(result, [
+        //   {
+        //     pattern: "longest/pre/fix/*",
+        //     paths: [join("/absolute", "base", "url", "foo2", "bar")],
+        //   },
+        //   {
+        //     pattern: "pre/fix/*",
+        //     paths: [join("/absolute", "base", "url", "foo3")],
+        //   },
+        //   {
+        //     pattern: "*",
+        //     paths: [
+        //       join("/absolute", "base", "url", "foo1"),
+        //       join("/absolute", "base", "url", "foo2"),
+        //     ],
+        //   },
+        // ]);
+        expect(result).toEqual([
+            {
+                pattern: "longest/pre/fix/*",
+                paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
+            },
+            {
+                pattern: "pre/fix/*",
+                paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")],
+            },
+            {
+                pattern: "*",
+                paths: [
+                    (0, path_1.join)("/absolute", "base", "url", "foo1"),
+                    (0, path_1.join)("/absolute", "base", "url", "foo2"),
+                ],
+            },
+        ]);
+    });
+    it("should should add a match-all pattern when requested", function () {
+        var result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {}, true);
+        // assert.deepEqual(result, [
+        //   {
+        //     pattern: "*",
+        //     paths: [join("/absolute", "base", "url", "*")],
+        //   },
+        // ]);
+        expect(result).toEqual([
+            {
+                pattern: "*",
+                paths: [(0, path_1.join)("/absolute", "base", "url", "*")],
+            },
+        ]);
+        result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {}, false);
+        // assert.deepEqual(result, []);
+        expect(result).toEqual([]);
+    });
+});
+//# sourceMappingURL=mapping-entry.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/mapping-entry.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"mapping-entry.test.js","sourceRoot":"","sources":["../../src/__tests__/mapping-entry.test.ts"],"names":[],"mappings":";;AAAA,kDAA6D;AAC7D,6BAA4B;AAE5B,QAAQ,CAAC,eAAe,EAAE;IACxB,EAAE,CAAC,kEAAkE,EAAE;QACrE,IAAM,MAAM,GAAG,IAAA,yCAAyB,EACtC,oBAAoB,EACpB;YACE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YACvB,mBAAmB,EAAE,CAAC,WAAW,CAAC;YAClC,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,EACD,IAAI,CACL,CAAC;QACF,6BAA6B;QAC7B,MAAM;QACN,oCAAoC;QACpC,gEAAgE;QAChE,OAAO;QACP,MAAM;QACN,4BAA4B;QAC5B,yDAAyD;QACzD,OAAO;QACP,MAAM;QACN,oBAAoB;QACpB,eAAe;QACf,kDAAkD;QAClD,kDAAkD;QAClD,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB;gBACE,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;aACzD;YACD;gBACE,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aAClD;YACD;gBACE,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE;oBACL,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACxC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACzC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE;QACzD,IAAI,MAAM,GAAG,IAAA,yCAAyB,EAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvE,6BAA6B;QAC7B,MAAM;QACN,oBAAoB;QACpB,sDAAsD;QACtD,OAAO;QACP,MAAM;QACN,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB;gBACE,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC/C;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,IAAA,yCAAyB,EAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpE,gCAAgC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var match_path_async_1 = require("../match-path-async");
+var Tests = require("./data/match-path-data");
+describe("match-path-async", function () {
+    Tests.tests.forEach(function (t) {
+        return it(t.name, function (done) {
+            var matchPath = (0, match_path_async_1.createMatchPathAsync)(t.absoluteBaseUrl, t.paths, t.mainFields, t.addMatchAll);
+            matchPath(t.requestedModule, function (_path, callback) { return callback(undefined, t.packageJson); }, function (path, callback) {
+                return callback(undefined, t.existingFiles.indexOf(path) !== -1);
+            }, t.extensions, function (_err, result) {
+                // assert.equal(result, t.expectedPath);
+                expect(result).toBe(t.expectedPath);
+                done();
+            });
+        });
+    });
+});
+//# sourceMappingURL=match-path-async.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-async.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"match-path-async.test.js","sourceRoot":"","sources":["../../src/__tests__/match-path-async.test.ts"],"names":[],"mappings":";;AAAA,wDAA2D;AAC3D,8CAAgD;AAEhD,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;QACpB,OAAA,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,UAAC,IAAI;YACd,IAAM,SAAS,GAAG,IAAA,uCAAoB,EACpC,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,WAAW,CACd,CAAC;YACF,SAAS,CACP,CAAC,CAAC,eAAe,EACjB,UAAC,KAAK,EAAE,QAAQ,IAAK,OAAA,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAlC,CAAkC,EACvD,UAAC,IAAI,EAAE,QAAQ;gBACb,OAAA,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAzD,CAAyD,EAC3D,CAAC,CAAC,UAAU,EACZ,UAAC,IAAI,EAAE,MAAM;gBACX,wCAAwC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC;YACT,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IAnBF,CAmBE,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var match_path_sync_1 = require("../match-path-sync");
+var Tests = require("./data/match-path-data");
+describe("match-path-sync", function () {
+    Tests.tests.forEach(function (t) {
+        return it(t.name, function () {
+            var matchPath = (0, match_path_sync_1.createMatchPath)(t.absoluteBaseUrl, t.paths, t.mainFields, t.addMatchAll);
+            var result = matchPath(t.requestedModule, function (_) { return t.packageJson; }, function (name) { return t.existingFiles.indexOf(name) !== -1; }, t.extensions);
+            // assert.equal(result, t.expectedPath);
+            expect(result).toBe(t.expectedPath);
+        });
+    });
+});
+//# sourceMappingURL=match-path-sync.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/match-path-sync.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"match-path-sync.test.js","sourceRoot":"","sources":["../../src/__tests__/match-path-sync.test.ts"],"names":[],"mappings":";;AAAA,sDAAqD;AACrD,8CAAgD;AAEhD,QAAQ,CAAC,iBAAiB,EAAE;IAC1B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;QACpB,OAAA,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;YACT,IAAM,SAAS,GAAG,IAAA,iCAAe,EAC/B,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,WAAW,CACd,CAAC;YACF,IAAM,MAAM,GAAG,SAAS,CACtB,CAAC,CAAC,eAAe,EACjB,UAAC,CAAS,IAAK,OAAA,CAAC,CAAC,WAAW,EAAb,CAAa,EAC5B,UAAC,IAAY,IAAK,OAAA,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,EACtD,CAAC,CAAC,UAAU,CACb,CAAC;YACF,wCAAwC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC;IAfF,CAeE,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,175 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var try_path_1 = require("../try-path");
+var path_1 = require("path");
+describe("mapping-entry", function () {
+    var abosolutePathMappings = [
+        {
+            pattern: "longest/pre/fix/*",
+            paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
+        },
+        { pattern: "pre/fix/*", paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")] },
+        { pattern: "*", paths: [(0, path_1.join)("/absolute", "base", "url", "foo1")] },
+    ];
+    var abosolutePathMappingsStarstWithSlash = [
+        {
+            pattern: "/opt/*",
+            paths: [(0, path_1.join)("/absolute", "src", "aws-layer")],
+        },
+        {
+            pattern: "*",
+            paths: [(0, path_1.join)("/absolute", "src")],
+        },
+    ];
+    it("should return no paths for relative requested module", function () {
+        var result = (0, try_path_1.getPathsToTry)([".ts", "tsx"], abosolutePathMappings, "./requested-module");
+        // assert.deepEqual(result, undefined);
+        expect(result).toBeUndefined();
+    });
+    it("should return no paths if no pattern match the requested module", function () {
+        var result = (0, try_path_1.getPathsToTry)([".ts", "tsx"], [
+            {
+                pattern: "longest/pre/fix/*",
+                paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
+            },
+            {
+                pattern: "pre/fix/*",
+                paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")],
+            },
+        ], "requested-module");
+        expect(result).toBeUndefined();
+    });
+    it("should get all paths that matches requested module", function () {
+        var result = (0, try_path_1.getPathsToTry)([".ts", ".tsx"], abosolutePathMappings, "longest/pre/fix/requested-module");
+        // assert.deepEqual(result, [
+        //   // "longest/pre/fix/*"
+        //   { type: "file", path: join("/absolute", "base", "url", "foo2", "bar") },
+        //   {
+        //     type: "extension",
+        //     path: join("/absolute", "base", "url", "foo2", "bar.ts"),
+        //   },
+        //   {
+        //     type: "extension",
+        //     path: join("/absolute", "base", "url", "foo2", "bar.tsx"),
+        //   },
+        //   {
+        //     type: "package",
+        //     path: join("/absolute", "base", "url", "foo2", "bar", "package.json"),
+        //   },
+        //   {
+        //     type: "index",
+        //     path: join("/absolute", "base", "url", "foo2", "bar", "index.ts"),
+        //   },
+        //   {
+        //     type: "index",
+        //     path: join("/absolute", "base", "url", "foo2", "bar", "index.tsx"),
+        //   },
+        //   // "*"
+        //   { type: "file", path: join("/absolute", "base", "url", "foo1") },
+        //   { type: "extension", path: join("/absolute", "base", "url", "foo1.ts") },
+        //   { type: "extension", path: join("/absolute", "base", "url", "foo1.tsx") },
+        //   {
+        //     type: "package",
+        //     path: join("/absolute", "base", "url", "foo1", "package.json"),
+        //   },
+        //   {
+        //     type: "index",
+        //     path: join("/absolute", "base", "url", "foo1", "index.ts"),
+        //   },
+        //   {
+        //     type: "index",
+        //     path: join("/absolute", "base", "url", "foo1", "index.tsx"),
+        //   },
+        // ]);
+        expect(result).toEqual([
+            // "longest/pre/fix/*"
+            { type: "file", path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar") },
+            {
+                type: "extension",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar.ts"),
+            },
+            {
+                type: "extension",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar.tsx"),
+            },
+            {
+                type: "package",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "package.json"),
+            },
+            {
+                type: "index",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "index.ts"),
+            },
+            {
+                type: "index",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "index.tsx"),
+            },
+            // "*"
+            { type: "file", path: (0, path_1.join)("/absolute", "base", "url", "foo1") },
+            { type: "extension", path: (0, path_1.join)("/absolute", "base", "url", "foo1.ts") },
+            { type: "extension", path: (0, path_1.join)("/absolute", "base", "url", "foo1.tsx") },
+            {
+                type: "package",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo1", "package.json"),
+            },
+            {
+                type: "index",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo1", "index.ts"),
+            },
+            {
+                type: "index",
+                path: (0, path_1.join)("/absolute", "base", "url", "foo1", "index.tsx"),
+            },
+        ]);
+    });
+    it("should resolve paths starting with a slash", function () {
+        var result = (0, try_path_1.getPathsToTry)([".ts"], abosolutePathMappingsStarstWithSlash, "/opt/utils");
+        expect(result).toEqual([
+            // "opt/*"
+            {
+                path: (0, path_1.join)("/absolute", "src", "aws-layer"),
+                type: "file",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src", "aws-layer.ts"),
+                type: "extension",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src", "aws-layer", "package.json"),
+                type: "package",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src", "aws-layer", "index.ts"),
+                type: "index",
+            },
+            // "*"
+            {
+                path: (0, path_1.join)("/absolute", "src"),
+                type: "file",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src.ts"),
+                type: "extension",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src", "package.json"),
+                type: "package",
+            },
+            {
+                path: (0, path_1.join)("/absolute", "src", "index.ts"),
+                type: "index",
+            },
+        ]);
+    });
+});
+// describe("match-star", () => {
+//   it("should match star in last position", () => {
+//     const result = matchStar("lib/*", "lib/mylib");
+//     assert.equal(result, "mylib");
+//   });
+//   it("should match star in first position", () => {
+//     const result = matchStar("*/lib", "mylib/lib");
+//     assert.equal(result, "mylib");
+//   });
+// });
+//# sourceMappingURL=try-path.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/try-path.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"try-path.test.js","sourceRoot":"","sources":["../../src/__tests__/try-path.test.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+export {};
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,328 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var tsconfig_loader_1 = require("../tsconfig-loader");
+var path_1 = require("path");
+describe("tsconfig-loader", function () {
+    it("should find tsconfig in cwd", function () {
+        var result = (0, tsconfig_loader_1.tsConfigLoader)({
+            cwd: "/foo/bar",
+            getEnv: function (_) { return undefined; },
+            loadSync: function (cwd) {
+                return {
+                    tsConfigPath: "".concat(cwd, "/tsconfig.json"),
+                    baseUrl: "./",
+                    paths: {},
+                };
+            },
+        });
+        // assert.equal(result.tsConfigPath, "/foo/bar/tsconfig.json");
+        expect(result.tsConfigPath).toBe("/foo/bar/tsconfig.json");
+    });
+    it("should return loaderResult.tsConfigPath as undefined when not found", function () {
+        var result = (0, tsconfig_loader_1.tsConfigLoader)({
+            cwd: "/foo/bar",
+            getEnv: function (_) { return undefined; },
+            loadSync: function (_) {
+                return {
+                    tsConfigPath: undefined,
+                    baseUrl: "./",
+                    paths: {},
+                };
+            },
+        });
+        // assert.isUndefined(result.tsConfigPath);
+        expect(result.tsConfigPath).toBeUndefined();
+    });
+    it("should use TS_NODE_PROJECT env if exists", function () {
+        var result = (0, tsconfig_loader_1.tsConfigLoader)({
+            cwd: "/foo/bar",
+            getEnv: function (key) {
+                return key === "TS_NODE_PROJECT" ? "/foo/baz" : undefined;
+            },
+            loadSync: function (cwd, fileName) {
+                if (cwd === "/foo/bar" && fileName === "/foo/baz") {
+                    return {
+                        tsConfigPath: "/foo/baz/tsconfig.json",
+                        baseUrl: "./",
+                        paths: {},
+                    };
+                }
+                return {
+                    tsConfigPath: undefined,
+                    baseUrl: "./",
+                    paths: {},
+                };
+            },
+        });
+        // assert.equal(result.tsConfigPath, "/foo/baz/tsconfig.json");
+        expect(result.tsConfigPath).toBe("/foo/baz/tsconfig.json");
+    });
+    it("should use TS_NODE_BASEURL env if exists", function () {
+        var result = (0, tsconfig_loader_1.tsConfigLoader)({
+            cwd: "/foo/bar",
+            getEnv: function (key) {
+                return key === "TS_NODE_BASEURL" ? "SOME_BASEURL" : undefined;
+            },
+            loadSync: function (_0, _1, baseUrl) {
+                return {
+                    tsConfigPath: undefined,
+                    baseUrl: baseUrl,
+                    paths: {},
+                };
+            },
+        });
+        // assert.equal(result.baseUrl, "SOME_BASEURL");
+        expect(result.baseUrl).toBe("SOME_BASEURL");
+    });
+    it("should not use TS_NODE_BASEURL env if it does not exist", function () {
+        var result = (0, tsconfig_loader_1.tsConfigLoader)({
+            cwd: "/foo/bar",
+            getEnv: function (_) {
+                return undefined;
+            },
+            loadSync: function (_0, _1, baseUrl) {
+                return {
+                    tsConfigPath: undefined,
+                    baseUrl: baseUrl,
+                    paths: {},
+                };
+            },
+        });
+        // assert.equal(result.baseUrl, undefined);
+        expect(result.baseUrl).toBeUndefined();
+    });
+});
+describe("walkForTsConfig", function () {
+    it("should find tsconfig in starting directory", function () {
+        var pathToTsconfig = (0, path_1.join)("/root", "dir1", "tsconfig.json");
+        var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1"), function (path) { return path === pathToTsconfig; });
+        // assert.equal(res, pathToTsconfig);
+        expect(res).toBe(pathToTsconfig);
+    });
+    it("should find tsconfig in parent directory", function () {
+        var pathToTsconfig = (0, path_1.join)("/root", "tsconfig.json");
+        var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1"), function (path) { return path === pathToTsconfig; });
+        // assert.equal(res, pathToTsconfig);
+        expect(res).toBe(pathToTsconfig);
+    });
+    it("should return undefined when reaching the top", function () {
+        var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1", "kalle"), function () { return false; });
+        // assert.equal(res, undefined);
+        expect(res).toBeUndefined();
+    });
+});
+describe("loadConfig", function () {
+    it("should load a config", function () {
+        var config = { compilerOptions: { baseUrl: "hej" } };
+        var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return JSON.stringify(config); });
+        // assert.deepEqual(res, config);
+        expect(res).toStrictEqual(config);
+    });
+    it("should load a config with comments", function () {
+        var config = { compilerOptions: { baseUrl: "hej" } };
+        var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n          // my comment\n          \"compilerOptions\": { \n            \"baseUrl\": \"hej\"\n          }\n        }"; });
+        // assert.deepEqual(res, config);
+        expect(res).toStrictEqual(config);
+    });
+    it("should load a config with trailing commas", function () {
+        var config = { compilerOptions: { baseUrl: "hej" } };
+        var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n          \"compilerOptions\": { \n            \"baseUrl\": \"hej\",\n          },\n        }"; });
+        // assert.deepEqual(res, config);
+        expect(res).toStrictEqual(config);
+    });
+    it("should throw an error including the file path when encountering invalid JSON5", function () {
+        expect(function () {
+            return (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n            \"compilerOptions\": {\n          }"; });
+        }).toThrowError("/root/dir1/tsconfig.json is malformed JSON5: invalid end of input at 3:12");
+    });
+    it("should load a config with string extends and overwrite all options", function () {
+        var firstConfig = {
+            extends: "../base-config.json",
+            compilerOptions: { baseUrl: "kalle", paths: { foo: ["bar2"] } },
+        };
+        var firstConfigPath = (0, path_1.join)("/root", "dir1", "tsconfig.json");
+        var baseConfig = {
+            compilerOptions: {
+                baseUrl: "olle",
+                paths: { foo: ["bar1"] },
+                strict: true,
+            },
+        };
+        var baseConfigPath = (0, path_1.join)("/root", "base-config.json");
+        var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "tsconfig.json"), function (path) { return path === firstConfigPath || path === baseConfigPath; }, function (path) {
+            if (path === firstConfigPath) {
+                return JSON.stringify(firstConfig);
+            }
+            if (path === baseConfigPath) {
+                return JSON.stringify(baseConfig);
+            }
+            return "";
+        });
+        // assert.deepEqual(res, {
+        //   extends: "../base-config.json",
+        //   compilerOptions: {
+        //     baseUrl: "kalle",
+        //     paths: { foo: ["bar2"] },
+        //     strict: true,
+        //   },
+        // });
+        expect(res).toEqual({
+            extends: "../base-config.json",
+            compilerOptions: {
+                baseUrl: "kalle",
+                paths: { foo: ["bar2"] },
+                strict: true,
+            },
+        });
+    });
+    it("should load a config with string extends from node_modules and overwrite all options", function () {
+        var firstConfig = {
+            extends: "my-package/base-config.json",
+            compilerOptions: { baseUrl: "kalle", paths: { foo: ["bar2"] } },
+        };
+        var firstConfigPath = (0, path_1.join)("/root", "dir1", "tsconfig.json");
+        var baseConfig = {
+            compilerOptions: {
+                baseUrl: "olle",
+                paths: { foo: ["bar1"] },
+                strict: true,
+            },
+        };
+        var baseConfigPath = (0, path_1.join)("/root", "dir1", "node_modules", "my-package", "base-config.json");
+        var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "tsconfig.json"), function (path) { return path === firstConfigPath || path === baseConfigPath; }, function (path) {
+            if (path === firstConfigPath) {
+                return JSON.stringify(firstConfig);
+            }
+            if (path === baseConfigPath) {
+                return JSON.stringify(baseConfig);
+            }
+            return "";
+        });
+        // assert.deepEqual(res, {
+        //   extends: "my-package/base-config.json",
+        //   compilerOptions: {
+        //     baseUrl: "kalle",
+        //     paths: { foo: ["bar2"] },
+        //     strict: true,
+        //   },
+        // });
+        expect(res).toEqual({
+            extends: "my-package/base-config.json",
+            compilerOptions: {
+                baseUrl: "kalle",
+                paths: { foo: ["bar2"] },
+                strict: true,
+            },
+        });
+    });
+    it("should use baseUrl relative to location of extended tsconfig", function () {
+        var firstConfig = { compilerOptions: { baseUrl: "." } };
+        var firstConfigPath = (0, path_1.join)("/root", "first-config.json");
+        var secondConfig = { extends: "../first-config.json" };
+        var secondConfigPath = (0, path_1.join)("/root", "dir1", "second-config.json");
+        var thirdConfig = { extends: "../second-config.json" };
+        var thirdConfigPath = (0, path_1.join)("/root", "dir1", "dir2", "third-config.json");
+        var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "dir2", "third-config.json"), function (path) {
+            return path === firstConfigPath ||
+                path === secondConfigPath ||
+                path === thirdConfigPath;
+        }, function (path) {
+            if (path === firstConfigPath) {
+                return JSON.stringify(firstConfig);
+            }
+            if (path === secondConfigPath) {
+                return JSON.stringify(secondConfig);
+            }
+            if (path === thirdConfigPath) {
+                return JSON.stringify(thirdConfig);
+            }
+            return "";
+        });
+        // assert.deepEqual(res, {
+        //   extends: "../second-config.json",
+        //   compilerOptions: { baseUrl: join("..", "..") },
+        // });
+        expect(res).toEqual({
+            extends: "../second-config.json",
+            compilerOptions: { baseUrl: (0, path_1.join)("..", "..") },
+        });
+    });
+    it("should load a config with array extends and overwrite all options", function () {
+        var baseConfig1 = {
+            compilerOptions: { baseUrl: ".", paths: { foo: ["bar"] } },
+        };
+        var baseConfig1Path = (0, path_1.join)("/root", "base-config-1.json");
+        var baseConfig2 = { compilerOptions: { baseUrl: "." } };
+        var baseConfig2Path = (0, path_1.join)("/root", "dir1", "base-config-2.json");
+        var baseConfig3 = {
+            compilerOptions: { baseUrl: ".", paths: { foo: ["bar2"] } },
+        };
+        var baseConfig3Path = (0, path_1.join)("/root", "dir1", "dir2", "base-config-3.json");
+        var actualConfig = {
+            extends: [
+                "./base-config-1.json",
+                "./dir1/base-config-2.json",
+                "./dir1/dir2/base-config-3.json",
+            ],
+        };
+        var actualConfigPath = (0, path_1.join)("/root", "tsconfig.json");
+        var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "tsconfig.json"), function (path) {
+            return [
+                baseConfig1Path,
+                baseConfig2Path,
+                baseConfig3Path,
+                actualConfigPath,
+            ].indexOf(path) >= 0;
+        }, function (path) {
+            if (path === baseConfig1Path) {
+                return JSON.stringify(baseConfig1);
+            }
+            if (path === baseConfig2Path) {
+                return JSON.stringify(baseConfig2);
+            }
+            if (path === baseConfig3Path) {
+                return JSON.stringify(baseConfig3);
+            }
+            if (path === actualConfigPath) {
+                return JSON.stringify(actualConfig);
+            }
+            return "";
+        });
+        expect(res).toEqual({
+            extends: [
+                "./base-config-1.json",
+                "./dir1/base-config-2.json",
+                "./dir1/dir2/base-config-3.json",
+            ],
+            compilerOptions: {
+                baseUrl: (0, path_1.join)("dir1", "dir2"),
+                paths: { foo: ["bar2"] },
+            },
+        });
+    });
+    it("should load a config with array extends without .json extension", function () {
+        var baseConfig = {
+            compilerOptions: { baseUrl: ".", paths: { foo: ["bar"] } },
+        };
+        var baseConfigPath = (0, path_1.join)("/root", "base-config-1.json");
+        var actualConfig = { extends: ["./base-config-1"] };
+        var actualConfigPath = (0, path_1.join)("/root", "tsconfig.json");
+        var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "tsconfig.json"), function (path) { return [baseConfigPath, actualConfigPath].indexOf(path) >= 0; }, function (path) {
+            if (path === baseConfigPath) {
+                return JSON.stringify(baseConfig);
+            }
+            if (path === actualConfigPath) {
+                return JSON.stringify(actualConfig);
+            }
+            return "";
+        });
+        expect(res).toEqual({
+            extends: ["./base-config-1"],
+            compilerOptions: {
+                baseUrl: ".",
+                paths: { foo: ["bar"] },
+            },
+        });
+    });
+});
+//# sourceMappingURL=tsconfig-loader.test.js.map
Index: frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/__tests__/tsconfig-loader.test.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"tsconfig-loader.test.js","sourceRoot":"","sources":["../../src/__tests__/tsconfig-loader.test.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/config-loader.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/config-loader.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/config-loader.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,33 @@
+import * as TsConfigLoader2 from "./tsconfig-loader";
+export interface ExplicitParams {
+    baseUrl: string;
+    paths: {
+        [key: string]: Array<string>;
+    };
+    mainFields?: Array<string>;
+    addMatchAll?: boolean;
+}
+export declare type TsConfigLoader = (params: TsConfigLoader2.TsConfigLoaderParams) => TsConfigLoader2.TsConfigLoaderResult;
+export interface ConfigLoaderParams {
+    cwd: string;
+    explicitParams?: ExplicitParams;
+    tsConfigLoader?: TsConfigLoader;
+}
+export interface ConfigLoaderSuccessResult {
+    resultType: "success";
+    configFileAbsolutePath: string;
+    baseUrl: string;
+    absoluteBaseUrl: string;
+    paths: {
+        [key: string]: Array<string>;
+    };
+    mainFields?: Array<string>;
+    addMatchAll?: boolean;
+}
+export interface ConfigLoaderFailResult {
+    resultType: "failed";
+    message: string;
+}
+export declare type ConfigLoaderResult = ConfigLoaderSuccessResult | ConfigLoaderFailResult;
+export declare function loadConfig(cwd?: string): ConfigLoaderResult;
+export declare function configLoader({ cwd, explicitParams, tsConfigLoader, }: ConfigLoaderParams): ConfigLoaderResult;
Index: frontend/node_modules/tsconfig-paths/lib/config-loader.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/config-loader.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/config-loader.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,57 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.configLoader = exports.loadConfig = void 0;
+var TsConfigLoader2 = require("./tsconfig-loader");
+var path = require("path");
+var options_1 = require("./options");
+function loadConfig(cwd) {
+    if (cwd === void 0) { cwd = options_1.options.cwd; }
+    return configLoader({ cwd: cwd });
+}
+exports.loadConfig = loadConfig;
+function configLoader(_a) {
+    var cwd = _a.cwd, explicitParams = _a.explicitParams, _b = _a.tsConfigLoader, tsConfigLoader = _b === void 0 ? TsConfigLoader2.tsConfigLoader : _b;
+    if (explicitParams) {
+        // tslint:disable-next-line:no-shadowed-variable
+        var absoluteBaseUrl_1 = path.isAbsolute(explicitParams.baseUrl)
+            ? explicitParams.baseUrl
+            : path.join(cwd, explicitParams.baseUrl);
+        return {
+            resultType: "success",
+            configFileAbsolutePath: "",
+            baseUrl: explicitParams.baseUrl,
+            absoluteBaseUrl: absoluteBaseUrl_1,
+            paths: explicitParams.paths,
+            mainFields: explicitParams.mainFields,
+            addMatchAll: explicitParams.addMatchAll,
+        };
+    }
+    // Load tsconfig and create path matching function
+    var loadResult = tsConfigLoader({
+        cwd: cwd,
+        getEnv: function (key) { return process.env[key]; },
+    });
+    if (!loadResult.tsConfigPath) {
+        return {
+            resultType: "failed",
+            message: "Couldn't find tsconfig.json",
+        };
+    }
+    if (!loadResult.baseUrl) {
+        return {
+            resultType: "failed",
+            message: "Missing baseUrl in compilerOptions",
+        };
+    }
+    var tsConfigDir = path.dirname(loadResult.tsConfigPath);
+    var absoluteBaseUrl = path.join(tsConfigDir, loadResult.baseUrl);
+    return {
+        resultType: "success",
+        configFileAbsolutePath: loadResult.tsConfigPath,
+        baseUrl: loadResult.baseUrl,
+        absoluteBaseUrl: absoluteBaseUrl,
+        paths: loadResult.paths || {},
+    };
+}
+exports.configLoader = configLoader;
+//# sourceMappingURL=config-loader.js.map
Index: frontend/node_modules/tsconfig-paths/lib/config-loader.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/config-loader.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/config-loader.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AACrD,2BAA6B;AAC7B,qCAAoC;AAsCpC,SAAgB,UAAU,CAAC,GAAyB;IAAzB,oBAAA,EAAA,MAAc,iBAAO,CAAC,GAAG;IAClD,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY,CAAC,EAIR;QAHnB,GAAG,SAAA,EACH,cAAc,oBAAA,EACd,sBAA+C,EAA/C,cAAc,mBAAG,eAAe,CAAC,cAAc,KAAA;IAE/C,IAAI,cAAc,EAAE;QAClB,gDAAgD;QAChD,IAAM,iBAAe,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC;YAC7D,CAAC,CAAC,cAAc,CAAC,OAAO;YACxB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAE3C,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,sBAAsB,EAAE,EAAE;YAC1B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,eAAe,mBAAA;YACf,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,WAAW,EAAE,cAAc,CAAC,WAAW;SACxC,CAAC;KACH;IAED,kDAAkD;IAClD,IAAM,UAAU,GAAG,cAAc,CAAC;QAChC,GAAG,KAAA;QACH,MAAM,EAAE,UAAC,GAAW,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB;KAC1C,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;QAC5B,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,6BAA6B;SACvC,CAAC;KACH;IAED,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QACvB,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,oCAAoC;SAC9C,CAAC;KACH;IAED,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnE,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,sBAAsB,EAAE,UAAU,CAAC,YAAY;QAC/C,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,eAAe,iBAAA;QACf,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC;AApDD,oCAoDC"}
Index: frontend/node_modules/tsconfig-paths/lib/filesystem.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/filesystem.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/filesystem.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,33 @@
+/**
+ * Typing for the fields of package.json we care about
+ */
+export interface PackageJson {
+    [key: string]: string;
+}
+/**
+ * A function that json from a file
+ */
+export interface ReadJsonSync {
+    (packageJsonPath: string): any | undefined;
+}
+export interface FileExistsSync {
+    (name: string): boolean;
+}
+export interface FileExistsAsync {
+    (path: string, callback: (err?: Error, exists?: boolean) => void): void;
+}
+export interface ReadJsonAsyncCallback {
+    (err?: Error, content?: any): void;
+}
+export interface ReadJsonAsync {
+    (path: string, callback: ReadJsonAsyncCallback): void;
+}
+export declare function fileExistsSync(path: string): boolean;
+/**
+ * Reads package.json from disk
+ * @param file Path to package.json
+ */
+export declare function readJsonFromDiskSync(packageJsonPath: string): any | undefined;
+export declare function readJsonFromDiskAsync(path: string, callback: (err?: Error, content?: any) => void): void;
+export declare function fileExistsAsync(path2: string, callback2: (err?: Error, exists?: boolean) => void): void;
+export declare function removeExtension(path: string): string;
Index: frontend/node_modules/tsconfig-paths/lib/filesystem.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/filesystem.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/filesystem.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,55 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.removeExtension = exports.fileExistsAsync = exports.readJsonFromDiskAsync = exports.readJsonFromDiskSync = exports.fileExistsSync = void 0;
+var fs = require("fs");
+function fileExistsSync(path) {
+    try {
+        var stats = fs.statSync(path);
+        return stats.isFile();
+    }
+    catch (err) {
+        // If error, assume file did not exist
+        return false;
+    }
+}
+exports.fileExistsSync = fileExistsSync;
+/**
+ * Reads package.json from disk
+ * @param file Path to package.json
+ */
+// tslint:disable-next-line:no-any
+function readJsonFromDiskSync(packageJsonPath) {
+    if (!fs.existsSync(packageJsonPath)) {
+        return undefined;
+    }
+    return require(packageJsonPath);
+}
+exports.readJsonFromDiskSync = readJsonFromDiskSync;
+function readJsonFromDiskAsync(path, 
+// tslint:disable-next-line:no-any
+callback) {
+    fs.readFile(path, "utf8", function (err, result) {
+        // If error, assume file did not exist
+        if (err || !result) {
+            return callback();
+        }
+        var json = JSON.parse(result);
+        return callback(undefined, json);
+    });
+}
+exports.readJsonFromDiskAsync = readJsonFromDiskAsync;
+function fileExistsAsync(path2, callback2) {
+    fs.stat(path2, function (err, stats) {
+        if (err) {
+            // If error assume file does not exist
+            return callback2(undefined, false);
+        }
+        callback2(undefined, stats ? stats.isFile() : false);
+    });
+}
+exports.fileExistsAsync = fileExistsAsync;
+function removeExtension(path) {
+    return path.substring(0, path.lastIndexOf(".")) || path;
+}
+exports.removeExtension = removeExtension;
+//# sourceMappingURL=filesystem.js.map
Index: frontend/node_modules/tsconfig-paths/lib/filesystem.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/filesystem.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/filesystem.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AAkCzB,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI;QACF,IAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,sCAAsC;QACtC,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AARD,wCAQC;AAED;;;GAGG;AACH,kCAAkC;AAClC,SAAgB,oBAAoB,CAAC,eAAuB;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;QACnC,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC;AAClC,CAAC;AALD,oDAKC;AAED,SAAgB,qBAAqB,CACnC,IAAY;AACZ,kCAAkC;AAClC,QAA8C;IAE9C,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAC,GAAG,EAAE,MAAM;QACpC,sCAAsC;QACtC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YAClB,OAAO,QAAQ,EAAE,CAAC;SACnB;QACD,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,sDAaC;AAED,SAAgB,eAAe,CAC7B,KAAa,EACb,SAAkD;IAElD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,GAAU,EAAE,KAAe;QACzC,IAAI,GAAG,EAAE;YACP,sCAAsC;YACtC,OAAO,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACpC;QACD,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAXD,0CAWC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1D,CAAC;AAFD,0CAEC"}
Index: frontend/node_modules/tsconfig-paths/lib/index.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/index.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,5 @@
+export { createMatchPath, matchFromAbsolutePaths, MatchPath, } from "./match-path-sync";
+export { createMatchPathAsync, matchFromAbsolutePathsAsync, MatchPathAsync, } from "./match-path-async";
+export { register } from "./register";
+export { loadConfig, ConfigLoaderResult, ConfigLoaderSuccessResult, ConfigLoaderFailResult, } from "./config-loader";
+export { ReadJsonSync, ReadJsonAsync, FileExistsSync, FileExistsAsync, } from "./filesystem";
Index: frontend/node_modules/tsconfig-paths/lib/index.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.loadConfig = exports.register = exports.matchFromAbsolutePathsAsync = exports.createMatchPathAsync = exports.matchFromAbsolutePaths = exports.createMatchPath = void 0;
+// register is used from register.js in root dir
+var match_path_sync_1 = require("./match-path-sync");
+Object.defineProperty(exports, "createMatchPath", { enumerable: true, get: function () { return match_path_sync_1.createMatchPath; } });
+Object.defineProperty(exports, "matchFromAbsolutePaths", { enumerable: true, get: function () { return match_path_sync_1.matchFromAbsolutePaths; } });
+var match_path_async_1 = require("./match-path-async");
+Object.defineProperty(exports, "createMatchPathAsync", { enumerable: true, get: function () { return match_path_async_1.createMatchPathAsync; } });
+Object.defineProperty(exports, "matchFromAbsolutePathsAsync", { enumerable: true, get: function () { return match_path_async_1.matchFromAbsolutePathsAsync; } });
+var register_1 = require("./register");
+Object.defineProperty(exports, "register", { enumerable: true, get: function () { return register_1.register; } });
+var config_loader_1 = require("./config-loader");
+Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_loader_1.loadConfig; } });
+//# sourceMappingURL=index.js.map
Index: frontend/node_modules/tsconfig-paths/lib/index.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/index.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAChD,qDAI2B;AAHzB,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AAGxB,uDAI4B;AAH1B,wHAAA,oBAAoB,OAAA;AACpB,+HAAA,2BAA2B,OAAA;AAG7B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAKyB;AAJvB,2GAAA,UAAU,OAAA"}
Index: frontend/node_modules/tsconfig-paths/lib/mapping-entry.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/mapping-entry.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/mapping-entry.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,17 @@
+export interface MappingEntry {
+    readonly pattern: string;
+    readonly paths: ReadonlyArray<string>;
+}
+export interface Paths {
+    readonly [key: string]: ReadonlyArray<string>;
+}
+/**
+ * Converts an absolute baseUrl and paths to an array of absolute mapping entries.
+ * The array is sorted by longest prefix.
+ * Having an array with entries allows us to keep a sorting order rather than
+ * sort by keys each time we use the mappings.
+ * @param absoluteBaseUrl
+ * @param paths
+ * @param addMatchAll
+ */
+export declare function getAbsoluteMappingEntries(absoluteBaseUrl: string, paths: Paths, addMatchAll: boolean): ReadonlyArray<MappingEntry>;
Index: frontend/node_modules/tsconfig-paths/lib/mapping-entry.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/mapping-entry.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/mapping-entry.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,53 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getAbsoluteMappingEntries = void 0;
+var path = require("path");
+/**
+ * Converts an absolute baseUrl and paths to an array of absolute mapping entries.
+ * The array is sorted by longest prefix.
+ * Having an array with entries allows us to keep a sorting order rather than
+ * sort by keys each time we use the mappings.
+ * @param absoluteBaseUrl
+ * @param paths
+ * @param addMatchAll
+ */
+function getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll) {
+    // Resolve all paths to absolute form once here, and sort them by
+    // longest prefix once here, this saves time on each request later.
+    // We need to put them in an array to preserve the sorting order.
+    var sortedKeys = sortByLongestPrefix(Object.keys(paths));
+    var absolutePaths = [];
+    for (var _i = 0, sortedKeys_1 = sortedKeys; _i < sortedKeys_1.length; _i++) {
+        var key = sortedKeys_1[_i];
+        absolutePaths.push({
+            pattern: key,
+            paths: paths[key].map(function (pathToResolve) {
+                return path.join(absoluteBaseUrl, pathToResolve);
+            }),
+        });
+    }
+    // If there is no match-all path specified in the paths section of tsconfig, then try to match
+    // all paths relative to baseUrl, this is how typescript works.
+    if (!paths["*"] && addMatchAll) {
+        absolutePaths.push({
+            pattern: "*",
+            paths: ["".concat(absoluteBaseUrl.replace(/\/$/, ""), "/*")],
+        });
+    }
+    return absolutePaths;
+}
+exports.getAbsoluteMappingEntries = getAbsoluteMappingEntries;
+/**
+ * Sort path patterns.
+ * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.
+ */
+function sortByLongestPrefix(arr) {
+    return arr
+        .concat()
+        .sort(function (a, b) { return getPrefixLength(b) - getPrefixLength(a); });
+}
+function getPrefixLength(pattern) {
+    var prefixLength = pattern.indexOf("*");
+    return pattern.substr(0, prefixLength).length;
+}
+//# sourceMappingURL=mapping-entry.js.map
Index: frontend/node_modules/tsconfig-paths/lib/mapping-entry.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/mapping-entry.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/mapping-entry.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"mapping-entry.js","sourceRoot":"","sources":["../src/mapping-entry.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAW7B;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CACvC,eAAuB,EACvB,KAAY,EACZ,WAAoB;IAEpB,iEAAiE;IACjE,mEAAmE;IACnE,iEAAiE;IACjE,IAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,IAAM,aAAa,GAAwB,EAAE,CAAC;IAC9C,KAAkB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;QAAzB,IAAM,GAAG,mBAAA;QACZ,aAAa,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,aAAa;gBAClC,OAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;YAAzC,CAAyC,CAC1C;SACF,CAAC,CAAC;KACJ;IACD,8FAA8F;IAC9F,+DAA+D;IAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,EAAE;QAC9B,aAAa,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,CAAC,UAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAI,CAAC;SACnD,CAAC,CAAC;KACJ;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AA5BD,8DA4BC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,GAAkB;IAC7C,OAAO,GAAG;SACP,MAAM,EAAE;SACR,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS,IAAK,OAAA,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAvC,CAAuC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,IAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC;AAChD,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/match-path-async.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-async.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-async.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+import * as MappingEntry from "./mapping-entry";
+import * as Filesystem from "./filesystem";
+/**
+ * Function that can match a path async
+ */
+export interface MatchPathAsync {
+    (requestedModule: string, readJson: Filesystem.ReadJsonAsync | undefined, fileExists: Filesystem.FileExistsAsync | undefined, extensions: ReadonlyArray<string> | undefined, callback: MatchPathAsyncCallback): void;
+}
+export interface MatchPathAsyncCallback {
+    (err?: Error, path?: string): void;
+}
+/**
+ * See the sync version for docs.
+ */
+export declare function createMatchPathAsync(absoluteBaseUrl: string, paths: {
+    [key: string]: Array<string>;
+}, mainFields?: string[], addMatchAll?: boolean): MatchPathAsync;
+/**
+ * See the sync version for docs.
+ */
+export declare function matchFromAbsolutePathsAsync(absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>, requestedModule: string, readJson: Filesystem.ReadJsonAsync | undefined, fileExists: Filesystem.FileExistsAsync | undefined, extensions: readonly string[] | undefined, callback: MatchPathAsyncCallback, mainFields?: string[]): void;
Index: frontend/node_modules/tsconfig-paths/lib/match-path-async.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-async.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-async.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,113 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.matchFromAbsolutePathsAsync = exports.createMatchPathAsync = void 0;
+var path = require("path");
+var TryPath = require("./try-path");
+var MappingEntry = require("./mapping-entry");
+var Filesystem = require("./filesystem");
+/**
+ * See the sync version for docs.
+ */
+function createMatchPathAsync(absoluteBaseUrl, paths, mainFields, addMatchAll) {
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    if (addMatchAll === void 0) { addMatchAll = true; }
+    var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
+    return function (requestedModule, readJson, fileExists, extensions, callback) {
+        return matchFromAbsolutePathsAsync(absolutePaths, requestedModule, readJson, fileExists, extensions, callback, mainFields);
+    };
+}
+exports.createMatchPathAsync = createMatchPathAsync;
+/**
+ * See the sync version for docs.
+ */
+function matchFromAbsolutePathsAsync(absolutePathMappings, requestedModule, readJson, fileExists, extensions, callback, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskAsync; }
+    if (fileExists === void 0) { fileExists = Filesystem.fileExistsAsync; }
+    if (extensions === void 0) { extensions = Object.keys(require.extensions); }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
+    if (!tryPaths) {
+        return callback();
+    }
+    findFirstExistingPath(tryPaths, readJson, fileExists, callback, 0, mainFields);
+}
+exports.matchFromAbsolutePathsAsync = matchFromAbsolutePathsAsync;
+function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index) {
+    if (index === void 0) { index = 0; }
+    if (index >= mainFields.length) {
+        return doneCallback(undefined, undefined);
+    }
+    var tryNext = function () {
+        return findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExistsAsync, doneCallback, index + 1);
+    };
+    var mainFieldMapping = packageJson[mainFields[index]];
+    if (typeof mainFieldMapping !== "string") {
+        // Skip mappings that are not pointers to replacement files
+        return tryNext();
+    }
+    var mappedFilePath = path.join(path.dirname(packageJsonPath), mainFieldMapping);
+    fileExistsAsync(mappedFilePath, function (err, exists) {
+        if (err) {
+            return doneCallback(err);
+        }
+        if (exists) {
+            return doneCallback(undefined, mappedFilePath);
+        }
+        return tryNext();
+    });
+}
+// Recursive loop to probe for physical files
+function findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index, mainFields) {
+    if (index === void 0) { index = 0; }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPath = tryPaths[index];
+    if (tryPath.type === "file" ||
+        tryPath.type === "extension" ||
+        tryPath.type === "index") {
+        fileExists(tryPath.path, function (err, exists) {
+            if (err) {
+                return doneCallback(err);
+            }
+            if (exists) {
+                return doneCallback(undefined, TryPath.getStrippedPath(tryPath));
+            }
+            if (index === tryPaths.length - 1) {
+                return doneCallback();
+            }
+            // Continue with the next path
+            return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+        });
+    }
+    else if (tryPath.type === "package") {
+        readJson(tryPath.path, function (err, packageJson) {
+            if (err) {
+                return doneCallback(err);
+            }
+            if (packageJson) {
+                return findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists, function (mainFieldErr, mainFieldMappedFile) {
+                    if (mainFieldErr) {
+                        return doneCallback(mainFieldErr);
+                    }
+                    if (mainFieldMappedFile) {
+                        return doneCallback(undefined, mainFieldMappedFile);
+                    }
+                    // No field in package json was a valid option. Continue with the next path.
+                    return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+                });
+            }
+            // This is async code, we need to return unconditionally, otherwise the code still falls
+            // through and keeps recursing. While this might work in general, libraries that use neo-async
+            // like Webpack will actually not allow you to call the same callback twice.
+            //
+            // An example of where this caused issues:
+            // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11
+            //
+            // Continue with the next path
+            return findFirstExistingPath(tryPaths, readJson, fileExists, doneCallback, index + 1, mainFields);
+        });
+    }
+    else {
+        TryPath.exhaustiveTypeException(tryPath.type);
+    }
+}
+//# sourceMappingURL=match-path-async.js.map
Index: frontend/node_modules/tsconfig-paths/lib/match-path-async.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-async.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-async.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"match-path-async.js","sourceRoot":"","sources":["../src/match-path-async.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/match-path-sync.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-sync.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-sync.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,30 @@
+import * as Filesystem from "./filesystem";
+import * as MappingEntry from "./mapping-entry";
+/**
+ * Function that can match a path
+ */
+export interface MatchPath {
+    (requestedModule: string, readJson?: Filesystem.ReadJsonSync, fileExists?: (name: string) => boolean, extensions?: ReadonlyArray<string>): string | undefined;
+}
+/**
+ * Creates a function that can resolve paths according to tsconfig paths property.
+ * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.
+ * @param paths The paths as specified in tsconfig.
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @param addMatchAll Add a match-all "*" rule if none is present
+ * @returns a function that can resolve paths.
+ */
+export declare function createMatchPath(absoluteBaseUrl: string, paths: {
+    [key: string]: Array<string>;
+}, mainFields?: string[], addMatchAll?: boolean): MatchPath;
+/**
+ * Finds a path from tsconfig that matches a module load request.
+ * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.
+ * @param requestedModule The required module name.
+ * @param readJson Function that can read json from a path (useful for testing).
+ * @param fileExists Function that checks for existence of a file at a path (useful for testing).
+ * @param extensions File extensions to probe for (useful for testing).
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @returns the found path, or undefined if no path was found.
+ */
+export declare function matchFromAbsolutePaths(absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>, requestedModule: string, readJson?: Filesystem.ReadJsonSync, fileExists?: Filesystem.FileExistsSync, extensions?: Array<string>, mainFields?: string[]): string | undefined;
Index: frontend/node_modules/tsconfig-paths/lib/match-path-sync.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-sync.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-sync.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,87 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.matchFromAbsolutePaths = exports.createMatchPath = void 0;
+var path = require("path");
+var Filesystem = require("./filesystem");
+var MappingEntry = require("./mapping-entry");
+var TryPath = require("./try-path");
+/**
+ * Creates a function that can resolve paths according to tsconfig paths property.
+ * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.
+ * @param paths The paths as specified in tsconfig.
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @param addMatchAll Add a match-all "*" rule if none is present
+ * @returns a function that can resolve paths.
+ */
+function createMatchPath(absoluteBaseUrl, paths, mainFields, addMatchAll) {
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    if (addMatchAll === void 0) { addMatchAll = true; }
+    var absolutePaths = MappingEntry.getAbsoluteMappingEntries(absoluteBaseUrl, paths, addMatchAll);
+    return function (requestedModule, readJson, fileExists, extensions) {
+        return matchFromAbsolutePaths(absolutePaths, requestedModule, readJson, fileExists, extensions, mainFields);
+    };
+}
+exports.createMatchPath = createMatchPath;
+/**
+ * Finds a path from tsconfig that matches a module load request.
+ * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.
+ * @param requestedModule The required module name.
+ * @param readJson Function that can read json from a path (useful for testing).
+ * @param fileExists Function that checks for existence of a file at a path (useful for testing).
+ * @param extensions File extensions to probe for (useful for testing).
+ * @param mainFields A list of package.json field names to try when resolving module files.
+ * @returns the found path, or undefined if no path was found.
+ */
+function matchFromAbsolutePaths(absolutePathMappings, requestedModule, readJson, fileExists, extensions, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskSync; }
+    if (fileExists === void 0) { fileExists = Filesystem.fileExistsSync; }
+    if (extensions === void 0) { extensions = Object.keys(require.extensions); }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    var tryPaths = TryPath.getPathsToTry(extensions, absolutePathMappings, requestedModule);
+    if (!tryPaths) {
+        return undefined;
+    }
+    return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);
+}
+exports.matchFromAbsolutePaths = matchFromAbsolutePaths;
+function findFirstExistingMainFieldMappedFile(packageJson, mainFields, packageJsonPath, fileExists) {
+    for (var index = 0; index < mainFields.length; index++) {
+        var mainFieldName = mainFields[index];
+        var candidateMapping = packageJson[mainFieldName];
+        if (candidateMapping && typeof candidateMapping === "string") {
+            var candidateFilePath = path.join(path.dirname(packageJsonPath), candidateMapping);
+            if (fileExists(candidateFilePath)) {
+                return candidateFilePath;
+            }
+        }
+    }
+    return undefined;
+}
+function findFirstExistingPath(tryPaths, readJson, fileExists, mainFields) {
+    if (readJson === void 0) { readJson = Filesystem.readJsonFromDiskSync; }
+    if (mainFields === void 0) { mainFields = ["main"]; }
+    for (var _i = 0, tryPaths_1 = tryPaths; _i < tryPaths_1.length; _i++) {
+        var tryPath = tryPaths_1[_i];
+        if (tryPath.type === "file" ||
+            tryPath.type === "extension" ||
+            tryPath.type === "index") {
+            if (fileExists(tryPath.path)) {
+                return TryPath.getStrippedPath(tryPath);
+            }
+        }
+        else if (tryPath.type === "package") {
+            var packageJson = readJson(tryPath.path);
+            if (packageJson) {
+                var mainFieldMappedFile = findFirstExistingMainFieldMappedFile(packageJson, mainFields, tryPath.path, fileExists);
+                if (mainFieldMappedFile) {
+                    return mainFieldMappedFile;
+                }
+            }
+        }
+        else {
+            TryPath.exhaustiveTypeException(tryPath.type);
+        }
+    }
+    return undefined;
+}
+//# sourceMappingURL=match-path-sync.js.map
Index: frontend/node_modules/tsconfig-paths/lib/match-path-sync.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/match-path-sync.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/match-path-sync.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"match-path-sync.js","sourceRoot":"","sources":["../src/match-path-sync.ts"],"names":[],"mappings":"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"}
Index: frontend/node_modules/tsconfig-paths/lib/options.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/options.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/options.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,4 @@
+export interface Options {
+    cwd: string;
+}
+export declare const options: Options;
Index: frontend/node_modules/tsconfig-paths/lib/options.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/options.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.options = void 0;
+var minimist = require("minimist");
+var argv = minimist(process.argv.slice(2), {
+    string: ["project"],
+    alias: {
+        project: ["P"],
+    },
+});
+var project = argv && argv.project;
+exports.options = {
+    cwd: project || process.cwd(),
+};
+//# sourceMappingURL=options.js.map
Index: frontend/node_modules/tsconfig-paths/lib/options.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/options.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,IAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC3C,MAAM,EAAE,CAAC,SAAS,CAAC;IACnB,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,GAAG,CAAC;KACf;CACF,CAAC,CAAC;AAEH,IAAM,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AAMxB,QAAA,OAAO,GAAY;IAC9B,GAAG,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;CAC9B,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/register.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/register.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/register.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,6 @@
+import { ExplicitParams } from "./config-loader";
+/**
+ * Installs a custom module load function that can adhere to paths in tsconfig.
+ * Returns a function to undo paths registration.
+ */
+export declare function register(explicitParams: ExplicitParams): () => void;
Index: frontend/node_modules/tsconfig-paths/lib/register.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/register.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/register.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,93 @@
+"use strict";
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+        if (ar || !(i in from)) {
+            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+            ar[i] = from[i];
+        }
+    }
+    return to.concat(ar || Array.prototype.slice.call(from));
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.register = void 0;
+var match_path_sync_1 = require("./match-path-sync");
+var config_loader_1 = require("./config-loader");
+var options_1 = require("./options");
+var noOp = function () { return void 0; };
+function getCoreModules(builtinModules) {
+    builtinModules = builtinModules || [
+        "assert",
+        "buffer",
+        "child_process",
+        "cluster",
+        "crypto",
+        "dgram",
+        "dns",
+        "domain",
+        "events",
+        "fs",
+        "http",
+        "https",
+        "net",
+        "os",
+        "path",
+        "punycode",
+        "querystring",
+        "readline",
+        "stream",
+        "string_decoder",
+        "tls",
+        "tty",
+        "url",
+        "util",
+        "v8",
+        "vm",
+        "zlib",
+    ];
+    var coreModules = {};
+    for (var _i = 0, builtinModules_1 = builtinModules; _i < builtinModules_1.length; _i++) {
+        var module_1 = builtinModules_1[_i];
+        coreModules[module_1] = true;
+    }
+    return coreModules;
+}
+/**
+ * Installs a custom module load function that can adhere to paths in tsconfig.
+ * Returns a function to undo paths registration.
+ */
+function register(explicitParams) {
+    var configLoaderResult = (0, config_loader_1.configLoader)({
+        cwd: options_1.options.cwd,
+        explicitParams: explicitParams,
+    });
+    if (configLoaderResult.resultType === "failed") {
+        console.warn("".concat(configLoaderResult.message, ". tsconfig-paths will be skipped"));
+        return noOp;
+    }
+    var matchPath = (0, match_path_sync_1.createMatchPath)(configLoaderResult.absoluteBaseUrl, configLoaderResult.paths, configLoaderResult.mainFields, configLoaderResult.addMatchAll);
+    // Patch node's module loading
+    // tslint:disable-next-line:no-require-imports variable-name
+    var Module = require("module");
+    var originalResolveFilename = Module._resolveFilename;
+    var coreModules = getCoreModules(Module.builtinModules);
+    // tslint:disable-next-line:no-any
+    Module._resolveFilename = function (request, _parent) {
+        var isCoreModule = coreModules.hasOwnProperty(request);
+        if (!isCoreModule) {
+            var found = matchPath(request);
+            if (found) {
+                var modifiedArguments = __spreadArray([found], [].slice.call(arguments, 1), true); // Passes all arguments. Even those that is not specified above.
+                // tslint:disable-next-line:no-invalid-this
+                return originalResolveFilename.apply(this, modifiedArguments);
+            }
+        }
+        // tslint:disable-next-line:no-invalid-this
+        return originalResolveFilename.apply(this, arguments);
+    };
+    return function () {
+        // Return node's module loading to original state.
+        Module._resolveFilename = originalResolveFilename;
+    };
+}
+exports.register = register;
+//# sourceMappingURL=register.js.map
Index: frontend/node_modules/tsconfig-paths/lib/register.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/register.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/register.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAoD;AACpD,iDAA+D;AAC/D,qCAAoC;AAEpC,IAAM,IAAI,GAAG,cAAY,OAAA,KAAK,CAAC,EAAN,CAAM,CAAC;AAEhC,SAAS,cAAc,CACrB,cAAoC;IAEpC,cAAc,GAAG,cAAc,IAAI;QACjC,QAAQ;QACR,QAAQ;QACR,eAAe;QACf,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,UAAU;QACV,aAAa;QACb,UAAU;QACV,QAAQ;QACR,gBAAgB;QAChB,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;KACP,CAAC;IAEF,IAAM,WAAW,GAA+B,EAAE,CAAC;IACnD,KAAmB,UAAc,EAAd,iCAAc,EAAd,4BAAc,EAAd,IAAc,EAAE;QAA9B,IAAI,QAAM,uBAAA;QACb,WAAW,CAAC,QAAM,CAAC,GAAG,IAAI,CAAC;KAC5B;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,cAA8B;IACrD,IAAM,kBAAkB,GAAG,IAAA,4BAAY,EAAC;QACtC,GAAG,EAAE,iBAAO,CAAC,GAAG;QAChB,cAAc,gBAAA;KACf,CAAC,CAAC;IAEH,IAAI,kBAAkB,CAAC,UAAU,KAAK,QAAQ,EAAE;QAC9C,OAAO,CAAC,IAAI,CACV,UAAG,kBAAkB,CAAC,OAAO,qCAAkC,CAChE,CAAC;QAEF,OAAO,IAAI,CAAC;KACb;IAED,IAAM,SAAS,GAAG,IAAA,iCAAe,EAC/B,kBAAkB,CAAC,eAAe,EAClC,kBAAkB,CAAC,KAAK,EACxB,kBAAkB,CAAC,UAAU,EAC7B,kBAAkB,CAAC,WAAW,CAC/B,CAAC;IAEF,8BAA8B;IAC9B,4DAA4D;IAC5D,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAM,uBAAuB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACxD,IAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1D,kCAAkC;IAClC,MAAM,CAAC,gBAAgB,GAAG,UAAU,OAAe,EAAE,OAAY;QAC/D,IAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,EAAE;YACjB,IAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,KAAK,EAAE;gBACT,IAAM,iBAAiB,kBAAI,KAAK,GAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,OAAC,CAAC,CAAC,gEAAgE;gBACnI,2CAA2C;gBAC3C,OAAO,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;aAC/D;SACF;QACD,2CAA2C;QAC3C,OAAO,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,OAAO;QACL,kDAAkD;QAClD,MAAM,CAAC,gBAAgB,GAAG,uBAAuB,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AA7CD,4BA6CC"}
Index: frontend/node_modules/tsconfig-paths/lib/try-path.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/try-path.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/try-path.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,15 @@
+import { MappingEntry } from "./mapping-entry";
+export interface TryPath {
+    readonly type: "file" | "extension" | "index" | "package";
+    readonly path: string;
+}
+/**
+ * Builds a list of all physical paths to try by:
+ * 1. Check for file named exactly as request.
+ * 2. Check for files named as request ending in any of the extensions.
+ * 3. Check for file specified in package.json's main property.
+ * 4. Check for files named as request ending in "index" with any of the extensions.
+ */
+export declare function getPathsToTry(extensions: ReadonlyArray<string>, absolutePathMappings: ReadonlyArray<MappingEntry>, requestedModule: string): ReadonlyArray<TryPath> | undefined;
+export declare function getStrippedPath(tryPath: TryPath): string;
+export declare function exhaustiveTypeException(check: never): never;
Index: frontend/node_modules/tsconfig-paths/lib/try-path.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/try-path.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/try-path.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,90 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.exhaustiveTypeException = exports.getStrippedPath = exports.getPathsToTry = void 0;
+var path = require("path");
+var path_1 = require("path");
+var filesystem_1 = require("./filesystem");
+/**
+ * Builds a list of all physical paths to try by:
+ * 1. Check for file named exactly as request.
+ * 2. Check for files named as request ending in any of the extensions.
+ * 3. Check for file specified in package.json's main property.
+ * 4. Check for files named as request ending in "index" with any of the extensions.
+ */
+function getPathsToTry(extensions, absolutePathMappings, requestedModule) {
+    if (!absolutePathMappings || !requestedModule || requestedModule[0] === ".") {
+        return undefined;
+    }
+    var pathsToTry = [];
+    for (var _i = 0, absolutePathMappings_1 = absolutePathMappings; _i < absolutePathMappings_1.length; _i++) {
+        var entry = absolutePathMappings_1[_i];
+        var starMatch = entry.pattern === requestedModule
+            ? ""
+            : matchStar(entry.pattern, requestedModule);
+        if (starMatch !== undefined) {
+            var _loop_1 = function (physicalPathPattern) {
+                var physicalPath = physicalPathPattern.replace("*", starMatch);
+                pathsToTry.push({ type: "file", path: physicalPath });
+                pathsToTry.push.apply(pathsToTry, extensions.map(function (e) { return ({ type: "extension", path: physicalPath + e }); }));
+                pathsToTry.push({
+                    type: "package",
+                    path: path.join(physicalPath, "/package.json"),
+                });
+                var indexPath = path.join(physicalPath, "/index");
+                pathsToTry.push.apply(pathsToTry, extensions.map(function (e) { return ({ type: "index", path: indexPath + e }); }));
+            };
+            for (var _a = 0, _b = entry.paths; _a < _b.length; _a++) {
+                var physicalPathPattern = _b[_a];
+                _loop_1(physicalPathPattern);
+            }
+        }
+    }
+    return pathsToTry.length === 0 ? undefined : pathsToTry;
+}
+exports.getPathsToTry = getPathsToTry;
+// Not sure why we don't just return the full found path?
+function getStrippedPath(tryPath) {
+    return tryPath.type === "index"
+        ? (0, path_1.dirname)(tryPath.path)
+        : tryPath.type === "file"
+            ? tryPath.path
+            : tryPath.type === "extension"
+                ? (0, filesystem_1.removeExtension)(tryPath.path)
+                : tryPath.type === "package"
+                    ? tryPath.path
+                    : exhaustiveTypeException(tryPath.type);
+}
+exports.getStrippedPath = getStrippedPath;
+function exhaustiveTypeException(check) {
+    throw new Error("Unknown type ".concat(check));
+}
+exports.exhaustiveTypeException = exhaustiveTypeException;
+/**
+ * Matches pattern with a single star against search.
+ * Star must match at least one character to be considered a match.
+ * @param patttern for example "foo*"
+ * @param search for example "fooawesomebar"
+ * @returns the part of search that * matches, or undefined if no match.
+ */
+function matchStar(pattern, search) {
+    if (search.length < pattern.length) {
+        return undefined;
+    }
+    if (pattern === "*") {
+        return search;
+    }
+    var star = pattern.indexOf("*");
+    if (star === -1) {
+        return undefined;
+    }
+    var part1 = pattern.substring(0, star);
+    var part2 = pattern.substring(star + 1);
+    if (search.substr(0, star) !== part1) {
+        return undefined;
+    }
+    if (search.substr(search.length - part2.length) !== part2) {
+        return undefined;
+    }
+    return search.substr(star, search.length - part2.length);
+}
+//# sourceMappingURL=try-path.js.map
Index: frontend/node_modules/tsconfig-paths/lib/try-path.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/try-path.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/try-path.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"try-path.js","sourceRoot":"","sources":["../src/try-path.ts"],"names":[],"mappings":";;;AAAA,2BAA6B;AAE7B,6BAA+B;AAC/B,2CAA+C;AAO/C;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,UAAiC,EACjC,oBAAiD,EACjD,eAAuB;IAEvB,IAAI,CAAC,oBAAoB,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC3E,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,KAAoB,UAAoB,EAApB,6CAAoB,EAApB,kCAAoB,EAApB,IAAoB,EAAE;QAArC,IAAM,KAAK,6BAAA;QACd,IAAM,SAAS,GACb,KAAK,CAAC,OAAO,KAAK,eAAe;YAC/B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChD,IAAI,SAAS,KAAK,SAAS,EAAE;oCAChB,mBAAmB;gBAC5B,IAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACjE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACtD,UAAU,CAAC,IAAI,OAAf,UAAU,EACL,UAAU,CAAC,GAAG,CACf,UAAC,CAAC,IAAK,OAAA,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAc,CAAA,EAA1D,CAA0D,CAClE,EACD;gBACF,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC;iBAC/C,CAAC,CAAC;gBACH,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACpD,UAAU,CAAC,IAAI,OAAf,UAAU,EACL,UAAU,CAAC,GAAG,CACf,UAAC,CAAC,IAAK,OAAA,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAc,CAAA,EAAnD,CAAmD,CAC3D,EACD;;YAjBJ,KAAkC,UAAW,EAAX,KAAA,KAAK,CAAC,KAAK,EAAX,cAAW,EAAX,IAAW;gBAAxC,IAAM,mBAAmB,SAAA;wBAAnB,mBAAmB;aAkB7B;SACF;KACF;IACD,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC1D,CAAC;AAtCD,sCAsCC;AAED,yDAAyD;AACzD,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO;QAC7B,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YACzB,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;gBAC9B,CAAC,CAAC,IAAA,4BAAe,EAAC,OAAO,CAAC,IAAI,CAAC;gBAC/B,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;oBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI;oBACd,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAVD,0CAUC;AAED,SAAgB,uBAAuB,CAAC,KAAY;IAClD,MAAM,IAAI,KAAK,CAAC,uBAAgB,KAAK,CAAE,CAAC,CAAC;AAC3C,CAAC;AAFD,0DAEC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAChD,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;QAClC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC;KACf;IACD,IAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;QACf,OAAO,SAAS,CAAC;KAClB;IACD,IAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzC,IAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;QACzD,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC"}
Index: frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.d.ts	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,28 @@
+/**
+ * Typing for the parts of tsconfig that we care about
+ */
+export interface Tsconfig {
+    extends?: string | string[];
+    compilerOptions?: {
+        baseUrl?: string;
+        paths?: {
+            [key: string]: Array<string>;
+        };
+        strict?: boolean;
+    };
+}
+export interface TsConfigLoaderResult {
+    tsConfigPath: string | undefined;
+    baseUrl: string | undefined;
+    paths: {
+        [key: string]: Array<string>;
+    } | undefined;
+}
+export interface TsConfigLoaderParams {
+    getEnv: (key: string) => string | undefined;
+    cwd: string;
+    loadSync?(cwd: string, filename?: string, baseUrl?: string): TsConfigLoaderResult;
+}
+export declare function tsConfigLoader({ getEnv, cwd, loadSync, }: TsConfigLoaderParams): TsConfigLoaderResult;
+export declare function walkForTsConfig(directory: string, existsSync?: (path: string) => boolean): string | undefined;
+export declare function loadTsconfig(configFilePath: string, existsSync?: (path: string) => boolean, readFileSync?: (filename: string) => string): Tsconfig | undefined;
Index: frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,141 @@
+"use strict";
+var __assign = (this && this.__assign) || function () {
+    __assign = Object.assign || function(t) {
+        for (var s, i = 1, n = arguments.length; i < n; i++) {
+            s = arguments[i];
+            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+                t[p] = s[p];
+        }
+        return t;
+    };
+    return __assign.apply(this, arguments);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.loadTsconfig = exports.walkForTsConfig = exports.tsConfigLoader = void 0;
+var path = require("path");
+var fs = require("fs");
+// tslint:disable:no-require-imports
+var JSON5 = require("json5");
+var StripBom = require("strip-bom");
+function tsConfigLoader(_a) {
+    var getEnv = _a.getEnv, cwd = _a.cwd, _b = _a.loadSync, loadSync = _b === void 0 ? loadSyncDefault : _b;
+    var TS_NODE_PROJECT = getEnv("TS_NODE_PROJECT");
+    var TS_NODE_BASEURL = getEnv("TS_NODE_BASEURL");
+    // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory
+    // and also overrides baseURL if TS_NODE_BASEURL is available.
+    var loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);
+    return loadResult;
+}
+exports.tsConfigLoader = tsConfigLoader;
+function loadSyncDefault(cwd, filename, baseUrl) {
+    // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename
+    var configPath = resolveConfigPath(cwd, filename);
+    if (!configPath) {
+        return {
+            tsConfigPath: undefined,
+            baseUrl: undefined,
+            paths: undefined,
+        };
+    }
+    var config = loadTsconfig(configPath);
+    return {
+        tsConfigPath: configPath,
+        baseUrl: baseUrl ||
+            (config && config.compilerOptions && config.compilerOptions.baseUrl),
+        paths: config && config.compilerOptions && config.compilerOptions.paths,
+    };
+}
+function resolveConfigPath(cwd, filename) {
+    if (filename) {
+        var absolutePath = fs.lstatSync(filename).isDirectory()
+            ? path.resolve(filename, "./tsconfig.json")
+            : path.resolve(cwd, filename);
+        return absolutePath;
+    }
+    if (fs.statSync(cwd).isFile()) {
+        return path.resolve(cwd);
+    }
+    var configAbsolutePath = walkForTsConfig(cwd);
+    return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;
+}
+function walkForTsConfig(directory, existsSync) {
+    if (existsSync === void 0) { existsSync = fs.existsSync; }
+    var configPath = path.join(directory, "./tsconfig.json");
+    if (existsSync(configPath)) {
+        return configPath;
+    }
+    var parentDirectory = path.join(directory, "../");
+    // If we reached the top
+    if (directory === parentDirectory) {
+        return undefined;
+    }
+    return walkForTsConfig(parentDirectory, existsSync);
+}
+exports.walkForTsConfig = walkForTsConfig;
+function loadTsconfig(configFilePath, existsSync, readFileSync) {
+    if (existsSync === void 0) { existsSync = fs.existsSync; }
+    if (readFileSync === void 0) { readFileSync = function (filename) {
+        return fs.readFileSync(filename, "utf8");
+    }; }
+    if (!existsSync(configFilePath)) {
+        return undefined;
+    }
+    var configString = readFileSync(configFilePath);
+    var cleanedJson = StripBom(configString);
+    var config;
+    try {
+        config = JSON5.parse(cleanedJson);
+    }
+    catch (e) {
+        throw new Error("".concat(configFilePath, " is malformed ").concat(e.message));
+    }
+    var extendedConfig = config.extends;
+    if (extendedConfig) {
+        var base = void 0;
+        if (Array.isArray(extendedConfig)) {
+            base = extendedConfig.reduce(function (currBase, extendedConfigElement) {
+                return mergeTsconfigs(currBase, loadTsconfigFromExtends(configFilePath, extendedConfigElement, existsSync, readFileSync));
+            }, {});
+        }
+        else {
+            base = loadTsconfigFromExtends(configFilePath, extendedConfig, existsSync, readFileSync);
+        }
+        return mergeTsconfigs(base, config);
+    }
+    return config;
+}
+exports.loadTsconfig = loadTsconfig;
+/**
+ * Intended to be called only from loadTsconfig.
+ * Parameters don't have defaults because they should use the same as loadTsconfig.
+ */
+function loadTsconfigFromExtends(configFilePath, extendedConfigValue, 
+// eslint-disable-next-line no-shadow
+existsSync, readFileSync) {
+    var _a;
+    if (typeof extendedConfigValue === "string" &&
+        extendedConfigValue.indexOf(".json") === -1) {
+        extendedConfigValue += ".json";
+    }
+    var currentDir = path.dirname(configFilePath);
+    var extendedConfigPath = path.join(currentDir, extendedConfigValue);
+    if (extendedConfigValue.indexOf("/") !== -1 &&
+        extendedConfigValue.indexOf(".") !== -1 &&
+        !existsSync(extendedConfigPath)) {
+        extendedConfigPath = path.join(currentDir, "node_modules", extendedConfigValue);
+    }
+    var config = loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};
+    // baseUrl should be interpreted as relative to extendedConfigPath,
+    // but we need to update it so it is relative to the original tsconfig being loaded
+    if ((_a = config.compilerOptions) === null || _a === void 0 ? void 0 : _a.baseUrl) {
+        var extendsDir = path.dirname(extendedConfigValue);
+        config.compilerOptions.baseUrl = path.join(extendsDir, config.compilerOptions.baseUrl);
+    }
+    return config;
+}
+function mergeTsconfigs(base, config) {
+    base = base || {};
+    config = config || {};
+    return __assign(__assign(__assign({}, base), config), { compilerOptions: __assign(__assign({}, base.compilerOptions), config.compilerOptions) });
+}
+//# sourceMappingURL=tsconfig-loader.js.map
Index: frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js.map
===================================================================
--- frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/tsconfig-paths/lib/tsconfig-loader.js.map	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,1 @@
+{"version":3,"file":"tsconfig-loader.js","sourceRoot":"","sources":["../src/tsconfig-loader.ts"],"names":[],"mappings":"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"}
