{ "private": true, "scripts": { "check-dependencies": "scripts/frontend/check_dependencies.sh", "block-dependencies": "node scripts/frontend/block_dependencies.js", "check:startup_css": "scripts/frontend/startup_css/startup_css_changed.sh", "clean": "rm -rf public/assets tmp/cache/*-loader", "dev-server": "NODE_OPTIONS=\"--max-old-space-size=3584\" node scripts/frontend/webpack_dev_server.js", "file-coverage": "scripts/frontend/file_test_coverage.js", "lint-docs": "scripts/lint-doc.sh", "internal:eslint": "eslint --cache --max-warnings 0 --report-unused-disable-directives --ext .js,.vue,.graphql", "internal:stylelint": "stylelint -q '{ee/,}app/assets/stylesheets/**/*.{css,scss}'", "prejest": "yarn check-dependencies", "jest": "jest --config jest.config.js", "jest-debug": "node --inspect-brk node_modules/.bin/jest --runInBand", "jest:ci": "jest --config jest.config.js --ci --coverage --testSequencer ./scripts/frontend/parallel_ci_sequencer.js", "jest:ci:minimal": "jest --config jest.config.js --ci --coverage --findRelatedTests $(cat tmp/changed_files.txt) --passWithNoTests --testSequencer ./scripts/frontend/parallel_ci_sequencer.js", "jest:integration": "jest --config jest.config.integration.js", "jsdoc": "jsdoc -c config/jsdocs.config.js", "lint:eslint": "node scripts/frontend/eslint.js", "lint:eslint:fix": "node scripts/frontend/eslint.js --fix", "lint:eslint:all": "node scripts/frontend/eslint.js .", "lint:eslint:all:fix": "yarn run lint:eslint:all --fix", "lint:eslint:report": "node scripts/frontend/eslint.js --format html --output-file ./eslint-report.html --no-inline-config .", "lint:eslint:staged": "scripts/frontend/execute-on-staged-files.sh internal:eslint '(js|vue)'", "lint:eslint:staged:fix": "yarn run lint:eslint:staged --fix", "lint:prettier": "yarn run prettier --check '**/*.{graphql,js,vue}'", "lint:prettier:fix": "yarn run prettier --write '**/*.{graphql,js,vue}'", "lint:prettier:staged": "scripts/frontend/execute-on-staged-files.sh prettier '(graphql|js|vue)' --check", "lint:prettier:staged:fix": "scripts/frontend/execute-on-staged-files.sh prettier '(graphql|js|vue)' --write", "lint:stylelint": "stylelint '{ee/,}app/assets/stylesheets/**/*.{css,scss}'", "lint:stylelint:fix": "yarn run lint:stylelint --fix", "lint:stylelint:staged": "scripts/frontend/execute-on-staged-files.sh stylelint '(css|scss)' -q", "lint:stylelint:staged:fix": "yarn run lint:stylelint:staged --fix", "generate:startup_css": "scripts/frontend/startup_css/setup.sh && node scripts/frontend/startup_css/main.js", "generate:startup_css:full": "scripts/frontend/startup_css/setup.sh force && node scripts/frontend/startup_css/main.js", "markdownlint": "markdownlint --config .markdownlint.yml", "markdownlint:no-trailing-spaces": "markdownlint --config doc/.markdownlint/markdownlint-no-trailing-spaces.yml", "markdownlint:no-trailing-spaces:fix": "yarn run markdownlint:no-trailing-spaces --fix", "postinstall": "node ./scripts/frontend/postinstall.js", "storybook:install": "yarn --cwd ./storybook install", "storybook:build": "yarn --cwd ./storybook build", "storybook:start": "./scripts/frontend/start_storybook.sh", "stylelint-create-utility-map": "node scripts/frontend/stylelint/stylelint_utility_map.js", "webpack": "NODE_OPTIONS=\"--max-old-space-size=3584\" webpack --config config/webpack.config.js", "webpack-vendor": "NODE_OPTIONS=\"--max-old-space-size=3584\" webpack --config config/webpack.vendor.config.js", "webpack-prod": "NODE_OPTIONS=\"--max-old-space-size=3584\" NODE_ENV=production webpack --config config/webpack.config.js" }, "dependencies": { "@apollo/client": "^3.5.10", "@babel/core": "^7.18.5", "@babel/preset-env": "^7.18.2", "@gitlab/at.js": "1.5.7", "@gitlab/favicon-overlay": "2.0.0", "@gitlab/svgs": "2.22.0", "@gitlab/ui": "42.11.0", "@gitlab/visual-review-tools": "1.7.3", "@rails/actioncable": "6.1.4-7", "@rails/ujs": "6.1.4-7", "@sentry/browser": "5.30.0", "@sourcegraph/code-host-integration": "0.0.60", "@tiptap/core": "^2.0.0-beta.176", "@tiptap/extension-blockquote": "^2.0.0-beta.26", "@tiptap/extension-bold": "^2.0.0-beta.26", "@tiptap/extension-bullet-list": "^2.0.0-beta.26", "@tiptap/extension-code": "^2.0.0-beta.26", "@tiptap/extension-code-block-lowlight": "2.0.0-beta.68", "@tiptap/extension-document": "^2.0.0-beta.15", "@tiptap/extension-dropcursor": "^2.0.0-beta.25", "@tiptap/extension-gapcursor": "^2.0.0-beta.34", "@tiptap/extension-hard-break": "^2.0.0-beta.30", "@tiptap/extension-heading": "^2.0.0-beta.26", "@tiptap/extension-history": "^2.0.0-beta.21", "@tiptap/extension-horizontal-rule": "^2.0.0-beta.31", "@tiptap/extension-image": "^2.0.0-beta.27", "@tiptap/extension-italic": "^2.0.0-beta.26", "@tiptap/extension-link": "^2.0.0-beta.38", "@tiptap/extension-list-item": "^2.0.0-beta.20", "@tiptap/extension-ordered-list": "^2.0.0-beta.27", "@tiptap/extension-paragraph": "^2.0.0-beta.23", "@tiptap/extension-strike": "^2.0.0-beta.27", "@tiptap/extension-subscript": "^2.0.0-beta.10", "@tiptap/extension-superscript": "^2.0.0-beta.10", "@tiptap/extension-table": "^2.0.0-beta.49", "@tiptap/extension-table-cell": "^2.0.0-beta.20", "@tiptap/extension-table-header": "^2.0.0-beta.22", "@tiptap/extension-table-row": "^2.0.0-beta.19", "@tiptap/extension-task-item": "^2.0.0-beta.32", "@tiptap/extension-task-list": "^2.0.0-beta.26", "@tiptap/extension-text": "^2.0.0-beta.15", "@tiptap/vue-2": "^2.0.0-beta.79", "apollo-upload-client": "15.0.0", "autosize": "^5.0.1", "aws-sdk": "^2.637.0", "axios": "^0.24.0", "babel-loader": "^8.2.5", "babel-plugin-lodash": "^3.3.4", "bootstrap": "4.5.3", "cache-loader": "^4.1.0", "canvas-confetti": "^1.4.0", "clipboard": "^2.0.8", "codemirror": "^5.48.4", "codesandbox-api": "0.0.23", "compression-webpack-plugin": "^5.0.2", "copy-webpack-plugin": "^6.4.1", "core-js": "^3.23.2", "cron-validator": "^1.1.1", "cronstrue": "^1.122.0", "cropper": "^2.3.0", "css-loader": "^2.1.1", "d3": "^5.16.0", "d3-sankey": "^0.12.3", "d3-selection": "^1.2.0", "dateformat": "^5.0.1", "deckar01-task_list": "^2.3.1", "diff": "^3.4.0", "dompurify": "^2.3.8", "dropzone": "^4.2.0", "editorconfig": "^0.15.3", "emoji-regex": "^10.0.0", "fast-mersenne-twister": "1.0.2", "file-loader": "^6.2.0", "fuzzaldrin-plus": "^0.6.0", "graphql": "^15.7.2", "graphql-tag": "^2.11.0", "hast-util-to-string": "^2.0.0", "highlight.js": "^11.5.1", "immer": "^7.0.7", "ipaddr.js": "^1.9.1", "jed": "^1.1.1", "jquery": "^3.6.0", "jquery.caret": "^0.3.1", "js-cookie": "^3.0.0", "js-yaml": "^3.13.1", "jszip": "^3.1.3", "jszip-utils": "^0.0.2", "katex": "^0.13.2", "lodash": "^4.17.20", "lowlight": "^2.6.1", "marked": "^0.3.12", "mathjax": "3", "mermaid": "^9.1.1", "minimatch": "^3.0.4", "monaco-editor": "^0.25.2", "monaco-editor-webpack-plugin": "^4.0.0", "monaco-yaml": "^2.5.1", "mousetrap": "1.6.5", "papaparse": "^5.3.1", "patch-package": "^6.4.7", "pdfjs-dist": "^2.0.943", "pikaday": "^1.8.0", "popper.js": "^1.16.1", "portal-vue": "^2.1.7", "postcss": "8.4.14", "prismjs": "^1.21.0", "prosemirror-markdown": "1.8.0", "prosemirror-model": "^1.16.1", "prosemirror-state": "^1.3.4", "prosemirror-tables": "^1.1.1", "prosemirror-view": "^1.23.13", "raphael": "^2.2.7", "raw-loader": "^4.0.2", "rehype-raw": "^6.1.1", "remark-gfm": "^3.0.1", "remark-parse": "^10.0.1", "remark-rehype": "^10.1.0", "scrollparent": "^2.0.1", "select2": "3.5.2-browserify", "smooshpack": "^0.0.62", "sortablejs": "^1.10.2", "string-hash": "1.1.3", "style-loader": "^2.0.0", "swagger-ui-dist": "4.8.0", "three": "^0.84.0", "three-orbit-controls": "^82.1.0", "three-stl-loader": "^1.0.4", "timeago.js": "^4.0.2", "unified": "^10.1.2", "unist-util-visit-parents": "^5.1.0", "url-loader": "^4.1.1", "uuid": "8.1.0", "visibilityjs": "^1.2.4", "vue": "^2.6.12", "vue-apollo": "^3.0.7", "vue-loader": "^15.9.6", "vue-observe-visibility": "^1.0.0", "vue-resize": "^1.0.1", "vue-router": "3.4.9", "vue-template-compiler": "^2.6.12", "vue-virtual-scroll-list": "^1.4.7", "vuedraggable": "^2.23.0", "vuex": "^3.6.0", "web-vitals": "^0.2.4", "webpack": "^4.46.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-cli": "^4.10.0", "webpack-stats-plugin": "^0.3.1", "worker-loader": "^2.0.0", "xterm": "3.14.5", "yaml": "^2.0.0-10" }, "devDependencies": { "@gitlab/eslint-plugin": "12.1.0", "@gitlab/stylelint-config": "4.1.0", "@graphql-eslint/eslint-plugin": "3.10.4", "@testing-library/dom": "^7.16.2", "@types/jest": "^26.0.24", "@vue/test-utils": "1.3.0", "acorn": "^6.3.0", "ajv": "^8.10.0", "ajv-formats": "^2.1.1", "axios-mock-adapter": "^1.15.0", "babel-jest": "^26.5.2", "chalk": "^2.4.1", "cheerio": "^1.0.0-rc.9", "commander": "^2.20.3", "custom-jquery-matchers": "^2.1.0", "docdash": "^1.0.2", "eslint": "7.32.0", "eslint-import-resolver-jest": "3.0.2", "eslint-import-resolver-webpack": "0.13.2", "eslint-plugin-no-jquery": "2.7.0", "gettext-extractor": "^3.5.3", "gettext-extractor-vue": "^5.0.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-reports": "^3.0.0", "jest": "^26.5.2", "jest-canvas-mock": "^2.1.2", "jest-diff": "^27.4.6", "jest-environment-jsdom": "^26.5.2", "jest-junit": "^12.0.0", "jest-raw-loader": "^1.0.1", "jest-transform-graphql": "^2.1.0", "jest-util": "^26.5.2", "jsdoc": "^3.5.5", "jsdoc-vue": "^1.0.0", "markdownlint-cli": "0.31.0", "md5": "^2.2.1", "miragejs": "^0.1.40", "mock-apollo-client": "1.2.0", "nodemon": "^2.0.4", "prettier": "2.2.1", "prosemirror-schema-basic": "^1.1.2", "prosemirror-schema-list": "^1.1.6", "prosemirror-test-builder": "^1.0.6", "purgecss": "^4.0.3", "purgecss-from-html": "^4.0.3", "sass": "^1.49.9", "stylelint": "^14.9.1", "timezone-mock": "^1.0.8", "vue-jest": "4.0.1", "webpack-dev-server": "4.9.3", "xhr-mock": "^2.5.1", "yarn-check-webpack-plugin": "^1.2.0", "yarn-deduplicate": "^5.0.0" }, "blockedDependencies": { "bootstrap-vue": "https://docs.gitlab.com/ee/development/fe_guide/dependencies.html#bootstrapvue" }, "resolutions": { "chokidar": "^3.5.3", "@types/node": "14.17.5" }, "engines": { "node": ">=12.22.1", "yarn": "^1.10.0" } }