Merge branch 'notification-read-api' into swn
This commit is contained in:
12
packages/backend/@types/ms.d.ts
vendored
12
packages/backend/@types/ms.d.ts
vendored
@@ -1,12 +0,0 @@
|
||||
declare module 'ms' {
|
||||
interface IMSOptions {
|
||||
long: boolean;
|
||||
}
|
||||
|
||||
function ms(value: string): number;
|
||||
function ms(value: number, options?: IMSOptions): string;
|
||||
|
||||
namespace ms {} // Hack
|
||||
|
||||
export = ms;
|
||||
}
|
@@ -59,6 +59,7 @@
|
||||
"@types/redis": "2.8.32",
|
||||
"@types/rename": "1.0.4",
|
||||
"@types/request-stats": "3.0.0",
|
||||
"@types/sanitize-html": "2.5.0",
|
||||
"@types/seedrandom": "2.4.28",
|
||||
"@types/sharp": "0.29.3",
|
||||
"@types/sinonjs__fake-timers": "6.0.4",
|
||||
@@ -135,7 +136,7 @@
|
||||
"mfm-js": "0.20.0",
|
||||
"misskey-js": "0.0.8",
|
||||
"mocha": "8.4.0",
|
||||
"ms": "2.1.3",
|
||||
"ms": "3.0.0-canary.1",
|
||||
"multer": "1.4.3",
|
||||
"nested-property": "4.0.0",
|
||||
"node-fetch": "2.6.1",
|
||||
@@ -163,6 +164,7 @@
|
||||
"require-all": "3.0.0",
|
||||
"rndstr": "1.0.0",
|
||||
"s-age": "1.1.2",
|
||||
"sanitize-html": "2.5.3",
|
||||
"seedrandom": "3.0.5",
|
||||
"sharp": "0.29.2",
|
||||
"speakeasy": "2.0.0",
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import define from '../../define';
|
||||
import Resolver from '@/remote/activitypub/resolver';
|
||||
import { ApiError } from '../../error';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
tags: ['federation'],
|
||||
|
@@ -11,7 +11,7 @@ import { Note } from '@/models/entities/note';
|
||||
import { User } from '@/models/entities/user';
|
||||
import { fetchMeta } from '@/misc/fetch-meta';
|
||||
import { isActor, isPost, getApId } from '@/remote/activitypub/type';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
tags: ['federation'],
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import create from '@/services/blocking/create';
|
||||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import deleteBlocking from '@/services/blocking/delete';
|
||||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import create from '@/services/drive/add-file';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import uploadFromUrl from '@/services/drive/upload-from-url';
|
||||
import define from '../../../define';
|
||||
import { DriveFiles } from '@/models/index';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import create from '@/services/following/create';
|
||||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import deleteFollowing from '@/services/following/delete';
|
||||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import define from '../../../define';
|
||||
import { ID } from '../../../../../misc/cafy-id';
|
||||
import { DriveFiles, GalleryPosts } from '@/models/index';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import define from '../../../define';
|
||||
import { ID } from '../../../../../misc/cafy-id';
|
||||
import { DriveFiles, GalleryPosts } from '@/models/index';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import define from '../../define';
|
||||
import { createExportBlockingJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
secure: true,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import define from '../../define';
|
||||
import { createExportFollowingJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
secure: true,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import define from '../../define';
|
||||
import { createExportMuteJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
secure: true,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import define from '../../define';
|
||||
import { createExportNotesJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
secure: true,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import define from '../../define';
|
||||
import { createExportUserListsJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
|
||||
export const meta = {
|
||||
secure: true,
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../define';
|
||||
import { createImportBlockingJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { ApiError } from '../../error';
|
||||
import { DriveFiles } from '@/models/index';
|
||||
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../define';
|
||||
import { createImportFollowingJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { ApiError } from '../../error';
|
||||
import { DriveFiles } from '@/models/index';
|
||||
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../define';
|
||||
import { createImportMutingJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { ApiError } from '../../error';
|
||||
import { DriveFiles } from '@/models/index';
|
||||
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../define';
|
||||
import { createImportUserListsJob } from '@/queue/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { ApiError } from '../../error';
|
||||
import { DriveFiles } from '@/models/index';
|
||||
|
||||
|
@@ -3,7 +3,7 @@ import { publishMainStream } from '@/services/stream';
|
||||
import define from '../../define';
|
||||
import rndstr from 'rndstr';
|
||||
import config from '@/config/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import * as bcrypt from 'bcryptjs';
|
||||
import { Users, UserProfiles } from '@/models/index';
|
||||
import { sendEmail } from '@/services/send-email';
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../../define';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { ApiError } from '../../../error';
|
||||
import { MessagingMessages } from '@/models/index';
|
||||
import { deleteMessage } from '@/services/messages/delete';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { length } from 'stringz';
|
||||
import create from '@/services/note/create';
|
||||
import define from '../../define';
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import deleteNote from '@/services/note/delete';
|
||||
import define from '../../define';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { getNote } from '../../common/getters';
|
||||
import { ApiError } from '../../error';
|
||||
import { Users } from '@/models/index';
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../../define';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import deleteReaction from '@/services/note/reaction/delete';
|
||||
import { getNote } from '../../../common/getters';
|
||||
import { ApiError } from '../../../error';
|
||||
|
@@ -2,7 +2,7 @@ import $ from 'cafy';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import deleteNote from '@/services/note/delete';
|
||||
import define from '../../define';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { getNote } from '../../common/getters';
|
||||
import { ApiError } from '../../error';
|
||||
import { Notes, Users } from '@/models/index';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import define from '../../define';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import { Pages, DriveFiles } from '@/models/index';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import define from '../../define';
|
||||
import { ApiError } from '../../error';
|
||||
import { Pages, DriveFiles } from '@/models/index';
|
||||
|
@@ -3,7 +3,7 @@ import { publishMainStream } from '@/services/stream';
|
||||
import define from '../define';
|
||||
import rndstr from 'rndstr';
|
||||
import config from '@/config/index';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import { Users, UserProfiles, PasswordResetRequests } from '@/models/index';
|
||||
import { sendEmail } from '@/services/send-email';
|
||||
import { ApiError } from '../error';
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import $ from 'cafy';
|
||||
import define from '../../define';
|
||||
import { Users, Followings } from '@/models/index';
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import $ from 'cafy';
|
||||
import * as sanitizeHtml from 'sanitize-html';
|
||||
import { ID } from '@/misc/cafy-id';
|
||||
import define from '../../define';
|
||||
import { publishAdminStream } from '@/services/stream';
|
||||
@@ -6,6 +7,8 @@ import { ApiError } from '../../error';
|
||||
import { getUser } from '../../common/getters';
|
||||
import { AbuseUserReports, Users } from '@/models/index';
|
||||
import { genId } from '@/misc/gen-id';
|
||||
import { sendEmail } from '@/services/send-email';
|
||||
import { fetchMeta } from '@/misc/fetch-meta';
|
||||
|
||||
export const meta = {
|
||||
tags: ['users'],
|
||||
@@ -26,23 +29,24 @@ export const meta = {
|
||||
noSuchUser: {
|
||||
message: 'No such user.',
|
||||
code: 'NO_SUCH_USER',
|
||||
id: '1acefcb5-0959-43fd-9685-b48305736cb5'
|
||||
id: '1acefcb5-0959-43fd-9685-b48305736cb5',
|
||||
},
|
||||
|
||||
cannotReportYourself: {
|
||||
message: 'Cannot report yourself.',
|
||||
code: 'CANNOT_REPORT_YOURSELF',
|
||||
id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f'
|
||||
id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f',
|
||||
},
|
||||
|
||||
cannotReportAdmin: {
|
||||
message: 'Cannot report the admin.',
|
||||
code: 'CANNOT_REPORT_THE_ADMIN',
|
||||
id: '35e166f5-05fb-4f87-a2d5-adb42676d48f'
|
||||
}
|
||||
}
|
||||
id: '35e166f5-05fb-4f87-a2d5-adb42676d48f',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default define(meta, async (ps, me) => {
|
||||
// Lookup user
|
||||
const user = await getUser(ps.userId).catch(e => {
|
||||
@@ -72,10 +76,10 @@ export default define(meta, async (ps, me) => {
|
||||
setTimeout(async () => {
|
||||
const moderators = await Users.find({
|
||||
where: [{
|
||||
isAdmin: true
|
||||
isAdmin: true,
|
||||
}, {
|
||||
isModerator: true
|
||||
}]
|
||||
isModerator: true,
|
||||
}],
|
||||
});
|
||||
|
||||
for (const moderator of moderators) {
|
||||
@@ -83,8 +87,15 @@ export default define(meta, async (ps, me) => {
|
||||
id: report.id,
|
||||
targetUserId: report.targetUserId,
|
||||
reporterId: report.reporterId,
|
||||
comment: report.comment
|
||||
comment: report.comment,
|
||||
});
|
||||
}
|
||||
|
||||
const meta = await fetchMeta();
|
||||
if (meta.email) {
|
||||
sendEmail(meta.email, 'New abuse report',
|
||||
sanitizeHtml(ps.comment),
|
||||
sanitizeHtml(ps.comment));
|
||||
}
|
||||
}, 1);
|
||||
});
|
||||
|
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
|
||||
import { dirname } from 'path';
|
||||
import * as ms from 'ms';
|
||||
import ms from 'ms';
|
||||
import * as Koa from 'koa';
|
||||
import * as Router from '@koa/router';
|
||||
import * as send from 'koa-send';
|
||||
|
@@ -21,8 +21,8 @@ export async function sendEmail(to: string, subject: string, html: string, text:
|
||||
proxy: config.proxySmtp,
|
||||
auth: enableAuth ? {
|
||||
user: meta.smtpUser,
|
||||
pass: meta.smtpPass
|
||||
} : undefined
|
||||
pass: meta.smtpPass,
|
||||
} : undefined,
|
||||
} as any);
|
||||
|
||||
try {
|
||||
@@ -33,86 +33,85 @@ export async function sendEmail(to: string, subject: string, html: string, text:
|
||||
subject: subject,
|
||||
text: text,
|
||||
html: `<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>${ subject }</title>
|
||||
<style>
|
||||
html {
|
||||
background: #eee;
|
||||
}
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>${ subject }</title>
|
||||
<style>
|
||||
html {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 16px;
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
body {
|
||||
padding: 16px;
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #86b300;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #86b300;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
main {
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
background: #fff;
|
||||
color: #555;
|
||||
}
|
||||
main > header {
|
||||
padding: 32px;
|
||||
background: #86b300;
|
||||
}
|
||||
main > header > img {
|
||||
max-width: 128px;
|
||||
max-height: 28px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
main > article {
|
||||
padding: 32px;
|
||||
}
|
||||
main > article > h1 {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
main > footer {
|
||||
padding: 32px;
|
||||
border-top: solid 1px #eee;
|
||||
}
|
||||
main {
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
background: #fff;
|
||||
color: #555;
|
||||
}
|
||||
main > header {
|
||||
padding: 32px;
|
||||
background: #86b300;
|
||||
}
|
||||
main > header > img {
|
||||
max-width: 128px;
|
||||
max-height: 28px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
main > article {
|
||||
padding: 32px;
|
||||
}
|
||||
main > article > h1 {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
main > footer {
|
||||
padding: 32px;
|
||||
border-top: solid 1px #eee;
|
||||
}
|
||||
|
||||
nav {
|
||||
box-sizing: border-box;
|
||||
max-width: 500px;
|
||||
margin: 16px auto 0 auto;
|
||||
padding: 0 32px;
|
||||
}
|
||||
nav > a {
|
||||
color: #888;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<header>
|
||||
<img src="${ meta.logoImageUrl || meta.iconUrl || iconUrl }"/>
|
||||
</header>
|
||||
<article>
|
||||
<h1>${ subject }</h1>
|
||||
<div>${ html }</div>
|
||||
</article>
|
||||
<footer>
|
||||
<a href="${ emailSettingUrl }">${ 'Email setting' }</a>
|
||||
</footer>
|
||||
</main>
|
||||
<nav>
|
||||
<a href="${ config.url }">${ config.host }</a>
|
||||
</nav>
|
||||
</body>
|
||||
</html>
|
||||
`
|
||||
nav {
|
||||
box-sizing: border-box;
|
||||
max-width: 500px;
|
||||
margin: 16px auto 0 auto;
|
||||
padding: 0 32px;
|
||||
}
|
||||
nav > a {
|
||||
color: #888;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<header>
|
||||
<img src="${ meta.logoImageUrl || meta.iconUrl || iconUrl }"/>
|
||||
</header>
|
||||
<article>
|
||||
<h1>${ subject }</h1>
|
||||
<div>${ html }</div>
|
||||
</article>
|
||||
<footer>
|
||||
<a href="${ emailSettingUrl }">${ 'Email setting' }</a>
|
||||
</footer>
|
||||
</main>
|
||||
<nav>
|
||||
<a href="${ config.url }">${ config.host }</a>
|
||||
</nav>
|
||||
</body>
|
||||
</html>`,
|
||||
});
|
||||
|
||||
logger.info('Message sent: %s', info.messageId);
|
||||
|
@@ -769,6 +769,13 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32"
|
||||
integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg==
|
||||
|
||||
"@types/sanitize-html@2.5.0":
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.5.0.tgz#bfef58fbcf2674b20ffcc23c3506faa68c3a13e3"
|
||||
integrity sha512-PeFIEZsO9m1+ACJlXUaimgrR+5DEDiIXhz7Hso307jmq5Yz0lb5kDp8LiTr5dMMMliC/jNNx/qds7Zoxa4zexw==
|
||||
dependencies:
|
||||
htmlparser2 "^6.0.0"
|
||||
|
||||
"@types/seedrandom@2.4.28":
|
||||
version "2.4.28"
|
||||
resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.28.tgz#9ce8fa048c1e8c85cb71d7fe4d704e000226036f"
|
||||
@@ -2631,6 +2638,11 @@ deep-is@^0.1.3, deep-is@~0.1.3:
|
||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
|
||||
|
||||
deepmerge@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
||||
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
||||
|
||||
defer-to-connect@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1"
|
||||
@@ -2831,7 +2843,7 @@ domutils@^1.5.1:
|
||||
dom-serializer "0"
|
||||
domelementtype "1"
|
||||
|
||||
domutils@^2.6.0:
|
||||
domutils@^2.5.2, domutils@^2.6.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
|
||||
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
|
||||
@@ -3889,6 +3901,16 @@ htmlparser2@^3.9.1:
|
||||
inherits "^2.0.1"
|
||||
readable-stream "^3.1.1"
|
||||
|
||||
htmlparser2@^6.0.0:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
|
||||
integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
|
||||
dependencies:
|
||||
domelementtype "^2.0.1"
|
||||
domhandler "^4.0.0"
|
||||
domutils "^2.5.2"
|
||||
entities "^2.0.0"
|
||||
|
||||
http-assert@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
|
||||
@@ -4358,6 +4380,11 @@ is-plain-obj@^2.1.0:
|
||||
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
|
||||
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
|
||||
|
||||
is-plain-object@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
|
||||
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
|
||||
|
||||
is-potential-custom-element-name@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
|
||||
@@ -5421,6 +5448,11 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
ms@3.0.0-canary.1:
|
||||
version "3.0.0-canary.1"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.1.tgz#c7b34fbce381492fd0b345d1cf56e14d67b77b80"
|
||||
integrity sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==
|
||||
|
||||
multer@1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.3.tgz#4db352d6992e028ac0eacf7be45c6efd0264297b"
|
||||
@@ -5466,6 +5498,11 @@ nanoid@^3.1.23:
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
|
||||
integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
|
||||
|
||||
nanoid@^3.1.30:
|
||||
version "3.1.30"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362"
|
||||
integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
|
||||
@@ -5935,6 +5972,11 @@ parse-passwd@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
||||
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
|
||||
|
||||
parse-srcset@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1"
|
||||
integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=
|
||||
|
||||
parse5-htmlparser2-tree-adapter@^6.0.0:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
|
||||
@@ -6366,6 +6408,15 @@ postcss@^8.2.15:
|
||||
nanoid "^3.1.23"
|
||||
source-map-js "^0.6.2"
|
||||
|
||||
postcss@^8.3.11:
|
||||
version "8.3.11"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858"
|
||||
integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==
|
||||
dependencies:
|
||||
nanoid "^3.1.30"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^0.6.2"
|
||||
|
||||
postgres-array@~2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
|
||||
@@ -7044,6 +7095,18 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sanitize-html@2.5.3:
|
||||
version "2.5.3"
|
||||
resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.5.3.tgz#91aa3dc760b072cdf92f9c6973747569b1ba1cd8"
|
||||
integrity sha512-DGATXd1fs/Rm287/i5FBKVYSBBUL0iAaztOA1/RFhEs4yqo39/X52i/q/CwsfCUG5cilmXSBmnQmyWfnKhBlOg==
|
||||
dependencies:
|
||||
deepmerge "^4.2.2"
|
||||
escape-string-regexp "^4.0.0"
|
||||
htmlparser2 "^6.0.0"
|
||||
is-plain-object "^5.0.0"
|
||||
parse-srcset "^1.0.2"
|
||||
postcss "^8.3.11"
|
||||
|
||||
sax@1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a"
|
||||
|
Reference in New Issue
Block a user