extension-develop 4.1.9 → 4.1.11
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/0~rspack-config.mjs +212 -102
- package/dist/101.mjs +1 -1
- package/dist/291.mjs +8 -1
- package/dist/839.mjs +65 -13
- package/dist/extension-js-devtools/chrome/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chrome/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/chrome/manifest.json +4 -0
- package/dist/extension-js-devtools/chrome/options/index.css +2 -0
- package/dist/extension-js-devtools/chrome/options/index.html +11 -0
- package/dist/extension-js-devtools/chrome/options/index.js +1 -0
- package/dist/extension-js-devtools/chrome/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chrome/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chrome/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/chromium/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/chromium/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/chromium/manifest.json +4 -0
- package/dist/extension-js-devtools/chromium/options/index.css +2 -0
- package/dist/extension-js-devtools/chromium/options/index.html +11 -0
- package/dist/extension-js-devtools/chromium/options/index.js +1 -0
- package/dist/extension-js-devtools/chromium/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/chromium/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/chromium/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/edge/background/service_worker.js +1 -1
- package/dist/extension-js-devtools/edge/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/edge/manifest.json +4 -0
- package/dist/extension-js-devtools/edge/options/index.css +2 -0
- package/dist/extension-js-devtools/edge/options/index.html +11 -0
- package/dist/extension-js-devtools/edge/options/index.js +1 -0
- package/dist/extension-js-devtools/edge/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/edge/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/edge/scripts/logger-client.js +1 -1
- package/dist/extension-js-devtools/firefox/background/scripts.js +1 -1
- package/dist/extension-js-devtools/firefox/content_scripts/content-0.js +2 -2
- package/dist/extension-js-devtools/firefox/manifest.json +4 -0
- package/dist/extension-js-devtools/firefox/options/index.css +2 -0
- package/dist/extension-js-devtools/firefox/options/index.html +11 -0
- package/dist/extension-js-devtools/firefox/options/index.js +1 -0
- package/dist/extension-js-devtools/firefox/pages/centralized-logger.css +1 -1
- package/dist/extension-js-devtools/firefox/pages/welcome.css +1 -1
- package/dist/extension-js-devtools/firefox/scripts/logger-client.js +1 -1
- package/dist/feature-scripts-content-script-wrapper.js +3 -2
- package/dist/feature-scripts-content-script-wrapper.mjs +3 -2
- package/dist/feature-scripts-native-geturl-import-loader.mjs +73 -9
- package/dist/minimum-script-file.js +4 -4
- package/dist/minimum-script-file.mjs +4 -4
- package/dist/plugin-reload/reload-dispatch.d.ts +1 -1
- package/dist/plugin-reload/steps/setup-reload-strategy/index.d.ts +6 -8
- package/dist/plugin-web-extension/feature-html/html-lib/assets.d.ts +3 -2
- package/dist/plugin-web-extension/feature-html/html-lib/parse-html.d.ts +2 -0
- package/dist/plugin-web-extension/feature-html/html-lib/utils.d.ts +6 -0
- package/dist/plugin-web-extension/feature-json/resolve-json-resource.d.ts +6 -0
- package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/storage.d.ts +1 -1
- package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/declarative_net_request.d.ts +1 -1
- package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/index.d.ts +1 -1
- package/dist/plugin-web-extension/feature-scripts/contracts.d.ts +3 -0
- package/dist/plugin-web-extension/feature-scripts/scripts-lib/utils.d.ts +9 -0
- package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/index.d.ts +2 -1
- package/package.json +2 -2
package/dist/839.mjs
CHANGED
|
@@ -1255,28 +1255,79 @@ async function dispatchReload(instruction, executor) {
|
|
|
1255
1255
|
if (warning) console.warn(warning);
|
|
1256
1256
|
}
|
|
1257
1257
|
}
|
|
1258
|
+
function isForcedFullPath(normalized) {
|
|
1259
|
+
return normalized.includes('manifest.json') || normalized.includes('_locales/');
|
|
1260
|
+
}
|
|
1261
|
+
function isHotAsset(normalized) {
|
|
1262
|
+
return normalized.startsWith('hot/') || normalized.includes('.hot-update.');
|
|
1263
|
+
}
|
|
1264
|
+
function normalizeChangedPath(file, contextDir) {
|
|
1265
|
+
const raw = String(file || '');
|
|
1266
|
+
if (!raw) return;
|
|
1267
|
+
const normalized = __rspack_external_node_path_c5b9b54f.isAbsolute(raw) ? __rspack_external_node_path_c5b9b54f.relative(contextDir, raw).replace(/\\/g, '/') : raw.replace(/\\/g, '/');
|
|
1268
|
+
if (!normalized) return;
|
|
1269
|
+
return normalized;
|
|
1270
|
+
}
|
|
1271
|
+
function pushChanged(into, file, contextDir, markForced) {
|
|
1272
|
+
const normalized = normalizeChangedPath(file, contextDir);
|
|
1273
|
+
if (!normalized) return;
|
|
1274
|
+
if (!into.includes(normalized)) into.push(normalized);
|
|
1275
|
+
if (isForcedFullPath(normalized)) markForced();
|
|
1276
|
+
}
|
|
1258
1277
|
function createChangedSourcesTracker(compiler) {
|
|
1259
1278
|
let forcedFull = false;
|
|
1260
1279
|
let changedSources = [];
|
|
1280
|
+
let heldForcedFull = false;
|
|
1281
|
+
let heldSources = [];
|
|
1282
|
+
let writtenAssets = [];
|
|
1283
|
+
const contextDir = ()=>compiler.options.context || '';
|
|
1284
|
+
const ingest = (files, into, markForced)=>{
|
|
1285
|
+
if (!files) return;
|
|
1286
|
+
const ctx = contextDir();
|
|
1287
|
+
for (const file of files)pushChanged(into, file, ctx, markForced);
|
|
1288
|
+
};
|
|
1289
|
+
const foldRecoveryIntoCurrent = ()=>{
|
|
1290
|
+
const recovering = heldSources.length > 0 || heldForcedFull;
|
|
1291
|
+
if (!recovering) return;
|
|
1292
|
+
for (const file of heldSources)if (!changedSources.includes(file)) changedSources.push(file);
|
|
1293
|
+
for (const file of writtenAssets)if (!changedSources.includes(file)) changedSources.push(file);
|
|
1294
|
+
forcedFull = forcedFull || heldForcedFull || writtenAssets.some((file)=>isForcedFullPath(file));
|
|
1295
|
+
heldSources = [];
|
|
1296
|
+
heldForcedFull = false;
|
|
1297
|
+
};
|
|
1298
|
+
const markForced = ()=>{
|
|
1299
|
+
forcedFull = true;
|
|
1300
|
+
};
|
|
1261
1301
|
compiler.hooks.watchRun.tap('extjs-reload-changed-sources', ()=>{
|
|
1262
1302
|
forcedFull = false;
|
|
1263
1303
|
changedSources = [];
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1304
|
+
writtenAssets = [];
|
|
1305
|
+
ingest(compiler.modifiedFiles, changedSources, markForced);
|
|
1306
|
+
});
|
|
1307
|
+
compiler.hooks.done?.tap?.('extjs-reload-changed-sources-done', (stats)=>{
|
|
1308
|
+
const compilation = stats?.compilation;
|
|
1309
|
+
ingest(compilation?.modifiedFiles, changedSources, markForced);
|
|
1310
|
+
ingest(compiler.modifiedFiles, changedSources, markForced);
|
|
1311
|
+
if (compilation?.errors && compilation.errors.length > 0) {
|
|
1312
|
+
heldForcedFull = heldForcedFull || forcedFull;
|
|
1313
|
+
for (const file of changedSources)if (!heldSources.includes(file)) heldSources.push(file);
|
|
1314
|
+
return;
|
|
1273
1315
|
}
|
|
1316
|
+
foldRecoveryIntoCurrent();
|
|
1317
|
+
});
|
|
1318
|
+
compiler.hooks.assetEmitted?.tap?.('extjs-reload-changed-sources-emitted', (file)=>{
|
|
1319
|
+
const normalized = normalizeChangedPath(file, contextDir());
|
|
1320
|
+
if (!normalized || isHotAsset(normalized)) return;
|
|
1321
|
+
if (!writtenAssets.includes(normalized)) writtenAssets.push(normalized);
|
|
1274
1322
|
});
|
|
1275
1323
|
return {
|
|
1276
|
-
snapshot: ()=>
|
|
1324
|
+
snapshot: ()=>{
|
|
1325
|
+
foldRecoveryIntoCurrent();
|
|
1326
|
+
return {
|
|
1277
1327
|
forcedFull,
|
|
1278
1328
|
changedSources
|
|
1279
|
-
}
|
|
1329
|
+
};
|
|
1330
|
+
}
|
|
1280
1331
|
};
|
|
1281
1332
|
}
|
|
1282
1333
|
function formatReloadContextLabel(context, files) {
|
|
@@ -1679,14 +1730,15 @@ async function extensionDev(pathOrRemoteUrl, devOptions) {
|
|
|
1679
1730
|
if (isUsingTypeScript(manifestDir)) await generateExtensionTypes(manifestDir, packageJsonDir);
|
|
1680
1731
|
const userManifestPath = projectStructure.packageJsonPath || projectStructure.denoJsonPath;
|
|
1681
1732
|
if (userManifestPath) assertNoManagedDependencyConflicts(userManifestPath, manifestDir);
|
|
1682
|
-
const
|
|
1733
|
+
const commandConfig = await loadCommandConfig(packageJsonDir, 'dev');
|
|
1734
|
+
const configBrowser = commandConfig.browser;
|
|
1735
|
+
const browser = normalizeBrowser(devOptions.browser || configBrowser || 'chrome', devOptions.chromiumBinary, devOptions.geckoBinary || devOptions.firefoxBinary, devOptions.safariBinary);
|
|
1683
1736
|
const geckoBinary = devOptions.geckoBinary || devOptions.firefoxBinary;
|
|
1684
1737
|
if (debug) {
|
|
1685
1738
|
console.log(debugDirs(manifestDir, packageJsonDir));
|
|
1686
1739
|
console.log(debugBrowser(browser, devOptions.chromiumBinary, geckoBinary));
|
|
1687
1740
|
}
|
|
1688
1741
|
const browserConfig = await loadBrowserConfig(packageJsonDir, browser);
|
|
1689
|
-
const commandConfig = await loadCommandConfig(packageJsonDir, 'dev');
|
|
1690
1742
|
const merged = withDarkMode({
|
|
1691
1743
|
...mergeOptionLayers(DEV_COMMAND_DEFAULTS, browserConfig, commandConfig, devOptions),
|
|
1692
1744
|
browser
|
|
@@ -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 n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(t.url||""),s=i.startsWith(`${a}://newtab`)||i.startsWith(`${a}://welcome`);0;s?await n():r(t,o)})}catch{}}let o=[],i=new Map,s=new Set;try{chrome.storage.session.get(["logger_capture_stacks"],e=>{e?.logger_capture_stacks}),chrome.storage.session.onChanged.addListener((e,t)=>{"session"===t&&"logger_capture_stacks"in e&&e.logger_capture_stacks?.newValue})}catch{}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function l(e){if(o.push(e),o.length>2e3&&o.shift(),"number"==typeof e.tabId){let t=i.get(e.tabId)||[];t.push(e),t.length>1e3&&t.shift(),i.set(e.tabId,t)}for(let t of s)try{let r={type:"append",event:e};t.postMessage(r)}catch{}}chrome.runtime.onConnect.addListener(e=>{if("logger"!==e.name)return;let t=t=>(function(e,t){var r;let n,a;if("subscribe"===t.type){s.add(e);try{e.postMessage({type:"init",events:o})}catch{}return}let i=e.sender?.id;if(i&&i===chrome.runtime.id)return;let l=e.sender?.tab?.id,c=e.sender?.frameId,u=e.sender?.tab?.incognito,m=e.sender?.tab?.windowId;if(r=i||`tab:${l??"unknown"}`,n=Date.now(),(a=h.get(r))?n-a.ts>1e3?(a.ts=n,a.count=1,!!0):(a.count+=1,!!(a.count>200)):(h.set(r,{ts:n,count:1}),!!0))return;let y
|
|
26
|
+
`,"background: transparent; color: #0971fe; "),!t){try{await n()}catch{try{chrome.tabs.create({url:o})}catch{}}return}let i=String(t.url||""),s=i.startsWith(`${a}://newtab`)||i.startsWith(`${a}://welcome`);0;s?await n():r(t,o)})}catch{}}let o=[],i=new Map,s=new Set;try{chrome.storage.session.get(["logger_capture_stacks"],e=>{e?.logger_capture_stacks}),chrome.storage.session.onChanged.addListener((e,t)=>{"session"===t&&"logger_capture_stacks"in e&&e.logger_capture_stacks?.newValue})}catch{}function d(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function l(e){if(o.push(e),o.length>2e3&&o.shift(),"number"==typeof e.tabId){let t=i.get(e.tabId)||[];t.push(e),t.length>1e3&&t.shift(),i.set(e.tabId,t)}for(let t of s)try{let r={type:"append",event:e};t.postMessage(r)}catch{}}chrome.runtime.onConnect.addListener(e=>{if("logger"!==e.name)return;let t=t=>(function(e,t){var r;let n,a;if("subscribe"===t.type){s.add(e);try{e.postMessage({type:"init",events:o})}catch{}return}let i=e.sender?.id;if(i&&i===chrome.runtime.id)return;let l=e.sender?.tab?.id,c=e.sender?.frameId,u=e.sender?.tab?.incognito,m=e.sender?.tab?.windowId;if(r=i||`tab:${l??"unknown"}`,n=Date.now(),(a=h.get(r))?n-a.ts>1e3?(a.ts=n,a.count=1,!!0):(a.count+=1,!!(a.count>200)):(h.set(r,{ts:n,count:1}),!!0))return;let p=y(t.messageParts),v={id:d(),timestamp:Date.now(),level:t.level,context:t.context,messageParts:p,eventType:"dx.signal"===t.eventType||"log"===t.eventType?t.eventType:"log",code:"string"==typeof t.code?f(t.code,128):void 0,status:"ok"===t.status||"warn"===t.status||"fail"===t.status?t.status:void 0,data:b(t.data),remediation:"string"==typeof t.remediation?f(t.remediation,512):void 0,url:t.url,stack:t.stack,errorName:t.errorName,tabId:l,frameId:c,sourceExtensionId:i,incognito:u,windowId:m};g(v)})(e,t);e.onMessage.addListener(t),e.onDisconnect.addListener(()=>{s.delete(e);try{e.onMessage.removeListener(t)}catch{}})}),chrome.action.onClicked.addListener(async()=>{try{await chrome.sidePanel.setPanelBehavior({openPanelOnActionClick:!0})}catch{}});let c=[],u=new Set;function m(e){try{return JSON.stringify(e)}catch{return String(e)}}function g(e){let t=`${e.eventType??"log"}|${e.code??""}|${e.status??""}|${e.level}|${e.context}|${e.tabId??""}|${e.frameId??""}|${e.url??""}|${m(e.messageParts)}|${m(e.data)}`.slice(0,512);if(!u.has(t)){if(u.add(t),c.push(t),c.length>2e3){let e=c.shift();e&&u.delete(e)}if(e.url&&!e.hostname)try{let t=new URL(e.url);e.hostname=`${t.hostname}${t.pathname}`}catch{}if(null!=e.tabId&&null==e.title)try{chrome.tabs.get(e.tabId,t=>{if(chrome.runtime.lastError)return l(e);e.title=t?.title||e.title,l(e)});return}catch{}l(e)}}let h=new Map;function f(e,t=2048){return e.length<=t?e:e.slice(0,t)+"..."}function p(e){try{return JSON.stringify(e)}catch{try{return String(e)}catch{return"[unserializable]"}}}function y(e){try{let t=[];for(let r of e??[])if("string"==typeof r?t.push(f(r)):r instanceof Error?t.push(f(`${r.name}: ${r.message}`)):t.push(f(p(r))),t.join(" ").length>8192)break;return t}catch{return[p(e)]}}function b(e){if(e&&"object"==typeof e)try{let t=JSON.stringify(e);if(!t)return;let r=JSON.parse(t);if(0===Object.keys(r).length)return;return r}catch{return}}function v(e,t,r={}){g({id:d(),timestamp:Date.now(),level:e,context:"background",messageParts:t,url:"string"==typeof r.url?r.url:void 0,tabId:"number"==typeof r.tabId?r.tabId:void 0,frameId:"number"==typeof r.frameId?r.frameId:void 0})}function x(e){let t=String(e.name||"").toLowerCase();return t.includes("extension.js built-in developer tools")||t.includes("extension.js theme")}async function w(){let e=(await new Promise(e=>{chrome.management.getAll(e)})||[]).filter(e=>e.id!==chrome.runtime.id&&"igcijhgmihmjbbahdabahfbpffalcfnn"!==e.id&&"development"===e.installType&&"theme"!==e.type&&!x(e));if(0===e.length)return{ok:!0,extensionEnabled:null};let t=e.find(e=>e.enabled)||e[e.length-1];return{ok:!0,extensionEnabled:!!t?.enabled,extensionName:t?.name,extensionId:t?.id}}async function I(e){if(e.startsWith("data:"))return e;let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch icon: ${t.status}`);let r=await t.blob();return await new Promise((e,t)=>{let n=new FileReader;n.onload=()=>e(String(n.result||"")),n.onerror=()=>t(Error("Failed to read icon blob")),n.readAsDataURL(r)})}function k(e){return!!e&&e.id!==chrome.runtime.id&&"development"===e.installType&&"theme"!==e.type&&!x(e)}chrome.runtime.onInstalled.addListener(e=>{v("info",["extension installed",e.reason,e.previousVersion??null])}),chrome.storage.session.get(["logger_events"],e=>{let t=Array.isArray(e?.logger_events)?e.logger_events:[];if(t.length)for(let e of t.slice(-2e3))o.push(e)}),setInterval(()=>{chrome.storage.session.set({logger_events:o.slice(-200)})},2e3),chrome.runtime.onStartup.addListener(()=>{v("info",["extension startup"]);try{v("info",["TEST_LOG: background-start"])}catch{}}),chrome.tabs.onCreated.addListener(e=>{v("info",["tab created"],{tabId:e.id??void 0,url:e.url})}),chrome.tabs.onUpdated.addListener((e,t,r)=>{"loading"===t.status&&v("debug",["tab loading"],{tabId:e,url:r.url}),"complete"===t.status&&v("debug",["tab complete"],{tabId:e,url:r.url}),"string"==typeof t.url&&v("info",["tab url changed",t.url],{tabId:e,url:t.url})}),chrome.tabs.onRemoved.addListener((e,t)=>{v("info",["tab removed",{windowId:t.windowId,isWindowClosing:t.isWindowClosing}],{tabId:e})}),chrome.webNavigation.onBeforeNavigate.addListener(e=>{0===e.frameId&&v("info",["Before navigate"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onCommitted.addListener(e=>{0===e.frameId&&v("info",["Navigation committed"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onCompleted.addListener(e=>{0===e.frameId&&v("info",["Navigation completed"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onErrorOccurred.addListener(e=>{0===e.frameId&&v("error",["Navigation error",e.error],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.webNavigation.onHistoryStateUpdated.addListener(e=>{0===e.frameId&&v("info",["History state updated"],{tabId:e.tabId,frameId:e.frameId,url:e.url,title:"[navigation]"})}),chrome.runtime.onMessage.addListener((e,t,r)=>e&&"get-events"===e.type?(r({events:o.slice(-500)}),!0):!!e&&"clear-events"===e.type&&(o.length=0,r({ok:!0}),!0)),chrome.runtime.onMessage.addListener((e,t,r)=>{if((!t?.id||t.id===chrome.runtime.id)&&e){if("resolve-icon-url"===e.type)return e.url&&function(e){if(e.startsWith("data:"))return!0;try{let t=new URL(e);return"moz-extension:"===t.protocol||"chrome-extension:"===t.protocol}catch{return!1}}(e.url)?(I(e.url).then(e=>r({ok:!0,dataUrl:e})).catch(e=>r({ok:!1,error:String(e)})),!0):void r({ok:!1,error:"Unsupported icon URL"});if("get-dx-status"===e.type)return w().then(e=>r(e)).catch(e=>r({ok:!1,error:String(e||"Unknown error")})),!0;if("open-options-page"===e.type){try{chrome.runtime.openOptionsPage(()=>{chrome.runtime.lastError?r({ok:!1,error:String(chrome.runtime.lastError.message||"Unknown error")}):r({ok:!0})})}catch(e){r({ok:!1,error:String(e||"Unknown error")})}return!0}if("dx-signal"===e.type){try{var n={level:e.level||"info",context:e.context||"content",messageParts:Array.isArray(e.messageParts)&&e.messageParts.length>0?e.messageParts:[e.code||"DX_SIGNAL"],eventType:e.eventType||"dx.signal",code:e.code,status:e.status,data:e.data,remediation:e.remediation,url:"string"==typeof e.url?e.url:void 0,stack:"string"==typeof e.stack?e.stack:void 0,errorName:"string"==typeof e.errorName?e.errorName:void 0};g({id:d(),timestamp:Date.now(),level:n.level,context:n.context,messageParts:y(n.messageParts||[]),eventType:"dx.signal"===n.eventType||"log"===n.eventType?n.eventType:"log",code:"string"==typeof n.code?f(String(n.code),128):void 0,status:"ok"===n.status||"warn"===n.status||"fail"===n.status?n.status:void 0,data:b(n.data),remediation:"string"==typeof n.remediation?f(n.remediation,512):void 0,url:n.url,stack:n.stack,errorName:n.errorName,tabId:n.tabId,frameId:n.frameId}),r({ok:!0})}catch(e){r({ok:!1,error:String(e||"Unknown error")})}return!0}}}),chrome.runtime.onStartup.addListener(async()=>{await a()}),chrome.runtime.onInstalled.addListener(async()=>{await a()});let L="";function S(e,t,r){try{chrome.tabs.query({},n=>{for(let a of n||[])if("number"==typeof a.id)try{chrome.tabs.sendMessage(a.id,{type:"extjs-dev-reload",state:e,label:t||"",kind:r||""}).catch(()=>{})}catch{}})}catch{}}"function"==typeof chrome.runtime?.onMessageExternal?.addListener&&chrome.runtime.onMessageExternal.addListener((e,t,r)=>{if(!e||"extjs-dev-reload-state"!==e.type)return;let n=t?.id;if(!n)return;let a="reloaded"===e.phase?"reloaded":"reloading",o="string"==typeof e.label?e.label:"",i="string"==typeof e.kind?e.kind:"";chrome.management.get(n,e=>{chrome.runtime.lastError||k(e)&&(L="reloading"===a?o:"",S(a,o,i))}),r({ok:!0})}),"function"==typeof chrome.management?.onDisabled?.addListener&&chrome.management.onDisabled.addListener(e=>{k(e)&&S("reloading",L)}),"function"==typeof chrome.management?.onEnabled?.addListener&&chrome.management.onEnabled.addListener(e=>{k(e)&&(S("reloaded",L),L="")}),"function"==typeof chrome.management?.onInstalled?.addListener&&chrome.management.onInstalled.addListener(e=>{k(e)&&(S("reloaded",L),L="")})})();
|