{
  "log": {
    "enabled": true,
    "debug": false,
    "console": true,
    "output": "build.log"
  },
  "profiles": {
    "production": ["compile"],
    "development": ["serve", "watch", "compile"]
  },
  "watch": {
    "locations": ["ui"]
  },
  "serve": {
    "httpPort": 8000,
    "documentRoot": ".",
    "defaultFolder": ""
  },
  "build": {
    "global": {
      "target": "es2024",
      "sourcemap": true,
      "banner": { "js": "/*\n  SD.Next core UI bundle — generated by @vladmandic/build\n*/\n" }
    },
    "production": {
      "minify": false
    },
    "development": {
      "minify": false
    },
    "targets": [
      {
        "name": "build module",
        "input": "ui/index.ts",
        "output": "ui/dist/sdnext.mjs",
        "platform": "node",
        "external": ["typedoc", "typescript", "eslint", "esbuild", "fsevents"]
      }
    ]
  },
  "typescript": {
    "module": "es2024",
    "target": "es2024",
    "typeRoots": ["node_modules/@types"],
    "lib": ["lib.esnext.d.ts", "lib.dom.d.ts"],
    "baseUrl": "./",
    "paths": { "tslib": ["node_modules/tslib/tslib.d.ts"] },
    "sourceMap": true,
    "noEmitOnError": false,
    "emitDeclarationOnly": false,
    "declaration": false,
    "allowJs": true,
    "checkJs": false,
    "allowSyntheticDefaultImports": true,
    "importHelpers": true,
    "pretty": true,
    "removeComments": false,
    "skipLibCheck": true,
    "listEmittedFiles": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "alwaysStrict": true,
    "experimentalDecorators": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitAny": false,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noPropertyAccessFromIndexSignature": false,
    "noUncheckedIndexedAccess": false,
    "noUnusedLocals": false,
    "noUnusedParameters": true,
    "preserveConstEnums": true,
    "strictBindCallApply": true,
    "strictFunctionTypes": true,
    "strictNullChecks": true,
    "strictPropertyInitialization": true,
    "no-restricted-syntax": "off"
  },
  "lint": {
    "locations": ["ui/**/*.ts"],
    "env": { "browser": true, "commonjs": true, "node": true, "es2024": true },
    "parser": "@typescript-eslint/parser",
    "parserOptions": { "ecmaVersion": 2024 },
    "plugins": ["@typescript-eslint"],
    "extends": ["eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended"],
    "ignorePatterns": ["vendor/**", "dist/**"],
    "rules": {
      "@typescript-eslint/ban-ts-comment": "off",
      "@typescript-eslint/explicit-module-boundary-types": "off",
      "@typescript-eslint/no-shadow": "error",
      "@typescript-eslint/no-var-requires": "off",
      "dot-notation": "off",
      "func-names": "off",
      "guard-for-in": "off",
      "import/extensions": "off",
      "import/no-named-as-default": "off",
      "import/prefer-default-export": "off",
      "lines-between-class-members": "off",
      "newline-per-chained-call": "off",
      "no-async-promise-executor": "off",
      "no-await-in-loop": "off",
      "no-bitwise": "off",
      "no-case-declarations": "off",
      "no-continue": "off",
      "no-plusplus": "off",
      "object-curly-newline": "off",
      "prefer-destructuring": "off",
      "prefer-template": "off",
      "promise/always-return": "off",
      "promise/catch-or-return": "off",
      "radix": "off",
      "no-underscore-dangle": "off",
      "no-restricted-syntax": "off",
      "no-return-assign": "off"
    }
  }
}