summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-24 21:32:46 +0900
committerGitHub <noreply@github.com>2025-03-24 21:32:46 +0900
commitf1f24e39d2df3135493e2c2087230b428e2d02b7 (patch)
treea5ae0e9d2cf810649b2f4e08ef4d00ce7ea91dc9 /packages/backend/src/misc
parentfix(frontend): fix broken styles (diff)
downloadsharkey-f1f24e39d2df3135493e2c2087230b428e2d02b7.tar.gz
sharkey-f1f24e39d2df3135493e2c2087230b428e2d02b7.tar.bz2
sharkey-f1f24e39d2df3135493e2c2087230b428e2d02b7.zip
Feat: Chat (#15686)
* wip * wip * wip * wip * wip * wip * Update types.ts * Create 1742203321812-chat.js * wip * wip * Update room.vue * Update home.vue * Update home.vue * Update ja-JP.yml * Update index.d.ts * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update CHANGELOG.md * wip * Update home.vue * clean up * Update misskey-js.api.md * wip * wip * wip * wip * wip * wip * wip * wip * wip * lint fixes * lint * Update UserEntityService.ts * search * wip * 🎨 * wip * Update home.ownedRooms.vue * wip * Update CHANGELOG.md * Update style.scss * wip * improve performance * improve performance * Update timeline.test.ts
Diffstat (limited to 'packages/backend/src/misc')
-rw-r--r--packages/backend/src/misc/json-schema.ts87
1 files changed, 48 insertions, 39 deletions
diff --git a/packages/backend/src/misc/json-schema.ts b/packages/backend/src/misc/json-schema.ts
index 100fb69585..bc9308ca9b 100644
--- a/packages/backend/src/misc/json-schema.ts
+++ b/packages/backend/src/misc/json-schema.ts
@@ -63,6 +63,10 @@ import {
} from '@/models/json-schema/meta.js';
import { packedSystemWebhookSchema } from '@/models/json-schema/system-webhook.js';
import { packedAbuseReportNotificationRecipientSchema } from '@/models/json-schema/abuse-report-notification-recipient.js';
+import { packedChatMessageSchema, packedChatMessageLiteSchema } from '@/models/json-schema/chat-message.js';
+import { packedChatRoomSchema } from '@/models/json-schema/chat-room.js';
+import { packedChatRoomInvitationSchema } from '@/models/json-schema/chat-room-invitation.js';
+import { packedChatRoomMembershipSchema } from '@/models/json-schema/chat-room-membership.js';
export const refs = {
UserLite: packedUserLiteSchema,
@@ -120,6 +124,11 @@ export const refs = {
MetaDetailed: packedMetaDetailedSchema,
SystemWebhook: packedSystemWebhookSchema,
AbuseReportNotificationRecipient: packedAbuseReportNotificationRecipientSchema,
+ ChatMessage: packedChatMessageSchema,
+ ChatMessageLite: packedChatMessageLiteSchema,
+ ChatRoom: packedChatRoomSchema,
+ ChatRoomInvitation: packedChatRoomInvitationSchema,
+ ChatRoomMembership: packedChatRoomMembershipSchema,
};
export type Packed<x extends keyof typeof refs> = SchemaType<typeof refs[x]>;
@@ -171,11 +180,11 @@ export interface Schema extends OfSchema {
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
+ // 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 type Obj = Record<string, Schema>;
@@ -214,18 +223,18 @@ type ObjectSchemaTypeDef<p extends Schema> =
p['anyOf'] extends ReadonlyArray<Schema> ? p['anyOf'][number]['required'] extends ReadonlyArray<keyof p['properties']> ?
UnionObjType<p['properties'], NonNullable<p['anyOf'][number]['required']>> & ObjType<p['properties'], NonNullable<p['required']>>
: never
- : ObjType<p['properties'], NonNullable<p['required']>>
- :
- p['anyOf'] extends ReadonlyArray<Schema> ? never : // see CONTRIBUTING.md
- p['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<p['allOf']>> :
- p['additionalProperties'] extends true ? Record<string, any> :
- p['additionalProperties'] extends Schema ?
- p['additionalProperties'] extends infer AdditionalProperties ?
- AdditionalProperties extends Schema ?
- Record<string, SchemaType<AdditionalProperties>> :
+ : ObjType<p['properties'], NonNullable<p['required']>>
+ :
+ p['anyOf'] extends ReadonlyArray<Schema> ? never : // see CONTRIBUTING.md
+ p['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<p['allOf']>> :
+ p['additionalProperties'] extends true ? Record<string, any> :
+ p['additionalProperties'] extends Schema ?
+ p['additionalProperties'] extends infer AdditionalProperties ?
+ AdditionalProperties extends Schema ?
+ Record<string, SchemaType<AdditionalProperties>> :
+ never :
never :
- never :
- any;
+ any;
type ObjectSchemaType<p extends Schema> = NullOrUndefined<p, ObjectSchemaTypeDef<p>>;
@@ -235,30 +244,30 @@ export type SchemaTypeDef<p extends Schema> =
p['type'] extends 'number' ? number :
p['type'] extends 'string' ? (
p['enum'] extends readonly (string | null)[] ?
- p['enum'][number] :
- p['format'] extends 'date-time' ? string : // Dateにする??
- string
+ p['enum'][number] :
+ p['format'] extends 'date-time' ? string : // Dateにする??
+ string
) :
- p['type'] extends 'boolean' ? boolean :
- p['type'] extends 'object' ? ObjectSchemaTypeDef<p> :
- p['type'] extends 'array' ? (
- p['items'] extends OfSchema ? (
- p['items']['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<NonNullable<p['items']['anyOf']>>[] :
- p['items']['oneOf'] extends ReadonlyArray<Schema> ? ArrayUnion<UnionSchemaType<NonNullable<p['items']['oneOf']>>> :
- p['items']['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<NonNullable<p['items']['allOf']>>>[] :
- never
- ) :
- p['prefixItems'] extends ReadonlyArray<Schema> ? (
- p['items'] extends NonNullable<Schema> ? [...ArrayToTuple<p['prefixItems']>, ...SchemaType<p['items']>[]] :
- p['items'] extends false ? ArrayToTuple<p['prefixItems']> :
- p['unevaluatedItems'] extends false ? ArrayToTuple<p['prefixItems']> :
- [...ArrayToTuple<p['prefixItems']>, ...unknown[]]
+ p['type'] extends 'boolean' ? boolean :
+ p['type'] extends 'object' ? ObjectSchemaTypeDef<p> :
+ p['type'] extends 'array' ? (
+ p['items'] extends OfSchema ? (
+ p['items']['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<NonNullable<p['items']['anyOf']>>[] :
+ p['items']['oneOf'] extends ReadonlyArray<Schema> ? ArrayUnion<UnionSchemaType<NonNullable<p['items']['oneOf']>>> :
+ p['items']['allOf'] extends ReadonlyArray<Schema> ? UnionToIntersection<UnionSchemaType<NonNullable<p['items']['allOf']>>>[] :
+ never
+ ) :
+ p['prefixItems'] extends ReadonlyArray<Schema> ? (
+ p['items'] extends NonNullable<Schema> ? [...ArrayToTuple<p['prefixItems']>, ...SchemaType<p['items']>[]] :
+ p['items'] extends false ? ArrayToTuple<p['prefixItems']> :
+ p['unevaluatedItems'] extends false ? ArrayToTuple<p['prefixItems']> :
+ [...ArrayToTuple<p['prefixItems']>, ...unknown[]]
+ ) :
+ p['items'] extends NonNullable<Schema> ? SchemaType<p['items']>[] :
+ any[]
) :
- p['items'] extends NonNullable<Schema> ? SchemaType<p['items']>[] :
- any[]
- ) :
- p['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['anyOf']> & PartialIntersection<UnionSchemaType<p['anyOf']>> :
- p['oneOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['oneOf']> :
- any;
+ p['anyOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['anyOf']> & PartialIntersection<UnionSchemaType<p['anyOf']>> :
+ p['oneOf'] extends ReadonlyArray<Schema> ? UnionSchemaType<p['oneOf']> :
+ any;
export type SchemaType<p extends Schema> = NullOrUndefined<p, SchemaTypeDef<p>>;