2024.11.0-yumechinokuni.7 #41

Merged
yume merged 45 commits from develop into master 2024-11-22 10:16:03 -06:00
2 changed files with 7 additions and 10 deletions
Showing only changes of commit e01e82aa65 - Show all commits

View file

@ -5,6 +5,7 @@
import { target } from "happy-dom/lib/PropertySymbol.js"; import { target } from "happy-dom/lib/PropertySymbol.js";
import { toASCII } from "node:punycode"; import { toASCII } from "node:punycode";
import * as bull from "bullmq";
export type Obj = { [x: string]: any }; export type Obj = { [x: string]: any };
export type ApObject = IObject | string | (IObject | string)[]; export type ApObject = IObject | string | (IObject | string)[];
@ -81,11 +82,11 @@ export function yumeNormalizeURL(url: string): string {
u.hash = ''; u.hash = '';
u.host = toASCII(u.host); u.host = toASCII(u.host);
if (u.protocol && u.protocol !== 'https:') { if (u.protocol && u.protocol !== 'https:') {
throw new Error('protocol is not https'); throw new bull.UnrecoverableError('protocol is not https');
} }
u.protocol = 'https:'; u.protocol = 'https:';
if (u.port && u.port !== '443') { if (u.port && u.port !== '443') {
throw new Error('port is not 443'); throw new bull.UnrecoverableError('port is not 443');
} }
return u.toString(); return u.toString();
} }
@ -93,7 +94,7 @@ export function yumeNormalizeURL(url: string): string {
export function yumeNormalizeRecursive<O extends IUnsanitizedObject | string | (IUnsanitizedObject | string)[]>(object: O, depth = 0): export function yumeNormalizeRecursive<O extends IUnsanitizedObject | string | (IUnsanitizedObject | string)[]>(object: O, depth = 0):
IObject | string | (IObject | string)[] { IObject | string | (IObject | string)[] {
if (depth > 16) { if (depth > 16) {
throw new Error('recursion limit exceeded'); throw new bull.UnrecoverableError('recursion limit exceeded');
} }
if (typeof object === 'string') { if (typeof object === 'string') {
@ -101,7 +102,7 @@ export function yumeNormalizeRecursive<O extends IUnsanitizedObject | string | (
} }
if (Array.isArray(object)) { if (Array.isArray(object)) {
if (object.length > 64) { if (object.length > 64) {
throw new Error('array length limit exceeded'); throw new bull.UnrecoverableError('array length limit exceeded');
} }
return object.flatMap(yumeNormalizeRecursive); return object.flatMap(yumeNormalizeRecursive);
} }
@ -121,10 +122,6 @@ export function yumeNormalizeObject(object: IUnsanitizedObject): IObject {
object.url = yumeNormalizeRecursive(object.url); object.url = yumeNormalizeRecursive(object.url);
} }
if (object.attachment) {
object.attachment = object.attachment.map(yumeNormalizeRecursive);
}
if (object.inReplyTo) { if (object.inReplyTo) {
object.inReplyTo = yumeNormalizeRecursive(object.inReplyTo); object.inReplyTo = yumeNormalizeRecursive(object.inReplyTo);
} }

View file

@ -67,7 +67,7 @@ const mIncomingApReject = metricCounter({
const mincomingApProcessingError = metricCounter({ const mincomingApProcessingError = metricCounter({
name: 'misskey_incoming_ap_processing_error', name: 'misskey_incoming_ap_processing_error',
help: 'Incoming AP processing error', help: 'Incoming AP processing error',
labelNames: ['incoming_host', 'incoming_type', 'reason'], labelNames: ['incoming_host', 'incoming_type'],
}); });
@Injectable() @Injectable()
@ -307,7 +307,7 @@ export class InboxProcessorService implements OnApplicationShutdown {
} }
const end = +new Date(); const end = +new Date();
observeHistogram(mIncomingApProcessingTime, { success: 'false' }, (end - begin) / 1000); observeHistogram(mIncomingApProcessingTime, { success: 'false' }, (end - begin) / 1000);
incCounter(mincomingApProcessingError, { reason: 'unknown' }); incCounter(mincomingApProcessingError, {});
throw e; throw e;
} }
observeHistogram(mIncomingApProcessingTime, { success: 'true' }, (+new Date() - begin) / 1000); observeHistogram(mIncomingApProcessingTime, { success: 'true' }, (+new Date() - begin) / 1000);