From 1170efc3fed98b44a30f5bd3db27c943e1933589 Mon Sep 17 00:00:00 2001 From: Developer Date: Thu, 30 Jul 2026 12:21:07 +0700 Subject: [PATCH] refactor: hapus root package.json dan sisa monorepo - Hapus root package.json (services sudah standalone masing2) - Hapus root node_modules (stale dari monorepo lama) - Hapus patches/ (workspace-level, ga dipake) - Root sekarang cuma folder biasa tanpa monorepo/hub --- package.json | 24 ---------------------- patches/README.md | 35 -------------------------------- patches/ffmpeg-headers-fix.patch | 19 ----------------- patches/jsdoc@3.6.11.patch | 21 ------------------- patches/node-crc@4.0.0.patch | 13 ------------ 5 files changed, 112 deletions(-) delete mode 100644 package.json delete mode 100644 patches/README.md delete mode 100644 patches/ffmpeg-headers-fix.patch delete mode 100644 patches/jsdoc@3.6.11.patch delete mode 100644 patches/node-crc@4.0.0.patch diff --git a/package.json b/package.json deleted file mode 100644 index 14b95cf..0000000 --- a/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "bete", - "private": true, - "description": "Bete Discord Moderation — 3 standalone services in one repo", - "scripts": { - "dev:backend": "cd services/backend && pnpm dev", - "dev:discord-gateway": "cd services/discord-gateway && pnpm dev", - "dev:web": "cd services/frontend && pnpm dev", - "build:backend": "cd services/backend && pnpm build", - "build:gateway": "cd services/discord-gateway && pnpm build", - "build:web": "cd services/frontend && pnpm build", - "typecheck": "cd services/backend && pnpm typecheck && cd ../../services/discord-gateway && pnpm typecheck", - "lint": "biome check --diagnostic-level=error .", - "format": "biome format --write .", - "test": "cd services/backend && pnpm test && cd ../../services/discord-gateway && pnpm test", - "install:all": "cd services/backend && pnpm install && cd ../../services/frontend && pnpm install && cd ../../services/discord-gateway && pnpm install", - "db:truncate": "psql \"$DATABASE_URL\" -f scripts/truncate-all.sql", - "install:yt-dlp": "sh scripts/install-yt-dlp.sh" - }, - "devDependencies": { - "@biomejs/biome": "^2.5.5", - "typescript": "^5.9.3" - } -} diff --git a/patches/README.md b/patches/README.md deleted file mode 100644 index 38a3ba3..0000000 --- a/patches/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Patches - -This directory contains patches for vendor dependencies that have local modifications. - -## ffmpeg-headers-fix.patch - -**Issue:** Screen share streaming fails with ffmpeg error: -``` -[NULL @ ...] Unable to find a suitable output format for 'Mozilla/5.0' -``` - -**Root Cause:** The `@dank074/discord-video-stream` library's `prepareStream` function passes HTTP headers to ffmpeg without proper quoting. The `fluent-ffmpeg-simplified` library uses `parseArgsStringToArgv` to parse command-line arguments, which splits strings by spaces. This causes the User-Agent header value (with spaces) to be split into multiple separate arguments instead of being kept as a single value. - -**Fix:** Wrap the entire headers string in quotes so `parseArgsStringToArgv` treats it as a single argument: -```typescript -// Before (broken) -command.inputOptions( - "-headers", - Object.entries(customHeaders) - .map(([k, v]) => `${k}: ${v}`) - .join("\r\n"), -); - -// After (fixed) -const headersString = Object.entries(customHeaders) - .map(([k, v]) => `${k}: ${v}`) - .join("\r\n"); -command.inputOptions(`-headers "${headersString}"`); -``` - -**Applied To:** `vendor/discord-video-stream/src/media/newApi.ts` (lines 263-269) - -**Status:** Patch is applied locally. The compiled output in `dist/media/newApi.js` reflects this fix. - -**Note:** This is a local patch to the vendor submodule. To make this permanent, it should be submitted as a PR to the upstream repository: https://github.com/dank074/discord-video-stream diff --git a/patches/ffmpeg-headers-fix.patch b/patches/ffmpeg-headers-fix.patch deleted file mode 100644 index 56c6f8e..0000000 --- a/patches/ffmpeg-headers-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/src/media/newApi.ts b/src/media/newApi.ts -index original..modified 100644 ---- a/src/media/newApi.ts -+++ b/src/media/newApi.ts -@@ -261,12 +261,10 @@ export function prepareStream( - if (isHttpUrl) { -- command.inputOptions( -- "-headers", -- Object.entries(customHeaders) -- .map(([k, v]) => `${k}: ${v}`) -- .join("\r\n"), -- ); -+ const headersString = Object.entries(customHeaders) -+ .map(([k, v]) => `${k}: ${v}`) -+ .join("\r\n"); -+ command.inputOptions(`-headers "${headersString}"`); - if (!isHls) { - command.inputOptions([ - "-reconnect 1", diff --git a/patches/jsdoc@3.6.11.patch b/patches/jsdoc@3.6.11.patch deleted file mode 100644 index 2e7d1b2..0000000 --- a/patches/jsdoc@3.6.11.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/lib/jsdoc/util/dumper.js b/lib/jsdoc/util/dumper.js -index 515c9729453d7864abb49a4920e89dce660aa87b..396910a991bf70e10a2f37001946a9b8ba6cfcdf 100644 ---- a/lib/jsdoc/util/dumper.js -+++ b/lib/jsdoc/util/dumper.js -@@ -95,13 +95,13 @@ class ObjectWalker { - return newArray; - }); - } -- else if ( util.isRegExp(o) ) { -+ else if ( Object.prototype.toString.call(o) === "[object RegExp]" ) { - result = ``; - } -- else if ( util.isDate(o) ) { -+ else if ( Object.prototype.toString.call(o) === "[object Date]" ) { - result = ``; - } -- else if ( util.isError(o) ) { -+ else if ( Object.prototype.toString.call(o) === "[object Error]" ) { - result = { message: o.message }; - } - else if ( this.isFunction(o) ) { diff --git a/patches/node-crc@4.0.0.patch b/patches/node-crc@4.0.0.patch deleted file mode 100644 index 0597d7f..0000000 --- a/patches/node-crc@4.0.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Cargo.toml b/Cargo.toml -index a967508960d8b6b686b23401ea14333b858a675c..d0282a30ee931563a65d774ed783c83d6d2fdd5e 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -3,7 +3,7 @@ name = "node-crc" - version = "4.0.0" - authors = ["Magic Len "] - edition = "2021" --rust-version = "1.65" -+rust-version = "1.77.0" - repository = "https://github.com/magiclen/node-crc" - homepage = "https://magiclen.org/node-js-crc/" - keywords = ["nodejs", "crc8", "crc16", "crc32", "crc64"]