{ "author": "Portainer.io", "name": "@portainer/ce", "homepage": "http://portainer.io", "version": "2.43.0", "repository": { "type": "git", "url": "git@github.com:portainer/portainer.git" }, "bugs": { "url": "https://github.com/portainer/portainer/issues" }, "licenses": [ { "type": "Zlib", "url": "https://raw.githubusercontent.com/portainer/portainer/develop/LICENSE" } ], "scripts": { "dev": "webpack-dev-server", "start": "webpack -w", "build": "webpack", "format": "prettier --log-level warn --write \"**/*.{js,css,html,jsx,tsx,ts}\"", "lint": "eslint --cache --fix \"./**/*.{js,jsx,ts,tsx}\"", "test": "vitest run", "sb": "pnpm run storybook", "storybook": "storybook dev -p 6006", "storybook:build": "storybook build -o ./dist/storybook", "analyze-webpack": "webpack --config ./webpack/webpack.analyze.js", "typecheck": "tsc --noEmit", "generate-api": "openapi-ts", "postgenerate-api": "pnpm format" }, "engines": { "node": "^22.22.1" }, "packageManager": "pnpm@10.26.2", "dependencies": { "@aws-crypto/sha256-js": "^2.0.0", "@codemirror/autocomplete": "^6.20.2", "@codemirror/commands": "^6.10.3", "@codemirror/language": "^6.12.3", "@codemirror/legacy-modes": "^6.5.3", "@codemirror/lint": "^6.9.6", "@codemirror/search": "^6.7.0", "@codemirror/state": "^6.6.0", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.43.0", "@lezer/common": "^1.0.2", "@lezer/highlight": "^1.1.3", "@nxmix/tokenize-ansi": "^3.0.0", "@radix-ui/react-dialog": "^1.1.1", "@radix-ui/react-slot": "^1.2.4", "@reach/combobox": "^0.18.0", "@reach/dialog": "^0.17.0", "@reach/menu-button": "^0.16.1", "@reach/popover": "^0.18.0", "@tanstack/react-query": "4", "@tanstack/react-query-devtools": "4", "@tanstack/react-table": "^8.8.5", "@tippyjs/react": "^4.2.6", "@uirouter/angularjs": "1.0.11", "@uirouter/react": "^1.0.7", "@uirouter/react-hybrid": "^1.0.4", "@uiw/codemirror-themes": "^4.25.10", "@uiw/react-codemirror": "^4.25.10", "@wojtekmaj/react-daterange-picker": "^5.5.0", "@xterm/addon-fit": "^0.11.0", "@xterm/xterm": "^6.0.0", "angular": "1.8.2", "angular-clipboard": "^1.6.2", "angular-file-saver": "^1.1.3", "angular-loading-bar": "~0.9.0", "angular-local-storage": "~0.5.2", "angular-messages": "1.8.2", "angular-mocks": "1.8.2", "angular-resource": "1.8.2", "angular-sanitize": "1.8.2", "angular-ui-bootstrap": "~2.5.0", "angularjs-scroll-glue": "^2.2.0", "angularjs-slider": "^6.4.0", "axios": "^1.18.0", "axios-cache-interceptor": "^1.11.2", "axios-progress-bar": "git://github.com/portainer/progress-bar-4-axios", "babel-plugin-angularjs-annotate": "^0.10.0", "bootstrap": "^3.4.0", "buffer": "^6.0.3", "c8": "^9.1.0", "chardet": "^1.4.0", "chart.js": "^2.9.4", "class-variance-authority": "^0.7.0", "clsx": "^1.1.1", "codemirror": "^6.0.1", "codemirror-json-schema": "^0.8.1", "core-js": "^3.19.3", "date-fns": "^2.29.3", "docker-types": "~1.47", "fast-json-patch": "^3.1.1", "file-saver": "^2.0.5", "filesize": "^10.1.6", "filesize-parser": "^1.5.0", "formik": "^2.4.9", "globals": "^15.15.0", "i18next": "^21.3.3", "i18next-browser-languagedetector": "^6.1.2", "i18next-http-backend": "^3.0.4", "jquery": "^3.6.0", "js-base64": "^3.7.2", "jsdom": "^24", "json-schema": "^0.4.0", "lodash": "^4.18.1", "lodash-es": "npm:lodash@4.18.1", "lucide-react": "^0.577.0", "markdown-to-jsx": "^7.7.4", "moment": "^2.30.1", "moment-timezone": "^0.6.2", "mustache": "^4.2.0", "ng-file-upload": "~12.2.13", "parse-duration": "^2.1.4", "qs": "^6.14.1", "rc-slider": "^10.0.0", "react": "^17.0.2", "react-calendar": "^4.8.0", "react-codemirror-merge": "^4.23.11", "react-datetime-picker": "^5.6.0", "react-dom": "^17.0.2", "react-i18next": "^11.12.0", "react-is": "^17.0.2", "react-json-view-lite": "^1.5.0", "react-select": "^5.10.2", "react-select-async-paginate": "^0.7.11", "sanitize-html": "^2.17.0", "spinkit": "^2.0.1", "strip-ansi": "^6.0.0", "tailwindcss-animate": "^1.0.7", "tippy.js": "^6.3.7", "toastr": "^2.1.4", "ts-xor": "^1.1.0", "uuid": "^3.3.2", "yaml": "^1.10.2", "yup": "^0.32.11", "zod": "4.3.6", "zustand": "^4.1.1" }, "devDependencies": { "@apidevtools/swagger-cli": "^4.0.4", "@babel/core": "^7.23.0", "@babel/preset-env": "^7.22.20", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@chromatic-com/storybook": "^5.1.2", "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1", "@eslint/compat": "^2.0.0", "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.39.2", "@hey-api/openapi-ts": "0.97.3", "@simbathesailor/use-what-changed": "^2.0.0", "@storybook/addon-docs": "10.4.2", "@storybook/addon-links": "10.4.2", "@storybook/addon-styling-webpack": "^3.0.2", "@storybook/addon-webpack5-compiler-swc": "^4.0.3", "@storybook/react-webpack5": "10.4.2", "@svgr/webpack": "^8.1.0", "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^12", "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^14.6.1", "@types/angular": "^1.8.3", "@types/file-saver": "^2.0.4", "@types/filesize": "^5.0.2", "@types/filesize-parser": "^1.5.1", "@types/jquery": "^3.5.10", "@types/json-schema": "^7.0.15", "@types/lodash": "^4.17.24", "@types/mustache": "^4.1.2", "@types/node": "^25.9.1", "@types/nprogress": "^0.2.0", "@types/qs": "^6.9.17", "@types/react": "^17.0.37", "@types/react-datetime-picker": "^3.4.1", "@types/react-dom": "^17.0.11", "@types/react-is": "^17.0.3", "@types/sanitize-html": "^2.8.0", "@types/toastr": "^2.1.39", "@types/uuid": "^3.3.2", "@typescript-eslint/eslint-plugin": "^8.60.1", "@typescript-eslint/parser": "^8.60.1", "@vitest/coverage-v8": "^4.1.8", "@vitest/eslint-plugin": "^1.6.15", "auto-ngtemplate-loader": "^3.1.2", "autoprefixer": "^10.5.0", "babel-loader": "^9.1.3", "babel-plugin-i18next-extract": "^0.9.0", "babel-plugin-lodash": "^3.3.4", "clean-webpack-plugin": "^4.0.0", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", "cssnano": "^8.0.1", "dotenv-webpack": "^8.0.1", "eslint": "^9.39.4", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-promise": "^7.3.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-regex": "^1.10.0", "eslint-plugin-storybook": "10.4.2", "html-loader": "^5.1.0", "html-webpack-plugin": "^5.5.3", "husky": "^8.0.0", "kubernetes-types": "^1.30.0", "lint-staged": "^17.0.7", "lodash-webpack-plugin": "^0.11.6", "mini-css-extract-plugin": "^2.7.6", "msw": "^2.14.6", "msw-storybook-addon": "^2.0.7", "ngtemplate-loader": "^2.1.0", "postcss": "^8.5.15", "postcss-loader": "^7.3.3", "prettier": "^3.8.3", "prettier-plugin-tailwindcss": "^0.8.0", "react-docgen-typescript-plugin": "^1.0.5", "source-map-loader": "^4.0.1", "speed-measure-webpack-plugin": "^1.5.0", "storybook": "10.4.2", "storybook-css-modules-preset": "^1.1.1", "style-loader": "^3.3.3", "swagger2openapi": "^7.0.8", "tailwindcss": "3.3.3", "typescript": "^6.0.2", "typescript-eslint": "^8.60.1", "vite": "^8.0.16", "vite-plugin-svgr": "^4.5.0", "vite-tsconfig-paths": "^4.3.1", "vitest": "^4.1.8", "webpack": "^5.107.2", "webpack-build-notifier": "^3.1.0", "webpack-bundle-analyzer": "^5.2.0", "webpack-cli": "^6.0.1", "webpack-dev-server": "^5.2.4", "webpack-merge": "^6.0.1" }, "pnpm": { "overrides": { "jquery": "^3.6.0", "decompress": "^4.2.1", "minimist": "^1.2.6", "http-proxy": "^1.18.1", "daterangepicker>jquery": "^3.5.1", "@uirouter/react": "^1.0.7", "@uirouter/angularjs": "1.0.11", "markdown-it": "^12.3.2", "@types/react": "^17.0.37", "@types/react-dom": "^17.0.11", "@types/node": "^25", "ngtemplate-loader>loader-utils": "^1.4.2", "braces": "^3.0.3", "shell-quote": "^1.8.4" }, "configDependencies": { "@pnpm/plugin-types-fixer": "0.1.0+sha512-bLww63gRHi7siYTqFJb5qNdcXadU0jv20Et6z5AryMZ7FlLolbEJOrXLpg8+amQZNHHNW1dfFUBGVw/9ezQbFg==" } }, "browserslist": "last 2 versions", "msw": { "workerDirectory": ".storybook/public" } }