// @file TSConfig used by the web package during development.
{
    "extends": "@goauthentik/tsconfig",
    "compilerOptions": {
        "ignoreDeprecations": "6.0",
        "types": ["node"],
        "checkJs": true,
        "allowJs": true,
        "resolveJsonModule": true,
        "allowSyntheticDefaultImports": true,
        "emitDeclarationOnly": true,
        "experimentalDecorators": true,
        // See https://lit.dev/docs/components/properties/
        "useDefineForClassFields": false,
        "target": "esnext",
        "module": "preserve",
        "moduleResolution": "bundler",
        "lib": ["DOM", "DOM.Iterable", "ESNext"],

        // TODO: We should enable this when when we're ready to enforce it.
        "noUncheckedIndexedAccess": false,
        "plugins": [
            // #region Lit
            {
                "name": "ts-lit-plugin",
                "strict": true,
                "rules": {
                    "no-incompatible-type-binding": "off"
                },

                "globalAttributes": [
                    //#region Testing

                    "name",

                    //#endregion

                    //#region ARIA

                    "aria-description",
                    "inert",

                    //#endregion

                    //#region Popover

                    "popover",
                    "popovertarget",
                    "popovertargetaction"

                    //#endregion
                ]
            },
            {
                "name": "@genesiscommunitysuccess/custom-elements-lsp",
                "designSystemPrefix": "ak-",
                "parser": {
                    "timeout": 2000
                }
            }
        ]
    },
    "exclude": [
        // ---
        "**/out/**/*",
        "**/dist/**/*",
        "storybook-static",
        "src/**/*.test.ts",
        "./tests",
        // TODO: @lit/localize-tools v0.8.0 has a nullish coalescing typing error.
        // Remove when we upgrade past that.
        "scripts/pseudolocalize.mjs",
        "scripts/build-locales.mjs",

        // TODO: Remove after monorepo cleanup.
        "src/**/*.comp.ts"
    ]
}
