mirror of
https://github.com/goauthentik/authentik
synced 2026-04-25 17:15:26 +02:00
website: Docusaurus 3.9.2 (#18506)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
FROM --platform=${BUILDPLATFORM} docker.io/library/node:24-trixie-slim@sha256:45babd1b4ce0349fb12c4e24bf017b90b96d52806db32e001e3013f341bef0fe AS docs-builder
|
FROM --platform=${BUILDPLATFORM} docker.io/library/node:25.2.1-trixie@sha256:7942b337b20b67cd846828242f4e033cc29a83dde0f179b373636f3cbf072ae5 AS docs-builder
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
@@ -6,6 +6,7 @@ WORKDIR /work/website
|
|||||||
|
|
||||||
RUN --mount=type=bind,target=/work/website/package.json,src=./website/package.json \
|
RUN --mount=type=bind,target=/work/website/package.json,src=./website/package.json \
|
||||||
--mount=type=bind,target=/work/website/package-lock.json,src=./website/package-lock.json \
|
--mount=type=bind,target=/work/website/package-lock.json,src=./website/package-lock.json \
|
||||||
|
--mount=type=bind,target=/work/website/vendored/detect-package-manager,src=./website/vendored/detect-package-manager \
|
||||||
--mount=type=bind,target=/work/website/docusaurus-theme/package.json,src=./website/docusaurus-theme/package.json \
|
--mount=type=bind,target=/work/website/docusaurus-theme/package.json,src=./website/docusaurus-theme/package.json \
|
||||||
--mount=type=bind,target=/work/website/api/package.json,src=./website/api/package.json \
|
--mount=type=bind,target=/work/website/api/package.json,src=./website/api/package.json \
|
||||||
--mount=type=bind,target=/work/website/integrations/package.json,src=./website/integrations/package.json \
|
--mount=type=bind,target=/work/website/integrations/package.json,src=./website/integrations/package.json \
|
||||||
|
|||||||
14
website/api/eslint.config.mjs
Normal file
14
website/api/eslint.config.mjs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
||||||
|
|
||||||
|
export default createESLintPackageConfig({
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
|
ignorePatterns: [
|
||||||
|
// ---
|
||||||
|
...DefaultIgnorePatterns,
|
||||||
|
"**/.docusaurus/",
|
||||||
|
"**/build",
|
||||||
|
"**/reference",
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -20,15 +20,15 @@
|
|||||||
"#reference/sidebar": "./reference/sidebar.ts"
|
"#reference/sidebar": "./reference/sidebar.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^3.8.1",
|
"@docusaurus/core": "^3.9.2",
|
||||||
"@docusaurus/faster": "^3.8.1",
|
"@docusaurus/faster": "^3.9.2",
|
||||||
"@docusaurus/module-type-aliases": "^3.8.1",
|
"@docusaurus/module-type-aliases": "^3.9.2",
|
||||||
"@docusaurus/plugin-client-redirects": "^3.8.1",
|
"@docusaurus/plugin-client-redirects": "^3.9.2",
|
||||||
"@docusaurus/plugin-content-docs": "^3.8.1",
|
"@docusaurus/plugin-content-docs": "^3.9.2",
|
||||||
"@docusaurus/preset-classic": "^3.8.1",
|
"@docusaurus/preset-classic": "^3.9.2",
|
||||||
"@docusaurus/theme-common": "^3.8.1",
|
"@docusaurus/theme-common": "^3.9.2",
|
||||||
"@docusaurus/tsconfig": "^3.8.1",
|
"@docusaurus/tsconfig": "^3.9.2",
|
||||||
"@docusaurus/types": "^3.8.1",
|
"@docusaurus/types": "^3.9.2",
|
||||||
"@goauthentik/docusaurus-config": "^2.2.2",
|
"@goauthentik/docusaurus-config": "^2.2.2",
|
||||||
"@goauthentik/docusaurus-theme": "*",
|
"@goauthentik/docusaurus-theme": "*",
|
||||||
"@goauthentik/tsconfig": "^1.0.5",
|
"@goauthentik/tsconfig": "^1.0.5",
|
||||||
@@ -39,15 +39,18 @@
|
|||||||
"docusaurus-plugin-openapi-docs": "^4.5.1",
|
"docusaurus-plugin-openapi-docs": "^4.5.1",
|
||||||
"docusaurus-theme-openapi-docs": "^4.5.1",
|
"docusaurus-theme-openapi-docs": "^4.5.1",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
|
"openapi-to-postmanv2": "^5.0.0",
|
||||||
|
"postman-code-generators": "^2.1.0",
|
||||||
|
"postman-collection": "^5.0.2",
|
||||||
"prism-react-renderer": "^2.4.1",
|
"prism-react-renderer": "^2.4.1",
|
||||||
"react": "^19.1.1",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
"typescript": "^5.9.3"
|
"typescript": "^5.9.3"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@rspack/binding-darwin-arm64": "1.6.5",
|
"@rspack/binding-darwin-arm64": "1.6.6",
|
||||||
"@rspack/binding-linux-arm64-gnu": "1.6.5",
|
"@rspack/binding-linux-arm64-gnu": "1.6.6",
|
||||||
"@rspack/binding-linux-x64-gnu": "1.6.5",
|
"@rspack/binding-linux-x64-gnu": "1.6.6",
|
||||||
"@swc/core-darwin-arm64": "1.15.3",
|
"@swc/core-darwin-arm64": "1.15.3",
|
||||||
"@swc/core-linux-arm64-gnu": "1.15.3",
|
"@swc/core-linux-arm64-gnu": "1.15.3",
|
||||||
"@swc/core-linux-x64-gnu": "1.15.3",
|
"@swc/core-linux-x64-gnu": "1.15.3",
|
||||||
@@ -69,10 +72,5 @@
|
|||||||
"last 1 firefox version",
|
"last 1 firefox version",
|
||||||
"last 1 safari version"
|
"last 1 safari version"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"overrides": {
|
|
||||||
"format-imports": {
|
|
||||||
"eslint": "^9.30.1"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ The Remote Access Control (RAC) provider is a highly flexible feature for access
|
|||||||
|
|
||||||
For overview information, see the [RAC provider](./index.md) documentation. You can also view our video on YouTube for setting up RAC.
|
For overview information, see the [RAC provider](./index.md) documentation. You can also view our video on YouTube for setting up RAC.
|
||||||
|
|
||||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/9wahIBRV6Ts;start=22" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
|
<iframe width="560" height="315" src="https://www.youtube.com/embed/9wahIBRV6Ts;start=22" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
|
||||||
|
|
||||||
## Overview workflow to create an RAC provider
|
## Overview workflow to create an RAC provider
|
||||||
|
|
||||||
|
|||||||
13
website/docs/eslint.config.mjs
Normal file
13
website/docs/eslint.config.mjs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
||||||
|
|
||||||
|
export default createESLintPackageConfig({
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
|
ignorePatterns: [
|
||||||
|
// ---
|
||||||
|
...DefaultIgnorePatterns,
|
||||||
|
"**/.docusaurus/",
|
||||||
|
"**/build",
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -14,21 +14,22 @@
|
|||||||
"start": "docusaurus start"
|
"start": "docusaurus start"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^3.8.1",
|
"@docusaurus/core": "^3.9.2",
|
||||||
"@docusaurus/module-type-aliases": "^3.8.1",
|
"@docusaurus/module-type-aliases": "^3.9.2",
|
||||||
"@docusaurus/preset-classic": "^3.8.1",
|
"@docusaurus/preset-classic": "^3.9.2",
|
||||||
"@docusaurus/theme-mermaid": "^3.8.1",
|
"@docusaurus/theme-mermaid": "^3.9.2",
|
||||||
"@docusaurus/tsconfig": "^3.8.1",
|
"@docusaurus/tsconfig": "^3.9.2",
|
||||||
"@docusaurus/types": "^3.8.1",
|
"@docusaurus/types": "^3.9.2",
|
||||||
"@goauthentik/docusaurus-config": "^2.2.2",
|
"@goauthentik/docusaurus-config": "^2.2.2",
|
||||||
"@goauthentik/docusaurus-theme": "*",
|
"@goauthentik/docusaurus-theme": "*",
|
||||||
"@mdx-js/react": "^3.1.1",
|
"@mdx-js/react": "^3.1.1",
|
||||||
"@types/react": "^19.2.7",
|
"@types/react": "^19.2.7",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"prism-react-renderer": "^2.3.0",
|
"prism-react-renderer": "^2.4.1",
|
||||||
"react": "^19.1.1",
|
"react": "^19.2.0",
|
||||||
"react-before-after-slider-component": "^1.1.8",
|
"react-before-after-slider-component": "^1.1.8",
|
||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
|
"typescript": "^5.9.3",
|
||||||
"unist-util-visit": "^5.0.0"
|
"unist-util-visit": "^5.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
12
website/docusaurus-theme/eslint.config.mjs
Normal file
12
website/docusaurus-theme/eslint.config.mjs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
||||||
|
|
||||||
|
export default createESLintPackageConfig({
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
|
ignorePatterns: [
|
||||||
|
// ---
|
||||||
|
...DefaultIgnorePatterns,
|
||||||
|
"**/.docusaurus/",
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"#theme/*": "./theme/*"
|
"#theme/*": "./theme/*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/preset-classic": "^3.8.1",
|
"@docusaurus/preset-classic": "^3.9.2",
|
||||||
"@goauthentik/docusaurus-config": "^2.2.2",
|
"@goauthentik/docusaurus-config": "^2.2.2",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
|||||||
@@ -49,8 +49,6 @@ async function akReleasesPlugin(loadContext, options) {
|
|||||||
env: environment,
|
env: environment,
|
||||||
};
|
};
|
||||||
|
|
||||||
content.publicPath;
|
|
||||||
|
|
||||||
return content;
|
return content;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -49,12 +49,12 @@ const RedirectFound: React.FC<RedirectFoundProps> = ({ nextURL, className }) =>
|
|||||||
const usingRouter = nextURL.startsWith("/");
|
const usingRouter = nextURL.startsWith("/");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log("Redirecting...", { nextURL, usingRouter });
|
console.debug("Redirecting...", { nextURL, usingRouter });
|
||||||
|
|
||||||
if (usingRouter) return;
|
if (usingRouter) return;
|
||||||
|
|
||||||
window.location.assign(nextURL);
|
window.location.assign(nextURL);
|
||||||
}, []);
|
}, [nextURL, usingRouter]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main
|
<main
|
||||||
@@ -112,15 +112,16 @@ const NotFoundContentRouter: React.FC<Props> = (props) => {
|
|||||||
|
|
||||||
// Is there somewhere to redirect to that isn't the current pathname?
|
// Is there somewhere to redirect to that isn't the current pathname?
|
||||||
if (!destination || destination === pathname) {
|
if (!destination || destination === pathname) {
|
||||||
console.log("No redirect found", { pathname, suffix, destination });
|
console.debug("No redirect found", { pathname, suffix, destination });
|
||||||
|
|
||||||
return <NotFound {...props} />;
|
return <NotFound {...props} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
const nextURL = destination + suffix;
|
const nextURL = destination + suffix;
|
||||||
|
|
||||||
console.log("Redirect found", { pathname, suffix, destination, nextURL });
|
console.debug("Redirect found", { pathname, suffix, destination, nextURL });
|
||||||
|
|
||||||
|
// eslint-disable-next-line react-hooks/immutability
|
||||||
document.documentElement.dataset.redirect = "pending";
|
document.documentElement.dataset.redirect = "pending";
|
||||||
|
|
||||||
return <RedirectFound nextURL={nextURL} {...props} />;
|
return <RedirectFound nextURL={nextURL} {...props} />;
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
||||||
|
|
||||||
export default createESLintPackageConfig({
|
export default createESLintPackageConfig({
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
ignorePatterns: [
|
ignorePatterns: [
|
||||||
// ---
|
// ---
|
||||||
...DefaultIgnorePatterns,
|
...DefaultIgnorePatterns,
|
||||||
|
|||||||
13
website/integrations/eslint.config.mjs
Normal file
13
website/integrations/eslint.config.mjs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { createESLintPackageConfig, DefaultIgnorePatterns } from "@goauthentik/eslint-config";
|
||||||
|
|
||||||
|
export default createESLintPackageConfig({
|
||||||
|
parserOptions: {
|
||||||
|
tsconfigRootDir: import.meta.dirname,
|
||||||
|
},
|
||||||
|
ignorePatterns: [
|
||||||
|
// ---
|
||||||
|
...DefaultIgnorePatterns,
|
||||||
|
"**/.docusaurus/",
|
||||||
|
"**/build",
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -12,21 +12,22 @@
|
|||||||
"start": "docusaurus start"
|
"start": "docusaurus start"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^3.8.1",
|
"@docusaurus/core": "^3.9.2",
|
||||||
"@docusaurus/module-type-aliases": "^3.8.1",
|
"@docusaurus/module-type-aliases": "^3.9.2",
|
||||||
"@docusaurus/plugin-client-redirects": "^3.8.1",
|
"@docusaurus/plugin-client-redirects": "^3.9.2",
|
||||||
"@docusaurus/preset-classic": "^3.8.1",
|
"@docusaurus/preset-classic": "^3.9.2",
|
||||||
"@docusaurus/theme-mermaid": "^3.8.1",
|
"@docusaurus/theme-mermaid": "^3.9.2",
|
||||||
"@docusaurus/tsconfig": "^3.8.1",
|
"@docusaurus/tsconfig": "^3.9.2",
|
||||||
"@docusaurus/types": "^3.8.1",
|
"@docusaurus/types": "^3.9.2",
|
||||||
"@goauthentik/docusaurus-config": "^2.2.2",
|
"@goauthentik/docusaurus-config": "^2.2.2",
|
||||||
"@goauthentik/docusaurus-theme": "*",
|
"@goauthentik/docusaurus-theme": "*",
|
||||||
"@mdx-js/react": "^3.1.1",
|
"@mdx-js/react": "^3.1.1",
|
||||||
"@types/react": "^19.2.7",
|
"@types/react": "^19.2.7",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"prism-react-renderer": "^2.3.0",
|
"prism-react-renderer": "^2.4.1",
|
||||||
"react": "^19.1.1",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.2.0"
|
"react-dom": "^19.2.0",
|
||||||
|
"typescript": "^5.9.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=24",
|
"node": ">=24",
|
||||||
|
|||||||
2432
website/package-lock.json
generated
2432
website/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -30,14 +30,15 @@
|
|||||||
"netlify-plugin-cache": "^1.0.3",
|
"netlify-plugin-cache": "^1.0.3",
|
||||||
"netlify-redirect-parser": "^14.4.0",
|
"netlify-redirect-parser": "^14.4.0",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"prettier": "^3.6.2",
|
"postman-code-generators": "2.1.0",
|
||||||
|
"prettier": "^3.7.3",
|
||||||
"prettier-plugin-packagejson": "^2.5.20",
|
"prettier-plugin-packagejson": "^2.5.20",
|
||||||
"typescript-eslint": "^8.48.0"
|
"typescript-eslint": "^8.48.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@rspack/binding-darwin-arm64": "1.6.5",
|
"@rspack/binding-darwin-arm64": "1.6.6",
|
||||||
"@rspack/binding-linux-arm64-gnu": "1.6.5",
|
"@rspack/binding-linux-arm64-gnu": "1.6.6",
|
||||||
"@rspack/binding-linux-x64-gnu": "1.6.5",
|
"@rspack/binding-linux-x64-gnu": "1.6.6",
|
||||||
"@swc/core-darwin-arm64": "1.15.3",
|
"@swc/core-darwin-arm64": "1.15.3",
|
||||||
"@swc/core-linux-arm64-gnu": "1.15.3",
|
"@swc/core-linux-arm64-gnu": "1.15.3",
|
||||||
"@swc/core-linux-x64-gnu": "1.15.3",
|
"@swc/core-linux-x64-gnu": "1.15.3",
|
||||||
@@ -53,6 +54,7 @@
|
|||||||
"npm": ">=11.6.2"
|
"npm": ">=11.6.2"
|
||||||
},
|
},
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
"vendored/*",
|
||||||
"docusaurus-theme",
|
"docusaurus-theme",
|
||||||
"api",
|
"api",
|
||||||
"integrations",
|
"integrations",
|
||||||
@@ -60,8 +62,45 @@
|
|||||||
],
|
],
|
||||||
"prettier": "@goauthentik/prettier-config",
|
"prettier": "@goauthentik/prettier-config",
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"@goauthentik/api-docs": {
|
||||||
|
"openapi-to-postmanv2": "^5.0.0",
|
||||||
|
"postman-collection": "^5.0.2",
|
||||||
|
"postman-code-generators": {
|
||||||
|
"detect-package-manager": "file:./vendored/detect-package-manager",
|
||||||
|
"shelljs": "0.10.0"
|
||||||
|
},
|
||||||
|
"docusaurus-theme-openapi-docs": {
|
||||||
|
"postman-code-generators": {
|
||||||
|
".": "^2.1.0",
|
||||||
|
"detect-package-manager": "file:./vendored/detect-package-manager"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"docusaurus-theme-openapi-docs": {
|
||||||
|
"postman-code-generators": {
|
||||||
|
".": "^1.10.1",
|
||||||
|
"detect-package-manager": "file:./vendored/detect-package-manager",
|
||||||
|
"shelljs": "0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"format-imports": {
|
"format-imports": {
|
||||||
"eslint": "^9.31.0"
|
"eslint": "$eslint"
|
||||||
|
},
|
||||||
|
"postman-code-generators": {
|
||||||
|
"detect-package-manager": "file:./vendored/detect-package-manager",
|
||||||
|
"shelljs": "0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"devEngines": {
|
||||||
|
"runtime": {
|
||||||
|
"name": "node",
|
||||||
|
"onFail": "error",
|
||||||
|
"version": ">=24"
|
||||||
|
},
|
||||||
|
"packageManager": {
|
||||||
|
"name": "npm",
|
||||||
|
"onFail": "error",
|
||||||
|
"version": ">=11.6.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
27
website/vendored/detect-package-manager/index.mjs
Normal file
27
website/vendored/detect-package-manager/index.mjs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* @file Vendored detect-package-manager
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { exec } from "node:child_process";
|
||||||
|
import { promisify } from "node:util";
|
||||||
|
|
||||||
|
const execPromise = promisify(exec);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {Promise<string>} The detected npm version.
|
||||||
|
*/
|
||||||
|
export async function getNpmVersion() {
|
||||||
|
try {
|
||||||
|
const { stdout } = await execPromise("npm --version");
|
||||||
|
return stdout.trim();
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error("Failed to get npm version", { cause: error });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {string} The detected package manager.
|
||||||
|
*/
|
||||||
|
export function detect() {
|
||||||
|
return Promise.resolve("npm");
|
||||||
|
}
|
||||||
9
website/vendored/detect-package-manager/package.json
Normal file
9
website/vendored/detect-package-manager/package.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"name": "detect-package-manager",
|
||||||
|
"version": "2025.12.0",
|
||||||
|
"description": "Vendored package to detect package manager",
|
||||||
|
"license": "MIT",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"exports": "./index.mjs"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user