From defc0f519893c180f7dd9ff5b7229036bf9779d7 Mon Sep 17 00:00:00 2001 From: CosmoCreeper <179134799+CosmoCreeper@users.noreply.github.com> Date: Fri, 10 Apr 2026 15:10:30 -0400 Subject: [PATCH 1/2] Switch engine structure to src structure --- .prettierignore | 2 +- bun.lock | 5 --- package.json | 2 +- scripts/import.py | 42 ++++++++----------- scripts/package.py | 13 +++--- .../actors/MarketplaceChild.sys.mjs | 2 +- .../actors/MarketplaceParent.sys.mjs | 2 +- {engine => src}/assets/images/check.svg | 0 {engine => src}/assets/images/github.svg | 0 {engine => src}/assets/images/home.svg | 0 {engine => src}/assets/images/markdown.svg | 0 {engine => src}/assets/images/refresh.svg | 0 {engine => src}/assets/images/saturn.svg | 0 {engine => src}/assets/images/settings.svg | 0 .../assets/images/update-disabled.svg | 0 {engine => src}/assets/images/update.svg | 0 {engine => src}/assets/images/web.svg | 0 .../assets/imports/marked_parser.js | 0 .../assets/imports/marked_styles.css | 0 {engine => src}/core/main.mjs | 9 ++-- {engine => src}/core/manager.mjs | 13 +++--- {engine => src}/core/settings.json | 0 {engine => src}/core/settings.mjs | 13 +++--- {engine => src}/core/utils.mjs | 2 +- {engine => src}/services/cmdPalette.js | 10 ++--- {engine => src}/services/injectAPI.js | 6 +-- {engine => src}/services/marketplace.mjs | 0 {engine => src}/services/module_loader.mjs | 4 +- {engine => src}/services/stylesheets.mjs | 2 +- {engine => src}/services/updates.js | 6 +-- sine.sys.mjs => src/sine.sys.mjs | 8 ++-- {engine => src}/styles/main.css | 7 +--- {engine => src}/styles/settings.css | 27 +++++------- {engine => src}/utils/dom.mjs | 9 ++-- {engine => src}/utils/toasts.mjs | 2 +- {engine => src}/utils/uc_api.sys.mjs | 2 +- 36 files changed, 79 insertions(+), 109 deletions(-) rename {engine => src}/actors/MarketplaceChild.sys.mjs (99%) rename {engine => src}/actors/MarketplaceParent.sys.mjs (97%) rename {engine => src}/assets/images/check.svg (100%) rename {engine => src}/assets/images/github.svg (100%) rename {engine => src}/assets/images/home.svg (100%) rename {engine => src}/assets/images/markdown.svg (100%) rename {engine => src}/assets/images/refresh.svg (100%) rename {engine => src}/assets/images/saturn.svg (100%) rename {engine => src}/assets/images/settings.svg (100%) rename {engine => src}/assets/images/update-disabled.svg (100%) rename {engine => src}/assets/images/update.svg (100%) rename {engine => src}/assets/images/web.svg (100%) rename {engine => src}/assets/imports/marked_parser.js (100%) rename {engine => src}/assets/imports/marked_styles.css (100%) rename {engine => src}/core/main.mjs (90%) rename {engine => src}/core/manager.mjs (99%) rename {engine => src}/core/settings.json (100%) rename {engine => src}/core/settings.mjs (97%) rename {engine => src}/core/utils.mjs (99%) rename {engine => src}/services/cmdPalette.js (95%) rename {engine => src}/services/injectAPI.js (73%) rename {engine => src}/services/marketplace.mjs (100%) rename {engine => src}/services/module_loader.mjs (91%) rename {engine => src}/services/stylesheets.mjs (99%) rename {engine => src}/services/updates.js (97%) rename sine.sys.mjs => src/sine.sys.mjs (92%) rename {engine => src}/styles/main.css (78%) rename {engine => src}/styles/settings.css (86%) rename {engine => src}/utils/dom.mjs (93%) rename {engine => src}/utils/toasts.mjs (99%) rename {engine => src}/utils/uc_api.sys.mjs (99%) diff --git a/.prettierignore b/.prettierignore index 862add3..387c625 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1 @@ -engine/assets/imports/ \ No newline at end of file +src/assets/imports/ diff --git a/bun.lock b/bun.lock index 4abd68f..5b9a73b 100644 --- a/bun.lock +++ b/bun.lock @@ -20,9 +20,6 @@ "lint-staged": "^16.3.2", "prettier": "^3.8.1", }, - "peerDependencies": { - "typescript": "^5", - }, }, }, "packages": { @@ -266,8 +263,6 @@ "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "2.3.1" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], diff --git a/package.json b/package.json index 07a1e08..e1d824d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "import": "python3 scripts/import.py", "package": "python3 scripts/package.py", - "lint": "bunx eslint engine/ sine.sys.mjs && prettier . --check --cache" + "lint": "eslint src/ && prettier . --check --cache" }, "type": "module", "keywords": [], diff --git a/scripts/import.py b/scripts/import.py index e286df7..c9f5ef6 100644 --- a/scripts/import.py +++ b/scripts/import.py @@ -24,12 +24,11 @@ print("=" * 25) # Source paths -engine_src = sine_utils.source_dir / "engine" -sine_src = sine_utils.source_dir / "sine.sys.mjs" +sine_src = sine_utils.source_dir / "src" json_src = sine_utils.source_dir / "engine.json" locales_src = sine_utils.source_dir / "locales" -contents_to_copy = [sine_src, engine_src, json_src] +contents_to_copy = [sine_src, json_src] sine_utils.verify_content(contents_to_copy) # Destination paths @@ -63,29 +62,24 @@ def import_engine(): # Ensure destination exists destination_dir.mkdir(parents=True, exist_ok=True) - # Copy engine + sine.sys.mjs into JS/ - for item in contents_to_copy: - destination = destination_dir / item.name - - if destination.exists(): - if destination.is_file(): - destination.unlink() - else: - shutil.rmtree(destination) + # Copy src + engine.json into JS/ + json_dest = destination_dir / json_src.name + + if json_dest.exists(): + json_dest.unlink() - if item.is_file(): - if item.parts[-1].endswith(".json"): - with open(item, "r", encoding="utf-8") as f: - data = json.load(f) + with open(json_src, "r", encoding="utf-8") as f: + data = json.load(f) - with open(destination, "w", encoding="utf-8") as f: - json.dump(data["updates"][0], f, indent=2) - else: - shutil.copy2(item, destination) - else: - shutil.copytree(item, destination) - - log(f"Copied {item.name} to {sine_utils.censor(destination)}") + with open(destination_dir / json_src.name, "w", encoding="utf-8") as f: + json.dump(data["updates"][0], f, indent=2) + + if sine_src.exists(): + shutil.rmtree(destination_dir) + + shutil.copytree(sine_src, destination_dir) + + log(f"Copied engine data to {sine_utils.censor(destination_dir)}") # Copy locales one directory ABOVE JS/ if locales_src.exists(): diff --git a/scripts/package.py b/scripts/package.py index a3c12e4..ed6612a 100644 --- a/scripts/package.py +++ b/scripts/package.py @@ -17,7 +17,7 @@ def log(msg): sine_utils.log(start_time, msg) -def package_zip(output_zip, zip_content, top_level_folder=None): +def package_zip(output_zip, zip_content, top_level_folder): sine_utils.verify_content(zip_content) if output_zip.exists(): @@ -32,7 +32,7 @@ def package_zip(output_zip, zip_content, top_level_folder=None): for file in files: file_path = Path(root) / file # Make the path inside the zip - rel_path = file_path.relative_to(sine_utils.source_dir) + rel_path = file_path.relative_to(item) if top_level_folder: arcname = Path(top_level_folder) / rel_path else: @@ -49,7 +49,7 @@ def package_zip(output_zip, zip_content, top_level_folder=None): with open(item, "r", encoding="utf-8") as f: data = json.load(f) - item = sine_utils.source_dir / "update.json" + item = sine_utils.source_dir / "engine.json" with open(item, "w", encoding="utf-8") as f: json.dump(data["updates"][0], f, indent=2) @@ -65,12 +65,11 @@ def package_zip(output_zip, zip_content, top_level_folder=None): log(f"Error creating zip file: {e}") engine_content = [ - sine_utils.source_dir / "sine.sys.mjs", - sine_utils.source_dir / "engine", + sine_utils.source_dir / "src", sine_utils.source_dir / "engine.json" ] engine_location = sine_utils.source_dir / "engine.zip" -package_zip(engine_location, engine_content, top_level_folder="JS") +package_zip(engine_location, engine_content, "JS") print("\nPackaging locales...") print("=" * 25) @@ -78,4 +77,4 @@ def package_zip(output_zip, zip_content, top_level_folder=None): sine_utils.source_dir / "locales" ] locales_location = sine_utils.source_dir / "locales.zip" -package_zip(locales_location, locales_content) +package_zip(locales_location, locales_content, "locales") diff --git a/engine/actors/MarketplaceChild.sys.mjs b/src/actors/MarketplaceChild.sys.mjs similarity index 99% rename from engine/actors/MarketplaceChild.sys.mjs rename to src/actors/MarketplaceChild.sys.mjs index a338973..5d54500 100644 --- a/engine/actors/MarketplaceChild.sys.mjs +++ b/src/actors/MarketplaceChild.sys.mjs @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -// => engine/actors/MarketplaceChild.sys.mjs +// => actors/MarketplaceChild.sys.mjs // =========================================================== // This module interacts with the site in the JS Window Actor // for the Zen Mods site. diff --git a/engine/actors/MarketplaceParent.sys.mjs b/src/actors/MarketplaceParent.sys.mjs similarity index 97% rename from engine/actors/MarketplaceParent.sys.mjs rename to src/actors/MarketplaceParent.sys.mjs index b0cd7fe..b590901 100644 --- a/engine/actors/MarketplaceParent.sys.mjs +++ b/src/actors/MarketplaceParent.sys.mjs @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -// => engine/actors/MarketplaceParent.sys.mjs +// => actors/MarketplaceParent.sys.mjs // =========================================================== // This module allows the JS Window Actor for the Zen Mods // site to interact with global variables. diff --git a/engine/assets/images/check.svg b/src/assets/images/check.svg similarity index 100% rename from engine/assets/images/check.svg rename to src/assets/images/check.svg diff --git a/engine/assets/images/github.svg b/src/assets/images/github.svg similarity index 100% rename from engine/assets/images/github.svg rename to src/assets/images/github.svg diff --git a/engine/assets/images/home.svg b/src/assets/images/home.svg similarity index 100% rename from engine/assets/images/home.svg rename to src/assets/images/home.svg diff --git a/engine/assets/images/markdown.svg b/src/assets/images/markdown.svg similarity index 100% rename from engine/assets/images/markdown.svg rename to src/assets/images/markdown.svg diff --git a/engine/assets/images/refresh.svg b/src/assets/images/refresh.svg similarity index 100% rename from engine/assets/images/refresh.svg rename to src/assets/images/refresh.svg diff --git a/engine/assets/images/saturn.svg b/src/assets/images/saturn.svg similarity index 100% rename from engine/assets/images/saturn.svg rename to src/assets/images/saturn.svg diff --git a/engine/assets/images/settings.svg b/src/assets/images/settings.svg similarity index 100% rename from engine/assets/images/settings.svg rename to src/assets/images/settings.svg diff --git a/engine/assets/images/update-disabled.svg b/src/assets/images/update-disabled.svg similarity index 100% rename from engine/assets/images/update-disabled.svg rename to src/assets/images/update-disabled.svg diff --git a/engine/assets/images/update.svg b/src/assets/images/update.svg similarity index 100% rename from engine/assets/images/update.svg rename to src/assets/images/update.svg diff --git a/engine/assets/images/web.svg b/src/assets/images/web.svg similarity index 100% rename from engine/assets/images/web.svg rename to src/assets/images/web.svg diff --git a/engine/assets/imports/marked_parser.js b/src/assets/imports/marked_parser.js similarity index 100% rename from engine/assets/imports/marked_parser.js rename to src/assets/imports/marked_parser.js diff --git a/engine/assets/imports/marked_styles.css b/src/assets/imports/marked_styles.css similarity index 100% rename from engine/assets/imports/marked_styles.css rename to src/assets/imports/marked_styles.css diff --git a/engine/core/main.mjs b/src/core/main.mjs similarity index 90% rename from engine/core/main.mjs rename to src/core/main.mjs index e242aa2..2abd481 100644 --- a/engine/core/main.mjs +++ b/src/core/main.mjs @@ -10,8 +10,8 @@ domUtils.injectLocale("sine-toasts"); injectCmdPalette(); -const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/engine/utils/uc_api.sys.mjs").default; -const utils = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/utils.mjs").default; +const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/utils/uc_api.sys.mjs").default; +const utils = ChromeUtils.importESModule("chrome://userscripts/content/core/utils.mjs").default; const manager = window.manager; delete window.manager; @@ -66,10 +66,7 @@ window.SineAPI = { manager, }; -domUtils.appendXUL( - document.head, - '' -); +domUtils.appendXUL(document.head, ''); // Check for Sine updates. updates.checkForUpdates(); diff --git a/engine/core/manager.mjs b/src/core/manager.mjs similarity index 99% rename from engine/core/manager.mjs rename to src/core/manager.mjs index ee2b426..a2be134 100644 --- a/engine/core/manager.mjs +++ b/src/core/manager.mjs @@ -1,4 +1,4 @@ -// => engine/utils/manager.mjs +// => core/manager.mjs // =========================================================== // This module manages mods and themes, allowing Sine to // enable, disable, and remove them. @@ -9,9 +9,8 @@ import domUtils from "../utils/dom.mjs"; import ucAPI from "../utils/uc_api.sys.mjs"; class Manager { - marketplace = ChromeUtils.importESModule("chrome://userscripts/content/engine/services/marketplace.mjs").default; - #stylesheetManager = ChromeUtils.importESModule("chrome://userscripts/content/engine/services/stylesheets.mjs") - .default; + marketplace = ChromeUtils.importESModule("chrome://userscripts/content/services/marketplace.mjs").default; + #stylesheetManager = ChromeUtils.importESModule("chrome://userscripts/content/services/stylesheets.mjs").default; #unloadListeners = {}; addUnloadListener(script, window, callback) { @@ -78,7 +77,7 @@ class Manager { let script = Components.stack.caller?.filename.split("?")[0]; // Only allow custom script paths if it's from a trusted file. - if (script === "chrome://userscripts/content/engine/services/module_loader.mjs") { + if (script === "chrome://userscripts/content/services/module_loader.mjs") { script = scriptPath; } @@ -147,7 +146,7 @@ class Manager { for (const process of processes) { this.appendInterfaceToDOM(process); - ChromeUtils.compileScript("chrome://userscripts/content/engine/services/module_loader.mjs") + ChromeUtils.compileScript("chrome://userscripts/content/services/module_loader.mjs") .then((script) => script.executeInGlobal(process)) .catch((err) => console.warn("[Sine]: Failed to load module script:", err)); @@ -188,7 +187,7 @@ class Manager { this.appendInterfaceToDOM(window); window.newDOM = true; - ChromeUtils.compileScript("chrome://userscripts/content/engine/services/module_loader.mjs").then((script) => + ChromeUtils.compileScript("chrome://userscripts/content/services/module_loader.mjs").then((script) => script.executeInGlobal(window) ); diff --git a/engine/core/settings.json b/src/core/settings.json similarity index 100% rename from engine/core/settings.json rename to src/core/settings.json diff --git a/engine/core/settings.mjs b/src/core/settings.mjs similarity index 97% rename from engine/core/settings.mjs rename to src/core/settings.mjs index bda1656..150e97e 100644 --- a/engine/core/settings.mjs +++ b/src/core/settings.mjs @@ -1,11 +1,11 @@ console.log("[Sine]: Executing settings process..."); -import domUtils from "chrome://userscripts/content/engine/utils/dom.mjs"; +import domUtils from "chrome://userscripts/content/utils/dom.mjs"; import injectCmdPalette from "../services/cmdPalette.js"; import updates from "../services/updates.js"; -const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/engine/utils/uc_api.sys.mjs").default; -const utils = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/utils.mjs").default; +const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/utils/uc_api.sys.mjs").default; +const utils = ChromeUtils.importESModule("chrome://userscripts/content/core/utils.mjs").default; const manager = window.manager; delete window.manager; @@ -17,10 +17,7 @@ if (ucAPI.utils.fork === "zen") { } // Inject settings styles and localization. -domUtils.appendXUL( - document.head, - '' -); +domUtils.appendXUL(document.head, ''); domUtils.injectLocale("sine-preferences"); @@ -168,7 +165,7 @@ newSettingsDialog.querySelector("button").addEventListener("click", () => newSet let sineSettingsLoaded = false; const loadPrefs = async () => { await updates.init(); - const settingPrefs = await IOUtils.readJSON(PathUtils.join(utils.jsDir, "engine", "core", "settings.json")); + const settingPrefs = await IOUtils.readJSON(PathUtils.join(utils.jsDir, "core", "settings.json")); for (const pref of settingPrefs) { if (pref.l10n) { pref.label = await document.l10n.formatValue(pref.l10n); diff --git a/engine/core/utils.mjs b/src/core/utils.mjs similarity index 99% rename from engine/core/utils.mjs rename to src/core/utils.mjs index b232403..f1eda91 100644 --- a/engine/core/utils.mjs +++ b/src/core/utils.mjs @@ -1,4 +1,4 @@ -// => engine/utils/utils.mjs +// => core/utils.mjs // =========================================================== // This module provides data so that Sine can easily know // where to look and perform actions. diff --git a/engine/services/cmdPalette.js b/src/services/cmdPalette.js similarity index 95% rename from engine/services/cmdPalette.js rename to src/services/cmdPalette.js index 2b9c287..483094a 100644 --- a/engine/services/cmdPalette.js +++ b/src/services/cmdPalette.js @@ -1,14 +1,14 @@ -// => engine/plugins/cmdPalette.js +// => services/cmdPalette.js // =========================================================== -// This plugin allows developers to have an easy-to-use +// This service allows developers to have an easy-to-use // command palette for making themes. // =========================================================== import domUtils from "../utils/dom.mjs"; -const manager = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/manager.mjs").default; -const utils = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/utils.mjs").default; -const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/engine/utils/uc_api.sys.mjs").default; +const manager = ChromeUtils.importESModule("chrome://userscripts/content/core/manager.mjs").default; +const utils = ChromeUtils.importESModule("chrome://userscripts/content/core/utils.mjs").default; +const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/utils/uc_api.sys.mjs").default; export default () => { if (Services.prefs.getBoolPref("sine.enable-dev", false)) { diff --git a/engine/services/injectAPI.js b/src/services/injectAPI.js similarity index 73% rename from engine/services/injectAPI.js rename to src/services/injectAPI.js index 376b03c..8fc1028 100644 --- a/engine/services/injectAPI.js +++ b/src/services/injectAPI.js @@ -1,4 +1,4 @@ -// => engine/injectAPI.js +// => services/injectAPI.js // =========================================================== // This module allows the script to inject an API for // installing mods through the Zen Mods store. @@ -7,10 +7,10 @@ try { ChromeUtils.registerWindowActor("SineModsMarketplace", { parent: { - esModuleURI: "chrome://userscripts/content/engine/actors/MarketplaceParent.sys.mjs", + esModuleURI: "chrome://userscripts/content/actors/MarketplaceParent.sys.mjs", }, child: { - esModuleURI: "chrome://userscripts/content/engine/actors/MarketplaceChild.sys.mjs", + esModuleURI: "chrome://userscripts/content/actors/MarketplaceChild.sys.mjs", events: { DOMContentLoaded: {}, }, diff --git a/engine/services/marketplace.mjs b/src/services/marketplace.mjs similarity index 100% rename from engine/services/marketplace.mjs rename to src/services/marketplace.mjs diff --git a/engine/services/module_loader.mjs b/src/services/module_loader.mjs similarity index 91% rename from engine/services/module_loader.mjs rename to src/services/module_loader.mjs index e5a6f35..bf36ff5 100644 --- a/engine/services/module_loader.mjs +++ b/src/services/module_loader.mjs @@ -13,13 +13,13 @@ }[window.location.pathname]; if (scriptName && window.newDOM) { - importScript("chrome://userscripts/content/engine/core/" + scriptName); + importScript("chrome://userscripts/content/core/" + scriptName); } delete window.newDOM; const executeUserScripts = async () => { - const utils = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/utils.mjs").default; + const utils = ChromeUtils.importESModule("chrome://userscripts/content/core/utils.mjs").default; const scripts = await utils.getScripts({ removeBgModules: true, href: window.location.href, diff --git a/engine/services/stylesheets.mjs b/src/services/stylesheets.mjs similarity index 99% rename from engine/services/stylesheets.mjs rename to src/services/stylesheets.mjs index a2e2151..b8f841a 100644 --- a/engine/services/stylesheets.mjs +++ b/src/services/stylesheets.mjs @@ -1,4 +1,4 @@ -// => engine/services/stylesheets.mjs +// => services/stylesheets.mjs // =========================================================== // This module manages stylesheets for mods and themes, // applying them to the browser and content as needed. diff --git a/engine/services/updates.js b/src/services/updates.js similarity index 97% rename from engine/services/updates.js rename to src/services/updates.js index 351ee21..493f762 100644 --- a/engine/services/updates.js +++ b/src/services/updates.js @@ -1,11 +1,11 @@ -// => engine/services/updates.js +// => services/updates.js // =========================================================== // This module allows Sine to update itself, removing the // need for the user to reinstall Sine. // =========================================================== -const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/engine/utils/uc_api.sys.mjs").default; -const utils = ChromeUtils.importESModule("chrome://userscripts/content/engine/core/utils.mjs").default; +const ucAPI = ChromeUtils.importESModule("chrome://userscripts/content/utils/uc_api.sys.mjs").default; +const utils = ChromeUtils.importESModule("chrome://userscripts/content/core/utils.mjs").default; export default { dataFile: PathUtils.join(utils.jsDir, "engine.json"), diff --git a/sine.sys.mjs b/src/sine.sys.mjs similarity index 92% rename from sine.sys.mjs rename to src/sine.sys.mjs index 65a27b0..fb37bd0 100644 --- a/sine.sys.mjs +++ b/src/sine.sys.mjs @@ -5,9 +5,9 @@ */ // Engine imports. -import utils from "./engine/core/utils.mjs"; -import manager from "./engine/core/manager.mjs"; -import ucAPI from "./engine/utils/uc_api.sys.mjs"; +import utils from "./core/utils.mjs"; +import manager from "./core/manager.mjs"; +import ucAPI from "./utils/uc_api.sys.mjs"; console.log(`${utils.brand.charAt(0).toUpperCase() + utils.brand.slice(1)} is active!`); @@ -75,7 +75,7 @@ const Sine = { manager.updateMods("auto"); // Inject https://zen-browser.app/mods/ API. - import("./engine/services/injectAPI.js"); + import("./services/injectAPI.js"); }, }; diff --git a/engine/styles/main.css b/src/styles/main.css similarity index 78% rename from engine/styles/main.css rename to src/styles/main.css index d35acb4..3351488 100644 --- a/engine/styles/main.css +++ b/src/styles/main.css @@ -1,10 +1,5 @@ /* - * ╔══════════════════════════════════════════════════════════╗ - * ║ engine/styles/main.css ║ - * ╠══════════════════════════════════════════════════════════╣ - * ║ This module contains styling for Sine in the main ║ - * ║ process. ║ - * ╚══════════════════════════════════════════════════════════╝ + * Styling for Sine in the browser window. */ .sineCommandPalette { diff --git a/engine/styles/settings.css b/src/styles/settings.css similarity index 86% rename from engine/styles/settings.css rename to src/styles/settings.css index 70f05d9..e004fdb 100644 --- a/engine/styles/settings.css +++ b/src/styles/settings.css @@ -1,14 +1,9 @@ /* - * ╔══════════════════════════════════════════════════════════╗ - * ║ engine/styles/settings.css ║ - * ╠══════════════════════════════════════════════════════════╣ - * ║ This module contains styling for Sine in the settings ║ - * ║ process. ║ - * ╚══════════════════════════════════════════════════════════╝ + * Styling for Sine in the settings window. */ #category-sine-mods .category-icon { - list-style-image: url("chrome://userscripts/content/engine/assets/images/saturn.svg"); + list-style-image: url("chrome://userscripts/content/assets/images/saturn.svg"); } #sineInstalledGroup, @@ -94,23 +89,23 @@ } #sineMarketplaceRefreshButton { - background-image: url("chrome://userscripts/content/engine/assets/images/refresh.svg"); + background-image: url("chrome://userscripts/content/assets/images/refresh.svg"); background-size: 100%; } .sineMarketplaceButtonContainer .sineMarketplaceOpenButton { - background-image: url("chrome://userscripts/content/engine/assets/images/markdown.svg"); + background-image: url("chrome://userscripts/content/assets/images/markdown.svg"); } #sineInstallationCustom .sineMarketplaceOpenButton:not(.sineItemConfigureButton) { - background-image: url("chrome://userscripts/content/engine/assets/images/web.svg"); + background-image: url("chrome://userscripts/content/assets/images/web.svg"); } .github-link { min-width: 0; height: 34.833px; width: 38.833px; - background-image: url("chrome://userscripts/content/engine/assets/images/github.svg"); + background-image: url("chrome://userscripts/content/assets/images/github.svg"); } .sineItemPreferenceDialogContent .update-indicator { @@ -356,7 +351,7 @@ dialog[open] { display: flex; &::before { - background-image: url("chrome://userscripts/content/engine/assets/images/update.svg"); + background-image: url("chrome://userscripts/content/assets/images/update.svg"); background-repeat: no-repeat; } @@ -374,7 +369,7 @@ dialog[open] { display: flex; &::before { - background-image: url("chrome://userscripts/content/engine/assets/images/update-disabled.svg"); + background-image: url("chrome://userscripts/content/assets/images/update-disabled.svg"); } } @@ -417,7 +412,7 @@ dialog[open] { content: ""; width: 16px; height: 16px; - background-image: url("chrome://userscripts/content/engine/assets/images/check.svg"); + background-image: url("chrome://userscripts/content/assets/images/check.svg"); background-repeat: no-repeat; align-self: center; } @@ -535,11 +530,11 @@ dialog[open] { } .sineItemConfigureButton { - background-image: url("chrome://userscripts/content/engine/assets/images/settings.svg"); + background-image: url("chrome://userscripts/content/assets/images/settings.svg"); } .sineItemHomepageButton { - background-image: url("chrome://userscripts/content/engine/assets/images/home.svg"); + background-image: url("chrome://userscripts/content/assets/images/home.svg"); } .sineItemConfigureButton, diff --git a/engine/utils/dom.mjs b/src/utils/dom.mjs similarity index 93% rename from engine/utils/dom.mjs rename to src/utils/dom.mjs index fb582a8..4ede842 100644 --- a/engine/utils/dom.mjs +++ b/src/utils/dom.mjs @@ -5,15 +5,14 @@ const parseMD = (element, markdown, relativeURL, windowObj = window) => { const link = document.createElement("link"); link.rel = "stylesheet"; link.className = "marked-styles"; - link.href = "chrome://userscripts/content/engine/assets/imports/marked_styles.css"; + link.href = "chrome://userscripts/content/assets/imports/marked_styles.css"; document.head.appendChild(link); } if (!windowObj.marked) { - Services.scriptloader.loadSubScriptWithOptions( - "chrome://userscripts/content/engine/assets/imports/marked_parser.js", - { target: windowObj } - ); + Services.scriptloader.loadSubScriptWithOptions("chrome://userscripts/content/assets/imports/marked_parser.js", { + target: windowObj, + }); } const renderer = new windowObj.marked.Renderer(); diff --git a/engine/utils/toasts.mjs b/src/utils/toasts.mjs similarity index 99% rename from engine/utils/toasts.mjs rename to src/utils/toasts.mjs index 55fd8ba..6321992 100644 --- a/engine/utils/toasts.mjs +++ b/src/utils/toasts.mjs @@ -1,4 +1,4 @@ -// => engine/utils/toasts.mjs +// => utils/toasts.mjs // =========================================================== // This module contains the basic logic behind toast // implementation, used in uc_api.sys.mjs. diff --git a/engine/utils/uc_api.sys.mjs b/src/utils/uc_api.sys.mjs similarity index 99% rename from engine/utils/uc_api.sys.mjs rename to src/utils/uc_api.sys.mjs index 9e7a0a5..995546c 100644 --- a/engine/utils/uc_api.sys.mjs +++ b/src/utils/uc_api.sys.mjs @@ -1,4 +1,4 @@ -// => engine/utils/uc_api.sys.mjs +// => utils/uc_api.sys.mjs // =========================================================== // This module adds convenience functions for performing // generic tasks unrelated to mod management. From 43618dc1d91ca6b1d6df69614c240009612b43b1 Mon Sep 17 00:00:00 2001 From: CosmoCreeper <179134799+CosmoCreeper@users.noreply.github.com> Date: Tue, 14 Apr 2026 15:10:51 -0400 Subject: [PATCH 2/2] fix: Import system and clean up --- .prettierrc => .prettierrc.json | 0 bun.lock | 7 +++++++ deployment/engine.json | 5 ----- deployment/engine.zip | Bin 94433 -> 0 bytes eslint.config.js => eslint.config.mjs | 0 package.json | 5 +++-- scripts/import.py | 18 ++++++++++-------- 7 files changed, 20 insertions(+), 15 deletions(-) rename .prettierrc => .prettierrc.json (100%) delete mode 100644 deployment/engine.json delete mode 100644 deployment/engine.zip rename eslint.config.js => eslint.config.mjs (100%) diff --git a/.prettierrc b/.prettierrc.json similarity index 100% rename from .prettierrc rename to .prettierrc.json diff --git a/bun.lock b/bun.lock index 5b9a73b..eade56b 100644 --- a/bun.lock +++ b/bun.lock @@ -9,6 +9,7 @@ "@eslint/js": "^10.0.1", "@eslint/json": "^1.0.1", "@types/bun": "latest", + "allpm": "^1.1.4", "eslint": "^10.0.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-html": "^8.1.4", @@ -71,6 +72,8 @@ "ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "3.1.3", "fast-json-stable-stringify": "2.1.0", "json-schema-traverse": "0.4.1", "uri-js": "4.4.1" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], + "allpm": ["allpm@1.1.4", "", { "dependencies": { "cross-spawn": "^7.0.6", "package-directory": "^8.2.0" }, "bin": { "allpm": "dist/bin/index.js" } }, "sha512-UCKHsM9Hbp8QX2dJlj7HaBnoYh3IeVpeQOxUY5MvkEj2z1QWdwj3kiR6YWLJWTxGmZECvX1++Hv+wWnk8IDjyg=="], + "ansi-escapes": ["ansi-escapes@7.3.0", "", { "dependencies": { "environment": "1.1.0" } }, "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg=="], "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], @@ -155,6 +158,8 @@ "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "6.0.0", "path-exists": "4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + "find-up-simple": ["find-up-simple@1.0.1", "", {}, "sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ=="], + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "3.3.4", "keyv": "4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], "flatted": ["flatted@3.3.4", "", {}, "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA=="], @@ -225,6 +230,8 @@ "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "3.1.0" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + "package-directory": ["package-directory@8.2.0", "", { "dependencies": { "find-up-simple": "^1.0.0" } }, "sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw=="], + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], diff --git a/deployment/engine.json b/deployment/engine.json deleted file mode 100644 index 168e49a..0000000 --- a/deployment/engine.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "updatedAt": "2026-02-15 22:52", - "version": "2.2.3", - "package": "https://raw.githubusercontent.com/CosmoCreeper/Sine/cosine/deployment/engine.zip" -} diff --git a/deployment/engine.zip b/deployment/engine.zip deleted file mode 100644 index 5f783eb8b954664408338b359bab4f3326afee81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94433 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
Wg|$-1aHN9rGjSm+_CE%_=H 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