
* refactor: add dev server and fix `update-beta.json` bug
* chore: add renovate config
* feat: release plugin to GitHub release via action
* chore: update vsc settings
* Cancel release by action
* docs: update readme
* Update README.md
* Update README.md
fix format
* Update README.md
* Update README.md
fix hint
* tweak
* Merge #81
* Fix indent
* Merge ade49628ff
* Revent delete env
* tweak
* feat: release via GitHub action
* docs: update readme
* Update README.md
* style: fix prettier
* add: stdout log to file
* Update README.md
fix typo
* Update release.yml
fix typo
* write Zotero log to `logs/zotero.log`
* do not provide update-beta.json default
* fix prettier in readme
* tweak
* fix wrong link in readme
* Move 3rd package config to package.json
---------
Co-authored-by: windingwind <33902321+windingwind@users.noreply.github.com>
76 lines
2.5 KiB
JavaScript
76 lines
2.5 KiB
JavaScript
import details from "../package.json" assert { type: "json" };
|
|
|
|
const { addonID, addonName } = details.config;
|
|
const { version } = details;
|
|
|
|
export const reloadScript = `
|
|
(async () => {
|
|
Services.obs.notifyObservers(null, "startupcache-invalidate", null);
|
|
const { AddonManager } = ChromeUtils.import("resource://gre/modules/AddonManager.jsm");
|
|
const addon = await AddonManager.getAddonByID("${addonID}");
|
|
await addon.reload();
|
|
const progressWindow = new Zotero.ProgressWindow({ closeOnClick: true });
|
|
progressWindow.changeHeadline("${addonName} Hot Reload");
|
|
progressWindow.progress = new progressWindow.ItemProgress(
|
|
"chrome://zotero/skin/tick.png",
|
|
"VERSION=${version}, BUILD=${new Date().toLocaleString()}. By zotero-plugin-toolkit"
|
|
);
|
|
progressWindow.progress.setProgress(100);
|
|
progressWindow.show();
|
|
progressWindow.startCloseTimer(5000);
|
|
})()`;
|
|
|
|
export const openDevToolScript = `
|
|
(async () => {
|
|
|
|
// const { BrowserToolboxLauncher } = ChromeUtils.import(
|
|
// "resource://devtools/client/framework/browser-toolbox/Launcher.jsm",
|
|
// );
|
|
// BrowserToolboxLauncher.init();
|
|
// TODO: Use the above code to open the devtool after https://github.com/zotero/zotero/pull/3387
|
|
|
|
Zotero.Prefs.set("devtools.debugger.remote-enabled", true, true);
|
|
Zotero.Prefs.set("devtools.debugger.remote-port", 6100, true);
|
|
Zotero.Prefs.set("devtools.debugger.prompt-connection", false, true);
|
|
Zotero.Prefs.set("devtools.debugger.chrome-debugging-websocket", false, true);
|
|
|
|
env =
|
|
Services.env ||
|
|
Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
|
|
|
|
env.set("MOZ_BROWSER_TOOLBOX_PORT", 6100);
|
|
Zotero.openInViewer(
|
|
"chrome://devtools/content/framework/browser-toolbox/window.html",
|
|
{
|
|
onLoad: (doc) => {
|
|
doc.querySelector("#status-message-container").style.visibility =
|
|
"collapse";
|
|
let toolboxBody;
|
|
waitUntil(
|
|
() => {
|
|
toolboxBody = doc
|
|
.querySelector(".devtools-toolbox-browsertoolbox-iframe")
|
|
?.contentDocument?.querySelector(".theme-body");
|
|
return toolboxBody;
|
|
},
|
|
() => {
|
|
toolboxBody.style = "pointer-events: all !important";
|
|
}
|
|
);
|
|
},
|
|
}
|
|
);
|
|
|
|
function waitUntil(condition, callback, interval = 100, timeout = 10000) {
|
|
const start = Date.now();
|
|
const intervalId = setInterval(() => {
|
|
if (condition()) {
|
|
clearInterval(intervalId);
|
|
callback();
|
|
} else if (Date.now() - start > timeout) {
|
|
clearInterval(intervalId);
|
|
}
|
|
}, interval);
|
|
}
|
|
})()`;
|