extension 4.0.4 → 4.0.5
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/browsers.cjs
CHANGED
|
@@ -447,6 +447,9 @@ var __webpack_modules__ = {
|
|
|
447
447
|
})();
|
|
448
448
|
return `${getLoggingPrefix('error')} ${isUnreachable}Either install the missing browser or choose a different one via ${pintor__rspack_import_4_default().blue('--browser')} ${pintor__rspack_import_4_default().gray('<chrome|edge|firefox>')}.\n\n${pintor__rspack_import_4_default().red('NOT FOUND')} ${pintor__rspack_import_4_default().underline(browserBinaryLocation || capitalizedBrowserName(browser) + 'BROWSER')}` + wslHint;
|
|
449
449
|
}
|
|
450
|
+
function usingManagedChromiumFamilyFallback(requestedBrowser, fallbackBrowser, binaryPath) {
|
|
451
|
+
return `${getLoggingPrefix('info')} ${managedBrowserDisplayName(requestedBrowser)} is not installed. Using managed ${managedBrowserDisplayName(fallbackBrowser)} instead.\n${pintor__rspack_import_4_default().gray('PATH')} ${pintor__rspack_import_4_default().underline(binaryPath)}\nRun ${pintor__rspack_import_4_default().blue(`npx extension install ${requestedBrowser}`)} to use ${managedBrowserDisplayName(requestedBrowser)} itself.`;
|
|
452
|
+
}
|
|
450
453
|
function browserLaunchError(browser, error) {
|
|
451
454
|
return `${getLoggingPrefix('error')} Error launching ${capitalizedBrowserName(browser)}:\n${pintor__rspack_import_4_default().red(errorDetail(error))}`;
|
|
452
455
|
}
|
|
@@ -536,6 +539,12 @@ var __webpack_modules__ = {
|
|
|
536
539
|
body.push(pintor__rspack_import_4_default().gray(`Install ${browserDisplay} into the managed browser cache:`));
|
|
537
540
|
body.push('');
|
|
538
541
|
body.push(` ${pintor__rspack_import_4_default().bold(pintor__rspack_import_4_default().blue(installCommand))}`);
|
|
542
|
+
if ('chromium' === browserNorm) {
|
|
543
|
+
body.push('');
|
|
544
|
+
body.push(pintor__rspack_import_4_default().gray('Or install Chrome for Testing (stable channel) — chromium targets use it automatically:'));
|
|
545
|
+
body.push('');
|
|
546
|
+
body.push(` ${pintor__rspack_import_4_default().bold(pintor__rspack_import_4_default().blue(preferredManagedInstallCommand('chrome')))}`);
|
|
547
|
+
}
|
|
539
548
|
if (finalCachePath) {
|
|
540
549
|
body.push('');
|
|
541
550
|
body.push(`${dim('INSTALL PATH')} ${pintor__rspack_import_4_default().underline(finalCachePath)}`);
|
|
@@ -723,6 +732,7 @@ var __webpack_modules__ = {
|
|
|
723
732
|
TF: ()=>enhancedProcessManagementCleanupError,
|
|
724
733
|
Te: ()=>cdpClientTargetWebSocketUrlStored,
|
|
725
734
|
Th: ()=>browserInstanceExited,
|
|
735
|
+
Ug: ()=>usingManagedChromiumFamilyFallback,
|
|
726
736
|
Vk: ()=>enhancedProcessManagementCleanup,
|
|
727
737
|
WV: ()=>addonInstallError,
|
|
728
738
|
XH: ()=>enhancedProcessManagementTerminating,
|
|
@@ -857,6 +867,23 @@ var __webpack_modules__ = {
|
|
|
857
867
|
}
|
|
858
868
|
return null;
|
|
859
869
|
}
|
|
870
|
+
function resolveChromiumFamilyFallback(compilation, requested = 'chromium') {
|
|
871
|
+
const candidates = 'chrome' === requested ? [
|
|
872
|
+
'chromium',
|
|
873
|
+
'edge'
|
|
874
|
+
] : [
|
|
875
|
+
'chrome',
|
|
876
|
+
'edge'
|
|
877
|
+
];
|
|
878
|
+
for (const browser of candidates){
|
|
879
|
+
const binary = resolveFromBinaries(compilation, browser);
|
|
880
|
+
if (binary && fs__rspack_import_0.existsSync(binary)) return {
|
|
881
|
+
browser,
|
|
882
|
+
binary
|
|
883
|
+
};
|
|
884
|
+
}
|
|
885
|
+
return null;
|
|
886
|
+
}
|
|
860
887
|
function buildCandidates(dir, browser) {
|
|
861
888
|
const out = [];
|
|
862
889
|
if ('chrome' === browser) if ('darwin' === process.platform) out.push(path__rspack_import_1.join(dir, 'chrome-mac-arm64', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'), path__rspack_import_1.join(dir, 'chrome-mac', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'));
|
|
@@ -937,7 +964,8 @@ var __webpack_modules__ = {
|
|
|
937
964
|
__webpack_require__.d(__webpack_exports__, {
|
|
938
965
|
$4: ()=>managedBrowserCacheEnv,
|
|
939
966
|
LB: ()=>computeBinariesBaseDir,
|
|
940
|
-
kI: ()=>resolveFromBinaries
|
|
967
|
+
kI: ()=>resolveFromBinaries,
|
|
968
|
+
zN: ()=>resolveChromiumFamilyFallback
|
|
941
969
|
});
|
|
942
970
|
},
|
|
943
971
|
"./browsers/browsers-lib/process-teardown.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -2138,7 +2166,18 @@ var __webpack_modules__ = {
|
|
|
2138
2166
|
const getInstallGuidanceText = (target)=>{
|
|
2139
2167
|
try {
|
|
2140
2168
|
if ('edge' === target) return (0, external_edge_location_.getInstallGuidance)();
|
|
2141
|
-
if ('chromium' === target) return (0, external_chromium_location_.getInstallGuidance)(
|
|
2169
|
+
if ('chromium' === target) return (0, external_chromium_location_.getInstallGuidance)({
|
|
2170
|
+
steps: [
|
|
2171
|
+
{
|
|
2172
|
+
summary: 'Install Chrome for Testing (recommended — stable channel; chromium targets use it automatically)',
|
|
2173
|
+
command: 'npx extension install chrome'
|
|
2174
|
+
},
|
|
2175
|
+
{
|
|
2176
|
+
summary: 'Install Chromium (unbranded snapshot build)',
|
|
2177
|
+
command: 'npx extension install chromium'
|
|
2178
|
+
}
|
|
2179
|
+
]
|
|
2180
|
+
});
|
|
2142
2181
|
return (0, external_chrome_location2_.getInstallGuidance)();
|
|
2143
2182
|
} catch {
|
|
2144
2183
|
return `npx extension install ${target}`;
|
|
@@ -2342,6 +2381,14 @@ var __webpack_modules__ = {
|
|
|
2342
2381
|
if (!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) {
|
|
2343
2382
|
browserBinaryLocation = browserBinaryLocation || resolveManagedBinary();
|
|
2344
2383
|
if (!browserBinaryLocation) browserBinaryLocation = resolveWslFallback();
|
|
2384
|
+
if ((!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) && ('chrome' === browser || 'chromium' === browser)) {
|
|
2385
|
+
const familyFallback = output_binaries_resolver.zN(compilation, browser);
|
|
2386
|
+
const normalized = normalizePath(familyFallback?.binary || null);
|
|
2387
|
+
if (familyFallback && isUsableBinary(normalized)) {
|
|
2388
|
+
console.log(messages.Ug(browser, familyFallback.browser, normalized));
|
|
2389
|
+
browserBinaryLocation = normalized;
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2345
2392
|
if (!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) {
|
|
2346
2393
|
if ('chromium' === browser || 'chromium-based' === browser) printInstallGuidance(getInstallGuidanceText('chromium'), 'chromium');
|
|
2347
2394
|
if (!printedGuidance && 'chromium' !== browser && 'chromium-based' !== browser) this.logger.error(messages.Ih(browser, browserBinaryLocation || ''));
|
package/dist/cli.cjs
CHANGED
|
@@ -448,6 +448,9 @@ var __webpack_modules__ = {
|
|
|
448
448
|
})();
|
|
449
449
|
return `${getLoggingPrefix('error')} ${isUnreachable}Either install the missing browser or choose a different one via ${pintor__rspack_import_4_default().blue('--browser')} ${pintor__rspack_import_4_default().gray('<chrome|edge|firefox>')}.\n\n${pintor__rspack_import_4_default().red('NOT FOUND')} ${pintor__rspack_import_4_default().underline(browserBinaryLocation || capitalizedBrowserName(browser) + 'BROWSER')}` + wslHint;
|
|
450
450
|
}
|
|
451
|
+
function usingManagedChromiumFamilyFallback(requestedBrowser, fallbackBrowser, binaryPath) {
|
|
452
|
+
return `${getLoggingPrefix('info')} ${managedBrowserDisplayName(requestedBrowser)} is not installed. Using managed ${managedBrowserDisplayName(fallbackBrowser)} instead.\n${pintor__rspack_import_4_default().gray('PATH')} ${pintor__rspack_import_4_default().underline(binaryPath)}\nRun ${pintor__rspack_import_4_default().blue(`npx extension install ${requestedBrowser}`)} to use ${managedBrowserDisplayName(requestedBrowser)} itself.`;
|
|
453
|
+
}
|
|
451
454
|
function browserLaunchError(browser, error) {
|
|
452
455
|
return `${getLoggingPrefix('error')} Error launching ${capitalizedBrowserName(browser)}:\n${pintor__rspack_import_4_default().red(errorDetail(error))}`;
|
|
453
456
|
}
|
|
@@ -537,6 +540,12 @@ var __webpack_modules__ = {
|
|
|
537
540
|
body.push(pintor__rspack_import_4_default().gray(`Install ${browserDisplay} into the managed browser cache:`));
|
|
538
541
|
body.push('');
|
|
539
542
|
body.push(` ${pintor__rspack_import_4_default().bold(pintor__rspack_import_4_default().blue(installCommand))}`);
|
|
543
|
+
if ('chromium' === browserNorm) {
|
|
544
|
+
body.push('');
|
|
545
|
+
body.push(pintor__rspack_import_4_default().gray('Or install Chrome for Testing (stable channel) — chromium targets use it automatically:'));
|
|
546
|
+
body.push('');
|
|
547
|
+
body.push(` ${pintor__rspack_import_4_default().bold(pintor__rspack_import_4_default().blue(preferredManagedInstallCommand('chrome')))}`);
|
|
548
|
+
}
|
|
540
549
|
if (finalCachePath) {
|
|
541
550
|
body.push('');
|
|
542
551
|
body.push(`${dim('INSTALL PATH')} ${pintor__rspack_import_4_default().underline(finalCachePath)}`);
|
|
@@ -796,6 +805,7 @@ var __webpack_modules__ = {
|
|
|
796
805
|
TF: ()=>enhancedProcessManagementCleanupError,
|
|
797
806
|
Te: ()=>cdpClientTargetWebSocketUrlStored,
|
|
798
807
|
Th: ()=>browserInstanceExited,
|
|
808
|
+
Ug: ()=>usingManagedChromiumFamilyFallback,
|
|
799
809
|
Vk: ()=>enhancedProcessManagementCleanup,
|
|
800
810
|
WV: ()=>addonInstallError,
|
|
801
811
|
XH: ()=>enhancedProcessManagementTerminating,
|
|
@@ -944,6 +954,23 @@ var __webpack_modules__ = {
|
|
|
944
954
|
}
|
|
945
955
|
return null;
|
|
946
956
|
}
|
|
957
|
+
function resolveChromiumFamilyFallback(compilation, requested = 'chromium') {
|
|
958
|
+
const candidates = 'chrome' === requested ? [
|
|
959
|
+
'chromium',
|
|
960
|
+
'edge'
|
|
961
|
+
] : [
|
|
962
|
+
'chrome',
|
|
963
|
+
'edge'
|
|
964
|
+
];
|
|
965
|
+
for (const browser of candidates){
|
|
966
|
+
const binary = resolveFromBinaries(compilation, browser);
|
|
967
|
+
if (binary && fs__rspack_import_0.existsSync(binary)) return {
|
|
968
|
+
browser,
|
|
969
|
+
binary
|
|
970
|
+
};
|
|
971
|
+
}
|
|
972
|
+
return null;
|
|
973
|
+
}
|
|
947
974
|
function buildCandidates(dir, browser) {
|
|
948
975
|
const out = [];
|
|
949
976
|
if ('chrome' === browser) if ('darwin' === process.platform) out.push(path__rspack_import_1.join(dir, 'chrome-mac-arm64', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'), path__rspack_import_1.join(dir, 'chrome-mac', 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'));
|
|
@@ -1024,7 +1051,8 @@ var __webpack_modules__ = {
|
|
|
1024
1051
|
__webpack_require__.d(__webpack_exports__, {
|
|
1025
1052
|
$4: ()=>managedBrowserCacheEnv,
|
|
1026
1053
|
LB: ()=>computeBinariesBaseDir,
|
|
1027
|
-
kI: ()=>resolveFromBinaries
|
|
1054
|
+
kI: ()=>resolveFromBinaries,
|
|
1055
|
+
zN: ()=>resolveChromiumFamilyFallback
|
|
1028
1056
|
});
|
|
1029
1057
|
},
|
|
1030
1058
|
"./browsers/browsers-lib/process-teardown.ts" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
@@ -2223,7 +2251,18 @@ var __webpack_modules__ = {
|
|
|
2223
2251
|
const getInstallGuidanceText = (target)=>{
|
|
2224
2252
|
try {
|
|
2225
2253
|
if ('edge' === target) return (0, external_edge_location_.getInstallGuidance)();
|
|
2226
|
-
if ('chromium' === target) return (0, external_chromium_location_.getInstallGuidance)(
|
|
2254
|
+
if ('chromium' === target) return (0, external_chromium_location_.getInstallGuidance)({
|
|
2255
|
+
steps: [
|
|
2256
|
+
{
|
|
2257
|
+
summary: 'Install Chrome for Testing (recommended — stable channel; chromium targets use it automatically)',
|
|
2258
|
+
command: 'npx extension install chrome'
|
|
2259
|
+
},
|
|
2260
|
+
{
|
|
2261
|
+
summary: 'Install Chromium (unbranded snapshot build)',
|
|
2262
|
+
command: 'npx extension install chromium'
|
|
2263
|
+
}
|
|
2264
|
+
]
|
|
2265
|
+
});
|
|
2227
2266
|
return (0, external_chrome_location2_.getInstallGuidance)();
|
|
2228
2267
|
} catch {
|
|
2229
2268
|
return `npx extension install ${target}`;
|
|
@@ -2427,6 +2466,14 @@ var __webpack_modules__ = {
|
|
|
2427
2466
|
if (!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) {
|
|
2428
2467
|
browserBinaryLocation = browserBinaryLocation || resolveManagedBinary();
|
|
2429
2468
|
if (!browserBinaryLocation) browserBinaryLocation = resolveWslFallback();
|
|
2469
|
+
if ((!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) && ('chrome' === browser || 'chromium' === browser)) {
|
|
2470
|
+
const familyFallback = output_binaries_resolver.zN(compilation, browser);
|
|
2471
|
+
const normalized = normalizePath(familyFallback?.binary || null);
|
|
2472
|
+
if (familyFallback && isUsableBinary(normalized)) {
|
|
2473
|
+
console.log(messages.Ug(browser, familyFallback.browser, normalized));
|
|
2474
|
+
browserBinaryLocation = normalized;
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2430
2477
|
if (!browserBinaryLocation || !external_fs_.existsSync(browserBinaryLocation)) {
|
|
2431
2478
|
if ('chromium' === browser || 'chromium-based' === browser) printInstallGuidance(getInstallGuidanceText('chromium'), 'chromium');
|
|
2432
2479
|
if (!printedGuidance && 'chromium' !== browser && 'chromium-based' !== browser) this.logger.error(messages.Ih(browser, browserBinaryLocation || ''));
|
|
@@ -5560,6 +5607,12 @@ Cross-Browser Compatibility
|
|
|
5560
5607
|
'firefox'
|
|
5561
5608
|
] : String(value).split(',');
|
|
5562
5609
|
};
|
|
5610
|
+
const installTargets = (browser)=>'all' === browser ? [
|
|
5611
|
+
'chrome',
|
|
5612
|
+
'chromium',
|
|
5613
|
+
'edge',
|
|
5614
|
+
'firefox'
|
|
5615
|
+
] : vendors(browser);
|
|
5563
5616
|
function validateVendorsOrExit(vendorsList, onInvalid) {
|
|
5564
5617
|
const supported = [
|
|
5565
5618
|
'chrome',
|
|
@@ -6704,7 +6757,7 @@ Cross-Browser Compatibility
|
|
|
6704
6757
|
function registerInstallCommand(program) {
|
|
6705
6758
|
program.command('install').arguments('[browser-name]').usage('[browser-name] [options]').description(commandDescriptions.install).option('--browser <chrome | chromium | edge | firefox | chromium-based | gecko-based | firefox-based | all>', 'override the positional browser name. Supports comma-separated values and `all`.').option('--where', 'print the resolved managed browser cache root').action(async function(browserArg, options) {
|
|
6706
6759
|
const selectedBrowser = options.browser || browserArg || 'chromium';
|
|
6707
|
-
const browserList =
|
|
6760
|
+
const browserList = installTargets(selectedBrowser);
|
|
6708
6761
|
validateVendorsOrExit(browserList, (invalid, supported)=>{
|
|
6709
6762
|
console.error(unsupportedBrowserFlag(invalid, supported));
|
|
6710
6763
|
});
|
|
@@ -12,6 +12,7 @@ export declare function bestEffortBannerPrintFailed(message: string): string;
|
|
|
12
12
|
export declare function firefoxRdpRuntimeCapabilitySummary(state: 'available' | 'unavailable'): string;
|
|
13
13
|
export declare function skippingBrowserLaunchDueToCompileErrors(): string;
|
|
14
14
|
export declare function browserNotInstalledError(browser: Browser, browserBinaryLocation: string): string;
|
|
15
|
+
export declare function usingManagedChromiumFamilyFallback(requestedBrowser: Browser, fallbackBrowser: Browser, binaryPath: string): string;
|
|
15
16
|
export declare function browserLaunchError(browser: Browser, error: unknown): string;
|
|
16
17
|
export declare function enhancedProcessManagementCleanup(browser: Browser): string;
|
|
17
18
|
export declare function enhancedProcessManagementTerminating(browser: Browser): string;
|
|
@@ -3,3 +3,7 @@ export declare function getCompilationOutputPath(compilation: CompilationLike):
|
|
|
3
3
|
export declare function computeBinariesBaseDir(compilation: CompilationLike): string;
|
|
4
4
|
export declare function managedBrowserCacheEnv(cacheRoot: string, browser: 'chrome' | 'chromium' | 'firefox' | 'edge' | 'brave' | 'opera' | 'vivaldi' | 'yandex' | 'waterfox' | 'librewolf' | 'chromium-based' | 'gecko-based' | 'firefox-based' | 'safari' | 'webkit-based'): Record<string, string>;
|
|
5
5
|
export declare function resolveFromBinaries(compilation: CompilationLike, browser: 'chrome' | 'chromium' | 'firefox' | 'edge'): string | null;
|
|
6
|
+
export declare function resolveChromiumFamilyFallback(compilation: CompilationLike, requested?: 'chrome' | 'chromium'): {
|
|
7
|
+
browser: 'chrome' | 'chromium' | 'edge';
|
|
8
|
+
binary: string;
|
|
9
|
+
} | null;
|
|
@@ -2,4 +2,5 @@ export type Browser = 'chrome' | 'edge' | 'firefox' | 'chromium' | 'chromium-bas
|
|
|
2
2
|
export declare function isSafariVendor(value: string): boolean;
|
|
3
3
|
export declare function parseOptionalBoolean(value?: string): boolean;
|
|
4
4
|
export declare const vendors: (browser?: Browser | "all") => string[];
|
|
5
|
+
export declare const installTargets: (browser?: Browser | "all") => string[];
|
|
5
6
|
export declare function validateVendorsOrExit(vendorsList: string[], onInvalid: (invalid: string, supported: string[]) => void): void;
|
package/package.json
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"extension": "./bin/extension.cjs"
|
|
39
39
|
},
|
|
40
40
|
"name": "extension",
|
|
41
|
-
"version": "4.0.
|
|
41
|
+
"version": "4.0.5",
|
|
42
42
|
"description": "The cross-browser extension framework. Build Chrome, Edge, Firefox, and Safari extensions with no build configuration.",
|
|
43
43
|
"homepage": "https://extension.js.org/",
|
|
44
44
|
"bugs": {
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"@types/webextension-polyfill": "0.12.4",
|
|
101
101
|
"brave-location": "3.0.6",
|
|
102
102
|
"chrome-location2": "4.0.0",
|
|
103
|
-
"chromium-location": "2.
|
|
103
|
+
"chromium-location": "2.1.1",
|
|
104
104
|
"cross-spawn": "^7.0.6",
|
|
105
105
|
"edge-location": "2.2.0",
|
|
106
106
|
"firefox-location2": "3.0.0",
|
|
@@ -109,9 +109,9 @@
|
|
|
109
109
|
"vivaldi-location2": "2.0.2",
|
|
110
110
|
"waterfox-location": "2.0.2",
|
|
111
111
|
"yandex-location": "2.0.2",
|
|
112
|
-
"extension-create": "4.0.
|
|
113
|
-
"extension-develop": "4.0.
|
|
114
|
-
"extension-install": "4.0.
|
|
112
|
+
"extension-create": "4.0.5",
|
|
113
|
+
"extension-develop": "4.0.5",
|
|
114
|
+
"extension-install": "4.0.5",
|
|
115
115
|
"commander": "^15.0.0",
|
|
116
116
|
"pintor": "0.3.0",
|
|
117
117
|
"semver": "^7.7.3",
|