Merge remote-tracking branch 'misskey-dev/develop' into merge-upstream

This commit is contained in:
まっちゃとーにゅ 2023-11-21 20:54:02 +09:00
commit 1fa04c17d3
No known key found for this signature in database
GPG key ID: 143DE582A97FE052
25 changed files with 605 additions and 264 deletions

View file

@ -20,9 +20,11 @@
### Client ### Client
- fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正
- Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367
### Server ### Server
- - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303
- Fix: ロールタイムラインが保存されない問題を修正
## 2023.11.1 ## 2023.11.1
@ -30,6 +32,7 @@
- Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました
- Enhance: ローカリゼーションの更新 - Enhance: ローカリゼーションの更新
- Enhance: 依存関係の更新 - Enhance: 依存関係の更新
- Enhance: json-schema(OpenAPIの戻り値として使用されるスキーマ定義)を出来る限り最新化 #12311
### Client ### Client
- Enhance: MFMでルビを振れるように - Enhance: MFMでルビを振れるように

View file

@ -51,7 +51,7 @@
"js-yaml": "4.1.0", "js-yaml": "4.1.0",
"postcss": "8.4.31", "postcss": "8.4.31",
"terser": "5.24.0", "terser": "5.24.0",
"typescript": "5.2.2" "typescript": "5.3.2"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/eslint-plugin": "6.11.0", "@typescript-eslint/eslint-plugin": "6.11.0",

View file

@ -165,7 +165,7 @@
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"twemoji-parser": "14.0.0", "twemoji-parser": "14.0.0",
"typeorm": "0.3.17", "typeorm": "0.3.17",
"typescript": "5.2.2", "typescript": "5.3.2",
"ulid": "2.3.0", "ulid": "2.3.0",
"vary": "1.1.2", "vary": "1.1.2",
"web-push": "3.6.6", "web-push": "3.6.6",

View file

