{
    "name": "bs-manager",
    "description": "Manage maps, mods and more for Beat Saber",
    "main": "./.erb/dll/main.bundle.dev.js",
    "version": "1.5.0-alpha.4",
    "scripts": {
        "build-rust-scripts": "ts-node ./.erb/scripts/build-rust-scripts.js",
        "build": "concurrently \"npm run build:main\" \"npm run build:renderer\"",
        "build:dll": "cross-env NODE_ENV=development webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.ts",
        "build:main": "cross-env NODE_ENV=production webpack --config ./.erb/configs/webpack.config.main.prod.ts",
        "build:renderer": "cross-env NODE_ENV=production webpack --config ./.erb/configs/webpack.config.renderer.prod.ts",
        "postinstall": "ts-node .erb/scripts/check-native-dep.js && electron-builder install-app-deps && npm run build:dll",
        "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app",
        "prestart": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.dev.ts",
        "lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx",
        "package": "ts-node ./.erb/scripts/clean.js dist && npm run build && electron-builder build --publish never && npm run build:dll",
        "start": "ts-node ./.erb/scripts/check-port-in-use.js && npm run prestart && npm run start:renderer",
        "start:main": "concurrently -k \"cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --watch --config ./.erb/configs/webpack.config.main.dev.ts\" \"electronmon .\"",
        "start:preload": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.preload.dev.ts",
        "start:renderer": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack serve --config ./.erb/configs/webpack.config.renderer.dev.ts",
        "test": "jest",
        "publish": "npm run build && electron-builder -c.win.certificateSha1=2164d6a7d641ecf6ad57852f665a518ca2bf960f --publish always --win --x64",
        "publish:linux": "npm run build && electron-builder --publish always --linux --x64"
    },
    "lint-staged": {
        "*.{js,jsx,ts,tsx}": [
            "cross-env NODE_ENV=development eslint --cache"
        ],
        "*.json,.{eslintrc,prettierrc}": [
            "prettier --ignore-path .eslintignore --parser json --write"
        ],
        "*.{css,scss}": [
            "prettier --ignore-path .eslintignore --single-quote --write"
        ],
        "*.{html,md,yml}": [
            "prettier --ignore-path .eslintignore --single-quote --write"
        ]
    },
    "build": {
        "extraResources": [
            "./assets/jsons/bs-versions.json",
            "./assets/jsons/patreons.json",
            "./assets/proto/song_details_cache_v1.proto"
        ],
        "productName": "BSManager",
        "appId": "org.erb.BSManager",
        "asarUnpack": "**\\*.{node,dll}",
        "files": [
            "dist/**/*",
            "node_modules",
            "package.json"
        ],
        "afterSign": ".erb/scripts/notarize.js",
        "afterPack": ".erb/scripts/after-pack.js",
        "win": {
            "signingHashAlgorithms": ["sha256"],
            "target": [
                "nsis",
                "nsis-web"
            ],
            "icon": "./build/icons/win/favicon.ico",
            "extraResources": [
                "./build/icons/win",
                "./assets/scripts/*.exe"
            ]
        },
        "linux": {
            "target": [
                "AppImage"
            ],
            "icon": "./build/icons/png",
            "category": "Utility;Game;",
            "extraResources": [
                "./build/icons/png",
                "./assets/scripts/DepotDownloader"
            ]
        },
        "directories": {
            "app": "release/app",
            "buildResources": "assets",
            "output": "release/build"
        },
        "publish": {
            "provider": "github",
            "owner": "Zagrios"
        },
        "fileAssociations": [
            {
                "ext": "bplist",
                "description": "Beat Saber Playlist (BSManager)",
                "icon": "./assets/bsm_file.ico",
                "role": "Viewer"
            }
        ]
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/Zagrios/bs-manager.git"
    },
    "author": {
        "name": "Zagrios",
        "email": "peroz.mathieu@gmail.com",
        "url": "https://github.com/Zagrios"
    },
    "contributors": [],
    "license": "MIT",
    "bugs": {
        "url": "https://github.com/Zagrios/bs-manager/issues"
    },
    "keywords": [
        "downgrade",
        "launcher-application",
        "beatsaber",
        "beat-saber"
    ],
    "homepage": "https://github.com/Zagrios/bs-manager#readme",
    "jest": {
        "testURL": "http://localhost/",
        "testEnvironment": "jsdom",
        "transform": {
            "\\.(ts|tsx|js|jsx)$": "ts-jest"
        },
        "moduleNameMapper": {
            "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/.erb/mocks/fileMock.js",
            "\\.(css|less|sass|scss)$": "identity-obj-proxy"
        },
        "moduleFileExtensions": [
            "js",
            "jsx",
            "ts",
            "tsx",
            "json"
        ],
        "moduleDirectories": [
            "node_modules",
            "src"
        ],
        "testPathIgnorePatterns": [
            "release/app/dist"
        ],
        "setupFiles": [
            "./.erb/scripts/check-build-exists.ts"
        ]
    },
    "devDependencies": {
        "@electron/fuses": "^1.7.0",
        "@electron/notarize": "^2.3.0",
        "@electron/rebuild": "^3.6.0",
        "@pmmmwh/react-refresh-webpack-plugin": "0.5.5",
        "@teamsupercell/typings-for-css-modules-loader": "^2.5.2",
        "@testing-library/jest-dom": "^6.4.1",
        "@testing-library/react": "^14.2.0",
        "@types/archiver": "^6.0.2",
        "@types/color": "^3.0.3",
        "@types/crypto-js": "^4.2.1",
        "@types/dateformat": "^5.0.0",
        "@types/dompurify": "^3.0.5",
        "@types/got": "^9.6.12",
        "@types/jest": "^29.5.11",
        "@types/node": "20.11.15",
        "@types/node-fetch": "^2.6.3",
        "@types/pako": "^2.0.1",
        "@types/react": "^18.0.33",
        "@types/react-beautiful-dnd": "^13.1.8",
        "@types/react-dom": "^18.0.11",
        "@types/react-outside-click-handler": "^1.3.1",
        "@types/react-test-renderer": "^18.0.7",
        "@types/react-virtualized-auto-sizer": "^1.0.1",
        "@types/react-window": "^1.8.5",
        "@types/recursive-readdir": "^2.2.1",
        "@types/terser-webpack-plugin": "^5.0.4",
        "@types/to-ico": "^1.1.1",
        "@types/use-double-click": "^1.0.4",
        "@types/webpack-bundle-analyzer": "^4.4.2",
        "@types/webpack-env": "^1.18.0",
        "@typescript-eslint/eslint-plugin": "^6.20.0",
        "@typescript-eslint/parser": "^6.20.0",
        "autoprefixer": "^10.4.17",
        "browserslist-config-erb": "^0.0.3",
        "chalk": "^4.1.2",
        "concurrently": "^8.2.2",
        "core-js": "^3.36.0",
        "cross-env": "^7.0.3",
        "css-loader": "^6.10.0",
        "css-minimizer-webpack-plugin": "^6.0.0",
        "detect-port": "^1.5.1",
        "electron": "^32.1.2",
        "electron-builder": "^24.13.3",
        "electron-devtools-installer": "^3.2.0",
        "electronmon": "^2.0.2",
        "eslint": "^8.56.0",
        "eslint-config-airbnb-base": "^15.0.0",
        "eslint-config-erb": "^4.1.0",
        "eslint-import-resolver-typescript": "^3.6.1",
        "eslint-import-resolver-webpack": "^0.13.8",
        "eslint-plugin-compat": "^4.2.0",
        "eslint-plugin-import": "^2.29.1",
        "eslint-plugin-jest": "^27.6.3",
        "eslint-plugin-jsx-a11y": "^6.8.0",
        "eslint-plugin-promise": "^6.1.1",
        "eslint-plugin-react": "^7.33.2",
        "eslint-plugin-react-hooks": "^4.6.0",
        "file-loader": "^6.2.0",
        "html-webpack-plugin": "^5.6.0",
        "identity-obj-proxy": "^3.0.0",
        "jest": "^29.7.0",
        "lint-staged": "^15.2.1",
        "mini-css-extract-plugin": "^2.7.7",
        "opencollective-postinstall": "^2.0.3",
        "postcss": "^8.4.33",
        "postcss-loader": "^8.1.0",
        "prettier": "^3.2.4",
        "react-refresh": "^0.14.0",
        "react-test-renderer": "^18.2.0",
        "rimraf": "^5.0.5",
        "sass": "^1.70.0",
        "sass-loader": "^14.1.0",
        "style-loader": "^3.3.4",
        "tailwindcss": "^3.4.12",
        "terser-webpack-plugin": "^5.3.10",
        "ts-jest": "^29.1.2",
        "ts-loader": "^9.5.1",
        "typescript": "^5.3.3",
        "url-loader": "^4.1.1",
        "webpack": "^5.90.3",
        "webpack-bundle-analyzer": "^4.10.1",
        "webpack-cli": "^5.1.4",
        "webpack-dev-server": "^4.15.1",
        "webpack-merge": "^5.10.0"
    },
    "dependencies": {
        "@internationalized/date": "^3.5.4",
        "@nextui-org/date-picker": "^2.0.7",
        "@nextui-org/react": "^2.3.6",
        "@node-steam/vdf": "^2.2.0",
        "@tippyjs/react": "^4.2.6",
        "archiver": "^7.0.1",
        "clsx": "^2.1.1",
        "color": "^4.2.3",
        "crypto-js": "^4.2.0",
        "dateformat": "^5.0.3",
        "dompurify": "^3.0.9",
        "dot-prop": "^8.0.2",
        "electron-debug": "^3.2.0",
        "electron-log": "^4.4.8",
        "electron-store": "^8.1.0",
        "electron-updater": "^6.3.4",
        "fast-deep-equal": "^3.1.3",
        "format-duration": "^3.0.2",
        "framer-motion": "^11.2.6",
        "fs-extra": "^11.2.0",
        "got": "^14.4.2",
        "history": "^5.3.0",
        "is-elevated": "^4.0.0",
        "jszip": "^3.10.1",
        "md5-file": "^5.0.0",
        "node-abi": "^3.65.0",
        "node-fetch": "^3.3.2",
        "node-stream-zip": "^1.15.0",
        "pako": "^2.1.0",
        "protobufjs": "^7.4.0",
        "qrcode.react": "^4.0.1",
        "query-process": "^0.0.3",
        "react": "^18.2.0",
        "react-beautiful-dnd": "^13.1.1",
        "react-colorful": "^5.6.1",
        "react-dom": "^18.2.0",
        "react-range": "^1.10.0",
        "react-router-dom": "^6.24.1",
        "react-virtualized-auto-sizer": "^1.0.24",
        "react-window": "^1.8.10",
        "recursive-readdir": "^2.2.3",
        "rfdc": "^1.4.1",
        "rxjs": "^7.8.1",
        "sanitize-filename": "^1.6.3",
        "semver": "^7.6.3",
        "serialize-error": "^11.0.3",
        "striptags": "^4.0.0-alpha.4",
        "tailwind-merge": "^2.5.2",
        "tailwindcss-scoped-groups": "^2.0.0",
        "tippy.js": "^6.3.7",
        "to-ico": "^1.1.5",
        "use-double-click": "^1.0.5",
        "use-fit-text": "^2.4.0"
    },
    "engines": {
        "node": ">=20.0.0"
    },
    "collective": {
        "url": "https://www.patreon.com/bsmanager"
    },
    "browserslist": [],
    "prettier": {
        "printWidth": 1000,
        "bracketSameLine": false,
        "arrowParens": "avoid",
        "semi": true,
        "singleQuote": false,
        "jsxSingleQuote": false,
        "trailingComma": "es5",
        "bracketSpacing": true,
        "tabWidth": 4,
        "overrides": [
            {
                "files": [
                    ".prettierrc",
                    ".eslintrc"
                ],
                "options": {
                    "parser": "json"
                }
            }
        ]
    },
    "electronmon": {
        "patterns": [
            "!**/**",
            "src/main/**",
            ".erb/dll/**"
        ],
        "logLevel": "quiet"
    },
    "volta": {
        "node": "20.17.0"
    }
}
