@waline/vercel 1.31.14 → 1.32.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@waline/vercel",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.32.0",
|
|
4
4
|
"description": "vercel server for waline comment system",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"waline",
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"@mdit/plugin-sup": "0.8.0",
|
|
24
24
|
"akismet": "^2.0.7",
|
|
25
25
|
"deta": "^2.0.0",
|
|
26
|
-
"dompurify": "^3.1.
|
|
26
|
+
"dompurify": "^3.1.4",
|
|
27
27
|
"dy-node-ip2region": "^1.0.1",
|
|
28
28
|
"fast-csv": "^5.0.1",
|
|
29
29
|
"form-data": "^4.0.0",
|
|
30
|
-
"jsdom": "^24.
|
|
30
|
+
"jsdom": "^24.1.0",
|
|
31
31
|
"jsonwebtoken": "^9.0.2",
|
|
32
32
|
"katex": "^0.16.10",
|
|
33
33
|
"koa-compose": "^4.1.0",
|
|
@@ -18,14 +18,28 @@ module.exports = class extends BaseRest {
|
|
|
18
18
|
const resp = await this.modelInstance.select({ url: ['IN', path] });
|
|
19
19
|
|
|
20
20
|
if (think.isEmpty(resp)) {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
const counters = new Array(path.length).fill(
|
|
22
|
+
type.length === 1 && deprecated
|
|
23
|
+
? 0
|
|
24
|
+
: type.reduce((o, field) => {
|
|
25
|
+
o[field] = 0;
|
|
26
|
+
|
|
27
|
+
return o;
|
|
28
|
+
}, {}),
|
|
29
|
+
);
|
|
26
30
|
|
|
31
|
+
// - deprecated:
|
|
32
|
+
// - single path and single type: 0
|
|
33
|
+
// - single path and multiple type: {[type]: 0}
|
|
34
|
+
// - multiple path and single type: [0, 0]
|
|
35
|
+
// - multiple path and multiple type: [{[type]: 0},{[type]: 0}]
|
|
36
|
+
// - latest
|
|
37
|
+
// - single path and single type: [{[type]: 0}]
|
|
38
|
+
// - single path and multiple type: [{[type]: 0}]
|
|
39
|
+
// - multiple path and single type: [{[type]: 0}]
|
|
40
|
+
// - multiple path and multiple type: [{[type]: 0}]
|
|
27
41
|
return this.jsonOrSuccess(
|
|
28
|
-
|
|
42
|
+
path.length === 1 && deprecated ? counters[0] : counters,
|
|
29
43
|
);
|
|
30
44
|
}
|
|
31
45
|
|
|
@@ -575,10 +575,15 @@ module.exports = class extends BaseRest {
|
|
|
575
575
|
cmt.children.forEach((c) => {
|
|
576
576
|
const parent = childCommentsMap.get(c.pid);
|
|
577
577
|
|
|
578
|
+
// fix https://github.com/walinejs/waline/issues/2518 avoid some abnormal comment data
|
|
579
|
+
if (!parent) {
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
|
|
578
583
|
c.reply_user = {
|
|
579
|
-
nick: parent
|
|
580
|
-
link: parent
|
|
581
|
-
avatar: parent
|
|
584
|
+
nick: parent?.nick,
|
|
585
|
+
link: parent?.link,
|
|
586
|
+
avatar: parent?.avatar,
|
|
582
587
|
};
|
|
583
588
|
});
|
|
584
589
|
|
package/src/extend/controller.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
const nunjucks = require('nunjucks');
|
|
2
2
|
const { PasswordHash } = require('phpass');
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const defaultLocales = require('../locales/index.js');
|
|
5
|
+
|
|
6
|
+
const defaultLang = 'en-us';
|
|
5
7
|
|
|
6
8
|
module.exports = {
|
|
7
9
|
success(...args) {
|
|
@@ -18,11 +20,19 @@ module.exports = {
|
|
|
18
20
|
return this[this.ctx.state.deprecated ? 'json' : 'success'](...args);
|
|
19
21
|
},
|
|
20
22
|
locale(message, variables) {
|
|
21
|
-
const {
|
|
22
|
-
const
|
|
23
|
+
const { userLang } = this.get();
|
|
24
|
+
const lang = (userLang || defaultLang).toLowerCase();
|
|
25
|
+
|
|
26
|
+
const customLocales = this.config('locales');
|
|
27
|
+
const locales = customLocales || defaultLocales;
|
|
28
|
+
|
|
29
|
+
const localMessage =
|
|
30
|
+
locales?.[lang]?.[message] ||
|
|
31
|
+
defaultLocales?.[lang]?.[message] ||
|
|
32
|
+
defaultLocales[defaultLang][message];
|
|
23
33
|
|
|
24
|
-
if (
|
|
25
|
-
message =
|
|
34
|
+
if (localMessage) {
|
|
35
|
+
message = localMessage;
|
|
26
36
|
}
|
|
27
37
|
|
|
28
38
|
return nunjucks.renderString(message, variables);
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
const { katex: katexPlugin } = require('@mdit/plugin-katex');
|
|
2
|
-
const {
|
|
3
|
-
createMathjaxInstance,
|
|
4
|
-
mathjax: mathjaxPlugin,
|
|
5
|
-
} = require('@mdit/plugin-mathjax');
|
|
6
2
|
const { sub: subPlugin } = require('@mdit/plugin-sub');
|
|
7
3
|
const { sup: supPlugin } = require('@mdit/plugin-sup');
|
|
8
4
|
const MarkdownIt = require('markdown-it');
|
|
9
5
|
const emojiPlugin = require('markdown-it-emoji');
|
|
10
6
|
|
|
11
7
|
const { resolveHighlighter } = require('./highlight.js');
|
|
8
|
+
const { mathjaxPlugin } = require('./mathjax.js');
|
|
12
9
|
const { sanitize } = require('./xss.js');
|
|
13
10
|
|
|
14
11
|
const getMarkdownParser = () => {
|
|
@@ -58,10 +55,7 @@ const getMarkdownParser = () => {
|
|
|
58
55
|
output: 'mathml',
|
|
59
56
|
});
|
|
60
57
|
} else if (tex !== false) {
|
|
61
|
-
markdownIt.use(
|
|
62
|
-
mathjaxPlugin,
|
|
63
|
-
createMathjaxInstance({ ...mathjax, output: 'svg' }),
|
|
64
|
-
);
|
|
58
|
+
markdownIt.use(mathjaxPlugin, mathjax);
|
|
65
59
|
}
|
|
66
60
|
|
|
67
61
|
return (content) => sanitize(markdownIt.render(content));
|