2017-03-05 05:09:34 +02:00
|
|
|
const ms = require('ms');
|
2016-12-29 00:49:51 +02:00
|
|
|
|
2017-03-01 15:33:43 +02:00
|
|
|
/**
|
|
|
|
* エンドポイントを表します。
|
|
|
|
*/
|
|
|
|
export type Endpoint = {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* エンドポイント名
|
|
|
|
*/
|
2016-12-29 00:49:51 +02:00
|
|
|
name: string;
|
2017-03-01 15:33:43 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* このエンドポイントにリクエストするのにユーザー情報が必須か否か
|
|
|
|
* 省略した場合は false として解釈されます。
|
|
|
|
*/
|
|
|
|
withCredential?: boolean;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* エンドポイントのリミテーションに関するやつ
|
|
|
|
* 省略した場合はリミテーションは無いものとして解釈されます。
|
|
|
|
* また、withCredential が false の場合はリミテーションを行うことはできません。
|
|
|
|
*/
|
|
|
|
limit?: {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 複数のエンドポイントでリミットを共有したい場合に指定するキー
|
|
|
|
*/
|
|
|
|
key?: string;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* リミットを適用する期間(ms)
|
|
|
|
* このプロパティを設定する場合、max プロパティも設定する必要があります。
|
|
|
|
*/
|
|
|
|
duration?: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* durationで指定した期間内にいくつまでリクエストできるのか
|
|
|
|
* このプロパティを設定する場合、duration プロパティも設定する必要があります。
|
|
|
|
*/
|
|
|
|
max?: number;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 最低でもどれくらいの間隔を開けてリクエストしなければならないか(ms)
|
|
|
|
*/
|
|
|
|
minInterval?: number;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ファイルの添付を必要とするか否か
|
|
|
|
* 省略した場合は false として解釈されます。
|
|
|
|
*/
|
2016-12-29 00:49:51 +02:00
|
|
|
withFile?: boolean;
|
2017-03-01 15:33:43 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* サードパーティアプリからはリクエストすることができないか否か
|
|
|
|
* 省略した場合は false として解釈されます。
|
|
|
|
*/
|
2016-12-29 00:49:51 +02:00
|
|
|
secure?: boolean;
|
2017-03-01 15:33:43 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* エンドポイントの種類
|
|
|
|
* パーミッションの実現に利用されます。
|
|
|
|
*/
|
2016-12-29 00:49:51 +02:00
|
|
|
kind?: string;
|
2017-03-01 15:33:43 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
const endpoints: Endpoint[] = [
|
|
|
|
{
|
|
|
|
name: 'meta'
|
|
|
|
},
|
2017-08-12 09:17:03 +03:00
|
|
|
{
|
|
|
|
name: 'stats'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'username/available'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'my/apps',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'app/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1day'),
|
|
|
|
max: 3
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'app/show'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'app/name_id/available'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'auth/session/generate'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'auth/session/show'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'auth/session/userkey'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'auth/accept',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'auth/deny',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
|
|
|
},
|
2017-08-12 09:17:03 +03:00
|
|
|
{
|
|
|
|
name: 'aggregation/posts',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'aggregation/users',
|
|
|
|
},
|
2017-03-13 16:33:02 +02:00
|
|
|
{
|
|
|
|
name: 'aggregation/users/activity',
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'aggregation/users/post',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'aggregation/users/followers'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'aggregation/users/following'
|
|
|
|
},
|
2017-05-24 10:29:00 +03:00
|
|
|
{
|
|
|
|
name: 'aggregation/users/reaction'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'aggregation/posts/repost'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'aggregation/posts/reply'
|
|
|
|
},
|
2017-05-24 10:29:00 +03:00
|
|
|
{
|
|
|
|
name: 'aggregation/posts/reaction'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'aggregation/posts/reactions'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
|
2017-11-20 20:40:09 +02:00
|
|
|
{
|
|
|
|
name: 'sw/register',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'i',
|
|
|
|
withCredential: true
|
|
|
|
},
|
2017-12-08 15:57:58 +02:00
|
|
|
{
|
|
|
|
name: 'i/2fa/register',
|
2017-12-09 19:45:32 +02:00
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/2fa/unregister',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
2017-12-08 15:57:58 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/2fa/done',
|
2017-12-09 19:45:32 +02:00
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
2017-12-08 15:57:58 +02:00
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'i/update',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1day'),
|
|
|
|
max: 50
|
|
|
|
},
|
|
|
|
kind: 'account-write'
|
2017-11-08 16:43:47 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/update_home',
|
|
|
|
withCredential: true,
|
2018-02-23 19:46:09 +02:00
|
|
|
secure: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/update_mobile_home',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
2017-03-01 15:33:43 +02:00
|
|
|
},
|
2017-08-28 18:20:47 +03:00
|
|
|
{
|
|
|
|
name: 'i/change_password',
|
2017-12-09 19:45:32 +02:00
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
2017-08-28 18:20:47 +03:00
|
|
|
},
|
2017-08-28 17:47:43 +03:00
|
|
|
{
|
|
|
|
name: 'i/regenerate_token',
|
2017-12-09 19:45:32 +02:00
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
2017-08-28 17:47:43 +03:00
|
|
|
},
|
2018-02-22 19:06:35 +02:00
|
|
|
{
|
|
|
|
name: 'i/update_client_setting',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
|
|
|
},
|
2017-08-30 11:31:39 +03:00
|
|
|
{
|
|
|
|
name: 'i/pin',
|
|
|
|
kind: 'account-write'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
|
|
|
name: 'i/appdata/get',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/appdata/set',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/signin_history',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'account-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'i/authorized_apps',
|
|
|
|
withCredential: true,
|
|
|
|
secure: true
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'i/notifications',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'notification-read'
|
|
|
|
},
|
2017-12-21 23:03:54 +02:00
|
|
|
|
2018-03-07 10:48:32 +02:00
|
|
|
{
|
|
|
|
name: 'othello/match',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'othello/match/cancel',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'othello/invitations',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'othello/games',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
|
2018-03-09 11:29:27 +02:00
|
|
|
{
|
2018-03-13 21:30:24 +02:00
|
|
|
name: 'othello/games/show'
|
2018-03-09 11:29:27 +02:00
|
|
|
},
|
|
|
|
|
2017-12-21 23:03:54 +02:00
|
|
|
{
|
|
|
|
name: 'mute/create',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'account/write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'mute/delete',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'account/write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'mute/list',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'account/read'
|
|
|
|
},
|
|
|
|
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
2017-10-30 15:12:10 +02:00
|
|
|
name: 'notifications/get_unread_count',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
2017-10-30 15:12:10 +02:00
|
|
|
kind: 'notification-read'
|
2017-03-01 15:33:43 +02:00
|
|
|
},
|
|
|
|
{
|
2017-10-30 15:12:10 +02:00
|
|
|
name: 'notifications/delete',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
|
|
|
kind: 'notification-write'
|
|
|
|
},
|
|
|
|
{
|
2017-10-30 15:12:10 +02:00
|
|
|
name: 'notifications/delete_all',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
|
|
|
kind: 'notification-write'
|
|
|
|
},
|
|
|
|
{
|
2018-03-29 08:53:48 +03:00
|
|
|
name: 'notifications/mark_as_read_all',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
|
|
|
kind: 'notification-write'
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'drive',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/stream',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
withFile: true,
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/upload_from_url',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 10
|
|
|
|
},
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/show',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/find',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/delete',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/files/update',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/folders',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/folders/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 50
|
|
|
|
},
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/folders/show',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/folders/find',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'drive/folders/update',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'drive-write'
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'users'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/show'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/search'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/search_by_username'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/posts'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/following'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/followers'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'users/recommendation',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'account-read'
|
|
|
|
},
|
2017-09-08 17:29:33 +03:00
|
|
|
{
|
|
|
|
name: 'users/get_frequently_replied_users'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
|
|
|
|
{
|
|
|
|
name: 'following/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
kind: 'following-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'following/delete',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
kind: 'following-write'
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
name: 'posts'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/show'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/replies'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/context'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 120,
|
2017-03-02 19:20:34 +02:00
|
|
|
minInterval: ms('1second')
|
2017-03-01 15:33:43 +02:00
|
|
|
},
|
|
|
|
kind: 'post-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/reposts'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/search'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/timeline',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('10minutes'),
|
|
|
|
max: 100
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/mentions',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('10minutes'),
|
|
|
|
max: 100
|
|
|
|
}
|
|
|
|
},
|
2017-03-25 16:23:22 +02:00
|
|
|
{
|
|
|
|
name: 'posts/trend',
|
|
|
|
withCredential: true
|
|
|
|
},
|
2017-09-06 17:19:58 +03:00
|
|
|
{
|
|
|
|
name: 'posts/categorize',
|
|
|
|
withCredential: true
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
{
|
2017-03-19 21:24:19 +02:00
|
|
|
name: 'posts/reactions',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
{
|
2017-03-19 21:24:19 +02:00
|
|
|
name: 'posts/reactions/create',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
2017-03-19 21:24:19 +02:00
|
|
|
kind: 'reaction-write'
|
2017-03-01 15:33:43 +02:00
|
|
|
},
|
|
|
|
{
|
2017-03-19 21:24:19 +02:00
|
|
|
name: 'posts/reactions/delete',
|
2017-03-01 15:33:43 +02:00
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
2017-03-19 21:24:19 +02:00
|
|
|
kind: 'reaction-write'
|
2017-03-01 15:33:43 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/favorites/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
kind: 'favorite-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/favorites/delete',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
kind: 'favorite-write'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'posts/polls/vote',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 100
|
|
|
|
},
|
|
|
|
kind: 'vote-write'
|
|
|
|
},
|
2017-03-25 09:43:55 +02:00
|
|
|
{
|
|
|
|
name: 'posts/polls/recommendation',
|
|
|
|
withCredential: true
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
|
|
|
|
{
|
|
|
|
name: 'messaging/history',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'messaging-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'messaging/unread',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'messaging-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'messaging/messages',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'messaging-read'
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'messaging/messages/create',
|
|
|
|
withCredential: true,
|
|
|
|
kind: 'messaging-write'
|
2017-10-31 15:35:31 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'channels/create',
|
|
|
|
withCredential: true,
|
|
|
|
limit: {
|
|
|
|
duration: ms('1hour'),
|
|
|
|
max: 3,
|
|
|
|
minInterval: ms('10seconds')
|
|
|
|
}
|
|
|
|
},
|
2017-10-31 16:11:22 +02:00
|
|
|
{
|
|
|
|
name: 'channels/show'
|
|
|
|
},
|
2017-10-31 17:10:30 +02:00
|
|
|
{
|
|
|
|
name: 'channels/posts'
|
|
|
|
},
|
2017-11-01 12:33:08 +02:00
|
|
|
{
|
|
|
|
name: 'channels/watch',
|
|
|
|
withCredential: true
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: 'channels/unwatch',
|
|
|
|
withCredential: true
|
|
|
|
},
|
2017-10-31 21:11:56 +02:00
|
|
|
{
|
|
|
|
name: 'channels'
|
|
|
|
},
|
2017-03-01 15:33:43 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
export default endpoints;
|