scriptcat-mv3/packages/eslint/compat-grant.js
2025-04-15 15:35:35 +08:00

260 lines
9.7 KiB
JavaScript

// Fork from eslint-plugin-userscripts
// Documentation:
// - Tampermonkey: https://www.tampermonkey.net/documentation.php#_grant
// - Violentmonkey: https://violentmonkey.github.io/api/gm
// - Greasemonkey: https://wiki.greasespot.net/Greasemonkey_Manual:API
// - ScriptCat: https://docs.scriptcat.org/docs/dev/cat-api/
const compatMap = {
CAT_userConfig: [{ type: "scriptcat", versionConstraint: ">=0.11.0-beta" }],
CAT_fileStorage: [{ type: "scriptcat", versionConstraint: ">=0.11.0" }],
"GM.addElement": [
{ type: "tampermonkey", versionConstraint: ">=4.11.6113" },
{ type: "violentmonkey", versionConstraint: ">=2.13.0-beta.3" },
],
GM_addElement: [
{ type: "tampermonkey", versionConstraint: ">=4.11.6113" },
{ type: "violentmonkey", versionConstraint: ">=2.13.0-beta.3" },
{ type: "scriptcat", versionConstraint: "*" },
],
"GM.addStyle": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
],
GM_addStyle: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.6.1.4 <4" },
],
"GM.addValueChangeListener": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_addValueChangeListener: [
{ type: "tampermonkey", versionConstraint: ">=2.3.2607" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
],
"GM.cookie": [
{ type: "tampermonkey", versionConstraint: ">=4.8" },
{ type: "scriptcat", versionConstraint: "*" },
],
GM_cookie: [
{ type: "tampermonkey", versionConstraint: ">=4.8" },
{ type: "scriptcat", versionConstraint: "*" },
],
"GM.deleteValue": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4.0" },
],
GM_deleteValue: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.8.20090123.1 <4" },
],
"GM.download": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_download: [
{ type: "tampermonkey", versionConstraint: ">=3.8" },
{ type: "violentmonkey", versionConstraint: ">=2.9.5" },
],
"GM.getResourceText": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_getResourceText: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.8.20080609.0 <4" },
],
"GM.getResourceURL": [{ type: "violentmonkey", versionConstraint: ">=2.12.0 <2.13.0.10" }],
GM_getResourceURL: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.8.20080609.0 <4" },
],
"GM.getResourceUrl": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.13.0.10" },
{ type: "greasemonkey", versionConstraint: ">=4.0" },
],
"GM.getTab": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_getTab: [{ type: "tampermonkey", versionConstraint: ">=4.0.10" }],
"GM.getTabs": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_getTabs: [{ type: "tampermonkey", versionConstraint: ">=4.0.10" }],
"GM.getValue": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4.0" },
],
GM_getValue: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.3-beta <4" },
],
"GM.info": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_info: [
{ type: "tampermonkey", versionConstraint: ">=2.4.2718" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.9.16 <4" },
],
"GM.listValues": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_listValues: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.8.20090123.1 <4" },
],
"GM.log": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_log: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.3-beta <4" },
],
"GM.notification": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_notification: [
{ type: "tampermonkey", versionConstraint: ">=2.0.2344" },
{ type: "violentmonkey", versionConstraint: ">=2.5.0" },
],
"GM.openInTab": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_openInTab: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.5-beta <4" },
],
"GM.registerMenuCommand": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4.11" },
],
GM_registerMenuCommand: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.2.5 <4" },
],
"GM.removeValueChangeListener": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_removeValueChangeListener: [
{ type: "tampermonkey", versionConstraint: ">=2.3.2607" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
],
"GM.saveTab": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_saveTab: [{ type: "tampermonkey", versionConstraint: ">=4.0.10" }],
"GM.setClipboard": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_setClipboard: [
{ type: "tampermonkey", versionConstraint: ">=2.6.2767" },
{ type: "violentmonkey", versionConstraint: ">=2.5.0" },
{ type: "greasemonkey", versionConstraint: ">=1.10 <4" },
],
"GM.setValue": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4" },
],
GM_setValue: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.3-beta <4" },
],
"GM.unregisterMenuCommand": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_unregisterMenuCommand: [
{ type: "tampermonkey", versionConstraint: ">=3.6.3737" },
{ type: "violentmonkey", versionConstraint: ">=2.9.4" },
],
"GM.webRequest": [{ type: "tampermonkey", versionConstraint: ">=4.5" }],
GM_webRequest: [{ type: "tampermonkey", versionConstraint: ">=4.4" }],
GM_xmlhttpRequest: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.2.5 <4" },
],
"GM.xmlHttpRequest": [
{ type: "tampermonkey", versionConstraint: ">=4.5" },
{ type: "violentmonkey", versionConstraint: ">=2.12.0" },
{ type: "greasemonkey", versionConstraint: ">=4.0" },
],
none: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: "*" },
],
unsafeWindow: [
{ type: "tampermonkey", versionConstraint: "*" },
{ type: "violentmonkey", versionConstraint: "*" },
{ type: "greasemonkey", versionConstraint: ">=0.5-beta" },
],
"window.close": [
{ type: "tampermonkey", versionConstraint: ">=3.12.58" },
{ type: "violentmonkey", versionConstraint: ">=2.6.2" },
],
"window.focus": [
{ type: "tampermonkey", versionConstraint: ">=3.12.58" },
{ type: "violentmonkey", versionConstraint: ">=2.12.10" },
],
"window.onurlchange": [{ type: "tampermonkey", versionConstraint: ">=4.11" }],
};
const gmPolyfillOverride = {
GM_addStyle: "ignore",
GM_registerMenuCommand: "ignore",
GM_getResourceText: {
deps: ["GM.getResourceUrl", "GM.log"],
},
"GM.log": "ignore",
"GM.info": {
deps: ["GM_info"],
},
"GM.addStyle": {
deps: ["GM_addStyle"],
},
"GM.deleteValue": {
deps: ["GM_deleteValue"],
},
"GM.getResourceUrl": {
deps: ["GM_getResourceURL"],
},
"GM.getValue": {
deps: ["GM_getValue"],
},
"GM.listValues": {
deps: ["GM_listValues"],
},
"GM.notification": {
deps: ["GM_notification"],
},
"GM.openInTab": {
deps: ["GM_openInTab"],
},
"GM.registerMenuCommand": {
deps: ["GM_registerMenuCommand"],
},
"GM.setClipboard": {
deps: ["GM_setClipboard"],
},
"GM.setValue": {
deps: ["GM_setValue"],
},
"GM.xmlHttpRequest": {
deps: ["GM_xmlhttpRequest"],
},
"GM.getResourceText": {
deps: ["GM_getResourceText"],
},
};
module.exports.compatMap = compatMap;
module.exports.gmPolyfillOverride = gmPolyfillOverride;