{ "name": "@goauthentik/web", "version": "2025.6.4", "license": "MIT", "private": true, "scripts": { "build": "wireit", "build-locales": "wireit", "build-locales:build": "wireit", "build-proxy": "wireit", "build:sfe": "npm run build -w @goauthentik/web-sfe", "esbuild:watch": "node scripts/build-web.mjs --watch", "extract-locales": "wireit", "format": "wireit", "lint": "eslint --fix .", "lint-check": "eslint --max-warnings 0 .", "lint:imports": "knip --config scripts/knip.config.ts", "lint:lockfile": "wireit", "lint:types": "wireit", "lit-analyse": "wireit", "precommit": "wireit", "prettier": "prettier --cache --write -u .", "prettier-check": "prettier --cache --check -u .", "pseudolocalize": "node ./scripts/pseudolocalize.mjs", "storybook": "storybook dev -p 6006", "storybook:build": "wireit", "test": "wireit", "test:e2e": "wireit", "test:e2e:watch": "wireit", "test:watch": "wireit", "tsc": "wireit", "watch": "run-s build-locales esbuild:watch" }, "type": "module", "exports": { "./package.json": "./package.json", "./elements/*": "./src/elements/*", "./common/*": "./src/common/*", "./components/*": "./src/components/*", "./flow/*": "./src/flow/*", "./locales/*": "./src/locales/*", "./user/*": "./src/user/*", "./admin/*": "./src/admin/*", "./*/browser": { "types": "./out/*/browser.d.ts", "import": "./*/browser.js" }, "./*/node": { "types": "./out/*/node.d.ts", "import": "./*/node.js" }, "./*": { "types": "./out/*/index.d.ts", "import": "./*/index.js" } }, "imports": { "#common/*.css": "./src/common/*.css", "#common/*": "./src/common/*.js", "#elements/*.css": "./src/elements/*.css", "#elements/*": "./src/elements/*.js", "#components/*.css": "./src/components/*.css", "#components/*": "./src/components/*.js", "#user/*.css": "./src/user/*.css", "#user/*": "./src/user/*.js", "#admin/*.css": "./src/admin/*.css", "#admin/*": "./src/admin/*.js", "#flow/*.css": "./src/flow/*.css", "#flow/*": "./src/flow/*.js", "#locales/*": "./src/locales/*.js", "#stories/*": "./src/stories/*.js", "#*/browser": { "types": "./out/*/browser.d.ts", "import": "./*/browser.js" }, "#*/node": { "types": "./out/*/node.d.ts", "import": "./*/node.js" }, "#*": { "types": "./out/*/index.d.ts", "import": "./*/index.js" } }, "dependencies": { "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-html": "^6.4.9", "@codemirror/lang-javascript": "^6.2.4", "@codemirror/lang-python": "^6.2.1", "@codemirror/lang-xml": "^6.1.0", "@codemirror/legacy-modes": "^6.5.1", "@codemirror/theme-one-dark": "^6.1.3", "@eslint/js": "^9.31.0", "@floating-ui/dom": "^1.7.3", "@formatjs/intl-listformat": "^7.7.11", "@fortawesome/fontawesome-free": "^7.0.0", "@goauthentik/api": "^2025.6.4-1754842939", "@goauthentik/core": "^1.0.0", "@goauthentik/esbuild-plugin-live-reload": "^1.1.0", "@goauthentik/eslint-config": "^1.0.5", "@goauthentik/prettier-config": "^3.1.0", "@goauthentik/tsconfig": "^1.0.4", "@hcaptcha/types": "^1.0.4", "@lit/context": "^1.1.6", "@lit/localize": "^0.12.2", "@lit/localize-tools": "^0.8.0", "@lit/reactive-element": "^2.1.1", "@lit/task": "^1.0.3", "@mdx-js/mdx": "^3.1.0", "@mrmarble/djangoql-completion": "^0.8.3", "@open-wc/lit-helpers": "^0.7.0", "@openlayers-elements/core": "^0.4.0", "@openlayers-elements/maps": "^0.4.0", "@patternfly/elements": "^4.1.0", "@patternfly/patternfly": "^4.224.2", "@sentry/browser": "^10.3.0", "@spotlightjs/spotlight": "^3.0.2", "@storybook/addon-docs": "^9.1.1", "@storybook/addon-links": "^9.1.1", "@storybook/web-components": "^9.1.1", "@storybook/web-components-vite": "^9.1.1", "@types/codemirror": "^5.60.16", "@types/grecaptcha": "^3.0.9", "@types/guacamole-common-js": "^1.5.3", "@types/mocha": "^10.0.10", "@types/node": "^24.2.1", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.7", "@typescript-eslint/eslint-plugin": "^8.38.0", "@typescript-eslint/parser": "^8.38.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "change-case": "^5.4.4", "chart.js": "^4.5.0", "chartjs-adapter-date-fns": "^3.0.0", "codemirror": "^6.0.2", "construct-style-sheets-polyfill": "^3.1.0", "core-js": "^3.44.0", "country-flag-icons": "^1.5.19", "date-fns": "^4.1.0", "deepmerge-ts": "^7.1.5", "dompurify": "^3.2.6", "esbuild": "^0.25.8", "esbuild-plugin-copy": "^2.1.1", "esbuild-plugin-polyfill-node": "^0.3.0", "esbuild-plugins-node-modules-polyfill": "^1.7.1", "eslint": "^9.33.0", "eslint-plugin-lit": "^2.1.1", "eslint-plugin-wc": "^3.0.1", "fuse.js": "^7.1.0", "github-slugger": "^2.0.0", "globals": "^16.3.0", "guacamole-common-js": "^1.5.0", "hastscript": "^9.0.1", "knip": "^5.62.0", "lit": "^3.3.1", "lit-analyzer": "^2.0.3", "md-front-matter": "^1.0.4", "mermaid": "^11.9.0", "npm-run-all": "^4.1.5", "prettier": "^3.6.2", "pseudolocale": "^2.1.0", "rapidoc": "^9.3.8", "react": "^19.1.0", "react-dom": "^19.1.1", "rehype-highlight": "^7.0.2", "rehype-mermaid": "^3.0.0", "rehype-parse": "^9.0.1", "rehype-stringify": "^10.0.1", "remark-directive": "^4.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-mdx-frontmatter": "^5.2.0", "storybook": "^9.0.16", "style-mod": "^4.1.2", "trusted-types": "^2.0.0", "ts-pattern": "^5.8.0", "turnstile-types": "^1.2.3", "typescript": "^5.8.3", "typescript-eslint": "^8.39.0", "unist-util-visit": "^5.0.0", "webcomponent-qr-code": "^1.3.0", "wireit": "^0.14.12", "yaml": "^2.8.1" }, "optionalDependencies": { "@esbuild/darwin-arm64": "^0.25.4", "@esbuild/linux-arm64": "^0.25.4", "@esbuild/linux-x64": "^0.25.4", "@rollup/rollup-darwin-arm64": "^4.46.2", "@rollup/rollup-linux-arm64-gnu": "^4.46.2", "@rollup/rollup-linux-x64-gnu": "^4.46.2", "@wdio/browser-runner": "^9.19.0", "@wdio/cli": "^9.19.0", "@wdio/spec-reporter": "^9.19.0", "@web/test-runner": "^0.20.2" }, "wireit": { "build": { "#comment": [ "`npm run build` and `npm run watch` are the most common ", "commands you should be using when working on the front end", "The files and output spec here expect you to use `npm run build --watch` ", "instead of `npm run watch`. The former is more comprehensive, but ", "the latter is faster." ], "command": "${NODE_RUNNER} scripts/build-web.mjs", "files": [ "src/**/*.{css,jpg,png,ts,js,json}", "!src/**/*.stories.ts", "!src/**/*.tests.ts", "!src/locales/*.ts", "!src/locale-codes.ts", "icons/**/*" ], "output": [ "./dist/admin/**", "./dist/user/**", "./dist/flow/**", "./dist/standalone/api-browser/**", "./dist/standalone/loading/**", "./dist/enterprise/**", "./dist/poly-*.js", "./dist/poly-*.js.map", "./dist/theme-dark.css", "./dist/one-dark.css", "./dist/patternfly.min.css" ], "dependencies": [ "build-locales", "build:sfe" ], "env": { "NODE_RUNNER": { "external": true, "default": "node" } } }, "build-proxy": { "command": "node scripts/build-web.mjs --proxy", "dependencies": [ "build-locales" ] }, "build-locales:build": { "command": "lit-localize build" }, "build-locales:repair": { "command": "prettier --write ./src/locale-codes.ts" }, "build-locales": { "command": "node scripts/build-locales.mjs", "files": [ "./xliff/*.xlf" ], "output": [ "./src/locales/*.ts", "./src/locale-codes.ts" ] }, "extract-locales": { "command": "lit-localize extract" }, "lint:components": { "command": "lit-analyzer src" }, "lint:types:tests": { "command": "tsc --noEmit -p ./tests" }, "lint:types": { "command": "tsc -p .", "env": { "NODE_OPTIONS": "--max_old_space_size=8192" }, "dependencies": [ "build-locales", "lint:types:tests" ] }, "lint:lockfile": { "__comment": "The lockfile-lint package does not have an option to ensure resolved hashes are set everywhere", "shell": true, "command": "sh ./scripts/lint-lockfile.sh package-lock.json" }, "lit-analyse": { "command": "lit-analyzer src" }, "precommit": { "command": "prettier --write .", "dependencies": [ "lint", "lint:types", "lint:components", "lint:lockfile" ] }, "storybook:build": { "command": "storybook build", "env": { "NODE_OPTIONS": "--max_old_space_size=8192" } }, "test": { "command": "wdio ./wdio.conf.ts --logLevel=warn", "env": { "CI": "true", "TS_NODE_PROJECT": "tsconfig.test.json" } }, "test:e2e": { "command": "wdio run ./tests/wdio.conf.ts", "dependencies": [ "build" ], "env": { "CI": "true", "TS_NODE_PROJECT": "./tests/tsconfig.test.json" } }, "test:e2e:watch": { "command": "wdio run ./tests/wdio.conf.ts", "dependencies": [ "build" ], "env": { "TS_NODE_PROJECT": "./tests/tsconfig.test.json" } }, "test:watch": { "command": "wdio run ./wdio.conf.ts", "dependencies": [ "build" ], "env": { "TS_NODE_PROJECT": "tsconfig.test.json" } }, "tsc": { "command": "tsc -p .", "env": { "NODE_OPTIONS": "--max_old_space_size=8192" }, "dependencies": [ "build-locales" ] } }, "engines": { "node": ">=24" }, "workspaces": [ "./packages/*" ], "prettier": "@goauthentik/prettier-config", "overrides": { "chromedriver": { "axios": "^1.8.4" }, "format-imports": { "eslint": "$eslint" }, "rapidoc": { "@apitools/openapi-parser@": "0.0.37" } } }