extension-develop 3.5.0-next.21 → 3.5.0-next.24

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.
Files changed (24) hide show
  1. package/dist/323.cjs +62 -15
  2. package/dist/547.cjs +48 -0
  3. package/dist/extension-js-devtools/chrome/background/service_worker.js +1 -1
  4. package/dist/extension-js-devtools/chrome/devtools/index.js +1 -1
  5. package/dist/extension-js-devtools/chrome/pages/centralized-logger.js +1 -1
  6. package/dist/extension-js-devtools/chrome/pages/welcome.js +1 -1
  7. package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
  8. package/dist/extension-js-devtools/chromium/background/service_worker.js +1 -1
  9. package/dist/extension-js-devtools/chromium/devtools/index.js +1 -1
  10. package/dist/extension-js-devtools/chromium/pages/centralized-logger.js +1 -1
  11. package/dist/extension-js-devtools/chromium/pages/welcome.js +1 -1
  12. package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
  13. package/dist/extension-js-devtools/edge/background/service_worker.js +1 -1
  14. package/dist/extension-js-devtools/edge/devtools/index.js +1 -1
  15. package/dist/extension-js-devtools/edge/pages/centralized-logger.js +1 -1
  16. package/dist/extension-js-devtools/edge/pages/welcome.js +1 -1
  17. package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
  18. package/dist/extension-js-devtools/firefox/background/scripts.js +1 -1
  19. package/dist/extension-js-devtools/firefox/devtools/index.js +1 -1
  20. package/dist/extension-js-devtools/firefox/pages/centralized-logger.js +1 -1
  21. package/dist/extension-js-devtools/firefox/pages/welcome.js +1 -1
  22. package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
  23. package/dist/module.cjs +134 -111
  24. package/package.json +2 -2
