diff --git a/package-lock.json b/package-lock.json
index 32961754..78afc9c5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"@fortawesome/react-fontawesome": "^0.2.2",
"@mui/icons-material": "^6.1.6",
"@mui/material": "^6.0.1",
- "@octokit/auth-app": "^7.1.1",
+ "@octokit/auth-app": "^7.1.2",
"@octokit/core": "^6.1.2",
"@octokit/webhooks": "^13.3.0",
"@stoplight/elements": "^8.4.5",
@@ -36,7 +36,7 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"redis-semaphore": "^5.6.0",
- "redoc": "^2.1.5",
+ "redoc": "^2.2.0",
"sharp": "^0.33.5",
"styled-components": "^6.1.13",
"swagger-ui-react": "^5.17.14",
@@ -48,14 +48,14 @@
"devDependencies": {
"@auth/pg-adapter": "^1.7.2",
"@types/jest": "^29.5.12",
- "@types/node": "^22.8.7",
+ "@types/node": "^22.9.0",
"@types/nprogress": "^0.2.3",
"@types/pg": "^8.11.10",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.0",
"@types/swagger-ui-react": "^4.18.3",
- "@typescript-eslint/eslint-plugin": "^8.12.2",
- "@typescript-eslint/parser": "^8.12.2",
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
+ "@typescript-eslint/parser": "^8.13.0",
"autoprefixer": "^10.4.20",
"eslint": "^8.57.1",
"eslint-config-next": "^14.2.14",
@@ -2454,16 +2454,16 @@
}
},
"node_modules/@octokit/auth-app": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-7.1.1.tgz",
- "integrity": "sha512-kRAd6yelV9OgvlEJE88H0VLlQdZcag9UlLr7dV0YYP37X8PPDvhgiTy66QVhDXdyoT0AleFN2w/qXkPdrSzINg==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-7.1.2.tgz",
+ "integrity": "sha512-5cfWRr1hr0w/EW3StFIIOkMtYhOyGZ6/R3T0xeN6UgC/uL5pIyeood9N/8Z7W4NZUdz2QK1Fv0oM/1AzTME3/Q==",
"dependencies": {
"@octokit/auth-oauth-app": "^8.1.0",
"@octokit/auth-oauth-user": "^5.1.0",
"@octokit/request": "^9.1.1",
"@octokit/request-error": "^6.1.1",
"@octokit/types": "^13.4.1",
- "lru-cache": "^10.0.0",
+ "lru-cache": "npm:@wolfy1339/lru-cache@^11.0.2-patch.1",
"universal-github-app-jwt": "^2.2.0",
"universal-user-agent": "^7.0.0"
},
@@ -2471,6 +2471,15 @@
"node": ">= 18"
}
},
+ "node_modules/@octokit/auth-app/node_modules/lru-cache": {
+ "name": "@wolfy1339/lru-cache",
+ "version": "11.0.2-patch.1",
+ "resolved": "https://registry.npmjs.org/@wolfy1339/lru-cache/-/lru-cache-11.0.2-patch.1.tgz",
+ "integrity": "sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==",
+ "engines": {
+ "node": "18 >=18.20 || 20 || >=22"
+ }
+ },
"node_modules/@octokit/auth-oauth-app": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-8.1.1.tgz",
@@ -4450,9 +4459,9 @@
"integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA=="
},
"node_modules/@types/node": {
- "version": "22.8.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.7.tgz",
- "integrity": "sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q==",
+ "version": "22.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
+ "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
"dependencies": {
"undici-types": "~6.19.8"
}
@@ -4587,16 +4596,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
- "integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
+ "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.12.2",
- "@typescript-eslint/type-utils": "8.12.2",
- "@typescript-eslint/utils": "8.12.2",
- "@typescript-eslint/visitor-keys": "8.12.2",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/type-utils": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -4620,15 +4629,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz",
- "integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
+ "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.12.2",
- "@typescript-eslint/types": "8.12.2",
- "@typescript-eslint/typescript-estree": "8.12.2",
- "@typescript-eslint/visitor-keys": "8.12.2",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"debug": "^4.3.4"
},
"engines": {
@@ -4648,13 +4657,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz",
- "integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
+ "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.12.2",
- "@typescript-eslint/visitor-keys": "8.12.2"
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4665,13 +4674,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz",
- "integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
+ "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.12.2",
- "@typescript-eslint/utils": "8.12.2",
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -4689,9 +4698,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz",
- "integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
+ "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4702,13 +4711,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz",
- "integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
+ "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.12.2",
- "@typescript-eslint/visitor-keys": "8.12.2",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -4730,15 +4739,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz",
- "integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
+ "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.12.2",
- "@typescript-eslint/types": "8.12.2",
- "@typescript-eslint/typescript-estree": "8.12.2"
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4752,12 +4761,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.12.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz",
- "integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
+ "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.12.2",
+ "@typescript-eslint/types": "8.13.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
@@ -11743,7 +11752,8 @@
"node_modules/lru-cache": {
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
},
"node_modules/lunr": {
"version": "2.3.9",
@@ -17454,9 +17464,9 @@
}
},
"node_modules/redoc": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.1.5.tgz",
- "integrity": "sha512-POSbVg+7WLf+/5/c6GWLxL7+9t2D+1WlZdLN0a6qaCQc+ih3XYzteRBkXEN5kjrYrRNjdspfxTZkDLN5WV3Tzg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.2.0.tgz",
+ "integrity": "sha512-52rz/xJtpUBc3Y/GAkaX03czKhQXTxoU7WnkXNzRLuGwiGb/iEO4OgwcgQqtwHWrYNaZXTyqZ4MAVXpi/e1gAg==",
"dependencies": {
"@cfaester/enzyme-adapter-react-18": "^0.8.0",
"@redocly/openapi-core": "^1.4.0",
diff --git a/package.json b/package.json
index befad498..6379c69b 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"@fortawesome/react-fontawesome": "^0.2.2",
"@mui/icons-material": "^6.1.6",
"@mui/material": "^6.0.1",
- "@octokit/auth-app": "^7.1.1",
+ "@octokit/auth-app": "^7.1.2",
"@octokit/core": "^6.1.2",
"@octokit/webhooks": "^13.3.0",
"@stoplight/elements": "^8.4.5",
@@ -43,7 +43,7 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"redis-semaphore": "^5.6.0",
- "redoc": "^2.1.5",
+ "redoc": "^2.2.0",
"sharp": "^0.33.5",
"styled-components": "^6.1.13",
"swagger-ui-react": "^5.17.14",
@@ -55,14 +55,14 @@
"devDependencies": {
"@auth/pg-adapter": "^1.7.2",
"@types/jest": "^29.5.12",
- "@types/node": "^22.8.7",
+ "@types/node": "^22.9.0",
"@types/nprogress": "^0.2.3",
"@types/pg": "^8.11.10",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.0",
"@types/swagger-ui-react": "^4.18.3",
- "@typescript-eslint/eslint-plugin": "^8.12.2",
- "@typescript-eslint/parser": "^8.12.2",
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
+ "@typescript-eslint/parser": "^8.13.0",
"autoprefixer": "^10.4.20",
"eslint": "^8.57.1",
"eslint-config-next": "^14.2.14",
diff --git a/src/app/api/proxy/route.ts b/src/app/api/proxy/route.ts
index 5d5f10b4..256ee955 100644
--- a/src/app/api/proxy/route.ts
+++ b/src/app/api/proxy/route.ts
@@ -55,7 +55,20 @@ async function downloadFile(params: {
const { url, maxBytes, timeoutInSeconds } = params
const abortController = new AbortController()
const timeoutSignal = AbortSignal.timeout(timeoutInSeconds * 1000)
- const response = await fetch(url, {
+ const headers: {[key: string]: string} = {}
+ // Extract basic auth from URL and construct an Authorization header instead.
+ if ((url.username && url.username.length > 0) || (url.password && url.password.length > 0)) {
+ const username = decodeURIComponent(url.username)
+ const password = decodeURIComponent(url.password)
+ headers["Authorization"] = "Basic " + btoa(`${username}:${password}`)
+ }
+ // Make sure basic auth is removed from URL.
+ const urlWithoutAuth = url
+ urlWithoutAuth.username = ""
+ urlWithoutAuth.password = ""
+ const response = await fetch(urlWithoutAuth, {
+ method: "GET",
+ headers,
signal: AbortSignal.any([abortController.signal, timeoutSignal])
})
if (!response.body) {
diff --git a/src/features/sidebar/view/internal/primary/Container.tsx b/src/features/sidebar/view/internal/primary/Container.tsx
index 1c77b248..49a5f45e 100644
--- a/src/features/sidebar/view/internal/primary/Container.tsx
+++ b/src/features/sidebar/view/internal/primary/Container.tsx
@@ -17,7 +17,7 @@ const PrimaryContainer = ({
}) => {
return (
<>
- <_PrimaryContainer
+
{children}
-
- <_PrimaryContainer
+
+
{children}
-
+
>
)
}
export default PrimaryContainer
-const _PrimaryContainer = ({
+const InnerPrimaryContainer = ({
variant,
width,
isOpen,
diff --git a/src/features/sidebar/view/internal/secondary/Container.tsx b/src/features/sidebar/view/internal/secondary/Container.tsx
index 999b61a6..29f2b213 100644
--- a/src/features/sidebar/view/internal/secondary/Container.tsx
+++ b/src/features/sidebar/view/internal/secondary/Container.tsx
@@ -17,13 +17,15 @@ const SecondaryContainer = ({
const sx = { overflow: "hidden" }
return (
<>
- <_SecondaryContainer
+
{children}
-
+
>
)
}
@@ -52,7 +54,7 @@ const WrapperStack = styled(Stack, {
})
}))
-const _SecondaryContainer = ({
+const InnerSecondaryContainer = ({
sidebarWidth,
isSidebarOpen,
children,