{ "name": "chip-player-js", "version": "0.1.0", "private": true, "repository": "https://github.com/mmontag/chip-player-js", "description": "Web-based music player for a variety of video game and chiptune music formats.", "dependencies": { "@babel/core": "^7.22.5", "@babel/eslint-parser": "^7.22.5", "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-flow": "^7.14.5", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-transform-optional-chaining": "^7.22.5", "@babel/plugin-transform-react-jsx": "^7.14.9", "@babel/preset-env": "^7.22.5", "@babel/preset-react": "^7.22.5", "@typescript-eslint/eslint-plugin": "5.59.9", "@typescript-eslint/parser": "5.59.9", "auto-bind": "^5.0.1", "autoprefixer": "7.1.6", "axios": "^1.13.5", "babel-jest": "24.8.0", "babel-plugin-named-asset-import": "^0.3.2", "bytes": "latest", "case-sensitive-paths-webpack-plugin": "^2.4.0", "chalk": "^2.4.1", "core-js": "^3.49.0", "directory-tree": "2.2.1", "eslint": "^8.42.0", "eslint-config-react-app": "^7.0.1", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "events": "^3.3.0", "fili": "^2.0.3", "firebase": "^9.13.0", "fs-extra": "3.0.1", "immutability-helper": "^2.7.1", "ismobilejs": "^0.4.1", "lodash": "^4.17.21", "midievents": "latest", "midifile": "^2.0.0", "object-assign": "4.1.1", "path-parse": "^1.0.7", "pathe": "^2.0.3", "postcss-flexbugs-fixes": "3.2.0", "promise": "8.0.1", "raf": "3.4.0", "react": "^16.8.0", "react-dom": "^16.8.0", "react-dropzone": "7.0.0", "react-router-dom": "^5.2.0", "react-virtual-list": "git+https://github.com/glebcha/react-virtual-list.git#544bc7", "react-virtualized": "^9.22.5", "react-window": "^1.8.10", "redaxios": "^0.5.1", "resolve": "1.6.0", "typescript": "^3.5.2", "whatwg-fetch": "2.0.3" }, "devDependencies": { "@firebase/app-types": "0.x", "@firebase/util": "0.x", "@inquirer/prompts": "^8.3.2", "@vue/preload-webpack-plugin": "^2.0.0", "ajv": "^8.18.0", "ajv-keywords": "^5.1.0", "babel-loader": "^9.2.1", "better-sqlite3": "^12.5.0", "cheerio": "^1.0.0-rc.2", "child_process": "^1.0.2", "commander": "^14.0.2", "concurrently": "^9.2.1", "css-loader": "^6.11.0", "dotenv": "4.0.0", "dotenv-expand": "^12.0.3", "dotenv-flow": "^4.1.0", "eslint-webpack-plugin": "^3.2.0", "firebase-admin": "^13.6.0", "gh-pages": "^6.3.0", "glob": "^7.1.2", "html-webpack-plugin": "^5.6.6", "mini-css-extract-plugin": "^2.10.2", "node-stream-zip": "^1.7.0", "postcss-loader": "^6.2.1", "prompt": "^1.3.0", "prompt-sync": "^4.2.0", "react-dev-utils": "^12.0.1", "request": "^2.88.0", "request-promise": "^4.2.2", "roman-numerals": "^0.3.2", "sanitize-filename": "^1.6.1", "schema-utils": "^4.3.3", "sqlite3": "^5.1.4", "style-loader": "^3.3.4", "table": "^6.9.0", "tmp": "^0.0.33", "unzipper": "^0.9.3", "webpack": "^5.106.0", "webpack-bundle-analyzer": "^3.3.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.2", "webpack-manifest-plugin": "^5.0.1", "workbox-webpack-plugin": "^6.6.0" }, "homepage": "https://chiptune.app", "scripts": { "dev": "concurrently -n \"client,server\" \"node scripts/start.js --side-by-side\" \"npm run server\"", "start": "node scripts/start.js", "server": "NODE_ENV=development node --watch server/index.js", "build": "npm run build-catalog; npm run build-chip-core; node scripts/build.js", "build-lite": "node scripts/build.js", "build-chip-core": "source ~/src/emsdk/emsdk_env.sh; node scripts/build-chip-core.js", "build-catalog": "node $NODE_DEBUG_OPTION scripts/build-catalog.js", "predeploy": "npm run build", "deploy": "gh-pages -d build", "deploy-lite": "npm run build-lite; gh-pages -d build", "fixvgm": "node $NODE_DEBUG_OPTION scripts/fixvgm.js" }, "eslintConfig": { "extends": "react-app", "env": { "es2020": true }, "rules": { "jsx-a11y/href-no-hash": "off", "jsx-a11y/anchor-is-valid": "off", "no-fallthrough": "off", "import/no-anonymous-default-export": "off", "react/jsx-no-target-blank": "off" } } }