Compare commits
	
		
			38 Commits
		
	
	
		
			server-con
			...
			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
	