Merge remote-tracking branch 'misskey-dev/develop' into merge-upstream
This commit is contained in:
		| @@ -20,9 +20,11 @@ | ||||
|  | ||||
| ### Client | ||||
| - fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 | ||||
| - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 | ||||
|  | ||||
| ### Server | ||||
| - | ||||
| - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 | ||||
| - Fix: ロールタイムラインが保存されない問題を修正 | ||||
|  | ||||
| ## 2023.11.1 | ||||
|  | ||||
| @@ -30,6 +32,7 @@ | ||||
| - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました | ||||
| - Enhance: ローカリゼーションの更新 | ||||
| - Enhance: 依存関係の更新 | ||||
| - Enhance: json-schema(OpenAPIの戻り値として使用されるスキーマ定義)を出来る限り最新化 #12311 | ||||
|  | ||||
| ### Client | ||||
| - Enhance: MFMでルビを振れるように | ||||
|   | ||||
| @@ -51,7 +51,7 @@ | ||||
| 		"js-yaml": "4.1.0", | ||||
| 		"postcss": "8.4.31", | ||||
| 		"terser": "5.24.0", | ||||
| 		"typescript": "5.2.2" | ||||
| 		"typescript": "5.3.2" | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"@typescript-eslint/eslint-plugin": "6.11.0", | ||||
|   | ||||
| @@ -165,7 +165,7 @@ | ||||
| 		"tsconfig-paths": "4.2.0", | ||||
| 		"twemoji-parser": "14.0.0", | ||||
| 		"typeorm": "0.3.17", | ||||
| 		"typescript": "5.2.2", | ||||
| 		"typescript": "5.3.2", | ||||
| 		"ulid": "2.3.0", | ||||
| 		"vary": "1.1.2", | ||||
| 		"web-push": "3.6.6", | ||||
|   | ||||
| @@ -61,12 +61,23 @@ export class AntennaService implements OnApplicationShutdown { | ||||
| 						lastUsedAt: new Date(body.lastUsedAt), | ||||
| 					}); | ||||
| 					break; | ||||
| 				case 'antennaUpdated': | ||||
| 					this.antennas[this.antennas.findIndex(a => a.id === body.id)] = { | ||||
| 						...body, | ||||
| 						createdAt: new Date(body.createdAt), | ||||
| 						lastUsedAt: new Date(body.lastUsedAt), | ||||
| 					}; | ||||
| 				case 'antennaUpdated': { | ||||
| 					const idx = this.antennas.findIndex(a => a.id === body.id); | ||||
| 					if (idx >= 0) { | ||||
| 						this.antennas[idx] = { | ||||
| 							...body, | ||||
| 							createdAt: new Date(body.createdAt), | ||||
| 							lastUsedAt: new Date(body.lastUsedAt), | ||||
| 						}; | ||||
| 					} else { | ||||
| 						// サーバ起動時にactiveじゃなかった場合、リストに持っていないので追加する必要あり | ||||
| 						this.antennas.push({ | ||||
| 							...body, | ||||
| 							createdAt: new Date(body.createdAt), | ||||
| 							lastUsedAt: new Date(body.lastUsedAt), | ||||
| 						}); | ||||
| 					} | ||||
| 				} | ||||
| 					break; | ||||
| 				case 'antennaDeleted': | ||||
| 					this.antennas = this.antennas.filter(a => a.id !== body.id); | ||||
|   | ||||
| @@ -197,12 +197,14 @@ export class NotificationEntityService implements OnModuleInit { | ||||
| 			}); | ||||
| 		} else if (notification.type === 'renote:grouped') { | ||||
| 			const users = await Promise.all(notification.userIds.map(userId => { | ||||
| 				const user = hint?.packedUsers != null | ||||
| 					? hint.packedUsers.get(userId) | ||||
| 					: this.userEntityService.pack(userId!, { id: meId }, { | ||||
| 						detail: false, | ||||
| 					}); | ||||
| 				return user; | ||||
| 				const packedUser = hint?.packedUsers != null ? hint.packedUsers.get(userId) : null; | ||||
| 				if (packedUser) { | ||||
| 					return packedUser; | ||||
| 				} | ||||
|  | ||||
| 				return this.userEntityService.pack(userId, { id: meId }, { | ||||
| 					detail: false, | ||||
| 				}); | ||||
| 			})); | ||||
| 			return await awaitAll({ | ||||
| 				id: notification.id, | ||||
|   | ||||
| @@ -42,11 +42,11 @@ export const packedAnnouncementSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		forYou: { | ||||
| 		needConfirmationToRead: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		needConfirmationToRead: { | ||||
| 		forYou: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
|   | ||||
| @@ -19,7 +19,7 @@ export const packedChannelSchema = { | ||||
| 		}, | ||||
| 		lastNotedAt: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 			nullable: true, optional: false, | ||||
| 			format: 'date-time', | ||||
| 		}, | ||||
| 		name: { | ||||
| @@ -28,38 +28,18 @@ export const packedChannelSchema = { | ||||
| 		}, | ||||
| 		description: { | ||||
| 			type: 'string', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		bannerUrl: { | ||||
| 			type: 'string', | ||||
| 			format: 'url', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		isArchived: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		notesCount: { | ||||
| 			type: 'number', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		usersCount: { | ||||
| 			type: 'number', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		isFollowing: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		isFavorited: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		userId: { | ||||
| 			type: 'string', | ||||
| 			nullable: true, optional: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		bannerUrl: { | ||||
| 			type: 'string', | ||||
| 			format: 'url', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		pinnedNoteIds: { | ||||
| 			type: 'array', | ||||
| 			nullable: false, optional: false, | ||||
| @@ -72,6 +52,18 @@ export const packedChannelSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isArchived: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		usersCount: { | ||||
| 			type: 'number', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		notesCount: { | ||||
| 			type: 'number', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		isSensitive: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| @@ -80,5 +72,22 @@ export const packedChannelSchema = { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isFollowing: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		isFavorited: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		pinnedNotes: { | ||||
| 			type: 'array', | ||||
| 			optional: true, nullable: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				optional: false, nullable: false, | ||||
| 				ref: 'Note', | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|   | ||||
| @@ -44,13 +44,13 @@ export const packedClipSchema = { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isFavorited: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		favoritedCount: { | ||||
| 			type: 'number', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isFavorited: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|   | ||||
| @@ -74,7 +74,7 @@ export const packedDriveFileSchema = { | ||||
| 		}, | ||||
| 		url: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'url', | ||||
| 		}, | ||||
| 		thumbnailUrl: { | ||||
|   | ||||
| @@ -21,6 +21,12 @@ export const packedDriveFolderSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		parentId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 			format: 'id', | ||||
| 			example: 'xxxxxxxxxx', | ||||
| 		}, | ||||
| 		foldersCount: { | ||||
| 			type: 'number', | ||||
| 			optional: true, nullable: false, | ||||
| @@ -29,12 +35,6 @@ export const packedDriveFolderSchema = { | ||||
| 			type: 'number', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		parentId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 			format: 'id', | ||||
| 			example: 'xxxxxxxxxx', | ||||
| 		}, | ||||
| 		parent: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: true, | ||||
|   | ||||
| @@ -79,6 +79,10 @@ export const packedFederationInstanceSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		isSilenced: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		iconUrl: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| @@ -93,11 +97,6 @@ export const packedFederationInstanceSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		isSilenced: { | ||||
| 			type: "boolean", | ||||
| 			optional: false, | ||||
| 			nullable: false, | ||||
| 		}, | ||||
| 		infoUpdatedAt: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
|   | ||||
| @@ -22,6 +22,16 @@ export const packedFlashSchema = { | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'date-time', | ||||
| 		}, | ||||
| 		userId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		user: { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserLite', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		title: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| @@ -34,16 +44,6 @@ export const packedFlashSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		userId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		user: { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserLite', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		likedCount: { | ||||
| 			type: 'number', | ||||
| 			optional: false, nullable: true, | ||||
|   | ||||
| @@ -22,16 +22,16 @@ export const packedFollowingSchema = { | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		followee: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: false, | ||||
| 			ref: 'UserDetailed', | ||||
| 		}, | ||||
| 		followerId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		followee: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: false, | ||||
| 			ref: 'UserDetailed', | ||||
| 		}, | ||||
| 		follower: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: false, | ||||
|   | ||||
| @@ -22,14 +22,6 @@ export const packedGalleryPostSchema = { | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'date-time', | ||||
| 		}, | ||||
| 		title: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		description: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		userId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| @@ -40,6 +32,14 @@ export const packedGalleryPostSchema = { | ||||
| 			ref: 'UserLite', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		title: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		description: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		fileIds: { | ||||
| 			type: 'array', | ||||
| 			optional: true, nullable: false, | ||||
| @@ -70,6 +70,14 @@ export const packedGalleryPostSchema = { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		likedCount: { | ||||
| 			type: 'number', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isLiked: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|  | ||||
|   | ||||
| @@ -127,22 +127,26 @@ export const packedNoteSchema = { | ||||
| 		channel: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: true, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				optional: false, nullable: false, | ||||
| 				properties: { | ||||
| 					id: { | ||||
| 						type: 'string', | ||||
| 						optional: false, nullable: false, | ||||
| 					}, | ||||
| 					name: { | ||||
| 						type: 'string', | ||||
| 						optional: false, nullable: true, | ||||
| 					}, | ||||
| 					isSensitive: { | ||||
| 						type: 'boolean', | ||||
| 						optional: true, nullable: false, | ||||
| 					}, | ||||
| 			properties: { | ||||
| 				id: { | ||||
| 					type: 'string', | ||||
| 					optional: false, nullable: false, | ||||
| 				}, | ||||
| 				name: { | ||||
| 					type: 'string', | ||||
| 					optional: false, nullable: false, | ||||
| 				}, | ||||
| 				color: { | ||||
| 					type: 'string', | ||||
| 					optional: false, nullable: false, | ||||
| 				}, | ||||
| 				isSensitive: { | ||||
| 					type: 'boolean', | ||||
| 					optional: false, nullable: false, | ||||
| 				}, | ||||
| 				allowRenoteToExternal: { | ||||
| 					type: 'boolean', | ||||
| 					optional: false, nullable: false, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
|   | ||||
| @@ -42,13 +42,9 @@ export const packedNotificationSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: true, nullable: true, | ||||
| 		}, | ||||
| 		choice: { | ||||
| 			type: 'number', | ||||
| 			optional: true, nullable: true, | ||||
| 		}, | ||||
| 		invitation: { | ||||
| 			type: 'object', | ||||
| 			optional: true, nullable: true, | ||||
| 		achievement: { | ||||
| 			type: 'string', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 		body: { | ||||
| 			type: 'string', | ||||
| @@ -81,14 +77,14 @@ export const packedNotificationSchema = { | ||||
| 				required: ['user', 'reaction'], | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| 	users: { | ||||
| 		type: 'array', | ||||
| 		optional: true, nullable: true, | ||||
| 		items: { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserLite', | ||||
| 			optional: false, nullable: false, | ||||
| 		users: { | ||||
| 			type: 'array', | ||||
| 			optional: true, nullable: true, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				ref: 'UserLite', | ||||
| 				optional: false, nullable: false, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|   | ||||
| @@ -22,6 +22,32 @@ export const packedPageSchema = { | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'date-time', | ||||
| 		}, | ||||
| 		userId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		user: { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserLite', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		content: { | ||||
| 			type: 'array', | ||||
| 			optional: false, nullable: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				optional: false, nullable: false, | ||||
| 			}, | ||||
| 		}, | ||||
| 		variables: { | ||||
| 			type: 'array', | ||||
| 			optional: false, nullable: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				optional: false, nullable: false, | ||||
| 			}, | ||||
| 		}, | ||||
| 		title: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| @@ -34,24 +60,48 @@ export const packedPageSchema = { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		content: { | ||||
| 			type: 'array', | ||||
| 		hideTitleWhenPinned: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		variables: { | ||||
| 			type: 'array', | ||||
| 		alignCenter: { | ||||
| 			type: 'boolean', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		userId: { | ||||
| 		font: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		user: { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserLite', | ||||
| 		script: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		eyeCatchingImageId: { | ||||
| 			type: 'string', | ||||
| 			optional: false, nullable: true, | ||||
| 		}, | ||||
| 		eyeCatchingImage: { | ||||
| 			type: 'object', | ||||
| 			optional: false, nullable: true, | ||||
| 			ref: 'DriveFile', | ||||
| 		}, | ||||
| 		attachedFiles: { | ||||
| 			type: 'array', | ||||
| 			optional: false, nullable: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				optional: false, nullable: false, | ||||
| 				ref: 'DriveFile', | ||||
| 			}, | ||||
| 		}, | ||||
| 		likedCount: { | ||||
| 			type: 'number', | ||||
| 			optional: false, nullable: false, | ||||
| 		}, | ||||
| 		isLiked: { | ||||
| 			type: 'boolean', | ||||
| 			optional: true, nullable: false, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|  | ||||
|   | ||||
| @@ -49,11 +49,6 @@ export const packedUserLiteSchema = { | ||||
| 						nullable: false, optional: false, | ||||
| 						format: 'id', | ||||
| 					}, | ||||
| 					url: { | ||||
| 						type: 'string', | ||||
| 						format: 'url', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					angle: { | ||||
| 						type: 'number', | ||||
| 						nullable: false, optional: true, | ||||
| @@ -62,19 +57,14 @@ export const packedUserLiteSchema = { | ||||
| 						type: 'boolean', | ||||
| 						nullable: false, optional: true, | ||||
| 					}, | ||||
| 					url: { | ||||
| 						type: 'string', | ||||
| 						format: 'url', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		isAdmin: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: true, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		isModerator: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: true, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		isBot: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: true, | ||||
| @@ -83,12 +73,67 @@ export const packedUserLiteSchema = { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: true, | ||||
| 		}, | ||||
| 		instance: { | ||||
| 			type: 'object', | ||||
| 			nullable: false, optional: true, | ||||
| 			properties: { | ||||
| 				name: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 				softwareName: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 				softwareVersion: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 				iconUrl: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 				faviconUrl: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 				themeColor: { | ||||
| 					type: 'string', | ||||
| 					nullable: true, optional: false, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		emojis: { | ||||
| 			type: 'object', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		onlineStatus: { | ||||
| 			type: 'string', | ||||
| 			format: 'url', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 			enum: ['unknown', 'online', 'active', 'offline'], | ||||
| 		}, | ||||
| 		badgeRoles: { | ||||
| 			type: 'array', | ||||
| 			nullable: false, optional: true, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				nullable: false, optional: false, | ||||
| 				properties: { | ||||
| 					name: { | ||||
| 						type: 'string', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					iconUrl: { | ||||
| 						type: 'string', | ||||
| 						nullable: true, optional: false, | ||||
| 					}, | ||||
| 					displayOrder: { | ||||
| 						type: 'number', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| } as const; | ||||
|  | ||||
| @@ -105,21 +150,18 @@ export const packedUserDetailedNotMeOnlySchema = { | ||||
| 			format: 'uri', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		movedToUri: { | ||||
| 		movedTo: { | ||||
| 			type: 'string', | ||||
| 			format: 'uri', | ||||
| 			nullable: true, | ||||
| 			optional: false, | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		alsoKnownAs: { | ||||
| 			type: 'array', | ||||
| 			nullable: true, | ||||
| 			optional: false, | ||||
| 			nullable: true, optional: false, | ||||
| 			items: { | ||||
| 				type: 'string', | ||||
| 				format: 'id', | ||||
| 				nullable: false, | ||||
| 				optional: false, | ||||
| 				nullable: false, optional: false, | ||||
| 			}, | ||||
| 		}, | ||||
| 		createdAt: { | ||||
| @@ -253,6 +295,11 @@ export const packedUserDetailedNotMeOnlySchema = { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		ffVisibility: { | ||||
| 			type: 'string', | ||||
| 			nullable: false, optional: false, | ||||
| 			enum: ['public', 'followers', 'private'], | ||||
| 		}, | ||||
| 		twoFactorEnabled: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| @@ -268,6 +315,57 @@ export const packedUserDetailedNotMeOnlySchema = { | ||||
| 			nullable: false, optional: false, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		roles: { | ||||
| 			type: 'array', | ||||
| 			nullable: false, optional: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				nullable: false, optional: false, | ||||
| 				properties: { | ||||
| 					id: { | ||||
| 						type: 'string', | ||||
| 						nullable: false, optional: false, | ||||
| 						format: 'id', | ||||
| 					}, | ||||
| 					name: { | ||||
| 						type: 'string', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					color: { | ||||
| 						type: 'string', | ||||
| 						nullable: true, optional: false, | ||||
| 					}, | ||||
| 					iconUrl: { | ||||
| 						type: 'string', | ||||
| 						nullable: true, optional: false, | ||||
| 					}, | ||||
| 					description: { | ||||
| 						type: 'string', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					isModerator: { | ||||
| 						type: 'boolean', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					isAdministrator: { | ||||
| 						type: 'boolean', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					displayOrder: { | ||||
| 						type: 'number', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		memo: { | ||||
| 			type: 'string', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		moderationNote: { | ||||
| 			type: 'string', | ||||
| 			nullable: false, optional: true, | ||||
| 		}, | ||||
| 		//#region relations | ||||
| 		isFollowing: { | ||||
| 			type: 'boolean', | ||||
| @@ -301,10 +399,6 @@ export const packedUserDetailedNotMeOnlySchema = { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: true, | ||||
| 		}, | ||||
| 		memo: { | ||||
| 			type: 'string', | ||||
| 			nullable: false, optional: true, | ||||
| 		}, | ||||
| 		notify: { | ||||
| 			type: 'string', | ||||
| 			nullable: false, optional: true, | ||||
| @@ -330,29 +424,37 @@ export const packedMeDetailedOnlySchema = { | ||||
| 			nullable: true, optional: false, | ||||
| 			format: 'id', | ||||
| 		}, | ||||
| 		injectFeaturedNote: { | ||||
| 		isModerator: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		isAdmin: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 		}, | ||||
| 		injectFeaturedNote: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		receiveAnnouncementEmail: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		alwaysMarkNsfw: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		autoSensitive: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		carefulBot: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		autoAcceptFollowed: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		noCrawle: { | ||||
| 			type: 'boolean', | ||||
| @@ -391,10 +493,23 @@ export const packedMeDetailedOnlySchema = { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		unreadAnnouncements: { | ||||
| 			type: 'array', | ||||
| 			nullable: false, optional: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				nullable: false, optional: false, | ||||
| 				ref: 'Announcement', | ||||
| 			}, | ||||
| 		}, | ||||
| 		hasUnreadAntenna: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		hasUnreadChannel: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		hasUnreadNotification: { | ||||
| 			type: 'boolean', | ||||
| 			nullable: false, optional: false, | ||||
| @@ -433,12 +548,132 @@ export const packedMeDetailedOnlySchema = { | ||||
| 		}, | ||||
| 		emailNotificationTypes: { | ||||
| 			type: 'array', | ||||
| 			nullable: true, optional: false, | ||||
| 			nullable: false, optional: false, | ||||
| 			items: { | ||||
| 				type: 'string', | ||||
| 				nullable: false, optional: false, | ||||
| 			}, | ||||
| 		}, | ||||
| 		achievements: { | ||||
| 			type: 'array', | ||||
| 			nullable: false, optional: false, | ||||
| 			items: { | ||||
| 				type: 'object', | ||||
| 				nullable: false, optional: false, | ||||
| 				properties: { | ||||
| 					name: { | ||||
| 						type: 'string', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 					unlockedAt: { | ||||
| 						type: 'number', | ||||
| 						nullable: false, optional: false, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		loggedInDays: { | ||||
| 			type: 'number', | ||||
| 			nullable: false, optional: false, | ||||
| 		}, | ||||
| 		policies: { | ||||
| 			type: 'object', | ||||
| 			nullable: false, optional: false, | ||||
| 			properties: { | ||||
| 				gtlAvailable: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				ltlAvailable: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canPublicNote: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canInvite: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				inviteLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				inviteLimitCycle: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				inviteExpirationTime: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canManageCustomEmojis: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canManageAvatarDecorations: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canSearchNotes: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canUseTranslator: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				canHideAds: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				driveCapacityMb: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				alwaysMarkNsfw: { | ||||
| 					type: 'boolean', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				pinLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				antennaLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				wordMuteLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				webhookLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				clipLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				noteEachClipsLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				userListLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				userEachUserListsLimit: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 				rateLimitFactor: { | ||||
| 					type: 'number', | ||||
| 					nullable: false, optional: false, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		//#region secrets | ||||
| 		email: { | ||||
| 			type: 'string', | ||||
| @@ -515,5 +750,13 @@ export const packedUserSchema = { | ||||
| 			type: 'object', | ||||
| 			ref: 'UserDetailed', | ||||
| 		}, | ||||
| 		{ | ||||
| 			type: 'object', | ||||
| 			ref: 'UserDetailedNotMe', | ||||
| 		}, | ||||
| 		{ | ||||
| 			type: 'object', | ||||
| 			ref: 'MeDetailed', | ||||
| 		}, | ||||
| 	], | ||||
| } as const; | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import { DI } from '@/di-symbols.js'; | ||||
| import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; | ||||
| import { IdService } from '@/core/IdService.js'; | ||||
| import { FunoutTimelineService } from '@/core/FunoutTimelineService.js'; | ||||
| import { GlobalEventService } from '@/core/GlobalEventService.js'; | ||||
| import { ApiError } from '../../error.js'; | ||||
|  | ||||
| export const meta = { | ||||
| @@ -71,6 +72,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- | ||||
| 		private queryService: QueryService, | ||||
| 		private noteReadService: NoteReadService, | ||||
| 		private funoutTimelineService: FunoutTimelineService, | ||||
| 		private globalEventService: GlobalEventService, | ||||
| 	) { | ||||
| 		super(meta, paramDef, async (ps, me) => { | ||||
| 			const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); | ||||
| @@ -85,10 +87,16 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- | ||||
| 				throw new ApiError(meta.errors.noSuchAntenna); | ||||
| 			} | ||||
|  | ||||
| 			this.antennasRepository.update(antenna.id, { | ||||
| 				isActive: true, | ||||
| 				lastUsedAt: new Date(), | ||||
| 			}); | ||||
| 			// falseだった場合はアンテナの配信先が増えたことを通知したい | ||||
| 			const needPublishEvent = !antenna.isActive; | ||||
|  | ||||
| 			antenna.isActive = true; | ||||
| 			antenna.lastUsedAt = new Date(); | ||||
| 			this.antennasRepository.update(antenna.id, antenna); | ||||
|  | ||||
| 			if (needPublishEvent) { | ||||
| 				this.globalEventService.publishInternalEvent('antennaUpdated', antenna); | ||||
| 			} | ||||
|  | ||||
| 			let noteIds = await this.funoutTimelineService.get(`antennaTimeline:${antenna.id}`, untilId, sinceId); | ||||
| 			noteIds = noteIds.slice(0, ps.limit); | ||||
|   | ||||
| @@ -70,7 +70,7 @@ | ||||
| 		"tsc-alias": "1.8.8", | ||||
| 		"tsconfig-paths": "4.2.0", | ||||
| 		"twemoji-parser": "14.0.0", | ||||
| 		"typescript": "5.2.2", | ||||
| 		"typescript": "5.3.2", | ||||
| 		"uuid": "9.0.1", | ||||
| 		"v-code-diff": "1.7.2", | ||||
| 		"vanilla-tilt": "1.8.1", | ||||
|   | ||||
| @@ -122,7 +122,7 @@ export const soundsTypes = [ | ||||
| 	'Copyright_Misskey.io/ThinaticSystem/yonderuzo3', | ||||
| ] as const; | ||||
|  | ||||
| export async function getAudio(file: string, useCache = true) { | ||||
| export async function loadAudio(file: string, useCache = true) { | ||||
| 	if (useCache && cache.has(file)) { | ||||
| 		return cache.get(file)!; | ||||
| 	} | ||||
| @@ -138,12 +138,6 @@ export async function getAudio(file: string, useCache = true) { | ||||
| 	return audioBuffer; | ||||
| } | ||||
|  | ||||
| export function setVolume(audio: HTMLAudioElement, volume: number): HTMLAudioElement { | ||||
| 	const masterVolume = defaultStore.state.sound_masterVolume; | ||||
| 	audio.volume = masterVolume - ((1 - volume) * masterVolume); | ||||
| 	return audio; | ||||
| } | ||||
|  | ||||
| export function play(type: 'noteMy' | 'note' | 'antenna' | 'channel' | 'notification') { | ||||
| 	const sound = defaultStore.state[`sound_${type}`]; | ||||
| 	if (_DEV_) console.log('play', type, sound); | ||||
| @@ -152,16 +146,22 @@ export function play(type: 'noteMy' | 'note' | 'antenna' | 'channel' | 'notifica | ||||
| } | ||||
|  | ||||
| export async function playFile(file: string, volume: number) { | ||||
| 	const buffer = await loadAudio(file); | ||||
| 	createSourceNode(buffer, volume)?.start(); | ||||
| } | ||||
|  | ||||
| export function createSourceNode(buffer: AudioBuffer, volume: number) : AudioBufferSourceNode | null { | ||||
| 	const masterVolume = defaultStore.state.sound_masterVolume; | ||||
| 	if (masterVolume === 0 || volume === 0) { | ||||
| 		return; | ||||
| 		return null; | ||||
| 	} | ||||
|  | ||||
| 	const gainNode = ctx.createGain(); | ||||
| 	gainNode.gain.value = masterVolume * volume; | ||||
|  | ||||
| 	const soundSource = ctx.createBufferSource(); | ||||
| 	soundSource.buffer = await getAudio(file); | ||||
| 	soundSource.buffer = buffer; | ||||
| 	soundSource.connect(gainNode).connect(ctx.destination); | ||||
| 	soundSource.start(); | ||||
|  | ||||
| 	return soundSource; | ||||
| } | ||||
|   | ||||
| @@ -99,7 +99,10 @@ const current = reactive({ | ||||
| 	}, | ||||
| }); | ||||
| const prev = reactive({} as typeof current); | ||||
| const jammedSound = sound.setVolume(sound.getAudio('syuilo/queue-jammed'), 1); | ||||
| let jammedAudioBuffer: AudioBuffer | null = $ref(null); | ||||
| let jammedSoundNodePlaying: boolean = $ref(false); | ||||
|  | ||||
| sound.loadAudio('syuilo/queue-jammed').then(buf => jammedAudioBuffer = buf); | ||||
|  | ||||
| for (const domain of ['inbox', 'deliver']) { | ||||
| 	prev[domain] = deepClone(current[domain]); | ||||
| @@ -113,8 +116,13 @@ const onStats = (stats) => { | ||||
| 		current[domain].waiting = stats[domain].waiting; | ||||
| 		current[domain].delayed = stats[domain].delayed; | ||||
|  | ||||
| 		if (current[domain].waiting > 0 && widgetProps.sound && jammedSound.paused) { | ||||
| 			jammedSound.play(); | ||||
| 		if (current[domain].waiting > 0 && widgetProps.sound && jammedAudioBuffer && !jammedSoundNodePlaying) { | ||||
| 			const soundNode = sound.createSourceNode(jammedAudioBuffer, 1); | ||||
| 			if (soundNode) { | ||||
| 				jammedSoundNodePlaying = true; | ||||
| 				soundNode.onended = () => jammedSoundNodePlaying = false; | ||||
| 				soundNode.start(); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -32,7 +32,7 @@ | ||||
| 		"jest-websocket-mock": "2.5.0", | ||||
| 		"mock-socket": "9.3.1", | ||||
| 		"tsd": "0.29.0", | ||||
| 		"typescript": "5.2.2" | ||||
| 		"typescript": "5.3.2" | ||||
| 	}, | ||||
| 	"files": [ | ||||
| 		"built" | ||||
|   | ||||
| @@ -18,7 +18,7 @@ | ||||
| 		"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67", | ||||
| 		"eslint": "8.53.0", | ||||
| 		"eslint-plugin-import": "2.29.0", | ||||
| 		"typescript": "5.2.2" | ||||
| 		"typescript": "5.3.2" | ||||
| 	}, | ||||
| 	"type": "module" | ||||
| } | ||||
|   | ||||
							
								
								
									
										172
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										172
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @@ -28,8 +28,8 @@ importers: | ||||
|         specifier: 5.24.0 | ||||
|         version: 5.24.0 | ||||
|       typescript: | ||||
|         specifier: 5.2.2 | ||||
|         version: 5.2.2 | ||||
|         specifier: 5.3.2 | ||||
|         version: 5.3.2 | ||||
|     optionalDependencies: | ||||
|       '@tensorflow/tfjs-core': | ||||
|         specifier: 4.4.0 | ||||
| @@ -37,10 +37,10 @@ importers: | ||||
|     devDependencies: | ||||
|       '@typescript-eslint/eslint-plugin': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/parser': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       cross-env: | ||||
|         specifier: 7.0.3 | ||||
|         version: 7.0.3 | ||||
| @@ -381,8 +381,8 @@ importers: | ||||
|         specifier: 0.3.17 | ||||
|         version: 0.3.17(ioredis@5.3.2)(pg@8.11.3) | ||||
|       typescript: | ||||
|         specifier: 5.2.2 | ||||
|         version: 5.2.2 | ||||
|         specifier: 5.3.2 | ||||
|         version: 5.3.2 | ||||
|       ulid: | ||||
|         specifier: 2.3.0 | ||||
|         version: 2.3.0 | ||||
| @@ -615,10 +615,10 @@ importers: | ||||
|         version: 8.5.9 | ||||
|       '@typescript-eslint/eslint-plugin': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/parser': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       aws-sdk-client-mock: | ||||
|         specifier: 3.0.0 | ||||
|         version: 3.0.0 | ||||
| @@ -809,8 +809,8 @@ importers: | ||||
|         specifier: 14.0.0 | ||||
|         version: 14.0.0 | ||||
|       typescript: | ||||
|         specifier: 5.2.2 | ||||
|         version: 5.2.2 | ||||
|         specifier: 5.3.2 | ||||
|         version: 5.3.2 | ||||
|       uuid: | ||||
|         specifier: 9.0.1 | ||||
|         version: 9.0.1 | ||||
| @@ -825,7 +825,7 @@ importers: | ||||
|         version: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0) | ||||
|       vue: | ||||
|         specifier: 3.3.8 | ||||
|         version: 3.3.8(typescript@5.2.2) | ||||
|         version: 3.3.8(typescript@5.3.2) | ||||
|       vuedraggable: | ||||
|         specifier: next | ||||
|         version: 4.1.0(vue@3.3.8) | ||||
| @@ -865,10 +865,10 @@ importers: | ||||
|         version: 7.5.3 | ||||
|       '@storybook/react': | ||||
|         specifier: 7.5.3 | ||||
|         version: 7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) | ||||
|         version: 7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2) | ||||
|       '@storybook/react-vite': | ||||
|         specifier: 7.5.3 | ||||
|         version: 7.5.3(react-dom@18.2.0)(react@18.2.0)(rollup@4.4.1)(typescript@5.2.2)(vite@4.5.0) | ||||
|         version: 7.5.3(react-dom@18.2.0)(react@18.2.0)(rollup@4.4.1)(typescript@5.3.2)(vite@4.5.0) | ||||
|       '@storybook/testing-library': | ||||
|         specifier: 0.2.2 | ||||
|         version: 0.2.2 | ||||
| @@ -883,7 +883,7 @@ importers: | ||||
|         version: 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.8) | ||||
|       '@storybook/vue3-vite': | ||||
|         specifier: 7.5.3 | ||||
|         version: 7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.8) | ||||
|         version: 7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@4.5.0)(vue@3.3.8) | ||||
|       '@testing-library/vue': | ||||
|         specifier: 8.0.0 | ||||
|         version: 8.0.0(@vue/compiler-sfc@3.3.8)(vue@3.3.8) | ||||
| @@ -925,10 +925,10 @@ importers: | ||||
|         version: 8.5.9 | ||||
|       '@typescript-eslint/eslint-plugin': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/parser': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@vitest/coverage-v8': | ||||
|         specifier: 0.34.6 | ||||
|         version: 0.34.6(vitest@0.34.6) | ||||
| @@ -964,7 +964,7 @@ importers: | ||||
|         version: 4.0.5 | ||||
|       msw: | ||||
|         specifier: 1.3.2 | ||||
|         version: 1.3.2(typescript@5.2.2) | ||||
|         version: 1.3.2(typescript@5.3.2) | ||||
|       msw-storybook-addon: | ||||
|         specifier: 1.10.0 | ||||
|         version: 1.10.0(msw@1.3.2) | ||||
| @@ -1006,7 +1006,7 @@ importers: | ||||
|         version: 9.3.2(eslint@8.53.0) | ||||
|       vue-tsc: | ||||
|         specifier: 1.8.22 | ||||
|         version: 1.8.22(typescript@5.2.2) | ||||
|         version: 1.8.22(typescript@5.3.2) | ||||
|  | ||||
|   packages/misskey-js: | ||||
|     dependencies: | ||||
| @@ -1037,10 +1037,10 @@ importers: | ||||
|         version: 20.9.1 | ||||
|       '@typescript-eslint/eslint-plugin': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/parser': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       eslint: | ||||
|         specifier: 8.53.0 | ||||
|         version: 8.53.0 | ||||
| @@ -1060,8 +1060,8 @@ importers: | ||||
|         specifier: 0.29.0 | ||||
|         version: 0.29.0 | ||||
|       typescript: | ||||
|         specifier: 5.2.2 | ||||
|         version: 5.2.2 | ||||
|         specifier: 5.3.2 | ||||
|         version: 5.3.2 | ||||
|  | ||||
|   packages/sw: | ||||
|     dependencies: | ||||
| @@ -1077,7 +1077,7 @@ importers: | ||||
|     devDependencies: | ||||
|       '@typescript-eslint/parser': | ||||
|         specifier: 6.11.0 | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|         version: 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript/lib-webworker': | ||||
|         specifier: npm:@types/serviceworker@0.0.67 | ||||
|         version: /@types/serviceworker@0.0.67 | ||||
| @@ -1088,8 +1088,8 @@ importers: | ||||
|         specifier: 2.29.0 | ||||
|         version: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0) | ||||
|       typescript: | ||||
|         specifier: 5.2.2 | ||||
|         version: 5.2.2 | ||||
|         specifier: 5.3.2 | ||||
|         version: 5.3.2 | ||||
|  | ||||
| packages: | ||||
|  | ||||
| @@ -4257,7 +4257,7 @@ packages: | ||||
|       chalk: 4.1.2 | ||||
|     dev: true | ||||
|  | ||||
|   /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.2.2)(vite@4.5.0): | ||||
|   /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.2)(vite@4.5.0): | ||||
|     resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} | ||||
|     peerDependencies: | ||||
|       typescript: '>= 4.3.x' | ||||
| @@ -4269,8 +4269,8 @@ packages: | ||||
|       glob: 7.2.3 | ||||
|       glob-promise: 4.2.2(glob@7.2.3) | ||||
|       magic-string: 0.27.0 | ||||
|       react-docgen-typescript: 2.2.2(typescript@5.2.2) | ||||
|       typescript: 5.2.2 | ||||
|       react-docgen-typescript: 2.2.2(typescript@5.3.2) | ||||
|       typescript: 5.3.2 | ||||
|       vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0) | ||||
|     dev: true | ||||
|  | ||||
| @@ -6370,7 +6370,7 @@ packages: | ||||
|       - supports-color | ||||
|     dev: true | ||||
|  | ||||
|   /@storybook/builder-vite@7.5.3(typescript@5.2.2)(vite@4.5.0): | ||||
|   /@storybook/builder-vite@7.5.3(typescript@5.3.2)(vite@4.5.0): | ||||
|     resolution: {integrity: sha512-c104V3O75OCVnfZj0Jr70V09g0KSbPGvQK2Zh31omXGvakG8XrhWolYxkmjOcForJmAqsXnKs/nw3F75Gp853g==} | ||||
|     peerDependencies: | ||||
|       '@preact/preset-vite': '*' | ||||
| @@ -6401,7 +6401,7 @@ packages: | ||||
|       fs-extra: 11.1.1 | ||||
|       magic-string: 0.30.5 | ||||
|       rollup: 3.29.4 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|       vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0) | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
| @@ -6772,7 +6772,7 @@ packages: | ||||
|       react-dom: 18.2.0(react@18.2.0) | ||||
|     dev: true | ||||
|  | ||||
|   /@storybook/react-vite@7.5.3(react-dom@18.2.0)(react@18.2.0)(rollup@4.4.1)(typescript@5.2.2)(vite@4.5.0): | ||||
|   /@storybook/react-vite@7.5.3(react-dom@18.2.0)(react@18.2.0)(rollup@4.4.1)(typescript@5.3.2)(vite@4.5.0): | ||||
|     resolution: {integrity: sha512-ArPyHgiPbT5YvcyK4xK/DfqBOpn4R4/EP3kfIGhx8QKJyOtxPEYFdkLIZ5xu3KnPX7/z7GT+4a6Rb+8sk9gliA==} | ||||
|     engines: {node: '>=16'} | ||||
|     peerDependencies: | ||||
| @@ -6780,10 +6780,10 @@ packages: | ||||
|       react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 | ||||
|       vite: ^3.0.0 || ^4.0.0 || ^5.0.0 | ||||
|     dependencies: | ||||
|       '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.2.2)(vite@4.5.0) | ||||
|       '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.2)(vite@4.5.0) | ||||
|       '@rollup/pluginutils': 5.0.5(rollup@4.4.1) | ||||
|       '@storybook/builder-vite': 7.5.3(typescript@5.2.2)(vite@4.5.0) | ||||
|       '@storybook/react': 7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) | ||||
|       '@storybook/builder-vite': 7.5.3(typescript@5.3.2)(vite@4.5.0) | ||||
|       '@storybook/react': 7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2) | ||||
|       '@vitejs/plugin-react': 3.1.0(vite@4.5.0) | ||||
|       magic-string: 0.30.5 | ||||
|       react: 18.2.0 | ||||
| @@ -6799,7 +6799,7 @@ packages: | ||||
|       - vite-plugin-glimmerx | ||||
|     dev: true | ||||
|  | ||||
|   /@storybook/react@7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): | ||||
|   /@storybook/react@7.5.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-dZILdM36xMFDjdmmy421G5X+sOIncB2qF3IPTooniG1i1Z6v/dVNo57ovdID9lDTNa+AWr2fLB9hANiISMqmjQ==} | ||||
|     engines: {node: '>=16.0.0'} | ||||
|     peerDependencies: | ||||
| @@ -6832,7 +6832,7 @@ packages: | ||||
|       react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0) | ||||
|       ts-dedent: 2.2.0 | ||||
|       type-fest: 2.19.0 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|       util-deprecate: 1.0.2 | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
| @@ -6914,7 +6914,7 @@ packages: | ||||
|       file-system-cache: 2.3.0 | ||||
|     dev: true | ||||
|  | ||||
|   /@storybook/vue3-vite@7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0)(vue@3.3.8): | ||||
|   /@storybook/vue3-vite@7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@4.5.0)(vue@3.3.8): | ||||
|     resolution: {integrity: sha512-gkNwDDn2AKthAtaoPrHb0+2gi33UluxpfSq/M5COoMEVFphj6y/jyDa+OEYlceXgnD8g2xvX4/yv2TbTNDzmcQ==} | ||||
|     engines: {node: ^14.18 || >=16} | ||||
|     peerDependencies: | ||||
| @@ -6922,7 +6922,7 @@ packages: | ||||
|       react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 | ||||
|       vite: ^3.0.0 || ^4.0.0 || ^5.0.0 | ||||
|     dependencies: | ||||
|       '@storybook/builder-vite': 7.5.3(typescript@5.2.2)(vite@4.5.0) | ||||
|       '@storybook/builder-vite': 7.5.3(typescript@5.3.2)(vite@4.5.0) | ||||
|       '@storybook/core-server': 7.5.3 | ||||
|       '@storybook/vue3': 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.8) | ||||
|       '@vitejs/plugin-vue': 4.5.0(vite@4.5.0)(vue@3.3.8) | ||||
| @@ -6959,7 +6959,7 @@ packages: | ||||
|       lodash: 4.17.21 | ||||
|       ts-dedent: 2.2.0 | ||||
|       type-fest: 2.19.0 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|       vue-component-type-helpers: 1.8.22 | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
| @@ -7454,7 +7454,7 @@ packages: | ||||
|       '@testing-library/dom': 9.3.3 | ||||
|       '@vue/compiler-sfc': 3.3.8 | ||||
|       '@vue/test-utils': 2.4.1(vue@3.3.8) | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     transitivePeerDependencies: | ||||
|       - '@vue/server-renderer' | ||||
|     dev: true | ||||
| @@ -8095,7 +8095,7 @@ packages: | ||||
|     dev: true | ||||
|     optional: true | ||||
|  | ||||
|   /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2): | ||||
|   /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     peerDependencies: | ||||
| @@ -8107,10 +8107,10 @@ packages: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       '@eslint-community/regexpp': 4.6.2 | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/scope-manager': 6.11.0 | ||||
|       '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       '@typescript-eslint/visitor-keys': 6.11.0 | ||||
|       debug: 4.3.4(supports-color@8.1.1) | ||||
|       eslint: 8.53.0 | ||||
| @@ -8118,13 +8118,13 @@ packages: | ||||
|       ignore: 5.2.4 | ||||
|       natural-compare: 1.4.0 | ||||
|       semver: 7.5.4 | ||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||
|       typescript: 5.2.2 | ||||
|       ts-api-utils: 1.0.1(typescript@5.3.2) | ||||
|       typescript: 5.3.2 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
|  | ||||
|   /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): | ||||
|   /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     peerDependencies: | ||||
| @@ -8136,11 +8136,11 @@ packages: | ||||
|     dependencies: | ||||
|       '@typescript-eslint/scope-manager': 6.11.0 | ||||
|       '@typescript-eslint/types': 6.11.0 | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2) | ||||
|       '@typescript-eslint/visitor-keys': 6.11.0 | ||||
|       debug: 4.3.4(supports-color@8.1.1) | ||||
|       eslint: 8.53.0 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
| @@ -8153,7 +8153,7 @@ packages: | ||||
|       '@typescript-eslint/visitor-keys': 6.11.0 | ||||
|     dev: true | ||||
|  | ||||
|   /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): | ||||
|   /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     peerDependencies: | ||||
| @@ -8163,12 +8163,12 @@ packages: | ||||
|       typescript: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) | ||||
|       '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2) | ||||
|       '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       debug: 4.3.4(supports-color@8.1.1) | ||||
|       eslint: 8.53.0 | ||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||
|       typescript: 5.2.2 | ||||
|       ts-api-utils: 1.0.1(typescript@5.3.2) | ||||
|       typescript: 5.3.2 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
| @@ -8178,7 +8178,7 @@ packages: | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     dev: true | ||||
|  | ||||
|   /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): | ||||
|   /@typescript-eslint/typescript-estree@6.11.0(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     peerDependencies: | ||||
| @@ -8193,13 +8193,13 @@ packages: | ||||
|       globby: 11.1.0 | ||||
|       is-glob: 4.0.3 | ||||
|       semver: 7.5.4 | ||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||
|       typescript: 5.2.2 | ||||
|       ts-api-utils: 1.0.1(typescript@5.3.2) | ||||
|       typescript: 5.3.2 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
|  | ||||
|   /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): | ||||
|   /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} | ||||
|     engines: {node: ^16.0.0 || >=18.0.0} | ||||
|     peerDependencies: | ||||
| @@ -8210,7 +8210,7 @@ packages: | ||||
|       '@types/semver': 7.5.5 | ||||
|       '@typescript-eslint/scope-manager': 6.11.0 | ||||
|       '@typescript-eslint/types': 6.11.0 | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) | ||||
|       '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2) | ||||
|       eslint: 8.53.0 | ||||
|       semver: 7.5.4 | ||||
|     transitivePeerDependencies: | ||||
| @@ -8254,7 +8254,7 @@ packages: | ||||
|       vue: ^3.2.25 | ||||
|     dependencies: | ||||
|       vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0) | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|  | ||||
|   /@vitest/coverage-v8@0.34.6(vitest@0.34.6): | ||||
|     resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==} | ||||
| @@ -8349,7 +8349,7 @@ packages: | ||||
|       ast-kit: 0.11.2(rollup@4.4.1) | ||||
|       local-pkg: 0.5.0 | ||||
|       magic-string-ast: 0.3.0 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     transitivePeerDependencies: | ||||
|       - rollup | ||||
|     dev: false | ||||
| @@ -8366,7 +8366,7 @@ packages: | ||||
|       '@vue/shared': 3.3.8 | ||||
|       magic-string: 0.30.5 | ||||
|       unplugin: 1.5.1 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     transitivePeerDependencies: | ||||
|       - rollup | ||||
|     dev: false | ||||
| @@ -8437,7 +8437,7 @@ packages: | ||||
|       '@vue/compiler-dom': 3.3.8 | ||||
|       '@vue/shared': 3.3.8 | ||||
|  | ||||
|   /@vue/language-core@1.8.22(typescript@5.2.2): | ||||
|   /@vue/language-core@1.8.22(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw==} | ||||
|     peerDependencies: | ||||
|       typescript: '*' | ||||
| @@ -8452,7 +8452,7 @@ packages: | ||||
|       computeds: 0.0.1 | ||||
|       minimatch: 9.0.3 | ||||
|       muggle-string: 0.3.1 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|       vue-template-compiler: 2.7.14 | ||||
|     dev: true | ||||
|  | ||||
| @@ -8490,7 +8490,7 @@ packages: | ||||
|     dependencies: | ||||
|       '@vue/compiler-ssr': 3.3.8 | ||||
|       '@vue/shared': 3.3.8 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|  | ||||
|   /@vue/shared@3.3.6: | ||||
|     resolution: {integrity: sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==} | ||||
| @@ -8513,7 +8513,7 @@ packages: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       js-beautify: 1.14.9 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|       vue-component-type-helpers: 1.8.4 | ||||
|     dev: true | ||||
|  | ||||
| @@ -11180,7 +11180,7 @@ packages: | ||||
|       eslint-import-resolver-webpack: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       debug: 3.2.7(supports-color@5.5.0) | ||||
|       eslint: 8.53.0 | ||||
|       eslint-import-resolver-node: 0.3.9 | ||||
| @@ -11198,7 +11198,7 @@ packages: | ||||
|       '@typescript-eslint/parser': | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) | ||||
|       '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.2) | ||||
|       array-includes: 3.1.7 | ||||
|       array.prototype.findlastindex: 1.2.3 | ||||
|       array.prototype.flat: 1.3.2 | ||||
| @@ -14862,10 +14862,10 @@ packages: | ||||
|       msw: '>=0.35.0 <2.0.0' | ||||
|     dependencies: | ||||
|       is-node-process: 1.2.0 | ||||
|       msw: 1.3.2(typescript@5.2.2) | ||||
|       msw: 1.3.2(typescript@5.3.2) | ||||
|     dev: true | ||||
|  | ||||
|   /msw@1.3.2(typescript@5.2.2): | ||||
|   /msw@1.3.2(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==} | ||||
|     engines: {node: '>=14'} | ||||
|     hasBin: true | ||||
| @@ -14894,7 +14894,7 @@ packages: | ||||
|       path-to-regexp: 6.2.1 | ||||
|       strict-event-emitter: 0.4.6 | ||||
|       type-fest: 2.19.0 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|       yargs: 17.6.2 | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
| @@ -16783,12 +16783,12 @@ packages: | ||||
|       react-dom: 18.2.0(react@18.2.0) | ||||
|     dev: true | ||||
|  | ||||
|   /react-docgen-typescript@2.2.2(typescript@5.2.2): | ||||
|   /react-docgen-typescript@2.2.2(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} | ||||
|     peerDependencies: | ||||
|       typescript: '>= 4.3.x' | ||||
|     dependencies: | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|     dev: true | ||||
|  | ||||
|   /react-docgen@6.0.4: | ||||
| @@ -18636,13 +18636,13 @@ packages: | ||||
|       escape-string-regexp: 5.0.0 | ||||
|     dev: false | ||||
|  | ||||
|   /ts-api-utils@1.0.1(typescript@5.2.2): | ||||
|   /ts-api-utils@1.0.1(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} | ||||
|     engines: {node: '>=16.13.0'} | ||||
|     peerDependencies: | ||||
|       typescript: '>=4.2.0' | ||||
|     dependencies: | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|     dev: true | ||||
|  | ||||
|   /ts-dedent@2.2.0: | ||||
| @@ -18906,8 +18906,8 @@ packages: | ||||
|     hasBin: true | ||||
|     dev: true | ||||
|  | ||||
|   /typescript@5.2.2: | ||||
|     resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} | ||||
|   /typescript@5.3.2: | ||||
|     resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} | ||||
|     engines: {node: '>=14.17'} | ||||
|     hasBin: true | ||||
|  | ||||
| @@ -19195,7 +19195,7 @@ packages: | ||||
|       diff: 5.1.0 | ||||
|       diff-match-patch: 1.0.5 | ||||
|       highlight.js: 11.8.0 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|       vue-demi: 0.13.11(vue@3.3.8) | ||||
|     dev: false | ||||
|  | ||||
| @@ -19409,7 +19409,7 @@ packages: | ||||
|       '@vue/composition-api': | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     dev: false | ||||
|  | ||||
|   /vue-docgen-api@4.64.1(vue@3.3.8): | ||||
| @@ -19453,7 +19453,7 @@ packages: | ||||
|     peerDependencies: | ||||
|       vue: '>=2' | ||||
|     dependencies: | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     dev: true | ||||
|  | ||||
|   /vue-template-compiler@2.7.14: | ||||
| @@ -19463,19 +19463,19 @@ packages: | ||||
|       he: 1.2.0 | ||||
|     dev: true | ||||
|  | ||||
|   /vue-tsc@1.8.22(typescript@5.2.2): | ||||
|   /vue-tsc@1.8.22(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A==} | ||||
|     hasBin: true | ||||
|     peerDependencies: | ||||
|       typescript: '*' | ||||
|     dependencies: | ||||
|       '@volar/typescript': 1.10.7 | ||||
|       '@vue/language-core': 1.8.22(typescript@5.2.2) | ||||
|       '@vue/language-core': 1.8.22(typescript@5.3.2) | ||||
|       semver: 7.5.4 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|     dev: true | ||||
|  | ||||
|   /vue@3.3.8(typescript@5.2.2): | ||||
|   /vue@3.3.8(typescript@5.3.2): | ||||
|     resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} | ||||
|     peerDependencies: | ||||
|       typescript: '*' | ||||
| @@ -19488,7 +19488,7 @@ packages: | ||||
|       '@vue/runtime-dom': 3.3.8 | ||||
|       '@vue/server-renderer': 3.3.8(vue@3.3.8) | ||||
|       '@vue/shared': 3.3.8 | ||||
|       typescript: 5.2.2 | ||||
|       typescript: 5.3.2 | ||||
|  | ||||
|   /vuedraggable@4.1.0(vue@3.3.8): | ||||
|     resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} | ||||
| @@ -19496,7 +19496,7 @@ packages: | ||||
|       vue: ^3.0.1 | ||||
|     dependencies: | ||||
|       sortablejs: 1.14.0 | ||||
|       vue: 3.3.8(typescript@5.2.2) | ||||
|       vue: 3.3.8(typescript@5.3.2) | ||||
|     dev: false | ||||
|  | ||||
|   /w3c-xmlserializer@4.0.0: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 まっちゃとーにゅ
					まっちゃとーにゅ