Skip to content

Commit 8e72ca8

Browse files
committed
v0.1.2
1 parent 5eb38af commit 8e72ca8

16 files changed

Lines changed: 529 additions & 96 deletions

.editorconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*]
4+
indent_style = space
5+
indent_size = 2
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
3+
4+
# dependencies
5+
/node_modules
6+
/coverage
7+
8+
.DS_Store
9+

.prettierignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules/**
2+
LICENSE
3+
pnpm-lock.yaml
4+
tsconfig.json
5+
tsconfig.tsbuildinfo

.prettierrc.cjs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* @type {import('prettier').Options}
3+
*/
4+
module.exports = {
5+
printWidth: 80,
6+
tabWidth: 2,
7+
useTabs: false,
8+
semi: false,
9+
singleQuote: true,
10+
trailingComma: 'es5',
11+
bracketSpacing: true,
12+
bracketSameLine: true,
13+
overrides: [{ files: '*.json', options: { parser: 'json-stringify' } }],
14+
}

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ It is particularly useful for:
4444
| deleteValue || 1/1 || 1/1 |
4545
| listValues || 1/1 || 1/1 |
4646
| setValues / getValues / deleteValues || 1/1 || 1/1 |
47-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
47+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
4848
| addStyle || 1/1 || 1/1 |
4949
| addElement || 1/1 || 1/1 |
5050
| registerMenuCommand || 1/1 || 1/1 |
@@ -78,8 +78,8 @@ It is particularly useful for:
7878
| setValue / getValue || 2/2 || 2/2 |
7979
| deleteValue || 1/1 || 1/1 |
8080
| listValues || 1/1 || 1/1 |
81-
| setValues / getValues / deleteValues | ⚠️ | 0/1 || 1/1 |
82-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
81+
| setValues / getValues / deleteValues | | 1/1 || 1/1 |
82+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
8383
| addStyle || 1/1 || 1/1 |
8484
| addElement || 1/1 || 1/1 |
8585
| registerMenuCommand || 1/1 || 1/1 |
@@ -114,7 +114,7 @@ It is particularly useful for:
114114
| deleteValue || 1/1 || 1/1 |
115115
| listValues || 1/1 || 1/1 |
116116
| setValues / getValues / deleteValues || 1/1 || 1/1 |
117-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
117+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
118118
| addStyle || 1/1 || 1/1 |
119119
| addElement || 1/1 || 1/1 |
120120
| registerMenuCommand || 1/1 || 1/1 |
@@ -149,7 +149,7 @@ It is particularly useful for:
149149
| deleteValue || 1/1 || 0/1 |
150150
| listValues || 1/1 || 0/1 |
151151
| setValues / getValues / deleteValues || 0/1 || 0/1 |
152-
| addValueChangeListener / removeValueChangeListener || 0/1 || 0/1 |
152+
| addValueChangeListener / removeValueChangeListener || 0/5 || 0/5 |
153153
| addStyle || 1/1 || 0/1 |
154154
| addElement || 0/1 || 0/1 |
155155
| registerMenuCommand || 0/1 || 0/1 |
@@ -184,7 +184,7 @@ It is particularly useful for:
184184
| deleteValue || 1/1 || 1/1 |
185185
| listValues || 1/1 || 1/1 |
186186
| setValues / getValues / deleteValues || 0/1 || 0/1 |
187-
| addValueChangeListener / removeValueChangeListener | ⚠️ | 0/1 | ⚠️ | 0/1 |
187+
| addValueChangeListener / removeValueChangeListener | ⚠️ | 0/5 | ⚠️ | 0/5 |
188188
| addStyle || 1/1 || 1/1 |
189189
| addElement || 1/1 || 1/1 |
190190
| registerMenuCommand || 1/1 || 1/1 |
@@ -219,7 +219,7 @@ It is particularly useful for:
219219
| deleteValue || 1/1 || 0/1 |
220220
| listValues || 1/1 || 0/1 |
221221
| setValues / getValues / deleteValues || 0/1 || 0/1 |
222-
| addValueChangeListener / removeValueChangeListener || 0/1 || 0/1 |
222+
| addValueChangeListener / removeValueChangeListener || 0/5 || 0/5 |
223223
| addStyle || 0/1 || 0/1 |
224224
| addElement || 0/1 || 0/1 |
225225
| registerMenuCommand || 1/1 || 0/1 |
@@ -240,6 +240,8 @@ It is particularly useful for:
240240
| window.close || 1/1 | - | - |
241241
| window.focus || 1/1 | - | - |
242242