@ -61,12 +61,23 @@ export class AntennaService implements OnApplicationShutdown {
lastUsedAt: new Date(body.lastUsedAt), lastUsedAt: new Date(body.lastUsedAt),
}); });
break; break;
case 'antennaUpdated': case 'antennaUpdated': {
this.antennas[this.antennas.findIndex(a => a.id === body.id)] = { const idx = this.antennas.findIndex(a => a.id === body.id);
...body, if (idx >= 0) {
createdAt: new Date(body.createdAt), this.antennas[idx] = {
lastUsedAt: new Date(body.lastUsedAt), ...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; break;
case 'antennaDeleted': case 'antennaDeleted':
this.antennas = this.antennas.filter(a => a.id !== body.id); this.antennas = this.antennas.filter(a => a.id !== body.id);

View file

@ -197,12 +197,14 @@ export class NotificationEntityService implements OnModuleInit {
}); });
} else if (notification.type === 'renote:grouped') { } else if (notification.type === 'renote:grouped') {
const users = await Promise.all(notification.userIds.map(userId => { const users = await Promise.all(notification.userIds.map(userId => {
const user = hint?.packedUsers != null const packedUser = hint?.packedUsers != null ? hint.packedUsers.get(userId) : null;
? hint.packedUsers.get(userId) if (packedUser) {
: this.userEntityService.pack(userId!, { id: meId }, { return packedUser;
detail: false, }
});
return user; return this.userEntityService.pack(userId, { id: meId }, {
detail: false,
});
})); }));
return await awaitAll({ return await awaitAll({
id: notification.id, id: notification.id,

View file

@ -42,11 +42,11 @@ export const packedAnnouncementSchema = {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
}, },
forYou: { needConfirmationToRead: {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },
needConfirmationToRead: { forYou: {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },

View file

@ -19,7 +19,7 @@ export const packedChannelSchema = {
}, },
lastNotedAt: { lastNotedAt: {
type: 'string', type: 'string',
optional: false, nullable: true, nullable: true, optional: false,
format: 'date-time', format: 'date-time',
}, },
name: { name: {
@ -28,38 +28,18 @@ export const packedChannelSchema = {
}, },
description: { description: {
type: 'string', type: 'string',
nullable: true, optional: false, optional: false, nullable: true,
},
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,
}, },
userId: { userId: {
type: 'string', type: 'string',
nullable: true, optional: false, nullable: true, optional: false,
format: 'id', format: 'id',
}, },
bannerUrl: {
type: 'string',
format: 'url',
nullable: true, optional: false,
},
pinnedNoteIds: { pinnedNoteIds: {
type: 'array', type: 'array',
nullable: false, optional: false, nullable: false, optional: false,
@ -72,6 +52,18 @@ export const packedChannelSchema = {
type: 'string', type: 'string',
optional: false, nullable: false, 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: { isSensitive: {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
@ -80,5 +72,22 @@ export const packedChannelSchema = {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, 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; } as const;

View file

@ -44,13 +44,13 @@ export const packedClipSchema = {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },
isFavorited: {
type: 'boolean',
optional: true, nullable: false,
},
favoritedCount: { favoritedCount: {
type: 'number', type: 'number',
optional: false, nullable: false, optional: false, nullable: false,
}, },
isFavorited: {
type: 'boolean',
optional: true, nullable: false,
},
}, },
} as const; } as const;

View file

@ -74,7 +74,7 @@ export const packedDriveFileSchema = {
}, },
url: { url: {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: false,
format: 'url', format: 'url',
}, },
thumbnailUrl: { thumbnailUrl: {

View file

@ -21,6 +21,12 @@ export const packedDriveFolderSchema = {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
}, },
parentId: {
type: 'string',
optional: false, nullable: true,
format: 'id',
example: 'xxxxxxxxxx',
},
foldersCount: { foldersCount: {
type: 'number', type: 'number',
optional: true, nullable: false, optional: true, nullable: false,
@ -29,12 +35,6 @@ export const packedDriveFolderSchema = {
type: 'number', type: 'number',
optional: true, nullable: false, optional: true, nullable: false,
}, },
parentId: {
type: 'string',
optional: false, nullable: true,
format: 'id',
example: 'xxxxxxxxxx',
},
parent: { parent: {
type: 'object', type: 'object',
optional: true, nullable: true, optional: true, nullable: true,

View file

@ -79,6 +79,10 @@ export const packedFederationInstanceSchema = {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: true,
}, },
isSilenced: {
type: 'boolean',
optional: false, nullable: false,
},
iconUrl: { iconUrl: {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: true,
@ -93,11 +97,6 @@ export const packedFederationInstanceSchema = {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: true,
}, },
isSilenced: {
type: "boolean",
optional: false,
nullable: false,
},
infoUpdatedAt: { infoUpdatedAt: {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: true,

View file

@ -22,6 +22,16 @@ export const packedFlashSchema = {
optional: false, nullable: false, optional: false, nullable: false,
format: 'date-time', format: 'date-time',
}, },
userId: {
type: 'string',
optional: false, nullable: false,
format: 'id',
},
user: {
type: 'object',
ref: 'UserLite',
optional: false, nullable: false,
},
title: { title: {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
@ -34,16 +44,6 @@ export const packedFlashSchema = {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
}, },
userId: {
type: 'string',
optional: false, nullable: false,
format: 'id',
},
user: {
type: 'object',
ref: 'UserLite',
optional: false, nullable: false,
},
likedCount: { likedCount: {
type: 'number', type: 'number',
optional: false, nullable: true, optional: false, nullable: true,

View file

@ -22,16 +22,16 @@ export const packedFollowingSchema = {
optional: false, nullable: false, optional: false, nullable: false,
format: 'id', format: 'id',
}, },
followee: {
type: 'object',
optional: true, nullable: false,
ref: 'UserDetailed',
},
followerId: { followerId: {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
format: 'id', format: 'id',
}, },
followee: {
type: 'object',
optional: true, nullable: false,
ref: 'UserDetailed',
},
follower: { follower: {
type: 'object', type: 'object',
optional: true, nullable: false, optional: true, nullable: false,

View file

@ -22,14 +22,6 @@ export const packedGalleryPostSchema = {
optional: false, nullable: false, optional: false, nullable: false,
format: 'date-time', format: 'date-time',
}, },
title: {
type: 'string',
optional: false, nullable: false,
},
description: {
type: 'string',
optional: false, nullable: true,
},
userId: { userId: {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
@ -40,6 +32,14 @@ export const packedGalleryPostSchema = {
ref: 'UserLite', ref: 'UserLite',
optional: false, nullable: false, optional: false, nullable: false,
}, },
title: {
type: 'string',
optional: false, nullable: false,
},
description: {
type: 'string',
optional: false, nullable: true,
},
fileIds: { fileIds: {
type: 'array', type: 'array',
optional: true, nullable: false, optional: true, nullable: false,
@ -70,6 +70,14 @@ export const packedGalleryPostSchema = {
type: 'boolean', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },
likedCount: {
type: 'number',
optional: false, nullable: false,
},
isLiked: {
type: 'boolean',
optional: true, nullable: false,
},
}, },
} as const; } as const;

View file

@ -127,22 +127,26 @@ export const packedNoteSchema = {
channel: { channel: {
type: 'object', type: 'object',
optional: true, nullable: true, optional: true, nullable: true,
items: { properties: {
type: 'object', id: {
optional: false, nullable: false, type: 'string',
properties: { optional: false, nullable: false,
id: { },
type: 'string', name: {
optional: false, nullable: false, type: 'string',
}, optional: false, nullable: false,
name: { },
type: 'string', color: {
optional: false, nullable: true, type: 'string',
}, optional: false, nullable: false,
isSensitive: { },
type: 'boolean', isSensitive: {
optional: true, nullable: false, type: 'boolean',
}, optional: false, nullable: false,
},
allowRenoteToExternal: {
type: 'boolean',
optional: false, nullable: false,
}, },
}, },
}, },

View file

@ -42,13 +42,9 @@ export const packedNotificationSchema = {
type: 'string', type: 'string',
optional: true, nullable: true, optional: true, nullable: true,
}, },
choice: { achievement: {
type: 'number', type: 'string',
optional: true, nullable: true, optional: true, nullable: false,
},
invitation: {
type: 'object',
optional: true, nullable: true,
}, },
body: { body: {
type: 'string', type: 'string',
@ -81,14 +77,14 @@ export const packedNotificationSchema = {
required: ['user', 'reaction'], required: ['user', 'reaction'],
}, },
}, },
}, users: {
users: { type: 'array',
type: 'array', optional: true, nullable: true,
optional: true, nullable: true, items: {
items: { type: 'object',
type: 'object', ref: 'UserLite',
ref: 'UserLite', optional: false, nullable: false,
optional: false, nullable: false, },
}, },
}, },
} as const; } as const;

View file

@ -22,6 +22,32 @@ export const packedPageSchema = {
optional: false, nullable: false, optional: false, nullable: false,
format: 'date-time', 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: { title: {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
@ -34,24 +60,48 @@ export const packedPageSchema = {
type: 'string', type: 'string',
optional: false, nullable: true, optional: false, nullable: true,
}, },
content: { hideTitleWhenPinned: {
type: 'array', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },
variables: { alignCenter: {
type: 'array', type: 'boolean',
optional: false, nullable: false, optional: false, nullable: false,
}, },
userId: { font: {
type: 'string', type: 'string',
optional: false, nullable: false, optional: false, nullable: false,
format: 'id',
}, },
user: { script: {
type: 'object', type: 'string',
ref: 'UserLite',
optional: false, nullable: false, 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; } as const;

View file

@ -49,11 +49,6 @@ export const packedUserLiteSchema = {
nullable: false, optional: false, nullable: false, optional: false,
format: 'id', format: 'id',
}, },
url: {
type: 'string',
format: 'url',
nullable: false, optional: false,
},
angle: { angle: {
type: 'number', type: 'number',
nullable: false, optional: true, nullable: false, optional: true,
@ -62,19 +57,14 @@ export const packedUserLiteSchema = {
type: 'boolean', type: 'boolean',
nullable: false, optional: true, 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: { isBot: {
type: 'boolean', type: 'boolean',
nullable: false, optional: true, nullable: false, optional: true,
@ -83,12 +73,67 @@ export const packedUserLiteSchema = {
type: 'boolean', type: 'boolean',
nullable: false, optional: true, 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: { onlineStatus: {
type: 'string', type: 'string',
format: 'url', nullable: false, optional: false,
nullable: true, optional: false,
enum: ['unknown', 'online', 'active', 'offline'], 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; } as const;
@ -105,21 +150,18 @@ export const packedUserDetailedNotMeOnlySchema = {
format: 'uri', format: 'uri',
nullable: true, optional: false, nullable: true, optional: false,
}, },
movedToUri: { movedTo: {
type: 'string', type: 'string',
format: 'uri', format: 'uri',
nullable: true, nullable: true, optional: false,
optional: false,
}, },
alsoKnownAs: { alsoKnownAs: {
type: 'array', type: 'array',
nullable: true, nullable: true, optional: false,
optional: false,
items: { items: {
type: 'string', type: 'string',
format: 'id', format: 'id',
nullable: false, nullable: false, optional: false,
optional: false,
}, },
}, },
createdAt: { createdAt: {
@ -253,6 +295,11 @@ export const packedUserDetailedNotMeOnlySchema = {
type: 'boolean', type: 'boolean',
nullable: false, optional: false, nullable: false, optional: false,
}, },
ffVisibility: {
type: 'string',
nullable: false, optional: false,
enum: ['public', 'followers', 'private'],
},
twoFactorEnabled: { twoFactorEnabled: {
type: 'boolean', type: 'boolean',
nullable: false, optional: false, nullable: false, optional: false,
@ -268,6 +315,57 @@ export const packedUserDetailedNotMeOnlySchema = {
nullable: false, optional: false, nullable: false, optional: false,
default: 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 //#region relations
isFollowing: { isFollowing: {
type: 'boolean', type: 'boolean',
@ -301,10 +399,6 @@ export const packedUserDetailedNotMeOnlySchema = {
type: 'boolean', type: 'boolean',
nullable: false, optional: true, nullable: false, optional: true,
}, },
memo: {
type: 'string',
nullable: false, optional: true,
},
notify: { notify: {
type: 'string', type: 'string',
nullable: false, optional: true, nullable: false, optional: true,
@ -330,29 +424,37 @@ export const packedMeDetailedOnlySchema = {
nullable: true, optional: false, nullable: true, optional: false,
format: 'id', format: 'id',
}, },
injectFeaturedNote: { isModerator: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: true, optional: false,
}, },
isAdmin: {
type: 'boolean',
nullable: true, optional: false,
},
injectFeaturedNote: {
type: 'boolean',
nullable: false, optional: false,
},
receiveAnnouncementEmail: { receiveAnnouncementEmail: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: false, optional: false,
}, },
alwaysMarkNsfw: { alwaysMarkNsfw: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: false, optional: false,
}, },
autoSensitive: { autoSensitive: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: false, optional: false,
}, },
carefulBot: { carefulBot: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: false, optional: false,
}, },
autoAcceptFollowed: { autoAcceptFollowed: {
type: 'boolean', type: 'boolean',
nullable: true, optional: false, nullable: false, optional: false,
}, },
noCrawle: { noCrawle: {
type: 'boolean', type: 'boolean',
@ -391,10 +493,23 @@ export const packedMeDetailedOnlySchema = {
type: 'boolean', type: 'boolean',
nullable: false, optional: false, nullable: false, optional: false,
}, },
unreadAnnouncements: {
type: 'array',
nullable: false, optional: false,
items: {
type: 'object',
nullable: false, optional: false,
ref: 'Announcement',
},
},
hasUnreadAntenna: { hasUnreadAntenna: {
type: 'boolean', type: 'boolean',
nullable: false, optional: false, nullable: false, optional: false,
}, },
hasUnreadChannel: {
type: 'boolean',
nullable: false, optional: false,
},
hasUnreadNotification: { hasUnreadNotification: {
type: 'boolean', type: 'boolean',
nullable: false, optional: false, nullable: false, optional: false,
@ -433,12 +548,132 @@ export const packedMeDetailedOnlySchema = {
}, },
emailNotificationTypes: { emailNotificationTypes: {
type: 'array', type: 'array',
nullable: true, optional: false, nullable: false, optional: false,
items: { items: {
type: 'string', type: 'string',
nullable: false, optional: false, 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 //#region secrets
email: { email: {
type: 'string', type: 'string',
@ -515,5 +750,13 @@ export const packedUserSchema = {
type: 'object', type: 'object',
ref: 'UserDetailed', ref: 'UserDetailed',
}, },
{
type: 'object',
ref: 'UserDetailedNotMe',
},
{
type: 'object',
ref: 'MeDetailed',
},
], ],
} as const; } as const;

View file

@ -13,6 +13,7 @@ import { DI } from '@/di-symbols.js';
import { NoteEntityService } from '@/core/entities/NoteEntityService.js'; import { NoteEntityService } from '@/core/entities/NoteEntityService.js';
import { IdService } from '@/core/IdService.js'; import { IdService } from '@/core/IdService.js';
import { FunoutTimelineService } from '@/core/FunoutTimelineService.js'; import { FunoutTimelineService } from '@/core/FunoutTimelineService.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
import { ApiError } from '../../error.js'; import { ApiError } from '../../error.js';
export const meta = { export const meta = {
@ -71,6 +72,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private queryService: QueryService, private queryService: QueryService,
private noteReadService: NoteReadService, private noteReadService: NoteReadService,
private funoutTimelineService: FunoutTimelineService, private funoutTimelineService: FunoutTimelineService,
private globalEventService: GlobalEventService,
) { ) {
super(meta, paramDef, async (ps, me) => { super(meta, paramDef, async (ps, me) => {
const untilId = ps.untilId ?? (ps.untilDate ? this.idService.gen(ps.untilDate!) : null); 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); throw new ApiError(meta.errors.noSuchAntenna);
} }
this.antennasRepository.update(antenna.id, { // falseだった場合はアンテナの配信先が増えたことを通知したい
isActive: true, const needPublishEvent = !antenna.isActive;
lastUsedAt: new Date(),
}); 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); let noteIds = await this.funoutTimelineService.get(`antennaTimeline:${antenna.id}`, untilId, sinceId);
noteIds = noteIds.slice(0, ps.limit); noteIds = noteIds.slice(0, ps.limit);

View file

@ -70,7 +70,7 @@
"tsc-alias": "1.8.8", "tsc-alias": "1.8.8",
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"twemoji-parser": "14.0.0", "twemoji-parser": "14.0.0",
"typescript": "5.2.2", "typescript": "5.3.2",
"uuid": "9.0.1", "uuid": "9.0.1",
"v-code-diff": "1.7.2", "v-code-diff": "1.7.2",
"vanilla-tilt": "1.8.1", "vanilla-tilt": "1.8.1",

View file

@ -122,7 +122,7 @@ export const soundsTypes = [
'Copyright_Misskey.io/ThinaticSystem/yonderuzo3', 'Copyright_Misskey.io/ThinaticSystem/yonderuzo3',
] as const; ] as const;
export async function getAudio(file: string, useCache = true) { export async function loadAudio(file: string, useCache = true) {
if (useCache && cache.has(file)) { if (useCache && cache.has(file)) {
return cache.get(file)!; return cache.get(file)!;
} }
@ -138,12 +138,6 @@ export async function getAudio(file: string, useCache = true) {
return audioBuffer; 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') { export function play(type: 'noteMy' | 'note' | 'antenna' | 'channel' | 'notification') {
const sound = defaultStore.state[`sound_${type}`]; const sound = defaultStore.state[`sound_${type}`];
if (_DEV_) console.log('play', type, sound); 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) { 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; const masterVolume = defaultStore.state.sound_masterVolume;
if (masterVolume === 0 || volume === 0) { if (masterVolume === 0 || volume === 0) {
return; return null;
} }
const gainNode = ctx.createGain(); const gainNode = ctx.createGain();
gainNode.gain.value = masterVolume * volume; gainNode.gain.value = masterVolume * volume;
const soundSource = ctx.createBufferSource(); const soundSource = ctx.createBufferSource();
soundSource.buffer = await getAudio(file); soundSource.buffer = buffer;
soundSource.connect(gainNode).connect(ctx.destination); soundSource.connect(gainNode).connect(ctx.destination);
soundSource.start();
return soundSource;
} }

View file

@ -99,7 +99,10 @@ const current = reactive({
}, },
}); });
const prev = reactive({} as typeof current); 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']) { for (const domain of ['inbox', 'deliver']) {
prev[domain] = deepClone(current[domain]); prev[domain] = deepClone(current[domain]);
@ -113,8 +116,13 @@ const onStats = (stats) => {
current[domain].waiting = stats[domain].waiting; current[domain].waiting = stats[domain].waiting;
current[domain].delayed = stats[domain].delayed; current[domain].delayed = stats[domain].delayed;
if (current[domain].waiting > 0 && widgetProps.sound && jammedSound.paused) { if (current[domain].waiting > 0 && widgetProps.sound && jammedAudioBuffer && !jammedSoundNodePlaying) {
jammedSound.play(); const soundNode = sound.createSourceNode(jammedAudioBuffer, 1);
if (soundNode) {
jammedSoundNodePlaying = true;
soundNode.onended = () => jammedSoundNodePlaying = false;
soundNode.start();
}
} }
} }
}; };

View file

@ -32,7 +32,7 @@
"jest-websocket-mock": "2.5.0", "jest-websocket-mock": "2.5.0",
"mock-socket": "9.3.1", "mock-socket": "9.3.1",
"tsd": "0.29.0", "tsd": "0.29.0",
"typescript": "5.2.2" "typescript": "5.3.2"
}, },
"files": [ "files": [
"built" "built"

View file

@ -18,7 +18,7 @@
"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67", "@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
"eslint": "8.53.0", "eslint": "8.53.0",
"eslint-plugin-import": "2.29.0", "eslint-plugin-import": "2.29.0",
"typescript": "5.2.2" "typescript": "5.3.2"
}, },
"type": "module" "type": "module"
} }

View file

@ -28,8 +28,8 @@ importers:
specifier: 5.24.0 specifier: 5.24.0
version: 5.24.0 version: 5.24.0
typescript: typescript:
specifier: 5.2.2 specifier: 5.3.2
version: 5.2.2 version: 5.3.2
optionalDependencies: optionalDependencies:
'@tensorflow/tfjs-core': '@tensorflow/tfjs-core':
specifier: 4.4.0 specifier: 4.4.0
@ -37,10 +37,10 @@ importers:
devDependencies: devDependencies:
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 6.11.0 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': '@typescript-eslint/parser':
specifier: 6.11.0 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: cross-env:
specifier: 7.0.3 specifier: 7.0.3
version: 7.0.3 version: 7.0.3
@ -381,8 +381,8 @@ importers:
specifier: 0.3.17 specifier: 0.3.17
version: 0.3.17(ioredis@5.3.2)(pg@8.11.3) version: 0.3.17(ioredis@5.3.2)(pg@8.11.3)
typescript: typescript:
specifier: 5.2.2 specifier: 5.3.2
version: 5.2.2 version: 5.3.2
ulid: ulid:
specifier: 2.3.0 specifier: 2.3.0
version: 2.3.0 version: 2.3.0
@ -615,10 +615,10 @@ importers:
version: 8.5.9 version: 8.5.9
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 6.11.0 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': '@typescript-eslint/parser':
specifier: 6.11.0 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: aws-sdk-client-mock:
specifier: 3.0.0 specifier: 3.0.0
version: 3.0.0 version: 3.0.0
@ -809,8 +809,8 @@ importers:
specifier: 14.0.0 specifier: 14.0.0
version: 14.0.0 version: 14.0.0
typescript: typescript:
specifier: 5.2.2 specifier: 5.3.2
version: 5.2.2 version: 5.3.2
uuid: uuid:
specifier: 9.0.1 specifier: 9.0.1
version: 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) version: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0)
vue: vue:
specifier: 3.3.8 specifier: 3.3.8
version: 3.3.8(typescript@5.2.2) version: 3.3.8(typescript@5.3.2)
vuedraggable: vuedraggable:
specifier: next specifier: next
version: 4.1.0(vue@3.3.8) version: 4.1.0(vue@3.3.8)
@ -865,10 +865,10 @@ importers:
version: 7.5.3 version: 7.5.3
'@storybook/react': '@storybook/react':
specifier: 7.5.3 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': '@storybook/react-vite':
specifier: 7.5.3 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': '@storybook/testing-library':
specifier: 0.2.2 specifier: 0.2.2
version: 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) version: 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.8)
'@storybook/vue3-vite': '@storybook/vue3-vite':
specifier: 7.5.3 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': '@testing-library/vue':
specifier: 8.0.0 specifier: 8.0.0
version: 8.0.0(@vue/compiler-sfc@3.3.8)(vue@3.3.8) version: 8.0.0(@vue/compiler-sfc@3.3.8)(vue@3.3.8)
@ -925,10 +925,10 @@ importers:
version: 8.5.9 version: 8.5.9
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 6.11.0 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': '@typescript-eslint/parser':
specifier: 6.11.0 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': '@vitest/coverage-v8':
specifier: 0.34.6 specifier: 0.34.6
version: 0.34.6(vitest@0.34.6) version: 0.34.6(vitest@0.34.6)
@ -964,7 +964,7 @@ importers:
version: 4.0.5 version: 4.0.5
msw: msw:
specifier: 1.3.2 specifier: 1.3.2
version: 1.3.2(typescript@5.2.2) version: 1.3.2(typescript@5.3.2)
msw-storybook-addon: msw-storybook-addon:
specifier: 1.10.0 specifier: 1.10.0
version: 1.10.0(msw@1.3.2) version: 1.10.0(msw@1.3.2)
@ -1006,7 +1006,7 @@ importers:
version: 9.3.2(eslint@8.53.0) version: 9.3.2(eslint@8.53.0)
vue-tsc: vue-tsc:
specifier: 1.8.22 specifier: 1.8.22
version: 1.8.22(typescript@5.2.2) version: 1.8.22(typescript@5.3.2)
packages/misskey-js: packages/misskey-js:
dependencies: dependencies:
@ -1037,10 +1037,10 @@ importers:
version: 20.9.1 version: 20.9.1
'@typescript-eslint/eslint-plugin': '@typescript-eslint/eslint-plugin':
specifier: 6.11.0 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': '@typescript-eslint/parser':
specifier: 6.11.0 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: eslint:
specifier: 8.53.0 specifier: 8.53.0
version: 8.53.0 version: 8.53.0
@ -1060,8 +1060,8 @@ importers:
specifier: 0.29.0 specifier: 0.29.0
version: 0.29.0 version: 0.29.0
typescript: typescript:
specifier: 5.2.2 specifier: 5.3.2
version: 5.2.2 version: 5.3.2
packages/sw: packages/sw:
dependencies: dependencies:
@ -1077,7 +1077,7 @@ importers:
devDependencies: devDependencies:
'@typescript-eslint/parser': '@typescript-eslint/parser':
specifier: 6.11.0 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': '@typescript/lib-webworker':
specifier: npm:@types/serviceworker@0.0.67 specifier: npm:@types/serviceworker@0.0.67
version: /@types/serviceworker@0.0.67 version: /@types/serviceworker@0.0.67
@ -1088,8 +1088,8 @@ importers:
specifier: 2.29.0 specifier: 2.29.0
version: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0) version: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)
typescript: typescript:
specifier: 5.2.2 specifier: 5.3.2
version: 5.2.2 version: 5.3.2
packages: packages:
@ -4257,7 +4257,7 @@ packages:
chalk: 4.1.2 chalk: 4.1.2
dev: true 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==} resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==}
peerDependencies: peerDependencies:
typescript: '>= 4.3.x' typescript: '>= 4.3.x'
@ -4269,8 +4269,8 @@ packages:
glob: 7.2.3 glob: 7.2.3
glob-promise: 4.2.2(glob@7.2.3) glob-promise: 4.2.2(glob@7.2.3)
magic-string: 0.27.0 magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.2.2) react-docgen-typescript: 2.2.2(typescript@5.3.2)
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) vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0)
dev: true dev: true
@ -6370,7 +6370,7 @@ packages:
- supports-color - supports-color
dev: true 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==} resolution: {integrity: sha512-c104V3O75OCVnfZj0Jr70V09g0KSbPGvQK2Zh31omXGvakG8XrhWolYxkmjOcForJmAqsXnKs/nw3F75Gp853g==}
peerDependencies: peerDependencies:
'@preact/preset-vite': '*' '@preact/preset-vite': '*'
@ -6401,7 +6401,7 @@ packages:
fs-extra: 11.1.1 fs-extra: 11.1.1
magic-string: 0.30.5 magic-string: 0.30.5
rollup: 3.29.4 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) vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0)
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -6772,7 +6772,7 @@ packages:
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: true 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==} resolution: {integrity: sha512-ArPyHgiPbT5YvcyK4xK/DfqBOpn4R4/EP3kfIGhx8QKJyOtxPEYFdkLIZ5xu3KnPX7/z7GT+4a6Rb+8sk9gliA==}
engines: {node: '>=16'} engines: {node: '>=16'}
peerDependencies: peerDependencies:
@ -6780,10 +6780,10 @@ packages:
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0
dependencies: 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) '@rollup/pluginutils': 5.0.5(rollup@4.4.1)
'@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/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)
'@vitejs/plugin-react': 3.1.0(vite@4.5.0) '@vitejs/plugin-react': 3.1.0(vite@4.5.0)
magic-string: 0.30.5 magic-string: 0.30.5
react: 18.2.0 react: 18.2.0
@ -6799,7 +6799,7 @@ packages:
- vite-plugin-glimmerx - vite-plugin-glimmerx
dev: true 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==} resolution: {integrity: sha512-dZILdM36xMFDjdmmy421G5X+sOIncB2qF3IPTooniG1i1Z6v/dVNo57ovdID9lDTNa+AWr2fLB9hANiISMqmjQ==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
@ -6832,7 +6832,7 @@ packages:
react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0) react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0)
ts-dedent: 2.2.0 ts-dedent: 2.2.0
type-fest: 2.19.0 type-fest: 2.19.0
typescript: 5.2.2 typescript: 5.3.2
util-deprecate: 1.0.2 util-deprecate: 1.0.2
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -6914,7 +6914,7 @@ packages:
file-system-cache: 2.3.0 file-system-cache: 2.3.0
dev: true 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==} resolution: {integrity: sha512-gkNwDDn2AKthAtaoPrHb0+2gi33UluxpfSq/M5COoMEVFphj6y/jyDa+OEYlceXgnD8g2xvX4/yv2TbTNDzmcQ==}
engines: {node: ^14.18 || >=16} engines: {node: ^14.18 || >=16}
peerDependencies: peerDependencies:
@ -6922,7 +6922,7 @@ packages:
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0
dependencies: 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/core-server': 7.5.3
'@storybook/vue3': 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.8) '@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) '@vitejs/plugin-vue': 4.5.0(vite@4.5.0)(vue@3.3.8)
@ -6959,7 +6959,7 @@ packages:
lodash: 4.17.21 lodash: 4.17.21
ts-dedent: 2.2.0 ts-dedent: 2.2.0
type-fest: 2.19.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 vue-component-type-helpers: 1.8.22
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -7454,7 +7454,7 @@ packages:
'@testing-library/dom': 9.3.3 '@testing-library/dom': 9.3.3
'@vue/compiler-sfc': 3.3.8 '@vue/compiler-sfc': 3.3.8
'@vue/test-utils': 2.4.1(vue@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: transitivePeerDependencies:
- '@vue/server-renderer' - '@vue/server-renderer'
dev: true dev: true
@ -8095,7 +8095,7 @@ packages:
dev: true dev: true
optional: 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==} resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -8107,10 +8107,10 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@eslint-community/regexpp': 4.6.2 '@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/scope-manager': 6.11.0
'@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)
'@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)
'@typescript-eslint/visitor-keys': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@8.1.1)
eslint: 8.53.0 eslint: 8.53.0
@ -8118,13 +8118,13 @@ packages:
ignore: 5.2.4 ignore: 5.2.4
natural-compare: 1.4.0 natural-compare: 1.4.0
semver: 7.5.4 semver: 7.5.4
ts-api-utils: 1.0.1(typescript@5.2.2) ts-api-utils: 1.0.1(typescript@5.3.2)
typescript: 5.2.2 typescript: 5.3.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true 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==} resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -8136,11 +8136,11 @@ packages:
dependencies: dependencies:
'@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 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 '@typescript-eslint/visitor-keys': 6.11.0
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@8.1.1)
eslint: 8.53.0 eslint: 8.53.0
typescript: 5.2.2 typescript: 5.3.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -8153,7 +8153,7 @@ packages:
'@typescript-eslint/visitor-keys': 6.11.0 '@typescript-eslint/visitor-keys': 6.11.0
dev: true 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==} resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -8163,12 +8163,12 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 6.11.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.2.2) '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2)
debug: 4.3.4(supports-color@8.1.1) debug: 4.3.4(supports-color@8.1.1)
eslint: 8.53.0 eslint: 8.53.0
ts-api-utils: 1.0.1(typescript@5.2.2) ts-api-utils: 1.0.1(typescript@5.3.2)
typescript: 5.2.2 typescript: 5.3.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@ -8178,7 +8178,7 @@ packages:
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
dev: true 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==} resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -8193,13 +8193,13 @@ packages:
globby: 11.1.0 globby: 11.1.0
is-glob: 4.0.3 is-glob: 4.0.3
semver: 7.5.4 semver: 7.5.4
ts-api-utils: 1.0.1(typescript@5.2.2) ts-api-utils: 1.0.1(typescript@5.3.2)
typescript: 5.2.2 typescript: 5.3.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true 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==} resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==}
engines: {node: ^16.0.0 || >=18.0.0} engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies: peerDependencies:
@ -8210,7 +8210,7 @@ packages:
'@types/semver': 7.5.5 '@types/semver': 7.5.5
'@typescript-eslint/scope-manager': 6.11.0 '@typescript-eslint/scope-manager': 6.11.0
'@typescript-eslint/types': 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 eslint: 8.53.0
semver: 7.5.4 semver: 7.5.4
transitivePeerDependencies: transitivePeerDependencies:
@ -8254,7 +8254,7 @@ packages:
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 4.5.0(@types/node@20.9.1)(sass@1.69.5)(terser@5.24.0) 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): /@vitest/coverage-v8@0.34.6(vitest@0.34.6):
resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==} resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==}
@ -8349,7 +8349,7 @@ packages:
ast-kit: 0.11.2(rollup@4.4.1) ast-kit: 0.11.2(rollup@4.4.1)
local-pkg: 0.5.0 local-pkg: 0.5.0
magic-string-ast: 0.3.0 magic-string-ast: 0.3.0
vue: 3.3.8(typescript@5.2.2) vue: 3.3.8(typescript@5.3.2)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
dev: false dev: false
@ -8366,7 +8366,7 @@ packages:
'@vue/shared': 3.3.8 '@vue/shared': 3.3.8
magic-string: 0.30.5 magic-string: 0.30.5
unplugin: 1.5.1 unplugin: 1.5.1
vue: 3.3.8(typescript@5.2.2) vue: 3.3.8(typescript@5.3.2)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
dev: false dev: false
@ -8437,7 +8437,7 @@ packages:
'@vue/compiler-dom': 3.3.8 '@vue/compiler-dom': 3.3.8
'@vue/shared': 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==} resolution: {integrity: sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw==}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -8452,7 +8452,7 @@ packages:
computeds: 0.0.1 computeds: 0.0.1
minimatch: 9.0.3 minimatch: 9.0.3
muggle-string: 0.3.1 muggle-string: 0.3.1
typescript: 5.2.2 typescript: 5.3.2
vue-template-compiler: 2.7.14 vue-template-compiler: 2.7.14
dev: true dev: true
@ -8490,7 +8490,7 @@ packages:
dependencies: dependencies:
'@vue/compiler-ssr': 3.3.8 '@vue/compiler-ssr': 3.3.8
'@vue/shared': 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: /@vue/shared@3.3.6:
resolution: {integrity: sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==} resolution: {integrity: sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==}
@ -8513,7 +8513,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
js-beautify: 1.14.9 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 vue-component-type-helpers: 1.8.4
dev: true dev: true
@ -11180,7 +11180,7 @@ packages:
eslint-import-resolver-webpack: eslint-import-resolver-webpack:
optional: true optional: true
dependencies: 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) debug: 3.2.7(supports-color@5.5.0)
eslint: 8.53.0 eslint: 8.53.0
eslint-import-resolver-node: 0.3.9 eslint-import-resolver-node: 0.3.9
@ -11198,7 +11198,7 @@ packages:
'@typescript-eslint/parser': '@typescript-eslint/parser':
optional: true optional: true
dependencies: 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-includes: 3.1.7
array.prototype.findlastindex: 1.2.3 array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2 array.prototype.flat: 1.3.2
@ -14862,10 +14862,10 @@ packages:
msw: '>=0.35.0 <2.0.0' msw: '>=0.35.0 <2.0.0'
dependencies: dependencies:
is-node-process: 1.2.0 is-node-process: 1.2.0
msw: 1.3.2(typescript@5.2.2) msw: 1.3.2(typescript@5.3.2)
dev: true dev: true
/msw@1.3.2(typescript@5.2.2): /msw@1.3.2(typescript@5.3.2):
resolution: {integrity: sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==} resolution: {integrity: sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
@ -14894,7 +14894,7 @@ packages:
path-to-regexp: 6.2.1 path-to-regexp: 6.2.1
strict-event-emitter: 0.4.6 strict-event-emitter: 0.4.6
type-fest: 2.19.0 type-fest: 2.19.0
typescript: 5.2.2 typescript: 5.3.2
yargs: 17.6.2 yargs: 17.6.2
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@ -16783,12 +16783,12 @@ packages:
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: true 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==} resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==}
peerDependencies: peerDependencies:
typescript: '>= 4.3.x' typescript: '>= 4.3.x'
dependencies: dependencies:
typescript: 5.2.2 typescript: 5.3.2
dev: true dev: true
/react-docgen@6.0.4: /react-docgen@6.0.4:
@ -18636,13 +18636,13 @@ packages:
escape-string-regexp: 5.0.0 escape-string-regexp: 5.0.0
dev: false 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==} resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
engines: {node: '>=16.13.0'} engines: {node: '>=16.13.0'}
peerDependencies: peerDependencies:
typescript: '>=4.2.0' typescript: '>=4.2.0'
dependencies: dependencies:
typescript: 5.2.2 typescript: 5.3.2
dev: true dev: true
/ts-dedent@2.2.0: /ts-dedent@2.2.0:
@ -18906,8 +18906,8 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/typescript@5.2.2: /typescript@5.3.2:
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
@ -19195,7 +19195,7 @@ packages:
diff: 5.1.0 diff: 5.1.0
diff-match-patch: 1.0.5 diff-match-patch: 1.0.5
highlight.js: 11.8.0 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) vue-demi: 0.13.11(vue@3.3.8)
dev: false dev: false
@ -19409,7 +19409,7 @@ packages:
'@vue/composition-api': '@vue/composition-api':
optional: true optional: true
dependencies: dependencies:
vue: 3.3.8(typescript@5.2.2) vue: 3.3.8(typescript@5.3.2)
dev: false dev: false
/vue-docgen-api@4.64.1(vue@3.3.8): /vue-docgen-api@4.64.1(vue@3.3.8):
@ -19453,7 +19453,7 @@ packages:
peerDependencies: peerDependencies:
vue: '>=2' vue: '>=2'
dependencies: dependencies:
vue: 3.3.8(typescript@5.2.2) vue: 3.3.8(typescript@5.3.2)
dev: true dev: true
/vue-template-compiler@2.7.14: /vue-template-compiler@2.7.14:
@ -19463,19 +19463,19 @@ packages:
he: 1.2.0 he: 1.2.0
dev: true 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==} resolution: {integrity: sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
dependencies: dependencies:
'@volar/typescript': 1.10.7 '@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 semver: 7.5.4
typescript: 5.2.2 typescript: 5.3.2
dev: true dev: true
/vue@3.3.8(typescript@5.2.2): /vue@3.3.8(typescript@5.3.2):
resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
@ -19488,7 +19488,7 @@ packages:
'@vue/runtime-dom': 3.3.8 '@vue/runtime-dom': 3.3.8
'@vue/server-renderer': 3.3.8(vue@3.3.8) '@vue/server-renderer': 3.3.8(vue@3.3.8)
'@vue/shared': 3.3.8 '@vue/shared': 3.3.8
typescript: 5.2.2 typescript: 5.3.2
/vuedraggable@4.1.0(vue@3.3.8): /vuedraggable@4.1.0(vue@3.3.8):
resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
@ -19496,7 +19496,7 @@ packages:
vue: ^3.0.1 vue: ^3.0.1
dependencies: dependencies:
sortablejs: 1.14.0 sortablejs: 1.14.0
vue: 3.3.8(typescript@5.2.2) vue: 3.3.8(typescript@5.3.2)
dev: false dev: false
/w3c-xmlserializer@4.0.0: /w3c-xmlserializer@4.0.0: