diff --git a/apps/server/package.json b/apps/server/package.json new file mode 100644 index 0000000..f097394 --- /dev/null +++ b/apps/server/package.json @@ -0,0 +1,15 @@ +{ + "name": "@sttracker/server", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/core": "workspace:*", + "@sttracker/db": "workspace:*", + "@sttracker/plugin-sdk": "workspace:*", + "kysely": "^0.29.7", + "zod": "^4.6.7" + } +} diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 0000000..0b930b7 --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,18 @@ +{ + "name": "@sttracker/web", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@tanstack/react-query": "^5.105.0", + "react": "^19.3.1", + "react-dom": "^19.3.1", + "wouter": "^3.13.0" + }, + "devDependencies": { + "@types/react": "^19.3.0", + "@types/react-dom": "^19.3.0" + } +} diff --git a/bun.lock b/bun.lock index 61e4e46..b12b6e3 100644 --- a/bun.lock +++ b/bun.lock @@ -9,18 +9,150 @@ "typescript": "^5", }, }, + "apps/server": { + "name": "@sttracker/server", + "dependencies": { + "@sttracker/core": "workspace:*", + "@sttracker/db": "workspace:*", + "@sttracker/plugin-sdk": "workspace:*", + "kysely": "^0.29.7", + "zod": "^4.6.7", + }, + }, + "apps/web": { + "name": "@sttracker/web", + "dependencies": { + "@tanstack/react-query": "^5.105.0", + "react": "^19.3.1", + "react-dom": "^19.3.1", + "wouter": "^3.13.0", + }, + "devDependencies": { + "@types/react": "^19.3.0", + "@types/react-dom": "^19.3.0", + }, + }, + "packages/core": { + "name": "@sttracker/core", + "dependencies": { + "@sttracker/db": "workspace:*", + "@sttracker/plugin-sdk": "workspace:*", + "fflate": "^0.8.3", + "kysely": "^0.29.7", + "zod": "^4.6.7", + }, + }, + "packages/db": { + "name": "@sttracker/db", + "dependencies": { + "kysely": "^0.29.7", + }, + }, + "packages/plugin-sdk": { + "name": "@sttracker/plugin-sdk", + "dependencies": { + "fflate": "^0.8.3", + }, + }, + "plugins/csv": { + "name": "@sttracker/plugin-csv", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + }, + }, + "plugins/hardcover": { + "name": "@sttracker/plugin-hardcover", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + }, + }, + "plugins/lastfm": { + "name": "@sttracker/plugin-lastfm", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + }, + }, + "plugins/listenbrainz": { + "name": "@sttracker/plugin-listenbrainz", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + "fflate": "^0.8.3", + }, + }, + "plugins/mangabaka": { + "name": "@sttracker/plugin-mangabaka", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + }, + }, + "plugins/trakt": { + "name": "@sttracker/plugin-trakt", + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + }, + }, }, "packages": { + "@sttracker/core": ["@sttracker/core@workspace:packages/core"], + + "@sttracker/db": ["@sttracker/db@workspace:packages/db"], + + "@sttracker/plugin-csv": ["@sttracker/plugin-csv@workspace:plugins/csv"], + + "@sttracker/plugin-hardcover": ["@sttracker/plugin-hardcover@workspace:plugins/hardcover"], + + "@sttracker/plugin-lastfm": ["@sttracker/plugin-lastfm@workspace:plugins/lastfm"], + + "@sttracker/plugin-listenbrainz": ["@sttracker/plugin-listenbrainz@workspace:plugins/listenbrainz"], + + "@sttracker/plugin-mangabaka": ["@sttracker/plugin-mangabaka@workspace:plugins/mangabaka"], + + "@sttracker/plugin-sdk": ["@sttracker/plugin-sdk@workspace:packages/plugin-sdk"], + + "@sttracker/plugin-trakt": ["@sttracker/plugin-trakt@workspace:plugins/trakt"], + + "@sttracker/server": ["@sttracker/server@workspace:apps/server"], + + "@sttracker/web": ["@sttracker/web@workspace:apps/web"], + + "@tanstack/query-core": ["@tanstack/query-core@5.105.0", "", {}, "sha512-7p56vRmT/z4UJ6sctGIdl5WRUQyUv53IUpUwEKi2g97zMbO7zh8ZsCLffGAvCPBR4xD72e3VXsDyLwXHhoNTMQ=="], + + "@tanstack/react-query": ["@tanstack/react-query@5.105.0", "", { "dependencies": { "@tanstack/query-core": "5.105.0" }, "peerDependencies": { "@types/react": "^18 || ^19", "react": "^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-y+hMuDERvgg6ay1da0V1a6ZC0ZONt7dELxSFkqRZuwm7p1TTZs0MoXrPlBRflIpRoYjvzQVYxycnLImpFLhWrw=="], + "@types/bun": ["@types/bun@1.4.4", "", { "dependencies": { "bun-types": "1.4.4" } }, "sha512-9wkRDXUXK124pEnAutE6n/l18j+i9GC5IAHK8TmX/2nlySETmky0OU6yL5U8pW1AoKh++AN9auDCr647BfurjQ=="], "@types/node": ["@types/node@26.6.6", "", { "dependencies": { "undici-types": "~8.9.0" } }, "sha512-MzQj+8Kx3XI40OmUAE6Qoh58ZMNstNNMwn2nfd3qWsfe7nDNSqJNzes4njhz6AHwrSHOffSLwXU6yb474Q4aog=="], + "@types/react": ["@types/react@19.3.0", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg=="], + + "@types/react-dom": ["@types/react-dom@19.3.0", "", { "peerDependencies": { "@types/react": "^19.3.0" } }, "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q=="], + "bun-types": ["bun-types@1.4.4", "", { "dependencies": { "@types/node": "*", "undici-types": "*" } }, "sha512-yjrJh5oGX7mMPKGd19YXyIjmEuj4G4zNC30bs7PM9Az7NQ3ndF3j6hbeRdvJTRQEhJ/FYQwW0a2moweEi2hMxQ=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "fflate": ["fflate@0.8.3", "", {}, "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA=="], + + "kysely": ["kysely@0.29.7", "", {}, "sha512-fmIq+7kv4WbFm2tcfznRzikqB4cuNpgZ40PSU2fAJ2/OO5XhojqnTPrmgrCjYSRJVwBln03XcRXJGnw9H099IQ=="], + + "react": ["react@19.3.1", "", {}, "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw=="], + + "react-dom": ["react-dom@19.3.1", "", { "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { "react": "^19.3.1" } }, "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ=="], + + "regexparam": ["regexparam@3.0.0", "", {}, "sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q=="], + + "scheduler": ["scheduler@0.28.0", "", {}, "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw=="], + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], "undici-types": ["undici-types@8.12.3", "", {}, "sha512-EXE4ydL3S76dFb27UFjNVZHTyv/TLdATj/KUe29ptdcg6qXL48J2tZ3126E5kICj5jn781OR+XlVH1N6Mz8jbA=="], + "use-sync-external-store": ["use-sync-external-store@1.7.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A=="], + + "wouter": ["wouter@3.13.0", "", { "dependencies": { "regexparam": "^3.0.0", "use-sync-external-store": "^1.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-p1RoCuVyxwb3X5jLjDdkwDzlXj+/UGZqZb+806uaJOVEHvNfGkjET0KiQ/CGiDKC90rLsALMgMj4onNVKxgNdQ=="], + + "zod": ["zod@4.6.7", "", {}, "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg=="], + "@types/node/undici-types": ["undici-types@8.9.0", "", {}, "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg=="], } } diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 0000000..04e3c1c --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,15 @@ +{ + "name": "@sttracker/core", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/db": "workspace:*", + "@sttracker/plugin-sdk": "workspace:*", + "fflate": "^0.8.3", + "kysely": "^0.29.7", + "zod": "^4.6.7" + } +} diff --git a/packages/db/package.json b/packages/db/package.json new file mode 100644 index 0000000..24a3ec5 --- /dev/null +++ b/packages/db/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/db", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "kysely": "^0.29.7" + } +} diff --git a/packages/plugin-sdk/package.json b/packages/plugin-sdk/package.json new file mode 100644 index 0000000..133d816 --- /dev/null +++ b/packages/plugin-sdk/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-sdk", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "fflate": "^0.8.3" + } +} diff --git a/plugins/csv/package.json b/plugins/csv/package.json new file mode 100644 index 0000000..9ba9d68 --- /dev/null +++ b/plugins/csv/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-csv", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*" + } +} diff --git a/plugins/hardcover/package.json b/plugins/hardcover/package.json new file mode 100644 index 0000000..b264ce1 --- /dev/null +++ b/plugins/hardcover/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-hardcover", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*" + } +} diff --git a/plugins/lastfm/package.json b/plugins/lastfm/package.json new file mode 100644 index 0000000..42055bf --- /dev/null +++ b/plugins/lastfm/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-lastfm", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*" + } +} diff --git a/plugins/listenbrainz/package.json b/plugins/listenbrainz/package.json new file mode 100644 index 0000000..2955a33 --- /dev/null +++ b/plugins/listenbrainz/package.json @@ -0,0 +1,12 @@ +{ + "name": "@sttracker/plugin-listenbrainz", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*", + "fflate": "^0.8.3" + } +} diff --git a/plugins/mangabaka/package.json b/plugins/mangabaka/package.json new file mode 100644 index 0000000..fa73771 --- /dev/null +++ b/plugins/mangabaka/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-mangabaka", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*" + } +} diff --git a/plugins/trakt/package.json b/plugins/trakt/package.json new file mode 100644 index 0000000..7381111 --- /dev/null +++ b/plugins/trakt/package.json @@ -0,0 +1,11 @@ +{ + "name": "@sttracker/plugin-trakt", + "private": true, + "type": "module", + "exports": { + "./*": "./src/*.ts" + }, + "dependencies": { + "@sttracker/plugin-sdk": "workspace:*" + } +}