{ "name": "kubeflow-workspaces-frontend", "version": "0.0.1", "description": "The Kubeflow Workspaces Frontend is the web user interface used to monitor and manage Kubeflow Workspaces as part of Kubeflow Notebooks 2.0", "repository": "https://github.com/kubeflow/notebooks.git", "homepage": "https://github.com/kubeflow/notebooks", "license": "Apache-2.0", "private": true, "overrides": { "rimraf": "^6.0.1" }, "engines": { "node": ">=20.0.0" }, "scripts": { "build": "run-s build:prod", "build:analyze": "run-s build build:bundle-profile build:bundle-analyze", "build:bundle-profile": "webpack --config ./config/webpack.prod.js --profile --json > ./bundle.stats.json", "build:bundle-analyze": "webpack-bundle-analyzer ./bundle.stats.json", "build:clean": "rimraf ./dist", "build:prod": "webpack --config ./config/webpack.prod.js", "start:dev": "cross-env STYLE_THEME=$npm_config_theme webpack serve --hot --color --config ./config/webpack.dev.js", "start:dev:mock": "cross-env MOCK_API_ENABLED=true STYLE_THEME=$npm_config_theme npm run start:dev", "test": "run-s prettier:check test:lint test:unit test:cypress-ci", "test:cypress-ci": "npx concurrently -P -k -s first \"npm run cypress:server:build && npm run cypress:server\" \"npx wait-on tcp:127.0.0.1:9001 && npm run cypress:run:mock -- {@}\" -- ", "test:jest": "jest --passWithNoTests", "test:unit": "npm run test:jest -- --silent", "test:watch": "jest --watch", "test:coverage": "jest --coverage", "test:lint": "eslint --max-warnings 0 --ext .js,.ts,.jsx,.tsx ./src", "test:lint:fix": "eslint --ext .js,.ts,.jsx,.tsx ./src --fix", "test:fix": "run-s prettier test:lint:fix", "cypress:open": "cypress open --project src/__tests__/cypress", "cypress:open:mock": "CY_MOCK=1 CY_WS_PORT=9002 npm run cypress:open -- ", "cypress:run": "cypress run -b chrome --project src/__tests__/cypress", "cypress:run:mock": "CY_MOCK=1 npm run cypress:run -- ", "cypress:server:build": "POLL_INTERVAL=9999999 FAST_POLL_INTERVAL=9999999 npm run build", "cypress:server": "serve ./dist -p 9001 -s -L", "prettier": "prettier --ignore-path .gitignore --write \"**/*{.ts,.tsx,.js,.cjs,.jsx,.css,.json}\"", "prettier:check": "prettier --ignore-path .gitignore --check \"**/*{.ts,.tsx,.js,.cjs,.jsx,.css,.json}\"", "prepare": "cd ../../ && husky workspaces/frontend/.husky" }, "devDependencies": { "@cspell/eslint-plugin": "^9.1.2", "@cypress/code-coverage": "^3.13.5", "@mui/icons-material": "^6.3.1", "@mui/material": "^6.3.1", "@mui/types": "^7.2.21", "@testing-library/cypress": "^10.0.1", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "14.4.3", "@types/chai-subset": "^1.3.5", "@types/jest": "^29.5.3", "@types/react-router-dom": "^5.3.3", "@types/victory": "^33.1.5", "chai-subset": "^1.6.0", "concurrently": "^9.1.0", "copy-webpack-plugin": "^11.0.0", "core-js": "^3.39.0", "cross-env": "^7.0.3", "css-loader": "^6.11.0", "css-minimizer-webpack-plugin": "^5.0.1", "cypress": "^13.16.1", "cypress-axe": "^1.5.0", "cypress-high-resolution": "^1.0.0", "cypress-mochawesome-reporter": "^3.8.2", "cypress-multi-reporters": "^2.0.4", "dotenv": "^16.4.5", "dotenv-webpack": "^8.1.0", "expect": "^29.7.0", "fork-ts-checker-webpack-plugin": "^9.0.3", "html-webpack-plugin": "^5.6.0", "husky": "^9.1.7", "imagemin": "^8.0.1", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "junit-report-merger": "^7.0.0", "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.38", "prettier": "^3.3.0", "prop-types": "^15.8.1", "raw-loader": "^4.0.2", "react-router-dom": "^6.26.1", "regenerator-runtime": "^0.13.11", "rimraf": "^6.0.1", "sass": "^1.83.4", "sass-loader": "^16.0.4", "serve": "^14.2.1", "style-loader": "^3.3.4", "svg-url-loader": "^8.0.0", "terser-webpack-plugin": "^5.3.10", "ts-jest": "^29.1.4", "ts-loader": "^9.5.1", "tsconfig-paths-webpack-plugin": "^4.1.0", "tslib": "^2.6.0", "typescript": "^5.4.5", "url-loader": "^4.1.1", "webpack": "^5.91.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.2.2", "webpack-merge": "^5.10.0" }, "dependencies": { "@patternfly/react-catalog-view-extension": "^6.1.0", "@patternfly/react-code-editor": "^6.2.0", "@patternfly/react-core": "^6.2.0", "@patternfly/react-icons": "^6.2.0", "@patternfly/react-styles": "^6.2.0", "@patternfly/react-table": "^6.2.0", "@patternfly/react-tokens": "^6.2.0", "@types/js-yaml": "^4.0.9", "date-fns": "^4.1.0", "eslint-plugin-local-rules": "^3.0.2", "js-yaml": "^4.1.0", "npm-run-all": "^4.1.5", "react": "^18", "react-dom": "^18", "react-router": "^6.26.2", "sirv-cli": "^2.0.2" }, "optionalDependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@typescript-eslint/eslint-plugin": "^8.8.1", "@typescript-eslint/parser": "^8.12.2", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-node": "^0.3.7", "eslint-import-resolver-typescript": "^3.5.3", "eslint-plugin-cypress": "^3.3.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-no-relative-import-paths": "^1.5.2", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0" } }