From c750bf55606aa4c64828e78d9b936d26be99d55e Mon Sep 17 00:00:00 2001 From: Idrees Hassan Date: Sun, 16 Nov 2025 10:34:43 -0500 Subject: [PATCH] Move files into src --- build.js | 152 ++---------------- dist/extension.zip | Bin 149002 -> 149002 bytes src/platforms/extension.js | 4 - src/platforms/extension/extension.js | 4 + .../platforms}/extension/manifest.json | 0 src/platforms/obsidian.js | 4 - .../platforms}/obsidian/manifest.json | 0 src/platforms/obsidian/obsidian.js | 4 + .../platforms}/obsidian/wrapper.js | 0 src/platforms/userscript.js | 4 - .../platforms}/userscript/header.txt | 0 src/platforms/userscript/userscript.js | 4 + src/platforms/vencord.js | 4 - src/platforms/vencord/vencord.js | 4 + .../platforms}/vencord/wrapper.js | 0 src/platforms/web.js | 4 - src/platforms/web/web.js | 4 + 17 files changed, 34 insertions(+), 158 deletions(-) delete mode 100644 src/platforms/extension.js create mode 100644 src/platforms/extension/extension.js rename {platform-specific => src/platforms}/extension/manifest.json (100%) delete mode 100644 src/platforms/obsidian.js rename {platform-specific => src/platforms}/obsidian/manifest.json (100%) create mode 100644 src/platforms/obsidian/obsidian.js rename {platform-specific => src/platforms}/obsidian/wrapper.js (100%) delete mode 100644 src/platforms/userscript.js rename {platform-specific => src/platforms}/userscript/header.txt (100%) create mode 100644 src/platforms/userscript/userscript.js delete mode 100644 src/platforms/vencord.js create mode 100644 src/platforms/vencord/vencord.js rename {platform-specific => src/platforms}/vencord/wrapper.js (100%) delete mode 100644 src/platforms/web.js create mode 100644 src/platforms/web/web.js diff --git a/build.js b/build.js index ff3324d..331430f 100644 --- a/build.js +++ b/build.js @@ -12,12 +12,6 @@ const IMAGES_DIR = "./images"; const FONTS_DIR = "./fonts"; const DIST_DIR = "./dist"; -const BROWSER_MANIFEST = "./platform-specific/extension/manifest.json"; -const OBSIDIAN_MANIFEST = "./platform-specific/obsidian/manifest.json"; -const USERSCRIPT_HEADER = "./platform-specific/userscript/header.txt"; -const OBSIDIAN_WRAPPER = "./platform-specific/obsidian/wrapper.js"; -const VENCORD_WRAPPER = "./platform-specific/vencord/wrapper.js"; - const USERSCRIPT_DIR = DIST_DIR + "/userscript"; const EXTENSION_DIR = DIST_DIR + "/extension"; const OBSIDIAN_DIR = DIST_DIR + "/obsidian"; @@ -25,11 +19,17 @@ const VENCORD_DIR = DIST_DIR + "/vencord"; const STYLESHEET_PATH = SRC_DIR + "/stylesheet.css"; -const WEB_ENTRY = SRC_DIR + "/platforms/web.js"; -const USERSCRIPT_ENTRY = SRC_DIR + "/platforms/userscript.js"; -const BROWSER_EXTENSION_ENTRY = SRC_DIR + "/platforms/extension.js"; -const OBSIDIAN_ENTRY = SRC_DIR + "/platforms/obsidian.js"; -const VENCORD_ENTRY = SRC_DIR + "/platforms/vencord.js"; +const WEB_ENTRY = SRC_DIR + "/platforms/web/web.js"; +const USERSCRIPT_ENTRY = SRC_DIR + "/platforms/userscript/userscript.js"; +const BROWSER_EXTENSION_ENTRY = SRC_DIR + "/platforms/extension/extension.js"; +const OBSIDIAN_ENTRY = SRC_DIR + "/platforms/obsidian/obsidian.js"; +const VENCORD_ENTRY = SRC_DIR + "/platforms/vencord/vencord.js"; + +const BROWSER_MANIFEST = SRC_DIR + "/platforms/extension/manifest.json"; +const OBSIDIAN_MANIFEST = SRC_DIR + "/platforms/obsidian/manifest.json"; +const USERSCRIPT_HEADER = SRC_DIR + "/platforms/userscript/header.txt"; +const OBSIDIAN_WRAPPER = SRC_DIR + "/platforms/obsidian/wrapper.js"; +const VENCORD_WRAPPER = SRC_DIR + "/platforms/vencord/wrapper.js"; const BUNDLED_OUTPUT = DIST_DIR + "/birb.bundled.js"; const BIRB_OUTPUT = DIST_DIR + "/birb.js"; @@ -130,60 +130,11 @@ async function generateCode(entryPoint, embedFont = false) { return birbJs; } -// ============================================= -// Build JavaScript function -// ============================================= - async function buildWeb() { const birbJs = await generateCode(WEB_ENTRY); writeFileSync(BIRB_OUTPUT, birbJs); } -// Bundle with rollup -// const bundle = await rollup({ -// input: APPLICATION_ENTRY, -// }); - -// await bundle.write({ -// file: BUNDLED_OUTPUT, -// format: 'iife', -// }); - -// await bundle.close(); - -// let birbJs = readFileSync(BUNDLED_OUTPUT, 'utf8'); - -// // Delete bundled file -// unlinkSync(BUNDLED_OUTPUT); - -// // Replace version placeholder -// birbJs = birbJs.replaceAll(VERSION_KEY, version); - -// // Compile and insert sprite sheets -// for (const spriteSheet of spriteSheets) { -// const dataUri = readFileSync(spriteSheet.path, 'base64'); -// birbJs = birbJs.replaceAll(spriteSheet.key, `data:image/png;base64,${dataUri}`); -// } - -// // Insert stylesheet -// const stylesheetContent = readFileSync(STYLESHEET_PATH, 'utf8'); -// birbJs = birbJs.replace(STYLESHEET_KEY, stylesheetContent).replace(MONOCRAFT_SRC_KEY, MONOCRAFT_URL); - - -// // Write bundled JavaScript function -// writeFileSync(BIRB_OUTPUT, birbJs); - -// ============================================= -// Build userscript -// ============================================= - -// Get userscript header -// const userScriptHeader = readFileSync(USERSCRIPT_HEADER, 'utf8').replaceAll(VERSION_KEY, version); - -// mkdirSync(USERSCRIPT_DIR, { recursive: true }); -// const userScript = userScriptHeader + "\n" + birbJs; -// writeFileSync(USERSCRIPT_DIR + '/birb.user.js', userScript); - async function buildUserscript() { const birbJs = await generateCode(USERSCRIPT_ENTRY); // Get userscript header @@ -194,44 +145,6 @@ async function buildUserscript() { writeFileSync(USERSCRIPT_DIR + '/birb.user.js', userScript); } -// ============================================= -// Build browser extension -// ============================================= - -// mkdirSync(EXTENSION_DIR, { recursive: true }); - -// // Copy birb.js -// writeFileSync(EXTENSION_DIR + '/birb.js', birbJs); - -// // Copy manifest.json -// let browserManifest = readFileSync(BROWSER_MANIFEST, 'utf8'); -// browserManifest = browserManifest.replace(VERSION_KEY, version); -// writeFileSync(EXTENSION_DIR + '/manifest.json', browserManifest); - -// // Copy icons folder -// mkdirSync(EXTENSION_DIR + '/images/icons', { recursive: true }); -// cpSync(IMAGES_DIR + '/icons/transparent', EXTENSION_DIR + '/images/icons/transparent', { recursive: true }); - -// // Copy fonts folder -// mkdirSync(EXTENSION_DIR + '/fonts', { recursive: true }); -// cpSync(FONTS_DIR, EXTENSION_DIR + '/fonts', { recursive: true }); - -// // Compress extension folder into zip -// const output = createWriteStream(DIST_DIR + "/extension.zip"); -// const archive = archiver('zip'); - -// output.on('close', () => { -// console.log(`Created zip file: ${archive.pointer()} total bytes`); -// }); - -// archive.on('error', (err) => { -// throw err; -// }); - -// archive.pipe(output); -// archive.directory(EXTENSION_DIR + '/', false); -// archive.finalize(); - async function buildExtension() { const birbJs = await generateCode(BROWSER_EXTENSION_ENTRY); @@ -270,28 +183,6 @@ async function buildExtension() { archive.finalize(); } -// ============================================= -// Build Obsidian plugin -// ============================================= - -// mkdirSync(OBSIDIAN_DIR, { recursive: true }); - -// // Wrap birb.js with plugin boilerplate -// let obsidianPlugin = readFileSync(OBSIDIAN_WRAPPER, 'utf8').replace(VERSION_KEY, version).replace(CODE_KEY, birbJs); - -// // Encode font to data URI since Obsidian plugins can't have external font files -// const monocraftFontData = readFileSync(FONTS_DIR + '/Monocraft.otf', 'base64'); -// const monocraftDataUri = `data:font/otf;base64,${monocraftFontData}`; -// obsidianPlugin = obsidianPlugin.replace(MONOCRAFT_URL, monocraftDataUri); - -// // Create main.js with plugin code -// writeFileSync(OBSIDIAN_DIR + '/main.js', obsidianPlugin); - -// // Copy manifest.json -// let obsidianManifest = readFileSync(OBSIDIAN_MANIFEST, 'utf8'); -// obsidianManifest = obsidianManifest.replace(/"version":\s*".*"/, `"version": "${version}"`); -// writeFileSync(OBSIDIAN_DIR + '/manifest.json', obsidianManifest); - async function buildObsidian() { const birbJs = await generateCode(OBSIDIAN_ENTRY, true); @@ -309,23 +200,6 @@ async function buildObsidian() { writeFileSync(OBSIDIAN_DIR + '/manifest.json', obsidianManifest); } -// ============================================= -// Build Vencord plugin -// ============================================= - -// mkdirSync(VENCORD_DIR, { recursive: true }); - -// // Wrap birb.js with plugin boilerplate -// let vencordPlugin = readFileSync(VENCORD_WRAPPER, 'utf8').replace(CODE_KEY, birbJs); - -// // Set context to "local" -// vencordPlugin = vencordPlugin.replace(CONTEXT_KEY, "local"); - -// // Create exported birb function -// writeFileSync(VENCORD_DIR + '/birb.export.js', vencordPlugin); - -// console.log(`Build complete: ${version}`); - async function buildVencord() { const birbJs = await generateCode(VENCORD_ENTRY); @@ -347,4 +221,6 @@ await buildWeb(); await buildUserscript(); await buildExtension(); await buildObsidian(); -await buildVencord(); \ No newline at end of file +await buildVencord(); + +console.log("Build completed successfully!"); \ No newline at end of file diff --git a/dist/extension.zip b/dist/extension.zip index 9acdc6064d915f65be706250731f02a0f6d6e495..11750926b8986857311403319b4dd6492be70831 100644 GIT binary patch delta 684 zcmeC`;q2<++^~d|$-idvGFHh%AU*kDni7y|eww!ZX&R%N2ar9TcRiyiklyaHo{^0W z#PHe5xDcdi`o+JD+SAwVXXMzfw3{)W1tzo|D6|F4oA`lIdwc&8#-&UkIS_9;kjJ(? z{WxPHGfeq(T?ZzP?SD@(u7R5X65^fyO@K*Yd;1SY53prm-TXI!y7R6wmVkAGjRy+d zg7c>Te*jb8kG69*~<^)l614;u;2HQ{vr7t-{ui%Opze-j=M5B0{|)%?r;DA delta 684 zcmeC`;q2<++^~d|$)bAmGFHh%AU*kDni7y|eww!ZX&R%N2ar9TcRiyiklyaHo{^0W z#PHe5xDcdi`o+JD+SAwVXXMzfw3{)W1tzo|D6|F4oA`lIdwc&8#-&UkIS_9;kjJ(? z{WxPHGfeq(T?ZzP?SD@(u7R5X65^fyO@K*Yd;1SY53prm-TXI!y7R6wmVkAGjRy+d zg7c>Te*jb8kG69*~<^)l614;u;2HQ{vr7t-{ui%Opze-j=M5B0|16+=+FQF diff --git a/src/platforms/extension.js b/src/platforms/extension.js deleted file mode 100644 index e92e3a5..0000000 --- a/src/platforms/extension.js +++ /dev/null @@ -1,4 +0,0 @@ -import { initializeApplication } from "../application.js"; -import { BrowserExtensionContext } from "../context.js"; - -initializeApplication(new BrowserExtensionContext()); \ No newline at end of file diff --git a/src/platforms/extension/extension.js b/src/platforms/extension/extension.js new file mode 100644 index 0000000..25cebf0 --- /dev/null +++ b/src/platforms/extension/extension.js @@ -0,0 +1,4 @@ +import { initializeApplication } from "../../application.js"; +import { BrowserExtensionContext } from "../../context.js"; + +initializeApplication(new BrowserExtensionContext()); \ No newline at end of file diff --git a/platform-specific/extension/manifest.json b/src/platforms/extension/manifest.json similarity index 100% rename from platform-specific/extension/manifest.json rename to src/platforms/extension/manifest.json diff --git a/src/platforms/obsidian.js b/src/platforms/obsidian.js deleted file mode 100644 index 26bd0a9..0000000 --- a/src/platforms/obsidian.js +++ /dev/null @@ -1,4 +0,0 @@ -import { initializeApplication } from "../application.js"; -import { ObsidianContext } from "../context.js"; - -initializeApplication(new ObsidianContext()); \ No newline at end of file diff --git a/platform-specific/obsidian/manifest.json b/src/platforms/obsidian/manifest.json similarity index 100% rename from platform-specific/obsidian/manifest.json rename to src/platforms/obsidian/manifest.json diff --git a/src/platforms/obsidian/obsidian.js b/src/platforms/obsidian/obsidian.js new file mode 100644 index 0000000..fe95ae0 --- /dev/null +++ b/src/platforms/obsidian/obsidian.js @@ -0,0 +1,4 @@ +import { initializeApplication } from "../../application.js"; +import { ObsidianContext } from "../../context.js"; + +initializeApplication(new ObsidianContext()); \ No newline at end of file diff --git a/platform-specific/obsidian/wrapper.js b/src/platforms/obsidian/wrapper.js similarity index 100% rename from platform-specific/obsidian/wrapper.js rename to src/platforms/obsidian/wrapper.js diff --git a/src/platforms/userscript.js b/src/platforms/userscript.js deleted file mode 100644 index 9a757b7..0000000 --- a/src/platforms/userscript.js +++ /dev/null @@ -1,4 +0,0 @@ -import { initializeApplication } from "../application.js"; -import { UserScriptContext } from "../context.js"; - -initializeApplication(new UserScriptContext()); \ No newline at end of file diff --git a/platform-specific/userscript/header.txt b/src/platforms/userscript/header.txt similarity index 100% rename from platform-specific/userscript/header.txt rename to src/platforms/userscript/header.txt diff --git a/src/platforms/userscript/userscript.js b/src/platforms/userscript/userscript.js new file mode 100644 index 0000000..cb440f3 --- /dev/null +++ b/src/platforms/userscript/userscript.js @@ -0,0 +1,4 @@ +import { initializeApplication } from "../../application.js"; +import { UserScriptContext } from "../../context.js"; + +initializeApplication(new UserScriptContext()); \ No newline at end of file diff --git a/src/platforms/vencord.js b/src/platforms/vencord.js deleted file mode 100644 index c4813ae..0000000 --- a/src/platforms/vencord.js +++ /dev/null @@ -1,4 +0,0 @@ -import { initializeApplication } from "../application.js"; -import { LocalContext } from "../context.js"; - -initializeApplication(new LocalContext()); \ No newline at end of file diff --git a/src/platforms/vencord/vencord.js b/src/platforms/vencord/vencord.js new file mode 100644 index 0000000..9b0133f --- /dev/null +++ b/src/platforms/vencord/vencord.js @@ -0,0 +1,4 @@ +import { initializeApplication } from "../../application.js"; +import { LocalContext } from "../../context.js"; + +initializeApplication(new LocalContext()); \ No newline at end of file diff --git a/platform-specific/vencord/wrapper.js b/src/platforms/vencord/wrapper.js similarity index 100% rename from platform-specific/vencord/wrapper.js rename to src/platforms/vencord/wrapper.js diff --git a/src/platforms/web.js b/src/platforms/web.js deleted file mode 100644 index c4813ae..0000000 --- a/src/platforms/web.js +++ /dev/null @@ -1,4 +0,0 @@ -import { initializeApplication } from "../application.js"; -import { LocalContext } from "../context.js"; - -initializeApplication(new LocalContext()); \ No newline at end of file diff --git a/src/platforms/web/web.js b/src/platforms/web/web.js new file mode 100644 index 0000000..9b0133f --- /dev/null +++ b/src/platforms/web/web.js @@ -0,0 +1,4 @@ +import { initializeApplication } from "../../application.js"; +import { LocalContext } from "../../context.js"; + +initializeApplication(new LocalContext()); \ No newline at end of file