extension 3.0.0-next.48 → 3.0.0-next.50
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/cli.js +39 -40
- package/dist/utils.d.ts +1 -0
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -23,7 +23,7 @@ var __webpack_require__ = {};
|
|
|
23
23
|
})();
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
const external_commander_namespaceObject = require("commander");
|
|
26
|
-
var package_namespaceObject = JSON.parse('{"license":"MIT","repository":{"type":"git","url":"git+https://github.com/extension-js/extension.js.git","directory":"programs/cli"},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/cli.d.ts","import":"./dist/cli.js","require":"./dist/cli.js"}},"main":"./dist/cli.js","types":"./dist/cli.d.ts","typesVersions":{"*":{"types":["./types/index.d.ts"],"types/*":["./types/*"]}},"files":["dist","types"],"bin":{"extension":"./dist/cli.js"},"name":"extension","version":"3.0.0-next.
|
|
26
|
+
var package_namespaceObject = JSON.parse('{"license":"MIT","repository":{"type":"git","url":"git+https://github.com/extension-js/extension.js.git","directory":"programs/cli"},"engines":{"node":">=18"},"exports":{".":{"types":"./dist/cli.d.ts","import":"./dist/cli.js","require":"./dist/cli.js"}},"main":"./dist/cli.js","types":"./dist/cli.d.ts","typesVersions":{"*":{"types":["./types/index.d.ts"],"types/*":["./types/*"]}},"files":["dist","types"],"bin":{"extension":"./dist/cli.js"},"name":"extension","version":"3.0.0-next.50","description":"Create cross-browser extensions with no build configuration.","homepage":"https://extension.js.org/","author":{"name":"Cezar Augusto","email":"boss@cezaraugusto.net","url":"https://cezaraugusto.com"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"prepare":"rslib build >/dev/null 2>&1 || true","postinstall":"rslib build >/dev/null 2>&1 || true","compile":"rslib build","watch":"rslib build --watch","test":"vitest run"},"keywords":["zero-config","build","develop","browser","extension","chrome extension","edge extension","firefox extension","safari extension","web","react","typescript","webextension","browser-extension","chrome-extension","firefox-addon","edge-extension","safari-web-extension","manifest-v3","mv3","cross-browser","content-script","background-script","devtools","create-extension","scaffold","starter-template","boilerplate","cli"],"dependencies":{"commander":"^12.1.0","extension-create":"^2.2.0","pintor":"0.3.0","semver":"^7.6.3","update-check":"^1.5.4"},"devDependencies":{"@rslib/core":"^0.6.9","@types/chrome":"^0.0.287","@types/node":"^22.10.1","@types/react":"^19.0.1","@types/react-dom":"^19.0.1","@types/webextension-polyfill":"0.12.3","@types/mock-fs":"^4.13.4","@types/semver":"^7.5.8","mock-fs":"^5.4.1","webextension-polyfill":"^0.12.0","tsconfig":"*","typescript":"5.7.2","vitest":"^3.2.4"}}');
|
|
27
27
|
const external_update_check_namespaceObject = require("update-check");
|
|
28
28
|
var external_update_check_default = /*#__PURE__*/ __webpack_require__.n(external_update_check_namespaceObject);
|
|
29
29
|
const external_pintor_namespaceObject = require("pintor");
|
|
@@ -503,6 +503,27 @@ if (!telemetryDisabled) {
|
|
|
503
503
|
const external_extension_create_namespaceObject = require("extension-create");
|
|
504
504
|
const external_node_child_process_namespaceObject = require("node:child_process");
|
|
505
505
|
const external_node_url_namespaceObject = require("node:url");
|
|
506
|
+
function resolveModuleEntry(modulePath, pkgJson) {
|
|
507
|
+
const exportsField = pkgJson.exports;
|
|
508
|
+
let main = pkgJson.main;
|
|
509
|
+
if (!main && 'string' == typeof exportsField) main = exportsField;
|
|
510
|
+
if (!main && exportsField && 'object' == typeof exportsField) {
|
|
511
|
+
const dotExport = exportsField['.'];
|
|
512
|
+
if ('string' == typeof dotExport) main = dotExport;
|
|
513
|
+
else if (dotExport && 'object' == typeof dotExport) main = dotExport.import || dotExport.require || dotExport.default || dotExport.node;
|
|
514
|
+
if (!main) {
|
|
515
|
+
const maybe = exportsField.import || exportsField.require || exportsField.default || exportsField.node;
|
|
516
|
+
if ('string' == typeof maybe) main = maybe;
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
if (main) return (0, external_node_url_namespaceObject.pathToFileURL)(external_node_path_default().join(modulePath, main)).href;
|
|
520
|
+
const candidates = [
|
|
521
|
+
external_node_path_default().join(modulePath, 'dist', 'module.js'),
|
|
522
|
+
external_node_path_default().join(modulePath, 'dist', 'index.js'),
|
|
523
|
+
external_node_path_default().join(modulePath, 'index.js')
|
|
524
|
+
];
|
|
525
|
+
for (const candidate of candidates)if (external_node_fs_default().existsSync(candidate)) return (0, external_node_url_namespaceObject.pathToFileURL)(candidate).href;
|
|
526
|
+
}
|
|
506
527
|
function parseOptionalBoolean(value) {
|
|
507
528
|
if (void 0 === value) return true;
|
|
508
529
|
const normalized = String(value).trim().toLowerCase();
|
|
@@ -546,15 +567,14 @@ async function requireOrDlx(moduleName, versionHint) {
|
|
|
546
567
|
recursive: true
|
|
547
568
|
});
|
|
548
569
|
} catch {}
|
|
570
|
+
let preInstallPkgJson;
|
|
549
571
|
try {
|
|
550
|
-
|
|
551
|
-
const pkgJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().join(modulePath, 'package.json'), 'utf8'));
|
|
552
|
-
const main = pkgJson.main || (null == (_pkgJson_exports = pkgJson.exports) ? void 0 : null == (_pkgJson_exports_ = _pkgJson_exports['.']) ? void 0 : _pkgJson_exports_.import) || (null == (_pkgJson_exports1 = pkgJson.exports) ? void 0 : null == (_pkgJson_exports_1 = _pkgJson_exports1['.']) ? void 0 : _pkgJson_exports_1.require);
|
|
553
|
-
if (main) {
|
|
554
|
-
const resolved = (0, external_node_url_namespaceObject.pathToFileURL)(external_node_path_default().join(modulePath, main)).href;
|
|
555
|
-
return await import(resolved);
|
|
556
|
-
}
|
|
572
|
+
preInstallPkgJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().join(modulePath, 'package.json'), 'utf8'));
|
|
557
573
|
} catch {}
|
|
574
|
+
if (preInstallPkgJson) {
|
|
575
|
+
const entry = resolveModuleEntry(modulePath, preInstallPkgJson);
|
|
576
|
+
if (entry) return await import(entry);
|
|
577
|
+
}
|
|
558
578
|
if ('pnpm' === prefer) try {
|
|
559
579
|
external_node_fs_default().writeFileSync(external_node_path_default().join(cacheDir, 'package.json'), JSON.stringify({
|
|
560
580
|
name: 'extensionjs-cache',
|
|
@@ -631,16 +651,15 @@ async function requireOrDlx(moduleName, versionHint) {
|
|
|
631
651
|
}).status || 0;
|
|
632
652
|
}
|
|
633
653
|
if (0 !== status) throw new Error(`Failed to install ${spec}`);
|
|
654
|
+
let postInstallPkgJson;
|
|
634
655
|
try {
|
|
635
|
-
|
|
636
|
-
const pkgJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().join(modulePath, 'package.json'), 'utf8'));
|
|
637
|
-
const main = pkgJson.main || (null == (_pkgJson_exports2 = pkgJson.exports) ? void 0 : null == (_pkgJson_exports_2 = _pkgJson_exports2['.']) ? void 0 : _pkgJson_exports_2.import) || (null == (_pkgJson_exports3 = pkgJson.exports) ? void 0 : null == (_pkgJson_exports_3 = _pkgJson_exports3['.']) ? void 0 : _pkgJson_exports_3.require);
|
|
638
|
-
if (main) {
|
|
639
|
-
const resolved = (0, external_node_url_namespaceObject.pathToFileURL)(external_node_path_default().join(modulePath, main)).href;
|
|
640
|
-
return await import(resolved);
|
|
641
|
-
}
|
|
656
|
+
postInstallPkgJson = JSON.parse(external_node_fs_default().readFileSync(external_node_path_default().join(modulePath, 'package.json'), 'utf8'));
|
|
642
657
|
} catch {}
|
|
643
|
-
|
|
658
|
+
if (postInstallPkgJson) {
|
|
659
|
+
const entry = resolveModuleEntry(modulePath, postInstallPkgJson);
|
|
660
|
+
if (entry) return await import(entry);
|
|
661
|
+
}
|
|
662
|
+
throw new Error(`Failed to resolve entry point for ${moduleName} (${spec}) at ${modulePath}. This likely means the installed "extension-develop" version is incompatible with this CLI.`);
|
|
644
663
|
}
|
|
645
664
|
const vendors = (browser)=>{
|
|
646
665
|
const value = browser ?? 'chromium';
|
|
@@ -723,13 +742,8 @@ function registerDevCommand(program, telemetry) {
|
|
|
723
742
|
devOptions.watchSource = true;
|
|
724
743
|
}
|
|
725
744
|
const versionExact = String(package_namespaceObject.version);
|
|
726
|
-
const major = String(package_namespaceObject.version).split('.')[0] || '2';
|
|
727
745
|
let extensionDev;
|
|
728
|
-
|
|
729
|
-
({ extensionDev } = await requireOrDlx('extension-develop', versionExact));
|
|
730
|
-
} catch {
|
|
731
|
-
({ extensionDev } = await requireOrDlx('extension-develop', major));
|
|
732
|
-
}
|
|
746
|
+
({ extensionDev } = await requireOrDlx('extension-develop', versionExact));
|
|
733
747
|
for (const vendor of list){
|
|
734
748
|
var _devOptions_polyfill1;
|
|
735
749
|
const vendorStart = Date.now();
|
|
@@ -806,13 +820,8 @@ function registerStartCommand(program, telemetry) {
|
|
|
806
820
|
console.error(unsupportedBrowserFlag(invalid, supported));
|
|
807
821
|
});
|
|
808
822
|
const versionExact = String(package_namespaceObject.version);
|
|
809
|
-
const major = versionExact.split('.')[0] || '2';
|
|
810
823
|
let extensionStart;
|
|
811
|
-
|
|
812
|
-
({ extensionStart } = await requireOrDlx('extension-develop', versionExact));
|
|
813
|
-
} catch {
|
|
814
|
-
({ extensionStart } = await requireOrDlx('extension-develop', major));
|
|
815
|
-
}
|
|
824
|
+
({ extensionStart } = await requireOrDlx('extension-develop', versionExact));
|
|
816
825
|
for (const vendor of list){
|
|
817
826
|
const vendorStart = Date.now();
|
|
818
827
|
telemetry.track('cli_vendor_start', {
|
|
@@ -889,13 +898,8 @@ function registerPreviewCommand(program, telemetry) {
|
|
|
889
898
|
if (isRemote) process.env.EXTJS_LIGHT = '1';
|
|
890
899
|
}
|
|
891
900
|
const versionExact = String(package_namespaceObject.version);
|
|
892
|
-
const major = versionExact.split('.')[0] || '2';
|
|
893
901
|
let extensionPreview;
|
|
894
|
-
|
|
895
|
-
({ extensionPreview } = await requireOrDlx('extension-develop', versionExact));
|
|
896
|
-
} catch {
|
|
897
|
-
({ extensionPreview } = await requireOrDlx('extension-develop', major));
|
|
898
|
-
}
|
|
902
|
+
({ extensionPreview } = await requireOrDlx('extension-develop', versionExact));
|
|
899
903
|
for (const vendor of list){
|
|
900
904
|
const vendorStart = Date.now();
|
|
901
905
|
telemetry.track('cli_vendor_start', {
|
|
@@ -971,13 +975,8 @@ function registerBuildCommand(program, telemetry) {
|
|
|
971
975
|
console.error(unsupportedBrowserFlag(invalid, supported));
|
|
972
976
|
});
|
|
973
977
|
const versionExact = String(package_namespaceObject.version);
|
|
974
|
-
const major = versionExact.split('.')[0] || '2';
|
|
975
978
|
let extensionBuild;
|
|
976
|
-
|
|
977
|
-
({ extensionBuild } = await requireOrDlx('extension-develop', versionExact));
|
|
978
|
-
} catch {
|
|
979
|
-
({ extensionBuild } = await requireOrDlx('extension-develop', major));
|
|
980
|
-
}
|
|
979
|
+
({ extensionBuild } = await requireOrDlx('extension-develop', versionExact));
|
|
981
980
|
for (const vendor of list){
|
|
982
981
|
const vendorStart = Date.now();
|
|
983
982
|
telemetry.track('cli_vendor_start', {
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function resolveModuleEntry(modulePath: string, pkgJson: any): string | undefined;
|
|
1
2
|
export type Browser = 'chrome' | 'edge' | 'firefox' | 'chromium' | 'chromium-based' | 'gecko-based' | 'firefox-based';
|
|
2
3
|
export declare function parseOptionalBoolean(value?: string): boolean;
|
|
3
4
|
export declare function requireOrDlx(moduleName: string, versionHint?: string): Promise<any>;
|
package/package.json
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"extension": "./dist/cli.js"
|
|
36
36
|
},
|
|
37
37
|
"name": "extension",
|
|
38
|
-
"version": "3.0.0-next.
|
|
38
|
+
"version": "3.0.0-next.50",
|
|
39
39
|
"description": "Create cross-browser extensions with no build configuration.",
|
|
40
40
|
"homepage": "https://extension.js.org/",
|
|
41
41
|
"author": {
|