{ "name": "@datalens-ui/opensource", "version": "0.0.0", "files": [ "build", "scripts" ], "description": "DataLens Opensource", "private": true, "scripts": { "preinstall": "npx only-allow pnpm", "deps:global": "pnpm --version | grep -q 10.17.1 && echo 'pnpm@10.17.1 already installed' || npm i -g pnpm@10.17.1", "i18n:prepare": "tsc src/i18n/prepare-keysets/index.ts --esModuleInterop --outDir dist/i18n && node dist/i18n/prepare-keysets/index.js", "dev": "pnpm run i18n:prepare && SETUP_DEV_ENV_INSTALLATION=opensource node ./scripts/setup-dev-env.js && APP_BUILDER_ENTRY_FILTER=dl-main LOCAL_DEV_PORT=8080 app-builder dev", "build": "pnpm run i18n:prepare && NODE_ENV=production NODE_OPTIONS=--max_old_space_size=4096 APP_BUILDER_CDN=false app-builder build", "build:analyze": "pnpm run i18n:prepare && APP_BUILDER_ANALYZE_BUNDLE=statoscope UI_CORE_CDN=false APP_BUILDER_CDN=false NODE_ENV=production NODE_ENV=production NODE_OPTIONS=--max_old_space_size=4096 app-builder build", "cdn": "pnpm run i18n:prepare && NODE_ENV=production NODE_OPTIONS=--max_old_space_size=4096 app-builder build", "start": "NODE_ENV=production node dist/server", "lint:js:main": "eslint --ignore-pattern 'src/ui/*' '**/*.{js,jsx,ts,tsx}' --quiet", "lint:js:ui": "eslint -c src/ui/.ci-eslintrc 'src/ui/**/*.{js,jsx,ts,tsx}' --quiet", "lint:styles": "stylelint 'src/ui/**/*.scss'", "lint:prettier:src": "prettier --check 'src/**/*.{js,jsx,ts,tsx,json,css,scss}'", "lint:prettier:tests": "prettier --check 'tests/**/*.{js,jsx,ts,tsx,json,css,scss}'", "lint": "pnpm run lint:prettier:src && pnpm run lint:js:main && pnpm run lint:js:ui && pnpm run lint:styles && pnpm run lint:features", "lint:fix": "pnpm run lint:js:main --fix && pnpm run lint:js:ui --fix && pnpm run lint:styles --fix", "lint:features": "bash scripts/ci/lint-typecheck/features.sh", "typecheck:i18n": "tsc -p src/i18n --noEmit", "typecheck:server": "tsc -p src/server --noEmit", "typecheck:ui": "tsc -p src/ui --noEmit", "typecheck:tests": "cd tests && tsc --noEmit", "typecheck": "pnpm run i18n:prepare && pnpm run typecheck:server && pnpm run typecheck:ui && pnpm run typecheck:tests", "test:jest": "pnpm run i18n:prepare && jest", "test:jestWatch": "pnpm run i18n:prepare && jest --watchAll", "platform-tools": "platform-tools", "test:install:chromium": "npx playwright install --with-deps chromium", "test:e2e": "cd tests && npx playwright test --config=./playwright.config.ts --project=basic", "test:e2e:opensource": "cd tests && npx playwright test --config=./playwright.config.ts --project=opensource", "test:e2e:us-dump": "./scripts/e2e/us-dump.sh --clear-deleted --clear-e2e --clear-revisions", "test:e2e:docker": "cd ./tests && docker compose -f ./docker-compose.e2e.yml down --volumes && docker compose -f ./docker-compose.e2e.yml up --quiet-pull --pull always --build --no-log-prefix --exit-code-from e2e e2e", "test:e2e:docker:snapshots": "cd ./tests && docker compose -f ./docker-compose.e2e.yml down --volumes && E2E_TEST_NAME_PATTERN=${E2E_TEST_NAME_PATTERN:-@screenshot} E2E_RETRY_TIMES=0 E2E_MAX_WORKERS=1 E2E_UPDATE_SNAPSHOTS=1 docker compose -f ./docker-compose.e2e.yml up --quiet-pull --pull always --build --no-log-prefix e2e; docker compose -f ./docker-compose.e2e.yml cp e2e:/opt/app/tests/opensource-suites/__screenshots__ ./opensource-suites", "test:e2e:docker:report": "cd ./tests && docker compose -f ./docker-compose.e2e.yml cp e2e:/opt/app/tests/artifacts ./artifacts", "test:e2e:docker:up": "cd ./tests && docker compose -f ./docker-compose.e2e.yml up --quiet-pull --pull always --build -d ui", "test:e2e:docker:up-no-build": "cd ./tests && docker compose -f ./docker-compose.e2e.yml up --no-build --quiet-pull --pull always -d ui", "test:e2e:docker:up-no-ui": "cd ./tests && docker compose -f ./docker-compose.e2e.dev.yml up --pull always -d data-api control-api us auth", "test:e2e:docker:up-no-ui-no-auth": "cd ./tests && AUTH_TYPE=NONE AUTH_ENABLED=false docker compose -f ./docker-compose.e2e.dev.yml up --pull always -d data-api control-api us", "test:e2e:docker:up-nginx": "cd ./tests && docker compose -f ./docker-compose.e2e.nginx.yml up -d nginx", "test:e2e:docker:down": "cd ./tests && docker compose -f ./docker-compose.e2e.yml down --volumes", "test:e2e:docker:down-nginx": "cd ./tests && docker compose -f ./docker-compose.e2e.nginx.yml down --volumes", "test:e2e:docker:logs": "cd ./tests && docker --log-level error compose -f ./docker-compose.e2e.yml logs --no-color", "test:e2e:docker:logs-nginx": "cd ./tests && docker --log-level error compose -f ./docker-compose.e2e.nginx.yml logs --no-color", "statoscope:validate-diff": "statoscope validate --input input.json --reference reference.json", "statoscope:validate": "statoscope validate --input ./dist/public/build/stats.json" }, "repository": { "type": "git", "url": "git@github.com:datalens-tech/datalens-ui.git" }, "author": "DataLens Team ", "license": "Apache-2.0", "dependencies": { "@asteasolutions/zod-to-openapi": "^8.1.0", "@braintree/sanitize-url": "^6.0.0", "@datalens-tech/ui-sandbox-modules": "^0.36.0", "@datalens-tech/xlsx": "^0.20.1", "@diplodoc/cut-extension": "^0.7.4", "@diplodoc/file-extension": "^0.2.1", "@diplodoc/latex-extension": "^1.1.0", "@diplodoc/mermaid-extension": "^1.4.0", "@diplodoc/tabs-extension": "^3.7.5", "@diplodoc/transform": "^4.64.1", "@gravity-ui/app-layout": "^2.1.0", "@gravity-ui/browserslist-config": "^4.3.0", "@gravity-ui/chartkit": "^7.44.0", "@gravity-ui/dashkit": "^10.0.0", "@gravity-ui/date-utils": "^2.5.6", "@gravity-ui/expresskit": "^3.0.2", "@gravity-ui/gateway": "^4.10.4", "@gravity-ui/i18n": "^1.7.0", "@gravity-ui/nodekit": "^2.10.1", "@node-rs/crc32": "^1.7.2", "ajv": "^8.12.0", "axios": "^1.13.2", "axios-retry": "^3.9.1", "chroma-js": "^3.1.2", "clipboard-copy": "^3.2.0", "dotenv": "^8.2.0", "form-data": "^4.0.0", "hashids": "^2.2.1", "iconv-lite": "^0.4.24", "ioredis": "^4.28.0", "ismobilejs": "^1.1.1", "js-sha1": "^0.6.0", "js-yaml": "^4.1.0", "json-fn": "^1.1.1", "jsondiffpatch": "^0.6.0", "jsonwebtoken": "^9.0.0", "katex": "0.16.21", "lodash": "^4.17.21", "luxon": "^1.28.0", "markdown-it-color": "^2.1.1", "markdown-it-emoji": "^2.0.2", "markdown-it-ins": "^4.0.0", "markdown-it-link-attributes": "^4.0.1", "markdown-it-mark": "^4.0.0", "markdown-it-sub": "^2.0.0", "mime": "^1.6.0", "moment": "^2.29.4", "moment-timezone": "^0.5.34", "node-cache": "^5.1.2", "object-sizeof": "^2.6.5", "p-queue": "^6.6.2", "qs": "^6.11.2", "querystring": "^0.2.0", "quickjs-emscripten": "^0.31.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-hotkeys-hook": "^4.5.0", "react-window": "^1.8.9", "request": "^2.88.2", "request-ip": "^3.3.0", "request-promise-native": "^1.0.9", "set-cookie-parser": "^2.7.1", "swagger-ui-express": "^5.0.1", "uuid": "^9.0.1", "workerpool": "^9.1.1", "zod": "^4.1.12" }, "devDependencies": { "@floating-ui/react": "^0.27.13", "@gravity-ui/app-builder": "^0.38.0", "@gravity-ui/components": "^4.12.0", "@gravity-ui/date-components": "^3.2.3", "@gravity-ui/eslint-config": "^3.2.0", "@gravity-ui/icons": "^2.16.0", "@gravity-ui/markdown-editor": "^15.26.1", "@gravity-ui/navigation": "^3.8.0", "@gravity-ui/prettier-config": "^1.1.0", "@gravity-ui/react-data-table": "^2.1.1", "@gravity-ui/sdk": "^1.5.1", "@gravity-ui/stylelint-config": "^4.0.1", "@gravity-ui/tsconfig": "^1.0.0", "@gravity-ui/ui-logger": "^1.1.0", "@gravity-ui/uikit": "^7.18.0", "@jest/types": "^29.6.3", "@microsoft/fetch-event-source": "^2.0.1", "@playwright/test": "^1.48.2", "@reduxjs/toolkit": "^1.8.3", "@statoscope/cli": "^5.28.2", "@statoscope/stats-validator-plugin-webpack": "^5.28.2", "@statoscope/webpack-ui": "^5.28.2", "@stripe/react-stripe-js": "^1.8.1", "@stripe/stripe-js": "^1.30.0", "@tanstack/react-table": "^8.12.0", "@tanstack/react-virtual": "^3.8.1", "@testing-library/jest-dom": "^5.16.2", "@testing-library/react": "^12.1.4", "@types/chroma-js": "^3.1.2", "@types/d3-array": "3.2.2", "@types/d3-color": "^3.1.3", "@types/d3-interpolate": "3.0.4", "@types/d3-scale": "4.0.9", "@types/d3-selection": "3.0.11", "@types/d3-shape": "3.1.8", "@types/dompurify": "^3.0.5", "@types/express": "^4.17.21", "@types/gtag.js": "0.0.10", "@types/hashids": "^1.0.32", "@types/history": "^4.7.11", "@types/http-proxy": "^1.17.10", "@types/ioredis": "^4.28.8", "@types/jest": "^29.2.5", "@types/js-yaml": "^4.0.5", "@types/jsonwebtoken": "^9.0.1", "@types/lodash": "^4.14.168", "@types/luxon": "^1.26.2", "@types/markdown-it": "^13.0.7", "@types/markdown-it-emoji": "^2.0.2", "@types/markdown-it-link-attributes": "^3.0.4", "@types/mime": "1.3.5", "@types/node": "^20.16.10", "@types/qs": "6.9.11", "@types/rc-slider": "^8.6.6", "@types/react": "^17.0.40", "@types/react-dom": "^17.0.13", "@types/react-inspector": "^4.0.2", "@types/react-redux": "^7.1.16", "@types/react-router": "^5.1.11", "@types/react-router-dom": "^5.1.7", "@types/react-window": "^1.8.5", "@types/recompose": "^0.30.7", "@types/redux-logger": "^3.0.9", "@types/request": "2.48.7", "@types/request-ip": "^0.0.41", "@types/request-promise-native": "^1.0.21", "@types/set-cookie-parser": "^2.4.10", "@types/swagger-ui-express": "^4.1.8", "@types/testing-library__jest-dom": "^5.14.3", "@types/uuid": "^9.0.8", "@types/webpack-env": "^1.16.0", "bem-cn-lite": "^4.0.0", "blueimp-md5": "^2.19.0", "classnames": "^2.5.1", "cli-color": "2.0.1", "colormap": "^2.3.2", "copy-to-clipboard": "^3.3.3", "core-js": "3.43.0", "csstype": "^3.1.3", "d3-array": "^3.2.4", "d3-color": "^3.1.0", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-selection": "^3.0.0", "d3-shape": "^3.2.0", "dompurify": "^3.2.4", "eslint": "^8.56.0", "highcharts": "^8.2.2", "history": "^4.10.1", "htmlparser2": "^9.1.0", "http-proxy": "^1.18.1", "husky": "^8.0.3", "immutability-helper": "^3.1.1", "jest": "^29.3.1", "jest-circus": "^27.5.1", "jest-environment-jsdom": "^29.3.1", "jest-environment-node": "^29.3.1", "jest-html-reporters": "^2.1.2", "lint-staged": "^13.2.2", "lowlight": "^3.1.0", "ml-regression-polynomial": "^3.0.2", "mockdate": "^3.0.5", "monaco-editor": "^0.36.1", "monaco-editor-webpack-plugin": "^7.1.0", "playwright-core": "1.48.2", "postcss": "^8.4.33", "prettier": "^3.2.5", "prop-types": "^15.8.0", "rc-slider": "^11.1.8", "react-dnd": "^10.0.2", "react-dnd-html5-backend": "^10.0.2", "react-inspector": "^5.1.1", "react-intersection-observer": "^9.4.0", "react-monaco-editor": "^0.52.0", "react-redux": "^7.2.4", "react-router": "^5.3.4", "react-router-dom": "^5.3.4", "react-split-pane": "^0.1.92", "react-virtualized-auto-sizer": "1.0.24", "react-waypoint": "^10.3.0", "recompose": "npm:react-recompose@^0.33.0", "redux": "^4.1.1", "redux-devtools-extension": "^2.13.9", "redux-logger": "^3.0.6", "redux-thunk": "^2.3.0", "reselect": "^4.1.8", "resize-observer-polyfill": "^1.5.1", "robust-point-in-polygon": "^1.0.3", "stylelint": "^15.11.0", "ts-jest": "^29.0.5", "ts-node": "^10.9.1", "tsconfig-paths": "^3.14.0", "typescript": "^5.4.5", "url": "^0.11.1", "utility-types": "^3.10.0", "yup": "^1.6.1" }, "pnpm": { "overrides": { "react": "^17.0.2", "react-dom": "^17.0.2", "react-router": "^5.3.4", "react-router-dom": "^5.3.4", "@gravity-ui/uikit>react-virtualized-auto-sizer": "1.0.24", "@gravity-ui/gateway>@grpc/grpc-js": "^1.13.2" } }, "deploy": { "project": "stat", "app": "dx", "component": "datalens", "workflow": "workflow.json" }, "engines": { "pnpm": "10.17.1", "node": ">= 20", "yarn": "Please use pnpm instead of yarn to install dependencies", "npm": "Please use pnpm instead of npm to install dependencies" }, "packageManager": "pnpm@10.17.1", "browserslist": [ "extends @gravity-ui/browserslist-config" ], "optionalDependencies": { "fsevents": "^2.3.2" } }