{
   "$schema": "https://json.schemastore.org/tsconfig",

   "compilerOptions": {
      "rootDir": "../",
      "useDefineForClassFields": false,
      "isolatedModules": true,

      /* ===============================
         Output (tsup controls formats)
         =============================== */
      "outDir": "dist",
      "declaration": true,
      "declarationMap": true,
      "sourceMap": true,
      "emitDeclarationOnly": false,

      /* ===============================
         Language & runtime
         =============================== */
      "target": "ES2022",
      "lib": ["ES2022", "DOM"],

      /* ===============================
         Module system (CRITICAL)
         =============================== */
      "module": "nodenext",
      "moduleResolution": "NodeNext",

      /* ===============================
         Interop & compatibility
         =============================== */
      "esModuleInterop": true,
      "allowSyntheticDefaultImports": true,
      "resolveJsonModule": true,

      /* ===============================
         Type checking
         =============================== */
      "strict": true,
      "noImplicitAny": false,
      "strictNullChecks": true,
      "strictFunctionTypes": true,
      "strictPropertyInitialization": true,
      "noFallthroughCasesInSwitch": true,

      /* ===============================
         Developer experience
         =============================== */
      "skipLibCheck": true,
      "forceConsistentCasingInFileNames": true,
      "noErrorTruncation": true,

      /* ===============================
         Decorators (if used)
         =============================== */
      "experimentalDecorators": true,

      /* ===============================
         Internal path aliases ONLY
         =============================== */
      "baseUrl": ".",
      "paths": {
         //  @adaas/are-html internal aliases
         "@adaas/are-html/nodes/*":        ["../src/nodes/*"],
         "@adaas/are-html/attributes/*":   ["../src/attributes/*"],
         "@adaas/are-html/instructions/*": ["../src/instructions/*"],
         "@adaas/are-html/directive/*":    ["../src/lib/AreDirective/*"],
         "@adaas/are-html/root/*":         ["../src/lib/AreRoot/*"],
         "@adaas/are-html/directives/*":   ["../src/directives/*"],
         "@adaas/are-html/style/*":        ["../src/lib/AreStyle/*"],
         "@adaas/are-html/helpers/*":      ["../src/helpers/*"],
         "@adaas/are-html/lib/*":          ["../src/lib/*"],
      },
      /* ===============================
         Types
         =============================== */
      // "typeRoots": ["node_modules/@types"]
   },
   "include": [
      "../src/**/*",
   ],
   "exclude": [
      "../node_modules",
      "../dist",
      "**/*.spec.ts"
   ]
}