@waline/vercel 1.26.5 → 1.27.0
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/.eslintrc.yml +4 -0
- package/__tests__/katex.spec.js +2 -2
- package/__tests__/mathjax.spec.js +2 -1
- package/__tests__/xss.spec.js +2 -1
- package/dist/package.json +3 -3
- package/dist/src/extend/think.js +1 -1
- package/dist/src/service/markdown/xss.js +2 -2
- package/index.js +1 -0
- package/package.json +1 -1
- package/src/config/middleware.js +1 -0
- package/src/controller/token/2fa.js +1 -0
- package/src/controller/token.js +3 -2
- package/src/controller/user/password.js +1 -0
- package/src/controller/user.js +1 -0
- package/src/extend/controller.js +1 -0
- package/src/extend/think.js +2 -1
- package/src/logic/base.js +2 -1
- package/src/service/akismet.js +1 -0
- package/src/service/avatar.js +1 -0
- package/src/service/markdown/index.js +2 -1
- package/src/service/markdown/katex.js +2 -1
- package/src/service/markdown/mathjax.js +4 -4
- package/src/service/notify.js +3 -2
- package/src/service/storage/cloudbase.js +1 -0
- package/src/service/storage/deta.js +3 -1
- package/src/service/storage/github.js +3 -1
- package/src/service/storage/leancloud.js +2 -0
- package/src/service/storage/mongodb.js +1 -0
- package/vanilla.js +1 -0
- package/build/build.js +0 -69
- package/build/deta.sh +0 -0
package/.eslintrc.yml
CHANGED
package/__tests__/katex.spec.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/unbound-method */
|
|
2
|
-
import { describe, expect, it } from 'vitest';
|
|
3
2
|
import MarkdownIt from 'markdown-it';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
4
|
+
|
|
4
5
|
import { katexPlugin } from '../src/service/markdown/katex';
|
|
5
|
-
import { vi } from 'vitest';
|
|
6
6
|
|
|
7
7
|
const markdownIt = MarkdownIt({ linkify: true }).use(katexPlugin, {
|
|
8
8
|
output: 'mathml',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
1
|
import MarkdownIt from 'markdown-it';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
|
|
3
4
|
import { mathjaxPlugin } from '../src/service/markdown/mathjax';
|
|
4
5
|
|
|
5
6
|
const markdownIt = MarkdownIt({ linkify: true }).use(mathjaxPlugin);
|
package/__tests__/xss.spec.js
CHANGED
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waline/vercel",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.5-deta",
|
|
4
4
|
"description": "vercel server for waline comment system",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"waline",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"dy-node-ip2region": "1.0.1",
|
|
24
24
|
"fast-csv": "4.3.6",
|
|
25
25
|
"form-data": "4.0.0",
|
|
26
|
-
"jsdom": "21.1.
|
|
26
|
+
"jsdom": "21.1.1",
|
|
27
27
|
"jsonwebtoken": "9.0.0",
|
|
28
28
|
"katex": "0.16.4",
|
|
29
29
|
"leancloud-storage": "4.14.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"think-mongo": "2.2.1",
|
|
48
48
|
"think-router-rest": "1.0.5",
|
|
49
49
|
"thinkjs": "3.2.14",
|
|
50
|
-
"ua-parser-js": "1.0.
|
|
50
|
+
"ua-parser-js": "1.0.34"
|
|
51
51
|
},
|
|
52
52
|
"engines": {
|
|
53
53
|
"node": ">=14"
|
package/dist/src/extend/think.js
CHANGED
|
@@ -5,13 +5,13 @@ const DOMPurify = createDOMPurify(new JSDOM('').window);
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Add a hook to make all links open a new window
|
|
8
|
-
* and force their rel to be 'noreferrer noopener'
|
|
8
|
+
* and force their rel to be 'nofollow noreferrer noopener'
|
|
9
9
|
*/
|
|
10
10
|
DOMPurify.addHook('afterSanitizeAttributes', function (node) {
|
|
11
11
|
// set all elements owning target to target=_blank
|
|
12
12
|
if ('target' in node && node.href && !node.href.startsWith('about:blank#')) {
|
|
13
13
|
node.setAttribute('target', '_blank');
|
|
14
|
-
node.setAttribute('rel', 'noreferrer noopener');
|
|
14
|
+
node.setAttribute('rel', 'nofollow noreferrer noopener');
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
// set non-HTML/MathML links to xlink:show=new
|
package/index.js
CHANGED
package/package.json
CHANGED
package/src/config/middleware.js
CHANGED
package/src/controller/token.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
const speakeasy = require('speakeasy');
|
|
2
1
|
const jwt = require('jsonwebtoken');
|
|
3
|
-
const helper = require('think-helper');
|
|
4
2
|
const { PasswordHash } = require('phpass');
|
|
3
|
+
const speakeasy = require('speakeasy');
|
|
4
|
+
const helper = require('think-helper');
|
|
5
|
+
|
|
5
6
|
const BaseRest = require('./rest');
|
|
6
7
|
|
|
7
8
|
module.exports = class extends BaseRest {
|
package/src/controller/user.js
CHANGED
package/src/extend/controller.js
CHANGED
package/src/extend/think.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
const parser = require('ua-parser-js');
|
|
2
1
|
const ip2region = require('dy-node-ip2region');
|
|
3
2
|
const helper = require('think-helper');
|
|
3
|
+
const parser = require('ua-parser-js');
|
|
4
|
+
|
|
4
5
|
const preventMessage = 'PREVENT_NEXT_PROCESS';
|
|
5
6
|
|
|
6
7
|
const regionSearch = ip2region.create(process.env.IP2REGION_DB);
|
package/src/logic/base.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
2
|
const qs = require('querystring');
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
const jwt = require('jsonwebtoken');
|
|
5
|
+
const fetch = require('node-fetch');
|
|
5
6
|
const helper = require('think-helper');
|
|
6
7
|
|
|
7
8
|
module.exports = class extends think.Logic {
|
package/src/service/akismet.js
CHANGED
package/src/service/avatar.js
CHANGED
|
@@ -2,9 +2,10 @@ const MarkdownIt = require('markdown-it');
|
|
|
2
2
|
const emojiPlugin = require('markdown-it-emoji');
|
|
3
3
|
const subPlugin = require('markdown-it-sub');
|
|
4
4
|
const supPlugin = require('markdown-it-sup');
|
|
5
|
+
|
|
6
|
+
const { resolveHighlighter } = require('./highlight');
|
|
5
7
|
const { katexPlugin } = require('./katex');
|
|
6
8
|
const { mathjaxPlugin } = require('./mathjax');
|
|
7
|
-
const { resolveHighlighter } = require('./highlight');
|
|
8
9
|
const { sanitize } = require('./xss');
|
|
9
10
|
|
|
10
11
|
const getMarkdownParser = () => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const katex = require('katex');
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
const { inlineTex, blockTex } = require('./mathCommon');
|
|
4
|
+
const { escapeHtml } = require('./utils');
|
|
4
5
|
|
|
5
6
|
// set KaTeX as the renderer for markdown-it-simplemath
|
|
6
7
|
const katexInline = (tex, options) => {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const { mathjax } = require('mathjax-full/js/mathjax');
|
|
2
|
-
const { TeX } = require('mathjax-full/js/input/tex.js');
|
|
3
|
-
const { SVG } = require('mathjax-full/js/output/svg.js');
|
|
4
1
|
const { liteAdaptor } = require('mathjax-full/js/adaptors/liteAdaptor.js');
|
|
5
2
|
const { RegisterHTMLHandler } = require('mathjax-full/js/handlers/html.js');
|
|
6
3
|
const { AllPackages } = require('mathjax-full/js/input/tex/AllPackages.js');
|
|
4
|
+
const { TeX } = require('mathjax-full/js/input/tex.js');
|
|
5
|
+
const { mathjax } = require('mathjax-full/js/mathjax');
|
|
6
|
+
const { SVG } = require('mathjax-full/js/output/svg.js');
|
|
7
7
|
|
|
8
|
-
const { escapeHtml } = require('./utils');
|
|
9
8
|
const { inlineTex, blockTex } = require('./mathCommon');
|
|
9
|
+
const { escapeHtml } = require('./utils');
|
|
10
10
|
|
|
11
11
|
// set MathJax as the renderer
|
|
12
12
|
class MathToSvg {
|
package/src/service/notify.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
const crypto = require('crypto');
|
|
2
|
+
|
|
1
3
|
const FormData = require('form-data');
|
|
2
|
-
const nodemailer = require('nodemailer');
|
|
3
4
|
const fetch = require('node-fetch');
|
|
5
|
+
const nodemailer = require('nodemailer');
|
|
4
6
|
const nunjucks = require('nunjucks');
|
|
5
|
-
const crypto = require('crypto');
|
|
6
7
|
|
|
7
8
|
module.exports = class extends think.Service {
|
|
8
9
|
constructor(ctx) {
|
package/vanilla.js
CHANGED
package/build/build.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const blackList = ['think-model-sqlite'];
|
|
5
|
-
const pkg = require(path.join(__dirname, '../package.json'));
|
|
6
|
-
|
|
7
|
-
// pkg.name = '@waline/deta';
|
|
8
|
-
|
|
9
|
-
const dist = path.join(__dirname, '../dist');
|
|
10
|
-
|
|
11
|
-
function readFileRecursive(dir) {
|
|
12
|
-
const files = fs.readdirSync(dir);
|
|
13
|
-
const ret = [];
|
|
14
|
-
|
|
15
|
-
for (let i = 0; i < files.length; i++) {
|
|
16
|
-
const filePath = path.join(dir, files[i]);
|
|
17
|
-
const fileInfo = fs.lstatSync(filePath);
|
|
18
|
-
|
|
19
|
-
if (fileInfo.isDirectory()) {
|
|
20
|
-
ret.push(...readFileRecursive(filePath));
|
|
21
|
-
} else {
|
|
22
|
-
ret.push(fs.readFileSync(filePath, 'utf-8'));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return ret;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function findDeps(text) {
|
|
30
|
-
const reg = /require\(\'([^.']+)\'\)/g;
|
|
31
|
-
const matches = text.matchAll(reg);
|
|
32
|
-
const deps = Array.from(matches, ([_, moduleName]) => {
|
|
33
|
-
if (moduleName.includes('/') && !moduleName.startsWith('@')) {
|
|
34
|
-
return moduleName.split('/')[0];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return moduleName;
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
return deps;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function main() {
|
|
44
|
-
const codes = readFileRecursive(path.join(dist, 'src'));
|
|
45
|
-
const deps = [];
|
|
46
|
-
|
|
47
|
-
for (const code of codes) {
|
|
48
|
-
const codeDeps = findDeps(code);
|
|
49
|
-
|
|
50
|
-
deps.push(...codeDeps);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
for (let dep in pkg.dependencies) {
|
|
54
|
-
const exist = deps.includes(dep);
|
|
55
|
-
const isBlack = blackList.includes(dep);
|
|
56
|
-
|
|
57
|
-
if (!exist || isBlack) {
|
|
58
|
-
delete pkg.dependencies[dep];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
fs.writeFileSync(
|
|
63
|
-
path.join(dist, 'package.json'),
|
|
64
|
-
JSON.stringify(pkg, null, '\t'),
|
|
65
|
-
'utf-8'
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
main();
|
package/build/deta.sh
DELETED
|
File without changes
|