package/dist/323.cjs CHANGED
@@ -14,30 +14,69 @@ exports.modules = {
14
14
  var external_fs_ = __webpack_require__("fs");
15
15
  async function deriveExtensionIdFromTargetsHelper(cdp, outPath, maxRetries = 20, backoffMs = 200) {
16
16
  let expectedName;
17
+ let expectedVersion;
18
+ let expectedManifestVersion;
19
+ let expectedNameIsMsg = false;
17
20
  try {
18
21
  const manifest = JSON.parse(external_fs_.readFileSync(external_path_.join(outPath, 'manifest.json'), 'utf-8'));
19
22
  expectedName = manifest?.name;
23
+ expectedVersion = manifest?.version;
24
+ expectedManifestVersion = manifest?.manifest_version;
25
+ expectedNameIsMsg = 'string' == typeof expectedName && /__MSG_/i.test(expectedName);
26
+ if (expectedNameIsMsg) {
27
+ const defaultLocale = String(manifest?.default_locale || '').trim();
28
+ const msgKeyMatch = String(expectedName || '').match(/__MSG_([^_]+)__/i);
29
+ const msgKey = msgKeyMatch ? msgKeyMatch[1] : '';
30
+ if (defaultLocale && msgKey) try {
31
+ const messagesPath = external_path_.join(outPath, '_locales', defaultLocale, 'messages.json');
32
+ if (external_fs_.existsSync(messagesPath)) {
33
+ const messagesJson = JSON.parse(external_fs_.readFileSync(messagesPath, 'utf-8'));
34
+ const resolved = String(messagesJson?.[msgKey]?.message || '').trim();
35
+ if (resolved) {
36
+ expectedName = resolved;
37
+ expectedNameIsMsg = false;
38
+ }
39
+ }
40
+ } catch {}
41
+ }
20
42
  } catch {}
21
43
  let retries = 0;
22
44
  while(retries <= maxRetries){
23
45
  try {
24
46
  const targets = await cdp.getTargets();
25
- if (expectedName) for (const t of targets || []){
47
+ let firstEvalId = null;
48
+ let evalIdCount = 0;
49
+ for (const t of targets || []){
26
50
  const url = String(t?.url || '');
27
51
  const type = String(t?.type || '');
28
- if (!('service_worker' === type && url.startsWith('chrome-extension://'))) continue;
52
+ const typeOk = [
53
+ 'service_worker',
54
+ 'background_page',
55
+ 'worker'
56
+ ].includes(type);
57
+ if (!typeOk) continue;
58
+ if (url && !url.startsWith('chrome-extension://')) continue;
29
59
  const targetId = t?.targetId;
30
60
  if (targetId) try {
31
61
  const sessionId = await cdp.attachToTarget(targetId);
32
62
  if (!sessionId) continue;
33
63
  await cdp.sendCommand('Runtime.enable', {}, sessionId);
34
- const gotName = String(await cdp.evaluate(sessionId, '(()=>{try{return chrome.runtime.getManifest().name}catch(_){return null}})()'));
35
- if (gotName && String(gotName) === expectedName) {
36
- const gotIdStr = String(await cdp.evaluate(sessionId, '(()=>{try{return chrome.runtime.id}catch(_){return null}})()') || '');
37
- if (gotIdStr && gotIdStr.length > 0) return gotIdStr;
38
- }
64
+ const info = await cdp.evaluate(sessionId, '(()=>{try{const m=chrome.runtime.getManifest?.();return {id:chrome.runtime?.id||"",name:m?.name||"",version:m?.version||"",manifestVersion:m?.manifest_version||0}}catch(_){return null}})()');
65
+ const id = String(info?.id || '').trim();
66
+ if (!id) continue;
67
+ evalIdCount += 1;
68
+ if (!firstEvalId) firstEvalId = id;
69
+ const gotName = String(info?.name || '');
70
+ const gotVersion = String(info?.version || '');
71
+ const gotManifestVersion = Number(info?.manifestVersion || 0);
72
+ const nameMatches = expectedName && !expectedNameIsMsg ? gotName === expectedName : false;
73
+ const versionMatches = expectedVersion ? gotVersion === expectedVersion : false;
74
+ const manifestVersionMatches = expectedManifestVersion ? gotManifestVersion === expectedManifestVersion : false;
75
+ if (nameMatches) return id;
76
+ if (expectedVersion && versionMatches && (expectedManifestVersion ? manifestVersionMatches : true)) return id;
39
77
  } catch {}
40
78
  }
79
+ if (1 === evalIdCount && firstEvalId) return firstEvalId;
41
80
  for (const t of targets || []){
42
81
  const url = String(t?.url || '');
43
82
  const type = String(t?.type || '');
@@ -374,7 +413,12 @@ exports.modules = {
374
413
  };
375
414
  await retryAsync(()=>cdpExtensionController.connect());
376
415
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.log(messages.M3V('127.0.0.1', chromeRemoteDebugPort));
377
- const extensionControllerInfo = await cdpExtensionController.ensureLoaded();
416
+ let extensionControllerInfo = null;
417
+ try {
418
+ extensionControllerInfo = await cdpExtensionController.ensureLoaded();
419
+ } catch (error) {
420
+ if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(`[CDP] ensureLoaded failed: ${String(error?.message || error)}`);
421
+ }
378
422
  try {
379
423
  const mode = compilation?.options?.mode || 'development';
380
424
  if ('development' === mode) {
@@ -398,16 +442,19 @@ exports.modules = {
398
442
  getInfo: async ()=>cdpExtensionController.getInfoBestEffort(),
399
443
  browserVersionLine: plugin.browserVersionLine
400
444
  });
401
- } else if ('production' === mode) await (0, banner.M)({
402
- browser: plugin.browser,
403
- outPath: extensionOutputPath,
404
- browserVersionLine: plugin.browserVersionLine,
405
- runtime: {
445
+ } else if ('production' === mode) {
446
+ const runtime = extensionControllerInfo ? {
406
447
  extensionId: extensionControllerInfo.extensionId,
407
448
  name: extensionControllerInfo.name,
408
449
  version: extensionControllerInfo.version
409
- }
410
- });
450
+ } : void 0;
451
+ await (0, banner.M)({
452
+ browser: plugin.browser,
453
+ outPath: extensionOutputPath,
454
+ browserVersionLine: plugin.browserVersionLine,
455
+ runtime
456
+ });
457
+ }
411
458
  } catch (bannerErr) {
412
459
  if ('true' === process.env.EXTENSION_AUTHOR_MODE) console.warn(messages.$wD(String(bannerErr)));
413
460
  try {
package/dist/547.cjs CHANGED
@@ -6859,6 +6859,53 @@ Set background.noDynamicEntryWarning to true to disable this warning.
6859
6859
  manifestPath,
6860
6860
  browser: this.browser
6861
6861
  });
6862
+ const extraHtmlEntries = (()=>{
6863
+ try {
6864
+ const manifestDir = external_path_.dirname(manifestPath);
6865
+ const raw = JSON.parse(external_fs_.readFileSync(manifestPath, 'utf-8'));
6866
+ const browser = String(this.browser || '').toLowerCase();
6867
+ const prefixes = 'chromium-based' === browser || 'chromium' === browser ? [
6868
+ 'chromium',
6869
+ 'chrome'
6870
+ ] : 'edge' === browser ? [
6871
+ 'edge'
6872
+ ] : 'firefox' === browser || 'gecko-based' === browser ? [
6873
+ 'firefox'
6874
+ ] : [
6875
+ 'chrome'
6876
+ ];
6877
+ const candidates = [
6878
+ {
6879
+ key: 'side_panel',
6880
+ prop: 'default_path',
6881
+ entry: 'sidebar/index'
6882
+ },
6883
+ {
6884
+ key: 'sidebar_action',
6885
+ prop: 'default_panel',
6886
+ entry: 'sidebar/index'
6887
+ }
6888
+ ];
6889
+ const entries = {};
6890
+ for (const { key, prop, entry } of candidates){
6891
+ const direct = raw?.[key];
6892
+ if (direct && 'string' == typeof direct[prop]) {
6893
+ const resolved = external_path_.resolve(manifestDir, direct[prop]);
6894
+ if (external_fs_.existsSync(resolved)) entries[entry] = resolved;
6895
+ }
6896
+ for (const prefix of prefixes){
6897
+ const prefixed = raw?.[`${prefix}:${key}`];
6898
+ if (prefixed && 'string' == typeof prefixed[prop]) {
6899
+ const resolved = external_path_.resolve(manifestDir, prefixed[prop]);
6900
+ if (external_fs_.existsSync(resolved)) entries[entry] = resolved;
6901
+ }
6902
+ }
6903
+ }
6904
+ return entries;
6905
+ } catch {
6906
+ return {};
6907
+ }
6908
+ })();
6862
6909
  const specialFoldersData = getSpecialFoldersDataForCompiler(compiler);
6863
6910
  new ManifestPlugin({
6864
6911
  browser: this.browser,
@@ -6875,6 +6922,7 @@ Set background.noDynamicEntryWarning to true to disable this warning.
6875
6922
  browser: this.browser,
6876
6923
  includeList: {
6877
6924
  ...manifestFieldsData.html,
6925
+ ...extraHtmlEntries,
6878
6926
  ...specialFoldersData.pages
6879
6927
  }
6880
6928
  }).apply(compiler);
@@ -23,4 +23,4 @@
23
23
  ██████████████████████████████████████████████████████████
24
24
  ██████████████████████████████████████████████████████████
25
25
  MIT (c) ${new Date().getFullYear()} - Cezar Augusto and the Extension.js Authors.
26
- `,"background: transparent; color: #0971fe; "),!t){try{await o()}catch{try{chrome.tabs.create({url:a})}catch{}}return}let n=String(t.url||"");if(n.startsWith(`${r}://newtab`)||n.startsWith(`${r}://welcome`))await o();else{let e;e="chrome://extensions/",chrome.tabs.query({url:e},r=>{r.length>0||chrome.tabs.create({url:e,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}})}catch{}}r.rv=()=>"1.7.2",r.ruid="bundler=rspack@1.7.2",chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
26
+ `,"background: transparent; color: #0971fe; "),!t){try{await o()}catch{try{chrome.tabs.create({url:a})}catch{}}return}let n=String(t.url||"");if(n.startsWith(`${r}://newtab`)||n.startsWith(`${r}://welcome`))await o();else{let e;e="chrome://extensions/",chrome.tabs.query({url:e},r=>{r.length>0||chrome.tabs.create({url:e,active:!1},function(e){chrome.tabs.move(e.id,{index:0},()=>{setTimeout(()=>{chrome.tabs.update(t.id,{active:!0})},500)})})})}})}catch{}}r.rv=()=>"1.7.5",r.ruid="bundler=rspack@1.7.5",chrome.runtime.onStartup.addListener(async()=>{await c()}),chrome.runtime.onInstalled.addListener(async()=>{await c()})})();
@@ -1 +1 @@
1
- (()=>{var e={},r={};function o(t){var s=r[t];if(void 0!==s)return s.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.rv=()=>"1.7.2",o.ruid="bundler=rspack@1.7.2";try{chrome.devtools?.panels.create("Extension Logs","images/logo.png","pages/centralized-logger.html")}catch{console.error("[Extension.js] Failed to create devtools panel")}})();
1
+ (()=>{var e={},r={};function o(t){var s=r[t];if(void 0!==s)return s.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.rv=()=>"1.7.5",o.ruid="bundler=rspack@1.7.5";try{chrome.devtools?.panels.create("Extension Logs","images/logo.png","pages/centralized-logger.html")}catch{console.error("[Extension.js] Failed to create devtools panel")}})();