extension-develop 4.0.26 → 4.0.27
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/README.md +5 -1
- package/dist/0~dev-server.mjs +5 -5
- package/dist/0~rspack-config.mjs +298 -139
- package/dist/101.mjs +1099 -972
- package/dist/494.mjs +12 -1
- package/dist/839.mjs +105 -25
- package/dist/command-preview.d.ts +7 -0
- package/dist/dev-server/control-bridge/producer-runtime.d.ts +2 -1
- package/dist/feature-scripts-content-script-wrapper.js +2 -1
- package/dist/feature-scripts-content-script-wrapper.mjs +2 -1
- package/dist/lib/atomic-dist.d.ts +5 -0
- package/dist/lib/config-loader.d.ts +12 -12
- package/dist/lib/constants.d.ts +2 -0
- package/dist/lib/merge-options.d.ts +67 -0
- package/dist/lib/paths.d.ts +1 -1
- package/dist/lib/session-paths.d.ts +1 -0
- package/dist/plugin-compilation/boring.d.ts +1 -0
- package/dist/plugin-compilation/zip.d.ts +2 -0
- package/dist/plugin-playwright/index.d.ts +2 -0
- package/dist/plugin-web-extension/feature-html/html-lib/utils.d.ts +2 -1
- package/dist/plugin-web-extension/feature-json/messages.d.ts +2 -0
- package/dist/plugin-web-extension/feature-manifest/messages.d.ts +1 -0
- package/dist/plugin-web-extension/feature-web-resources/collect-entry-imports.d.ts +1 -0
- package/dist/types.d.ts +24 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -175,7 +175,11 @@ Options accepted by each command. Values shown are typical types or enumerations
|
|
|
175
175
|
- browser.chrome | .firefox | .edge | .chromium-based | .gecko-based: start flags, excluded flags, preferences, binaries, profile reuse (persistProfile), and per-browser `extensions`.
|
|
176
176
|
- extensions: load-only companion extensions (unpacked dirs) loaded alongside your extension in dev/preview/start.
|
|
177
177
|
- Example: { dir: "./extensions" } loads every "./extensions/\*" folder that contains a manifest.json.
|
|
178
|
-
- Precedence when composing options: browser._ → commands._ → CLI flags.
|
|
178
|
+
- Precedence when composing options (one contract for every command): stock defaults → browser._ → commands._ → CLI flags.
|
|
179
|
+
- Scalars: an unset flag never clobbers config, and an explicit flag (including `false`) always wins.
|
|
180
|
+
- Example: `commands.dev.polyfill: false` turns the polyfill off for the team, and `--polyfill` turns it back on for one run.
|
|
181
|
+
- Lists (`browserFlags`, `excludeBrowserFlags`): concatenate across layers in order (browser, then command, then CLI) and dedupe.
|
|
182
|
+
- Objects (`preferences`): deep-merge, later layers win on key conflict.
|
|
179
183
|
- Browser key aliases when resolving `browser.*` from `extension.config.*`:
|
|
180
184
|
- When the runtime asks for `chromium`, `loadBrowserConfig` prefers `browser.chromium` and then falls back to `browser['chromium-based']`.
|
|
181
185
|
- When the runtime asks for `chromium-based`, it prefers `browser['chromium-based']` and then `browser.chromium`.
|
package/dist/0~dev-server.mjs
CHANGED
|
@@ -7,11 +7,11 @@ import { RspackDevServer } from "@rspack/dev-server";
|
|
|
7
7
|
import { merge } from "webpack-merge";
|
|
8
8
|
import { WebSocket, WebSocketServer } from "ws";
|
|
9
9
|
import { classifyReloadFromSources, attachLifecycleStream, readContentScriptCount, humanLine, buildSourceFeatureIndex, createChangedSourcesTracker, createLifecycleStream, dispatchReload } from "./839.mjs";
|
|
10
|
-
import { autoExitForceKill, loadCommandConfig, sanitize, extensionJsRunnerError, portInUse, devServerStartTimeout, autoExitTriggered, asAbsolute, shouldWarnPortConflict, isGeckoBasedBrowser, createPlaywrightMetadataWriter, autoExitModeEnabled, getSessionRunId, loadCustomConfig, loadBrowserConfig, getDistPath, resolveCompanionExtensionsConfig, getSpecialFoldersDataForProjectRoot } from "./101.mjs";
|
|
10
|
+
import { DEV_COMMAND_DEFAULTS, autoExitForceKill, loadCommandConfig, sanitize, extensionJsRunnerError, portInUse, devServerStartTimeout, autoExitTriggered, asAbsolute, mergeOptionLayers, shouldWarnPortConflict, isGeckoBasedBrowser, createPlaywrightMetadataWriter, autoExitModeEnabled, getSessionRunId, loadCustomConfig, loadBrowserConfig, getDistPath, resolveCompanionExtensionsConfig, getSpecialFoldersDataForProjectRoot } from "./101.mjs";
|
|
11
11
|
import { CONTROL_WS_PATH, writePersistedControlPort, writeControlToken, clearControlToken, readPersistedControlPort } from "./887.mjs";
|
|
12
12
|
import { hasProjectDependency, findNearestProjectManifestDirSync } from "./80.mjs";
|
|
13
13
|
import { setupNoBrowserBannerOnFirstDone, webpackConfig, resolveConnectableHost, setupCompilerLifecycleHooks } from "./0~rspack-config.mjs";
|
|
14
|
-
import { actionsPath, controlPortFilePath,
|
|
14
|
+
import { ensureSessionStateInProjectGitignore, logsPath, actionsPath, controlPortFilePath, legacyControlPortFilePath, ensureSessionArtifactsIgnoreFile } from "./494.mjs";
|
|
15
15
|
import { isDebug } from "./349.mjs";
|
|
16
16
|
import * as __rspack_external_node_path_c5b9b54f from "node:path";
|
|
17
17
|
import * as __rspack_external_node_fs_5ea92f0c from "node:fs";
|
|
@@ -1049,6 +1049,7 @@ async function dev_server_devServer(projectStructure, devOptions) {
|
|
|
1049
1049
|
const primaryDistPath = getDistPath(asAbsolute(packageJsonDir), browserName);
|
|
1050
1050
|
const bridgeLogsAbsPath = logsPath(packageJsonDir, browserName);
|
|
1051
1051
|
ensureSessionArtifactsIgnoreFile(packageJsonDir);
|
|
1052
|
+
ensureSessionStateInProjectGitignore(packageJsonDir);
|
|
1052
1053
|
const bridgeLogsRelPath = __rspack_external_node_path_c5b9b54f.relative(packageJsonDir, bridgeLogsAbsPath);
|
|
1053
1054
|
const sessionRunId = getSessionRunId(packageJsonDir, browserName);
|
|
1054
1055
|
const bridgeLogFile = new LogsFileWriter({
|
|
@@ -1144,6 +1145,7 @@ async function dev_server_devServer(projectStructure, devOptions) {
|
|
|
1144
1145
|
const safeBrowserConfig = sanitize(browserConfig);
|
|
1145
1146
|
const safeCommandConfig = sanitize(commandConfig);
|
|
1146
1147
|
const safeDevOptions = sanitize(devOptions);
|
|
1148
|
+
const mergedDevOptions = mergeOptionLayers(DEV_COMMAND_DEFAULTS, safeBrowserConfig, safeCommandConfig, safeDevOptions);
|
|
1147
1149
|
const specialFoldersData = getSpecialFoldersDataForProjectRoot(packageJsonDir);
|
|
1148
1150
|
const mergedExtensionsConfig = safeDevOptions.extensions ?? safeCommandConfig.extensions ?? safeBrowserConfig.extensions ?? specialFoldersData.extensions;
|
|
1149
1151
|
const resolvedExtensionsConfig = await resolveCompanionExtensionsConfig({
|
|
@@ -1152,9 +1154,7 @@ async function dev_server_devServer(projectStructure, devOptions) {
|
|
|
1152
1154
|
config: mergedExtensionsConfig
|
|
1153
1155
|
});
|
|
1154
1156
|
const baseConfig = webpackConfig(projectStructure, {
|
|
1155
|
-
...
|
|
1156
|
-
...safeCommandConfig,
|
|
1157
|
-
...safeDevOptions,
|
|
1157
|
+
...mergedDevOptions,
|
|
1158
1158
|
extensions: resolvedExtensionsConfig,
|
|
1159
1159
|
browser: devOptions.browser,
|
|
1160
1160
|
mode: 'development',
|