{ "name": "twofactor_totp", "description": "Nextcloud TwoFactor TOTP", "version": "15.0.0-dev.0", "author": "Christoph Wurst ", "license": "AGPL-3.0-only", "private": true, "scripts": { "build": "webpack --node-env production --progress", "postbuild": "build-js/npm-post-build.sh", "dev": "webpack --node-env development --progress", "watch": "webpack --node-env development --progress --watch", "lint": "eslint --ext .js,.vue src", "lint:fix": "eslint --ext .js,.vue src --fix", "stylelint": "stylelint css/*.css css/*.scss src/**/*.scss src/**/*.vue", "stylelint:fix": "stylelint css/*.css css/*.scss src/**/*.scss src/**/*.vue --fix", "test": "jest", "test:watch": "jest --watch", "test:e2e": "playwright test", "test:e2e:ui": "playwright test --ui" }, "dependencies": { "@chenfengyuan/vue-qrcode": "^1.0.2", "@nextcloud/auth": "^2.5.3", "@nextcloud/axios": "^2.5.2", "@nextcloud/initial-state": "^3.0.0", "@nextcloud/logger": "^3.0.3", "@nextcloud/password-confirmation": "^6", "@nextcloud/router": "^3.1.0", "vue": "^2.7.16", "vuex": "^3.6.2" }, "browserslist": [ "extends @nextcloud/browserslist-config" ], "engines": { "node": "^24.0.0", "npm": "^11.3.0" }, "jshintConfig": { "esversion": 6 }, "devDependencies": { "@nextcloud/babel-config": "^1.3.0", "@nextcloud/browserslist-config": "^3.1.2", "@nextcloud/eslint-config": "^8.4.2", "@nextcloud/stylelint-config": "^2.4.0", "@nextcloud/webpack-vue-config": "^7.0.2", "@playwright/test": "^1.57.0", "@vue/test-utils": "^1.3.6", "@vue/vue2-jest": "^29.2.6", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^29.7.0", "chai": "^4.5.0", "eslint-plugin-chai-friendly": "^1.1.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-transform-stub": "^2.0.0", "totp-generator": "^2.0.0", "vue-loader": "^15.11.1" }, "prettier": { "singleQuote": true, "semi": false, "useTabs": true, "tabWidth": 4, "trailingComma": "es5" }, "jest": { "verbose": true, "moduleFileExtensions": [ "js", "vue" ], "moduleNameMapper": { "^@nextcloud/password-confirmation$": "/node_modules/@nextcloud/password-confirmation/dist/index.mjs", "^@nextcloud/vue/components/NcDialog$": "/node_modules/@nextcloud/vue/dist/components/NcDialog/index.mjs", "^@nextcloud/vue/components/NcPasswordField$": "/node_modules/@nextcloud/vue/dist/components/NcPasswordField/index.mjs", "^@nextcloud/vue/functions/dialog$": "/node_modules/@nextcloud/vue/dist/functions/dialog/index.mjs" }, "setupFilesAfterEnv": [ "./src/tests/jest.setup.js" ], "testEnvironment": "jest-environment-jsdom", "transform": { ".*\\.(m?js)$": "babel-jest", ".*\\.(vue)$": "@vue/vue2-jest", ".*\\.(css|styl|less|sass|scss|jpg|jpeg|png|svg|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|avif)$": "jest-transform-stub" }, "transformIgnorePatterns": [ "/node_modules/(?!(?:@nextcloud/vue|@nextcloud/auth|@nextcloud/browser-storage|@nextcloud/initial-state|@nextcloud/password-confirmation|@vueuse/core|@vueuse/shared|debounce)/)" ] } }