Compare commits
	
		
			38 Commits
		
	
	
		
			safari-adm
			...
			web/parts/
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c3f8c7bd8a | |||
| 06d8ea81e5 | |||
| c04eebdb2f | |||
| 781249681e | |||
| 19f25d5aa7 | |||
| ffbe8fb598 | |||
| 2279768e6f | |||
| 675e60b816 | |||
| e338bef104 | |||
| 457b61c5b4 | |||
| 25eefb7d55 | |||
| 50d2f69332 | |||
| 7d972ec711 | |||
| 854427e463 | |||
| be349e2e14 | |||
| bd0e81b8ad | |||
| f6afb59515 | |||
| dddde09be5 | |||
| 6d7fc94698 | |||
| 1dcf9108ad | |||
| 7bb6a3dfe6 | |||
| 9cc440eee1 | |||
| fe9e4526ac | |||
| 20b66f850c | |||
| 67b327414b | |||
| 5b8d86b5a9 | |||
| 67aed3e318 | |||
| 9809b94030 | |||
| e7527c551b | |||
| 36b10b434a | |||
| 831797b871 | |||
| 5cc2c0f45f | |||
| 32442766f4 | |||
| 75790909a8 | |||
| e0d5df89ca | |||
| f25a9c624e | |||
| 914993a788 | |||
| 89dad07a66 | 
@ -52,7 +52,7 @@ const assetsFileMappings = [
 | 
			
		||||
    ["node_modules/@patternfly/patternfly/patternfly.min.css", "."],
 | 
			
		||||
    ["node_modules/@patternfly/patternfly/assets/**", ".", "node_modules/@patternfly/patternfly/"],
 | 
			
		||||
    ["src/custom.css", "."],
 | 
			
		||||
    ["src/common/styles/**", "."],
 | 
			
		||||
    ["packages/common/dist/styles/**", "."],
 | 
			
		||||
    ["src/assets/images/**", "./assets/images"],
 | 
			
		||||
    ["./icons/*", "./assets/icons"],
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1337
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1337
									
								
								web/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -177,6 +177,7 @@
 | 
			
		||||
            ],
 | 
			
		||||
            "dependencies": [
 | 
			
		||||
                "build-locales",
 | 
			
		||||
                "./packages/common:build",
 | 
			
		||||
                "./packages/sfe:build"
 | 
			
		||||
            ],
 | 
			
		||||
            "env": {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								web/packages/common/.prettierignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								web/packages/common/.prettierignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
# don't ever lint node_modules
 | 
			
		||||
node_modules
 | 
			
		||||
# don't lint build output (make sure it's set to your correct build folder name)
 | 
			
		||||
dist
 | 
			
		||||
# don't lint nyc coverage output
 | 
			
		||||
coverage
 | 
			
		||||
# Import order matters
 | 
			
		||||
poly.ts
 | 
			
		||||
src/locale-codes.ts
 | 
			
		||||
src/locales/
 | 
			
		||||
storybook-static/
 | 
			
		||||
# Prettier breaks the tsconfig file
 | 
			
		||||
tsconfig.json
 | 
			
		||||
.storybook/css-import-maps*
 | 
			
		||||
package.json
 | 
			
		||||
packages/**/package.json
 | 
			
		||||
							
								
								
									
										23
									
								
								web/packages/common/.prettierrc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								web/packages/common/.prettierrc.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
{
 | 
			
		||||
    "arrowParens": "always",
 | 
			
		||||
    "bracketSpacing": true,
 | 
			
		||||
    "embeddedLanguageFormatting": "auto",
 | 
			
		||||
    "htmlWhitespaceSensitivity": "css",
 | 
			
		||||
    "insertPragma": false,
 | 
			
		||||
    "jsxSingleQuote": false,
 | 
			
		||||
    "printWidth": 100,
 | 
			
		||||
    "proseWrap": "preserve",
 | 
			
		||||
    "quoteProps": "consistent",
 | 
			
		||||
    "requirePragma": false,
 | 
			
		||||
    "semi": true,
 | 
			
		||||
    "singleQuote": false,
 | 
			
		||||
    "tabWidth": 4,
 | 
			
		||||
    "trailingComma": "all",
 | 
			
		||||
    "useTabs": false,
 | 
			
		||||
    "vueIndentScriptAndStyle": false,
 | 
			
		||||
    "plugins": ["@trivago/prettier-plugin-sort-imports"],
 | 
			
		||||
    "importOrder": ["^(@?)lit(.*)$", "\\.css$", "^@goauthentik/api$", "^[./]"],
 | 
			
		||||
    "importOrderSeparation": true,
 | 
			
		||||
    "importOrderSortSpecifiers": true,
 | 
			
		||||
    "importOrderParserPlugins": ["typescript", "classProperties", "decorators-legacy"]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										93
									
								
								web/packages/common/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								web/packages/common/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,93 @@
 | 
			
		||||
# @goauthentik/common
 | 
			
		||||
 | 
			
		||||
The `common` package is a bit of a grab-bag of tools, utilities, and configuration details used
 | 
			
		||||
throughout the Authentik front-end suite. Here, we'll try (emphasis on the _try_) to document what
 | 
			
		||||
each part does.
 | 
			
		||||
 | 
			
		||||
-   `./api`
 | 
			
		||||
 | 
			
		||||
The `./api` folder contains helpers and plug-ins for communicating with the Authentik API. Its
 | 
			
		||||
primary purpose is to provide the default configuration details for establishing a channel to the
 | 
			
		||||
API, as well as figuring out the default locale, branding information, and even the favicon. (See
 | 
			
		||||
what I said about it being a grab-bag?) It has its own list of todos.
 | 
			
		||||
 | 
			
		||||
-   `/helpers/plex`
 | 
			
		||||
 | 
			
		||||
Contains configuration tools and access for the Plex TV client. Used by all three primary
 | 
			
		||||
interfaces, but again, not exactly a foundational tool.
 | 
			
		||||
 | 
			
		||||
-   `/helpers/webauthn`
 | 
			
		||||
 | 
			
		||||
Used entirely by the WebAuthn tools in the Flow interface.
 | 
			
		||||
 | 
			
		||||
-   `/styles`:
 | 
			
		||||
 | 
			
		||||
authentik's overrides for patternfly and dark mode.
 | 
			
		||||
 | 
			
		||||
TODO: Move this into its own package.
 | 
			
		||||
 | 
			
		||||
-   `/ui`:
 | 
			
		||||
 | 
			
		||||
Describes the schema of the UIConfig Attributes Object, which dictates certain details about UI
 | 
			
		||||
behavior, such as the preliminary state of drawers, editors, and layouts. It also has an API call
 | 
			
		||||
to fetch that UIConfig object from the server.
 | 
			
		||||
 | 
			
		||||
-   `/constants.ts`
 | 
			
		||||
 | 
			
		||||
Another grab-bag of configuration details: event names, default classnames for setting some visual
 | 
			
		||||
details, web socket message type tokens, and the localstorage key.
 | 
			
		||||
 | 
			
		||||
-   `/enums.ts`
 | 
			
		||||
 | 
			
		||||
Contains one thing: a mapping of generic UI sizing terms to specific classnames in the CSS.
 | 
			
		||||
 | 
			
		||||
-   `./errors.ts`
 | 
			
		||||
 | 
			
		||||
An error handling toolkit related to the `./api` above.
 | 
			
		||||
 | 
			
		||||
-   `./events.ts`
 | 
			
		||||
 | 
			
		||||
An extension of the API's "Event" types to assist in reporting server-side events to the user. Has
 | 
			
		||||
nothing to do with the browser's internal Event type. Used entirely within `./admin`, may be
 | 
			
		||||
suitable to being moved there.
 | 
			
		||||
 | 
			
		||||
-   `./global.ts`
 | 
			
		||||
 | 
			
		||||
A single function that retrieves any global information for the UI from the `index.html` file in
 | 
			
		||||
which it was invoked. Used by our Django application to preload configuration information.
 | 
			
		||||
 | 
			
		||||
-   `./labels.ts`,
 | 
			
		||||
 | 
			
		||||
Maps a variety of API tokens to human-readable labels, including those for:
 | 
			
		||||
 | 
			
		||||
-   Events
 | 
			
		||||
-   Severities
 | 
			
		||||
-   User Types
 | 
			
		||||
-   Stage Intent
 | 
			
		||||
 | 
			
		||||
It might make more sense to move these closer to where they're used, if their use is local to a
 | 
			
		||||
single interface or component.
 | 
			
		||||
 | 
			
		||||
-   `./messages.ts`
 | 
			
		||||
 | 
			
		||||
Contains one thing: a mapping of generic UI alert-level terms to specific classnames in the CSS.
 | 
			
		||||
 | 
			
		||||
-   `./sentry.ts`
 | 
			
		||||
 | 
			
		||||
Sentry is an application monitoring package for finding code breakage. The Sentry configuration for
 | 
			
		||||
all of our interfaces is kept here.
 | 
			
		||||
 | 
			
		||||
-   `./users.ts`
 | 
			
		||||
 | 
			
		||||
Despite the plural name, this is entirely about getting the current user's configuration from the
 | 
			
		||||
server. Used by all three major interfaces. Could probably be replaced by a context. (Possibly
 | 
			
		||||
already has been.)
 | 
			
		||||
 | 
			
		||||
-   `./utils.ts`
 | 
			
		||||
 | 
			
		||||
The classic junk drawer of UI development. A few string functions, a few utilities from
 | 
			
		||||
YouMightNotNeedLodash, a slugifier, some date handling utilities, that sort of thing.
 | 
			
		||||
 | 
			
		||||
-   `./ws.ts`
 | 
			
		||||
 | 
			
		||||
Sets up our web socket for receiving server-side events. Used by all three major interfaces.
 | 
			
		||||
							
								
								
									
										53
									
								
								web/packages/common/build.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								web/packages/common/build.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
			
		||||
import * as esbuild from "esbuild";
 | 
			
		||||
import fs from "fs";
 | 
			
		||||
import { globSync } from "glob";
 | 
			
		||||
import path from "path";
 | 
			
		||||
import { cwd } from "process";
 | 
			
		||||
import { fileURLToPath } from "url";
 | 
			
		||||
 | 
			
		||||
const __dirname = fileURLToPath(new URL(".", import.meta.url));
 | 
			
		||||
 | 
			
		||||
const isProdBuild = process.env.NODE_ENV === "production";
 | 
			
		||||
 | 
			
		||||
const apiBasePath = process.env.AK_API_BASE_PATH || "";
 | 
			
		||||
 | 
			
		||||
const definitions = {
 | 
			
		||||
    "process.env.NODE_ENV": JSON.stringify(isProdBuild ? "production" : "development"),
 | 
			
		||||
    "process.env.CWD": JSON.stringify(cwd()),
 | 
			
		||||
    "process.env.AK_API_BASE_PATH": JSON.stringify(apiBasePath),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const otherFiles = [["src/styles/**", "styles"]];
 | 
			
		||||
 | 
			
		||||
const isFile = (filePath) => fs.statSync(filePath).isFile();
 | 
			
		||||
function nameCopyTarget(src, dest, strip) {
 | 
			
		||||
    const target = path.join(dest, strip ? src.replace(strip, "") : path.parse(src).base);
 | 
			
		||||
    return [src, target];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
for (const [source, rawdest, strip] of otherFiles) {
 | 
			
		||||
    const matchedPaths = globSync(source);
 | 
			
		||||
    const dest = path.join("dist", rawdest);
 | 
			
		||||
    const copyTargets = matchedPaths.map((path) => nameCopyTarget(path, dest, strip));
 | 
			
		||||
    for (const [src, dest] of copyTargets) {
 | 
			
		||||
        if (isFile(src)) {
 | 
			
		||||
            fs.mkdirSync(path.dirname(dest), { recursive: true });
 | 
			
		||||
            fs.copyFileSync(src, dest);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const tsfiles = globSync("src/**/*.ts");
 | 
			
		||||
 | 
			
		||||
esbuild
 | 
			
		||||
    .build({
 | 
			
		||||
        entryPoints: tsfiles,
 | 
			
		||||
        sourcemap: true,
 | 
			
		||||
        bundle: false,
 | 
			
		||||
        tsconfig: "./tsconfig.build.json",
 | 
			
		||||
        outdir: "dist/",
 | 
			
		||||
        format: "esm",
 | 
			
		||||
        define: definitions,
 | 
			
		||||
        loader: { ".css": "text" },
 | 
			
		||||
    })
 | 
			
		||||
    .catch(() => process.exit(1));
 | 
			
		||||
							
								
								
									
										82
									
								
								web/packages/common/eslint.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								web/packages/common/eslint.config.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,82 @@
 | 
			
		||||
import eslint from "@eslint/js";
 | 
			
		||||
import tsparser from "@typescript-eslint/parser";
 | 
			
		||||
import litconf from "eslint-plugin-lit";
 | 
			
		||||
import wcconf from "eslint-plugin-wc";
 | 
			
		||||
import globals from "globals";
 | 
			
		||||
import tseslint from "typescript-eslint";
 | 
			
		||||
 | 
			
		||||
export default [
 | 
			
		||||
    // You would not believe how much this change has frustrated users: ["if an ignores key is used
 | 
			
		||||
    // without any other keys in the configuration object, then the patterns act as global
 | 
			
		||||
    // ignores"](https://eslint.org/docs/latest/use/configure/ignore)
 | 
			
		||||
    {
 | 
			
		||||
        ignores: [
 | 
			
		||||
            "dist/",
 | 
			
		||||
            ".wireit/",
 | 
			
		||||
            "packages/common/.wireit/",
 | 
			
		||||
            // don't ever lint node_modules
 | 
			
		||||
            "node_modules/",
 | 
			
		||||
            ".storybook/*",
 | 
			
		||||
            // don't lint build output (make sure it's set to your correct build folder name)
 | 
			
		||||
            // don't lint nyc coverage output
 | 
			
		||||
            "coverage/",
 | 
			
		||||
            "src/locale-codes.ts",
 | 
			
		||||
            "storybook-static/",
 | 
			
		||||
            "src/locales/",
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    eslint.configs.recommended,
 | 
			
		||||
    wcconf.configs["flat/recommended"],
 | 
			
		||||
    litconf.configs["flat/recommended"],
 | 
			
		||||
    ...tseslint.configs.recommended,
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["src/**"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            "no-console": ["error", { allow: ["debug", "warn", "error"] }],
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
            globals: {
 | 
			
		||||
                ...globals.nodeBuiltin,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["scripts/*.mjs", "*.ts", "*.mjs"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            // We WANT our scripts to output to the console!
 | 
			
		||||
            "no-console": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
];
 | 
			
		||||
							
								
								
									
										5199
									
								
								web/packages/common/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5199
									
								
								web/packages/common/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										156
									
								
								web/packages/common/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								web/packages/common/package.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,156 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "@goauthentik/common",
 | 
			
		||||
    "version": "0.0.0",
 | 
			
		||||
    "dependencies": {
 | 
			
		||||
        "@sentry/browser": "^8.23.0",
 | 
			
		||||
        "@types/webappsec-credential-management": "^0.6.8",
 | 
			
		||||
        "base64-js": "^1.5.1"
 | 
			
		||||
    },
 | 
			
		||||
    "devDependencies": {
 | 
			
		||||
        "@eslint/js": "^9.8.0",
 | 
			
		||||
        "@types/eslint__js": "^8.42.3",
 | 
			
		||||
        "esbuild": "^0.23.0",
 | 
			
		||||
        "eslint": "^9.8.0",
 | 
			
		||||
        "eslint-config-google": "^0.14.0",
 | 
			
		||||
        "eslint-config-nightmare-mode": "^2.3.0",
 | 
			
		||||
        "eslint-plugin-custom-elements": "^0.0.8",
 | 
			
		||||
        "eslint-plugin-lit": "^1.14.0",
 | 
			
		||||
        "eslint-plugin-sonarjs": "^1.0.4",
 | 
			
		||||
        "glob": "^11.0.0",
 | 
			
		||||
        "lit-analyzer": "^2.0.3",
 | 
			
		||||
        "lockfile-lint": "^4.14.0",
 | 
			
		||||
        "prettier": "^3.3.3",
 | 
			
		||||
        "rimraf": "^6.0.1",
 | 
			
		||||
        "syncpack": "^12.4.0",
 | 
			
		||||
        "typescript": "^5.5.4",
 | 
			
		||||
        "typescript-eslint": "^8.0.1",
 | 
			
		||||
        "typesync": "^0.13.0",
 | 
			
		||||
        "wireit": "^0.14.4"
 | 
			
		||||
    },
 | 
			
		||||
    "exports": {
 | 
			
		||||
        "./*": "./dist/*"
 | 
			
		||||
    },
 | 
			
		||||
    "files": [
 | 
			
		||||
        "./dist/**/*"
 | 
			
		||||
    ],
 | 
			
		||||
    "license": "MIT",
 | 
			
		||||
    "peerDependencies": {
 | 
			
		||||
        "@lit/localize": "^0.12.2",
 | 
			
		||||
        "lit": "^3.2.0"
 | 
			
		||||
    },
 | 
			
		||||
    "private": true,
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "build": "wireit",
 | 
			
		||||
        "build:types": "wireit",
 | 
			
		||||
        "format": "wireit",
 | 
			
		||||
        "lint": "wireit",
 | 
			
		||||
        "lint:lockfile": "wireit",
 | 
			
		||||
        "lint:nightmare": "wireit",
 | 
			
		||||
        "lint:package": "wireit",
 | 
			
		||||
        "lint:spelling": "wireit",
 | 
			
		||||
        "lint:types": "wireit",
 | 
			
		||||
        "precommit": "wireit",
 | 
			
		||||
        "prettier": "wireit"
 | 
			
		||||
    },
 | 
			
		||||
    "type": "module",
 | 
			
		||||
    "wireit": {
 | 
			
		||||
        "build": {
 | 
			
		||||
            "command": "${NODE_RUNNER} build.mjs",
 | 
			
		||||
            "dependencies": [
 | 
			
		||||
                "build:types"
 | 
			
		||||
            ],
 | 
			
		||||
            "files": [
 | 
			
		||||
                "src/**/*.{css,jpg,png,ts,js,json}",
 | 
			
		||||
                "!src/**/*.stories.ts",
 | 
			
		||||
                "!src/**/*.tests.ts",
 | 
			
		||||
                "!src/locales/*.ts",
 | 
			
		||||
                "!src/locale-codes.ts"
 | 
			
		||||
            ],
 | 
			
		||||
            "output": [
 | 
			
		||||
                "./dist/**/*.js",
 | 
			
		||||
                "./dist/**/*.css"
 | 
			
		||||
            ],
 | 
			
		||||
            "env": {
 | 
			
		||||
                "NODE_RUNNER": {
 | 
			
		||||
                    "external": true,
 | 
			
		||||
                    "default": "node"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "build:types": {
 | 
			
		||||
            "command": "tsc --declaration -p .",
 | 
			
		||||
            "files": [
 | 
			
		||||
                "src/**/*.ts",
 | 
			
		||||
                "!src/**/*.stories.ts",
 | 
			
		||||
                "!src/**/*.tests.ts"
 | 
			
		||||
            ],
 | 
			
		||||
            "output": [
 | 
			
		||||
                "./dist/**/*.d.ts"
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "lint": {
 | 
			
		||||
            "command": "eslint --max-warnings 0 --fix --config ./eslint.config.mjs",
 | 
			
		||||
            "env": {
 | 
			
		||||
                "NODE_OPTIONS": "--max_old_space_size=65536"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "lint:types": {
 | 
			
		||||
            "command": "tsc --noEmit -p ."
 | 
			
		||||
        },
 | 
			
		||||
        "lint:lockfile": {
 | 
			
		||||
            "command": "lockfile-lint --path package.json --type npm --allowed-hosts npm --validate-https"
 | 
			
		||||
        },
 | 
			
		||||
        "lint:package": {
 | 
			
		||||
            "command": "syncpack format -i '    '"
 | 
			
		||||
        },
 | 
			
		||||
        "lint:precommit": {
 | 
			
		||||
            "command": "${NODE_RUNNER} ./scripts/eslint.mjs --precommit",
 | 
			
		||||
            "env": {
 | 
			
		||||
                "NODE_RUNNER": {
 | 
			
		||||
                    "external": true,
 | 
			
		||||
                    "default": "node"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "lint:nightmare": {
 | 
			
		||||
            "command": "${NODE_RUNNER} ./scripts/eslint.mjs --nightmare",
 | 
			
		||||
            "env": {
 | 
			
		||||
                "NODE_RUNNER": {
 | 
			
		||||
                    "external": true,
 | 
			
		||||
                    "default": "node"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "prettier": {
 | 
			
		||||
            "command": "prettier --write .",
 | 
			
		||||
            "dependencies": [
 | 
			
		||||
                "lint:package"
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "format": {
 | 
			
		||||
            "command": "prettier --write .",
 | 
			
		||||
            "dependencies": [
 | 
			
		||||
                "lint:package"
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "precommit": {
 | 
			
		||||
            "command": "prettier --write .",
 | 
			
		||||
            "dependencies": [
 | 
			
		||||
                "lint:types",
 | 
			
		||||
                "lint:spelling",
 | 
			
		||||
                "lint:lockfile",
 | 
			
		||||
                "lint:package",
 | 
			
		||||
                "lint:precommit"
 | 
			
		||||
            ],
 | 
			
		||||
            "env": {
 | 
			
		||||
                "NODE_RUNNER": {
 | 
			
		||||
                    "external": true,
 | 
			
		||||
                    "default": "node"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "lint:spelling": {
 | 
			
		||||
            "command": "node scripts/check-spelling.mjs"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								web/packages/common/scripts/check-spelling.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								web/packages/common/scripts/check-spelling.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
import { execSync } from "child_process";
 | 
			
		||||
import path from "path";
 | 
			
		||||
 | 
			
		||||
const projectRoot = execSync("git rev-parse --show-toplevel", { encoding: "utf8" }).replace(
 | 
			
		||||
    "\n",
 | 
			
		||||
    "",
 | 
			
		||||
);
 | 
			
		||||
const cmd = [
 | 
			
		||||
    "codespell -D -",
 | 
			
		||||
    `-D ${path.join(projectRoot, ".github/codespell-dictionary.txt")}`,
 | 
			
		||||
    `-I ${path.join(projectRoot, ".github/codespell-words.txt")}`,
 | 
			
		||||
    "-S './src/locales/**' ./src -s",
 | 
			
		||||
].join(" ");
 | 
			
		||||
 | 
			
		||||
console.log(execSync(cmd, { encoding: "utf8" }));
 | 
			
		||||
							
								
								
									
										56
									
								
								web/packages/common/scripts/eslint.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								web/packages/common/scripts/eslint.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
			
		||||
import { execFileSync } from "child_process";
 | 
			
		||||
import { ESLint } from "eslint";
 | 
			
		||||
import fs from "fs";
 | 
			
		||||
import path from "path";
 | 
			
		||||
import process from "process";
 | 
			
		||||
import { fileURLToPath } from "url";
 | 
			
		||||
 | 
			
		||||
const __dirname = fileURLToPath(new URL(".", import.meta.url));
 | 
			
		||||
const projectRoot = path.join(__dirname, "..");
 | 
			
		||||
process.chdir(projectRoot);
 | 
			
		||||
 | 
			
		||||
function changedFiles() {
 | 
			
		||||
    const gitStatus = execFileSync("git", ["diff", "--name-only", "HEAD"], { encoding: "utf8" });
 | 
			
		||||
    const gitUntracked = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
 | 
			
		||||
        encoding: "utf8",
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    const changed = gitStatus
 | 
			
		||||
        .split("\n")
 | 
			
		||||
        .filter((line) => line.trim().substring(0, 4) === "web/")
 | 
			
		||||
        .filter((line) => /\.(m|c)?(t|j)s$/.test(line))
 | 
			
		||||
        .map((line) => line.substring(4))
 | 
			
		||||
        .filter((line) => fs.existsSync(line));
 | 
			
		||||
 | 
			
		||||
    const untracked = gitUntracked
 | 
			
		||||
        .split("\n")
 | 
			
		||||
        .filter((line) => /\.(m|c)?(t|j)s$/.test(line))
 | 
			
		||||
        .filter((line) => fs.existsSync(line));
 | 
			
		||||
 | 
			
		||||
    const sourceFiles = [...changed, ...untracked].filter((line) => /^src\//.test(line));
 | 
			
		||||
    const scriptFiles = [...changed, ...untracked].filter(
 | 
			
		||||
        (line) => /^scripts\//.test(line) || !/^src\//.test(line),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    return [...sourceFiles, ...scriptFiles];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const hasFlag = (flags) => process.argv.length > 1 && flags.includes(process.argv[2]);
 | 
			
		||||
 | 
			
		||||
const [configFile, files] = hasFlag(["-n", "--nightmare"])
 | 
			
		||||
    ? [path.join(__dirname, "eslint.nightmare.mjs"), changedFiles()]
 | 
			
		||||
    : hasFlag(["-p", "--precommit"])
 | 
			
		||||
      ? [path.join(__dirname, "eslint.precommit.mjs"), changedFiles()]
 | 
			
		||||
      : [path.join(projectRoot, "eslint.config.mjs"), ["."]];
 | 
			
		||||
 | 
			
		||||
const eslint = new ESLint({
 | 
			
		||||
    overrideConfigFile: configFile,
 | 
			
		||||
    warnIgnored: false,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const results = await eslint.lintFiles(files);
 | 
			
		||||
const formatter = await eslint.loadFormatter("stylish");
 | 
			
		||||
const resultText = formatter.format(results);
 | 
			
		||||
const errors = results.reduce((acc, result) => acc + result.errorCount, 0);
 | 
			
		||||
console.log(resultText);
 | 
			
		||||
process.exit(errors > 1 ? 1 : 0);
 | 
			
		||||
							
								
								
									
										203
									
								
								web/packages/common/scripts/eslint.nightmare.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								web/packages/common/scripts/eslint.nightmare.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,203 @@
 | 
			
		||||
import eslint from "@eslint/js";
 | 
			
		||||
import tsparser from "@typescript-eslint/parser";
 | 
			
		||||
import litconf from "eslint-plugin-lit";
 | 
			
		||||
import sonar from "eslint-plugin-sonarjs";
 | 
			
		||||
import wcconf from "eslint-plugin-wc";
 | 
			
		||||
import globals from "globals";
 | 
			
		||||
import tseslint from "typescript-eslint";
 | 
			
		||||
 | 
			
		||||
export default [
 | 
			
		||||
    // You would not believe how much this change has frustrated users: ["if an ignores key is used
 | 
			
		||||
    // without any other keys in the configuration object, then the patterns act as global
 | 
			
		||||
    // ignores"](https://eslint.org/docs/latest/use/configure/ignore)
 | 
			
		||||
    {
 | 
			
		||||
        ignores: [
 | 
			
		||||
            "dist/",
 | 
			
		||||
            // don't ever lint node_modules
 | 
			
		||||
            "node_modules/",
 | 
			
		||||
            ".storybook/",
 | 
			
		||||
            ".wireit/",
 | 
			
		||||
            // don't lint build output (make sure it's set to your correct build folder name)
 | 
			
		||||
            // don't lint nyc coverage output
 | 
			
		||||
            "coverage/",
 | 
			
		||||
            "src/locale-codes.ts",
 | 
			
		||||
            "storybook-static/",
 | 
			
		||||
            "src/locales/",
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    eslint.configs.recommended,
 | 
			
		||||
    wcconf.configs["flat/recommended"],
 | 
			
		||||
    litconf.configs["flat/recommended"],
 | 
			
		||||
    ...tseslint.configs.recommended,
 | 
			
		||||
    sonar.configs.recommended,
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
            globals: {
 | 
			
		||||
                ...globals.browser,
 | 
			
		||||
                process: "readonly",
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["src/**"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "accessor-pairs": "error",
 | 
			
		||||
            "array-callback-return": "error",
 | 
			
		||||
            "block-scoped-var": "error",
 | 
			
		||||
            "consistent-return": "error",
 | 
			
		||||
            "consistent-this": ["error", "that"],
 | 
			
		||||
            "curly": ["error", "all"],
 | 
			
		||||
            "dot-notation": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    allowKeywords: true,
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
            "eqeqeq": "error",
 | 
			
		||||
            "func-names": "error",
 | 
			
		||||
            "guard-for-in": "error",
 | 
			
		||||
            "max-depth": ["error", 4],
 | 
			
		||||
            "max-nested-callbacks": ["error", 4],
 | 
			
		||||
            "max-params": ["error", 5],
 | 
			
		||||
            "new-cap": "error",
 | 
			
		||||
            "no-alert": "error",
 | 
			
		||||
            "no-array-constructor": "error",
 | 
			
		||||
            "no-bitwise": "error",
 | 
			
		||||
            "no-caller": "error",
 | 
			
		||||
            "no-case-declarations": "error",
 | 
			
		||||
            "no-class-assign": "error",
 | 
			
		||||
            "no-cond-assign": "error",
 | 
			
		||||
            "no-const-assign": "error",
 | 
			
		||||
            "no-constant-condition": "error",
 | 
			
		||||
            "no-control-regex": "error",
 | 
			
		||||
            "no-debugger": "error",
 | 
			
		||||
            "no-delete-var": "error",
 | 
			
		||||
            "no-div-regex": "error",
 | 
			
		||||
            "no-dupe-args": "error",
 | 
			
		||||
            "no-dupe-keys": "error",
 | 
			
		||||
            "no-duplicate-case": "error",
 | 
			
		||||
            "no-else-return": "error",
 | 
			
		||||
            "no-empty": "error",
 | 
			
		||||
            "no-empty-character-class": "error",
 | 
			
		||||
            "no-empty-function": "error",
 | 
			
		||||
            "no-labels": "error",
 | 
			
		||||
            "no-eq-null": "error",
 | 
			
		||||
            "no-eval": "error",
 | 
			
		||||
            "no-ex-assign": "error",
 | 
			
		||||
            "no-extend-native": "error",
 | 
			
		||||
            "no-extra-bind": "error",
 | 
			
		||||
            "no-extra-boolean-cast": "error",
 | 
			
		||||
            "no-extra-label": "error",
 | 
			
		||||
            "no-fallthrough": "error",
 | 
			
		||||
            "no-func-assign": "error",
 | 
			
		||||
            "no-implied-eval": "error",
 | 
			
		||||
            "no-implicit-coercion": "error",
 | 
			
		||||
            "no-implicit-globals": "error",
 | 
			
		||||
            "no-inner-declarations": ["error", "functions"],
 | 
			
		||||
            "no-invalid-regexp": "error",
 | 
			
		||||
            "no-irregular-whitespace": "error",
 | 
			
		||||
            "no-iterator": "error",
 | 
			
		||||
            "no-invalid-this": "error",
 | 
			
		||||
            "no-label-var": "error",
 | 
			
		||||
            "no-lone-blocks": "error",
 | 
			
		||||
            "no-lonely-if": "error",
 | 
			
		||||
            "no-loop-func": "error",
 | 
			
		||||
            "no-magic-numbers": ["error", { ignore: [0, 1, -1] }],
 | 
			
		||||
            "no-multi-str": "error",
 | 
			
		||||
            "no-negated-condition": "error",
 | 
			
		||||
            "no-nested-ternary": "error",
 | 
			
		||||
            "no-new": "error",
 | 
			
		||||
            "no-new-func": "error",
 | 
			
		||||
            "no-new-wrappers": "error",
 | 
			
		||||
            "no-obj-calls": "error",
 | 
			
		||||
            "no-octal": "error",
 | 
			
		||||
            "no-octal-escape": "error",
 | 
			
		||||
            "no-param-reassign": "error",
 | 
			
		||||
            "no-proto": "error",
 | 
			
		||||
            "no-redeclare": "error",
 | 
			
		||||
            "no-regex-spaces": "error",
 | 
			
		||||
            "no-restricted-syntax": ["error", "WithStatement"],
 | 
			
		||||
            "no-script-url": "error",
 | 
			
		||||
            "no-self-assign": "error",
 | 
			
		||||
            "no-self-compare": "error",
 | 
			
		||||
            "no-sequences": "error",
 | 
			
		||||
            "no-shadow": "warn",
 | 
			
		||||
            "no-shadow-restricted-names": "error",
 | 
			
		||||
            "no-sparse-arrays": "error",
 | 
			
		||||
            "no-this-before-super": "error",
 | 
			
		||||
            "no-throw-literal": "error",
 | 
			
		||||
            "no-trailing-spaces": "error",
 | 
			
		||||
            "no-undef": "error",
 | 
			
		||||
            "no-undef-init": "error",
 | 
			
		||||
            "no-unexpected-multiline": "error",
 | 
			
		||||
            "no-useless-constructor": "error",
 | 
			
		||||
            "no-unmodified-loop-condition": "error",
 | 
			
		||||
            "no-unneeded-ternary": "error",
 | 
			
		||||
            "no-unreachable": "error",
 | 
			
		||||
            "no-unused-expressions": "error",
 | 
			
		||||
            "no-unused-labels": "error",
 | 
			
		||||
            "no-use-before-define": "error",
 | 
			
		||||
            "no-useless-call": "error",
 | 
			
		||||
            "no-dupe-class-members": "error",
 | 
			
		||||
            "no-var": "error",
 | 
			
		||||
            "no-void": "error",
 | 
			
		||||
            "no-with": "error",
 | 
			
		||||
            "prefer-arrow-callback": "error",
 | 
			
		||||
            "prefer-const": "error",
 | 
			
		||||
            "prefer-rest-params": "error",
 | 
			
		||||
            "prefer-spread": "error",
 | 
			
		||||
            "prefer-template": "error",
 | 
			
		||||
            "radix": "error",
 | 
			
		||||
            "require-yield": "error",
 | 
			
		||||
            "strict": ["error", "global"],
 | 
			
		||||
            "use-isnan": "error",
 | 
			
		||||
            "valid-typeof": "error",
 | 
			
		||||
            "vars-on-top": "error",
 | 
			
		||||
            "yoda": ["error", "never"],
 | 
			
		||||
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            "no-console": ["error", { allow: ["debug", "warn", "error"] }],
 | 
			
		||||
            "sonarjs/cognitive-complexity": ["off", 9],
 | 
			
		||||
            "sonarjs/no-duplicate-string": "off",
 | 
			
		||||
            "sonarjs/no-nested-template-literals": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
            globals: {
 | 
			
		||||
                ...globals.nodeBuiltin,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["scripts/*.mjs", "*.ts", "*.mjs"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            "no-console": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
];
 | 
			
		||||
							
								
								
									
										85
									
								
								web/packages/common/scripts/eslint.precommit.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								web/packages/common/scripts/eslint.precommit.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
			
		||||
import eslint from "@eslint/js";
 | 
			
		||||
import tsparser from "@typescript-eslint/parser";
 | 
			
		||||
import litconf from "eslint-plugin-lit";
 | 
			
		||||
import sonar from "eslint-plugin-sonarjs";
 | 
			
		||||
import wcconf from "eslint-plugin-wc";
 | 
			
		||||
import globals from "globals";
 | 
			
		||||
import tseslint from "typescript-eslint";
 | 
			
		||||
 | 
			
		||||
export default [
 | 
			
		||||
    // You would not believe how much this change has frustrated users: ["if an ignores key is used
 | 
			
		||||
    // without any other keys in the configuration object, then the patterns act as global
 | 
			
		||||
    // ignores"](https://eslint.org/docs/latest/use/configure/ignore)
 | 
			
		||||
    {
 | 
			
		||||
        ignores: [
 | 
			
		||||
            "dist/",
 | 
			
		||||
            ".wireit/",
 | 
			
		||||
            // don't ever lint node_modules
 | 
			
		||||
            "node_modules/",
 | 
			
		||||
            ".storybook/*",
 | 
			
		||||
            // don't lint build output (make sure it's set to your correct build folder name)
 | 
			
		||||
            // don't lint nyc coverage output
 | 
			
		||||
            "coverage/",
 | 
			
		||||
            "src/locale-codes.ts",
 | 
			
		||||
            "storybook-static/",
 | 
			
		||||
            "src/locales/",
 | 
			
		||||
        ],
 | 
			
		||||
    },
 | 
			
		||||
    eslint.configs.recommended,
 | 
			
		||||
    wcconf.configs["flat/recommended"],
 | 
			
		||||
    litconf.configs["flat/recommended"],
 | 
			
		||||
    ...tseslint.configs.recommended,
 | 
			
		||||
    sonar.configs.recommended,
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["src/**"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            "no-console": ["error", { allow: ["debug", "warn", "error"] }],
 | 
			
		||||
            "sonarjs/cognitive-complexity": ["off", 9],
 | 
			
		||||
            "sonarjs/no-duplicate-string": "off",
 | 
			
		||||
            "sonarjs/no-nested-template-literals": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        languageOptions: {
 | 
			
		||||
            parser: tsparser,
 | 
			
		||||
            parserOptions: {
 | 
			
		||||
                ecmaVersion: 12,
 | 
			
		||||
                sourceType: "module",
 | 
			
		||||
            },
 | 
			
		||||
            globals: {
 | 
			
		||||
                ...globals.nodeBuiltin,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        files: ["scripts/*.mjs", "*.ts", "*.mjs"],
 | 
			
		||||
        rules: {
 | 
			
		||||
            "no-unused-vars": "off",
 | 
			
		||||
            "no-console": "off",
 | 
			
		||||
            "@typescript-eslint/ban-ts-comment": "off",
 | 
			
		||||
            "@typescript-eslint/no-unused-vars": [
 | 
			
		||||
                "error",
 | 
			
		||||
                {
 | 
			
		||||
                    argsIgnorePattern: "^_",
 | 
			
		||||
                    varsIgnorePattern: "^_",
 | 
			
		||||
                    caughtErrorsIgnorePattern: "^_",
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
];
 | 
			
		||||
@ -2,9 +2,9 @@ import {
 | 
			
		||||
    CSRFMiddleware,
 | 
			
		||||
    EventMiddleware,
 | 
			
		||||
    LoggingMiddleware,
 | 
			
		||||
} from "@goauthentik/common/api/middleware";
 | 
			
		||||
import { EVENT_LOCALE_REQUEST, VERSION } from "@goauthentik/common/constants";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global";
 | 
			
		||||
} from "@goauthentik/common/api/middleware.js";
 | 
			
		||||
import { EVENT_LOCALE_REQUEST, VERSION } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global.js";
 | 
			
		||||
 | 
			
		||||
import { Config, Configuration, CoreApi, CurrentBrand, RootApi } from "@goauthentik/api";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { EVENT_REQUEST_POST } from "@goauthentik/common/constants";
 | 
			
		||||
import { getCookie } from "@goauthentik/common/utils";
 | 
			
		||||
import { EVENT_REQUEST_POST } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { getCookie } from "@goauthentik/common/utils.js";
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
    CurrentBrand,
 | 
			
		||||
@ -17,7 +17,7 @@ type BuildEventListener<Data = unknown> = (event: MessageEvent<Data>) => void;
 | 
			
		||||
 *
 | 
			
		||||
 * ```ts
 | 
			
		||||
 * if (process.env.NODE_ENV === "development" && process.env.WATCHER_URL) {
 | 
			
		||||
 *   const { ESBuildObserver } = await import("@goauthentik/common/client");
 | 
			
		||||
 *   const { ESBuildObserver } = await import("@goauthentik/common/client.js");
 | 
			
		||||
 *
 | 
			
		||||
 *   new ESBuildObserver(process.env.WATCHER_URL);
 | 
			
		||||
 * }
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors.js";
 | 
			
		||||
 | 
			
		||||
export interface PlexPinResponse {
 | 
			
		||||
    // Only has the fields we care about
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import DOMPurify from "dompurify";
 | 
			
		||||
import DOMPurify, { Config } from "dompurify";
 | 
			
		||||
 | 
			
		||||
import { render } from "@lit-labs/ssr";
 | 
			
		||||
import { collectResult } from "@lit-labs/ssr/lib/render-result.js";
 | 
			
		||||
@ -6,7 +6,7 @@ import { TemplateResult, html } from "lit";
 | 
			
		||||
import { unsafeHTML } from "lit/directives/unsafe-html.js";
 | 
			
		||||
import { until } from "lit/directives/until.js";
 | 
			
		||||
 | 
			
		||||
export const DOM_PURIFY_STRICT: DOMPurify.Config = {
 | 
			
		||||
export const DOM_PURIFY_STRICT: Config = {
 | 
			
		||||
    ALLOWED_TAGS: ["#text"],
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import { config } from "@goauthentik/common/api/config";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors";
 | 
			
		||||
import { me } from "@goauthentik/common/users";
 | 
			
		||||
import { config } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors.js";
 | 
			
		||||
import { me } from "@goauthentik/common/users.js";
 | 
			
		||||
import {
 | 
			
		||||
    ErrorEvent,
 | 
			
		||||
    EventHint,
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { currentInterface } from "@goauthentik/common/sentry";
 | 
			
		||||
import { me } from "@goauthentik/common/users";
 | 
			
		||||
import { currentInterface } from "@goauthentik/common/sentry.js";
 | 
			
		||||
import { me } from "@goauthentik/common/users.js";
 | 
			
		||||
 | 
			
		||||
import { UiThemeEnum, UserSelf } from "@goauthentik/api";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EVENT_LOCALE_REQUEST } from "@goauthentik/common/constants";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EVENT_LOCALE_REQUEST } from "@goauthentik/common/constants.js";
 | 
			
		||||
 | 
			
		||||
import { CoreApi, ResponseError, SessionUser } from "@goauthentik/api";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors.js";
 | 
			
		||||
 | 
			
		||||
import { CSSResult, css } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { EVENT_MESSAGE, EVENT_WS_MESSAGE } from "@goauthentik/common/constants";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global";
 | 
			
		||||
import { MessageLevel } from "@goauthentik/common/messages";
 | 
			
		||||
import { EVENT_MESSAGE, EVENT_WS_MESSAGE } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global.js";
 | 
			
		||||
import { MessageLevel } from "@goauthentik/common/messages.js";
 | 
			
		||||
 | 
			
		||||
import { msg } from "@lit/localize";
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								web/packages/common/tsconfig.build.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								web/packages/common/tsconfig.build.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
    "extends": "../../tsconfig.base.json",
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "baseUrl": ".",
 | 
			
		||||
        "outDir": "./dist/",
 | 
			
		||||
        "types": ["webauthn"],
 | 
			
		||||
        "paths": {
 | 
			
		||||
            "@goauthentik/elements/*": ["./src/*"],
 | 
			
		||||
            "@goauthentik/locales/*": ["src/locales/*"]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								web/packages/common/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								web/packages/common/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
{
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "strict": true,
 | 
			
		||||
        "baseUrl": ".",
 | 
			
		||||
        "outDir": "./dist/",
 | 
			
		||||
        "esModuleInterop": true,
 | 
			
		||||
        "paths": {
 | 
			
		||||
            "@goauthentik/common/*": ["./src/*"],
 | 
			
		||||
            "@goauthentik/locales/*": ["src/locales/*"]
 | 
			
		||||
        },
 | 
			
		||||
        "skipLibCheck": true,
 | 
			
		||||
        "forceConsistentCasingInFileNames": true,
 | 
			
		||||
        "experimentalDecorators": true,
 | 
			
		||||
        "sourceMap": true,
 | 
			
		||||
        "target": "esnext",
 | 
			
		||||
        "module": "esnext",
 | 
			
		||||
        "moduleResolution": "bundler",
 | 
			
		||||
        "lib": [
 | 
			
		||||
            "ES5",
 | 
			
		||||
            "ES2015",
 | 
			
		||||
            "ES2016",
 | 
			
		||||
            "ES2017",
 | 
			
		||||
            "ES2018",
 | 
			
		||||
            "ES2019",
 | 
			
		||||
            "ES2020",
 | 
			
		||||
            "ESNext",
 | 
			
		||||
            "DOM",
 | 
			
		||||
            "DOM.Iterable",
 | 
			
		||||
            "WebWorker"
 | 
			
		||||
        ],
 | 
			
		||||
        "noUnusedLocals": true,
 | 
			
		||||
        "noImplicitReturns": true,
 | 
			
		||||
        "noFallthroughCasesInSwitch": true,
 | 
			
		||||
        "strictBindCallApply": true,
 | 
			
		||||
        "strictFunctionTypes": true,
 | 
			
		||||
        "strictNullChecks": true,
 | 
			
		||||
        "allowUnreachableCode": false,
 | 
			
		||||
        "allowUnusedLabels": false,
 | 
			
		||||
        "useDefineForClassFields": false,
 | 
			
		||||
        "alwaysStrict": true,
 | 
			
		||||
        "noImplicitAny": true,
 | 
			
		||||
    },
 | 
			
		||||
    "exclude": ["node_modules", "dist"]
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { globalAK } from "@goauthentik/common/global.js";
 | 
			
		||||
import "@goauthentik/elements/EmptyState";
 | 
			
		||||
import { WithBrandConfig } from "@goauthentik/elements/Interface/brandProvider";
 | 
			
		||||
import { WithLicenseSummary } from "@goauthentik/elements/Interface/licenseSummaryProvider";
 | 
			
		||||
 | 
			
		||||
@ -4,10 +4,10 @@ import { ROUTES } from "@goauthentik/admin/Routes";
 | 
			
		||||
import {
 | 
			
		||||
    EVENT_API_DRAWER_TOGGLE,
 | 
			
		||||
    EVENT_NOTIFICATION_DRAWER_TOGGLE,
 | 
			
		||||
} from "@goauthentik/common/constants";
 | 
			
		||||
import { configureSentry } from "@goauthentik/common/sentry";
 | 
			
		||||
import { me } from "@goauthentik/common/users";
 | 
			
		||||
import { WebsocketClient } from "@goauthentik/common/ws";
 | 
			
		||||
} from "@goauthentik/common/constants.js";
 | 
			
		||||
import { configureSentry } from "@goauthentik/common/sentry.js";
 | 
			
		||||
import { me } from "@goauthentik/common/users.js";
 | 
			
		||||
import { WebsocketClient } from "@goauthentik/common/ws.js";
 | 
			
		||||
import { AuthenticatedInterface } from "@goauthentik/elements/Interface";
 | 
			
		||||
import "@goauthentik/elements/ak-locale-context";
 | 
			
		||||
import "@goauthentik/elements/banner/EnterpriseStatusBanner";
 | 
			
		||||
@ -123,7 +123,7 @@ export class AdminInterface extends AuthenticatedInterface {
 | 
			
		||||
        super.connectedCallback();
 | 
			
		||||
 | 
			
		||||
        if (process.env.NODE_ENV === "development" && process.env.WATCHER_URL) {
 | 
			
		||||
            const { ESBuildObserver } = await import("@goauthentik/common/client");
 | 
			
		||||
            const { ESBuildObserver } = await import("@goauthentik/common/client.js");
 | 
			
		||||
 | 
			
		||||
            new ESBuildObserver(process.env.WATCHER_URL);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { EVENT_SIDEBAR_TOGGLE } from "@goauthentik/common/constants";
 | 
			
		||||
import { me } from "@goauthentik/common/users";
 | 
			
		||||
import { EVENT_SIDEBAR_TOGGLE } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { me } from "@goauthentik/common/users.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import {
 | 
			
		||||
    CapabilitiesEnum,
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { MessageLevel } from "@goauthentik/common/messages";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { MessageLevel } from "@goauthentik/common/messages.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/PageHeader";
 | 
			
		||||
import { showMessage } from "@goauthentik/elements/messages/MessageContainer";
 | 
			
		||||
 | 
			
		||||
@ -8,8 +8,8 @@ import "@goauthentik/admin/admin-overview/cards/WorkerStatusCard";
 | 
			
		||||
import "@goauthentik/admin/admin-overview/charts/AdminLoginAuthorizeChart";
 | 
			
		||||
import "@goauthentik/admin/admin-overview/charts/OutpostStatusChart";
 | 
			
		||||
import "@goauthentik/admin/admin-overview/charts/SyncStatusChart";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants";
 | 
			
		||||
import { me } from "@goauthentik/common/users";
 | 
			
		||||
import { VERSION } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { me } from "@goauthentik/common/users.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import { WithLicenseSummary } from "@goauthentik/elements/Interface/licenseSummaryProvider.js";
 | 
			
		||||
import "@goauthentik/elements/PageHeader";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/Spinner";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { PFSize } from "@goauthentik/common/enums.js";
 | 
			
		||||
import { AggregateCard } from "@goauthentik/elements/cards/AggregateCard";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@ import {
 | 
			
		||||
    AdminStatus,
 | 
			
		||||
    AdminStatusCard,
 | 
			
		||||
} from "@goauthentik/admin/admin-overview/cards/AdminStatusCard";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
 | 
			
		||||
import { msg } from "@lit/localize";
 | 
			
		||||
import { TemplateResult, html } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import { EventGeo, EventUser } from "@goauthentik/admin/events/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events.js";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels.js";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-event-info";
 | 
			
		||||
import "@goauthentik/elements/Tabs";
 | 
			
		||||
import "@goauthentik/elements/buttons/Dropdown";
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@ import {
 | 
			
		||||
    AdminStatus,
 | 
			
		||||
    AdminStatusCard,
 | 
			
		||||
} from "@goauthentik/admin/admin-overview/cards/AdminStatusCard";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
 | 
			
		||||
import { msg } from "@lit/localize";
 | 
			
		||||
import { TemplateResult, html } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@ import {
 | 
			
		||||
    AdminStatus,
 | 
			
		||||
    AdminStatusCard,
 | 
			
		||||
} from "@goauthentik/admin/admin-overview/cards/AdminStatusCard";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
 | 
			
		||||
import { msg, str } from "@lit/localize";
 | 
			
		||||
import { TemplateResult, html } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@ import {
 | 
			
		||||
    AdminStatus,
 | 
			
		||||
    AdminStatusCard,
 | 
			
		||||
} from "@goauthentik/admin/admin-overview/cards/AdminStatusCard";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
 | 
			
		||||
import { msg } from "@lit/localize";
 | 
			
		||||
import { TemplateResult, html } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart, RGBAColor } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import { ChartData } from "chart.js";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import { ChartData, Tick } from "chart.js";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { SummarizedSyncStatus } from "@goauthentik/admin/admin-overview/charts/SyncStatusChart";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import "@goauthentik/elements/forms/ConfirmationForm";
 | 
			
		||||
import { ChartData, ChartOptions } from "chart.js";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import "@goauthentik/elements/forms/ConfirmationForm";
 | 
			
		||||
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-number-input";
 | 
			
		||||
import "@goauthentik/components/ak-switch-input";
 | 
			
		||||
import "@goauthentik/components/ak-text-input";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import "@goauthentik/admin/admin-settings/AdminSettingsForm";
 | 
			
		||||
import { AdminSettingsForm } from "@goauthentik/admin/admin-settings/AdminSettingsForm";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/events/ObjectChangelog";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import { ChartData, Tick } from "chart.js";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/events/LogViewer";
 | 
			
		||||
import { Form } from "@goauthentik/elements/forms/Form";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import "@goauthentik/admin/applications/ProviderSelectModal";
 | 
			
		||||
import { iconHelperText } from "@goauthentik/admin/helperText";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-file-input";
 | 
			
		||||
import "@goauthentik/components/ak-radio-input";
 | 
			
		||||
import "@goauthentik/components/ak-switch-input";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import "@goauthentik/admin/applications/ApplicationForm";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import MDApplication from "@goauthentik/docs/add-secure-apps/applications/index.md";
 | 
			
		||||
import "@goauthentik/elements/AppIcon.js";
 | 
			
		||||
import { WithBrandConfig } from "@goauthentik/elements/Interface/brandProvider";
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import "@goauthentik/admin/applications/ApplicationForm";
 | 
			
		||||
import "@goauthentik/admin/applications/entitlements/ApplicationEntitlementPage";
 | 
			
		||||
import "@goauthentik/admin/policies/BoundPoliciesList";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionsPage";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { PFSize } from "@goauthentik/common/enums.js";
 | 
			
		||||
import "@goauthentik/components/events/ObjectChangelog";
 | 
			
		||||
import "@goauthentik/elements/AppIcon";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
 | 
			
		||||
import { TableColumn } from "@goauthentik/elements/table/Table";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,8 @@ import "@goauthentik/admin/applications/entitlements/ApplicationEntitlementForm"
 | 
			
		||||
import "@goauthentik/admin/policies/BoundPoliciesList";
 | 
			
		||||
import { PolicyBindingCheckTarget } from "@goauthentik/admin/policies/utils";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { PFSize } from "@goauthentik/common/enums";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { PFSize } from "@goauthentik/common/enums.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/Tabs";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/ak-wizard/ak-wizard-steps.js";
 | 
			
		||||
import { WizardUpdateEvent } from "@goauthentik/components/ak-wizard/events";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base.js";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import { ApplicationWizardStep } from "@goauthentik/admin/applications/wizard/ApplicationWizardStep.js";
 | 
			
		||||
import "@goauthentik/admin/applications/wizard/ak-wizard-title.js";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-radio-input";
 | 
			
		||||
import "@goauthentik/components/ak-switch-input";
 | 
			
		||||
import "@goauthentik/components/ak-text-input";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import "@goauthentik/admin/applications/wizard/ak-wizard-title.js";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
 | 
			
		||||
import { parseAPIError } from "@goauthentik/common/errors";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { parseAPIError } from "@goauthentik/common/errors.js";
 | 
			
		||||
import { WizardNavigationEvent } from "@goauthentik/components/ak-wizard/events.js";
 | 
			
		||||
import { type WizardButton } from "@goauthentik/components/ak-wizard/types";
 | 
			
		||||
import { CustomEmitterElement } from "@goauthentik/elements/utils/eventEmitter";
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,8 @@ import { HorizontalFormElement } from "@goauthentik/elements/forms/HorizontalFor
 | 
			
		||||
 | 
			
		||||
import { property, query } from "lit/decorators.js";
 | 
			
		||||
 | 
			
		||||
import { styles as AwadStyles } from "../../ApplicationWizardFormStepStyles.css.js";
 | 
			
		||||
import { styles as AwadStyles } from "../../ApplicationWizardFormStepStyles.css";
 | 
			
		||||
 | 
			
		||||
import { type ApplicationWizardState, type OneOfProvider } from "../../types";
 | 
			
		||||
 | 
			
		||||
export class ApplicationWizardProviderForm<T extends OneOfProvider> extends AKElement {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import "@goauthentik/admin/applications/wizard/ak-wizard-title.js";
 | 
			
		||||
import { renderForm } from "@goauthentik/admin/providers/oauth2/OAuth2ProviderFormForm.js";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
 | 
			
		||||
import { msg } from "@lit/localize";
 | 
			
		||||
import { html } from "lit";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { docLink } from "@goauthentik/common/global";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { docLink } from "@goauthentik/common/global.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-toggle-group";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import "@goauthentik/admin/blueprints/BlueprintForm";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants.js";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/buttons/ActionButton";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import "@goauthentik/admin/common/ak-crypto-certificate-search";
 | 
			
		||||
import "@goauthentik/admin/common/ak-flow-search/ak-flow-search";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import "@goauthentik/elements/forms/FormGroup";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import "@goauthentik/admin/brands/BrandForm";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import { SearchSelect } from "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
import { CustomListenerElement } from "@goauthentik/elements/utils/eventEmitter";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import { SearchSelect } from "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
import "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { RenderFlowOption } from "@goauthentik/admin/flows/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import { SearchSelect } from "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
import "@goauthentik/elements/forms/SearchSelect";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { Form } from "@goauthentik/elements/forms/Form";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import "@goauthentik/admin/crypto/CertificateGenerateForm";
 | 
			
		||||
import "@goauthentik/admin/crypto/CertificateKeyPairForm";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import { PFColor } from "@goauthentik/elements/Label";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EVENT_REFRESH_ENTERPRISE } from "@goauthentik/common/constants";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EVENT_REFRESH_ENTERPRISE } from "@goauthentik/common/constants.js";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import "@goauthentik/admin/enterprise/EnterpriseLicenseForm";
 | 
			
		||||
import "@goauthentik/admin/enterprise/EnterpriseStatusCard";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils.js";
 | 
			
		||||
import { PFColor } from "@goauthentik/elements/Label";
 | 
			
		||||
import "@goauthentik/elements/Spinner";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,9 @@
 | 
			
		||||
import "@goauthentik/admin/events/EventVolumeChart";
 | 
			
		||||
import { EventGeo, EventUser } from "@goauthentik/admin/events/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events.js";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels.js";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-event-info";
 | 
			
		||||
import { PaginatedResponse } from "@goauthentik/elements/table/Table";
 | 
			
		||||
import { TableColumn } from "@goauthentik/elements/table/Table";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import { EventGeo, EventUser } from "@goauthentik/admin/events/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events.js";
 | 
			
		||||
import { actionToLabel } from "@goauthentik/common/labels.js";
 | 
			
		||||
import { getRelativeTime } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/components/ak-event-info";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/PageHeader";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { AKChart } from "@goauthentik/elements/charts/Chart";
 | 
			
		||||
import { ChartData } from "chart.js";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { severityToLabel } from "@goauthentik/common/labels";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { severityToLabel } from "@goauthentik/common/labels.js";
 | 
			
		||||
import "@goauthentik/elements/ak-dual-select/ak-dual-select-dynamic-selected-provider.js";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { DualSelectPair } from "@goauthentik/elements/ak-dual-select/types";
 | 
			
		||||
 | 
			
		||||
import { EventsApi, NotificationTransport } from "@goauthentik/api";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import "@goauthentik/admin/events/RuleForm";
 | 
			
		||||
import "@goauthentik/admin/policies/BoundPoliciesList";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { severityToLabel } from "@goauthentik/common/labels";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { severityToLabel } from "@goauthentik/common/labels.js";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
import "@goauthentik/elements/forms/ModalForm";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
 | 
			
		||||
import "@goauthentik/elements/forms/Radio";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import "@goauthentik/admin/events/TransportForm";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/elements/buttons/ActionButton";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events";
 | 
			
		||||
import { truncate } from "@goauthentik/common/utils";
 | 
			
		||||
import { EventWithContext } from "@goauthentik/common/events.js";
 | 
			
		||||
import { truncate } from "@goauthentik/common/utils.js";
 | 
			
		||||
import { KeyUnknown } from "@goauthentik/elements/forms/Form";
 | 
			
		||||
 | 
			
		||||
import { msg, str } from "@lit/localize";
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import "@goauthentik/admin/flows/StageBindingForm";
 | 
			
		||||
import "@goauthentik/admin/policies/BoundPoliciesList";
 | 
			
		||||
import "@goauthentik/admin/stages/StageWizard";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/elements/Tabs";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
import "@goauthentik/elements/forms/ModalForm";
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { Diagram } from "@goauthentik/elements/Diagram";
 | 
			
		||||
import "@goauthentik/elements/EmptyState";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
import { DesignationToLabel, LayoutToLabel } from "@goauthentik/admin/flows/utils";
 | 
			
		||||
import { AuthenticationEnum } from "@goauthentik/api/dist/models/AuthenticationEnum";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import {
 | 
			
		||||
    CapabilitiesEnum,
 | 
			
		||||
    WithCapabilitiesConfig,
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { SentryIgnoredError } from "@goauthentik/common/errors.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/events/LogViewer";
 | 
			
		||||
import { Form } from "@goauthentik/elements/forms/Form";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import "@goauthentik/admin/flows/FlowForm";
 | 
			
		||||
import "@goauthentik/admin/flows/FlowImportForm";
 | 
			
		||||
import { DesignationToLabel } from "@goauthentik/admin/flows/utils";
 | 
			
		||||
import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils";
 | 
			
		||||
import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { groupBy } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
import "@goauthentik/elements/forms/ConfirmationForm";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import "@goauthentik/admin/flows/FlowForm";
 | 
			
		||||
import { DesignationToLabel } from "@goauthentik/admin/flows/utils";
 | 
			
		||||
import "@goauthentik/admin/policies/BoundPoliciesList";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionsPage";
 | 
			
		||||
import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { AndNext, DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/events/ObjectChangelog";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
import "@goauthentik/elements/PageHeader";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first, groupBy } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first, groupBy } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/forms/HorizontalFormElement";
 | 
			
		||||
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
 | 
			
		||||
import "@goauthentik/elements/forms/Radio";
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import "@goauthentik/admin/groups/MemberSelectModal";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { first } from "@goauthentik/common/utils";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { first } from "@goauthentik/common/utils.js";
 | 
			
		||||
import "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror";
 | 
			
		||||
import "@goauthentik/elements/ak-dual-select/ak-dual-select-provider";
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
import "@goauthentik/admin/groups/GroupForm";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/elements/buttons/SpinnerButton";
 | 
			
		||||
import "@goauthentik/elements/forms/DeleteBulkForm";
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,8 @@
 | 
			
		||||
import "@goauthentik/admin/groups/GroupForm";
 | 
			
		||||
import "@goauthentik/admin/groups/RelatedUserList";
 | 
			
		||||
import "@goauthentik/admin/rbac/ObjectPermissionsPage";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants";
 | 
			
		||||
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config.js";
 | 
			
		||||
import { EVENT_REFRESH } from "@goauthentik/common/constants.js";
 | 
			
		||||
import "@goauthentik/components/ak-status-label";
 | 
			
		||||
import "@goauthentik/components/events/ObjectChangelog";
 | 
			
		||||
import { AKElement } from "@goauthentik/elements/Base";
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user