243+
### END
244+
243245
## Project Info
244246

245247
- **Repository**: [https://github.com/utags/userscripts](https://github.com/utags/userscripts)

README.zh-CN.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
| deleteValue || 1/1 || 1/1 |
4545
| listValues || 1/1 || 1/1 |
4646
| setValues / getValues / deleteValues || 1/1 || 1/1 |
47-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
47+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
4848
| addStyle || 1/1 || 1/1 |
4949
| addElement || 1/1 || 1/1 |
5050
| registerMenuCommand || 1/1 || 1/1 |
@@ -78,8 +78,8 @@
7878
| setValue / getValue || 2/2 || 2/2 |
7979
| deleteValue || 1/1 || 1/1 |
8080
| listValues || 1/1 || 1/1 |
81-
| setValues / getValues / deleteValues | ⚠️ | 0/1 || 1/1 |
82-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
81+
| setValues / getValues / deleteValues | | 1/1 || 1/1 |
82+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
8383
| addStyle || 1/1 || 1/1 |
8484
| addElement || 1/1 || 1/1 |
8585
| registerMenuCommand || 1/1 || 1/1 |
@@ -114,7 +114,7 @@
114114
| deleteValue || 1/1 || 1/1 |
115115
| listValues || 1/1 || 1/1 |
116116
| setValues / getValues / deleteValues || 1/1 || 1/1 |
117-
| addValueChangeListener / removeValueChangeListener || 1/1 || 1/1 |
117+
| addValueChangeListener / removeValueChangeListener || 5/5 || 5/5 |
118118
| addStyle || 1/1 || 1/1 |
119119
| addElement || 1/1 || 1/1 |
120120
| registerMenuCommand || 1/1 || 1/1 |
@@ -149,7 +149,7 @@
149149
| deleteValue || 1/1 || 0/1 |
150150
| listValues || 1/1 || 0/1 |
151151
| setValues / getValues / deleteValues || 0/1 || 0/1 |
152-
| addValueChangeListener / removeValueChangeListener || 0/1 || 0/1 |
152+
| addValueChangeListener / removeValueChangeListener || 0/5 || 0/5 |
153153
| addStyle || 1/1 || 0/1 |
154154
| addElement || 0/1 || 0/1 |
155155
| registerMenuCommand || 0/1 || 0/1 |
@@ -184,7 +184,7 @@
184184
| deleteValue || 1/1 || 1/1 |
185185
| listValues || 1/1 || 1/1 |
186186
| setValues / getValues / deleteValues || 0/1 || 0/1 |
187-
| addValueChangeListener / removeValueChangeListener | ⚠️ | 0/1 | ⚠️ | 0/1 |
187+
| addValueChangeListener / removeValueChangeListener | ⚠️ | 0/5 | ⚠️ | 0/5 |
188188
| addStyle || 1/1 || 1/1 |
189189
| addElement || 1/1 || 1/1 |
190190
| registerMenuCommand || 1/1 || 1/1 |
@@ -219,7 +219,7 @@
219219
| deleteValue || 1/1 || 0/1 |
220220
| listValues || 1/1 || 0/1 |
221221
| setValues / getValues / deleteValues || 0/1 || 0/1 |
222-
| addValueChangeListener / removeValueChangeListener || 0/1 || 0/1 |
222+
| addValueChangeListener / removeValueChangeListener || 0/5 || 0/5 |
223223
| addStyle || 0/1 || 0/1 |
224224
| addElement || 0/1 || 0/1 |
225225
| registerMenuCommand || 1/1 || 0/1 |
@@ -240,6 +240,8 @@
240240
| window.close || 1/1 | - | - |
241241
| window.focus || 1/1 | - | - |
242242

243+
### END
244+
243245
## 项目信息
244246

245247
- **代码仓库**: [https://github.com/utags/userscripts](https://github.com/utags/userscripts)

greasemonkey.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
| deleteValue || 1/1 || 0/1 |
1313
| listValues || 1/1 || 0/1 |
1414
| setValues / getValues / deleteValues || 0/1 || 0/1 |
15-
| addValueChangeListener / removeValueChangeListener || 0/1 || 0/1 |
15+
| addValueChangeListener / removeValueChangeListener || 0/5 || 0/5 |
1616
| addStyle || 0/1 || 0/1 |
1717
| addElement || 0/1 || 0/1 |
1818
| registerMenuCommand || 1/1 || 0/1 |

merge-readmes.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
const fs = require('fs')
2+
const path = require('path')
3+
4+
const baseDir = __dirname
5+
const readmes = ['README.md', 'README.zh-CN.md'].map((p) =>
6+
path.join(baseDir, p)
7+
)
8+
const sources = [
9+
{ file: 'tampermonkey.md', heading: /^###\s*Tampermonkey\b/ },
10+
{ file: 'violentmonkey.md', heading: /^###\s*Violentmonkey\b/ },
11+
{ file: 'scriptcat.md', heading: /^###\s*ScriptCat\b/ },
12+
{ file: 'greasemonkey.md', heading: /^###\s*Greasemonkey\b/ },
13+
{
14+
file: 'quoid-userscripts.md',
15+
heading: /^###\s*Userscripts\s*\(Safari\)/,
16+
},
17+
{ file: 'stay-safari.md', heading: /^###\s*Stay\s*\(Safari\)/ },
18+
]
19+
20+
function readBody(filePath) {
21+
const content = fs.readFileSync(filePath, 'utf8')
22+
const lines = content.split(/\r?\n/)
23+
if (lines.length && lines[0].trim().startsWith('#')) lines.shift()
24+
return lines.join('\n').trim() + '\n'
25+
}
26+
27+
function replaceSection(doc, headingRegex, newBody) {
28+
const lines = doc.split(/\r?\n/)
29+
let hIndex = -1
30+
for (let i = 0; i < lines.length; i++) {
31+
if (headingRegex.test(lines[i])) {
32+
hIndex = i
33+
break
34+
}
35+
}
36+
if (hIndex === -1) return doc
37+
let end = lines.length
38+
for (let j = hIndex + 1; j < lines.length; j++) {
39+
if (/^###\s/.test(lines[j])) {
40+
end = j
41+
break
42+
}
43+
}
44+
const prefix = lines.slice(0, hIndex + 1).join('\n')
45+
const suffix = lines.slice(end).join('\n')
46+
const body = newBody.replace(/\r?\n$/, '') + '\n'
47+
return prefix + '\n' + body + suffix
48+
}
49+
50+
function run() {
51+
const newBodies = {}
52+
for (const { file, heading } of sources) {
53+
const srcPath = path.join(baseDir, file)
54+
if (fs.existsSync(srcPath)) {
55+
newBodies[file] = { heading, body: readBody(srcPath) }
56+
}
57+
}
58+
for (const readmePath of readmes) {
59+
let doc = fs.readFileSync(readmePath, 'utf8')
60+
for (const { file } of sources) {
61+
const entry = newBodies[file]
62+
if (entry) {
63+
doc = replaceSection(doc, entry.heading, entry.body)
64+
}
65+
}
66+
fs.writeFileSync(readmePath, doc, 'utf8')
67+
}
68+
}
69+
70+
run()

package.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "userscript-api-benchmark",
3+
"version": "0.1.2",
4+
"description": "This script is a comprehensive benchmark tool designed to test the compatibility and accuracy of Userscript Manager APIs.",
5+
"main": "userscript-api-benchmark.user.js",
6+
"scripts": {
7+
"format": "prettier --write .",
8+
"merge-readmes": "node merge-readmes.js && pnpm run format",
9+
"test": "echo \"Error: no test specified\" && exit 1"
10+
},
11+
"keywords": [],
12+
"author": "Pipecraft",
13+
"license": "MIT",
14+
"devDependencies": {
15+
"prettier": "^3.7.4"
16+
}
17+
}

pnpm-lock.yaml

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)