Merge branch 'notification-read-api' into swn

This commit is contained in:
tamaina 2022-02-20 16:16:57 +09:00
commit a0f92f60b3
316 changed files with 390 additions and 456 deletions

View File

@ -14,11 +14,15 @@ You should also include the user name that made the change.
## 12.x.x (unreleased)
### Changes
- ートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました
### Improvements
-
### Bugfixes
- Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo
- Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn
## 12.107.0 (2022/02/12)

View File

@ -422,7 +422,6 @@ next: "次"
retype: "再入力"
noteOf: "{user}のノート"
inviteToGroup: "グループに招待"
maxNoteTextLength: "ノートの文字数制限"
quoteAttached: "引用付き"
quoteQuestion: "引用として添付しますか?"
noMessagesYet: "まだチャットはありません"

View File

@ -0,0 +1,13 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class removeMaxNoteTextLength1645340161439 {
name = 'removeMaxNoteTextLength1645340161439'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "maxNoteTextLength"`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "maxNoteTextLength" integer NOT NULL DEFAULT '500'`);
}
}

View File

@ -1,3 +1,5 @@
export const MAX_NOTE_TEXT_LENGTH = 3000;
export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days

View File

@ -63,14 +63,7 @@ export const refs = {
Emoji: packedEmojiSchema,
};
// Packed = SchemaTypeDef<typeof refs[x]>; とすると展開されてマウスホバー時に型表示が使い物にならなくなる
// ObjType<r['properties']>を指定するとなぜか展開されずにPacked<'Hoge'>と表示される
type PackedDef<r extends { properties?: Obj; oneOf?: ReadonlyArray<Schema>; allOf?: ReadonlyArray<Schema> }> =
r['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<r['allOf']>> :
r['oneOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<r['oneOf']> :
r['properties'] extends Obj ? ObjType<r['properties'], any> :
never;
export type Packed<x extends keyof typeof refs> = PackedDef<typeof refs[x]>;
export type Packed<x extends keyof typeof refs> = SchemaType<typeof refs[x]>;
type TypeStringef = 'null' | 'boolean' | 'integer' | 'number' | 'string' | 'array' | 'object' | 'any';
type StringDefToType<T extends TypeStringef> =
@ -107,31 +100,20 @@ export interface Schema extends OfSchema {
readonly minLength?: number;
}
type OptionalPropertyNames<T extends Obj> = {
[K in keyof T]: T[K]['optional'] extends true ? K : never
}[keyof T];
type NonOptionalPropertyNames<T extends Obj> = {
[K in keyof T]: T[K]['optional'] extends false ? K : never
}[keyof T];
type DefaultPropertyNames<T extends Obj> = {
[K in keyof T]: T[K]['default'] extends null ? K :
T[K]['default'] extends string ? K :
T[K]['default'] extends number ? K :
T[K]['default'] extends boolean ? K :
T[K]['default'] extends Record<string, unknown> ? K :
never
}[keyof T];
type RequiredPropertyNames<s extends Obj> = {
[K in keyof s]:
// K is not optional
s[K]['optional'] extends false ? K :
// K has default value
s[K]['default'] extends null | string | number | boolean | Record<string, unknown> ? K : never
}[keyof s];
export interface Obj { [key: string]: Schema; }
export type ObjType<s extends Obj, RequiredProps extends ReadonlyArray<keyof s>> =
export type ObjType<s extends Obj, RequiredProps extends keyof s> =
{ -readonly [P in keyof s]?: SchemaType<s[P]> } &
{ -readonly [P in RequiredProps[number]]: SchemaType<s[P]> } &
{ -readonly [P in OptionalPropertyNames<s>]?: SchemaType<s[P]> } &
{ -readonly [P in NonOptionalPropertyNames<s>]: SchemaType<s[P]> } &
{ -readonly [P in DefaultPropertyNames<s>]: SchemaType<s[P]> };
{ -readonly [P in RequiredProps]: SchemaType<s[P]> } &
{ -readonly [P in RequiredPropertyNames<s>]: SchemaType<s[P]> };
type NullOrUndefined<p extends Schema, T> =
p['nullable'] extends true
@ -142,11 +124,12 @@ type NullOrUndefined<p extends Schema, T> =
? (T | undefined)
: T;
// 共用体型を交差型にする型 https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection
// https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection
// Get intersection from union
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
// https://github.com/misskey-dev/misskey/pull/8144#discussion_r785287552
// 単純にSchemaTypeDef<X>で判定するだけではダメ
// To get union, we use `Foo extends any ? Hoge<Foo> : never`
type UnionSchemaType<a extends readonly any[], X extends Schema = a[number]> = X extends any ? SchemaType<X> : never;
type ArrayUnion<T> = T extends any ? Array<T> : never;
@ -163,7 +146,7 @@ export type SchemaTypeDef<p extends Schema> =
p['type'] extends 'boolean' ? boolean :
p['type'] extends 'object' ? (
p['ref'] extends keyof typeof refs ? Packed<p['ref']> :
p['properties'] extends NonNullable<Obj> ? ObjType<p['properties'], NonNullable<p['required']>> :
p['properties'] extends NonNullable<Obj> ? ObjType<p['properties'], NonNullable<p['required']>[number]> :
p['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['anyOf']> & Partial<UnionToIntersection<UnionSchemaType<p['anyOf']>>> :
p['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<p['allOf']>> :
any

View File

@ -205,12 +205,6 @@ export class Meta {
})
public remoteDriveCapacityMb: number;
@Column('integer', {
default: 500,
comment: 'Max allowed note text length in characters',
})
public maxNoteTextLength: number;
@Column('varchar', {
length: 128,
nullable: true,

View File

@ -32,7 +32,7 @@ export class AppRepository extends Repository<App> {
...(me ? {
isAuthorized: await AccessTokens.count({
appId: app.id,
userId: me,
userId: me.id,
}).then(count => count > 0),
} : {}),
};

View File

@ -78,8 +78,8 @@ export default async (endpoint: string, user: User | null | undefined, token: Ac
}
// Cast non JSON input
if (ep.meta.requireFile) {
for (const k of Object.keys(ep.params)) {
if (ep.meta.requireFile && ep.params.properties) {
for (const k of Object.keys(ep.params.properties)) {
const param = ep.params.properties![k];
if (['boolean', 'number', 'integer'].includes(param.type ?? '') && typeof data[k] === 'string') {
try {

View File

@ -1,5 +1,5 @@
import * as fs from 'fs';
import * as Ajv from 'ajv';
import Ajv from 'ajv';
import { ILocalUser } from '@/models/entities/user';
import { IEndpointMeta } from './endpoints';
import { ApiError } from './error';
@ -65,6 +65,6 @@ export default function <T extends IEndpointMeta, Ps extends Schema>(meta: T, pa
return Promise.reject(err);
}
return cb(params, user, token, file, cleanup);
return cb(params as SchemaType<Ps>, user, token, file, cleanup);
};
}

View File

@ -70,7 +70,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -18,7 +18,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
username: Users.localUsernameSchema,

View File

@ -11,7 +11,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
url: { type: 'string', minLength: 1 },

View File

@ -17,7 +17,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -17,7 +17,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -44,7 +44,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
title: { type: 'string', minLength: 1 },
@ -65,5 +65,5 @@ export default define(meta, paramDef, async (ps) => {
imageUrl: ps.imageUrl,
}).then(x => Announcements.findOneOrFail(x.identifiers[0]));
return announcement;
return Object.assign({}, announcement, { createdAt: announcement.createdAt.toISOString(), updatedAt: null });
});

View File

@ -17,7 +17,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -52,7 +52,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -17,7 +17,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -8,7 +8,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -149,7 +149,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
fileId: { type: 'string', format: 'misskey:id' },

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
ids: { type: 'array', items: {

View File

@ -22,7 +22,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
fileId: { type: 'string', format: 'misskey:id' },

View File

@ -34,7 +34,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
emojiId: { type: 'string', format: 'misskey:id' },

View File

@ -11,7 +11,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
ids: { type: 'array', items: {

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -8,7 +8,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
fileId: { type: 'string', format: 'misskey:id' },

View File

@ -50,7 +50,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
query: { type: 'string', nullable: true, default: null },

View File

@ -50,7 +50,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
query: { type: 'string', nullable: true, default: null },

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
ids: { type: 'array', items: {

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
ids: { type: 'array', items: {

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
ids: { type: 'array', items: {

View File

@ -18,7 +18,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
id: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
host: { type: 'string' },

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
host: { type: 'string' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
host: { type: 'string' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
host: { type: 'string' },

View File

@ -8,7 +8,7 @@ export const meta = {
tags: ['admin'],
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -24,7 +24,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -8,7 +8,7 @@ export const meta = {
requireAdmin: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -8,7 +8,7 @@ export const meta = {
requireAdmin: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -24,7 +24,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
noteId: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -32,7 +32,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -32,7 +32,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -31,7 +31,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -45,7 +45,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
inbox: { type: 'string' },

View File

@ -39,7 +39,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -8,7 +8,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
inbox: { type: 'string' },

View File

@ -23,7 +23,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -12,7 +12,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
reportId: { type: 'string', format: 'misskey:id' },

View File

@ -8,7 +8,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
to: { type: 'string' },

View File

@ -87,7 +87,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -48,7 +48,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -13,7 +13,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -18,7 +18,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -13,7 +13,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -10,7 +10,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -11,7 +11,7 @@ export const meta = {
requireAdmin: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
disableRegistration: { type: 'boolean', nullable: true },
@ -36,7 +36,6 @@ const paramDef = {
logoImageUrl: { type: 'string', nullable: true },
name: { type: 'string', nullable: true },
description: { type: 'string', nullable: true },
maxNoteTextLength: { type: 'integer', maximum: 8192 },
localDriveCapacityMb: { type: 'integer' },
remoteDriveCapacityMb: { type: 'integer' },
cacheRemoteFiles: { type: 'boolean' },
@ -164,10 +163,6 @@ export default define(meta, paramDef, async (ps, me) => {
set.description = ps.description;
}
if (ps.maxNoteTextLength) {
set.maxNoteTextLength = ps.maxNoteTextLength;
}
if (ps.localDriveCapacityMb !== undefined) {
set.localDriveCapacityMb = ps.localDriveCapacityMb;
}

View File

@ -9,7 +9,7 @@ export const meta = {
requireModerator: true,
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
full: { type: 'boolean' },

View File

@ -51,7 +51,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 },

View File

@ -32,7 +32,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
name: { type: 'string', minLength: 1, maxLength: 100 },

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
antennaId: { type: 'string', format: 'misskey:id' },

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -33,7 +33,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
antennaId: { type: 'string', format: 'misskey:id' },

View File

@ -24,7 +24,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
antennaId: { type: 'string', format: 'misskey:id' },

View File

@ -37,7 +37,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
antennaId: { type: 'string', format: 'misskey:id' },

View File

@ -22,7 +22,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
uri: { type: 'string' },

View File

@ -68,7 +68,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
uri: { type: 'string' },

View File

@ -16,7 +16,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
name: { type: 'string' },

View File

@ -20,7 +20,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
appId: { type: 'string', format: 'misskey:id' },

View File

@ -21,7 +21,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
token: { type: 'string' },

View File

@ -35,7 +35,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
appSecret: { type: 'string' },

View File

@ -37,7 +37,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
token: { type: 'string' },

View File

@ -45,7 +45,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
appSecret: { type: 'string' },

View File

@ -44,7 +44,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -44,7 +44,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
userId: { type: 'string', format: 'misskey:id' },

View File

@ -20,7 +20,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 },

View File

@ -26,7 +26,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
name: { type: 'string', minLength: 1, maxLength: 128 },

View File

@ -17,7 +17,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {},
required: [],

View File

@ -20,7 +20,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
channelId: { type: 'string', format: 'misskey:id' },

View File

@ -20,7 +20,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
sinceId: { type: 'string', format: 'misskey:id' },

View File

@ -20,7 +20,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
sinceId: { type: 'string', format: 'misskey:id' },

View File

@ -22,7 +22,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
channelId: { type: 'string', format: 'misskey:id' },

View File

@ -28,7 +28,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
channelId: { type: 'string', format: 'misskey:id' },

View File

@ -19,7 +19,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
channelId: { type: 'string', format: 'misskey:id' },

View File

@ -36,7 +36,7 @@ export const meta = {
},
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
channelId: { type: 'string', format: 'misskey:id' },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(activeUsersChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(apRequestChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(driveChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(federationChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(hashtagChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

View File

@ -8,7 +8,7 @@ export const meta = {
res: getJsonSchema(instanceChart.schema),
} as const;
const paramDef = {
export const paramDef = {
type: 'object',
properties: {
span: { type: 'string', enum: ['day', 'hour'] },

Some files were not shown because too many files have changed in this diff Show More