mirror of
https://github.com/FoxxMD/multi-scrobbler.git
synced 2026-05-03 06:01:43 +00:00
* Refactor credit parsing into two stages: joiner separation and credits parsing * Break credit parsing into wrapped vs. non-wrapped for simpler regexes * Implement suffix matching after credits * Add tests for wrapped vs. non-wrapped credits and with suffixes
179 lines
6.9 KiB
JSON
179 lines
6.9 KiB
JSON
{
|
|
"name": "multi-scrobbler",
|
|
"version": "0.6.2",
|
|
"description": "scrobble plays from multiple sources to multiple clients",
|
|
"scripts": {
|
|
"schema": "npm run -s schema-aio & npm run -s schema-source & npm run -s schema-client & npm run -s schema-aiosource & npm run -s schema-aioclient",
|
|
"schema-client": "typescript-json-schema src/backend/tsconfig.json ClientConfig --out src/backend/common/schema/client.json --required --titles --tsNodeRegister --refs --validationKeywords deprecationMessage",
|
|
"schema-source": "typescript-json-schema src/backend/tsconfig.json SourceConfig --out src/backend/common/schema/source.json --required --titles --tsNodeRegister --refs --validationKeywords deprecationMessage",
|
|
"schema-aio": "typescript-json-schema src/backend/tsconfig.json AIOConfig --out src/backend/common/schema/aio.json --required --titles --tsNodeRegister --refs --validationKeywords deprecationMessage",
|
|
"schema-aiosource": "typescript-json-schema src/backend/tsconfig.json AIOSourceConfig --out src/backend/common/schema/aio-source.json --titles --required --tsNodeRegister --refs --validationKeywords deprecationMessage",
|
|
"schema-aioclient": "typescript-json-schema src/backend/tsconfig.json AIOClientConfig --out src/backend/common/schema/aio-client.json --titles --required --tsNodeRegister --refs --validationKeywords deprecationMessage",
|
|
"typedoc": "typedoc",
|
|
"circular": "madge --circular --extensions ts src/index.ts",
|
|
"test": "react-scripts test",
|
|
"test:backend": "mocha --extension ts --reporter spec --recursive src/backend/tests/**/*.test.ts",
|
|
"eject": "react-scripts eject",
|
|
"dev": "concurrently -p name -c \"yellow,magenta,blue\" -n \"webpack-server,nodemon-server,CRA\" \"npm run dev:server:webpack\" \"npm run dev:server:nodemon\" \"npm run dev:client\"",
|
|
"dev:client": "BROWSER=none REACT_APP_VERSION=$npm_package_version react-scripts start",
|
|
"dev:server": "concurrently -p name -c \"yellow,magenta\" -n \"webpack-server,nodemon-server\" \"npm run dev:server:webpack\" \"npm run dev:server:nodemon\"",
|
|
"dev:server:webpack": "webpack --config webpack.config.server.js",
|
|
"dev:server:nodemon": "rm -f build/server.js && wait-on -l build/server.js && nodemon build/server.js",
|
|
"build": "npm run -s build:client && npm run -s build:server",
|
|
"build:client": "NODE_ENV=production REACT_APP_VERSION=$npm_package_version react-scripts build",
|
|
"build:server": "webpack --env production --config webpack.config.server.js",
|
|
"start": "node build/server.js",
|
|
"fileEndings": "jscodeshift --transformFrom js --transformTo none --importTypes relative --extensions=ts --parser tsx --transform codeshift/transform.ts src/backend"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/backend/common/infrastructure/typings/lastfm-node-client.d.ts",
|
|
"import": "./src/backend/index.js"
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": ">=18.0.0",
|
|
"npm": ">=9.1.0"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/FoxxMD/multi-scrobbler.git"
|
|
},
|
|
"author": "",
|
|
"license": "MIT",
|
|
"bugs": {
|
|
"url": "https://github.com/FoxxMD/multi-scrobbler/issues"
|
|
},
|
|
"private": true,
|
|
"homepage": ".",
|
|
"dependencies": {
|
|
"@awaitjs/express": "^0.6.3",
|
|
"@fortawesome/fontawesome-svg-core": "^6.4.2",
|
|
"@fortawesome/free-solid-svg-icons": "^6.4.2",
|
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
"@foxxmd/string-sameness": "^0.2.0",
|
|
"@foxxmd/winston": "3.3.31",
|
|
"@kenyip/backoff-strategies": "^1.0.4",
|
|
"@react-nano/use-event-source": "^0.13.0",
|
|
"@reduxjs/toolkit": "^1.9.5",
|
|
"@supercharge/promise-pool": "^3.0.0",
|
|
"address": "^1.2.2",
|
|
"ajv": "^7.2.4",
|
|
"better-sse": "^0.8.0",
|
|
"body-parser": "^1.19.0",
|
|
"clsx": "^2.0.0",
|
|
"common-tags": "^1.8.2",
|
|
"compare-versions": "^4.1.2",
|
|
"concat-stream": "^2.0.0",
|
|
"dayjs": "^1.10.4",
|
|
"dbus-next": "0.10.2",
|
|
"dotenv": "^10.0.0",
|
|
"es6-error": "^4.1.1",
|
|
"express": "^4.17.1",
|
|
"express-session": "^1.17.2",
|
|
"fixed-size-list": "^0.3.0",
|
|
"formidable": "^2.1",
|
|
"gotify": "^1.1.0",
|
|
"iti": "^0.6.0",
|
|
"json5": "^2.2.3",
|
|
"kodi-api": "^0.2.1",
|
|
"lastfm-node-client": "^2.2.0",
|
|
"mopidy": "^1.3.0",
|
|
"nanoid": "^3.3.1",
|
|
"normalize-url": "^6.1.0",
|
|
"ntfy": "1.0.5",
|
|
"object-hash": "^3.0.0",
|
|
"p-event": "^4.2.0",
|
|
"passport": "^0.6.0",
|
|
"passport-deezer": "^0.2.0",
|
|
"pony-cause": "^1.1.1",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-redux": "^8.1.2",
|
|
"react-router-dom": "^6.15.0",
|
|
"safe-stable-stringify": "^1.1.1",
|
|
"sass": "^1.66.1",
|
|
"spotify-web-api-node": "^5.0.2",
|
|
"superagent": "^8.0.9",
|
|
"tailwindcss": "^3.3.3",
|
|
"toad-scheduler": "^3.0.0",
|
|
"triple-beam": "^1.3.0",
|
|
"wait-on": "^7.0.1",
|
|
"web-vitals": "^2.1.4",
|
|
"winston-daily-rotate-file": "^4.5.0",
|
|
"winston-duplex": "0.1.3",
|
|
"winston-null": "^2.0.0",
|
|
"winston-transport": "^4.4.0",
|
|
"xml2js": "^0.4.23",
|
|
"youtube-music-ts-api": "^1.7.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
"@faker-js/faker": "^8.1.0",
|
|
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
"@testing-library/jest-dom": "^5.17.0",
|
|
"@testing-library/react": "^13.4.0",
|
|
"@testing-library/user-event": "^13.5.0",
|
|
"@tsconfig/node18": "^1.0.1",
|
|
"@types/chai": "^4.3.0",
|
|
"@types/chai-as-promised": "^7.1.5",
|
|
"@types/clone": "^2.1.2",
|
|
"@types/common-tags": "^1.8.1",
|
|
"@types/concat-stream": "^2.0.0",
|
|
"@types/express": "^4.17.13",
|
|
"@types/express-session": "^1.17.4",
|
|
"@types/formidable": "^2.0.5",
|
|
"@types/jest": "^27.5.2",
|
|
"@types/jscodeshift": "^0.11.6",
|
|
"@types/mocha": "^9.1.0",
|
|
"@types/node": "^18.0.0",
|
|
"@types/object-hash": "^3.0.0",
|
|
"@types/passport": "^1.0.12",
|
|
"@types/react": "^18.2.18",
|
|
"@types/react-dom": "^18.2.7",
|
|
"@types/react-window": "^1.8.5",
|
|
"@types/spotify-web-api-node": "^5.0.7",
|
|
"@types/superagent": "^4.1.16",
|
|
"@types/triple-beam": "^1.3.2",
|
|
"@types/xml2js": "^0.4.11",
|
|
"chai": "^4.3.6",
|
|
"chai-as-promised": "^7.1.1",
|
|
"clone": "^2.1.2",
|
|
"concurrently": "^8.2.0",
|
|
"jscodeshift": "^0.15.0",
|
|
"mocha": "^9.2.1",
|
|
"msw": "^2.0.2",
|
|
"nodemon": "^3.0.1",
|
|
"nyc": "^15.1.0",
|
|
"patch-package": "^8.0.0",
|
|
"react-scripts": "5.0.1",
|
|
"source-map-support": "^0.5.21",
|
|
"ts-essentials": "^9.1.2",
|
|
"ts-loader": "^9.4.4",
|
|
"ts-node": "^10.7.0",
|
|
"tsconfig-paths": "^3.13.0",
|
|
"typedoc": "^0.23.28",
|
|
"typescript": "^4.9.5",
|
|
"typescript-json-schema": "~0.55",
|
|
"webpack-cli": "^5.1.4",
|
|
"webpack-node-externals": "^3.0.0",
|
|
"wtfnode": "^0.9.1"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"overrides": {
|
|
"spotify-web-api-node": {
|
|
"superagent": "$superagent"
|
|
}
|
|
}
|
|
}
|