package.json
{
"name": "uwazi",
"version": "1.190.0-rc4",
"description": "Uwazi is a free, open-source solution for organising, analysing and publishing your documents.",
"keywords": [
"react"
],
"homepage": "https://www.uwazi.io/",
"bugs": {
"url": "https://github.com/huridocs/uwazidocs/issues"
},
"repository": {
"type": "git",
"url": "git@github.com:huridocs/uwazidocs.git"
},
"license": "MIT",
"author": "huridocs.org",
"main": "server.js",
"scripts": {
"check-app-types": "tsc --noEmit --pretty",
"check-cy-types": "tsc --noEmit --pretty --project cypress",
"check-types": "yarn check-cy-types && yarn check-app-types",
"watch-types": "tsc --noEmit --pretty --watch --preserveWatchOutput",
"emit-types": "node --no-experimental-fetch scripts/emitSchemaTypes.js",
"emitSocketEvent": "node --no-experimental-fetch ./scripts/run.js ./emitSocketEvent.js",
"preproduction-build": "yarn run tailwind",
"production-build": "./webpack/build.sh",
"run-production": "NODE_ENV=production node --no-experimental-fetch server.js",
"dev-server": "./node_modules/.bin/nodemon --no-experimental-fetch ./server.js --ignore 'app/dist/*' --watch 'app/api' --watch 'app/shared' --ext 'ts js tsx'",
"webpack-server": "node --no-experimental-fetch ./webpack/webpack.server.js",
"dev-worker": "node --no-experimental-fetch ./scripts/run.js ../app/worker.ts",
"dev-queue": "node --no-experimental-fetch ./scripts/run.js ../app/queueWorker.ts",
"new-files-healthcheck": "tsx ./scripts/scripts.v2/filesHealthCheck.ts",
"generateAutomaticTranslationConfig": "node --no-experimental-fetch ./scripts/run.js ../scripts/scripts.v2/generateAutomaticTranslationConfig.ts",
"check-translations": "node --no-experimental-fetch ./scripts/checkTranslations.mjs",
"update-translations-db": "node --no-experimental-fetch scripts/run.js ../scripts/updateTranslationsDB.js",
"update-translations-csv": "node --no-experimental-fetch ./scripts/updateTranslationsCSV.mjs",
"describe-database": "node --no-experimental-fetch ./scripts/describeDatabase.mjs",
"tailwind-watch": "yarn run tailwind --watch",
"tailwind": " npx tailwindcss -i ./app/react/App/styles/main.css -o ./app/react/App/styles/globals.css",
"hot": "export HOT=true; export BABEL_ENV=debug; yarn run watch-types & yarn tailwind-watch & yarn run dev-server & yarn run webpack-server",
"hot-e2e": "DATABASE_NAME=uwazi_e2e INDEX_NAME=uwazi_e2e EXTERNAL_SERVICES=true yarn hot",
"run-e2e": "DATABASE_NAME=uwazi_e2e INDEX_NAME=uwazi_e2e EXTERNAL_SERVICES=true yarn run-production",
"hot-inspect": "export HOT=true; export BABEL_ENV=debug; yarn run watch-types & yarn dev-server --inspect & yarn run webpack-server",
"hot-debug": "export HOT=true; export BABEL_ENV=debug; node --no-experimental-fetch --inspect-brk=9229 server.js & yarn run webpack-server",
"reindex": "node scripts/run.js ../database/reindex_elastic.js",
"import-csv": "node --no-experimental-fetch scripts/run.js ../database/import_csv.js",
"blank-state": "node --no-experimental-fetch scripts/bash.js ./database/blank_state.sh",
"admin-user": "node --no-experimental-fetch scripts/bash.js ./database/admin_user.sh",
"ix-config": "node --no-experimental-fetch scripts/bash.js ./database/ix_config.sh",
"dump-db": "node --no-experimental-fetch scripts/bash.js ./database/dump_db.sh",
"restore-db": "node --no-experimental-fetch scripts/bash.js ./database/restore_db.sh",
"fixtures": "node --no-experimental-fetch scripts/bash.js ./uwazi-fixtures/restore.sh",
"add-migration": "./node_modules/.bin/plop --plopfile ./app/api/migrations/plopfile.js migration",
"migrate": "node --no-experimental-fetch scripts/run.js ../scripts/migrate.js",
"migrate-and-reindex": "node scripts/run.js ../scripts/migrate_and_reindex.js",
"test-debug": "node --no-experimental-fetch --inspect ./node_modules/.bin/jest --watch --no-cache -i",
"test": "node --no-experimental-fetch ./node_modules/.bin/jest -w=50%",
"e2e-puppeteer-all": "echo 'MAKE SURE UWAZI IS RUNNING WITH uwazi_e2e DATABASE AND INDEX';DATABASE_NAME=uwazi_e2e INDEX_NAME=uwazi_e2e jest --projects e2e/jest.e2e.config.ts -i --verbose true",
"e2e-puppeteer": "yarn e2e-puppeteer-all --roots '<rootDir>/suite1' '<rootDir>/suite2'",
"e2e-puppeteer-regression": "yarn e2e-puppeteer-all --roots '<rootDir>/regression_suites'",
"e2e-fixtures": "DATABASE_NAME=uwazi_e2e INDEX_NAME=uwazi_e2e ./uwazi-fixtures/restore.sh",
"eslint": "./node_modules/.bin/eslint e2e app cypress --quiet --ext js,ts,tsx",
"eslint-fulldiff": "git diff-index --name-only origin/development | grep ^app/ | grep -v snap | xargs ls -d 2>/dev/null | xargs ./node_modules/.bin/eslint ",
"prettier": "./node_modules/.bin/prettier --write 'app/**/*.{js,ts,tsx}'",
"prestorybook": "yarn tailwind",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"cypress": "cypress open",
"cy-components": "cypress run --component --config video=false --browser chrome",
"cy-e2e": "cypress run --browser chrome"
},
"jest": {
"projects": [
"app/jest.client.config.js",
"app/jest.server.config.json"
]
},
"resolutions": {
"trim": "1.0.1",
"node-fetch": "2.6.7",
"ws": "8.18.0",
"path-to-regexp": "0.1.11",
"body-parser": "^1.20.3"
},
"dependencies": {
"@aws-sdk/client-s3": "3.679.0",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/modifiers": "^7.0.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@elastic/elasticsearch": "7.17",
"@fast-csv/format": "^5.0.2",
"@fortawesome/fontawesome-svg-core": "^1.2.30",
"@fortawesome/free-regular-svg-icons": "^6.6.0",
"@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/react-fontawesome": "^0.2.2",
"@googlemaps/js-api-loader": "^1.16.8",
"@headlessui/react": "1.7.17",
"@heroicons/react": "^2.1.5",
"@hookform/error-message": "^2.0.1",
"@huridocs/react-text-selection-handler": "^0.3.0",
"@loadable/component": "^5.16.4",
"@popperjs/core": "^2.11.8",
"@remix-run/router": "1.20.0",
"@sentry/node": "^7.114.0",
"@sentry/react": "7.114.0",
"@sentry/tracing": "^7.114.0",
"@smithy/node-http-handler": "^3.1.2",
"@socket.io/redis-adapter": "7.2.0",
"@socket.io/redis-emitter": "5.1.0",
"@supercharge/promise-pool": "^3.2.0",
"@tanstack/react-table": "8.20.5",
"@types/franc": "^5.0.1",
"@types/lodash": "^4.14.170",
"@types/mime-types": "^2.1.1",
"@types/react-dropzone": "^4.2.2",
"@types/redis": "^2.8.31",
"@types/redlock": "^4.0.2",
"@types/url-join": "^4.0.1",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"ajv-keywords": "^5.1.0",
"any-date-parser": "^1.5.4",
"bcryptjs": "^2.4.3",
"big.js": "^6.2.2",
"body-parser": "^1.20.3",
"bootstrap": "3.4.1",
"child-process-promise": "^2.2.1",
"clean-insights-sdk": "^2.6.2",
"compression": "^1.7.4",
"connect-mongo": "5.1.0",
"cookie": "0.7.0",
"cookie-parser": "1.4.7",
"cors": "^2.8.5",
"crypto-js": "^4.2.0",
"csvtojson": "^2.0.10",
"date-fns": "^4.1.0",
"diacritics": "^1.3.0",
"dotenv": "^16.4.5",
"express": "^4.21.1",
"express-http-proxy": "^2.1.1",
"express-prom-bundle": "^7.0.0",
"express-session": "^1.18.1",
"filesize": "10.1.6",
"flag-icons": "^7.2.3",
"flowbite": "^2.3.0",
"flowbite-datepicker": "^1.2.7",
"flowbite-react": "^0.10.1",
"formatcoords": "^1.1.3",
"franc": "5.0.0",
"helmet": "^8.0.0",
"html-to-react": "^1.7.0",
"htmlparser2": "^9.1.0",
"immutability-helper": "^3.1.1",
"immutable": "^3.7.6",
"is-reachable": "^5.2.1",
"isomorphic-fetch": "3.0.0",
"jotai": "2.10.1",
"json-schema": "^0.4.0",
"json-schema-to-typescript": "^15.0.2",
"jvent": "1.0.2",
"leaflet": "^1.9.4",
"leaflet.gridlayer.googlemutant": "^0.14.1",
"leaflet.markercluster": "^1.5.3",
"lodash": "^4.17.21",
"luxon": "3.5.0",
"mark.js": "^8.11.1",
"markdown-it": "14.1.0",
"markdown-it-container": "4.0.0",
"mime-types": "^2.1.35",
"moment": "^2.30.1",
"moment-timezone": "0.5.46",
"monaco-editor": "^0.52.0",
"monaco-editor-webpack-plugin": "^7.1.0",
"mongodb": "6.3.0",
"mongoose": "8.1.2",
"multer": "^1.4.5-lts.1",
"node-uuid": "^1.4.7",
"nodemailer": "6.9.16",
"nprogress": "^0.2.0",
"otplib": "^11.0.1",
"passport": "^0.7.0",
"passport-local": "^1.0.0",
"pdfjs-dist": "4.7.76",
"postcss-loader": "^8.1.1",
"postcss-prefix-selector": "^2.1.0",
"prom-client": "^15.1.3",
"prop-types": "^15.8.1",
"qrcode.react": "^4.1.0",
"qs": "^6.13.0",
"react": "^18.3.1",
"react-color": "^2.19.3",
"react-datepicker": "7.4.0",
"react-device-detect": "^2.2.3",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dnd-html5-backend-old": "yarn:react-dnd-html5-backend@^15.1.2",
"react-dnd-old": "yarn:react-dnd@2.6.0",
"react-dom": "^18.3.1",
"react-dropzone": "14.2.10",
"react-helmet": "^6.1.0",
"react-hook-form": "^7.53.1",
"react-image-gallery": "^1.3.0",
"react-modal": "^3.16.1",
"react-player": "^2.13.0",
"react-popper": "^2.3.0",
"react-redux": "5.0.6",
"react-redux-form": "^1.16.14",
"react-render-if-visible": "^2.1.1",
"react-router-dom": "6.27.0",
"react-table": "^7.8.0",
"react-table-sticky": "^1.1.3",
"react-tabs": "^6.0.2",
"react-tabs-redux": "4.0.0",
"react-widgets": "v4.6.1",
"recharts": "2.12.7",
"redis": "^3.1.2",
"redlock": "^4.2.0",
"redux": "^3.7.2",
"redux-devtools-extension": "^2.13.9",
"redux-thunk": "^2.0.1",
"reselect": "^4.1.8",
"rison-node": "^2.1.1",
"rsmq": "^0.12.4",
"rtlcss": "^4.3.0",
"sanitize-filename": "^1.6.3",
"sanitize-html": "^2.13.1",
"serialize-javascript": "^6.0.1",
"sift": "^17.1.3",
"socket.io": "4.8.1",
"socket.io-client": "4.8.1",
"socket.io-parser": "4.2.4",
"stopword": "3.1.1",
"superagent": "10.1.1",
"svg-captcha": "^1.4.0",
"tiny-cookie": "^2.5.1",
"typescript": "5.6.3",
"underscore": "^1.13.7",
"url-join": "^4.0.1",
"world-countries": "5.0.0",
"xml-js": "^1.6.11",
"yargs": "^17.7.2",
"yauzl": "^3.1.3",
"yazl": "^3.1.0"
},
"devDependencies": {
"@4tw/cypress-drag-drop": "^2.2.5",
"@babel/cli": "7.25.9",
"@babel/core": "7.26.0",
"@babel/eslint-parser": "7.25.9",
"@babel/helper-call-delegate": "^7.12.13",
"@babel/helper-get-function-arity": "^7.16.7",
"@babel/helper-string-parser": "^7.25.9",
"@babel/parser": "^7.25.7",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-modules-commonjs": "^7.25.9",
"@babel/plugin-transform-react-constant-elements": "^7.25.9",
"@babel/plugin-transform-react-inline-elements": "^7.25.9",
"@babel/preset-env": "^7.26.0",
"@babel/preset-react": "^7.25.9",
"@babel/preset-typescript": "^7.26.0",
"@babel/register": "^7.25.9",
"@babel/traverse": "^7.25.7",
"@cfaester/enzyme-adapter-react-18": "^0.8.0",
"@chromatic-com/storybook": "^3.2.0",
"@cypress/react18": "^2.0.1",
"@storybook/addon-actions": "^8.3.6",
"@storybook/addon-essentials": "^8.3.6",
"@storybook/addon-interactions": "^8.3.6",
"@storybook/addon-links": "^8.3.6",
"@storybook/addon-viewport": "^8.1.11",
"@storybook/addon-webpack5-compiler-babel": "^3.0.3",
"@storybook/react": "^8.3.6",
"@storybook/react-webpack5": "^8.3.6",
"@storybook/test": "^8.1.11",
"@testing-library/jest-dom": "6.6.2",
"@testing-library/react": "^16.0.1",
"@testing-library/user-event": "^14.5.2",
"@types/body-parser": "^1.19.5",
"@types/cheerio": "^0.22.30",
"@types/child-process-promise": "^2.2.1",
"@types/cookie": "^0.6.0",
"@types/enzyme": "3.10.12",
"@types/enzyme-adapter-react-16": "1.0.2",
"@types/expect-puppeteer": "4.4.7",
"@types/express": "^4.17.21",
"@types/express-session": "^1.18.0",
"@types/google.maps": "^3.48.2",
"@types/immutable": "^3.8.7",
"@types/jest": "29.5.12",
"@types/jest-environment-puppeteer": "5.0.2",
"@types/jest-image-snapshot": "^6.4.0",
"@types/leaflet": "^1.9.12",
"@types/leaflet.gridlayer.googlemutant": "^0.4.6",
"@types/leaflet.markercluster": "^1.4.6",
"@types/loadable__component": "^5.13.9",
"@types/luxon": "^3.4.2",
"@types/multer": "^1.4.7",
"@types/node": "^16.18.3",
"@types/node-uuid": "^0.0.28",
"@types/nodemailer": "^6.4.16",
"@types/prop-types": "^15.7.3",
"@types/qs": "^6.9.15",
"@types/react": "^18.3.1",
"@types/react-dnd": "^3.0.2",
"@types/react-dom": "^18.0.9",
"@types/react-helmet": "^6.1.5",
"@types/react-modal": "^3.13.1",
"@types/react-redux": "^7.1.24",
"@types/react-table": "^7.7.14",
"@types/react-tabs-redux": "^4.0.0",
"@types/recharts": "^1.8.24",
"@types/redux-mock-store": "^1.0.6",
"@types/socket.io": "^3.0.2",
"@types/socket.io-client": "^1.4.33",
"@types/superagent": "^8.1.6",
"@types/supertest": "6.0.2",
"@types/webpack-env": "^1.18.1",
"@types/yargs-parser": "^20.2.1",
"@types/yauzl": "^2.9.2",
"@typescript-eslint/eslint-plugin": "5.62.0",
"@typescript-eslint/parser": "5.62.0",
"assets-webpack-plugin": "7.1.1",
"babel-jest": "^29.7.0",
"babel-loader": "9.2.1",
"babel-plugin-module-resolver": "5.0.2",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"canvas": "^2.11.2",
"clean-webpack-plugin": "4.0.0",
"copy-webpack-plugin": "12.0.2",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.0",
"cypress": "13.15.1",
"cypress-axe": "^1.5.0",
"cypress-plugin-snapshots": "^1.4.4",
"cypress-real-events": "^1.13.0",
"enzyme": "3.11.0",
"enzyme-to-json": "^3.6.2",
"eslint": "v8.57.0",
"eslint-config-airbnb": "19.0.4",
"eslint-plugin-cypress": "^4.0.0",
"eslint-plugin-import": "v2.31.0",
"eslint-plugin-jasmine": "4.2.2",
"eslint-plugin-jest": "v28.8.3",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "5.2.1",
"eslint-plugin-react": "v7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-storybook": "^0.10.1",
"fetch-mock": "^9.11.0",
"flowbite-typography": "^1.0.3",
"html-webpack-plugin": "5.6.3",
"identity-obj-proxy": "^3.0.0",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"jest-extended": "4.0.2",
"jest-image-snapshot": "^6.4.0",
"jest-jasmine2": "^29.7.0",
"jest-puppeteer": "6.1.0",
"mini-css-extract-plugin": "^2.9.1",
"mutationobserver-shim": "^0.3.7",
"node-polyfill-webpack-plugin": "^4.0.0",
"nodemon": "^3.1.7",
"plop": "^4.0.1",
"postcss": "8.4.47",
"prettier": "3.3.3",
"puppeteer": "^13.5.2",
"react-dnd-test-backend": "16.0.1",
"redux-mock-store": "^1.5.5",
"rtlcss-webpack-plugin": "4.0.7",
"sass": "1.80.4",
"sass-loader": "16.0.2",
"storybook": "^8.1.11",
"stream-mock": "^2.0.5",
"supertest": "7.0.0",
"svg-inline-loader": "^0.8.2",
"tailwindcss": "3.4.14",
"terser-webpack-plugin": "^5.3.10",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"tsx": "^4.19.2",
"wait-for-expect": "^3.0.2",
"webpack": "^5.95.0",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-middleware": "7.4.2",
"webpack-hot-middleware": "^2.26.1",
"worker-loader": "^3.0.8"
},
"engines": {
"node": ">=20.9.0"
}
}