From ffce0e2cf21679f48741ed4b5fc6d5cdf8a47a27 Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Fri, 31 Jul 2026 16:48:04 +0700 Subject: [PATCH] feat(lib/plugins): add sourceURL to external plugin scripts --- lib/plugins/src/_internal/external-plugins.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/plugins/src/_internal/external-plugins.ts b/lib/plugins/src/_internal/external-plugins.ts index 6f53b1c..d4127b5 100644 --- a/lib/plugins/src/_internal/external-plugins.ts +++ b/lib/plugins/src/_internal/external-plugins.ts @@ -160,7 +160,7 @@ export function registerExternalPlugin(external: ExternalPlugin) { const id = internal ? registerInternalPlugin( manifest, - createOptionsFactory(script), + createOptionsFactory(manifest.id, script), essential || enabledByDefault ? PluginFlags.Enabled : 0, InternalPluginFlags.Internal | (essential ? InternalPluginFlags.Essential : 0) | @@ -168,7 +168,7 @@ export function registerExternalPlugin(external: ExternalPlugin) { ) : registerPlugin( manifest, - createOptionsFactory(script), + createOptionsFactory(manifest.id, script), enabledByDefault ? PluginFlags.Enabled : 0, ) @@ -235,11 +235,18 @@ function assertIsFunction( throw new Error(`${name} must be a function, got ${typeof value}`) } -function createOptionsFactory(script?: string): PluginOptionsFactory { +function createOptionsFactory( + id: string, + script?: string, +): PluginOptionsFactory { if (!script) return () => ({}) return () => { - const opts = new Function('revenge', 'plugin', `return ${script}`)( + const opts = new Function( + 'revenge', + 'plugin', + `return ${script}\n//# sourceURL=Revenge:Plugin:${id}`, + )( pUnscopedApi, // See types.consumers.ts (opts: PluginOptions) => opts,