Files
authentik/web/package.json
T
Teffen Ellis 6fb4bb543a Replace npm + Corepack with pnpm
Migrate package management from npm + Corepack to pnpm across the root,
web, and website workspaces:

- Swap npm/Corepack tooling for pnpm: drop package-lock.json files and the
  bespoke Corepack bootstrap scripts (setup-corepack.mjs, utils/corepack.mjs,
  lint-lockfile.mjs); add pnpm-lock.yaml + pnpm-workspace.yaml per workspace.
- CI uses the official pnpm/action-setup + actions/setup-node; pin the pnpm
  store dir via PNPM_HOME so setup-node's `cache: pnpm` post-step succeeds.
- Docker sources pnpm from the official ghcr.io/pnpm/pnpm image via a
  ${BUILDPLATFORM}-pinned stage; the website docs build does a hoisted root
  install so @goauthentik/docusaurus-config resolves its own deps.
- Gate the web install on the `node` dep so runtime-only jobs don't invoke
  pnpm; scope the from-stable env setup so the new tooling doesn't run against
  the stable checkout's npm packageManager field.
- Resolve @goauthentik/api (client-ts) from its TypeScript source instead of a
  tsc-built dist, so it no longer depends on an install-time prepare having run
  (the storybook build's environment never built it); sfe's rollup gains .ts
  resolution to match.
- Netlify builds with pnpm; encode pnpm's supply-chain controls
  (onlyBuiltDependencies/allowBuilds, minimumReleaseAge) in the workspace.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 15:57:59 +02:00

306 lines
11 KiB
JSON

{
"name": "@goauthentik/web",
"version": "2026.8.0-rc1",
"license": "MIT",
"private": true,
"scripts": {
"build": "wireit",
"build:sfe": "pnpm --filter @goauthentik/web-sfe run build",
"build-locales": "node scripts/build-locales.mjs",
"build-proxy": "wireit",
"bundler:watch": "node scripts/build-web.mjs --watch",
"extract-locales": "lit-localize extract",
"format": "wireit",
"lint": "eslint --fix .",
"lint:imports": "knip --config scripts/knip.config.ts",
"lint:types": "wireit",
"lint-check": "eslint --max-warnings 0 .",
"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": "vitest",
"test:e2e": "playwright test",
"tsc": "wireit",
"watch": "run-s build-locales bundler:watch"
},
"type": "module",
"exports": {
"./package.json": "./package.json",
"./styles/*": "./src/styles/*",
"./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": {
"#fonts/*.css": "./fonts/*.css",
"#styles/*.css": "./src/styles/*.css",
"#styles/*": "./src/styles/*.js",
"#common/*": "./src/common/*.js",
"#elements/dialogs": "./src/elements/dialogs/index.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",
"#tests/*": "./tests/*.js",
"#e2e": "./e2e/index.ts",
"#e2e/*": "./e2e/*.ts",
"#types/*": "./types/*/index.d.ts",
"#*/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.11",
"@codemirror/lang-javascript": "^6.2.5",
"@codemirror/lang-python": "^6.2.1",
"@codemirror/lang-xml": "^6.1.0",
"@codemirror/legacy-modes": "^6.5.3",
"@codemirror/theme-one-dark": "^6.1.3",
"@eslint/js": "^9.39.4",
"@floating-ui/dom": "^1.7.6",
"@formatjs/intl-listformat": "^8.3.9",
"@fortawesome/fontawesome-free": "^7.2.0",
"@goauthentik/api": "link:packages/client-ts",
"@goauthentik/brand-assets": "^2.0.0",
"@goauthentik/core": "workspace:*",
"@goauthentik/esbuild-plugin-live-reload": "^2.0.1",
"@goauthentik/eslint-config": "^1.3.0",
"@goauthentik/prettier-config": "^3.5.0",
"@goauthentik/tsconfig": "^1.0.9",
"@hcaptcha/types": "^1.2.0",
"@lit/context": "^1.1.6",
"@lit/localize": "^0.12.2",
"@lit/localize-tools": "^0.8.2",
"@lit/reactive-element": "^2.1.2",
"@lit/task": "^1.0.3",
"@mdx-js/mdx": "^3.1.1",
"@mermaid-js/layout-elk": "^0.2.1",
"@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.4.0",
"@patternfly/patternfly": "^4.224.5",
"@playwright/test": "^1.60.0",
"@sentry/browser": "^10.56.0",
"@storybook/addon-docs": "^10.4.2",
"@storybook/addon-links": "^10.4.2",
"@storybook/web-components": "^10.4.2",
"@storybook/web-components-vite": "^10.4.2",
"@types/codemirror": "^5.60.17",
"@types/grecaptcha": "^3.0.9",
"@types/guacamole-common-js": "^1.5.5",
"@types/node": "^25.9.1",
"@types/react": "^19.2.16",
"@types/react-dom": "^19.2.3",
"@typescript-eslint/eslint-plugin": "^8.60.1",
"@typescript-eslint/parser": "^8.60.1",
"@typescript-eslint/utils": "^8.60.1",
"@typescript/native-preview": "7.0.0-dev.20260602.1",
"@vitest/browser": "^4.1.8",
"@vitest/browser-playwright": "^4.1.8",
"@webcomponents/webcomponentsjs": "^2.8.0",
"base64-js": "^1.5.1",
"change-case": "^5.4.4",
"chart.js": "^4.5.1",
"chartjs-adapter-date-fns": "^3.0.0",
"codemirror": "^6.0.2",
"core-js": "^3.49.0",
"country-flag-icons": "^1.6.17",
"date-fns": "^4.4.0",
"deepmerge-ts": "^7.1.5",
"dompurify": "^3.4.7",
"esbuild": "^0.28.0",
"eslint": "^9.39.4",
"eslint-plugin-lit": "^2.3.1",
"eslint-plugin-wc": "^3.1.0",
"fuse.js": "^7.4.1",
"globals": "^17.6.0",
"guacamole-common-js": "^1.5.0",
"hastscript": "^9.0.1",
"knip": "^6.15.0",
"lex": "workspace:*",
"lit": "^3.3.3",
"lit-analyzer": "^2.0.3",
"lit-element": "^4.2.2",
"lit-html": "^3.3.3",
"md-front-matter": "^1.0.4",
"mermaid": "^11.15.0",
"node-domexception": "workspace:*",
"npm-run-all": "^4.1.5",
"pino": "^10.3.1",
"pino-pretty": "^13.1.3",
"playwright": "^1.60.0",
"prettier": "^3.8.3",
"prettier-plugin-packagejson": "^3.0.2",
"pseudolocale": "^2.2.0",
"rapidoc": "^9.3.8",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"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": "^10.4.2",
"style-mod": "^4.1.3",
"stylelint": "^17.12.0",
"trusted-types": "^2.0.0",
"ts-pattern": "^5.9.0",
"turnstile-types": "^1.2.3",
"type-fest": "^5.7.0",
"typescript": "^6.0.3",
"typescript-eslint": "^8.60.1",
"unist-util-visit": "^5.1.0",
"vite": "^8.0.16",
"vitest": "^4.1.8",
"webcomponent-qr-code": "^1.3.0",
"wireit": "^0.14.12",
"yaml": "^2.9.0"
},
"optionalDependencies": {
"@esbuild/darwin-arm64": "^0.28.0",
"@esbuild/linux-arm64": "^0.28.0",
"@esbuild/linux-x64": "^0.28.0",
"@goauthentik/prettier-config-dev": "link:../packages/prettier-config",
"@rollup/rollup-darwin-arm64": "^4.61.0",
"@rollup/rollup-linux-arm64-gnu": "^4.61.0",
"@rollup/rollup-linux-x64-gnu": "^4.61.0"
},
"wireit": {
"build": {
"command": "${NODE_RUNNER} scripts/build-web.mjs",
"dependencies": [
"build-locales"
],
"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/styles/**"
],
"#comment": [
"`pnpm run build` and `pnpm 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 `pnpm run build --watch` ",
"instead of `pnpm run watch`. The former is more comprehensive, but ",
"the latter is faster."
],
"env": {
"NODE_RUNNER": {
"external": true,
"default": "node"
}
}
},
"build-proxy": {
"command": "node scripts/build-web.mjs --styles-only",
"dependencies": [
"build-locales"
]
},
"lint:components": {
"command": "lit-analyzer src"
},
"lint:types": {
"command": "tsgo -p .",
"dependencies": [
"build-locales"
]
},
"lit-analyse": {
"command": "lit-analyzer src"
},
"locales:repair": {
"command": "prettier --write ./src/locale-codes.ts"
},
"precommit": {
"command": "prettier --write .",
"dependencies": [
"lint",
"lint:types",
"lint:components"
]
},
"storybook:build": {
"command": "storybook build",
"env": {
"NODE_OPTIONS": "--max_old_space_size=8192"
}
},
"tsc": {
"command": "tsgo -p .",
"dependencies": [
"build-locales"
]
}
},
"engines": {
"node": ">=24",
"pnpm": ">=11.5.1"
},
"devEngines": {
"runtime": {
"name": "node",
"onFail": "warn",
"version": ">=24"
}
},
"packageManager": "pnpm@11.5.1+sha512.93f7b57422ea7068257235b4c16eb60762eb68e1dc23723199cc739043ea9be2c4143274a399d8c6defa2b1176226d9ca1c4b63482d6200c1a8fbaa78c1d1485",
"prettier": "./prettier.config.mjs"
}