{ "name": "mainsail", "version": "2.19.0", "private": true, "type": "module", "decription": "a klipper web interface", "author": { "name": "Stefan Dej" }, "scripts": { "serve": "vite serve", "build": "vite build && npm run build.zip", "build:grammars": "node scripts/build-grammars.mjs", "format": "npm run format:base -- --write", "format:base": "prettier .", "format:check": "npm run format:base -- --check", "lint": "eslint src", "lint:fix": "npm run lint -- --fix", "build.zip": "cd ./dist && zip -r mainsail.zip ./ -x '**.DS_Store' ./ && cd ..", "i18n-extract": "node ./scripts/i18n-extract.js", "preview": "vite preview", "start": "vite build && vite preview", "test": "start-server-and-test preview http://127.0.0.1:4173/ 'cypress run'", "test:ui": "cypress open", "test:unit": "vitest run", "changelog": "git cliff v0.0.4..$(git describe --tags $(git rev-list --tags --max-count=1)) --output CHANGELOG.md" }, "dependencies": { "@codemirror/commands": "^6.0.1", "@codemirror/lang-css": "^6.0.0", "@codemirror/lang-json": "^6.0.0", "@codemirror/lang-markdown": "^6.3.4", "@codemirror/lang-yaml": "^6.1.3", "@codemirror/language": "^6.2.0", "@codemirror/legacy-modes": "^6.1.0", "@codemirror/search": "^6.0.0", "@codemirror/state": "^6.1.0", "@codemirror/view": "^6.0.3", "@ctrl/tinycolor": "^4.2.1", "@jaames/iro": "^5.5.2", "@lezer/highlight": "^1.0.0", "@sindarius/gcodeviewer": "^3.7.18", "@uiw/codemirror-theme-vscode": "^4.23.13", "axios": "^1.20.0", "codemirror": "^6.0.1", "core-js": "^3.16.0", "detect-browser": "^5.3.0", "dompurify": "^3.4.17", "echarts": "^5.5.0", "echarts-gl": "^2.0.8", "hls.js": "^1.3.3", "jmuxer": "^2.0.5", "js-sha256": "^0.11.1", "lodash.kebabcase": "^4.1.1", "lodash.throttle": "^4.1.1", "marked": "^16.4.2", "overlayscrollbars": "^1.13.1", "overlayscrollbars-vue": "^0.2.2", "regenerator-runtime": "^0.14.0", "resize-observer-polyfill": "^1.5.1", "semver": "^7.5.2", "typed_janus_js": "^1.0.14", "uuid": "^14.0.0", "vue": "^2.7.10", "vue-class-component": "^7.2.6", "vue-echarts": "^6.0.2", "vue-i18n": "^8.28.2", "vue-inline-svg": "^2.1.3", "vue-load-image": "^0.2.0", "vue-observe-visibility": "^1.0.0", "vue-property-decorator": "^9.1.2", "vue-toast-notification": "^1.0.1", "vuedraggable": "^2.24.3", "vuetify": "^2.7.2", "vuex": "^3.6.2" }, "devDependencies": { "@eslint/js": "^10.0.1", "@lezer/generator": "^1.8.0", "@mdi/js": "^7.0.0", "@pedrolamas/plugin-vue2": "^2.4.1", "@types/file-saver": "^2.0.5", "@types/jmuxer": "^2.0.3", "@types/lodash.kebabcase": "^4.1.6", "@types/lodash.throttle": "^4.1.6", "@types/node": "^20.19.0", "@types/overlayscrollbars": "^1.12.1", "@types/semver": "^7.3.8", "@vue/eslint-config-typescript": "^14.0.0", "autoprefixer": "^10.4.2", "cypress": "^15.15.0", "eslint": "^10.0.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-jsonc": "^3.2.0", "eslint-plugin-vue": "^10.0.0", "events": "^3.3.0", "globals": "^17.7.0", "jsdom": "^26.1.0", "postcss": "^8.5.23", "postcss-nesting": "^14.0.0", "prettier": "^3.3.3", "prettier-plugin-sort-json": "^4.0.0", "sass": "^1.107.1", "sass-embedded": "^1.107.1", "start-server-and-test": "^3.0.11", "stream-browserify": "^3.0.0", "typescript": "^6.0.3", "unplugin-vue-components": "^0.22.12", "vite": "^8.3.5", "vite-plugin-checker": "^0.14.4", "vite-plugin-package-version": "^1.1.0", "vite-plugin-pwa": "^1.3.0", "vitest": "^4.1.12", "vue-debounce-decorator": "^1.0.1", "vue-i18n-extract": "^2.0.7", "vue-router": "^3.5.2", "vue-template-compiler": "^2.7.16", "workbox-core": "^7.0.0" }, "postcss": { "plugins": { "autoprefixer": {} } }, "browserslist": [ "> 1%", "not dead", "not op_mini all", "last 10 chrome major versions", "last 5 firefox major versions", "safari 12", "last 2 opera major versions", "last 2 edge major versions" ], "engines": { "node": "^20.19.0 || >=22.12.0" }, "overrides": { "minimatch@>=9.0.0 <9.0.7": "~9.0.7", "brace-expansion@<1.1.17": "~1.1.17", "brace-expansion@>=2.0.0 <2.1.3": "~2.1.3", "brace-expansion@>=4.0.0 <5.0.8": "^5.0.8", "typed_janus_js": { "lodash": ">=4.17.23" } } }