extension-develop 4.1.9 → 4.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/0~rspack-config.mjs +109 -39
- package/dist/101.mjs +1 -1
- package/dist/291.mjs +8 -1
- package/dist/839.mjs +3 -2
- package/dist/extension-js-devtools/chrome/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chrome/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/chrome/manifest.json +4 -0
- package/dist/extension-js-devtools/chrome/options/index.css +2 -0
- package/dist/extension-js-devtools/chrome/options/index.html +11 -0
- package/dist/extension-js-devtools/chrome/options/index.js +1 -0
- package/dist/extension-js-devtools/chrome/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chrome/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/chromium/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chromium/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/chromium/manifest.json +4 -0
- package/dist/extension-js-devtools/chromium/options/index.css +2 -0
- package/dist/extension-js-devtools/chromium/options/index.html +11 -0
- package/dist/extension-js-devtools/chromium/options/index.js +1 -0
- package/dist/extension-js-devtools/chromium/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chromium/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/edge/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/edge/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/edge/manifest.json +4 -0
- package/dist/extension-js-devtools/edge/options/index.css +2 -0
- package/dist/extension-js-devtools/edge/options/index.html +11 -0
- package/dist/extension-js-devtools/edge/options/index.js +1 -0
- package/dist/extension-js-devtools/edge/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/edge/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/firefox/background/scripts.js +1 -1
- package/dist/extension-js-devtools/firefox/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/firefox/manifest.json +4 -0
- package/dist/extension-js-devtools/firefox/options/index.css +2 -0
- package/dist/extension-js-devtools/firefox/options/index.html +11 -0
- package/dist/extension-js-devtools/firefox/options/index.js +1 -0
- package/dist/extension-js-devtools/firefox/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/firefox/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
- package/dist/feature-scripts-content-script-wrapper.js +3 -2
- package/dist/feature-scripts-content-script-wrapper.mjs +3 -2
- package/dist/minimum-script-file.js +4 -4
- package/dist/minimum-script-file.mjs +4 -4
- package/dist/plugin-reload/steps/setup-reload-strategy/index.d.ts +6 -8
- package/dist/plugin-web-extension/feature-scripts/contracts.d.ts +3 -0
- package/dist/plugin-web-extension/feature-scripts/scripts-lib/utils.d.ts +9 -0
- package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/index.d.ts +2 -1
- package/package.json +1 -1
package/dist/0~rspack-config.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import { isResourceUnderDirs, canonicalizeDir, toResourceKey } from "./93.mjs";
|
|
|
18
18
|
import { prefix as messaging_prefix, isDebug } from "./349.mjs";
|
|
19
19
|
import { jsFrameworksHmrSummary, isUsingTypeScript, resolvePackageManager, humanLine, jsFrameworksIntegrationsEnabled, jsFrameworksConfigsDetected, recordZipArtifact, hasDependency, resolveDevelopInstallRoot, resolveDevelopDistFile, isUsingCustomLoader, ensureTypeScriptConfig, isUsingIntegration as messages_isUsingIntegration, getUserTypeScriptConfigFile } from "./839.mjs";
|
|
20
20
|
import { renderStatsBlocks, makeSanitizedConsole } from "./0~stats-handler.mjs";
|
|
21
|
-
import { getCanonicalContentScriptEntryName, parseCanonicalContentScriptAsset,
|
|
21
|
+
import { EXTENSIONJS_CONTENT_SCRIPT_LAYER, getCanonicalContentScriptEntryName, parseCanonicalContentScriptAsset, CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX, createContentScriptCssProbeMarkerPattern, getCanonicalContentScriptJsAssetName, getCanonicalContentScriptCssAssetName, isCanonicalContentScriptAsset } from "./291.mjs";
|
|
22
22
|
import { hasProjectDependency, findNearestProjectManifestSync, PROJECT_MANIFEST_FILENAMES, readProjectDependencies } from "./80.mjs";
|
|
23
23
|
import { cssIntegrationsEnabled, cssConfigsDetected, deadCssUrlRef, missingSassDependency, isUsingIntegration, postCssPluginNotResolved } from "./845.mjs";
|
|
24
24
|
import { toPosixPath } from "./86.mjs";
|
|
@@ -5591,6 +5591,53 @@ class PruneStaleHotUpdates {
|
|
|
5591
5591
|
});
|
|
5592
5592
|
}
|
|
5593
5593
|
}
|
|
5594
|
+
const utils_isRemoteUrl = (entry)=>/^([a-z][a-z0-9+.-]*:)?\/\//i.test(entry);
|
|
5595
|
+
function resolveScriptEntryPath(entry, manifestDir, projectPath) {
|
|
5596
|
+
if (!entry || utils_isRemoteUrl(entry)) return entry;
|
|
5597
|
+
if (entry.startsWith('/') && !__rspack_external_node_path_c5b9b54f.isAbsolute(entry)) return __rspack_external_node_path_c5b9b54f.join(projectPath, entry.slice(1));
|
|
5598
|
+
if (__rspack_external_node_path_c5b9b54f.isAbsolute(entry)) return entry;
|
|
5599
|
+
return __rspack_external_node_path_c5b9b54f.join(manifestDir, entry);
|
|
5600
|
+
}
|
|
5601
|
+
function getBackgroundWorkerEntryName(options) {
|
|
5602
|
+
const { manifest, browser, manifestDir } = options;
|
|
5603
|
+
if (3 !== Number(manifest.manifest_version)) return;
|
|
5604
|
+
if (isGeckoBasedBrowser(String(browser))) return;
|
|
5605
|
+
const background = manifest.background;
|
|
5606
|
+
if (!background) return;
|
|
5607
|
+
const projectPath = options.projectPath || manifestDir;
|
|
5608
|
+
const resolve = (entry)=>resolveScriptEntryPath(entry, manifestDir, projectPath);
|
|
5609
|
+
if (background.service_worker) {
|
|
5610
|
+
const workerEntries = getScriptEntries([
|
|
5611
|
+
resolve(String(background.service_worker))
|
|
5612
|
+
]);
|
|
5613
|
+
if (workerEntries.length > 0) return 'background/service_worker';
|
|
5614
|
+
}
|
|
5615
|
+
const scripts = Array.isArray(background.scripts) ? background.scripts : [];
|
|
5616
|
+
const scriptEntries = getScriptEntries(scripts.filter((script)=>'string' == typeof script).map(resolve));
|
|
5617
|
+
if (scriptEntries.length > 0) return "background/scripts";
|
|
5618
|
+
}
|
|
5619
|
+
function getScriptEntries(scriptPath) {
|
|
5620
|
+
const scriptEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
|
|
5621
|
+
scriptPath
|
|
5622
|
+
] : [];
|
|
5623
|
+
const fileAssets = scriptEntries.filter((scriptAsset)=>{
|
|
5624
|
+
const validFile = __rspack_external_node_fs_5ea92f0c.existsSync(scriptAsset);
|
|
5625
|
+
if (/\.d\.[cm]?ts$/i.test(scriptAsset)) return false;
|
|
5626
|
+
const assetExtension = __rspack_external_node_path_c5b9b54f.extname(scriptAsset);
|
|
5627
|
+
return validFile && ('.js' === assetExtension || '.cjs' === assetExtension || '.mjs' === assetExtension || '.jsx' === assetExtension || '.mjsx' === assetExtension || '.ts' === assetExtension || '.mts' === assetExtension || '.mtsx' === assetExtension || '.tsx' === assetExtension);
|
|
5628
|
+
});
|
|
5629
|
+
return fileAssets;
|
|
5630
|
+
}
|
|
5631
|
+
function getCssEntries(scriptPath) {
|
|
5632
|
+
const scriptEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
|
|
5633
|
+
scriptPath
|
|
5634
|
+
] : [];
|
|
5635
|
+
const fileAssets = scriptEntries.filter((scriptAsset)=>{
|
|
5636
|
+
const validFile = __rspack_external_node_fs_5ea92f0c.existsSync(scriptAsset);
|
|
5637
|
+
return validFile && (scriptAsset.endsWith('.css') || scriptAsset.endsWith('.scss') || scriptAsset.endsWith('.sass') || scriptAsset.endsWith('.less'));
|
|
5638
|
+
});
|
|
5639
|
+
return fileAssets;
|
|
5640
|
+
}
|
|
5594
5641
|
function createIssue(compiler, message, type = 'error') {
|
|
5595
5642
|
const ErrorCtor = compiler?.rspack?.WebpackError || Error;
|
|
5596
5643
|
const issue = new ErrorCtor(message);
|
|
@@ -6617,18 +6664,30 @@ class WebExtensionPlugin {
|
|
|
6617
6664
|
}
|
|
6618
6665
|
}
|
|
6619
6666
|
const webpack_target_webextension_fork = WebExtensionPlugin;
|
|
6620
|
-
function getBackgroundEntryName(manifest, browser) {
|
|
6667
|
+
function getBackgroundEntryName(manifest, browser, context) {
|
|
6621
6668
|
if (manifest.background) {
|
|
6622
6669
|
if (isGeckoBasedBrowser(String(browser))) return {
|
|
6623
6670
|
pageEntry: "background/script",
|
|
6624
6671
|
tryCatchWrapper: true,
|
|
6625
6672
|
eagerChunkLoading: false
|
|
6626
6673
|
};
|
|
6627
|
-
if (3 === manifest.manifest_version)
|
|
6628
|
-
serviceWorkerEntry
|
|
6629
|
-
|
|
6630
|
-
|
|
6631
|
-
|
|
6674
|
+
if (3 === manifest.manifest_version) {
|
|
6675
|
+
const serviceWorkerEntry = getBackgroundWorkerEntryName({
|
|
6676
|
+
manifest,
|
|
6677
|
+
browser,
|
|
6678
|
+
manifestDir: context.manifestDir,
|
|
6679
|
+
projectPath: context.projectPath
|
|
6680
|
+
});
|
|
6681
|
+
if (!serviceWorkerEntry) return {
|
|
6682
|
+
tryCatchWrapper: true,
|
|
6683
|
+
eagerChunkLoading: false
|
|
6684
|
+
};
|
|
6685
|
+
return {
|
|
6686
|
+
serviceWorkerEntry,
|
|
6687
|
+
tryCatchWrapper: true,
|
|
6688
|
+
eagerChunkLoading: false
|
|
6689
|
+
};
|
|
6690
|
+
}
|
|
6632
6691
|
if (2 === manifest.manifest_version) return {
|
|
6633
6692
|
pageEntry: "background/script",
|
|
6634
6693
|
tryCatchWrapper: true,
|
|
@@ -6692,7 +6751,10 @@ class SetupReloadStrategy {
|
|
|
6692
6751
|
browser: this.browser
|
|
6693
6752
|
}).apply(compiler);
|
|
6694
6753
|
new webpack_target_webextension_fork({
|
|
6695
|
-
background: getBackgroundEntryName(patchedManifest, this.browser
|
|
6754
|
+
background: getBackgroundEntryName(patchedManifest, this.browser, {
|
|
6755
|
+
manifestDir: __rspack_external_node_path_c5b9b54f.dirname(this.manifestPath),
|
|
6756
|
+
projectPath: compiler.options.context
|
|
6757
|
+
}),
|
|
6696
6758
|
hmrConfig: false,
|
|
6697
6759
|
weakRuntimeCheck: true,
|
|
6698
6760
|
contentScriptsMeta
|
|
@@ -6817,7 +6879,10 @@ class SetupChunkLoadingTarget {
|
|
|
6817
6879
|
}
|
|
6818
6880
|
new webpack_target_webextension_fork({
|
|
6819
6881
|
background: {
|
|
6820
|
-
...getBackgroundEntryName(patchedManifest, this.browser
|
|
6882
|
+
...getBackgroundEntryName(patchedManifest, this.browser, {
|
|
6883
|
+
manifestDir: __rspack_external_node_path_c5b9b54f.dirname(this.manifestPath),
|
|
6884
|
+
projectPath: compiler.options.context
|
|
6885
|
+
}),
|
|
6821
6886
|
classicLoader: false
|
|
6822
6887
|
},
|
|
6823
6888
|
hmrConfig: false,
|
|
@@ -12415,6 +12480,16 @@ function getMainWorldBridgeScripts(manifestPath, browser = 'chrome') {
|
|
|
12415
12480
|
} catch {}
|
|
12416
12481
|
return bridgeScripts;
|
|
12417
12482
|
}
|
|
12483
|
+
function resolveBundleCssProbeMarker(cssPath, hasAsset, assetNames) {
|
|
12484
|
+
if (hasAsset(cssPath)) return cssPath;
|
|
12485
|
+
const wanted = parseCanonicalContentScriptAsset(cssPath);
|
|
12486
|
+
if (!wanted || 'css' !== wanted.extension) return '';
|
|
12487
|
+
for (const name of assetNames()){
|
|
12488
|
+
const parsed = parseCanonicalContentScriptAsset(name);
|
|
12489
|
+
if (parsed && 'css' === parsed.extension && parsed.index === wanted.index) return name;
|
|
12490
|
+
}
|
|
12491
|
+
return '';
|
|
12492
|
+
}
|
|
12418
12493
|
class AddContentScriptWrapper {
|
|
12419
12494
|
static getBridgeScripts(manifestPath, browser = 'chrome') {
|
|
12420
12495
|
return getMainWorldBridgeScripts(manifestPath, browser);
|
|
@@ -12482,6 +12557,29 @@ class AddContentScriptWrapper {
|
|
|
12482
12557
|
}
|
|
12483
12558
|
]
|
|
12484
12559
|
});
|
|
12560
|
+
compiler.hooks.thisCompilation.tap("scripts:add-content-script-wrapper", (compilation)=>{
|
|
12561
|
+
compilation.hooks.processAssets.tap({
|
|
12562
|
+
name: "scripts:resolve-bundle-css-probe",
|
|
12563
|
+
stage: core_Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE
|
|
12564
|
+
}, ()=>{
|
|
12565
|
+
const assetNames = ()=>compilation.getAssets().map((asset)=>asset.name);
|
|
12566
|
+
for (const asset of compilation.getAssets()){
|
|
12567
|
+
if (!/\.(?:js|mjs)$/.test(asset.name)) continue;
|
|
12568
|
+
const text = asset.source.source().toString();
|
|
12569
|
+
if (!text.includes(CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX)) continue;
|
|
12570
|
+
const pattern = createContentScriptCssProbeMarkerPattern();
|
|
12571
|
+
const replaced = new core_sources.ReplaceSource(asset.source);
|
|
12572
|
+
let match = pattern.exec(text);
|
|
12573
|
+
let touched = false;
|
|
12574
|
+
while(match){
|
|
12575
|
+
replaced.replace(match.index, match.index + match[0].length - 1, resolveBundleCssProbeMarker(match[1], (name)=>Boolean(compilation.getAsset(name)), assetNames));
|
|
12576
|
+
touched = true;
|
|
12577
|
+
match = pattern.exec(text);
|
|
12578
|
+
}
|
|
12579
|
+
if (touched) compilation.updateAsset(asset.name, replaced);
|
|
12580
|
+
}
|
|
12581
|
+
});
|
|
12582
|
+
});
|
|
12485
12583
|
}
|
|
12486
12584
|
}
|
|
12487
12585
|
const basic = [
|
|
@@ -12539,29 +12637,6 @@ function add_public_path_runtime_module_PublicPathRuntimeModule(compiler) {
|
|
|
12539
12637
|
}
|
|
12540
12638
|
return new PublicPathRuntimeModule();
|
|
12541
12639
|
}
|
|
12542
|
-
function getScriptEntries(scriptPath) {
|
|
12543
|
-
const scriptEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
|
|
12544
|
-
scriptPath
|
|
12545
|
-
] : [];
|
|
12546
|
-
const fileAssets = scriptEntries.filter((scriptAsset)=>{
|
|
12547
|
-
const validFile = __rspack_external_node_fs_5ea92f0c.existsSync(scriptAsset);
|
|
12548
|
-
if (/\.d\.[cm]?ts$/i.test(scriptAsset)) return false;
|
|
12549
|
-
const assetExtension = __rspack_external_node_path_c5b9b54f.extname(scriptAsset);
|
|
12550
|
-
return validFile && ('.js' === assetExtension || '.cjs' === assetExtension || '.mjs' === assetExtension || '.jsx' === assetExtension || '.mjsx' === assetExtension || '.ts' === assetExtension || '.mts' === assetExtension || '.mtsx' === assetExtension || '.tsx' === assetExtension);
|
|
12551
|
-
});
|
|
12552
|
-
return fileAssets;
|
|
12553
|
-
}
|
|
12554
|
-
function getCssEntries(scriptPath) {
|
|
12555
|
-
const scriptEntries = Array.isArray(scriptPath) ? scriptPath || [] : scriptPath ? [
|
|
12556
|
-
scriptPath
|
|
12557
|
-
] : [];
|
|
12558
|
-
const fileAssets = scriptEntries.filter((scriptAsset)=>{
|
|
12559
|
-
const validFile = __rspack_external_node_fs_5ea92f0c.existsSync(scriptAsset);
|
|
12560
|
-
return validFile && (scriptAsset.endsWith('.css') || scriptAsset.endsWith('.scss') || scriptAsset.endsWith('.sass') || scriptAsset.endsWith('.less'));
|
|
12561
|
-
});
|
|
12562
|
-
return fileAssets;
|
|
12563
|
-
}
|
|
12564
|
-
const add_scripts_isRemoteUrl = (entry)=>/^([a-z][a-z0-9+.-]*:)?\/\//i.test(entry);
|
|
12565
12640
|
const isContentScriptFeature = (feature)=>feature.startsWith("content_scripts/");
|
|
12566
12641
|
const isScriptsFolderFeature = (feature)=>feature.startsWith("scripts/");
|
|
12567
12642
|
const isBackgroundScriptsFeature = (feature)=>"background/scripts" === feature;
|
|
@@ -12601,7 +12676,7 @@ class AddScripts {
|
|
|
12601
12676
|
raw
|
|
12602
12677
|
] : [];
|
|
12603
12678
|
for (const entry of rawEntries){
|
|
12604
|
-
if (!entry || 'string' != typeof entry ||
|
|
12679
|
+
if (!entry || 'string' != typeof entry || utils_isRemoteUrl(entry)) continue;
|
|
12605
12680
|
let resolved = entry;
|
|
12606
12681
|
if (!__rspack_external_node_fs_5ea92f0c.existsSync(resolved)) resolved = __rspack_external_node_path_c5b9b54f.isAbsolute(entry) ? entry : entry.startsWith('/') ? __rspack_external_node_path_c5b9b54f.join(manifestDir, entry.slice(1)) : __rspack_external_node_path_c5b9b54f.join(manifestDir, entry);
|
|
12607
12682
|
if (__rspack_external_node_fs_5ea92f0c.existsSync(resolved)) continue;
|
|
@@ -12630,12 +12705,7 @@ class AddScripts {
|
|
|
12630
12705
|
} catch {
|
|
12631
12706
|
manifestJson = {};
|
|
12632
12707
|
}
|
|
12633
|
-
const resolveEntryPath = (entry)=>
|
|
12634
|
-
if (!entry || add_scripts_isRemoteUrl(entry)) return entry;
|
|
12635
|
-
if (entry.startsWith('/') && !__rspack_external_node_path_c5b9b54f.isAbsolute(entry)) return __rspack_external_node_path_c5b9b54f.join(projectPath, entry.slice(1));
|
|
12636
|
-
if (__rspack_external_node_path_c5b9b54f.isAbsolute(entry)) return entry;
|
|
12637
|
-
return __rspack_external_node_path_c5b9b54f.join(manifestDir, entry);
|
|
12638
|
-
};
|
|
12708
|
+
const resolveEntryPath = (entry)=>resolveScriptEntryPath(entry, manifestDir, projectPath);
|
|
12639
12709
|
const claimedByContentScript = new Set();
|
|
12640
12710
|
for (const [feature, scriptPath] of Object.entries(scriptFields)){
|
|
12641
12711
|
if (!isContentScriptFeature(feature)) continue;
|
package/dist/101.mjs
CHANGED
|
@@ -699,7 +699,7 @@ async function config_loader_isUsingExperimentalConfig(projectPath) {
|
|
|
699
699
|
}
|
|
700
700
|
return false;
|
|
701
701
|
}
|
|
702
|
-
var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.1.
|
|
702
|
+
var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.1.10","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"^2.1.1","@rspack/dev-server":"2.1.0","@rspack/plugin-preact-refresh":"2.0.1","@rspack/plugin-react-refresh":"2.0.2","@vue/compiler-sfc":"3.5.26","acorn":"^8.16.0","browser-extension-manifest-fields":"^2.3.0","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","dotenv":"^17.2.3","es-module-lexer":"^2.1.0","extension-from-store":"^0.2.5","fflate":"^0.8.3","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.6.7","less-loader":"13.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"8.5.23","postcss-loader":"8.2.1","postcss-preset-env":"11.1.1","postcss-scss":"4.0.9","preact":"10.27.3","prefers-yarn":"2.0.1","react-refresh":"0.18.0","sass-loader":"17.0.0","schema-utils":"^4.3.3","svelte-loader":"3.2.4","tiny-glob":"^0.2.9","vue":"3.5.26","vue-loader":"17.4.2","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.20.1"}}');
|
|
703
703
|
function asAbsolute(p) {
|
|
704
704
|
return __rspack_external_node_path_c5b9b54f.isAbsolute(p) ? p : __rspack_external_node_path_c5b9b54f.resolve(p);
|
|
705
705
|
}
|
package/dist/291.mjs
CHANGED
|
@@ -23,4 +23,11 @@ function parseCanonicalContentScriptAsset(assetName) {
|
|
|
23
23
|
function isCanonicalContentScriptAsset(assetName) {
|
|
24
24
|
return void 0 !== parseCanonicalContentScriptAsset(assetName);
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
const CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX = '__EXTENSIONJS_CSS_PROBE__';
|
|
27
|
+
function getContentScriptCssProbeMarker(entryName) {
|
|
28
|
+
return `${CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX}${entryName}.css__`;
|
|
29
|
+
}
|
|
30
|
+
function createContentScriptCssProbeMarkerPattern() {
|
|
31
|
+
return /__EXTENSIONJS_CSS_PROBE__([^"'`\s\\]+?\.css)__/g;
|
|
32
|
+
}
|
|
33
|
+
export { CANONICAL_CONTENT_SCRIPT_ENTRY_PREFIX, CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX, EXTENSIONJS_CONTENT_SCRIPT_LAYER, createContentScriptCssProbeMarkerPattern, getCanonicalContentScriptCssAssetName, getCanonicalContentScriptEntryName, getCanonicalContentScriptJsAssetName, getContentScriptCssProbeMarker, isCanonicalContentScriptAsset, parseCanonicalContentScriptAsset };
|
package/dist/839.mjs
CHANGED
|
@@ -1679,14 +1679,15 @@ async function extensionDev(pathOrRemoteUrl, devOptions) {
|
|
|
1679
1679
|
if (isUsingTypeScript(manifestDir)) await generateExtensionTypes(manifestDir, packageJsonDir);
|
|
1680
1680
|
const userManifestPath = projectStructure.packageJsonPath || projectStructure.denoJsonPath;
|
|
1681
1681
|
if (userManifestPath) assertNoManagedDependencyConflicts(userManifestPath, manifestDir);
|
|
1682
|
-
const
|
|
1682
|
+
const commandConfig = await loadCommandConfig(packageJsonDir, 'dev');
|
|
1683
|
+
const configBrowser = commandConfig.browser;
|
|
1684
|
+
const browser = normalizeBrowser(devOptions.browser || configBrowser || 'chrome', devOptions.chromiumBinary, devOptions.geckoBinary || devOptions.firefoxBinary, devOptions.safariBinary);
|
|
1683
1685
|
const geckoBinary = devOptions.geckoBinary || devOptions.firefoxBinary;
|
|
1684
1686
|
if (debug) {
|
|
1685
1687
|
console.log(debugDirs(manifestDir, packageJsonDir));
|
|
1686
1688
|
console.log(debugBrowser(browser, devOptions.chromiumBinary, geckoBinary));
|
|
1687
1689
|
}
|
|
1688
1690
|
const browserConfig = await loadBrowserConfig(packageJsonDir, browser);
|
|
1689
|
-
const commandConfig = await loadCommandConfig(packageJsonDir, 'dev');
|
|
1690
1691
|
const merged = withDarkMode({
|
|
1691
1692
|
...mergeOptionLayers(DEV_COMMAND_DEFAULTS, browserConfig, commandConfig, devOptions),
|
|
1692
1693
|
browser
|
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
██████████████████████████████████████████████████████████
|
|
24
24
|
██████████████████████████████████████████████████████████
|
|
25
25
|
MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js authors.
|
|
26
|
-
`,"background: transparent; color: #0971fe; "),!t){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(t.url||""),s=i.startsWith(`${a}://newtab`)||i.startsWith(`${a}://welcome`);0;s?await n():r(t,o)})}catch{}}let o=[],i=new Map,s=new Set;try{chrome.storage.session.get(["logger_capture_stacks"],e=>{e?.logger_capture_stacks}),chrome.storage.session.onChanged.addListener((e,t)=>{"session"===t&&"logger_capture_stacks"in e&&e.logger_capture_stacks?.newValue})}catch{}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function l(e){if(o.push(e),o.length>2e3&&o.shift(),"number"==typeof e.tabId){let t=i.get(e.tabId)||[];t.push(e),t.length>1e3&&t.shift(),i.set(e.tabId,t)}for(let t of s)try{let r={type:"append",event:e};t.postMessage(r)}catch{}}chrome.runtime.onConnect.addListener(e=>{if("logger"!==e.name)return;let t=t=>(function(e,t){var r;let n,a;if("subscribe"===t.type){s.add(e);try{e.postMessage({type:"init",events:o})}catch{}return}let i=e.sender?.id;if(i&&i===chrome.runtime.id)return;let l=e.sender?.tab?.id,c=e.sender?.frameId,u=e.sender?.tab?.incognito,m=e.sender?.tab?.windowId;if(r=i||`tab:${l??"unknown"}`,n=Date.now(),(a=h.get(r))?n-a.ts>1e3?(a.ts=n,a.count=1,!!0):(a.count+=1,!!(a.count>200)):(h.set(r,{ts:n,count:1}),!!0))return;let y
|
|
26
|
+
`,"background: transparent; color: #0971fe; "),!t){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(t.url||""),s=i.startsWith(`${a}://newtab`)||i.startsWith(`${a}://welcome`);0;s?await n():r(t,o)})}catch{}}let o=[],i=new Map,s=new Set;try{chrome.storage.session.get(["logger_capture_stacks"],e=>{e?.logger_capture_stacks}),chrome.storage.session.onChanged.addListener((e,t)=>{"session"===t&&"logger_capture_stacks"in e&&e.logger_capture_stacks?.newValue})}catch{}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function l(e){if(o.push(e),o.length>2e3&&o.shift(),"number"==typeof e.tabId){let t=i.get(e.tabId)||[];t.push(e),t.length>1e3&&t.shift(),i.set(e.tabId,t)}for(let t of s)try{let r={type:"append",event:e};t.postMessage(r)}catch{}}chrome.runtime.onConnect.addListener(e=>{if("logger"!==e.name)return;let t=t=>(function(e,t){var r;let n,a;if("subscribe"===t.type){s.add(e);try{e.postMessage({type:"init",events:o})}catch{}return}let i=e.sender?.id;if(i&&i===chrome.runtime.id)return;let l=e.sender?.tab?.id,c=e.sender?.frameId,u=e.sender?.tab?.incognito,m=e.sender?.tab?.windowId;if(r=i||`tab:${l??"unknown"}`,n=Date.now(),(a=h.get(r))?n-a.ts>1e3?(a.ts=n,a.count=1,!!0):(a.count+=1,!!(a.count>200)):(h.set(r,{ts:n,count:1}),!!0))return;let p=y(t.messageParts),v={id:d(),timestamp:Date.now(),level:t.level,context:t.context,messageParts:p,eventType:"dx.signal"===t.eventType||"log"===t.eventType?t.eventType:"log",code:"string"==typeof t.code?f(t.code,128):void 0,status:"ok"===t.status||"warn"===t.status||"fail"===t.status?t.status:void 0,data:b(t.data),remediation:"string"==typeof t.remediation?f(t.remediation,512):void 0,url:t.url,stack:t.stack,errorName:t.errorName,tabId:l,frameId:c,sourceExtensionId:i,incognito:u,windowId:m};g(v)})(e,t);e.onMessage.addListener(t),e.onDisconnect.addListener(()=>{s.delete(e);try{e.onMessage.removeListener(t)}catch{}})}),chrome.action.onClicked.addListener(async()=>{try{await chrome.sidePanel.setPanelBehavior({openPanelOnActionClick:!0})}catch{}});let c=[],u=new Set;function m(e){try{return JSON.stringify(e)}catch{return String(e)}}function g(e){let t=`${e.eventType??"log"}|${e.code??""}|${e.status??""}|${e.level}|${e.context}|${e.tabId??""}|${e.frameId??""}|${e.url??""}|${m(e.messageParts)}|${m(e.data)}`.slice(0,512);if(!u.has(t)){if(u.add(t),c.push(t),c.length>2e3){let e=c.shift();e&&u.delete(e)}if(e.url&&!e.hostname)try{let t=new URL(e.url);e.hostname=`${t.hostname}${t.pathname}`}catch{}if(null!=e.tabId&&null==e.title)try{chrome.tabs.get(e.tabId,t=>{if(chrome.runtime.lastError)return l(e);e.title=t?.title||e.title,l(e)});return}catch{}l(e)}}let h=new Map;function f(e,t=2048){return e.length<=t?e:e.slice(0,t)+"..."}function p(e){try{return JSON.stringify(e)}catch{try{return String(e)}catch{return"[unserializable]"}}}function y(e){try{let t=[];for(let r of e??[])if("string"==typeof r?t.push(f(r)):r instanceof Error?t.push(f(`${r.name}: ${r.message}`)):t.push(f(p(r))),t.join(" ").length>8192)break;return t}catch{return[p(e)]}}function b(e){if(e&&"object"==typeof e)try{let t=JSON.stringify(e);if(!t)return;let r=JSON.parse(t);if(0===Object.keys(r).length)return;return r}catch{return}}function v(e,t,r={}){g({id:d(),timestamp:Date.now(),level:e,context:"background",messageParts:t,url:"string"==typeof r.url?r.url:void 0,tabId:"number"==typeof r.tabId?r.tabId:void 0,frameId:"number"==typeof r.frameId?r.frameId:void 0})}function x(e){let t=String(e.name||"").toLowerCase();return t.includes("extension.js built-in developer tools")||t.includes("extension.js theme")}async function w(){let e=(await new Promise(e=>{chrome.management.getAll(e)})||[]).filter(e=>e.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==e.id&&"development"===e.installType&&"theme"!==e.type&&!x(e));if(0===e.length)return{ok:!0,extensionEnabled:null};let t=e.find(e=>e.enabled)||e[e.length-1];return{ok:!0,extensionEnabled:!!t?.enabled,extensionName:t?.name,extensionId:t?.id}}async function I(e){if(e.startsWith("data:"))return e;let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch icon: ${t.status}`);let r=await t.blob();return await new Promise((e,t)=>{let n=new FileReader;n.onload=()=>e(String(n.result||"")),n.onerror=()=>t(Error("Failed to read icon blob")),n.readAsDataURL(r)})}function k(e){return!!e&&e.id!==chrome.runtime.id&&"development"===e.installType&&"theme"!==e.type&&!x(e)}chrome.runtime.onInstalled.addListener(e=>{v("info",["extension installed",e.reason,e.previousVersion??null])}),chrome.storage.session.get(["logger_events"],e=>{let t=Array.isArray(e?.logger_events)?e.logger_events:[];if(t.length)for(let e of t.slice(-2e3))o.push(e)}),setInterval(()=>{chrome.storage.session.set({logger_events:o.slice(-200)})},2e3),chrome.runtime.onStartup.addListener(()=>{v("info",["extension startup"]);try{v("info",["TEST_LOG: background-start"])}catch{}}),chrome.tabs.onCreated.addListener(e=>{v("info",["tab created"],{tabId:e.id??void 0,url:e.url})}),chrome.tabs.onUpdated.addListener((e,t,r)=>{"loading"===t.status&&v("debug",["tab loading"],{tabId:e,url:r.url}),"complete"===t.status&&v("debug",["tab complete"],{tabId:e,url:r.url}),"string"==typeof t.url&&v("info",["tab url changed",t.url],{tabId:e,url:t.url})}),chrome.tabs.onRemoved.addListener((e,t)=>{v("info",["tab removed",{windowId:t.windowId,isWindowClosing:t.isWindowClosing}],{tabId:e})}),chrome.webNavigation.onBeforeNavigate.addListener(e=>{0===e.frameId&&v("info",["Before navigate"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onCommitted.addListener(e=>{0===e.frameId&&v("info",["Navigation committed"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onCompleted.addListener(e=>{0===e.frameId&&v("info",["Navigation completed"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onErrorOccurred.addListener(e=>{0===e.frameId&&v("error",["Navigation error",e.error],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&v("info",["History state updated"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.runtime.onMessage.addListener((e,t,r)=>e&&"get-events"===e.type?(r({events:o.slice(-500)}),!0):!!e&&"clear-events"===e.type&&(o.length=0,r({ok:!0}),!0)),chrome.runtime.onMessage.addListener((e,t,r)=>{if((!t?.id||t.id===chrome.runtime.id)&&e){if("resolve-icon-url"===e.type)return e.url&&function(e){if(e.startsWith("data:"))return!0;try{let t=new URL(e);return"moz-extension:"===t.protocol||"chrome-extension:"===t.protocol}catch{return!1}}(e.url)?(I(e.url).then(e=>r({ok:!0,dataUrl:e})).catch(e=>r({ok:!1,error:String(e)})),!0):void r({ok:!1,error:"Unsupported icon URL"});if("get-dx-status"===e.type)return w().then(e=>r(e)).catch(e=>r({ok:!1,error:String(e||"Unknown error")})),!0;if("open-options-page"===e.type){try{chrome.runtime.openOptionsPage(()=>{chrome.runtime.lastError?r({ok:!1,error:String(chrome.runtime.lastError.message||"Unknown error")}):r({ok:!0})})}catch(e){r({ok:!1,error:String(e||"Unknown error")})}return!0}if("dx-signal"===e.type){try{var n={level:e.level||"info",context:e.context||"content",messageParts:Array.isArray(e.messageParts)&&e.messageParts.length>0?e.messageParts:[e.code||"DX_SIGNAL"],eventType:e.eventType||"dx.signal",code:e.code,status:e.status,data:e.data,remediation:e.remediation,url:"string"==typeof e.url?e.url:void 0,stack:"string"==typeof e.stack?e.stack:void 0,errorName:"string"==typeof e.errorName?e.errorName:void 0};g({id:d(),timestamp:Date.now(),level:n.level,context:n.context,messageParts:y(n.messageParts||[]),eventType:"dx.signal"===n.eventType||"log"===n.eventType?n.eventType:"log",code:"string"==typeof n.code?f(String(n.code),128):void 0,status:"ok"===n.status||"warn"===n.status||"fail"===n.status?n.status:void 0,data:b(n.data),remediation:"string"==typeof n.remediation?f(n.remediation,512):void 0,url:n.url,stack:n.stack,errorName:n.errorName,tabId:n.tabId,frameId:n.frameId}),r({ok:!0})}catch(e){r({ok:!1,error:String(e||"Unknown error")})}return!0}}}),chrome.runtime.onStartup.addListener(async()=>{await a()}),chrome.runtime.onInstalled.addListener(async()=>{await a()});let L="";function S(e,t,r){try{chrome.tabs.query({},n=>{for(let a of n||[])if("number"==typeof a.id)try{chrome.tabs.sendMessage(a.id,{type:"extjs-dev-reload",state:e,label:t||"",kind:r||""}).catch(()=>{})}catch{}})}catch{}}"function"==typeof chrome.runtime?.onMessageExternal?.addListener&&chrome.runtime.onMessageExternal.addListener((e,t,r)=>{if(!e||"extjs-dev-reload-state"!==e.type)return;let n=t?.id;if(!n)return;let a="reloaded"===e.phase?"reloaded":"reloading",o="string"==typeof e.label?e.label:"",i="string"==typeof e.kind?e.kind:"";chrome.management.get(n,e=>{chrome.runtime.lastError||k(e)&&(L="reloading"===a?o:"",S(a,o,i))}),r({ok:!0})}),"function"==typeof chrome.management?.onDisabled?.addListener&&chrome.management.onDisabled.addListener(e=>{k(e)&&S("reloading",L)}),"function"==typeof chrome.management?.onEnabled?.addListener&&chrome.management.onEnabled.addListener(e=>{k(e)&&(S("reloaded",L),L="")}),"function"==typeof chrome.management?.onInstalled?.addListener&&chrome.management.onInstalled.addListener(e=>{k(e)&&(S("reloaded",L),L="")})})();
|