extension-develop 4.1.26 → 4.1.28
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/832~0.mjs +7 -2
- package/dist/840~0.mjs +13 -2
- package/dist/852~0.mjs +13 -2
- package/dist/dev-server/compiler-hooks.d.ts +1 -1
- package/dist/dev-server/messages.d.ts +1 -0
- package/dist/lib/messaging.d.ts +1 -0
- package/dist/plugin-reload/classify-reload.d.ts +1 -0
- package/dist/rspack-config~0.mjs +15 -3
- package/package.json +3 -3
package/dist/832~0.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import * as __rspack_external_node_fs_1b05aee1 from "node:fs";
|
|
|
18
18
|
import * as __rspack_external_node_os_4f3c9d58 from "node:os";
|
|
19
19
|
import * as __rspack_external_node_path_806ed179 from "node:path";
|
|
20
20
|
import * as __rspack_external_node_vm_ef240610 from "node:vm";
|
|
21
|
-
var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.1.
|
|
21
|
+
var package_namespaceObject = /*#__PURE__*/ JSON.parse('{"rE":"4.1.28","El":{"@prefresh/core":"1.5.9","@prefresh/utils":"1.2.1","@rspack/core":"2.2.3","@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":"^3.0.2","case-sensitive-paths-webpack-plugin":"^2.4.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^18.0.0","es-module-lexer":"^3.0.2","extension-from-store":"^0.2.5","fflate":"^0.8.3","go-git-it":"^5.1.5","ignore":"^7.0.5","less":"4.9.1","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"}}');
|
|
22
22
|
const preloadedEnvKeys = new Set();
|
|
23
23
|
function getPreloadedEnvKeys() {
|
|
24
24
|
return preloadedEnvKeys;
|
|
@@ -1592,6 +1592,11 @@ function devServerStartTimeout(ms) {
|
|
|
1592
1592
|
`If nothing else prints, set ${pintor.blue('EXTENSION_VERBOSE=1')} to see more logs.`
|
|
1593
1593
|
].join('\n');
|
|
1594
1594
|
}
|
|
1595
|
+
function manifestGoneDuringSession(manifestPath, projectDirGone) {
|
|
1596
|
+
const what = projectDirGone ? 'The project directory disappeared during the session.' : 'The manifest.json file disappeared during the session.';
|
|
1597
|
+
const where = projectDirGone ? __rspack_external_node_path_806ed179.dirname(manifestPath) : manifestPath;
|
|
1598
|
+
return `${getLoggingPrefix('error')} ${what}\n${pintor.gray('NOT FOUND')} ${pintor.underline(collapseHomeDir(where))}\nThe last good build stays loaded. Restore it to keep working, or stop and run ${pintor.blue('extension dev')} again with the right path.`;
|
|
1599
|
+
}
|
|
1595
1600
|
function bundlerFatalError(error) {
|
|
1596
1601
|
const text = error instanceof Error ? error.stack || error.message : String(error);
|
|
1597
1602
|
return `${getLoggingPrefix('error')} The build failed to start.\n${pintor.red(text)}`;
|
|
@@ -1885,4 +1890,4 @@ async function extensionPreview(pathOrRemoteUrl, previewOptions, browserLauncher
|
|
|
1885
1890
|
metadata.writeShutdown(`the ${metadataCommand} session ended`);
|
|
1886
1891
|
});
|
|
1887
1892
|
}
|
|
1888
|
-
export { BUILD_COMMAND_DEFAULTS, DEV_COMMAND_DEFAULTS, PlaywrightPlugin, START_BUILD_DEFAULTS, assertNoManagedDependencyConflicts, autoExitForceKill, autoExitModeEnabled, autoExitTriggered, browserRunnerDisabled, bundlerFatalError, bundlerRecompiling, computeExtensionsToLoad, createPlaywrightMetadataWriter, devServerRestarting, devServerStartTimeout, emulatorViewerUrl, extensionJsRunnerError, extensionPreview, getPreloadedEnvKeys, getSessionRunId, getSpecialFoldersDataForCompiler, getSpecialFoldersDataForProjectRoot, loadBrowserConfig, loadCommandConfig, loadCustomConfig, loadProjectConfigDefaults, mergeOptionLayers, messages_ready, noEntrypointsDetected, package_namespaceObject, portInUse, publicFolderShadowed, publicMustBeAtProjectRoot, resolveCompanionExtensionDirs, resolveCompanionExtensionsConfig, runnerCleanupError, runnerUncaughtException, runnerUnhandledRejection, sanitize, serverRestartRequiredFromSpecialFolderMessageOnly, shouldWarnPortConflict, spacerLine, specialFolderChangeDetected, specialFoldersSetupSummary, stampReadyDistExtensionId, stampReadyKnownExtensionId, withDarkMode };
|
|
1893
|
+
export { BUILD_COMMAND_DEFAULTS, DEV_COMMAND_DEFAULTS, PlaywrightPlugin, START_BUILD_DEFAULTS, assertNoManagedDependencyConflicts, autoExitForceKill, autoExitModeEnabled, autoExitTriggered, browserRunnerDisabled, bundlerFatalError, bundlerRecompiling, computeExtensionsToLoad, createPlaywrightMetadataWriter, devServerRestarting, devServerStartTimeout, emulatorViewerUrl, extensionJsRunnerError, extensionPreview, getPreloadedEnvKeys, getSessionRunId, getSpecialFoldersDataForCompiler, getSpecialFoldersDataForProjectRoot, loadBrowserConfig, loadCommandConfig, loadCustomConfig, loadProjectConfigDefaults, manifestGoneDuringSession, mergeOptionLayers, messages_ready, noEntrypointsDetected, package_namespaceObject, portInUse, publicFolderShadowed, publicMustBeAtProjectRoot, resolveCompanionExtensionDirs, resolveCompanionExtensionsConfig, runnerCleanupError, runnerUncaughtException, runnerUnhandledRejection, sanitize, serverRestartRequiredFromSpecialFolderMessageOnly, shouldWarnPortConflict, spacerLine, specialFolderChangeDetected, specialFoldersSetupSummary, stampReadyDistExtensionId, stampReadyKnownExtensionId, withDarkMode };
|
package/dist/840~0.mjs
CHANGED
|
@@ -2722,6 +2722,17 @@ function formatReloadContextLabel(context, files) {
|
|
|
2722
2722
|
const extra = files.length > 2 ? ` +${files.length - 2} more` : '';
|
|
2723
2723
|
return `${context} (${shown}${extra})`;
|
|
2724
2724
|
}
|
|
2725
|
+
function backgroundContextFromOutput(outputPath) {
|
|
2726
|
+
if (!outputPath) return 'service_worker';
|
|
2727
|
+
try {
|
|
2728
|
+
const manifest = JSON.parse(stripBom(__rspack_external_node_fs_1b05aee1.readFileSync(__rspack_external_node_path_806ed179.join(outputPath, 'manifest.json'), 'utf8')));
|
|
2729
|
+
const background = manifest?.background;
|
|
2730
|
+
if (background?.service_worker) return 'service_worker';
|
|
2731
|
+
if (Array.isArray(background?.scripts)) return "background_script";
|
|
2732
|
+
if (background?.page) return 'background_page';
|
|
2733
|
+
} catch {}
|
|
2734
|
+
return 'service_worker';
|
|
2735
|
+
}
|
|
2725
2736
|
function pageContextFromSources(changedSources) {
|
|
2726
2737
|
const rules = [
|
|
2727
2738
|
[
|
|
@@ -2917,7 +2928,7 @@ function classifyReloadFromSources(opts) {
|
|
|
2917
2928
|
].sort()
|
|
2918
2929
|
} : {},
|
|
2919
2930
|
changedAssets: changedSources,
|
|
2920
|
-
label: formatReloadContextLabel(contentEntries.size > 0 ?
|
|
2931
|
+
label: formatReloadContextLabel(contentEntries.size > 0 ? `${backgroundContextFromOutput(outputPath)} + content_script` : backgroundContextFromOutput(outputPath), swChanged)
|
|
2921
2932
|
});
|
|
2922
2933
|
if (staticAssetChanged) return withScripts({
|
|
2923
2934
|
type: 'full',
|
|
@@ -2941,7 +2952,7 @@ function classifyReloadFromSources(opts) {
|
|
|
2941
2952
|
if (unknown.some(isServiceWorkerSource)) return withScripts({
|
|
2942
2953
|
type: 'service-worker',
|
|
2943
2954
|
changedAssets: changedSources,
|
|
2944
|
-
label: formatReloadContextLabel(
|
|
2955
|
+
label: formatReloadContextLabel(backgroundContextFromOutput(outputPath), changedSources)
|
|
2945
2956
|
});
|
|
2946
2957
|
const contentScriptCount = getContentScriptCount();
|
|
2947
2958
|
if (contentScriptCount > 0) {
|
package/dist/852~0.mjs
CHANGED
|
@@ -79,9 +79,20 @@ function card(input = {}) {
|
|
|
79
79
|
...body
|
|
80
80
|
].join('\n');
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
const BRAND_SPELLINGS = {
|
|
83
|
+
librewolf: 'LibreWolf',
|
|
84
|
+
chromium: 'Chromium',
|
|
85
|
+
'chromium-based': 'Chromium-based',
|
|
86
|
+
'gecko-based': 'Gecko-based',
|
|
87
|
+
'firefox-based': 'Firefox-based',
|
|
88
|
+
'webkit-based': 'WebKit-based'
|
|
89
|
+
};
|
|
90
|
+
function browserDisplayName(browser) {
|
|
83
91
|
const name = String(browser || '').trim() || 'unknown';
|
|
84
|
-
|
|
92
|
+
return BRAND_SPELLINGS[name] || name.charAt(0).toUpperCase() + name.slice(1);
|
|
93
|
+
}
|
|
94
|
+
function browserRowValue(browser, versionLine) {
|
|
95
|
+
const display = browserDisplayName(browser);
|
|
85
96
|
const line = String(versionLine || '').trim();
|
|
86
97
|
if (!line) return display;
|
|
87
98
|
if (!/[a-zA-Z]/.test(line)) return `${display} ${line}`;
|
|
@@ -7,4 +7,4 @@ export declare function setupNoBrowserBannerOnFirstDone(opts: {
|
|
|
7
7
|
readyPath: string;
|
|
8
8
|
distPath?: string;
|
|
9
9
|
}): void;
|
|
10
|
-
export declare function setupCompilerDoneDiagnostics(compiler: Compiler, port?: number): void;
|
|
10
|
+
export declare function setupCompilerDoneDiagnostics(compiler: Compiler, port?: number, manifestPath?: string): void;
|
|
@@ -13,6 +13,7 @@ export declare function autoExitModeEnabled(ms: number): string;
|
|
|
13
13
|
export declare function autoExitTriggered(ms: number): string;
|
|
14
14
|
export declare function autoExitForceKill(ms: number): string;
|
|
15
15
|
export declare function devServerStartTimeout(ms: number): string;
|
|
16
|
+
export declare function manifestGoneDuringSession(manifestPath: string, projectDirGone: boolean): string;
|
|
16
17
|
export declare function bundlerFatalError(error: unknown): string;
|
|
17
18
|
export declare function devServerRestarting(request: {
|
|
18
19
|
reason: string;
|
package/dist/lib/messaging.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export interface CardInput {
|
|
|
26
26
|
}
|
|
27
27
|
export declare const MAX_CARD_ROWS = 3;
|
|
28
28
|
export declare function card(input?: CardInput): string;
|
|
29
|
+
export declare function browserDisplayName(browser: string): string;
|
|
29
30
|
export declare function browserRowValue(browser: string, versionLine?: string): string;
|
|
30
31
|
export declare function isCardKeyClaimed(key: string): boolean;
|
|
31
32
|
export declare function claimCardKey(key: string): boolean;
|
|
@@ -8,6 +8,7 @@ export interface ReloadInstruction {
|
|
|
8
8
|
}
|
|
9
9
|
/** "context (fileA, fileB +2 more)", the one label every reload surface shows. */
|
|
10
10
|
export declare function formatReloadContextLabel(context: string, files: string[]): string;
|
|
11
|
+
export declare function backgroundContextFromOutput(outputPath?: string): string;
|
|
11
12
|
export declare function pageContextFromSources(changedSources: string[]): string;
|
|
12
13
|
export interface SourceFeatureIndex {
|
|
13
14
|
swSources: Set<string>;
|
package/dist/rspack-config~0.mjs
CHANGED
|
@@ -15,7 +15,7 @@ import { utils_isUrl, getBaseNode, parseHtml, manifestJsonOutputTarget, getExtna
|
|
|
15
15
|
import { prefix as messaging_prefix, isDebug } from "./852~0.mjs";
|
|
16
16
|
import { GECKO_FAMILY_ALIASES, isEmulatorBrowser, isGeckoBasedBrowser, findNearestProjectManifestSync, readProjectDependencies, isChromiumBasedBrowser, CHROMIUM_FAMILY_ALIASES, stripBom, PROJECT_MANIFEST_FILENAMES, parseJsonSafe, isWebkitBasedBrowser } from "./474~0.mjs";
|
|
17
17
|
import { maybeUsePreact, isUsingTypeScript, jsFrameworksIntegrationsEnabled, maybeUseReact, isUsingVue, classifyEntrySurface, ensureTypeScriptConfig, resolveDevelopInstallRoot, loadLoaderOptions, getUserTypeScriptConfigFile, svelteCompilerRuntimeMismatch, isUsingIntegration as messages_isUsingIntegration, maybeUseVue, maybeUseSolid, jsFrameworksHmrSummary, humanLine, ensureOptionalContractPackageResolved, jsFrameworksConfigsDetected, recordZipArtifact, hasDependency, resolveDevelopDistFile, isUsingJsxFramework, getJsxImportSource, swcParserForFile, isUsingReact, defaultSplitChunks } from "./840~0.mjs";
|
|
18
|
-
import { bundlerFatalError, bundlerRecompiling, browserRunnerDisabled, PlaywrightPlugin, publicFolderShadowed, resolveCompanionExtensionDirs, specialFoldersSetupSummary, noEntrypointsDetected, serverRestartRequiredFromSpecialFolderMessageOnly, specialFolderChangeDetected, spacerLine, messages_ready, getPreloadedEnvKeys, publicMustBeAtProjectRoot, computeExtensionsToLoad, getSpecialFoldersDataForCompiler } from "./832~0.mjs";
|
|
18
|
+
import { manifestGoneDuringSession, bundlerFatalError, bundlerRecompiling, browserRunnerDisabled, PlaywrightPlugin, publicFolderShadowed, resolveCompanionExtensionDirs, specialFoldersSetupSummary, noEntrypointsDetected, serverRestartRequiredFromSpecialFolderMessageOnly, specialFolderChangeDetected, spacerLine, messages_ready, getPreloadedEnvKeys, publicMustBeAtProjectRoot, computeExtensionsToLoad, getSpecialFoldersDataForCompiler } from "./832~0.mjs";
|
|
19
19
|
import { renderStatsBlocks, makeSanitizedConsole } from "./stats-handler~0.mjs";
|
|
20
20
|
import { EXTENSIONJS_CONTENT_SCRIPT_LAYER, getCanonicalContentScriptEntryName, parseCanonicalContentScriptAsset, CONTENT_SCRIPT_CSS_PROBE_MARKER_PREFIX, createContentScriptCssProbeMarkerPattern, getCanonicalContentScriptJsAssetName, getCanonicalContentScriptCssAssetName, isCanonicalContentScriptAsset } from "./640~0.mjs";
|
|
21
21
|
import { getURLDependencyMissing, findDroppedVendorKeys, isStaticThemeSource, workerStartedFromPageContext, importScriptsDependencyMissing, filterKeysForThisBrowser, findPrefixedManifestVersionKeys, injectedCompiledSourceLiteral, staticImportDependencyMissing, entrySplitAcrossInitialFiles, fetchedFileDependencyMissing, isStaticTheme, compiledSourceSpelling, injectedFileDependencyMissing, isValidManifestVersion, runtimeSetSurfaceDependencyMissing } from "./672~0.mjs";
|
|
@@ -218,9 +218,21 @@ function setupNoBrowserBannerOnFirstDone(opts) {
|
|
|
218
218
|
humanLine(messages_ready('development', opts.browser));
|
|
219
219
|
});
|
|
220
220
|
}
|
|
221
|
-
function setupCompilerDoneDiagnostics(compiler, port) {
|
|
221
|
+
function setupCompilerDoneDiagnostics(compiler, port, manifestPath) {
|
|
222
222
|
let reportedNoEntries = false;
|
|
223
|
+
let manifestSeen = false;
|
|
224
|
+
let reportedManifestGone = false;
|
|
223
225
|
compiler.hooks.done.tap('extension.js:done', (stats)=>{
|
|
226
|
+
const manifestExists = Boolean(manifestPath && __rspack_external_node_fs_1b05aee1.existsSync(manifestPath));
|
|
227
|
+
if (manifestExists) manifestSeen = true;
|
|
228
|
+
if (manifestPath && manifestSeen && !manifestExists) {
|
|
229
|
+
if (!reportedManifestGone) {
|
|
230
|
+
reportedManifestGone = true;
|
|
231
|
+
console.error(manifestGoneDuringSession(manifestPath, !__rspack_external_node_fs_1b05aee1.existsSync(__rspack_external_node_path_806ed179.dirname(manifestPath))));
|
|
232
|
+
}
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
reportedManifestGone = false;
|
|
224
236
|
try {
|
|
225
237
|
if (stats?.hasErrors?.()) {
|
|
226
238
|
const str = renderStatsBlocks(stats, {
|
|
@@ -1965,7 +1977,7 @@ class CompilationPlugin {
|
|
|
1965
1977
|
manifestPath: this.manifestPath,
|
|
1966
1978
|
browser: this.browser || 'chrome'
|
|
1967
1979
|
}).apply(compiler);
|
|
1968
|
-
if ('build' !== this.command && 'start' !== this.command) setupCompilerDoneDiagnostics(compiler, this.port);
|
|
1980
|
+
if ('build' !== this.command && 'start' !== this.command) setupCompilerDoneDiagnostics(compiler, this.port, this.manifestPath);
|
|
1969
1981
|
}
|
|
1970
1982
|
}
|
|
1971
1983
|
let userMessageDelivered = false;
|
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"runtime"
|
|
44
44
|
],
|
|
45
45
|
"name": "extension-develop",
|
|
46
|
-
"version": "4.1.
|
|
46
|
+
"version": "4.1.28",
|
|
47
47
|
"description": "Develop, build, preview, and package Extension.js projects.",
|
|
48
48
|
"author": {
|
|
49
49
|
"name": "Cezar Augusto",
|
|
@@ -100,11 +100,11 @@
|
|
|
100
100
|
"@rspack/plugin-react-refresh": "2.0.2",
|
|
101
101
|
"@vue/compiler-sfc": "3.5.26",
|
|
102
102
|
"acorn": "^8.16.0",
|
|
103
|
-
"browser-extension-manifest-fields": "^3.0.
|
|
103
|
+
"browser-extension-manifest-fields": "^3.0.2",
|
|
104
104
|
"case-sensitive-paths-webpack-plugin": "^2.4.0",
|
|
105
105
|
"content-security-policy-parser": "^0.6.0",
|
|
106
106
|
"cross-spawn": "^7.0.6",
|
|
107
|
-
"dotenv": "^
|
|
107
|
+
"dotenv": "^18.0.0",
|
|
108
108
|
"es-module-lexer": "^3.0.2",
|
|
109
109
|
"extension-from-store": "^0.2.5",
|
|
110
110
|
"fflate": "^0.8.3",
|