saibotk
a33e1e45bc
All checks were successful
continuous-integration/drone/pr Build is passing
This commit removes the direct dependency on the "slugify" package, since it produces slugs, which are still invalid to be used as subdomain names. We now use a custom RegEx scheme which just replaces all white spaces, dots and slashes with a "-" sign for readability and removes all otherwise invalid characters. To account for specific language characters or unicode variants we first normalize it using the String.prototype.normalize() function, so we can preserve as much characters as possible. Additionally, we now make sure that our alias is not longer than 37 characters, which is the maximum alias length according to Netlify's documentation [0] [0]: https://cli.netlify.com/commands/deploy
149 lines
4.0 KiB
JSON
149 lines
4.0 KiB
JSON
{
|
|
"name": "vikunja-frontend",
|
|
"version": "0.10.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"serve": "vite",
|
|
"serve:dist-dev": "node scripts/serve-dist.js",
|
|
"serve:dist": "vite preview",
|
|
"build": "vite build && workbox copyLibraries dist/",
|
|
"build:modern-only": "BUILD_MODERN_ONLY=true vite build && workbox copyLibraries dist/",
|
|
"build:dev": "vite build -m development --outDir dist-dev/",
|
|
"typecheck": "vue-tsc --noEmit",
|
|
"lint": "eslint --ignore-pattern '*.test.*' ./src --ext .vue,.js,.ts",
|
|
"cypress:open": "cypress open",
|
|
"test:unit": "vitest run",
|
|
"test:unit-watch": "vitest watch",
|
|
"test:frontend": "cypress run",
|
|
"browserslist:update": "npx browserslist@latest --update-db"
|
|
},
|
|
"dependencies": {
|
|
"@github/hotkey": "2.0.0",
|
|
"@kyvg/vue3-notification": "2.3.4",
|
|
"@sentry/tracing": "6.17.7",
|
|
"@sentry/vue": "6.17.7",
|
|
"@types/is-touch-device": "1.0.0",
|
|
"@vue/compat": "3.2.30",
|
|
"@vueuse/core": "7.6.0",
|
|
"@vueuse/router": "7.6.1",
|
|
"bulma-css-variables": "0.9.33",
|
|
"camel-case": "4.1.2",
|
|
"codemirror": "5.65.1",
|
|
"copy-to-clipboard": "3.3.1",
|
|
"date-fns": "2.28.0",
|
|
"dompurify": "2.3.5",
|
|
"easymde": "2.16.1",
|
|
"flatpickr": "4.6.9",
|
|
"flexsearch": "0.7.21",
|
|
"highlight.js": "11.4.0",
|
|
"is-touch-device": "1.0.1",
|
|
"lodash.clonedeep": "4.5.0",
|
|
"lodash.debounce": "4.0.8",
|
|
"marked": "4.0.12",
|
|
"register-service-worker": "1.7.2",
|
|
"snake-case": "3.0.4",
|
|
"ufo": "0.7.10",
|
|
"v-tooltip": "4.0.0-beta.17",
|
|
"vue": "3.2.30",
|
|
"vue-advanced-cropper": "2.8.0",
|
|
"vue-drag-resize": "2.0.3",
|
|
"vue-flatpickr-component": "9.0.5",
|
|
"vue-i18n": "9.2.0-beta.30",
|
|
"vue-router": "4.0.12",
|
|
"vuedraggable": "4.1.0",
|
|
"vuex": "4.0.2",
|
|
"workbox-precaching": "6.4.2"
|
|
},
|
|
"devDependencies": {
|
|
"@4tw/cypress-drag-drop": "2.1.0",
|
|
"@faker-js/faker": "6.0.0-alpha.6",
|
|
"@fortawesome/fontawesome-svg-core": "1.3.0",
|
|
"@fortawesome/free-regular-svg-icons": "5.15.4",
|
|
"@fortawesome/free-solid-svg-icons": "5.15.4",
|
|
"@fortawesome/vue-fontawesome": "3.0.0-5",
|
|
"@types/flexsearch": "0.7.2",
|
|
"@typescript-eslint/eslint-plugin": "5.11.0",
|
|
"@typescript-eslint/parser": "5.11.0",
|
|
"@vitejs/plugin-legacy": "1.7.1",
|
|
"@vitejs/plugin-vue": "2.2.0",
|
|
"@vue/eslint-config-typescript": "10.0.0",
|
|
"autoprefixer": "10.4.2",
|
|
"axios": "0.25.0",
|
|
"browserslist": "4.19.1",
|
|
"caniuse-lite": "1.0.30001311",
|
|
"cypress": "9.4.1",
|
|
"esbuild": "0.14.21",
|
|
"eslint": "8.9.0",
|
|
"eslint-plugin-vue": "8.4.1",
|
|
"express": "4.17.2",
|
|
"happy-dom": "2.31.1",
|
|
"netlify-cli": "8.16.1",
|
|
"postcss": "8.4.6",
|
|
"postcss-preset-env": "7.3.1",
|
|
"rollup": "2.67.2",
|
|
"rollup-plugin-visualizer": "5.5.4",
|
|
"sass": "1.49.7",
|
|
"typescript": "4.5.5",
|
|
"vite": "2.7.13",
|
|
"vite-plugin-pwa": "0.11.13",
|
|
"vite-svg-loader": "3.1.2",
|
|
"vitest": "0.3.2",
|
|
"vue-tsc": "0.31.2",
|
|
"wait-on": "6.0.1",
|
|
"workbox-cli": "6.4.2"
|
|
},
|
|
"eslintConfig": {
|
|
"root": true,
|
|
"env": {
|
|
"browser": true,
|
|
"es2021": true,
|
|
"node": true,
|
|
"vue/setup-compiler-macros": true
|
|
},
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:vue/vue3-essential",
|
|
"@vue/typescript"
|
|
],
|
|
"rules": {
|
|
"vue/html-quotes": [
|
|
"error",
|
|
"double"
|
|
],
|
|
"quotes": [
|
|
"error",
|
|
"single"
|
|
],
|
|
"comma-dangle": [
|
|
"error",
|
|
"always-multiline"
|
|
],
|
|
"semi": [
|
|
"error",
|
|
"never"
|
|
],
|
|
"vue/script-setup-uses-vars": "error",
|
|
"vue/multi-word-component-names": 0
|
|
},
|
|
"parser": "vue-eslint-parser",
|
|
"parserOptions": {
|
|
"parser": "@typescript-eslint/parser",
|
|
"ecmaVersion": 2022
|
|
},
|
|
"ignorePatterns": [
|
|
"*.test.*",
|
|
"cypress/*"
|
|
],
|
|
"globals": {
|
|
"defineProps": "readonly"
|
|
}
|
|
},
|
|
"postcss": {
|
|
"plugins": {
|
|
"autoprefixer": {}
|
|
}
|
|
},
|
|
"license": "AGPL-3.0-or-later",
|
|
"packageManager": "yarn@1.22.17"
|
|
}
|