Merge branch 'develop' into beta

This commit is contained in:
ThatOneCalculator 2023-06-05 17:34:27 -07:00
commit 7f5f4b91a1
15 changed files with 172 additions and 150 deletions

View file

@ -2,66 +2,98 @@
* Gulp tasks
*/
const fs = require('fs');
const gulp = require('gulp');
const replace = require('gulp-replace');
const terser = require('gulp-terser');
const cssnano = require('gulp-cssnano');
const fs = require("fs");
const gulp = require("gulp");
const replace = require("gulp-replace");
const terser = require("gulp-terser");
const cssnano = require("gulp-cssnano");
const locales = require('./locales');
const meta = require('./package.json');
const locales = require("./locales");
const meta = require("./package.json");
gulp.task('copy:backend:views', () =>
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
gulp.task("copy:backend:views", () =>
gulp
.src("./packages/backend/src/server/web/views/**/*")
.pipe(gulp.dest("./packages/backend/built/server/web/views")),
);
gulp.task('copy:backend:custom', () =>
gulp.src('./custom/assets/**/*').pipe(gulp.dest('./packages/backend/assets/'))
gulp.task("copy:backend:custom", () =>
gulp
.src("./custom/assets/**/*")
.pipe(gulp.dest("./packages/backend/assets/")),
);
gulp.task('copy:client:fonts', () =>
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
gulp.task("copy:client:fonts", () =>
gulp
.src("./packages/client/node_modules/three/examples/fonts/**/*")
.pipe(gulp.dest("./built/_client_dist_/fonts/")),
);
gulp.task('copy:client:locales', cb => {
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
gulp.task("copy:client:locales", (cb) => {
fs.mkdirSync("./built/_client_dist_/locales", { recursive: true });
const v = { '_version_': meta.version };
const v = { _version_: meta.version };
for (const [lang, locale] of Object.entries(locales)) {
fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
fs.writeFileSync(
`./built/_client_dist_/locales/${lang}.${meta.version}.json`,
JSON.stringify({ ...locale, ...v }),
"utf-8",
);
}
cb();
});
gulp.task('build:backend:script', () => {
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
.pipe(terser({
toplevel: true
}))
.pipe(gulp.dest('./packages/backend/built/server/web/'));
gulp.task("build:backend:script", () => {
return gulp
.src([
"./packages/backend/src/server/web/boot.js",
"./packages/backend/src/server/web/bios.js",
"./packages/backend/src/server/web/cli.js",
])
.pipe(replace("LANGS", JSON.stringify(Object.keys(locales))))
.pipe(
terser({
toplevel: true,
}),
)
.pipe(gulp.dest("./packages/backend/built/server/web/"));
});
gulp.task('build:backend:style', () => {
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
.pipe(cssnano({
zindex: false
}))
.pipe(gulp.dest('./packages/backend/built/server/web/'));
gulp.task("build:backend:style", () => {
return gulp
.src([
"./packages/backend/src/server/web/style.css",
"./packages/backend/src/server/web/bios.css",
"./packages/backend/src/server/web/cli.css",
])
.pipe(
cssnano({
zindex: false,
}),
)
.pipe(gulp.dest("./packages/backend/built/server/web/"));
});
gulp.task('build', gulp.parallel(
'copy:client:locales', 'copy:backend:views', 'copy:backend:custom', 'build:backend:script', 'build:backend:style', 'copy:client:fonts'
));
gulp.task(
"build",
gulp.parallel(
"copy:client:locales",
"copy:backend:views",
"copy:backend:custom",
"build:backend:script",
"build:backend:style",
"copy:client:fonts",
),
);
gulp.task('default', gulp.task('build'));
gulp.task("default", gulp.task("build"));
gulp.task('watch', () => {
gulp.watch([
'./packages/*/src/**/*',
], { ignoreInitial: false }, gulp.task('build'));
gulp.task("watch", () => {
gulp.watch(
["./packages/*/src/**/*"],
{ ignoreInitial: false },
gulp.task("build"),
);
});

View file

@ -55,7 +55,7 @@
"gulp-replace": "1.1.4",
"gulp-terser": "2.1.0",
"install-peers": "^1.0.4",
"rome": "^11.0.0",
"rome": "^12.1.3",
"start-server-and-test": "1.15.2",
"typescript": "4.9.4"
}

View file

@ -18,7 +18,7 @@
"lint": "pnpm rome check \"src/**/*.ts\"",
"mocha": "cross-env NODE_ENV=test TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
"test": "pnpm run mocha",
"format": "pnpm rome format * --write && pnpm rome check --apply-suggested *"
"format": "pnpm rome format * --write && pnpm rome check --apply *"
},
"resolutions": {
"chokidar": "^3.3.1"
@ -132,7 +132,7 @@
"tinycolor2": "1.5.2",
"tmp": "0.2.1",
"twemoji-parser": "14.0.0",
"typeorm": "0.3.16",
"typeorm": "0.3.11",
"ulid": "2.3.0",
"uuid": "9.0.0",
"web-push": "3.6.1",

View file

@ -167,7 +167,7 @@ async function connectDb(): Promise<void> {
}
}
async function spawnWorkers(limit: number = 1) {
async function spawnWorkers(limit = 1) {
const workers = Math.min(limit, os.cpus().length);
bootLogger.info(`Starting ${workers} worker${workers === 1 ? "" : "s"}...`);
await Promise.all([...Array(workers)].map(spawnWorker));

View file

@ -67,8 +67,6 @@ export function parseUri(value: string | IObject): UriParseResult {
}
export default class DbResolver {
constructor() {}
/**
* AP Note => Misskey Note in DB
*/

View file

@ -11,8 +11,6 @@ export class LdSignature {
public preLoad = true;
public loderTimeout = 10 * 1000;
constructor() {}
public async signRsaSignature2017(
data: any,
privateKey: string,

View file

@ -46,7 +46,7 @@ export default class Connection {
private channels: Channel[] = [];
private subscribingNotes: Map<string, number> = new Map();
private cachedNotes: Packed<"Note">[] = [];
private isMastodonCompatible: boolean = false;
private isMastodonCompatible = false;
private host: string;
private accessToken: string;
private currentSubscribe: string[][] = [];

View file

@ -14,7 +14,7 @@ export async function convertToWebp(
path: string,
width: number,
height: number,
quality: number = 85,
quality = 85,
): Promise<IImage> {
return convertSharpToWebp(await sharp(path), width, height, quality);
}
@ -23,7 +23,7 @@ export async function convertSharpToWebp(
sharp: sharp.Sharp,
width: number,
height: number,
quality: number = 85,
quality = 85,
): Promise<IImage> {
const data = await sharp
.resize(width, height, {

View file

@ -365,10 +365,6 @@ onBeforeUnmount(() => {
position: relative;
}
> &.icon {
transform: translateY(0em);
}
&:not(:disabled):hover,
&:focus-visible {
color: var(--accent);

View file

@ -152,46 +152,50 @@ function top(): void {
scroll(rootEl, { top: 0 });
}
const lists = await os.api("users/lists/list");
function chooseList(ev: MouseEvent) {
const items = [
{
type: "link" as const,
text: i18n.ts.manageLists,
icon: "ph-faders-horizontal ph-bold ph-lg",
to: "/my/lists",
},
].concat(
lists.map((list) => ({
type: "link" as const,
text: list.name,
icon: "",
to: `/timeline/list/${list.id}`,
}))
);
os.popupMenu(items, ev.currentTarget ?? ev.target);
const lists = os.api("users/lists/list");
async function chooseList(ev: MouseEvent) {
await lists.then((res) => {
const items = [
{
type: "link" as const,
text: i18n.ts.manageLists,
icon: "ph-faders-horizontal ph-bold ph-lg",
to: "/my/lists",
},
].concat(
res.map((list) => ({
type: "link" as const,
text: list.name,
icon: "",
to: `/timeline/list/${list.id}`,
}))
);
os.popupMenu(items, ev.currentTarget ?? ev.target);
});
}
const antennas = await os.api("antennas/list");
function chooseAntenna(ev: MouseEvent) {
const items = [
{
type: "link" as const,
indicate: false,
text: i18n.ts.manageAntennas,
icon: "ph-faders-horizontal ph-bold ph-lg",
to: "/my/antennas",
},
].concat(
antennas.map((antenna) => ({
type: "link" as const,
text: antenna.name,
icon: "",
indicate: antenna.hasUnreadNote,
to: `/timeline/antenna/${antenna.id}`,
}))
);
os.popupMenu(items, ev.currentTarget ?? ev.target);
const antennas = os.api("antennas/list");
async function chooseAntenna(ev: MouseEvent) {
await antennas.then((res) => {
const items = [
{
type: "link" as const,
indicate: false,
text: i18n.ts.manageAntennas,
icon: "ph-faders-horizontal ph-bold ph-lg",
to: "/my/antennas",
},
].concat(
res.map((antenna) => ({
type: "link" as const,
text: antenna.name,
icon: "",
indicate: antenna.hasUnreadNote,
to: `/timeline/antenna/${antenna.id}`,
}))
);
os.popupMenu(items, ev.currentTarget ?? ev.target);
});
}
function saveSrc(

View file

@ -14,7 +14,7 @@ function parseSingleKaTeXMacro(src: string): [string, KaTeXMacro] {
if (!src.startsWith("\\newcommand") || src.slice(-1) !== "}") return invalid;
// current index we are checking (= "\\newcommand".length)
let currentPos: number = 11;
let currentPos = 11;
currentPos = skipSpaces(currentPos);
// parse {\name}, (\name), or [\name]
@ -61,8 +61,8 @@ function parseSingleKaTeXMacro(src: string): [string, KaTeXMacro] {
currentPos = skipSpaces(currentPos);
while (currentPos < src.length - 1) {
let numbersignPos: number = -1;
let isEscaped: boolean = false;
let numbersignPos = -1;
let isEscaped = false;
for (let i = currentPos; i < src.length - 1; ++i) {
if (src[i] !== "\\" && src[i] !== "#") {

View file

@ -7,7 +7,7 @@ export class StickySidebar {
private isTop = false;
private isBottom = false;
private offsetTop: number;
private globalHeaderHeight: number = 59;
private globalHeaderHeight = 59;
constructor(
container: StickySidebar["container"],

View file

@ -5,7 +5,7 @@
"build": "webpack",
"watch": "pnpm swc src -d built -D -w",
"lint": "pnpm rome check \"src/**/*.ts\"",
"format": "pnpm rome format * --write && pnpm rome check --apply-suggested *"
"format": "pnpm rome format * --write && pnpm rome check --apply *"
},
"devDependencies": {
"@swc/cli": "^0.1.62",

View file

@ -64,8 +64,8 @@ importers:
specifier: ^1.0.4
version: 1.0.4
rome:
specifier: ^11.0.0
version: 11.0.0
specifier: ^12.1.3
version: 12.1.3
start-server-and-test:
specifier: 1.15.2
version: 1.15.2
@ -388,8 +388,8 @@ importers:
specifier: 14.0.0
version: 14.0.0
typeorm:
specifier: 0.3.16
version: 0.3.16(ioredis@5.3.2)(pg@8.11.0)(ts-node@10.9.1)
specifier: 0.3.11
version: 0.3.11(ioredis@5.3.2)(pg@8.11.0)(ts-node@10.9.1)
ulid:
specifier: 2.3.0
version: 2.3.0
@ -2666,48 +2666,48 @@ packages:
picomatch: 2.3.1
dev: true
/@rometools/cli-darwin-arm64@11.0.0:
resolution: {integrity: sha512-F3vkdY+s3FLIEnAjSbyHTuIPB88cLpccimW4ecid5I7S6GzGG3iUJI4xT00JhH73K4P/qW20/9r+kH1T9Du8Xg==}
/@rometools/cli-darwin-arm64@12.1.3:
resolution: {integrity: sha512-AmFTUDYjBuEGQp/Wwps+2cqUr+qhR7gyXAUnkL5psCuNCz3807TrUq/ecOoct5MIavGJTH6R4aaSL6+f+VlBEg==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rometools/cli-darwin-x64@11.0.0:
resolution: {integrity: sha512-X6jhtS6Iml4GOzgNtnLwIp/KXXhSdqeVyfv69m/AHnIzx3gQAjPZ7BPnJLvTCbhe4SKHL+uTZYFSCJpkUUKE6w==}
/@rometools/cli-darwin-x64@12.1.3:
resolution: {integrity: sha512-k8MbWna8q4LRlb005N2X+JS1UQ+s3ZLBBvwk4fP8TBxlAJXUz17jLLu/Fi+7DTTEmMhM84TWj4FDKW+rNar28g==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@rometools/cli-linux-arm64@11.0.0:
resolution: {integrity: sha512-dktTJJlTpmycBZ2TwhJBcAO8ztK8DdevdyZnFFxdYRvtmJgTjIsC2UFayf/SbKew8B8q1IhI0it+D6ihAeIpeg==}
/@rometools/cli-linux-arm64@12.1.3:
resolution: {integrity: sha512-X/uLhJ2/FNA3nu5TiyeNPqiD3OZoFfNfRvw6a3ut0jEREPvEn72NI7WPijH/gxSz55znfQ7UQ6iM4DZumUknJg==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rometools/cli-linux-x64@11.0.0:
resolution: {integrity: sha512-WVcnXPNdWGUWo0p4NU8YzuthjYR7q+b4vRcjdxtP1DlpphZmSsoC/RSE85nEqRAz8hChcKUansVzOPM8BSsuGA==}
/@rometools/cli-linux-x64@12.1.3:
resolution: {integrity: sha512-csP17q1eWiUXx9z6Jr/JJPibkplyKIwiWPYNzvPCGE8pHlKhwZj3YHRuu7Dm/4EOqx0XFIuqqWZUYm9bkIC8xg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@rometools/cli-win32-arm64@11.0.0:
resolution: {integrity: sha512-tPj6RThQzS7Q45jqQll7NlTYvNcsg/BEP3LYiiazqSh9FAFnMkrV6ewUcMPKWyAfiyLs7jlz4rRvdNRUSygzfQ==}
/@rometools/cli-win32-arm64@12.1.3:
resolution: {integrity: sha512-RymHWeod57EBOJY4P636CgUwYA6BQdkQjh56XKk4pLEHO6X1bFyMet2XL7KlHw5qOTalzuzf5jJqUs+vf3jdXQ==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@rometools/cli-win32-x64@11.0.0:
resolution: {integrity: sha512-bmBai8WHxYjsGk1+je7ZTfCUCWq30WJI3pQM8pzTA674lfGTZ9ymJoZwTaIMSO4rL5V9mlO6uLunsBKso9VqOg==}
/@rometools/cli-win32-x64@12.1.3:
resolution: {integrity: sha512-yHSKYidqJMV9nADqg78GYA+cZ0hS1twANAjiFibQdXj9aGzD+s/IzIFEIi/U/OBLvWYg/SCw0QVozi2vTlKFDQ==}
cpu: [x64]
os: [win32]
requiresBuild: true
@ -8332,16 +8332,6 @@ packages:
once: 1.4.0
path-is-absolute: 1.0.1
/glob@8.0.3:
resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
engines: {node: '>=12'}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 5.1.6
once: 1.4.0
/glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
@ -8351,7 +8341,6 @@ packages:
inherits: 2.0.4
minimatch: 5.1.6
once: 1.4.0
dev: false
/global-dirs@3.0.1:
resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==}
@ -10071,7 +10060,7 @@ packages:
dependencies:
config-chain: 1.1.13
editorconfig: 0.15.3
glob: 8.0.3
glob: 8.1.0
nopt: 6.0.0
/js-levenshtein@1.1.6:
@ -11309,12 +11298,6 @@ packages:
hasBin: true
dev: false
/mkdirp@2.1.6:
resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==}
engines: {node: '>=10'}
hasBin: true
dev: false
/mocha@10.2.0:
resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==}
engines: {node: '>= 14.0.0'}
@ -13548,18 +13531,18 @@ packages:
fsevents: 2.3.2
dev: true
/rome@11.0.0:
resolution: {integrity: sha512-rRo6JOwpMLc3OkeTDRXkrmrDqnxDvZ75GS4f0jLDBNmRgDXWbu0F8eVnJoRn+VbK2AE7vWvhVOMBjnWowcopkQ==}
/rome@12.1.3:
resolution: {integrity: sha512-e+ff72hxDpe/t5/Us7YRBVw3PBET7SeczTQNn6tvrWdrCaAw3qOukQQ+tDCkyFtS4yGsnhjrJbm43ctNbz27Yg==}
engines: {node: '>=14.*'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@rometools/cli-darwin-arm64': 11.0.0
'@rometools/cli-darwin-x64': 11.0.0
'@rometools/cli-linux-arm64': 11.0.0
'@rometools/cli-linux-x64': 11.0.0
'@rometools/cli-win32-arm64': 11.0.0
'@rometools/cli-win32-x64': 11.0.0
'@rometools/cli-darwin-arm64': 12.1.3
'@rometools/cli-darwin-x64': 12.1.3
'@rometools/cli-linux-arm64': 12.1.3
'@rometools/cli-linux-x64': 12.1.3
'@rometools/cli-win32-arm64': 12.1.3
'@rometools/cli-win32-x64': 12.1.3
dev: true
/rss-parser@3.13.0:
@ -13577,7 +13560,7 @@ packages:
/rxjs@7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies:
tslib: 2.4.1
tslib: 2.5.3
dev: true
/s-age@1.1.2:
@ -14969,10 +14952,10 @@ packages:
/tslib@2.4.1:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
dev: false
/tslib@2.5.3:
resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
dev: false
/tsscmp@1.0.6:
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
@ -15067,8 +15050,8 @@ packages:
/typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
/typeorm@0.3.16(ioredis@5.3.2)(pg@8.11.0)(ts-node@10.9.1):
resolution: {integrity: sha512-wJ4Qy1oqRKNDdZiBTTaVMqwo/XxC52Q7uNPTjltPgLhvIW173bL6Iad0lhptMOsFlpixFPaUu3PNziaRBwX2Zw==}
/typeorm@0.3.11(ioredis@5.3.2)(pg@8.11.0)(ts-node@10.9.1):
resolution: {integrity: sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg==}
engines: {node: '>= 12.9.0'}
hasBin: true
peerDependencies:
@ -15077,9 +15060,9 @@ packages:
better-sqlite3: ^7.1.2 || ^8.0.0
hdb-pool: ^0.1.6
ioredis: ^5.0.4
mongodb: ^5.2.0
mssql: ^9.1.1
mysql2: ^2.2.5 || ^3.0.1
mongodb: ^3.6.0
mssql: ^7.3.0
mysql2: ^2.2.5
oracledb: ^5.1.0
pg: ^8.5.1
pg-native: ^3.0.0
@ -15133,15 +15116,17 @@ packages:
date-fns: 2.30.0
debug: 4.3.4(supports-color@8.1.1)
dotenv: 16.1.4
glob: 8.1.0
glob: 7.2.3
ioredis: 5.3.2
mkdirp: 2.1.6
js-yaml: 4.1.0
mkdirp: 1.0.4
pg: 8.11.0
reflect-metadata: 0.1.13
sha.js: 2.4.11
ts-node: 10.9.1(@swc/core@1.3.62)(@types/node@18.11.18)(typescript@5.1.3)
tslib: 2.5.3
uuid: 9.0.0
uuid: 8.3.2
xml2js: 0.4.23
yargs: 17.7.2
transitivePeerDependencies:
- supports-color
@ -15992,6 +15977,14 @@ packages:
xmlbuilder: 9.0.7
dev: false
/xml2js@0.4.23:
resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
engines: {node: '>=4.0.0'}
dependencies:
sax: 1.2.4
xmlbuilder: 11.0.1
dev: false
/xml2js@0.5.0:
resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==}
engines: {node: '>=4.0.0'}

View file

@ -16,6 +16,7 @@
"packages/backend/nsfw-model/",
"packages/client/src/emojilist.json",
"*.md",
"**/tsconfig.json",
"*/.yml"
]
}