mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-05 19:24:39 +00:00
feat: some messed up stuff to fix some stuff
This commit is contained in:
@@ -6,6 +6,10 @@ pnpm-lock.yaml
|
|||||||
yarn.lock
|
yarn.lock
|
||||||
bun.lock
|
bun.lock
|
||||||
|
|
||||||
|
# PDF.js extension assets (copied by postinstall from pdfjs-dist)
|
||||||
|
src/public/resources/pdfjs/pdf.worker.min.mjs
|
||||||
|
src/public/resources/pdfjs/pdf.legacy.min.mjs
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
extension.zip
|
extension.zip
|
||||||
build/
|
build/
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development and add heaps more features!",
|
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development and add heaps more features!",
|
||||||
"browserslist": "> 0.5%, last 2 versions, not dead",
|
"browserslist": "> 0.5%, last 2 versions, not dead",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"postinstall": "node scripts/copy-pdfjs-assets.mjs",
|
||||||
"autoaudit": "npm audit && npm audit fix && npm run build",
|
"autoaudit": "npm audit && npm audit fix && npm run build",
|
||||||
"dev": "cross-env MODE=chrome vite dev",
|
"dev": "cross-env MODE=chrome vite dev",
|
||||||
"dev:firefox": "cross-env MODE=firefox vite build --watch",
|
"dev:firefox": "cross-env MODE=firefox vite build --watch",
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { copyFileSync, mkdirSync } from "node:fs";
|
||||||
|
import { dirname, join } from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
const root = join(dirname(fileURLToPath(import.meta.url)), "..");
|
||||||
|
const pdfjsRoot = join(root, "node_modules", "pdfjs-dist");
|
||||||
|
const outDir = join(root, "src", "public", "resources", "pdfjs");
|
||||||
|
|
||||||
|
mkdirSync(outDir, { recursive: true });
|
||||||
|
copyFileSync(
|
||||||
|
join(pdfjsRoot, "build", "pdf.worker.min.mjs"),
|
||||||
|
join(outDir, "pdf.worker.min.mjs"),
|
||||||
|
);
|
||||||
|
copyFileSync(
|
||||||
|
join(pdfjsRoot, "legacy", "build", "pdf.min.mjs"),
|
||||||
|
join(outDir, "pdf.legacy.min.mjs"),
|
||||||
|
);
|
||||||
@@ -24,9 +24,9 @@
|
|||||||
handleImageVariableChange,
|
handleImageVariableChange,
|
||||||
handleCoverImageUpload
|
handleCoverImageUpload
|
||||||
} from '../utils/themeImageHandlers';
|
} from '../utils/themeImageHandlers';
|
||||||
import { CloseThemeCreator } from '@/plugins/built-in/themes/ThemeCreator'
|
|
||||||
import { themeUpdates } from '../hooks/ThemeUpdates'
|
|
||||||
import { ThemeManager } from '@/plugins/built-in/themes/theme-manager'
|
import { ThemeManager } from '@/plugins/built-in/themes/theme-manager'
|
||||||
|
import { themeUpdates } from '../hooks/ThemeUpdates'
|
||||||
|
import { CloseThemeCreator } from '@/plugins/built-in/themes/ThemeCreator'
|
||||||
|
|
||||||
const { themeID } = $props<{ themeID: string }>()
|
const { themeID } = $props<{ themeID: string }>()
|
||||||
const themeManager = ThemeManager.getInstance();
|
const themeManager = ThemeManager.getInstance();
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import * as pdfjs from "pdfjs-dist";
|
import * as pdfjs from "pdfjs-dist";
|
||||||
import browser from "webextension-polyfill";
|
import browser from "webextension-polyfill";
|
||||||
import pdfWorkerHref from "pdfjs-dist/build/pdf.worker.min.mjs?url";
|
|
||||||
import pdfLegacyHref from "pdfjs-dist/legacy/build/pdf.min.mjs?url";
|
|
||||||
|
|
||||||
function extensionAssetUrl(viteAssetHref: string): string {
|
/** Static copies in `src/public` (see `scripts/copy-pdfjs-assets.mjs`, manifest web_accessible_resources). */
|
||||||
const path = viteAssetHref.replace(/^\/+/, "");
|
const PDF_WORKER_RESOURCE = "resources/pdfjs/pdf.worker.min.mjs";
|
||||||
return browser.runtime.getURL(path);
|
const PDF_LEGACY_RESOURCE = "resources/pdfjs/pdf.legacy.min.mjs";
|
||||||
|
|
||||||
|
function extensionAssetUrl(relativePath: string): string {
|
||||||
|
return browser.runtime.getURL(relativePath.replace(/^\/+/, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
let workerConfigured = false;
|
let workerConfigured = false;
|
||||||
@@ -13,14 +14,14 @@ let workerConfigured = false;
|
|||||||
/** Required before pdfjs spawns a worker (content-script / extension isolate). */
|
/** Required before pdfjs spawns a worker (content-script / extension isolate). */
|
||||||
export function ensurePdfjsWorker(): void {
|
export function ensurePdfjsWorker(): void {
|
||||||
if (workerConfigured) return;
|
if (workerConfigured) return;
|
||||||
pdfjs.GlobalWorkerOptions.workerSrc = extensionAssetUrl(pdfWorkerHref);
|
pdfjs.GlobalWorkerOptions.workerSrc = extensionAssetUrl(PDF_WORKER_RESOURCE);
|
||||||
workerConfigured = true;
|
workerConfigured = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Page-context script on Firefox must load these chrome-extension:// URLs (see web_accessible_resources). */
|
/** Page-context script on Firefox must load these chrome-extension:// URLs (see web_accessible_resources). */
|
||||||
export function getPdfjsPageContextUrls(): { lib: string; worker: string } {
|
export function getPdfjsPageContextUrls(): { lib: string; worker: string } {
|
||||||
return {
|
return {
|
||||||
lib: extensionAssetUrl(pdfLegacyHref),
|
lib: extensionAssetUrl(PDF_LEGACY_RESOURCE),
|
||||||
worker: extensionAssetUrl(pdfWorkerHref),
|
worker: extensionAssetUrl(PDF_WORKER_RESOURCE),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import renderSvelte from "@/interface/main";
|
import renderSvelte from "@/interface/main";
|
||||||
import themeCreator from "@/interface/pages/themeCreator.svelte";
|
|
||||||
import { unmount } from "svelte";
|
|
||||||
import { ThemeManager } from "@/plugins/built-in/themes/theme-manager";
|
import { ThemeManager } from "@/plugins/built-in/themes/theme-manager";
|
||||||
|
import { unmount } from "svelte";
|
||||||
|
import themeCreator from "@/interface/pages/themeCreator.svelte";
|
||||||
import { settingsState } from "@/seqta/utils/listeners/SettingsState";
|
import { settingsState } from "@/seqta/utils/listeners/SettingsState";
|
||||||
|
|
||||||
let themeCreatorSvelteApp: any = null;
|
let themeCreatorSvelteApp: any = null;
|
||||||
const themeManager = ThemeManager.getInstance();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open the Theme Creator sidebar, it is an embedded page loaded similar to the extension popup
|
* Open the Theme Creator sidebar, it is an embedded page loaded similar to the extension popup
|
||||||
@@ -41,7 +40,7 @@ export function OpenThemeCreator(themeID: string = "") {
|
|||||||
closeButton.textContent = "×";
|
closeButton.textContent = "×";
|
||||||
closeButton.addEventListener("click", () => {
|
closeButton.addEventListener("click", () => {
|
||||||
CloseThemeCreator();
|
CloseThemeCreator();
|
||||||
themeManager.clearPreview();
|
ThemeManager.getInstance().clearPreview();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.body.appendChild(closeButton);
|
document.body.appendChild(closeButton);
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ import {
|
|||||||
OpenMenuOptions,
|
OpenMenuOptions,
|
||||||
} from "@/seqta/utils/Openers/OpenMenuOptions";
|
} from "@/seqta/utils/Openers/OpenMenuOptions";
|
||||||
|
|
||||||
|
import { ThemeManager } from "@/plugins/built-in/themes/theme-manager";
|
||||||
import {
|
import {
|
||||||
CloseThemeCreator,
|
CloseThemeCreator,
|
||||||
OpenThemeCreator,
|
OpenThemeCreator,
|
||||||
} from "@/plugins/built-in/themes/ThemeCreator";
|
} from "@/plugins/built-in/themes/ThemeCreator";
|
||||||
import sendThemeUpdate from "@/seqta/utils/sendThemeUpdate";
|
import sendThemeUpdate from "@/seqta/utils/sendThemeUpdate";
|
||||||
import hideSensitiveContent from "@/seqta/ui/dev/hideSensitiveContent";
|
import hideSensitiveContent from "@/seqta/ui/dev/hideSensitiveContent";
|
||||||
import { ThemeManager } from "@/plugins/built-in/themes/theme-manager";
|
|
||||||
|
|
||||||
const themeManager = ThemeManager.getInstance();
|
const themeManager = ThemeManager.getInstance();
|
||||||
|
|
||||||
|
|||||||
+1
-16
@@ -85,22 +85,7 @@ export default defineConfig(({ command }) => ({
|
|||||||
pageState: join(__dirname, "src", "pageState.js"),
|
pageState: join(__dirname, "src", "pageState.js"),
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
assetFileNames(info) {
|
assetFileNames: "assets/[name]-[hash][extname]",
|
||||||
const labels = [
|
|
||||||
...(info.names ?? []),
|
|
||||||
...(info.originalFileNames ?? []),
|
|
||||||
].join(" ");
|
|
||||||
if (
|
|
||||||
labels.includes("pdf.worker.min") ||
|
|
||||||
labels.includes("pdf.worker.mjs")
|
|
||||||
) {
|
|
||||||
return "resources/pdfjs/pdf.worker.min.mjs";
|
|
||||||
}
|
|
||||||
if (labels.includes("legacy") && labels.includes("pdf.min")) {
|
|
||||||
return "resources/pdfjs/pdf.legacy.min.mjs";
|
|
||||||
}
|
|
||||||
return "assets/[name]-[hash][extname]";
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
onwarn(warning, warn) {
|
onwarn(warning, warn) {
|
||||||
if (warning.code === "FILE_NAME_CONFLICT") return;
|
if (warning.code === "FILE_NAME_CONFLICT") return;
|
||||||
|
|||||||
Reference in New Issue
Block a user