Compare commits
No commits in common. "1fca69fa666f61ef655b10609534211723044043" and "07ac7e33764ab47d2bfc037eb4b811255118219f" have entirely different histories.
1fca69fa66
...
07ac7e3376
@ -1,33 +0,0 @@
|
|||||||
name: Build and Push Testing Torrents Container
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY: ghcr.io
|
|
||||||
ORG: dumtruck
|
|
||||||
PROJECT: konobangu
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-container:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
- name: Log in to GHCR
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ env.REGISTRY }}
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: 'packages/testing-torrents'
|
|
||||||
file: './Dockerfile'
|
|
||||||
push: true
|
|
||||||
tags: 'ghcr.io/${{ env.ORG }}/${{ env.PROJECT }}-testing-torrents:latest'
|
|
||||||
cache-from: type=gha
|
|
||||||
cache-to: type=gha,mode=max
|
|
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -27,6 +27,7 @@
|
|||||||
},
|
},
|
||||||
"emmet.showExpandedAbbreviation": "never",
|
"emmet.showExpandedAbbreviation": "never",
|
||||||
"prettier.enable": false,
|
"prettier.enable": false,
|
||||||
|
"tailwindCSS.experimental.configFile": "./packages/tailwind-config/config.ts",
|
||||||
"typescript.tsdk": "node_modules/typescript/lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"rust-analyzer.cargo.features": ["testcontainers"]
|
"rust-analyzer.cargo.features": ["testcontainers"]
|
||||||
}
|
}
|
||||||
|
1161
Cargo.lock
generated
1161
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -65,7 +65,7 @@ once_cell = "1.20.2"
|
|||||||
reqwest-middleware = "0.4.0"
|
reqwest-middleware = "0.4.0"
|
||||||
reqwest-retry = "0.7.0"
|
reqwest-retry = "0.7.0"
|
||||||
reqwest-tracing = "0.5.5"
|
reqwest-tracing = "0.5.5"
|
||||||
scraper = "0.23"
|
scraper = "0.22.0"
|
||||||
leaky-bucket = "1.1.2"
|
leaky-bucket = "1.1.2"
|
||||||
serde_with = "3"
|
serde_with = "3"
|
||||||
jwt-authorizer = "0.15.0"
|
jwt-authorizer = "0.15.0"
|
||||||
@ -87,8 +87,8 @@ color-eyre = "0.6"
|
|||||||
log = "0.4.22"
|
log = "0.4.22"
|
||||||
anyhow = "1.0.95"
|
anyhow = "1.0.95"
|
||||||
bollard = { version = "0.18", optional = true }
|
bollard = { version = "0.18", optional = true }
|
||||||
async-graphql = { version = "7", features = [] }
|
async-graphql = { version = "7.0.15", features = [] }
|
||||||
async-graphql-axum = "7"
|
async-graphql-axum = "7.0.15"
|
||||||
fastrand = "2.3.0"
|
fastrand = "2.3.0"
|
||||||
seaography = { version = "1.1" }
|
seaography = { version = "1.1" }
|
||||||
quirks_path = "0.1.1"
|
quirks_path = "0.1.1"
|
||||||
@ -129,11 +129,13 @@ tracing-appender = "0.2.3"
|
|||||||
clap = "4.5.31"
|
clap = "4.5.31"
|
||||||
futures-util = "0.3.31"
|
futures-util = "0.3.31"
|
||||||
ipnetwork = "0.21.1"
|
ipnetwork = "0.21.1"
|
||||||
|
kanal = "0.1.0-pre8"
|
||||||
|
append-only-vec = "0.1.7"
|
||||||
|
typed-builder = "0.20.0"
|
||||||
ctor = "0.4.0"
|
ctor = "0.4.0"
|
||||||
librqbit = "8.0.0"
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
serial_test = "3"
|
serial_test = "3"
|
||||||
insta = { version = "1", features = ["redactions", "yaml", "filters"] }
|
insta = { version = "1", features = ["redactions", "yaml", "filters"] }
|
||||||
mockito = "1.6.1"
|
mockito = "1.6.1"
|
||||||
rstest = "0.25"
|
rstest = "0.24.0"
|
||||||
|
@ -1 +0,0 @@
|
|||||||
use librqbit::TorrentMetadata;
|
|
@ -8,13 +8,13 @@ use tracing::instrument;
|
|||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
download::core::BITTORRENT_MIME_TYPE,
|
|
||||||
errors::{RError, RResult},
|
errors::{RError, RResult},
|
||||||
extract::mikan::{
|
extract::mikan::{
|
||||||
MikanClient,
|
MikanClient,
|
||||||
web_extract::{MikanEpisodeHomepage, extract_mikan_episode_id_from_homepage},
|
web_extract::{MikanEpisodeHomepage, extract_mikan_episode_id_from_homepage},
|
||||||
},
|
},
|
||||||
fetch::bytes::fetch_bytes,
|
fetch::bytes::fetch_bytes,
|
||||||
|
sync::core::BITTORRENT_MIME_TYPE,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
|
||||||
@ -339,11 +339,11 @@ mod tests {
|
|||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
download::core::BITTORRENT_MIME_TYPE,
|
|
||||||
extract::mikan::{
|
extract::mikan::{
|
||||||
MikanBangumiAggregationRssChannel, MikanBangumiRssChannel, MikanRssChannel,
|
MikanBangumiAggregationRssChannel, MikanBangumiRssChannel, MikanRssChannel,
|
||||||
extract_mikan_rss_channel_from_rss_link,
|
extract_mikan_rss_channel_from_rss_link,
|
||||||
},
|
},
|
||||||
|
sync::core::BITTORRENT_MIME_TYPE,
|
||||||
test_utils::mikan::build_testing_mikan_client,
|
test_utils::mikan::build_testing_mikan_client,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ pub mod app;
|
|||||||
pub mod auth;
|
pub mod auth;
|
||||||
pub mod cache;
|
pub mod cache;
|
||||||
pub mod database;
|
pub mod database;
|
||||||
pub mod download;
|
|
||||||
pub mod errors;
|
pub mod errors;
|
||||||
pub mod extract;
|
pub mod extract;
|
||||||
pub mod fetch;
|
pub mod fetch;
|
||||||
@ -21,6 +20,7 @@ pub mod logger;
|
|||||||
pub mod migrations;
|
pub mod migrations;
|
||||||
pub mod models;
|
pub mod models;
|
||||||
pub mod storage;
|
pub mod storage;
|
||||||
|
pub mod sync;
|
||||||
pub mod tasks;
|
pub mod tasks;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
pub mod test_utils;
|
pub mod test_utils;
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
pub mod core;
|
pub mod core;
|
||||||
pub mod error;
|
pub mod error;
|
||||||
pub mod qbit;
|
pub mod qbit;
|
||||||
pub mod rqbit;
|
mod utils;
|
||||||
pub mod utils;
|
|
||||||
|
|
||||||
pub use core::{
|
pub use core::{
|
||||||
BITTORRENT_MIME_TYPE, MAGNET_SCHEMA, Torrent, TorrentContent, TorrentDownloader, TorrentFilter,
|
Torrent, TorrentContent, TorrentDownloader, TorrentFilter, TorrentSource, BITTORRENT_MIME_TYPE,
|
||||||
TorrentSource,
|
MAGNET_SCHEMA,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub use error::TorrentDownloadError;
|
pub use error::TorrentDownloadError;
|
14
biome.json
14
biome.json
@ -10,9 +10,7 @@
|
|||||||
"noNonNullAssertion": "off"
|
"noNonNullAssertion": "off"
|
||||||
},
|
},
|
||||||
"suspicious": {
|
"suspicious": {
|
||||||
"noExplicitAny": "off",
|
"noExplicitAny": "off"
|
||||||
"noConsole": "off",
|
|
||||||
"noConsoleLog": "off"
|
|
||||||
},
|
},
|
||||||
"a11y": {
|
"a11y": {
|
||||||
"noSvgWithoutTitle": "off"
|
"noSvgWithoutTitle": "off"
|
||||||
@ -29,6 +27,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"ignore": [".vscode/*.json"]
|
"ignore": [
|
||||||
|
"packages/design-system/components/ui/**",
|
||||||
|
"packages/design-system/lib/**",
|
||||||
|
"packages/design-system/hooks/**",
|
||||||
|
"packages/collaboration/config.ts",
|
||||||
|
"apps/docs/**/*.json",
|
||||||
|
"apps/email/.react-email/**",
|
||||||
|
".vscode/*.json"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
31
docker-compose.yaml
Normal file
31
docker-compose.yaml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
webui:
|
||||||
|
image: node:22-alpine
|
||||||
|
ports:
|
||||||
|
- '5000:5000'
|
||||||
|
volumes:
|
||||||
|
- ./apps/webui:/home/node/app
|
||||||
|
- node_modules:/home/node/app/node_modules
|
||||||
|
working_dir: /home/node/app/
|
||||||
|
command: sh -c "yarn install && yarn dev"
|
||||||
|
depends_on:
|
||||||
|
- mongo
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
image: mongo:latest
|
||||||
|
ports:
|
||||||
|
- '27017:27017'
|
||||||
|
command:
|
||||||
|
- --storageEngine=wiredTiger
|
||||||
|
volumes:
|
||||||
|
- data:/data/db
|
||||||
|
logging:
|
||||||
|
driver: none
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
data:
|
||||||
|
node_modules:
|
@ -1,17 +0,0 @@
|
|||||||
FROM node:23-slim AS nodebt
|
|
||||||
RUN npm install -g pnpm
|
|
||||||
ENV PNPM_HOME="/pnpm"
|
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
|
||||||
|
|
||||||
FROM nodebt AS deps
|
|
||||||
|
|
||||||
RUN mkdir -p /app/workspace
|
|
||||||
WORKDIR /app
|
|
||||||
COPY package.json /app/
|
|
||||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --no-frozen-lockfile
|
|
||||||
|
|
||||||
FROM deps AS app
|
|
||||||
|
|
||||||
COPY main.ts /app/
|
|
||||||
|
|
||||||
CMD [ "npm", "start" ]
|
|
@ -1,20 +0,0 @@
|
|||||||
# Konobangu Testing Torrents Container
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker buildx build --platform linux/amd64 --tag konobangu-testing-torrents:latest --load .
|
|
||||||
```
|
|
||||||
|
|
||||||
## Run
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run --network_mode=host --name konobangu-testing-torrents konobangu-testing-torrents:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
## Publish
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker tag konobangu-testing-torrents:latest ghcr.io/dumtruck/konobangu-testing-torrents:latest
|
|
||||||
docker push ghcr.io/dumtruck/konobangu-testing-torrents:latest
|
|
||||||
```
|
|
@ -1,5 +0,0 @@
|
|||||||
services:
|
|
||||||
konobangu-testing-torrents:
|
|
||||||
build: .
|
|
||||||
network_mode: host
|
|
||||||
container_name: konobangu-testing-torrents
|
|
@ -1,185 +0,0 @@
|
|||||||
import fastifyStatic from '@fastify/static';
|
|
||||||
import Fastify from 'fastify';
|
|
||||||
|
|
||||||
import fs from 'node:fs';
|
|
||||||
import fsp from 'node:fs/promises';
|
|
||||||
import path from 'node:path';
|
|
||||||
// @ts-ignore
|
|
||||||
import TrackerServer from 'bittorrent-tracker/server';
|
|
||||||
import createTorrent from 'create-torrent';
|
|
||||||
import WebTorrent, { type Torrent } from 'webtorrent';
|
|
||||||
|
|
||||||
// Configuration
|
|
||||||
const API_PORT = 6080;
|
|
||||||
const TRACKER_PORT = 6081;
|
|
||||||
const STATIC_API_PATH = '/api/static';
|
|
||||||
const LOCAL_IP = '127.0.0.1';
|
|
||||||
const WORKSPACE_PATH = 'workspace';
|
|
||||||
const TRACKER_URL = `http://${LOCAL_IP}:${TRACKER_PORT}/announce`;
|
|
||||||
const API_BASE_URL = `http://${LOCAL_IP}:${API_PORT}/${STATIC_API_PATH}/`;
|
|
||||||
|
|
||||||
// Initialize Fastify instance
|
|
||||||
const app = Fastify({ logger: true });
|
|
||||||
|
|
||||||
// Mount static file service, mapping ./workspace directory to /api/static route
|
|
||||||
app.register(fastifyStatic, {
|
|
||||||
root: path.join(process.cwd(), WORKSPACE_PATH),
|
|
||||||
prefix: STATIC_API_PATH,
|
|
||||||
});
|
|
||||||
|
|
||||||
const tracker = new TrackerServer({
|
|
||||||
udp: true, // enable udp server? [default=true]
|
|
||||||
http: true, // enable http server? [default=true]
|
|
||||||
ws: true, // enable websocket server? [default=true]
|
|
||||||
stats: true, // enable web-based statistics? [default=true]
|
|
||||||
trustProxy: true, // enable trusting x-forwarded-for header for remote IP [default=false]
|
|
||||||
});
|
|
||||||
|
|
||||||
// Define request and response type definitions
|
|
||||||
interface FileItem {
|
|
||||||
path: string;
|
|
||||||
size: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface RequestSchema {
|
|
||||||
id: string;
|
|
||||||
fileList: FileItem[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ResponseSchema {
|
|
||||||
torrentUrl: string;
|
|
||||||
magnetUrl: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Start local Tracker
|
|
||||||
async function startTracker(): Promise<void> {
|
|
||||||
return new Promise<void>((resolve, reject) => {
|
|
||||||
tracker.listen(TRACKER_PORT, 'localhost', () => {
|
|
||||||
console.log(`Tracker listening on port ${TRACKER_PORT}`);
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
tracker.on('error', (err: any) => {
|
|
||||||
reject(`Tracker error: ${err}`);
|
|
||||||
});
|
|
||||||
tracker.on('warning', (warn: any) =>
|
|
||||||
console.warn(`Tracker warning: ${warn}`)
|
|
||||||
);
|
|
||||||
// Log tracked torrents
|
|
||||||
tracker.on('update', (addr: any, params: any) => {
|
|
||||||
console.log(`Tracker update: ${params.info_hash} from ${addr}`);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tracker and WebTorrent client
|
|
||||||
const webTorrent = new WebTorrent({});
|
|
||||||
|
|
||||||
// Generate mock file
|
|
||||||
async function generateMockFile(filePath: string, size: number) {
|
|
||||||
const dir = path.dirname(filePath);
|
|
||||||
if (!fs.existsSync(dir)) {
|
|
||||||
await fsp.mkdir(dir, { recursive: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
await fsp.truncate(filePath, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate torrent file
|
|
||||||
function generateTorrent(folderPath: string, torrentPath: string) {
|
|
||||||
return new Promise<void>((resolve, reject) => {
|
|
||||||
createTorrent(
|
|
||||||
folderPath,
|
|
||||||
{
|
|
||||||
announceList: [[TRACKER_URL]], // Specify tracker URL
|
|
||||||
private: false,
|
|
||||||
createdBy: 'WebTorrent',
|
|
||||||
comment: 'Generated by WebTorrent server',
|
|
||||||
urlList: [API_BASE_URL],
|
|
||||||
},
|
|
||||||
async (err, torrent) => {
|
|
||||||
if (err) {
|
|
||||||
reject(new Error(`Failed to create torrent: ${err}`));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await fsp.writeFile(torrentPath, torrent);
|
|
||||||
if (!fs.existsSync(torrentPath)) {
|
|
||||||
reject(new Error(`Torrent file ${torrentPath} was not created`));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log(`Generated torrent with tracker: ${TRACKER_URL}`);
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add torrent and seed
|
|
||||||
async function seedTorrent(torrentPath: string): Promise<Torrent> {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
const torrent = webTorrent.seed(
|
|
||||||
torrentPath,
|
|
||||||
{
|
|
||||||
announce: [TRACKER_URL],
|
|
||||||
},
|
|
||||||
(t) => {
|
|
||||||
resolve(t);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
torrent.on('error', (err) => console.error(`Torrent error: ${err}`));
|
|
||||||
torrent.on('wire', (wire) =>
|
|
||||||
console.log(`Connected to peer: ${wire.peerId}`)
|
|
||||||
);
|
|
||||||
torrent.on('done', () =>
|
|
||||||
console.log(`Torrent ${torrent.infoHash} fully seeded`)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle POST request to /api/torrents/mock
|
|
||||||
app.post<{ Body: RequestSchema }>('/api/torrents/mock', async (req, _reply) => {
|
|
||||||
const { id, fileList } = req.body;
|
|
||||||
|
|
||||||
const idFolder = path.join(WORKSPACE_PATH, id);
|
|
||||||
if (!fs.existsSync(idFolder)) {
|
|
||||||
await fsp.mkdir(idFolder, { recursive: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const fileItem of fileList) {
|
|
||||||
const filePath = path.join(idFolder, fileItem.path);
|
|
||||||
await generateMockFile(filePath, fileItem.size);
|
|
||||||
}
|
|
||||||
|
|
||||||
const torrentPath = path.join(WORKSPACE_PATH, `${id}.torrent`);
|
|
||||||
await generateTorrent(idFolder, torrentPath);
|
|
||||||
|
|
||||||
const torrent = await seedTorrent(torrentPath);
|
|
||||||
const magnetUrl = `magnet:?xt=urn:btih:${torrent.infoHash}&tr=${TRACKER_URL}`;
|
|
||||||
|
|
||||||
return {
|
|
||||||
torrentUrl: `${API_BASE_URL}${id}.torrent`,
|
|
||||||
magnetUrl,
|
|
||||||
} as ResponseSchema;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Main program entry
|
|
||||||
async function main() {
|
|
||||||
try {
|
|
||||||
await startTracker();
|
|
||||||
await app.listen({ port: API_PORT, host: LOCAL_IP });
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Startup error:', err);
|
|
||||||
webTorrent.destroy();
|
|
||||||
tracker.close();
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
main();
|
|
||||||
|
|
||||||
// Graceful shutdown
|
|
||||||
process.on('SIGINT', () => {
|
|
||||||
console.log('Shutting down...');
|
|
||||||
tracker.close();
|
|
||||||
webTorrent.destroy();
|
|
||||||
process.exit(0);
|
|
||||||
});
|
|
@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@konobangu/testing-torrents",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "Kono bangumi? Testing Torrents",
|
|
||||||
"main": "main.ts",
|
|
||||||
"type": "commonjs",
|
|
||||||
"scripts": {
|
|
||||||
"start": "tsx main.ts"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@fastify/static": "^8.1.1",
|
|
||||||
"bittorrent-tracker": "^11.2.1",
|
|
||||||
"create-torrent": "^6.1.0",
|
|
||||||
"fastify": "^5.2.2",
|
|
||||||
"tsx": "^4.19.2",
|
|
||||||
"webtorrent": "^2.5.19"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/create-torrent": "^5.0.2",
|
|
||||||
"@types/webtorrent": "^0.110.0"
|
|
||||||
},
|
|
||||||
"pnpm": {
|
|
||||||
"onlyBuiltDependencies": [
|
|
||||||
"utf-8-validate",
|
|
||||||
"node-datachannel",
|
|
||||||
"utp-native"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
2
packages/testing/.gitignore
vendored
2
packages/testing/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
resources/*
|
|
||||||
!resources/.gitkeep
|
|
65
pnpm-lock.yaml
generated
65
pnpm-lock.yaml
generated
@ -42,7 +42,7 @@ importers:
|
|||||||
version: 19.0.0
|
version: 19.0.0
|
||||||
react-email:
|
react-email:
|
||||||
specifier: 3.0.4
|
specifier: 3.0.4
|
||||||
version: 3.0.4(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)(utf-8-validate@6.0.5)
|
version: 3.0.4(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: 19.0.1
|
specifier: 19.0.1
|
||||||
@ -79,7 +79,7 @@ importers:
|
|||||||
version: 0.2.4(solid-js@1.9.5)
|
version: 0.2.4(solid-js@1.9.5)
|
||||||
'@graphiql/toolkit':
|
'@graphiql/toolkit':
|
||||||
specifier: ^0.11.1
|
specifier: ^0.11.1
|
||||||
version: 0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)
|
version: 0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)
|
||||||
'@kobalte/core':
|
'@kobalte/core':
|
||||||
specifier: ^0.13.9
|
specifier: ^0.13.9
|
||||||
version: 0.13.9(solid-js@1.9.5)
|
version: 0.13.9(solid-js@1.9.5)
|
||||||
@ -127,7 +127,7 @@ importers:
|
|||||||
version: 8.5.2(solid-js@1.9.5)
|
version: 8.5.2(solid-js@1.9.5)
|
||||||
graphiql:
|
graphiql:
|
||||||
specifier: ^3.8.3
|
specifier: ^3.8.3
|
||||||
version: 3.8.3(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 3.8.3(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
lucide-solid:
|
lucide-solid:
|
||||||
specifier: ^0.477.0
|
specifier: ^0.477.0
|
||||||
version: 0.477.0(solid-js@1.9.5)
|
version: 0.477.0(solid-js@1.9.5)
|
||||||
@ -247,7 +247,7 @@ importers:
|
|||||||
version: 4.3.4(vite@5.4.11(@types/node@22.13.8)(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0))
|
version: 4.3.4(vite@5.4.11(@types/node@22.13.8)(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0))
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^2.1.8
|
specifier: ^2.1.8
|
||||||
version: 2.1.8(@types/node@22.13.8)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0)
|
version: 2.1.8(@types/node@22.13.8)(jsdom@25.0.1(bufferutil@4.0.9))(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0)
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@ -5770,10 +5770,6 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
|
||||||
utf-8-validate@6.0.5:
|
|
||||||
resolution: {integrity: sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA==}
|
|
||||||
engines: {node: '>=6.14.2'}
|
|
||||||
|
|
||||||
util-deprecate@1.0.2:
|
util-deprecate@1.0.2:
|
||||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||||
|
|
||||||
@ -6993,9 +6989,9 @@ snapshots:
|
|||||||
|
|
||||||
'@floating-ui/utils@0.2.9': {}
|
'@floating-ui/utils@0.2.9': {}
|
||||||
|
|
||||||
'@graphiql/react@0.28.2(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
'@graphiql/react@0.28.2(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@graphiql/toolkit': 0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)
|
'@graphiql/toolkit': 0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)
|
||||||
'@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-dialog': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-dialog': 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
'@radix-ui/react-dropdown-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@radix-ui/react-dropdown-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
@ -7022,13 +7018,13 @@ snapshots:
|
|||||||
- '@types/react-dom'
|
- '@types/react-dom'
|
||||||
- graphql-ws
|
- graphql-ws
|
||||||
|
|
||||||
'@graphiql/toolkit@0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)':
|
'@graphiql/toolkit@0.11.1(@types/node@22.13.8)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@n1ru4l/push-pull-async-iterable-iterator': 3.2.0
|
'@n1ru4l/push-pull-async-iterable-iterator': 3.2.0
|
||||||
graphql: 16.10.0
|
graphql: 16.10.0
|
||||||
meros: 1.3.0(@types/node@22.13.8)
|
meros: 1.3.0(@types/node@22.13.8)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
graphql-ws: 6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5))
|
graphql-ws: 6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9))
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
|
|
||||||
@ -9683,7 +9679,7 @@ snapshots:
|
|||||||
|
|
||||||
engine.io-parser@5.2.3: {}
|
engine.io-parser@5.2.3: {}
|
||||||
|
|
||||||
engine.io@6.6.2(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
engine.io@6.6.2(bufferutil@4.0.9):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/cookie': 0.4.1
|
'@types/cookie': 0.4.1
|
||||||
'@types/cors': 2.8.17
|
'@types/cors': 2.8.17
|
||||||
@ -9694,7 +9690,7 @@ snapshots:
|
|||||||
cors: 2.8.5
|
cors: 2.8.5
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
engine.io-parser: 5.2.3
|
engine.io-parser: 5.2.3
|
||||||
ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
ws: 8.17.1(bufferutil@4.0.9)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- supports-color
|
- supports-color
|
||||||
@ -10228,9 +10224,9 @@ snapshots:
|
|||||||
|
|
||||||
graceful-readlink@1.0.1: {}
|
graceful-readlink@1.0.1: {}
|
||||||
|
|
||||||
graphiql@3.8.3(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
graphiql@3.8.3(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@graphiql/react': 0.28.2(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
'@graphiql/react': 0.28.2(@codemirror/language@6.0.0)(@types/node@22.13.8)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
graphql: 16.10.0
|
graphql: 16.10.0
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
react-dom: 18.3.1(react@18.3.1)
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
@ -10248,11 +10244,11 @@ snapshots:
|
|||||||
nullthrows: 1.1.1
|
nullthrows: 1.1.1
|
||||||
vscode-languageserver-types: 3.17.5
|
vscode-languageserver-types: 3.17.5
|
||||||
|
|
||||||
graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)):
|
graphql-ws@6.0.4(graphql@16.10.0)(ws@8.18.1(bufferutil@4.0.9)):
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql: 16.10.0
|
graphql: 16.10.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
ws: 8.18.1(bufferutil@4.0.9)
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
graphql@16.10.0: {}
|
graphql@16.10.0: {}
|
||||||
@ -10574,7 +10570,7 @@ snapshots:
|
|||||||
|
|
||||||
js-tokens@4.0.0: {}
|
js-tokens@4.0.0: {}
|
||||||
|
|
||||||
jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
jsdom@25.0.1(bufferutil@4.0.9):
|
||||||
dependencies:
|
dependencies:
|
||||||
cssstyle: 4.2.1
|
cssstyle: 4.2.1
|
||||||
data-urls: 5.0.0
|
data-urls: 5.0.0
|
||||||
@ -10595,7 +10591,7 @@ snapshots:
|
|||||||
whatwg-encoding: 3.1.1
|
whatwg-encoding: 3.1.1
|
||||||
whatwg-mimetype: 4.0.0
|
whatwg-mimetype: 4.0.0
|
||||||
whatwg-url: 14.1.1
|
whatwg-url: 14.1.1
|
||||||
ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
ws: 8.18.1(bufferutil@4.0.9)
|
||||||
xml-name-validator: 5.0.0
|
xml-name-validator: 5.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@ -11218,7 +11214,7 @@ snapshots:
|
|||||||
react: 19.0.0
|
react: 19.0.0
|
||||||
scheduler: 0.25.0
|
scheduler: 0.25.0
|
||||||
|
|
||||||
react-email@3.0.4(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)(utf-8-validate@6.0.5):
|
react-email@3.0.4(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.24.5
|
'@babel/core': 7.24.5
|
||||||
'@babel/parser': 7.24.5
|
'@babel/parser': 7.24.5
|
||||||
@ -11233,7 +11229,7 @@ snapshots:
|
|||||||
next: 15.0.4(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
next: 15.0.4(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(sass@1.77.4)
|
||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
ora: 5.4.1
|
ora: 5.4.1
|
||||||
socket.io: 4.8.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
socket.io: 4.8.0(bufferutil@4.0.9)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@opentelemetry/api'
|
- '@opentelemetry/api'
|
||||||
- '@playwright/test'
|
- '@playwright/test'
|
||||||
@ -11658,10 +11654,10 @@ snapshots:
|
|||||||
|
|
||||||
sni@1.0.0: {}
|
sni@1.0.0: {}
|
||||||
|
|
||||||
socket.io-adapter@2.5.5(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
socket.io-adapter@2.5.5(bufferutil@4.0.9):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
ws: 8.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
ws: 8.17.1(bufferutil@4.0.9)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- supports-color
|
- supports-color
|
||||||
@ -11674,14 +11670,14 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
socket.io@4.8.0(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
socket.io@4.8.0(bufferutil@4.0.9):
|
||||||
dependencies:
|
dependencies:
|
||||||
accepts: 1.3.8
|
accepts: 1.3.8
|
||||||
base64id: 2.0.0
|
base64id: 2.0.0
|
||||||
cors: 2.8.5
|
cors: 2.8.5
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
engine.io: 6.6.2(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
engine.io: 6.6.2(bufferutil@4.0.9)
|
||||||
socket.io-adapter: 2.5.5(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
socket.io-adapter: 2.5.5(bufferutil@4.0.9)
|
||||||
socket.io-parser: 4.2.4
|
socket.io-parser: 4.2.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@ -12155,11 +12151,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
utf-8-validate@6.0.5:
|
|
||||||
dependencies:
|
|
||||||
node-gyp-build: 4.8.4
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
util-deprecate@1.0.2: {}
|
util-deprecate@1.0.2: {}
|
||||||
|
|
||||||
utils-merge@1.0.1: {}
|
utils-merge@1.0.1: {}
|
||||||
@ -12200,7 +12191,7 @@ snapshots:
|
|||||||
sass: 1.77.4
|
sass: 1.77.4
|
||||||
terser: 5.39.0
|
terser: 5.39.0
|
||||||
|
|
||||||
vitest@2.1.8(@types/node@22.13.8)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@6.0.5))(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0):
|
vitest@2.1.8(@types/node@22.13.8)(jsdom@25.0.1(bufferutil@4.0.9))(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 2.1.8
|
'@vitest/expect': 2.1.8
|
||||||
'@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.13.8)(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0))
|
'@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.13.8)(lightningcss@1.29.1)(sass@1.77.4)(terser@5.39.0))
|
||||||
@ -12224,7 +12215,7 @@ snapshots:
|
|||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.13.8
|
'@types/node': 22.13.8
|
||||||
jsdom: 25.0.1(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
jsdom: 25.0.1(bufferutil@4.0.9)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- less
|
- less
|
||||||
- lightningcss
|
- lightningcss
|
||||||
@ -12431,15 +12422,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
async-limiter: 2.0.0
|
async-limiter: 2.0.0
|
||||||
|
|
||||||
ws@8.17.1(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
ws@8.17.1(bufferutil@4.0.9):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
bufferutil: 4.0.9
|
bufferutil: 4.0.9
|
||||||
utf-8-validate: 6.0.5
|
|
||||||
|
|
||||||
ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@6.0.5):
|
ws@8.18.1(bufferutil@4.0.9):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
bufferutil: 4.0.9
|
bufferutil: 4.0.9
|
||||||
utf-8-validate: 6.0.5
|
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
xml-name-validator@5.0.0:
|
xml-name-validator@5.0.0:
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
packages:
|
packages:
|
||||||
- packages/*
|
- packages/*
|
||||||
- apps/*
|
- apps/*
|
||||||
- '!packages/testing-torrents'
|
|
||||||
onlyBuiltDependencies:
|
onlyBuiltDependencies:
|
||||||
- '@biomejs/biome'
|
- '@biomejs/biome'
|
||||||
- bufferutil
|
- bufferutil
|
||||||
|
Loading…
Reference in New Issue
Block a user