{
  "compilerOptions": {
    "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
    "module": "commonjs", /* Specify what module code is generated. */
    "rootDir": "./src", /* Specify the root folder within your source files. */
    "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */
    "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
    "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
    "strict": true, /* Enable all strict type-checking options. */
    "skipLibCheck": true, /* Skip type checking all .d.ts files. */
    "outDir": "./dist",
    "declaration": true,
    "lib": [
      "esnext"
    ],
    "sourceMap": true,
    "baseUrl": ".",
    "resolveJsonModule": true,
    "allowSyntheticDefaultImports": true,
    "noImplicitReturns": true,
    // "suppressImplicitAnyIndexErrors": true,
    "noUnusedLocals": true,
    "allowJs": true,
    "experimentalDecorators": true,
    "paths": {
      "@/*": [
        "./src/*"
      ],
      "@@/*": [
        "./data/*"
      ]
    }
  },
  "include": [
    "src/**/*",
    "tests/**/*",
    "typings/**/*",
    "config/**/*",
  ],
  "exclude": [
    "node_modules",
    "build",
    "dist",
    "webpack",
    "jest",
    "assets",
    "data"
  ],
  "ts-node": {
    "compilerOptions": {
      "module": "CommonJS",
      "target": "ESNext",
      "resolveJsonModule": true
    }
  }
}