extension-develop 3.5.0-next.9 → 3.5.1
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 +8 -8
- package/dist/323.cjs +33 -40
- package/dist/547.cjs +69 -6
- package/dist/extension-js-devtools/chrome/assets/developer-mode-off.f9a94937.jpeg +0 -0
- package/dist/extension-js-devtools/chrome/assets/developer-mode-on.ede80e5b.jpeg +0 -0
- package/dist/extension-js-devtools/chrome/background/service_worker.js +2 -2
- package/dist/extension-js-devtools/chrome/devtools/index.js +1 -1
- package/dist/extension-js-devtools/chrome/manifest.json +3 -3
- package/dist/extension-js-devtools/chrome/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/chrome/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chrome/pages/welcome.js +4 -78
- package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/chromium/assets/developer-mode-off.f9a94937.jpeg +0 -0
- package/dist/extension-js-devtools/chromium/assets/developer-mode-on.ede80e5b.jpeg +0 -0
- package/dist/extension-js-devtools/chromium/background/service_worker.js +2 -2
- package/dist/extension-js-devtools/chromium/devtools/index.js +1 -1
- package/dist/extension-js-devtools/chromium/manifest.json +3 -3
- package/dist/extension-js-devtools/chromium/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/chromium/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chromium/pages/welcome.js +4 -78
- package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/edge/assets/developer-mode-off.f9a94937.jpeg +0 -0
- package/dist/extension-js-devtools/edge/assets/developer-mode-on.ede80e5b.jpeg +0 -0
- package/dist/extension-js-devtools/edge/background/service_worker.js +2 -2
- package/dist/extension-js-devtools/edge/devtools/index.js +1 -1
- package/dist/extension-js-devtools/edge/manifest.json +3 -3
- package/dist/extension-js-devtools/edge/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/edge/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/edge/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/edge/pages/welcome.js +4 -78
- package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/firefox/assets/developer-mode-off.f9a94937.jpeg +0 -0
- package/dist/extension-js-devtools/firefox/assets/developer-mode-on.ede80e5b.jpeg +0 -0
- package/dist/extension-js-devtools/firefox/background/scripts.js +2 -2
- package/dist/extension-js-devtools/firefox/devtools/index.js +1 -1
- package/dist/extension-js-devtools/firefox/manifest.json +0 -3
- package/dist/extension-js-devtools/firefox/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +1 -1
- package/dist/extension-js-devtools/firefox/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/firefox/pages/welcome.js +4 -78
- package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
- package/dist/extension-js-theme/firefox/manifest.json +60 -1
- package/dist/module.cjs +481 -289
- package/package.json +5 -4
- package/webpack/webpack-lib/build-dependencies.json +24 -0
package/dist/module.cjs
CHANGED
|
@@ -127238,14 +127238,16 @@ var __webpack_modules__ = {
|
|
|
127238
127238
|
__webpack_require__.d(__webpack_exports__, {
|
|
127239
127239
|
Bf: ()=>getLastCDPPort,
|
|
127240
127240
|
Ef: ()=>getInstancePorts,
|
|
127241
|
-
UF: ()=>setInstancePorts
|
|
127241
|
+
UF: ()=>setInstancePorts,
|
|
127242
|
+
mm: ()=>getLastRDPPort
|
|
127242
127243
|
});
|
|
127243
127244
|
const instanceIdToRecord = new Map();
|
|
127244
127245
|
let lastCDPPort;
|
|
127246
|
+
let lastRDPPort;
|
|
127245
127247
|
function setInstancePorts(instanceId, ports) {
|
|
127246
127248
|
try {
|
|
127247
127249
|
if ('number' == typeof ports.cdpPort) lastCDPPort = ports.cdpPort;
|
|
127248
|
-
if ('number' == typeof ports.rdpPort) ports.rdpPort;
|
|
127250
|
+
if ('number' == typeof ports.rdpPort) lastRDPPort = ports.rdpPort;
|
|
127249
127251
|
if (!instanceId) return;
|
|
127250
127252
|
const prev = instanceIdToRecord.get(instanceId) || {};
|
|
127251
127253
|
instanceIdToRecord.set(instanceId, {
|
|
@@ -127261,6 +127263,9 @@ var __webpack_modules__ = {
|
|
|
127261
127263
|
function getLastCDPPort() {
|
|
127262
127264
|
return lastCDPPort;
|
|
127263
127265
|
}
|
|
127266
|
+
function getLastRDPPort() {
|
|
127267
|
+
return lastRDPPort;
|
|
127268
|
+
}
|
|
127264
127269
|
},
|
|
127265
127270
|
"./webpack/plugin-browsers/browsers-lib/messages.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
127266
127271
|
"use strict";
|
|
@@ -127874,7 +127879,7 @@ var __webpack_modules__ = {
|
|
|
127874
127879
|
if (!management) {
|
|
127875
127880
|
if ('true' === process.env.EXTENSION_AUTHOR_MODE) return `${getLoggingPrefix('error')} No management API info received from client for ${manifestName}. Investigate.`;
|
|
127876
127881
|
}
|
|
127877
|
-
const {
|
|
127882
|
+
const { version: version1 = '' } = management;
|
|
127878
127883
|
const extensionVersion = process.env.EXTENSION_DEVELOP_VERSION || process.env.EXTENSION_CLI_VERSION || (()=>{
|
|
127879
127884
|
try {
|
|
127880
127885
|
return require1('../../../package.json').version;
|
|
@@ -127928,22 +127933,15 @@ var __webpack_modules__ = {
|
|
|
127928
127933
|
}
|
|
127929
127934
|
}
|
|
127930
127935
|
} catch {}
|
|
127931
|
-
|
|
127936
|
+
let browserLabel = effectiveBrowserLine && effectiveBrowserLine.trim().length > 0 ? effectiveBrowserLine.trim() : capitalize(String(browser || 'unknown'));
|
|
127937
|
+
if (browserLabel && !/[a-zA-Z]/.test(browserLabel)) browserLabel = `${capitalize(String(browser || 'unknown'))} ${browserLabel}`;
|
|
127932
127938
|
const cleanId = String(id || '').trim();
|
|
127933
|
-
const urlScheme = 'firefox' === browser || 'gecko-based' === browser ? 'moz-extension' : 'chrome-extension';
|
|
127934
|
-
cleanId.length;
|
|
127935
|
-
(()=>{
|
|
127936
|
-
if ('firefox' === browser || 'gecko-based' === browser) return 'about:debugging#/runtime/this-firefox';
|
|
127937
|
-
if ('chrome' === browser || 'chromium' === browser || 'chromium-based' === browser || 'edge' === browser) return cleanId.length > 0 ? `chrome://extensions/?id=${cleanId}` : 'chrome://extensions';
|
|
127938
|
-
return cleanId.length > 0 ? `${urlScheme}://${cleanId}` : '(temporary)';
|
|
127939
|
-
})();
|
|
127940
|
-
('firefox' === browser || 'gecko-based' === browser) && 'true' === process.env.EXTENSION_AUTHOR_MODE && cleanId.length;
|
|
127941
|
-
hostPermissions && hostPermissions.length;
|
|
127942
|
-
permissions && permissions.length;
|
|
127943
127939
|
const lines = [];
|
|
127944
127940
|
const includeExtensionId = opts?.includeExtensionId !== false;
|
|
127945
127941
|
const updateNotice = updateSuffix ? ` ${updateSuffix}` : '';
|
|
127946
|
-
|
|
127942
|
+
const displayName = String(manifestName);
|
|
127943
|
+
const displayVersion = String(version1 || manifest.version || '');
|
|
127944
|
+
lines.push(` 🧩 ${pintor__rspack_import_3_default().brightBlue('Extension.js')} ${pintor__rspack_import_3_default().gray(`${extensionVersion}`)}${updateNotice}`, ` Browser ${pintor__rspack_import_3_default().gray(browserLabel)}`, ` Extension ${pintor__rspack_import_3_default().gray(displayVersion ? `${displayName} ${displayVersion}` : displayName)}`);
|
|
127947
127945
|
if (includeExtensionId) lines.push(` Extension ID ${pintor__rspack_import_3_default().gray(cleanId)}`);
|
|
127948
127946
|
return lines.join('\n');
|
|
127949
127947
|
}
|
|
@@ -128596,6 +128594,34 @@ var __webpack_modules__ = {
|
|
|
128596
128594
|
else obj[key] = value;
|
|
128597
128595
|
return obj;
|
|
128598
128596
|
}
|
|
128597
|
+
async function waitForManifest(outPath, timeoutMs = 8000) {
|
|
128598
|
+
const manifestPath = `${outPath}/manifest.json`;
|
|
128599
|
+
const start = Date.now();
|
|
128600
|
+
while(Date.now() - start < timeoutMs){
|
|
128601
|
+
try {
|
|
128602
|
+
if (external_fs_.existsSync(manifestPath)) return true;
|
|
128603
|
+
} catch {}
|
|
128604
|
+
await new Promise((resolve)=>setTimeout(resolve, 150));
|
|
128605
|
+
}
|
|
128606
|
+
return false;
|
|
128607
|
+
}
|
|
128608
|
+
async function maybePrintDevBanner(args) {
|
|
128609
|
+
const mode = args.compilation?.options?.mode || 'development';
|
|
128610
|
+
if ('development' !== mode) return;
|
|
128611
|
+
if (args.enableCdp) return;
|
|
128612
|
+
const loadExtensionFlag = args.chromiumConfig.find((flag)=>flag.startsWith('--load-extension='));
|
|
128613
|
+
const extensionOutputPath = (0, extension_output_path.W)(args.compilation, loadExtensionFlag);
|
|
128614
|
+
if (!extensionOutputPath) return;
|
|
128615
|
+
const ready = await waitForManifest(extensionOutputPath, 10000);
|
|
128616
|
+
if (!ready) return;
|
|
128617
|
+
await (0, banner.a)({
|
|
128618
|
+
browser: args.browser,
|
|
128619
|
+
outPath: extensionOutputPath,
|
|
128620
|
+
hostPort: args.hostPort,
|
|
128621
|
+
getInfo: async ()=>null,
|
|
128622
|
+
browserVersionLine: args.browserVersionLine
|
|
128623
|
+
});
|
|
128624
|
+
}
|
|
128599
128625
|
class ChromiumLaunchPlugin {
|
|
128600
128626
|
async runOnce(compilation, opts) {
|
|
128601
128627
|
if (!this.logger) this.logger = {
|
|
@@ -128895,6 +128921,17 @@ var __webpack_modules__ = {
|
|
|
128895
128921
|
instance_registry.UF(this.options.instanceId, {
|
|
128896
128922
|
cdpPort: selectedPort
|
|
128897
128923
|
});
|
|
128924
|
+
const enableCdp = opts?.enableCdpPostLaunch !== false;
|
|
128925
|
+
await maybePrintDevBanner({
|
|
128926
|
+
compilation,
|
|
128927
|
+
chromiumConfig,
|
|
128928
|
+
browser: this.options.browser,
|
|
128929
|
+
hostPort: {
|
|
128930
|
+
host: '127.0.0.1',
|
|
128931
|
+
port: selectedPort
|
|
128932
|
+
},
|
|
128933
|
+
enableCdp
|
|
128934
|
+
});
|
|
128898
128935
|
if (this.options.dryRun) return void logChromiumDryRun(browserBinaryLocation, chromiumConfig);
|
|
128899
128936
|
await this.launchWithDirectSpawn(browserBinaryLocation, chromiumConfig);
|
|
128900
128937
|
try {
|
|
@@ -128905,8 +128942,8 @@ var __webpack_modules__ = {
|
|
|
128905
128942
|
if (vLine && vLine.trim().length > 0) browserVersionLine = vLine.trim();
|
|
128906
128943
|
}
|
|
128907
128944
|
} catch {}
|
|
128945
|
+
const mode = compilation?.options?.mode || 'development';
|
|
128908
128946
|
try {
|
|
128909
|
-
const mode = compilation?.options?.mode || 'development';
|
|
128910
128947
|
if ('production' === mode) {
|
|
128911
128948
|
const loadExtensionFlag = chromiumConfig.find((flag)=>flag.startsWith('--load-extension='));
|
|
128912
128949
|
const extensionOutputPath = (0, extension_output_path.W)(compilation, loadExtensionFlag);
|
|
@@ -128945,7 +128982,6 @@ var __webpack_modules__ = {
|
|
|
128945
128982
|
dryRun: this.options.dryRun,
|
|
128946
128983
|
browserVersionLine
|
|
128947
128984
|
};
|
|
128948
|
-
const enableCdp = opts?.enableCdpPostLaunch !== false;
|
|
128949
128985
|
if (enableCdp) {
|
|
128950
128986
|
const mod = await Promise.all([
|
|
128951
128987
|
__webpack_require__.e("215"),
|
|
@@ -129155,41 +129191,61 @@ var __webpack_modules__ = {
|
|
|
129155
129191
|
}
|
|
129156
129192
|
var external_path_ = __webpack_require__("path");
|
|
129157
129193
|
var banner = __webpack_require__("./webpack/plugin-browsers/browsers-lib/banner.ts");
|
|
129194
|
+
async function waitForManifest(outPath, timeoutMs = 8000) {
|
|
129195
|
+
const manifestPath = external_path_.join(outPath, 'manifest.json');
|
|
129196
|
+
const start = Date.now();
|
|
129197
|
+
while(Date.now() - start < timeoutMs){
|
|
129198
|
+
try {
|
|
129199
|
+
if (external_fs_.existsSync(manifestPath)) return true;
|
|
129200
|
+
} catch {}
|
|
129201
|
+
await new Promise((resolve)=>setTimeout(resolve, 150));
|
|
129202
|
+
}
|
|
129203
|
+
return false;
|
|
129204
|
+
}
|
|
129158
129205
|
async function printRunningInDevelopmentSummary(candidateAddonPaths, browser, extensionId, browserVersionLine) {
|
|
129159
129206
|
try {
|
|
129160
129207
|
let chosenPath = null;
|
|
129161
129208
|
for (const p of candidateAddonPaths){
|
|
129209
|
+
const isManager = /extensions\/[a-z-]+-manager/.test(String(p));
|
|
129210
|
+
const isDevtools = /extension-js-devtools/.test(String(p));
|
|
129211
|
+
const isThemePath = /extension-js-theme/.test(String(p));
|
|
129212
|
+
if (isManager || isDevtools || isThemePath) continue;
|
|
129162
129213
|
const mp = external_path_.join(p, 'manifest.json');
|
|
129163
129214
|
if (external_fs_.existsSync(mp)) {
|
|
129164
129215
|
const mf = JSON.parse(external_fs_.readFileSync(mp, 'utf-8'));
|
|
129165
129216
|
const name = mf?.name || '';
|
|
129166
|
-
|
|
129217
|
+
const isThemeManifest = mf?.theme != null || 'theme' === String(mf?.type || '');
|
|
129218
|
+
if ('string' == typeof name && !/Extension\.js DevTools/i.test(name) && !/theme/i.test(name) && !isThemeManifest) {
|
|
129167
129219
|
chosenPath = p;
|
|
129168
129220
|
break;
|
|
129169
129221
|
}
|
|
129170
129222
|
}
|
|
129171
129223
|
}
|
|
129172
129224
|
if (!chosenPath && candidateAddonPaths.length > 0) chosenPath = candidateAddonPaths[candidateAddonPaths.length - 1];
|
|
129173
|
-
if (chosenPath)
|
|
129174
|
-
|
|
129175
|
-
|
|
129176
|
-
|
|
129177
|
-
|
|
129178
|
-
browser,
|
|
129179
|
-
outPath: chosenPath,
|
|
129180
|
-
hostPort: {
|
|
129181
|
-
host: '127.0.0.1'
|
|
129182
|
-
},
|
|
129183
|
-
getInfo: async ()=>({
|
|
129184
|
-
extensionId: extensionId || '(temporary)',
|
|
129185
|
-
name: manifest.name,
|
|
129186
|
-
version: manifest.version
|
|
129187
|
-
}),
|
|
129188
|
-
browserVersionLine
|
|
129189
|
-
});
|
|
129190
|
-
}
|
|
129225
|
+
if (!chosenPath) return false;
|
|
129226
|
+
const manifestPath = external_path_.join(chosenPath, 'manifest.json');
|
|
129227
|
+
if (!external_fs_.existsSync(manifestPath)) {
|
|
129228
|
+
const ready = await waitForManifest(chosenPath, 10000);
|
|
129229
|
+
if (!ready) return false;
|
|
129191
129230
|
}
|
|
129192
|
-
|
|
129231
|
+
const manifest = JSON.parse(external_fs_.readFileSync(manifestPath, 'utf-8'));
|
|
129232
|
+
const printed = await (0, banner.a)({
|
|
129233
|
+
browser,
|
|
129234
|
+
outPath: chosenPath,
|
|
129235
|
+
hostPort: {
|
|
129236
|
+
host: '127.0.0.1'
|
|
129237
|
+
},
|
|
129238
|
+
getInfo: async ()=>({
|
|
129239
|
+
extensionId: extensionId || '(temporary)',
|
|
129240
|
+
name: manifest.name,
|
|
129241
|
+
version: manifest.version
|
|
129242
|
+
}),
|
|
129243
|
+
browserVersionLine
|
|
129244
|
+
});
|
|
129245
|
+
return printed;
|
|
129246
|
+
} catch {
|
|
129247
|
+
return false;
|
|
129248
|
+
}
|
|
129193
129249
|
}
|
|
129194
129250
|
function printSourceInspection(html) {
|
|
129195
129251
|
console.log(messages.sew());
|
|
@@ -129223,6 +129279,9 @@ var __webpack_modules__ = {
|
|
|
129223
129279
|
if (external_fs_.existsSync(external_path_.join(distFirefox, 'manifest.json'))) return distFirefox;
|
|
129224
129280
|
return candidate;
|
|
129225
129281
|
}
|
|
129282
|
+
function normalizeFirefoxAddonPath(addonPath) {
|
|
129283
|
+
return String(addonPath).replace(/\\/g, '/');
|
|
129284
|
+
}
|
|
129226
129285
|
async function getAddonsActorWithRetry(client, cached, tries = 40, delayMs = 250) {
|
|
129227
129286
|
if (cached) return cached;
|
|
129228
129287
|
let addonsActor;
|
|
@@ -129247,7 +129306,7 @@ var __webpack_modules__ = {
|
|
|
129247
129306
|
}
|
|
129248
129307
|
function computeCandidateAddonPaths(compilation, extensionsToLoad, projectContext) {
|
|
129249
129308
|
const projectPath = compilation.options.context || projectContext || process.cwd();
|
|
129250
|
-
return extensionsToLoad.map((ext)=>resolveAddonDirectory(projectPath, ext));
|
|
129309
|
+
return extensionsToLoad.map((ext)=>normalizeFirefoxAddonPath(resolveAddonDirectory(projectPath, ext)));
|
|
129251
129310
|
}
|
|
129252
129311
|
async function waitForManagerWelcome(client) {
|
|
129253
129312
|
for(let i = 0; i < 20; i++){
|
|
@@ -129386,6 +129445,16 @@ var __webpack_modules__ = {
|
|
|
129386
129445
|
const MAX_RETRIES = 150;
|
|
129387
129446
|
const RETRY_INTERVAL = 1000;
|
|
129388
129447
|
class RemoteFirefox {
|
|
129448
|
+
resolveRdpPort(compilation) {
|
|
129449
|
+
const instanceId = this.options?.instanceId;
|
|
129450
|
+
const devPort = compilation?.options?.devServer?.port;
|
|
129451
|
+
const optionPort = this.options?.port;
|
|
129452
|
+
const normalizedOptionPort = 'string' == typeof optionPort ? parseInt(optionPort, 10) : optionPort;
|
|
129453
|
+
const basePort = normalizedOptionPort || devPort;
|
|
129454
|
+
const desired = (0, shared_utils.jl)(basePort, instanceId);
|
|
129455
|
+
const fromInstance = instanceId ? (0, instance_registry.Ef)(instanceId)?.rdpPort : void 0;
|
|
129456
|
+
return fromInstance || (0, instance_registry.mm)() || desired;
|
|
129457
|
+
}
|
|
129389
129458
|
async connectClient(port) {
|
|
129390
129459
|
let lastError;
|
|
129391
129460
|
for (const _ of Array.from({
|
|
@@ -129422,15 +129491,13 @@ var __webpack_modules__ = {
|
|
|
129422
129491
|
return 0;
|
|
129423
129492
|
});
|
|
129424
129493
|
const extensionsToLoad = userFirst;
|
|
129425
|
-
const
|
|
129426
|
-
const optionPort = this.options?.port;
|
|
129427
|
-
const normalizedOptionPort = 'string' == typeof optionPort ? parseInt(optionPort, 10) : optionPort;
|
|
129428
|
-
const port = normalizedOptionPort || (devPort ? devPort + 100 : 9222);
|
|
129494
|
+
const port = this.resolveRdpPort(compilation);
|
|
129429
129495
|
const client = await this.connectClient(port);
|
|
129430
129496
|
let addonsActor = await getAddonsActorWithRetry(client, this.cachedAddonsActor);
|
|
129431
129497
|
if (addonsActor) this.cachedAddonsActor = addonsActor;
|
|
129432
129498
|
const candidateAddonPaths = computeCandidateAddonPaths(compilation, extensionsToLoad);
|
|
129433
129499
|
for (const [index, addonPath] of candidateAddonPaths.entries()){
|
|
129500
|
+
const isManager = /extensions\/[a-z-]+-manager/.test(String(addonPath));
|
|
129434
129501
|
const isDevtoolsEnabled = 0 === index && Boolean(devtools);
|
|
129435
129502
|
try {
|
|
129436
129503
|
const installResponse = await installTemporaryAddon(client, String(addonsActor || ''), addonPath, isDevtoolsEnabled);
|
|
@@ -129438,7 +129505,7 @@ var __webpack_modules__ = {
|
|
|
129438
129505
|
const maybeId = installResponse?.addon?.id;
|
|
129439
129506
|
if ('string' == typeof maybeId && maybeId.length > 0) this.derivedExtensionId = maybeId;
|
|
129440
129507
|
}
|
|
129441
|
-
if (
|
|
129508
|
+
if (isManager) await waitForManagerWelcome(client);
|
|
129442
129509
|
} catch (err) {
|
|
129443
129510
|
const message = requestErrorToMessage(err);
|
|
129444
129511
|
throw new Error(messages.WVu(this.options.browser, message));
|
|
@@ -129460,7 +129527,8 @@ var __webpack_modules__ = {
|
|
|
129460
129527
|
if (!this.derivedExtensionId) this.derivedExtensionId = await deriveMozExtensionId(client);
|
|
129461
129528
|
} catch {}
|
|
129462
129529
|
this.lastInstalledAddonPath = candidateAddonPaths[0];
|
|
129463
|
-
printRunningInDevelopmentSummary(candidateAddonPaths, 'firefox', this.derivedExtensionId, this.options.browserVersionLine);
|
|
129530
|
+
const bannerPrinted = await printRunningInDevelopmentSummary(candidateAddonPaths, 'firefox', this.derivedExtensionId, this.options.browserVersionLine);
|
|
129531
|
+
if (!bannerPrinted) throw new Error(messages.WVu(this.options.browser, 'Failed to print runningInDevelopment banner; add-on may not be installed.'));
|
|
129464
129532
|
}
|
|
129465
129533
|
markNeedsReinstall() {
|
|
129466
129534
|
this.needsReinstall = true;
|
|
@@ -129512,10 +129580,7 @@ var __webpack_modules__ = {
|
|
|
129512
129580
|
}
|
|
129513
129581
|
async hardReloadIfNeeded(compilation, changedAssets) {
|
|
129514
129582
|
try {
|
|
129515
|
-
const
|
|
129516
|
-
const optionPort = this.options?.port;
|
|
129517
|
-
const normalizedOptionPort = 'string' == typeof optionPort ? parseInt(optionPort, 10) : optionPort;
|
|
129518
|
-
const rdpPort = normalizedOptionPort || (devPort ? devPort + 100 : 9222);
|
|
129583
|
+
const rdpPort = this.resolveRdpPort(compilation);
|
|
129519
129584
|
const client = this.client || await this.connectClient(rdpPort);
|
|
129520
129585
|
const normalized = (changedAssets || []).map((n)=>String(n || '')).map((n)=>n.replace(/\\/g, '/'));
|
|
129521
129586
|
const isManifestChanged = normalized.includes('manifest.json');
|
|
@@ -129540,10 +129605,7 @@ var __webpack_modules__ = {
|
|
|
129540
129605
|
}
|
|
129541
129606
|
async inspectSource(compilation, opts) {
|
|
129542
129607
|
try {
|
|
129543
|
-
const
|
|
129544
|
-
const optionPort = this.options?.port;
|
|
129545
|
-
const normalizedOptionPort = 'string' == typeof optionPort ? parseInt(optionPort, 10) : optionPort;
|
|
129546
|
-
const rdpPort = normalizedOptionPort || (devServerPort ? devServerPort + 100 : 9222);
|
|
129608
|
+
const rdpPort = this.resolveRdpPort(compilation);
|
|
129547
129609
|
const client = this.client || await this.connectClient(rdpPort);
|
|
129548
129610
|
const urlToInspect = 'string' == typeof opts.source && 'true' !== opts.source ? opts.source : opts.startingUrl;
|
|
129549
129611
|
const tab = await (0, source_inspect.oc)(client, urlToInspect);
|
|
@@ -129559,9 +129621,7 @@ var __webpack_modules__ = {
|
|
|
129559
129621
|
async enableUnifiedLogging(opts) {
|
|
129560
129622
|
try {
|
|
129561
129623
|
if (this.loggingAttached) return;
|
|
129562
|
-
const
|
|
129563
|
-
const normalized = 'string' == typeof devPort ? parseInt(devPort, 10) : devPort;
|
|
129564
|
-
const rdpPort = normalized || 9222;
|
|
129624
|
+
const rdpPort = this.resolveRdpPort();
|
|
129565
129625
|
const client = this.client || await this.connectClient(rdpPort);
|
|
129566
129626
|
await attachConsoleListeners(client);
|
|
129567
129627
|
const wantLevel = String(opts.level || 'info').toLowerCase();
|
|
@@ -129685,6 +129745,11 @@ var __webpack_modules__ = {
|
|
|
129685
129745
|
'browser.formfill.enable': false,
|
|
129686
129746
|
'browser.link.open_newwindow': 3,
|
|
129687
129747
|
'browser.sessionstore.enabled': false,
|
|
129748
|
+
'browser.sessionstore.resume_from_crash': false,
|
|
129749
|
+
'browser.sessionstore.max_resumed_crashes': 0,
|
|
129750
|
+
'browser.sessionstore.restore_on_demand': false,
|
|
129751
|
+
'browser.sessionstore.resume_session_once': false,
|
|
129752
|
+
'toolkit.startup.max_resumed_crashes': -1,
|
|
129688
129753
|
'browser.shell.checkDefaultBrowser': false,
|
|
129689
129754
|
'browser.sync.enabled': false,
|
|
129690
129755
|
'browser.startup.page': 0,
|
|
@@ -129789,29 +129854,31 @@ var __webpack_modules__ = {
|
|
|
129789
129854
|
});
|
|
129790
129855
|
profilePath = tmp;
|
|
129791
129856
|
}
|
|
129792
|
-
external_fs_.mkdirSync(profilePath, {
|
|
129793
|
-
recursive: true
|
|
129794
|
-
});
|
|
129795
|
-
try {
|
|
129796
|
-
const prefs = getPreferences(configOptions?.preferences || {});
|
|
129797
|
-
function serializeValue(value) {
|
|
129798
|
-
if ('string' == typeof value) return JSON.stringify(value);
|
|
129799
|
-
if ('boolean' == typeof value) return String(value);
|
|
129800
|
-
if ('number' == typeof value && Number.isFinite(value)) return String(value);
|
|
129801
|
-
return JSON.stringify(value);
|
|
129802
|
-
}
|
|
129803
|
-
function prefsToUserJs(prefsObject) {
|
|
129804
|
-
return Object.entries(prefsObject).map(([key, val])=>`user_pref(${JSON.stringify(key)}, ${serializeValue(val)});`).join('\n');
|
|
129805
|
-
}
|
|
129806
|
-
const userJsPath = external_path_.join(profilePath, 'user.js');
|
|
129807
|
-
const userJsContent = prefsToUserJs(prefs);
|
|
129808
|
-
external_fs_.writeFileSync(userJsPath, userJsContent);
|
|
129809
|
-
} catch {}
|
|
129810
129857
|
try {
|
|
129811
129858
|
const maxAgeHours = parseInt(String(process.env.EXTENSION_TMP_PROFILE_MAX_AGE_HOURS || ''), 10);
|
|
129812
129859
|
(0, shared_utils.CW)(base, external_path_.basename(profilePath), Number.isFinite(maxAgeHours) ? maxAgeHours : 12);
|
|
129813
129860
|
} catch {}
|
|
129814
129861
|
}
|
|
129862
|
+
if (profilePath) try {
|
|
129863
|
+
external_fs_.mkdirSync(profilePath, {
|
|
129864
|
+
recursive: true
|
|
129865
|
+
});
|
|
129866
|
+
} catch {}
|
|
129867
|
+
if (profilePath) try {
|
|
129868
|
+
const prefs = getPreferences(configOptions?.preferences || {});
|
|
129869
|
+
function serializeValue(value) {
|
|
129870
|
+
if ('string' == typeof value) return JSON.stringify(value);
|
|
129871
|
+
if ('boolean' == typeof value) return String(value);
|
|
129872
|
+
if ('number' == typeof value && Number.isFinite(value)) return String(value);
|
|
129873
|
+
return JSON.stringify(value);
|
|
129874
|
+
}
|
|
129875
|
+
function prefsToUserJs(prefsObject) {
|
|
129876
|
+
return Object.entries(prefsObject).map(([key, val])=>`user_pref(${JSON.stringify(key)}, ${serializeValue(val)});`).join('\n');
|
|
129877
|
+
}
|
|
129878
|
+
const userJsPath = external_path_.join(profilePath, 'user.js');
|
|
129879
|
+
const userJsContent = prefsToUserJs(prefs);
|
|
129880
|
+
external_fs_.writeFileSync(userJsPath, userJsContent);
|
|
129881
|
+
} catch {}
|
|
129815
129882
|
const parts = [
|
|
129816
129883
|
`--binary-args="${binaryArgs.join(' ')}"`,
|
|
129817
129884
|
'--verbose'
|
|
@@ -129888,6 +129955,12 @@ var __webpack_modules__ = {
|
|
|
129888
129955
|
const child = (0, external_child_process_.spawn)(bin, args, {
|
|
129889
129956
|
stdio,
|
|
129890
129957
|
detached: false,
|
|
129958
|
+
env: {
|
|
129959
|
+
...process.env,
|
|
129960
|
+
MOZ_DISABLE_AUTO_SAFE_MODE: '1',
|
|
129961
|
+
MOZ_CRASHREPORTER_DISABLE: '1',
|
|
129962
|
+
MOZ_CRASHREPORTER: '0'
|
|
129963
|
+
},
|
|
129891
129964
|
...'win32' === process.platform ? {
|
|
129892
129965
|
windowsHide: true
|
|
129893
129966
|
} : {}
|
|
@@ -130825,9 +130898,11 @@ var __webpack_modules__ = {
|
|
|
130825
130898
|
var path__rspack_import_0 = __webpack_require__("path");
|
|
130826
130899
|
var fs__rspack_import_1 = __webpack_require__("fs");
|
|
130827
130900
|
var _messages__rspack_import_2 = __webpack_require__("./webpack/plugin-css/css-lib/messages.ts");
|
|
130828
|
-
var
|
|
130829
|
-
var
|
|
130830
|
-
var
|
|
130901
|
+
var pintor__rspack_import_3 = __webpack_require__("pintor");
|
|
130902
|
+
var pintor__rspack_import_3_default = /*#__PURE__*/ __webpack_require__.n(pintor__rspack_import_3);
|
|
130903
|
+
var _webpack_lib_check_build_dependencies__rspack_import_4 = __webpack_require__("./webpack/webpack-lib/check-build-dependencies.ts");
|
|
130904
|
+
var _webpack_lib_package_manager__rspack_import_5 = __webpack_require__("./webpack/webpack-lib/package-manager.ts");
|
|
130905
|
+
var _webpack_lib_progress__rspack_import_6 = __webpack_require__("./webpack/webpack-lib/progress.ts");
|
|
130831
130906
|
function parseJsonSafe(text) {
|
|
130832
130907
|
const s = text && 0xfeff === text.charCodeAt(0) ? text.slice(1) : text;
|
|
130833
130908
|
return JSON.parse(s || '{}');
|
|
@@ -130931,13 +131006,13 @@ var __webpack_modules__ = {
|
|
|
130931
131006
|
}
|
|
130932
131007
|
async function execInstallWithFallback(command, options) {
|
|
130933
131008
|
try {
|
|
130934
|
-
await (0,
|
|
131009
|
+
await (0, _webpack_lib_package_manager__rspack_import_5.Qt)(command.command, command.args, {
|
|
130935
131010
|
cwd: options.cwd,
|
|
130936
131011
|
stdio: 'inherit'
|
|
130937
131012
|
});
|
|
130938
131013
|
return;
|
|
130939
131014
|
} catch (error) {
|
|
130940
|
-
if (options.fallbackNpmCommand && isMissingManagerError(error)) return void await (0,
|
|
131015
|
+
if (options.fallbackNpmCommand && isMissingManagerError(error)) return void await (0, _webpack_lib_package_manager__rspack_import_5.Qt)(options.fallbackNpmCommand.command, options.fallbackNpmCommand.args, {
|
|
130941
131016
|
cwd: options.cwd,
|
|
130942
131017
|
stdio: 'inherit'
|
|
130943
131018
|
});
|
|
@@ -130945,7 +131020,7 @@ var __webpack_modules__ = {
|
|
|
130945
131020
|
}
|
|
130946
131021
|
}
|
|
130947
131022
|
function resolveDevelopInstallRoot() {
|
|
130948
|
-
const directRoot = (0,
|
|
131023
|
+
const directRoot = (0, _webpack_lib_check_build_dependencies__rspack_import_4.w1)();
|
|
130949
131024
|
if (directRoot) return directRoot;
|
|
130950
131025
|
try {
|
|
130951
131026
|
const candidateRoot = findDevelopRootFrom(__dirname);
|
|
@@ -130964,7 +131039,7 @@ var __webpack_modules__ = {
|
|
|
130964
131039
|
}
|
|
130965
131040
|
function getOptionalInstallCommand(pm, dependencies, installBaseDir) {
|
|
130966
131041
|
const pmName = pm.name;
|
|
130967
|
-
if ('yarn' === pmName) return (0,
|
|
131042
|
+
if ('yarn' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
130968
131043
|
'--silent',
|
|
130969
131044
|
'add',
|
|
130970
131045
|
...dependencies,
|
|
@@ -130972,7 +131047,7 @@ var __webpack_modules__ = {
|
|
|
130972
131047
|
installBaseDir,
|
|
130973
131048
|
'--optional'
|
|
130974
131049
|
]);
|
|
130975
|
-
if ('npm' === pmName) return (0,
|
|
131050
|
+
if ('npm' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
130976
131051
|
'--silent',
|
|
130977
131052
|
'install',
|
|
130978
131053
|
...dependencies,
|
|
@@ -130980,7 +131055,7 @@ var __webpack_modules__ = {
|
|
|
130980
131055
|
installBaseDir,
|
|
130981
131056
|
'--save-optional'
|
|
130982
131057
|
]);
|
|
130983
|
-
if ('pnpm' === pmName) return (0,
|
|
131058
|
+
if ('pnpm' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
130984
131059
|
'add',
|
|
130985
131060
|
...dependencies,
|
|
130986
131061
|
'--dir',
|
|
@@ -130988,14 +131063,14 @@ var __webpack_modules__ = {
|
|
|
130988
131063
|
'--save-optional',
|
|
130989
131064
|
'--silent'
|
|
130990
131065
|
]);
|
|
130991
|
-
if ('bun' === pmName) return (0,
|
|
131066
|
+
if ('bun' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
130992
131067
|
'add',
|
|
130993
131068
|
...dependencies,
|
|
130994
131069
|
'--cwd',
|
|
130995
131070
|
installBaseDir,
|
|
130996
131071
|
'--optional'
|
|
130997
131072
|
]);
|
|
130998
|
-
return (0,
|
|
131073
|
+
return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
130999
131074
|
'--silent',
|
|
131000
131075
|
'install',
|
|
131001
131076
|
...dependencies,
|
|
@@ -131019,32 +131094,32 @@ var __webpack_modules__ = {
|
|
|
131019
131094
|
'--prefix',
|
|
131020
131095
|
installBaseDir
|
|
131021
131096
|
] : [];
|
|
131022
|
-
if ('yarn' === pmName) return (0,
|
|
131097
|
+
if ('yarn' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
131023
131098
|
'install',
|
|
131024
131099
|
'--silent',
|
|
131025
131100
|
...dirArgs
|
|
131026
131101
|
]);
|
|
131027
|
-
if ('npm' === pmName) return (0,
|
|
131102
|
+
if ('npm' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
131028
131103
|
'install',
|
|
131029
131104
|
'--silent',
|
|
131030
131105
|
...dirArgs
|
|
131031
131106
|
]);
|
|
131032
|
-
if ('pnpm' === pmName) return (0,
|
|
131107
|
+
if ('pnpm' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
131033
131108
|
'install',
|
|
131034
131109
|
'--silent',
|
|
131035
131110
|
...dirArgs
|
|
131036
131111
|
]);
|
|
131037
|
-
if ('bun' === pmName) return (0,
|
|
131112
|
+
if ('bun' === pmName) return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
131038
131113
|
'install',
|
|
131039
131114
|
...dirArgs
|
|
131040
131115
|
]);
|
|
131041
|
-
return (0,
|
|
131116
|
+
return (0, _webpack_lib_package_manager__rspack_import_5.tj)(pm, [
|
|
131042
131117
|
'install',
|
|
131043
131118
|
'--silent',
|
|
131044
131119
|
...dirArgs
|
|
131045
131120
|
]);
|
|
131046
131121
|
}
|
|
131047
|
-
async function installOptionalDependencies(integration, dependencies) {
|
|
131122
|
+
async function installOptionalDependencies(integration, dependencies, options) {
|
|
131048
131123
|
if (!dependencies.length) return;
|
|
131049
131124
|
let pm;
|
|
131050
131125
|
let wslContext;
|
|
@@ -131052,36 +131127,44 @@ var __webpack_modules__ = {
|
|
|
131052
131127
|
try {
|
|
131053
131128
|
installBaseDir = resolveDevelopInstallRoot();
|
|
131054
131129
|
if (!installBaseDir) throw new Error(_messages__rspack_import_2.eG(integration));
|
|
131055
|
-
pm = (0,
|
|
131130
|
+
pm = (0, _webpack_lib_package_manager__rspack_import_5._c)({
|
|
131056
131131
|
cwd: installBaseDir
|
|
131057
131132
|
});
|
|
131058
131133
|
wslContext = resolveWslContext(installBaseDir);
|
|
131059
131134
|
if (!wslContext.useWsl) pm = await preferCorepackFallback(pm);
|
|
131060
|
-
const installCommand = getOptionalInstallCommand(pm, dependencies, wslContext.installDir || installBaseDir);
|
|
131061
|
-
const execCommand = wrapCommandForWsl(installCommand, wslContext);
|
|
131062
|
-
const fallbackNpmCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_4.sX)([
|
|
131063
|
-
'--silent',
|
|
131064
|
-
'install',
|
|
131065
|
-
...dependencies,
|
|
131066
|
-
'--prefix',
|
|
131067
|
-
installBaseDir,
|
|
131068
|
-
'--save-optional'
|
|
131069
|
-
]);
|
|
131070
131135
|
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
131071
|
-
const
|
|
131136
|
+
const setupMessages = _messages__rspack_import_2._j([
|
|
131072
131137
|
integration
|
|
131073
131138
|
], integration, isAuthor);
|
|
131074
|
-
const
|
|
131075
|
-
const
|
|
131076
|
-
|
|
131139
|
+
const setupMessage = setupMessages[0];
|
|
131140
|
+
const hasIndex = Boolean(options?.index && options?.total);
|
|
131141
|
+
const setupMessageWithIndex = hasIndex ? setupMessage.replace('►►► ', `►►► [${options?.index}/${options?.total}] `) : setupMessage;
|
|
131142
|
+
const progressEnabled = !isAuthor && (0, _webpack_lib_progress__rspack_import_6.u)();
|
|
131143
|
+
const progress = (0, _webpack_lib_progress__rspack_import_6.J)(setupMessageWithIndex, {
|
|
131144
|
+
enabled: progressEnabled,
|
|
131145
|
+
persistLabel: true
|
|
131077
131146
|
});
|
|
131078
|
-
if (isAuthor) console.warn(
|
|
131079
|
-
else if (!progressEnabled) console.log(
|
|
131147
|
+
if (isAuthor) console.warn(setupMessageWithIndex);
|
|
131148
|
+
else if (!progressEnabled) console.log(setupMessageWithIndex);
|
|
131080
131149
|
try {
|
|
131081
|
-
|
|
131082
|
-
|
|
131083
|
-
|
|
131084
|
-
|
|
131150
|
+
for (const dependency of dependencies){
|
|
131151
|
+
const installCommand = getOptionalInstallCommand(pm, [
|
|
131152
|
+
dependency
|
|
131153
|
+
], wslContext.installDir || installBaseDir);
|
|
131154
|
+
const execCommand = wrapCommandForWsl(installCommand, wslContext);
|
|
131155
|
+
const fallbackNpmCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_5.sX)([
|
|
131156
|
+
'--silent',
|
|
131157
|
+
'install',
|
|
131158
|
+
dependency,
|
|
131159
|
+
'--prefix',
|
|
131160
|
+
installBaseDir,
|
|
131161
|
+
'--save-optional'
|
|
131162
|
+
]);
|
|
131163
|
+
await execInstallWithFallback(execCommand, {
|
|
131164
|
+
cwd: wslContext.useWsl ? void 0 : installBaseDir,
|
|
131165
|
+
fallbackNpmCommand
|
|
131166
|
+
});
|
|
131167
|
+
}
|
|
131085
131168
|
} finally{
|
|
131086
131169
|
progress.stop();
|
|
131087
131170
|
}
|
|
@@ -131090,7 +131173,7 @@ var __webpack_modules__ = {
|
|
|
131090
131173
|
console.log(_messages__rspack_import_2.cr(integration));
|
|
131091
131174
|
const rootInstall = getRootInstallCommand(pm, wslContext.useWsl ? wslContext.installDir : void 0);
|
|
131092
131175
|
const rootCommand = wrapCommandForWsl(rootInstall, wslContext);
|
|
131093
|
-
const rootFallbackCommand = wslContext.useWsl ? void 0 : (0,
|
|
131176
|
+
const rootFallbackCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_5.sX)([
|
|
131094
131177
|
'--silent',
|
|
131095
131178
|
'install',
|
|
131096
131179
|
'--prefix',
|
|
@@ -131126,85 +131209,17 @@ var __webpack_modules__ = {
|
|
|
131126
131209
|
return false;
|
|
131127
131210
|
}
|
|
131128
131211
|
}
|
|
131129
|
-
async function installOptionalDependenciesBatch(
|
|
131130
|
-
if (!
|
|
131131
|
-
|
|
131132
|
-
|
|
131133
|
-
|
|
131134
|
-
|
|
131135
|
-
|
|
131136
|
-
if (!installBaseDir) throw new Error(_messages__rspack_import_2.eG(integration));
|
|
131137
|
-
pm = (0, _webpack_lib_package_manager__rspack_import_4._c)({
|
|
131138
|
-
cwd: installBaseDir
|
|
131212
|
+
async function installOptionalDependenciesBatch(plans) {
|
|
131213
|
+
if (!plans.length) return;
|
|
131214
|
+
console.log(`${pintor__rspack_import_3_default().gray('►►►')} Found ${pintor__rspack_import_3_default().yellow(String(plans.length))} specialized integration${1 === plans.length ? '' : 's'} needing installation...`);
|
|
131215
|
+
for (const [index, plan] of plans.entries()){
|
|
131216
|
+
const didInstall = await installOptionalDependencies(plan.integration, plan.dependencies, {
|
|
131217
|
+
index: index + 1,
|
|
131218
|
+
total: plans.length
|
|
131139
131219
|
});
|
|
131140
|
-
|
|
131141
|
-
if (!wslContext.useWsl) pm = await preferCorepackFallback(pm);
|
|
131142
|
-
const installCommand = getOptionalInstallCommand(pm, dependencies, wslContext.installDir || installBaseDir);
|
|
131143
|
-
const execCommand = wrapCommandForWsl(installCommand, wslContext);
|
|
131144
|
-
const fallbackNpmCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_4.sX)([
|
|
131145
|
-
'--silent',
|
|
131146
|
-
'install',
|
|
131147
|
-
...dependencies,
|
|
131148
|
-
'--prefix',
|
|
131149
|
-
installBaseDir,
|
|
131150
|
-
'--save-optional'
|
|
131151
|
-
]);
|
|
131152
|
-
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
131153
|
-
const setupMessage = _messages__rspack_import_2._j(integrations, integration, isAuthor);
|
|
131154
|
-
const progressEnabled = !isAuthor && (0, _webpack_lib_progress__rspack_import_5.u)();
|
|
131155
|
-
const progress = (0, _webpack_lib_progress__rspack_import_5.J)(setupMessage, {
|
|
131156
|
-
enabled: progressEnabled
|
|
131157
|
-
});
|
|
131158
|
-
if (isAuthor) console.warn(setupMessage);
|
|
131159
|
-
else if (!progressEnabled) console.log(setupMessage);
|
|
131160
|
-
try {
|
|
131161
|
-
await execInstallWithFallback(execCommand, {
|
|
131162
|
-
cwd: wslContext.useWsl ? void 0 : installBaseDir,
|
|
131163
|
-
fallbackNpmCommand
|
|
131164
|
-
});
|
|
131165
|
-
} finally{
|
|
131166
|
-
progress.stop();
|
|
131167
|
-
}
|
|
131168
|
-
await new Promise((resolve)=>setTimeout(resolve, 500));
|
|
131169
|
-
if (isAuthor) {
|
|
131170
|
-
console.log(_messages__rspack_import_2.cr(integration));
|
|
131171
|
-
const rootInstall = getRootInstallCommand(pm, wslContext.useWsl ? wslContext.installDir : void 0);
|
|
131172
|
-
const rootCommand = wrapCommandForWsl(rootInstall, wslContext);
|
|
131173
|
-
const rootFallbackCommand = wslContext.useWsl ? void 0 : (0, _webpack_lib_package_manager__rspack_import_4.sX)([
|
|
131174
|
-
'--silent',
|
|
131175
|
-
'install',
|
|
131176
|
-
'--prefix',
|
|
131177
|
-
installBaseDir
|
|
131178
|
-
]);
|
|
131179
|
-
await execInstallWithFallback(rootCommand, {
|
|
131180
|
-
cwd: wslContext.useWsl ? void 0 : installBaseDir,
|
|
131181
|
-
fallbackNpmCommand: rootFallbackCommand
|
|
131182
|
-
});
|
|
131183
|
-
console.log(_messages__rspack_import_2.ys(integration));
|
|
131184
|
-
}
|
|
131185
|
-
return true;
|
|
131186
|
-
} catch (error) {
|
|
131187
|
-
console.error('[extension.js][optional-deps] debug', {
|
|
131188
|
-
platform: process.platform,
|
|
131189
|
-
execPath: process.execPath,
|
|
131190
|
-
cwd: process.cwd(),
|
|
131191
|
-
path: process.env.PATH || process.env.Path,
|
|
131192
|
-
comspec: process.env.ComSpec,
|
|
131193
|
-
systemRoot: process.env.SystemRoot,
|
|
131194
|
-
npm_execpath: process.env.npm_execpath,
|
|
131195
|
-
npm_config_user_agent: process.env.npm_config_user_agent,
|
|
131196
|
-
npm_config_prefix: process.env.npm_config_prefix,
|
|
131197
|
-
npm_config_cache: process.env.npm_config_cache,
|
|
131198
|
-
npm_config_userconfig: process.env.npm_config_userconfig,
|
|
131199
|
-
installBaseDir,
|
|
131200
|
-
wslContext,
|
|
131201
|
-
pm
|
|
131202
|
-
});
|
|
131203
|
-
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
131204
|
-
if (isMissingManagerError(error)) console.error(_messages__rspack_import_2.Vo(integration));
|
|
131205
|
-
else console.error(_messages__rspack_import_2.DX(integration, error, isAuthor));
|
|
131206
|
-
return false;
|
|
131220
|
+
if (!didInstall) return false;
|
|
131207
131221
|
}
|
|
131222
|
+
return true;
|
|
131208
131223
|
}
|
|
131209
131224
|
function hasDependency(projectPath, dependency) {
|
|
131210
131225
|
const findNearestPackageJsonDirectory = (startPath)=>{
|
|
@@ -131282,14 +131297,12 @@ var __webpack_modules__ = {
|
|
|
131282
131297
|
return `${pintor__rspack_import_0_default().green('►►►')} ${name} installation completed.`;
|
|
131283
131298
|
}
|
|
131284
131299
|
function optionalToolingSetup(integrations, fallback, isAuthor) {
|
|
131285
|
-
const
|
|
131286
|
-
|
|
131287
|
-
|
|
131288
|
-
return `${items.slice(0, -1).join(', ')}, and ${items[items.length - 1]}`;
|
|
131289
|
-
};
|
|
131290
|
-
const list = integrations && integrations.length > 0 ? formatList(integrations) : fallback;
|
|
131300
|
+
const list = integrations && integrations.length > 0 ? integrations : [
|
|
131301
|
+
fallback
|
|
131302
|
+
];
|
|
131291
131303
|
const prefix = isAuthor ? pintor__rspack_import_0_default().brightMagenta('►►► Author says') : pintor__rspack_import_0_default().gray('►►►');
|
|
131292
|
-
|
|
131304
|
+
const suffix = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT ? ' (this is a one time operation)' : '';
|
|
131305
|
+
return list.map((integration)=>`${prefix} Installing specialized dependencies for ${integration}...${suffix}`);
|
|
131293
131306
|
}
|
|
131294
131307
|
function optionalToolingRootInstall(integration) {
|
|
131295
131308
|
return `${pintor__rspack_import_0_default().brightMagenta('►►► Author says')} [${integration}] Installing root dependencies for dev...`;
|
|
@@ -132291,6 +132304,7 @@ var __webpack_modules__ = {
|
|
|
132291
132304
|
});
|
|
132292
132305
|
var path__rspack_import_0 = __webpack_require__("path");
|
|
132293
132306
|
var fs__rspack_import_1 = __webpack_require__("fs");
|
|
132307
|
+
var module__rspack_import_2 = __webpack_require__("module");
|
|
132294
132308
|
function findExtensionDevelopRoot() {
|
|
132295
132309
|
const webpackLibDir = __dirname;
|
|
132296
132310
|
const webpackDir = path__rspack_import_0.resolve(webpackLibDir, '..');
|
|
@@ -132312,9 +132326,20 @@ var __webpack_modules__ = {
|
|
|
132312
132326
|
throw new Error(`Failed to load build-dependencies.json: ${error.message}`);
|
|
132313
132327
|
}
|
|
132314
132328
|
}
|
|
132329
|
+
const require1 = (0, module__rspack_import_2.createRequire)(__rslib_import_meta_url__);
|
|
132315
132330
|
function isDependencyInstalled(dependency, packageRoot) {
|
|
132316
132331
|
const nodeModulesPath = path__rspack_import_0.join(packageRoot, 'node_modules', dependency);
|
|
132317
|
-
|
|
132332
|
+
if (fs__rspack_import_1.existsSync(nodeModulesPath)) return true;
|
|
132333
|
+
try {
|
|
132334
|
+
require1.resolve(dependency, {
|
|
132335
|
+
paths: [
|
|
132336
|
+
packageRoot
|
|
132337
|
+
]
|
|
132338
|
+
});
|
|
132339
|
+
return true;
|
|
132340
|
+
} catch {
|
|
132341
|
+
return false;
|
|
132342
|
+
}
|
|
132318
132343
|
}
|
|
132319
132344
|
function areBuildDependenciesInstalled(packageRoot) {
|
|
132320
132345
|
const dependencies = loadBuildDependencies();
|
|
@@ -132695,6 +132720,126 @@ var __webpack_modules__ = {
|
|
|
132695
132720
|
return list;
|
|
132696
132721
|
}
|
|
132697
132722
|
},
|
|
132723
|
+
"./webpack/webpack-lib/install-cache.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
132724
|
+
"use strict";
|
|
132725
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
132726
|
+
Q: ()=>hasInstallMarker,
|
|
132727
|
+
h: ()=>writeInstallMarker
|
|
132728
|
+
});
|
|
132729
|
+
var path__rspack_import_0 = __webpack_require__("path");
|
|
132730
|
+
var fs__rspack_import_1 = __webpack_require__("fs");
|
|
132731
|
+
var crypto__rspack_import_2 = __webpack_require__("crypto");
|
|
132732
|
+
var _package_json__rspack_import_3 = __webpack_require__("./package.json");
|
|
132733
|
+
var _plugin_css_css_lib_integrations__rspack_import_4 = __webpack_require__("./webpack/plugin-css/css-lib/integrations.ts");
|
|
132734
|
+
function getInstallCacheDir(packageRoot) {
|
|
132735
|
+
return path__rspack_import_0.join(packageRoot, '.cache', 'extensionjs', 'install');
|
|
132736
|
+
}
|
|
132737
|
+
function getProjectKey(projectPath) {
|
|
132738
|
+
return (0, crypto__rspack_import_2.createHash)('sha1').update(path__rspack_import_0.resolve(projectPath)).digest('hex');
|
|
132739
|
+
}
|
|
132740
|
+
function getCacheVersionPath(cacheDir) {
|
|
132741
|
+
return path__rspack_import_0.join(cacheDir, 'version.json');
|
|
132742
|
+
}
|
|
132743
|
+
function getProjectDepsHash(projectPath) {
|
|
132744
|
+
try {
|
|
132745
|
+
const packageJsonPath = path__rspack_import_0.join(projectPath, 'package.json');
|
|
132746
|
+
if (!fs__rspack_import_1.existsSync(packageJsonPath)) return 'no-package-json';
|
|
132747
|
+
const raw = fs__rspack_import_1.readFileSync(packageJsonPath, 'utf8');
|
|
132748
|
+
const parsed = JSON.parse(raw || '{}');
|
|
132749
|
+
const deps = parsed?.dependencies || {};
|
|
132750
|
+
const devDeps = parsed?.devDependencies || {};
|
|
132751
|
+
const normalize = (input)=>{
|
|
132752
|
+
const sortedKeys = Object.keys(input).sort();
|
|
132753
|
+
const normalized = {};
|
|
132754
|
+
for (const key of sortedKeys)normalized[key] = input[key];
|
|
132755
|
+
return normalized;
|
|
132756
|
+
};
|
|
132757
|
+
const stable = JSON.stringify({
|
|
132758
|
+
dependencies: normalize(deps),
|
|
132759
|
+
devDependencies: normalize(devDeps)
|
|
132760
|
+
});
|
|
132761
|
+
return (0, crypto__rspack_import_2.createHash)('sha1').update(stable).digest('hex');
|
|
132762
|
+
} catch {
|
|
132763
|
+
return 'invalid-package-json';
|
|
132764
|
+
}
|
|
132765
|
+
}
|
|
132766
|
+
function ensureCacheVersion(cacheDir) {
|
|
132767
|
+
const versionPath = getCacheVersionPath(cacheDir);
|
|
132768
|
+
const expectedVersion = _package_json__rspack_import_3.rE;
|
|
132769
|
+
try {
|
|
132770
|
+
if (!fs__rspack_import_1.existsSync(versionPath)) return true;
|
|
132771
|
+
const raw = fs__rspack_import_1.readFileSync(versionPath, 'utf8');
|
|
132772
|
+
const data = JSON.parse(raw || '{}');
|
|
132773
|
+
if (data?.version !== expectedVersion) {
|
|
132774
|
+
fs__rspack_import_1.rmSync(cacheDir, {
|
|
132775
|
+
recursive: true,
|
|
132776
|
+
force: true
|
|
132777
|
+
});
|
|
132778
|
+
return false;
|
|
132779
|
+
}
|
|
132780
|
+
return true;
|
|
132781
|
+
} catch {
|
|
132782
|
+
try {
|
|
132783
|
+
fs__rspack_import_1.rmSync(cacheDir, {
|
|
132784
|
+
recursive: true,
|
|
132785
|
+
force: true
|
|
132786
|
+
});
|
|
132787
|
+
} catch {}
|
|
132788
|
+
return false;
|
|
132789
|
+
}
|
|
132790
|
+
}
|
|
132791
|
+
function getInstallMarkerPath(projectPath) {
|
|
132792
|
+
const packageRoot = (0, _plugin_css_css_lib_integrations__rspack_import_4.He)();
|
|
132793
|
+
if (!packageRoot) return;
|
|
132794
|
+
const cacheDir = getInstallCacheDir(packageRoot);
|
|
132795
|
+
return path__rspack_import_0.join(cacheDir, `${getProjectKey(projectPath)}.json`);
|
|
132796
|
+
}
|
|
132797
|
+
function hasInstallMarker(projectPath) {
|
|
132798
|
+
const marker = getInstallMarkerPath(projectPath);
|
|
132799
|
+
if (!marker) return false;
|
|
132800
|
+
const cacheDir = path__rspack_import_0.dirname(marker);
|
|
132801
|
+
if (!ensureCacheVersion(cacheDir)) return false;
|
|
132802
|
+
if (!fs__rspack_import_1.existsSync(marker)) return false;
|
|
132803
|
+
try {
|
|
132804
|
+
const raw = fs__rspack_import_1.readFileSync(marker, 'utf8');
|
|
132805
|
+
const data = JSON.parse(raw || '{}');
|
|
132806
|
+
const depsHash = getProjectDepsHash(projectPath);
|
|
132807
|
+
if (data?.depsHash !== depsHash) {
|
|
132808
|
+
fs__rspack_import_1.rmSync(marker, {
|
|
132809
|
+
force: true
|
|
132810
|
+
});
|
|
132811
|
+
return false;
|
|
132812
|
+
}
|
|
132813
|
+
return true;
|
|
132814
|
+
} catch {
|
|
132815
|
+
try {
|
|
132816
|
+
fs__rspack_import_1.rmSync(marker, {
|
|
132817
|
+
force: true
|
|
132818
|
+
});
|
|
132819
|
+
} catch {}
|
|
132820
|
+
return false;
|
|
132821
|
+
}
|
|
132822
|
+
}
|
|
132823
|
+
function writeInstallMarker(projectPath) {
|
|
132824
|
+
const marker = getInstallMarkerPath(projectPath);
|
|
132825
|
+
if (!marker) return;
|
|
132826
|
+
const cacheDir = path__rspack_import_0.dirname(marker);
|
|
132827
|
+
try {
|
|
132828
|
+
fs__rspack_import_1.mkdirSync(cacheDir, {
|
|
132829
|
+
recursive: true
|
|
132830
|
+
});
|
|
132831
|
+
fs__rspack_import_1.writeFileSync(getCacheVersionPath(cacheDir), JSON.stringify({
|
|
132832
|
+
version: _package_json__rspack_import_3.rE
|
|
132833
|
+
}));
|
|
132834
|
+
fs__rspack_import_1.writeFileSync(marker, JSON.stringify({
|
|
132835
|
+
projectPath: path__rspack_import_0.resolve(projectPath),
|
|
132836
|
+
depsHash: getProjectDepsHash(projectPath),
|
|
132837
|
+
version: _package_json__rspack_import_3.rE,
|
|
132838
|
+
ts: Date.now()
|
|
132839
|
+
}));
|
|
132840
|
+
} catch {}
|
|
132841
|
+
}
|
|
132842
|
+
},
|
|
132698
132843
|
"./webpack/webpack-lib/messages.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
132699
132844
|
"use strict";
|
|
132700
132845
|
__webpack_require__.d(__webpack_exports__, {
|
|
@@ -132800,7 +132945,8 @@ var __webpack_modules__ = {
|
|
|
132800
132945
|
return `${getLoggingPrefix('info')} Skipping browser runner for ${capitalizedBrowserName(browser)} (no-runner).`;
|
|
132801
132946
|
}
|
|
132802
132947
|
function installingRequiredDependencies() {
|
|
132803
|
-
|
|
132948
|
+
const suffix = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT ? ' (this is a one time operation)' : '';
|
|
132949
|
+
return `${getLoggingPrefix('info')} Installing general build dependencies...${suffix}`;
|
|
132804
132950
|
}
|
|
132805
132951
|
function installingBuildDependencies(dependencies) {
|
|
132806
132952
|
const list = dependencies.map((dep)=>pintor__rspack_import_2_default().gray(dep)).join(', ');
|
|
@@ -132947,7 +133093,7 @@ var __webpack_modules__ = {
|
|
|
132947
133093
|
return `${getLoggingPrefix('info')} Using ${pintor__rspack_import_2_default().yellow(integration)}.`;
|
|
132948
133094
|
}
|
|
132949
133095
|
function installingDependencies() {
|
|
132950
|
-
return `${getLoggingPrefix('info')} Installing project dependencies
|
|
133096
|
+
return `${getLoggingPrefix('info')} Installing project dependencies... ${pintor__rspack_import_2_default().gray('(This may take a moment)')}`;
|
|
132951
133097
|
}
|
|
132952
133098
|
function debugDirs(manifestDir, packageJsonDir) {
|
|
132953
133099
|
return `${getLoggingPrefix('info')} Directories\n${pintor__rspack_import_2_default().gray('MANIFEST_DIR')} ${pintor__rspack_import_2_default().underline(manifestDir)}\n${pintor__rspack_import_2_default().gray('PACKAGE_JSON_DIR')} ${pintor__rspack_import_2_default().underline(packageJsonDir)}`;
|
|
@@ -133077,44 +133223,18 @@ var __webpack_modules__ = {
|
|
|
133077
133223
|
} catch {}
|
|
133078
133224
|
return resolveNpmCliFromNode(process.execPath);
|
|
133079
133225
|
}
|
|
133080
|
-
function resolveWindowsCmdExe() {
|
|
133081
|
-
if ('win32' !== process.platform) return 'cmd.exe';
|
|
133082
|
-
const comspec = process.env.ComSpec;
|
|
133083
|
-
if (comspec && fs__rspack_import_0.existsSync(comspec)) return comspec;
|
|
133084
|
-
const systemRoot = process.env.SystemRoot || 'C:\\Windows';
|
|
133085
|
-
const fallback = path__rspack_import_1.join(systemRoot, 'System32', 'cmd.exe');
|
|
133086
|
-
if (fs__rspack_import_0.existsSync(fallback)) return fallback;
|
|
133087
|
-
return 'cmd.exe';
|
|
133088
|
-
}
|
|
133089
|
-
function formatCmdArgs(command, args) {
|
|
133090
|
-
const quotedCommand = command.includes(' ') ? `"${command}"` : command;
|
|
133091
|
-
const quotedArgs = args.map((arg)=>arg.includes(' ') ? `"${arg}"` : arg);
|
|
133092
|
-
return `${quotedCommand} ${quotedArgs.join(' ')}`.trim();
|
|
133093
|
-
}
|
|
133094
133226
|
function isWindowsExecutablePath(value) {
|
|
133095
133227
|
if (!value || 'win32' !== process.platform) return false;
|
|
133096
133228
|
return /\.(cmd|bat|exe)$/i.test(value);
|
|
133097
133229
|
}
|
|
133098
|
-
function shouldUseCmdExe(command) {
|
|
133099
|
-
if ('win32' !== process.platform) return false;
|
|
133100
|
-
if (/\.(cmd|bat)$/i.test(command)) return true;
|
|
133101
|
-
return [
|
|
133102
|
-
'npm',
|
|
133103
|
-
'pnpm',
|
|
133104
|
-
'yarn',
|
|
133105
|
-
'corepack',
|
|
133106
|
-
'bun'
|
|
133107
|
-
].includes(command);
|
|
133108
|
-
}
|
|
133109
133230
|
function resolveWindowsCommandPath(command) {
|
|
133110
133231
|
if ('win32' !== process.platform) return;
|
|
133111
133232
|
try {
|
|
133112
|
-
const
|
|
133113
|
-
const
|
|
133114
|
-
|
|
133115
|
-
|
|
133116
|
-
|
|
133117
|
-
`where ${command}`
|
|
133233
|
+
const systemRoot = process.env.SystemRoot || 'C:\\Windows';
|
|
133234
|
+
const whereExe = path__rspack_import_1.join(systemRoot, 'System32', 'where.exe');
|
|
133235
|
+
const whereCommand = fs__rspack_import_0.existsSync(whereExe) ? whereExe : 'where';
|
|
133236
|
+
const output = (0, child_process__rspack_import_2.execFileSync)(whereCommand, [
|
|
133237
|
+
command
|
|
133118
133238
|
], {
|
|
133119
133239
|
encoding: 'utf8',
|
|
133120
133240
|
stdio: [
|
|
@@ -133193,10 +133313,15 @@ var __webpack_modules__ = {
|
|
|
133193
133313
|
];
|
|
133194
133314
|
for (const candidate of candidates){
|
|
133195
133315
|
const resolved = resolveCommandOnPath(candidate);
|
|
133196
|
-
if (resolved)
|
|
133197
|
-
|
|
133198
|
-
|
|
133199
|
-
|
|
133316
|
+
if (resolved) {
|
|
133317
|
+
if ('win32' === process.platform && /\.(cmd|bat)$/i.test(resolved)) return {
|
|
133318
|
+
name: candidate
|
|
133319
|
+
};
|
|
133320
|
+
return {
|
|
133321
|
+
name: candidate,
|
|
133322
|
+
execPath: resolved
|
|
133323
|
+
};
|
|
133324
|
+
}
|
|
133200
133325
|
}
|
|
133201
133326
|
const corepackPath = resolveCommandOnPath('corepack');
|
|
133202
133327
|
if (corepackPath || canRunCorepack()) return {
|
|
@@ -133269,20 +133394,10 @@ var __webpack_modules__ = {
|
|
|
133269
133394
|
};
|
|
133270
133395
|
}
|
|
133271
133396
|
function buildSpawnInvocation(command, args) {
|
|
133272
|
-
|
|
133397
|
+
return {
|
|
133273
133398
|
command,
|
|
133274
133399
|
args
|
|
133275
133400
|
};
|
|
133276
|
-
const cmdExe = resolveWindowsCmdExe();
|
|
133277
|
-
return {
|
|
133278
|
-
command: cmdExe,
|
|
133279
|
-
args: [
|
|
133280
|
-
'/d',
|
|
133281
|
-
'/s',
|
|
133282
|
-
'/c',
|
|
133283
|
-
formatCmdArgs(command, args)
|
|
133284
|
-
]
|
|
133285
|
-
};
|
|
133286
133401
|
}
|
|
133287
133402
|
function execInstallCommand(command, args, options) {
|
|
133288
133403
|
const invocation = buildSpawnInvocation(command, args);
|
|
@@ -133315,6 +133430,7 @@ var __webpack_modules__ = {
|
|
|
133315
133430
|
});
|
|
133316
133431
|
var fs__rspack_import_0 = __webpack_require__("fs");
|
|
133317
133432
|
var path__rspack_import_1 = __webpack_require__("path");
|
|
133433
|
+
var _install_cache__rspack_import_2 = __webpack_require__("./webpack/webpack-lib/install-cache.ts");
|
|
133318
133434
|
function asAbsolute(p) {
|
|
133319
133435
|
return path__rspack_import_1.isAbsolute(p) ? p : path__rspack_import_1.resolve(p);
|
|
133320
133436
|
}
|
|
@@ -133332,6 +133448,25 @@ var __webpack_modules__ = {
|
|
|
133332
133448
|
function needsInstall(packageJsonDir) {
|
|
133333
133449
|
const nm = getNodeModulesDir(packageJsonDir);
|
|
133334
133450
|
try {
|
|
133451
|
+
const packageJsonPath = path__rspack_import_1.join(packageJsonDir, 'package.json');
|
|
133452
|
+
if (fs__rspack_import_0.existsSync(packageJsonPath)) {
|
|
133453
|
+
const raw = fs__rspack_import_0.readFileSync(packageJsonPath, 'utf-8');
|
|
133454
|
+
const packageJson = JSON.parse(raw);
|
|
133455
|
+
const depsCount = Object.keys(packageJson?.dependencies || {}).length;
|
|
133456
|
+
const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
|
|
133457
|
+
if (depsCount + devDepsCount === 0) return false;
|
|
133458
|
+
if ((0, _install_cache__rspack_import_2.Q)(packageJsonDir)) return false;
|
|
133459
|
+
if (!fs__rspack_import_0.existsSync(nm)) return true;
|
|
133460
|
+
const deps = Object.keys(packageJson?.dependencies || {});
|
|
133461
|
+
const devDeps = Object.keys(packageJson?.devDependencies || {});
|
|
133462
|
+
if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.pnpm'))) return false;
|
|
133463
|
+
if (fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, '.modules.yaml'))) return false;
|
|
133464
|
+
const hasInstalledDep = [
|
|
133465
|
+
...deps,
|
|
133466
|
+
...devDeps
|
|
133467
|
+
].some((dep)=>fs__rspack_import_0.existsSync(path__rspack_import_1.join(nm, dep)));
|
|
133468
|
+
return !hasInstalledDep;
|
|
133469
|
+
}
|
|
133335
133470
|
return !fs__rspack_import_0.existsSync(nm) || 0 === fs__rspack_import_0.readdirSync(nm).length;
|
|
133336
133471
|
} catch {
|
|
133337
133472
|
return true;
|
|
@@ -133340,7 +133475,8 @@ var __webpack_modules__ = {
|
|
|
133340
133475
|
function normalizeBrowser(browser, chromiumBinary, geckoBinary) {
|
|
133341
133476
|
const requested = String(browser || '');
|
|
133342
133477
|
if (chromiumBinary) {
|
|
133343
|
-
if (!requested || 'chromium
|
|
133478
|
+
if (!requested || 'chromium-based' === requested) return 'chromium-based';
|
|
133479
|
+
if ('chromium' === requested) return 'chromium';
|
|
133344
133480
|
if ('edge' === requested) return 'edge';
|
|
133345
133481
|
if ('chrome' === requested) return 'chrome';
|
|
133346
133482
|
}
|
|
@@ -133432,7 +133568,10 @@ var __webpack_modules__ = {
|
|
|
133432
133568
|
return {
|
|
133433
133569
|
stop: ()=>{
|
|
133434
133570
|
clearInterval(timer);
|
|
133435
|
-
if (process.stdout.isTTY)
|
|
133571
|
+
if (process.stdout.isTTY) {
|
|
133572
|
+
process.stdout.write(`\r${' '.repeat(lastVisibleLength)}\r`);
|
|
133573
|
+
if (options?.persistLabel) process.stdout.write(`${label}\n`);
|
|
133574
|
+
}
|
|
133436
133575
|
}
|
|
133437
133576
|
};
|
|
133438
133577
|
}
|
|
@@ -133580,7 +133719,7 @@ var __webpack_modules__ = {
|
|
|
133580
133719
|
},
|
|
133581
133720
|
"./package.json" (module) {
|
|
133582
133721
|
"use strict";
|
|
133583
|
-
module.exports = JSON.parse('{"rE":"3.5.
|
|
133722
|
+
module.exports = JSON.parse('{"rE":"3.5.1","El":{"@rspack/core":"^1.7.5","@rspack/dev-server":"^1.1.5","@swc/core":"^1.15.8","@swc/helpers":"^0.5.18","adm-zip":"^0.5.16","browser-extension-manifest-fields":"^2.2.1","case-sensitive-paths-webpack-plugin":"^2.4.0","chrome-location2":"4.0.0","chromium-location":"2.0.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^17.2.3","edge-location":"2.2.0","firefox-location2":"3.0.0","go-git-it":"^5.1.1","ignore":"^7.0.5","loader-utils":"^3.3.1","magic-string":"^0.30.21","parse5":"^8.0.0","parse5-utilities":"^1.0.0","pintor":"0.3.0","schema-utils":"^4.3.3","tiny-glob":"^0.2.9","unique-names-generator":"^4.7.1","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.19.0"}}');
|
|
133584
133723
|
}
|
|
133585
133724
|
};
|
|
133586
133725
|
var __webpack_module_cache__ = {};
|
|
@@ -133930,8 +134069,10 @@ var __webpack_exports__ = {};
|
|
|
133930
134069
|
const stdio = isAuthor ? 'inherit' : 'ignore';
|
|
133931
134070
|
const progressLabel = messages.xK(dependencies);
|
|
133932
134071
|
const progressEnabled = !isAuthor && (0, webpack_lib_progress.u)();
|
|
134072
|
+
const persistLabel = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
133933
134073
|
const progress = (0, webpack_lib_progress.J)(progressLabel, {
|
|
133934
|
-
enabled: progressEnabled
|
|
134074
|
+
enabled: progressEnabled,
|
|
134075
|
+
persistLabel
|
|
133935
134076
|
});
|
|
133936
134077
|
if (!progressEnabled) console.log(progressLabel);
|
|
133937
134078
|
if (isAuthor) console.warn(messages.TL('build dependencies'));
|
|
@@ -133952,14 +134093,28 @@ var __webpack_exports__ = {};
|
|
|
133952
134093
|
process.chdir(originalDirectory);
|
|
133953
134094
|
}
|
|
133954
134095
|
}
|
|
134096
|
+
var install_cache = __webpack_require__("./webpack/webpack-lib/install-cache.ts");
|
|
133955
134097
|
function install_dependencies_getInstallArgs() {
|
|
133956
134098
|
return [
|
|
133957
134099
|
'install'
|
|
133958
134100
|
];
|
|
133959
134101
|
}
|
|
134102
|
+
async function hasDependenciesToInstall(projectPath) {
|
|
134103
|
+
try {
|
|
134104
|
+
const raw = await external_fs_.promises.readFile(external_path_.join(projectPath, 'package.json'), 'utf8');
|
|
134105
|
+
const packageJson = JSON.parse(raw);
|
|
134106
|
+
const depsCount = Object.keys(packageJson?.dependencies || {}).length;
|
|
134107
|
+
const devDepsCount = Object.keys(packageJson?.devDependencies || {}).length;
|
|
134108
|
+
return depsCount + devDepsCount > 0;
|
|
134109
|
+
} catch (error) {
|
|
134110
|
+
return true;
|
|
134111
|
+
}
|
|
134112
|
+
}
|
|
133960
134113
|
async function installDependencies(projectPath) {
|
|
133961
134114
|
const nodeModulesPath = external_path_.join(projectPath, 'node_modules');
|
|
133962
134115
|
const originalDirectory = process.cwd();
|
|
134116
|
+
const shouldInstall = await hasDependenciesToInstall(projectPath);
|
|
134117
|
+
if (!shouldInstall) return;
|
|
133963
134118
|
const progressLabel = messages.Vy();
|
|
133964
134119
|
try {
|
|
133965
134120
|
process.chdir(projectPath);
|
|
@@ -133977,8 +134132,10 @@ var __webpack_exports__ = {};
|
|
|
133977
134132
|
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
133978
134133
|
const stdio = isAuthor ? 'inherit' : 'ignore';
|
|
133979
134134
|
const progressEnabled = !isAuthor && (0, webpack_lib_progress.u)();
|
|
134135
|
+
const persistLabel = 'true' === process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
133980
134136
|
const progress = (0, webpack_lib_progress.J)(progressLabel, {
|
|
133981
|
-
enabled: progressEnabled
|
|
134137
|
+
enabled: progressEnabled,
|
|
134138
|
+
persistLabel
|
|
133982
134139
|
});
|
|
133983
134140
|
if (!progressEnabled) console.log(progressLabel);
|
|
133984
134141
|
if (isAuthor) console.warn(messages.TL('project dependencies'));
|
|
@@ -133988,6 +134145,7 @@ var __webpack_exports__ = {};
|
|
|
133988
134145
|
cwd: projectPath,
|
|
133989
134146
|
stdio
|
|
133990
134147
|
});
|
|
134148
|
+
(0, install_cache.h)(projectPath);
|
|
133991
134149
|
} finally{
|
|
133992
134150
|
progress.stop();
|
|
133993
134151
|
}
|
|
@@ -134009,7 +134167,7 @@ var __webpack_exports__ = {};
|
|
|
134009
134167
|
installedBuild: false,
|
|
134010
134168
|
installedUser: false
|
|
134011
134169
|
};
|
|
134012
|
-
console.log(messages.G2());
|
|
134170
|
+
if (needsBuildInstall) console.log(messages.G2());
|
|
134013
134171
|
if (needsBuildInstall && packageRoot) await installOwnDependencies(missingBuild, packageRoot);
|
|
134014
134172
|
if (needsUserInstall && projectPath) await installDependencies(projectPath);
|
|
134015
134173
|
if (opts?.showRunAgainMessage !== false) console.log(messages.Z0());
|
|
@@ -134177,7 +134335,14 @@ var __webpack_exports__ = {};
|
|
|
134177
134335
|
return;
|
|
134178
134336
|
}
|
|
134179
134337
|
const missingOptionalDeps = new Set();
|
|
134338
|
+
const missingByIntegration = {};
|
|
134180
134339
|
const usedIntegrations = [];
|
|
134340
|
+
const addMissing = (integration, dependency)=>{
|
|
134341
|
+
if (missingOptionalDeps.has(dependency)) return;
|
|
134342
|
+
missingOptionalDeps.add(dependency);
|
|
134343
|
+
if (!missingByIntegration[integration]) missingByIntegration[integration] = [];
|
|
134344
|
+
missingByIntegration[integration].push(dependency);
|
|
134345
|
+
};
|
|
134181
134346
|
const usesTypeScript = (0, typescript.eE)(projectPath);
|
|
134182
134347
|
const usesReact = (0, react.S)(projectPath);
|
|
134183
134348
|
const usesPreact = (0, preact.K)(projectPath);
|
|
@@ -134187,31 +134352,29 @@ var __webpack_exports__ = {};
|
|
|
134187
134352
|
const usesLess = (0, less.K)(projectPath);
|
|
134188
134353
|
const usesPostCss = (0, postcss.A)(projectPath);
|
|
134189
134354
|
if (usesTypeScript) {
|
|
134190
|
-
|
|
134191
|
-
|
|
134192
|
-
usedIntegrations.push('TypeScript');
|
|
134193
|
-
}
|
|
134355
|
+
usedIntegrations.push('TypeScript');
|
|
134356
|
+
if (!canResolveFromProject("typescript", projectPath)) addMissing('TypeScript', "typescript");
|
|
134194
134357
|
}
|
|
134195
134358
|
if (usesReact) {
|
|
134196
|
-
if (!canResolve('react-refresh', projectPath))
|
|
134197
|
-
if (!canResolve('@rspack/plugin-react-refresh', projectPath))
|
|
134359
|
+
if (!canResolve('react-refresh', projectPath)) addMissing('React', 'react-refresh');
|
|
134360
|
+
if (!canResolve('@rspack/plugin-react-refresh', projectPath)) addMissing('React', '@rspack/plugin-react-refresh');
|
|
134198
134361
|
usedIntegrations.push('React');
|
|
134199
134362
|
}
|
|
134200
134363
|
if (usesPreact) {
|
|
134201
|
-
if (!canResolve('@prefresh/core', projectPath))
|
|
134202
|
-
if (!canResolve('@prefresh/utils', projectPath))
|
|
134203
|
-
if (!canResolve('@rspack/plugin-preact-refresh', projectPath))
|
|
134204
|
-
if (!canResolve('preact', projectPath))
|
|
134364
|
+
if (!canResolve('@prefresh/core', projectPath)) addMissing('Preact', '@prefresh/core');
|
|
134365
|
+
if (!canResolve('@prefresh/utils', projectPath)) addMissing('Preact', '@prefresh/utils');
|
|
134366
|
+
if (!canResolve('@rspack/plugin-preact-refresh', projectPath)) addMissing('Preact', '@rspack/plugin-preact-refresh');
|
|
134367
|
+
if (!canResolve('preact', projectPath)) addMissing('Preact', 'preact');
|
|
134205
134368
|
usedIntegrations.push('Preact');
|
|
134206
134369
|
}
|
|
134207
134370
|
if (usesVue) {
|
|
134208
|
-
if (!canResolve('vue-loader', projectPath))
|
|
134209
|
-
if (!canResolve('@vue/compiler-sfc', projectPath))
|
|
134371
|
+
if (!canResolve('vue-loader', projectPath)) addMissing('Vue', 'vue-loader');
|
|
134372
|
+
if (!canResolve('@vue/compiler-sfc', projectPath)) addMissing('Vue', '@vue/compiler-sfc');
|
|
134210
134373
|
usedIntegrations.push('Vue');
|
|
134211
134374
|
}
|
|
134212
134375
|
if (usesSvelte) {
|
|
134213
|
-
if (!canResolveFromProject('svelte-loader', projectPath) && !canResolve('svelte-loader', projectPath))
|
|
134214
|
-
if (!canResolveFromProject("typescript", projectPath))
|
|
134376
|
+
if (!canResolveFromProject('svelte-loader', projectPath) && !canResolve('svelte-loader', projectPath)) addMissing('Svelte', 'svelte-loader');
|
|
134377
|
+
if (!canResolveFromProject("typescript", projectPath)) addMissing('Svelte', "typescript");
|
|
134215
134378
|
usedIntegrations.push('Svelte');
|
|
134216
134379
|
}
|
|
134217
134380
|
if (usesSass) {
|
|
@@ -134221,28 +134384,32 @@ var __webpack_exports__ = {};
|
|
|
134221
134384
|
'postcss-scss',
|
|
134222
134385
|
'postcss-preset-env'
|
|
134223
134386
|
];
|
|
134224
|
-
for (const dep of postCssDeps)if (!canResolve(dep, projectPath))
|
|
134225
|
-
|
|
134387
|
+
for (const dep of postCssDeps)if (!canResolve(dep, projectPath)) addMissing('Sass', dep);
|
|
134388
|
+
addMissing('Sass', 'sass-loader');
|
|
134226
134389
|
usedIntegrations.push('Sass');
|
|
134227
134390
|
}
|
|
134228
134391
|
}
|
|
134229
134392
|
if (usesLess) {
|
|
134230
134393
|
if (!canResolve('less-loader', projectPath)) {
|
|
134231
|
-
if (!canResolve('less', projectPath))
|
|
134232
|
-
|
|
134394
|
+
if (!canResolve('less', projectPath)) addMissing('Less', 'less');
|
|
134395
|
+
addMissing('Less', 'less-loader');
|
|
134233
134396
|
usedIntegrations.push('Less');
|
|
134234
134397
|
}
|
|
134235
134398
|
}
|
|
134236
134399
|
if (!usesPostCss || canResolve('postcss-loader', projectPath) || usesSass || usesLess) {
|
|
134237
134400
|
if (usesPostCss) usedIntegrations.push('PostCSS');
|
|
134238
134401
|
} else {
|
|
134239
|
-
if (!canResolve('postcss', projectPath))
|
|
134240
|
-
|
|
134402
|
+
if (!canResolve('postcss', projectPath)) addMissing('PostCSS', 'postcss');
|
|
134403
|
+
addMissing('PostCSS', 'postcss-loader');
|
|
134241
134404
|
usedIntegrations.push('PostCSS');
|
|
134242
134405
|
}
|
|
134243
134406
|
if (missingOptionalDeps.size > 0) {
|
|
134244
134407
|
const uniqueIntegrations = Array.from(new Set(usedIntegrations));
|
|
134245
|
-
const
|
|
134408
|
+
const installPlans = uniqueIntegrations.map((integration)=>({
|
|
134409
|
+
integration,
|
|
134410
|
+
dependencies: missingByIntegration[integration] || []
|
|
134411
|
+
})).filter((plan)=>plan.dependencies.length > 0);
|
|
134412
|
+
const didInstall = await (0, frameworks_lib_integrations.Dy)(installPlans);
|
|
134246
134413
|
if (!didInstall) throw new Error('[Optional] Optional dependencies failed to install.');
|
|
134247
134414
|
if (opts?.showRunAgainMessage !== false && 'true' === process.env.EXTENSION_AUTHOR_MODE) console.log(js_frameworks_lib_messages.Q2(uniqueIntegrations));
|
|
134248
134415
|
if (opts?.exitOnInstall !== false) {
|
|
@@ -134301,11 +134468,18 @@ var __webpack_exports__ = {};
|
|
|
134301
134468
|
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
134302
134469
|
try {
|
|
134303
134470
|
const shouldInstallProjectDeps = !isAuthor || buildOptions?.install !== false;
|
|
134304
|
-
|
|
134305
|
-
|
|
134306
|
-
|
|
134307
|
-
|
|
134308
|
-
|
|
134471
|
+
const previousOneTimeHint = process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134472
|
+
process.env.EXTENSION_ONE_TIME_INSTALL_HINT = 'true';
|
|
134473
|
+
try {
|
|
134474
|
+
await ensureProjectReady(projectStructure, 'production', {
|
|
134475
|
+
skipProjectInstall: isVitest || !projectStructure.packageJsonPath || !shouldInstallProjectDeps,
|
|
134476
|
+
exitOnInstall: false,
|
|
134477
|
+
showRunAgainMessage: false
|
|
134478
|
+
});
|
|
134479
|
+
} finally{
|
|
134480
|
+
if (void 0 === previousOneTimeHint) delete process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134481
|
+
else process.env.EXTENSION_ONE_TIME_INSTALL_HINT = previousOneTimeHint;
|
|
134482
|
+
}
|
|
134309
134483
|
const [{ rspack }, { merge }, { handleStatsErrors }, { default: webpackConfig }] = await Promise.all([
|
|
134310
134484
|
Promise.resolve(require1('@rspack/core')),
|
|
134311
134485
|
import("webpack-merge"),
|
|
@@ -134419,11 +134593,18 @@ var __webpack_exports__ = {};
|
|
|
134419
134593
|
const debug = isAuthor;
|
|
134420
134594
|
const { manifestDir, packageJsonDir } = (0, webpack_lib_paths.fu)(projectStructure);
|
|
134421
134595
|
const shouldInstallProjectDeps = !isAuthor || false !== devOptions.install;
|
|
134422
|
-
|
|
134423
|
-
|
|
134424
|
-
|
|
134425
|
-
|
|
134426
|
-
|
|
134596
|
+
const previousOneTimeHint = process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134597
|
+
process.env.EXTENSION_ONE_TIME_INSTALL_HINT = 'true';
|
|
134598
|
+
try {
|
|
134599
|
+
await ensureProjectReady(projectStructure, 'development', {
|
|
134600
|
+
skipProjectInstall: !projectStructure.packageJsonPath || !shouldInstallProjectDeps,
|
|
134601
|
+
exitOnInstall: false,
|
|
134602
|
+
showRunAgainMessage: false
|
|
134603
|
+
});
|
|
134604
|
+
} finally{
|
|
134605
|
+
if (void 0 === previousOneTimeHint) delete process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134606
|
+
else process.env.EXTENSION_ONE_TIME_INSTALL_HINT = previousOneTimeHint;
|
|
134607
|
+
}
|
|
134427
134608
|
if ((0, typescript.eE)(manifestDir)) await generateExtensionTypes(manifestDir, packageJsonDir);
|
|
134428
134609
|
if (projectStructure.packageJsonPath) assertNoManagedDependencyConflicts(projectStructure.packageJsonPath, manifestDir);
|
|
134429
134610
|
const browser = (0, webpack_lib_paths.YN)(devOptions.browser || 'chrome', devOptions.chromiumBinary, devOptions.geckoBinary || devOptions.firefoxBinary);
|
|
@@ -134432,6 +134613,7 @@ var __webpack_exports__ = {};
|
|
|
134432
134613
|
console.log(messages.SG(manifestDir, packageJsonDir));
|
|
134433
134614
|
console.log(messages._A(browser, devOptions.chromiumBinary, geckoBinary));
|
|
134434
134615
|
}
|
|
134616
|
+
if ('true' === process.env.EXTENSION_DEV_DRY_RUN) return;
|
|
134435
134617
|
const { devServer } = await Promise.all([
|
|
134436
134618
|
__webpack_require__.e("215"),
|
|
134437
134619
|
__webpack_require__.e("547"),
|
|
@@ -134552,11 +134734,14 @@ var __webpack_exports__ = {};
|
|
|
134552
134734
|
const safeBrowserConfig = (0, sanitize.a)(browserConfig);
|
|
134553
134735
|
const safeCommandConfig = (0, sanitize.a)(commandConfig);
|
|
134554
134736
|
const safePreviewOptions = (0, sanitize.a)(previewOptions);
|
|
134737
|
+
const mergedGeckoBinary = safePreviewOptions.geckoBinary || safePreviewOptions.firefoxBinary || safeCommandConfig.geckoBinary || safeCommandConfig.firefoxBinary || safeBrowserConfig.geckoBinary || safeBrowserConfig.firefoxBinary;
|
|
134738
|
+
const mergedChromiumBinary = safePreviewOptions.chromiumBinary || safeCommandConfig.chromiumBinary || safeBrowserConfig.chromiumBinary;
|
|
134555
134739
|
const merged = {
|
|
134556
134740
|
...safeBrowserConfig,
|
|
134557
134741
|
...safeCommandConfig,
|
|
134558
134742
|
...safePreviewOptions,
|
|
134559
|
-
|
|
134743
|
+
chromiumBinary: mergedChromiumBinary,
|
|
134744
|
+
geckoBinary: mergedGeckoBinary
|
|
134560
134745
|
};
|
|
134561
134746
|
const darkDefaults = (0, dark_mode.U)({
|
|
134562
134747
|
browser,
|
|
@@ -134593,11 +134778,18 @@ var __webpack_exports__ = {};
|
|
|
134593
134778
|
const isAuthor = 'true' === process.env.EXTENSION_AUTHOR_MODE;
|
|
134594
134779
|
const debug = isAuthor;
|
|
134595
134780
|
const shouldInstallProjectDeps = !isAuthor || false !== startOptions.install;
|
|
134596
|
-
|
|
134597
|
-
|
|
134598
|
-
|
|
134599
|
-
|
|
134600
|
-
|
|
134781
|
+
const previousOneTimeHint = process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134782
|
+
process.env.EXTENSION_ONE_TIME_INSTALL_HINT = 'true';
|
|
134783
|
+
try {
|
|
134784
|
+
await ensureProjectReady(projectStructure, 'development', {
|
|
134785
|
+
skipProjectInstall: !projectStructure.packageJsonPath || !shouldInstallProjectDeps,
|
|
134786
|
+
exitOnInstall: false,
|
|
134787
|
+
showRunAgainMessage: false
|
|
134788
|
+
});
|
|
134789
|
+
} finally{
|
|
134790
|
+
if (void 0 === previousOneTimeHint) delete process.env.EXTENSION_ONE_TIME_INSTALL_HINT;
|
|
134791
|
+
else process.env.EXTENSION_ONE_TIME_INSTALL_HINT = previousOneTimeHint;
|
|
134792
|
+
}
|
|
134601
134793
|
const browser = (0, webpack_lib_paths.YN)(startOptions.browser || 'chrome', startOptions.chromiumBinary, startOptions.geckoBinary || startOptions.firefoxBinary);
|
|
134602
134794
|
const { manifestDir, packageJsonDir } = (0, webpack_lib_paths.fu)(projectStructure);
|
|
134603
134795
|
const commandConfig = await (0, config_loader.eY)(packageJsonDir, 'start');
|
|
@@ -134620,7 +134812,7 @@ var __webpack_exports__ = {};
|
|
|
134620
134812
|
...commandConfig,
|
|
134621
134813
|
...startOptions,
|
|
134622
134814
|
browser,
|
|
134623
|
-
geckoBinary: startOptions.geckoBinary || startOptions.firefoxBinary,
|
|
134815
|
+
geckoBinary: startOptions.geckoBinary || startOptions.firefoxBinary || browserConfig.geckoBinary || browserConfig.firefoxBinary || commandConfig.geckoBinary || commandConfig.firefoxBinary,
|
|
134624
134816
|
outputPath: distPath
|
|
134625
134817
|
});
|
|
134626
134818
|
} catch (error) {
|