wip
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
export const notificationTypes = ['follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app'] as const;
|
||||
export const notificationTypes = ['follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'achievementEarned', 'app'] as const;
|
||||
export const obsoleteNotificationTypes = ['pollVote', 'groupInvited'] as const;
|
||||
|
||||
export const noteVisibilities = ['public', 'home', 'followers', 'specified'] as const;
|
||||
|
||||
@@ -40,3 +41,80 @@ export const permissions = [
|
||||
'read:gallery-likes',
|
||||
'write:gallery-likes',
|
||||
];
|
||||
|
||||
export const ACHIEVEMENT_TYPES = [
|
||||
'notes1',
|
||||
'notes10',
|
||||
'notes100',
|
||||
'notes500',
|
||||
'notes1000',
|
||||
'notes5000',
|
||||
'notes10000',
|
||||
'notes20000',
|
||||
'notes30000',
|
||||
'notes40000',
|
||||
'notes50000',
|
||||
'notes60000',
|
||||
'notes70000',
|
||||
'notes80000',
|
||||
'notes90000',
|
||||
'notes100000',
|
||||
'login3',
|
||||
'login7',
|
||||
'login15',
|
||||
'login30',
|
||||
'login60',
|
||||
'login100',
|
||||
'login200',
|
||||
'login300',
|
||||
'login400',
|
||||
'login500',
|
||||
'login600',
|
||||
'login700',
|
||||
'login800',
|
||||
'login900',
|
||||
'login1000',
|
||||
'passedSinceAccountCreated1',
|
||||
'passedSinceAccountCreated2',
|
||||
'passedSinceAccountCreated3',
|
||||
'loggedInOnBirthday',
|
||||
'loggedInOnNewYearsDay',
|
||||
'noteClipped1',
|
||||
'noteFavorited1',
|
||||
'myNoteFavorited1',
|
||||
'profileFilled',
|
||||
'markedAsCat',
|
||||
'following1',
|
||||
'following10',
|
||||
'following50',
|
||||
'following100',
|
||||
'following300',
|
||||
'followers1',
|
||||
'followers10',
|
||||
'followers50',
|
||||
'followers100',
|
||||
'followers300',
|
||||
'followers500',
|
||||
'followers1000',
|
||||
'collectAchievements30',
|
||||
'viewAchievements3min',
|
||||
'iLoveMisskey',
|
||||
'foundTreasure',
|
||||
'client30min',
|
||||
'client60min',
|
||||
'noteDeletedWithin1min',
|
||||
'postedAtLateNight',
|
||||
'postedAt0min0sec',
|
||||
'selfQuote',
|
||||
'htl20npm',
|
||||
'viewInstanceChart',
|
||||
'outputHelloWorldOnScratchpad',
|
||||
'open3windows',
|
||||
'driveFolderCircularReference',
|
||||
'reactWithoutRead',
|
||||
'clickedClickHere',
|
||||
'justPlainLucky',
|
||||
'setNameToSyuilo',
|
||||
'cookieClicked',
|
||||
'brainDiver',
|
||||
] as const;
|
||||
|
@@ -14,9 +14,11 @@ export {
|
||||
|
||||
export const permissions = consts.permissions;
|
||||
export const notificationTypes = consts.notificationTypes;
|
||||
export const obsoleteNotificationTypes = consts.obsoleteNotificationTypes;
|
||||
export const noteVisibilities = consts.noteVisibilities;
|
||||
export const mutedNoteReasons = consts.mutedNoteReasons;
|
||||
export const ffVisibility = consts.ffVisibility;
|
||||
export const ACHIEVEMENT_TYPES = consts.ACHIEVEMENT_TYPES;
|
||||
|
||||
// api extractor not supported yet
|
||||
//export * as api from './api.js';
|
||||
|
@@ -64,7 +64,7 @@ export const refs = {
|
||||
EmojiSimple: packedEmojiSimpleSchema,
|
||||
EmojiDetailed: packedEmojiDetailedSchema,
|
||||
Flash: packedFlashSchema,
|
||||
} as const satisfies { [x: string]: JSONSchema7Definition };
|
||||
} as const /*satisfies { [x: string]: JSONSchema7Definition }*/;
|
||||
|
||||
type Refs = typeof packedAntennaSchema | typeof packedNoteSchema; // TODO: typeof refs[keyof typeof refs];
|
||||
|
||||
|
@@ -1,25 +1,24 @@
|
||||
import type { JSONSchema7Definition } from 'schema-type';
|
||||
|
||||
export const packedNoteReactionSchema = {
|
||||
$id: 'https://misskey-hub.net/api/schemas/NoteReaction',
|
||||
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'id',
|
||||
example: 'xxxxxxxxxx',
|
||||
},
|
||||
id: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
createdAt: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'date-time',
|
||||
},
|
||||
user: {
|
||||
type: 'object',
|
||||
optional: false, nullable: false,
|
||||
ref: 'UserLite',
|
||||
},
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
type: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
required: [
|
||||
'id',
|
||||
'createdAt',
|
||||
'user',
|
||||
'type',
|
||||
],
|
||||
} as const satisfies JSONSchema7Definition;
|
||||
|
@@ -1,62 +1,117 @@
|
||||
import { notificationTypes } from '../consts';
|
||||
import type { JSONSchema7Definition } from 'schema-type';
|
||||
import { ACHIEVEMENT_TYPES } from '../consts';
|
||||
|
||||
export const packedNotificationSchema = {
|
||||
$id: 'https://misskey-hub.net/api/schemas/Notification',
|
||||
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'id',
|
||||
example: 'xxxxxxxxxx',
|
||||
allOf: [{
|
||||
type: 'object',
|
||||
properties: {
|
||||
id: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
createdAt: {
|
||||
type: 'string',
|
||||
format: 'date-time',
|
||||
},
|
||||
},
|
||||
createdAt: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
format: 'date-time',
|
||||
},
|
||||
type: {
|
||||
type: 'string',
|
||||
optional: false, nullable: false,
|
||||
enum: [...notificationTypes],
|
||||
},
|
||||
user: {
|
||||
required: ['id', 'createdAt'],
|
||||
}, {
|
||||
oneOf: [
|
||||
{
|
||||
type: 'object',
|
||||
ref: 'UserLite',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
userId: {
|
||||
type: 'string',
|
||||
optional: true, nullable: true,
|
||||
format: 'id',
|
||||
},
|
||||
note: {
|
||||
properties: {
|
||||
type: { const: 'follow' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
},
|
||||
required: ['type', 'userId', 'user'],
|
||||
}, {
|
||||
type: 'object',
|
||||
ref: 'Note',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
reaction: {
|
||||
type: 'string',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
choice: {
|
||||
type: 'number',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
invitation: {
|
||||
properties: {
|
||||
type: { const: 'mention' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
body: {
|
||||
type: 'string',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
header: {
|
||||
type: 'string',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
icon: {
|
||||
type: 'string',
|
||||
optional: true, nullable: true,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
properties: {
|
||||
type: { const: 'reply' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'renote' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'quote' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'reaction' },
|
||||
reaction: { type: 'string' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'reaction', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'pollEnded' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
note: { $ref: 'https://misskey-hub.net/api/schemas/Note' },
|
||||
},
|
||||
required: ['type', 'userId', 'user', 'note'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'receiveFollowRequest' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
},
|
||||
required: ['type', 'userId', 'user'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'followRequestAccepted' },
|
||||
userId: { $ref: 'https://misskey-hub.net/api/schemas/Id' },
|
||||
user: { $ref: 'https://misskey-hub.net/api/schemas/UserLite' },
|
||||
},
|
||||
required: ['type', 'userId', 'user'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'achievementEarned' },
|
||||
achievement: { enum: [...ACHIEVEMENT_TYPES] },
|
||||
},
|
||||
required: ['type', 'achievement'],
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
type: { const: 'app' },
|
||||
header: { type: ['string', 'null'] },
|
||||
body: { type: 'string' },
|
||||
icon: { type: ['string', 'null'] },
|
||||
},
|
||||
required: ['type'],
|
||||
}],
|
||||
}],
|
||||
} as const satisfies JSONSchema7Definition;
|
||||
|
Reference in New Issue
Block a user