mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-21 21:50:49 +02:00

* docs: make_your_own.md formatting fix for mkdocs * feat: add express-mongo-sanitize feat: add login/registration rate limiting * chore: remove unnecessary console log * wip: remove token handling from localStorage to encrypted DB solution * refactor: minor change to UserService * fix mongo query and add keys route to server * fix backend controllers and simplify schema/crud * refactor: rename token to key to separate from access/refresh tokens, setTokenDialog -> setKeyDialog * refactor(schemas): TEndpointOption token -> key * refactor(api): use new encrypted key retrieval system * fix(SetKeyDialog): fix key prop error * fix(abortMiddleware): pass random UUID if messageId is not generated yet for proper error display on frontend * fix(getUserKey): wrong prop passed in arg, adds error handling * fix: prevent message without conversationId from saving to DB, prevents branching on the frontend to a new top-level branch * refactor: change wording of multiple display messages * refactor(checkExpiry -> checkUserKeyExpiry): move to UserService file * fix: type imports from common * refactor(SubmitButton): convert to TS * refactor(key.ts): change localStorage map key name * refactor: add new custom tailwind classes to better match openAI colors * chore: remove unnecessary warning and catch ScreenShot error * refactor: move userKey frontend logic to hooks and remove use of localStorage and instead query the DB * refactor: invalidate correct query key, memoize userKey hook, conditionally render SetKeyDialog to avoid unnecessary calls, refactor SubmitButton props and useEffect for showing 'provide key first' * fix(SetKeyDialog): use enum-like object for expiry values feat(Dropdown): add optionsClassName to dynamically change dropdown options container classes * fix: handle edge case where user had provided a key but the server changes to env variable for keys * refactor(OpenAI/titleConvo): move titling to client to retain authorized credentials in message lifecycle for titling * fix(azure): handle user_provided keys correctly for azure * feat: send user Id to OpenAI to differentiate users in completion requests * refactor(OpenAI/titleConvo): adding tokens helps minimize LLM from using the language in title response * feat: add delete endpoint for keys * chore: remove throttling of title * feat: add 'Data controls' to Settings, add 'Revoke' keys feature in Key Dialog and Data controls * refactor: reorganize PluginsClient files in langchain format * feat: use langchain for titling convos * chore: cleanup titling convo, with fallback to original method, escape braces, use only snippet for language detection * refactor: move helper functions to appropriate langchain folders for reusability * fix: userProvidesKey handling for gptPlugins * fix: frontend handling of plugins key * chore: cleanup logging and ts-ignore SSE * fix: forwardRef misuse in DangerButton * fix(GoogleConfig/FileUpload): localize errors and simplify validation with zod * fix: cleanup google logging and fix user provided key handling * chore: remove titling from google * chore: removing logging from browser endpoint * wip: fix menu flicker * feat: useLocalStorage hook * feat: add Tooltip for UI * refactor(EndpointMenu): utilize Tooltip and useLocalStorage, remove old 'New Chat' slide-over * fix(e2e): use testId for endpoint menu trigger * chore: final touches to EndpointMenu before future refactor to declutter component * refactor(localization): change select endpoint to open menu and add translations * chore: add final prop to error message response * ci: minor edits to facilitate testing * ci: new e2e test which tests for new key setting/revoking features
132 lines
4.4 KiB
JSON
132 lines
4.4 KiB
JSON
{
|
|
"name": "@librechat/frontend",
|
|
"version": "0.5.8",
|
|
"description": "",
|
|
"scripts": {
|
|
"data-provider": "cd .. && npm run build:data-provider",
|
|
"build": "cross-env NODE_ENV=production dotenv -e ../.env -- vite build",
|
|
"build:ci": "cross-env NODE_ENV=dev vite build --mode ci",
|
|
"dev": "cross-env NODE_ENV=dev dotenv -e ../.env -- vite",
|
|
"preview-prod": "cross-env NODE_ENV=dev dotenv -e ../.env -- vite preview",
|
|
"test": "cross-env NODE_ENV=test jest --watch",
|
|
"test:ci": "cross-env NODE_ENV=test jest --ci"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/danny-avila/LibreChat.git"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"bugs": {
|
|
"url": "https://github.com/danny-avila/LibreChat/issues"
|
|
},
|
|
"homepage": "https://github.com/danny-avila/LibreChat#readme",
|
|
"dependencies": {
|
|
"@fortawesome/fontawesome-svg-core": "^6.4.0",
|
|
"@fortawesome/free-brands-svg-icons": "^6.4.0",
|
|
"@fortawesome/free-regular-svg-icons": "^6.4.0",
|
|
"@fortawesome/free-solid-svg-icons": "^6.4.0",
|
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
"@headlessui/react": "^1.7.13",
|
|
"@radix-ui/react-alert-dialog": "^1.0.2",
|
|
"@radix-ui/react-checkbox": "^1.0.3",
|
|
"@radix-ui/react-dialog": "^1.0.2",
|
|
"@radix-ui/react-dropdown-menu": "^2.0.2",
|
|
"@radix-ui/react-hover-card": "^1.0.5",
|
|
"@radix-ui/react-icons": "^1.3.0",
|
|
"@radix-ui/react-label": "^2.0.0",
|
|
"@radix-ui/react-slider": "^1.1.1",
|
|
"@radix-ui/react-switch": "^1.0.3",
|
|
"@radix-ui/react-tabs": "^1.0.3",
|
|
"@radix-ui/react-tooltip": "^1.0.6",
|
|
"@tailwindcss/forms": "^0.5.3",
|
|
"@tanstack/react-query": "^4.28.0",
|
|
"@zattoo/use-double-click": "1.2.0",
|
|
"axios": "^1.3.4",
|
|
"class-variance-authority": "^0.6.0",
|
|
"clsx": "^1.2.1",
|
|
"copy-to-clipboard": "^3.3.3",
|
|
"cross-env": "^7.0.3",
|
|
"crypto-browserify": "^3.12.0",
|
|
"downloadjs": "^1.4.7",
|
|
"esbuild": "0.17.19",
|
|
"export-from-json": "^1.7.2",
|
|
"filenamify": "^6.0.0",
|
|
"html-to-image": "^1.11.11",
|
|
"librechat-data-provider": "*",
|
|
"lodash": "^4.17.21",
|
|
"lucide-react": "^0.220.0",
|
|
"pino": "^8.12.1",
|
|
"rc-input-number": "^7.4.2",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-hook-form": "^7.43.9",
|
|
"react-lazy-load": "^4.0.1",
|
|
"react-markdown": "^8.0.6",
|
|
"react-router-dom": "^6.11.2",
|
|
"react-string-replace": "^1.1.0",
|
|
"react-textarea-autosize": "^8.4.0",
|
|
"react-transition-group": "^4.4.5",
|
|
"recoil": "^0.7.7",
|
|
"rehype-highlight": "^6.0.0",
|
|
"rehype-katex": "^6.0.2",
|
|
"rehype-raw": "^6.1.1",
|
|
"remark-gfm": "^3.0.1",
|
|
"remark-math": "^5.1.1",
|
|
"remark-supersub": "^1.0.0",
|
|
"tailwind-merge": "^1.9.1",
|
|
"tailwindcss-animate": "^1.0.5",
|
|
"tailwindcss-radix": "^2.8.0",
|
|
"url": "^0.11.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/cli": "^7.20.7",
|
|
"@babel/core": "^7.21.8",
|
|
"@babel/eslint-parser": "^7.19.1",
|
|
"@babel/plugin-transform-runtime": "^7.21.4",
|
|
"@babel/preset-env": "^7.21.5",
|
|
"@babel/preset-react": "^7.18.6",
|
|
"@babel/preset-typescript": "^7.21.0",
|
|
"@babel/runtime": "^7.20.13",
|
|
"@tanstack/react-query-devtools": "^4.29.0",
|
|
"@testing-library/dom": "^9.3.0",
|
|
"@testing-library/jest-dom": "^5.16.5",
|
|
"@testing-library/react": "^14.0.0",
|
|
"@testing-library/user-event": "^14.4.3",
|
|
"@types/jest": "^29.5.2",
|
|
"@types/node": "^20.3.0",
|
|
"@types/react": "^18.2.11",
|
|
"@types/react-dom": "^18.2.4",
|
|
"@vitejs/plugin-react": "^4.0.4",
|
|
"autoprefixer": "^10.4.13",
|
|
"babel-jest": "^29.5.0",
|
|
"babel-loader": "^9.1.2",
|
|
"babel-plugin-replace-ts-export-assignment": "^0.0.2",
|
|
"babel-plugin-root-import": "^6.6.0",
|
|
"babel-plugin-transform-import-meta": "^2.2.0",
|
|
"babel-plugin-transform-vite-meta-env": "^1.0.3",
|
|
"babel-preset-react": "^6.24.1",
|
|
"css-loader": "^6.7.3",
|
|
"dotenv-cli": "^7.2.1",
|
|
"eslint-plugin-jest": "^27.2.1",
|
|
"identity-obj-proxy": "^3.0.0",
|
|
"jest": "^29.5.0",
|
|
"jest-canvas-mock": "^2.5.1",
|
|
"jest-environment-jsdom": "^29.5.0",
|
|
"jest-file-loader": "^1.0.3",
|
|
"jest-junit": "^16.0.0",
|
|
"path": "^0.12.7",
|
|
"postcss": "^8.4.21",
|
|
"postcss-loader": "^7.1.0",
|
|
"postcss-preset-env": "^8.2.0",
|
|
"source-map-loader": "^4.0.1",
|
|
"style-loader": "^3.3.1",
|
|
"tailwindcss": "^3.2.6",
|
|
"ts-jest": "^29.1.0",
|
|
"ts-loader": "^9.4.2",
|
|
"typescript": "^5.0.4",
|
|
"vite": "^4.4.9",
|
|
"vite-plugin-html": "^3.2.0"
|
|
}
|
|
}
|