Refactor project for typescript support

Update and move tsconfig.json from client/ to the root folder.
Update docker-compose.yml and .dockerignore.
Update client/webpack.config.js for better typescript support.

Change-Id: I3b0cc88f7c828dc5bfa5ac129352bf3d40189af3
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..34d02fe
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,32 @@
+{
+  "compilerOptions": {
+    /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+    "allowJs": true,
+    /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+    "esModuleInterop": true,
+    /* Ensure that casing is correct in imports. */
+    "forceConsistentCasingInFileNames": true,
+    /* Specify what module code is generated. */
+    "module": "ES2022",
+    /* Specify how TypeScript looks up a file from a given module specifier. */
+    "moduleResolution": "Node",
+    /* Specify an output folder for all emitted files. */
+    "outDir": "./dist/",
+    /* Skip type checking all .d.ts files. */
+    "skipLibCheck": true,
+    /* Create source map files for emitted JavaScript files. */
+    "sourceMap": true,
+    /* When type checking, take into account 'null' and 'undefined'. */
+    "strictNullChecks": true,
+    /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+    "target": "ES2017",
+  },
+  "include": [
+    "model",
+    "routes",
+    "app.ts",
+  ],
+  "ts-node": {
+    "esm": "true"
+  }
+}