From ffd8cf07e683eae95858d89fa9e5d85bf271c4d6 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sat, 15 Feb 2025 10:24:22 +0900 Subject: update deps (#15311) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * bump misskey-dev/eslint-plugin * lint fixes (backend) * lint fixes (frontend) * lint fixes (frontend-embed) * rollback nsfwjs to 4.2.0 ref: infinitered/nsfwjs#904 * rollback openapi-typescript to v6 v7でOpenAPIのバリデーションが入るようになった関係でスコープ外での変更が避けられないため一時的に戻した * lint fixes (misskey-js) * temporarily disable errored lint rule (frontend-shared) * fix lint * temporarily ignore errored file for lint (frontend-shared) * rollback simplewebauthn/server to 12.0.0 v13 contains breaking changes that require some decision making * lint fixes (frontend-shared) * build misskey-js with types * fix(backend): migrate simplewebauthn/server to v12 * fix(misskey-js/autogen): ignore indent rules to generate consistent output * attempt to fix test changes due to capricorn86/happy-dom#1617 (XMLSerializer now produces valid XML) * attempt to fix test changes due to capricorn86/happy-dom#1617 (XMLSerializer now produces valid XML) * fix test * fix test * fix test * Apply suggestions from code review Co-authored-by: anatawa12 * bump summaly to v5.2.0 * update tabler-icons to v3.30.0-based --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Co-authored-by: anatawa12 --- packages/frontend/eslint.config.js | 2 + packages/frontend/package.json | 102 ++++++++++----------- packages/frontend/src/components/MkCaptcha.vue | 2 + packages/frontend/src/components/MkDialog.vue | 1 + .../src/components/MkNotificationSelectWindow.vue | 2 +- .../src/components/MkSortOrderEditor.define.ts | 4 +- .../src/components/MkSystemWebhookEditor.vue | 2 +- packages/frontend/src/components/MkTimeline.vue | 18 ++-- .../components/MkUserAnnouncementEditDialog.vue | 2 +- packages/frontend/src/components/grid/MkGrid.vue | 2 +- .../src/components/grid/cell-validators.ts | 8 +- packages/frontend/src/components/grid/cell.ts | 6 +- packages/frontend/src/components/grid/column.ts | 2 +- packages/frontend/src/components/grid/grid.ts | 8 +- packages/frontend/src/components/grid/row.ts | 6 +- packages/frontend/src/local-storage.ts | 3 +- packages/frontend/src/nirax.ts | 2 +- .../admin/custom-emojis-manager.local.list.vue | 2 +- .../admin/custom-emojis-manager.local.register.vue | 2 +- .../pages/admin/custom-emojis-manager.remote.vue | 2 +- packages/frontend/src/pages/search.note.vue | 2 +- packages/frontend/src/scripts/aiscript/api.ts | 2 +- packages/frontend/src/scripts/file-drop.ts | 2 +- .../frontend/src/scripts/format-time-string.ts | 2 +- packages/frontend/src/scripts/key-event.ts | 14 +-- packages/frontend/src/scripts/stream-mock.ts | 6 +- packages/frontend/src/store.ts | 2 +- packages/frontend/src/types/menu.ts | 2 +- 28 files changed, 108 insertions(+), 102 deletions(-) (limited to 'packages/frontend') diff --git a/packages/frontend/eslint.config.js b/packages/frontend/eslint.config.js index 7805256fd4..8aa70c66a2 100644 --- a/packages/frontend/eslint.config.js +++ b/packages/frontend/eslint.config.js @@ -47,6 +47,8 @@ export default [ '@typescript-eslint/no-empty-interface': ['error', { allowSingleExtends: true, }], + // defineExposeが誤検知されてしまう + '@typescript-eslint/no-unused-expressions': 'off', 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'], // window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため // e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 804160baad..8e486d8125 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -22,23 +22,23 @@ "@misskey-dev/browser-image-resizer": "2024.1.0", "@rollup/plugin-json": "6.1.0", "@rollup/plugin-replace": "5.0.7", - "@rollup/pluginutils": "5.1.3", + "@rollup/pluginutils": "5.1.4", "@syuilo/aiscript": "0.19.0", - "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.29.0-mi.1913+5921534bc.tar.gz", + "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.30.0-mi.1932+ab127beee.tar.gz", "@twemoji/parser": "15.1.1", - "@vitejs/plugin-vue": "5.2.0", - "@vue/compiler-sfc": "3.5.12", + "@vitejs/plugin-vue": "5.2.1", + "@vue/compiler-sfc": "3.5.13", "aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.15", "astring": "1.9.0", "broadcast-channel": "7.0.0", "buraha": "0.0.1", "canvas-confetti": "1.9.3", - "chart.js": "4.4.6", + "chart.js": "4.4.7", "chartjs-adapter-date-fns": "3.0.0", "chartjs-chart-matrix": "2.0.1", "chartjs-plugin-gradient": "0.6.1", - "chartjs-plugin-zoom": "2.0.1", - "chromatic": "11.18.1", + "chartjs-plugin-zoom": "2.2.0", + "chromatic": "11.25.0", "compare-versions": "6.1.1", "cropperjs": "2.0.0-rc.2", "date-fns": "2.30.0", @@ -56,50 +56,50 @@ "misskey-reversi": "workspace:*", "photoswipe": "5.4.4", "punycode.js": "2.3.1", - "rollup": "4.26.0", - "sanitize-html": "2.13.1", - "sass": "1.79.3", - "shiki": "1.22.2", + "rollup": "4.31.0", + "sanitize-html": "2.14.0", + "sass": "1.83.4", + "shiki": "1.27.2", "strict-event-emitter-types": "2.0.0", "textarea-caret": "3.1.0", - "three": "0.169.0", + "three": "0.172.0", "throttle-debounce": "5.0.2", "tinycolor2": "1.6.0", "tsc-alias": "1.8.10", "tsconfig-paths": "4.2.0", - "typescript": "5.6.3", - "uuid": "10.0.0", + "typescript": "5.7.3", + "uuid": "11.0.5", "v-code-diff": "1.13.1", - "vite": "5.4.11", - "vue": "3.5.12", + "vite": "6.0.7", + "vue": "3.5.13", "vuedraggable": "next" }, "devDependencies": { - "@misskey-dev/summaly": "5.1.0", - "@storybook/addon-actions": "8.4.4", - "@storybook/addon-essentials": "8.4.4", - "@storybook/addon-interactions": "8.4.4", - "@storybook/addon-links": "8.4.4", - "@storybook/addon-mdx-gfm": "8.4.4", - "@storybook/addon-storysource": "8.4.4", - "@storybook/blocks": "8.4.4", - "@storybook/components": "8.4.4", - "@storybook/core-events": "8.4.4", - "@storybook/manager-api": "8.4.4", - "@storybook/preview-api": "8.4.4", - "@storybook/react": "8.4.4", - "@storybook/react-vite": "8.4.4", - "@storybook/test": "8.4.4", - "@storybook/theming": "8.4.4", - "@storybook/types": "8.4.4", - "@storybook/vue3": "8.4.4", - "@storybook/vue3-vite": "8.4.4", + "@misskey-dev/summaly": "5.2.0", + "@storybook/addon-actions": "8.5.0", + "@storybook/addon-essentials": "8.5.0", + "@storybook/addon-interactions": "8.5.0", + "@storybook/addon-links": "8.5.0", + "@storybook/addon-mdx-gfm": "8.5.0", + "@storybook/addon-storysource": "8.5.0", + "@storybook/blocks": "8.5.0", + "@storybook/components": "8.5.0", + "@storybook/core-events": "8.5.0", + "@storybook/manager-api": "8.5.0", + "@storybook/preview-api": "8.5.0", + "@storybook/react": "8.5.0", + "@storybook/react-vite": "8.5.0", + "@storybook/test": "8.5.0", + "@storybook/theming": "8.5.0", + "@storybook/types": "8.5.0", + "@storybook/vue3": "8.5.0", + "@storybook/vue3-vite": "8.5.0", "@testing-library/vue": "8.1.0", - "@types/canvas-confetti": "^1.6.4", + "@types/canvas-confetti": "1.6.4", "@types/estree": "1.0.6", "@types/matter-js": "0.19.7", "@types/micromatch": "4.0.9", - "@types/node": "22.9.0", + "@types/node": "22.10.7", "@types/punycode.js": "npm:@types/punycode@2.1.4", "@types/sanitize-html": "2.13.0", "@types/seedrandom": "3.0.8", @@ -107,34 +107,34 @@ "@types/tinycolor2": "1.4.6", "@types/uuid": "10.0.0", "@types/ws": "8.5.13", - "@typescript-eslint/eslint-plugin": "7.17.0", - "@typescript-eslint/parser": "7.17.0", + "@typescript-eslint/eslint-plugin": "8.20.0", + "@typescript-eslint/parser": "8.20.0", "@vitest/coverage-v8": "1.6.0", - "@vue/runtime-core": "3.5.12", + "@vue/runtime-core": "3.5.13", "acorn": "8.14.0", "cross-env": "7.0.3", - "cypress": "13.15.2", + "cypress": "14.0.0", "eslint-plugin-import": "2.31.0", - "eslint-plugin-vue": "9.31.0", - "fast-glob": "3.3.2", - "happy-dom": "10.0.3", + "eslint-plugin-vue": "9.32.0", + "fast-glob": "3.3.3", + "happy-dom": "16.6.0", "intersection-observer": "0.12.2", "micromatch": "4.0.8", - "msw": "2.6.4", + "msw": "2.7.0", "msw-storybook-addon": "2.0.4", - "nodemon": "3.1.7", - "prettier": "3.3.3", + "nodemon": "3.1.9", + "prettier": "3.4.2", "react": "18.3.1", "react-dom": "18.3.1", "seedrandom": "3.0.5", - "start-server-and-test": "2.0.8", - "storybook": "8.4.4", + "start-server-and-test": "2.0.10", + "storybook": "8.5.0", "storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme", "vite-plugin-turbosnap": "1.0.3", "vitest": "1.6.0", "vitest-fetch-mock": "0.2.2", - "vue-component-type-helpers": "2.1.10", + "vue-component-type-helpers": "2.2.0", "vue-eslint-parser": "9.4.3", - "vue-tsc": "2.1.10" + "vue-tsc": "2.2.0" } } diff --git a/packages/frontend/src/components/MkCaptcha.vue b/packages/frontend/src/components/MkCaptcha.vue index b1167bbac6..134f8226d4 100644 --- a/packages/frontend/src/components/MkCaptcha.vue +++ b/packages/frontend/src/components/MkCaptcha.vue @@ -50,6 +50,8 @@ type CaptchaContainer = { }; declare global { + // Window を拡張してるため、空ではない + // eslint-disable-next-line @typescript-eslint/no-empty-object-type interface Window extends CaptchaContainer { } } diff --git a/packages/frontend/src/components/MkDialog.vue b/packages/frontend/src/components/MkDialog.vue index b095a1cd4a..6c9fa3167a 100644 --- a/packages/frontend/src/components/MkDialog.vue +++ b/packages/frontend/src/components/MkDialog.vue @@ -142,6 +142,7 @@ const okButtonDisabledReason = computed> +type TypesMap = Record>; const emit = defineEmits<{ (ev: 'done', v: { excludeTypes: string[] }): void, diff --git a/packages/frontend/src/components/MkSortOrderEditor.define.ts b/packages/frontend/src/components/MkSortOrderEditor.define.ts index f023b5d72b..e56b93f98a 100644 --- a/packages/frontend/src/components/MkSortOrderEditor.define.ts +++ b/packages/frontend/src/components/MkSortOrderEditor.define.ts @@ -3,9 +3,9 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -export type SortOrderDirection = '+' | '-' +export type SortOrderDirection = '+' | '-'; export type SortOrder = { key: T; direction: SortOrderDirection; -} +}; diff --git a/packages/frontend/src/components/MkSystemWebhookEditor.vue b/packages/frontend/src/components/MkSystemWebhookEditor.vue index 6a03c8acaa..7e92726dcb 100644 --- a/packages/frontend/src/components/MkSystemWebhookEditor.vue +++ b/packages/frontend/src/components/MkSystemWebhookEditor.vue @@ -114,7 +114,7 @@ type EventType = { userCreated: boolean; inactiveModeratorsWarning: boolean; inactiveModeratorsInvitationOnlyChanged: boolean; -} +}; const emit = defineEmits<{ (ev: 'submitted', result: MkSystemWebhookResult): void; diff --git a/packages/frontend/src/components/MkTimeline.vue b/packages/frontend/src/components/MkTimeline.vue index d88ff60a51..7bae240ddd 100644 --- a/packages/frontend/src/components/MkTimeline.vue +++ b/packages/frontend/src/components/MkTimeline.vue @@ -57,15 +57,15 @@ provide('tl_withSensitive', computed(() => props.withSensitive)); provide('inChannel', computed(() => props.src === 'channel')); type TimelineQueryType = { - antennaId?: string, - withRenotes?: boolean, - withReplies?: boolean, - withFiles?: boolean, - visibility?: string, - listId?: string, - channelId?: string, - roleId?: string -} + antennaId?: string, + withRenotes?: boolean, + withReplies?: boolean, + withFiles?: boolean, + visibility?: string, + listId?: string, + channelId?: string, + roleId?: string +}; const prComponent = shallowRef>(); const tlComponent = shallowRef>(); diff --git a/packages/frontend/src/components/MkUserAnnouncementEditDialog.vue b/packages/frontend/src/components/MkUserAnnouncementEditDialog.vue index fe499fabbf..34991fa0dd 100644 --- a/packages/frontend/src/components/MkUserAnnouncementEditDialog.vue +++ b/packages/frontend/src/components/MkUserAnnouncementEditDialog.vue @@ -62,7 +62,7 @@ import MkTextarea from '@/components/MkTextarea.vue'; import MkSwitch from '@/components/MkSwitch.vue'; import MkRadios from '@/components/MkRadios.vue'; -type AdminAnnouncementType = Misskey.entities.AdminAnnouncementsCreateRequest & { id: string; } +type AdminAnnouncementType = Misskey.entities.AdminAnnouncementsCreateRequest & { id: string; }; const props = defineProps<{ user: Misskey.entities.User, diff --git a/packages/frontend/src/components/grid/MkGrid.vue b/packages/frontend/src/components/grid/MkGrid.vue index 84f1f754b2..c89e23c135 100644 --- a/packages/frontend/src/components/grid/MkGrid.vue +++ b/packages/frontend/src/components/grid/MkGrid.vue @@ -79,7 +79,7 @@ type RowHolder = { row: GridRow, cells: GridCell[], origin: DataSource, -} +}; const emit = defineEmits<{ (ev: 'event', event: GridEvent, context: GridContext): void; diff --git a/packages/frontend/src/components/grid/cell-validators.ts b/packages/frontend/src/components/grid/cell-validators.ts index 56d7f0f13d..7310a82c9e 100644 --- a/packages/frontend/src/components/grid/cell-validators.ts +++ b/packages/frontend/src/components/grid/cell-validators.ts @@ -18,25 +18,25 @@ export type ValidatorParams = { export type ValidatorResult = { valid: boolean; message?: string; -} +}; export type GridCellValidator = { name?: string; ignoreViolation?: boolean; validate: (params: ValidatorParams) => ValidatorResult; -} +}; export type ValidateViolation = { valid: boolean; params: ValidatorParams; violations: ValidateViolationItem[]; -} +}; export type ValidateViolationItem = { valid: boolean; validator: GridCellValidator; result: ValidatorResult; -} +}; export function cellValidation(allCells: GridCell[], cell: GridCell, newValue: CellValue): ValidateViolation { const { column, row } = cell; diff --git a/packages/frontend/src/components/grid/cell.ts b/packages/frontend/src/components/grid/cell.ts index 2569c6d50d..d347d05bdb 100644 --- a/packages/frontend/src/components/grid/cell.ts +++ b/packages/frontend/src/components/grid/cell.ts @@ -15,7 +15,7 @@ export type CellValue = string | boolean | number | undefined | null | Array MenuItem[]; export type GridCellSetting = { contextMenuFactory?: GridCellContextMenuFactory; -} +}; export function createCell( column: GridColumn, diff --git a/packages/frontend/src/components/grid/column.ts b/packages/frontend/src/components/grid/column.ts index 6780c8a3a7..6a694b39ec 100644 --- a/packages/frontend/src/components/grid/column.ts +++ b/packages/frontend/src/components/grid/column.ts @@ -40,7 +40,7 @@ export type GridColumn = { setting: GridColumnSetting; width: string; contentSize: Size; -} +}; export function createColumn(setting: GridColumnSetting, index: number): GridColumn { return { diff --git a/packages/frontend/src/components/grid/grid.ts b/packages/frontend/src/components/grid/grid.ts index 03947b7ee3..0428e6493c 100644 --- a/packages/frontend/src/components/grid/grid.ts +++ b/packages/frontend/src/components/grid/grid.ts @@ -21,7 +21,7 @@ export type GridSetting = { export type DataSource = Record; -export type GridState = +export type GridState = ( 'normal' | 'cellSelecting' | 'cellEditing' | @@ -29,19 +29,19 @@ export type GridState = 'colSelecting' | 'rowSelecting' | 'hidden' - ; +); export type Size = { width: number; height: number; -} +}; export type SizeStyle = number | 'auto' | undefined; export type AdditionalStyle = { className?: string; style?: Record; -} +}; export class GridEventEmitter extends EventEmitter<{ 'forceRefreshContentSize': void; diff --git a/packages/frontend/src/components/grid/row.ts b/packages/frontend/src/components/grid/row.ts index f34770312a..42da22193f 100644 --- a/packages/frontend/src/components/grid/row.ts +++ b/packages/frontend/src/components/grid/row.ts @@ -27,7 +27,7 @@ export type GridRowStyleRuleConditionParams = { export type GridRowStyleRule = { condition: (params: GridRowStyleRuleConditionParams) => boolean; applyStyle: AdditionalStyle; -} +}; export type GridRowContextMenuFactory = (row: GridRow, context: GridContext) => MenuItem[]; @@ -40,7 +40,7 @@ export type GridRowSetting = { events?: { delete?: (rows: GridRow[]) => void; } -} +}; export type GridRow = { index: number; @@ -48,7 +48,7 @@ export type GridRow = { using: boolean; setting: GridRowSetting; additionalStyles: AdditionalStyle[]; -} +}; export function createRow(index: number, using: boolean, setting: GridRowSetting): GridRow { return { diff --git a/packages/frontend/src/local-storage.ts b/packages/frontend/src/local-storage.ts index 5b8ba77e01..9c8863f863 100644 --- a/packages/frontend/src/local-storage.ts +++ b/packages/frontend/src/local-storage.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -export type Keys = +export type Keys = ( 'v' | 'lastVersion' | 'instance' | @@ -40,6 +40,7 @@ export type Keys = 'emojis' | // DEPRECATED, stored in indexeddb (13.9.0~); `channelLastReadedAt:${string}` | `idbfallback::${string}` +); // セッション毎に廃棄されるLocalStorage代替(セーフモードなどで使用できそう) //const safeSessionStorage = new Map(); diff --git a/packages/frontend/src/nirax.ts b/packages/frontend/src/nirax.ts index ec4ac9d91a..0374d03c48 100644 --- a/packages/frontend/src/nirax.ts +++ b/packages/frontend/src/nirax.ts @@ -65,7 +65,7 @@ export type RouterEvent = { key: string; }) => void; same: () => void; -} +}; export type Resolved = { route: RouteDef; diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue index b69457e05e..5916efbc52 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue @@ -109,7 +109,7 @@ type GridItem = { publicUrl?: string | null; originalUrl?: string | null; type: string | null; -} +}; function setupGrid(): GridSetting { const $style = useCssModule(); diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.local.register.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.local.register.vue index da85d38a40..d6ee8ea49c 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.local.register.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.local.register.vue @@ -124,7 +124,7 @@ type GridItem = { localOnly: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction: { id: string, name: string }[]; type: string | null; -} +}; function setupGrid(): GridSetting { const $style = useCssModule(); diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue index 21ffe558ca..609d445d79 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue @@ -168,7 +168,7 @@ type GridItem = { url: string; name: string; host: string; -} +}; function setupGrid(): GridSetting { const $style = useCssModule(); diff --git a/packages/frontend/src/pages/search.note.vue b/packages/frontend/src/pages/search.note.vue index 4cb149a58b..14b9f7a741 100644 --- a/packages/frontend/src/pages/search.note.vue +++ b/packages/frontend/src/pages/search.note.vue @@ -93,7 +93,7 @@ const noteSearchableScope = instance.noteSearchableScope ?? 'local'; const hostSelect = ref<'all' | 'local' | 'specified'>('all'); -const setHostSelectWithInput = (after:string|undefined|null, before:string|undefined|null) => { +const setHostSelectWithInput = (after: string | undefined | null, before: string | undefined | null) => { if (before === after) return; if (after === '') hostSelect.value = 'all'; else hostSelect.value = 'specified'; diff --git a/packages/frontend/src/scripts/aiscript/api.ts b/packages/frontend/src/scripts/aiscript/api.ts index e203c51bba..2c0c8c816e 100644 --- a/packages/frontend/src/scripts/aiscript/api.ts +++ b/packages/frontend/src/scripts/aiscript/api.ts @@ -76,7 +76,7 @@ export function createAiScriptEnv(opts: { storageKey: string, token?: string }) // バグがあればundefinedもあり得るため念のため if (typeof token.value !== 'string') throw new Error('invalid token'); } - const actualToken: string|null = token?.value ?? opts.token ?? null; + const actualToken: string | null = token?.value ?? opts.token ?? null; if (param == null) { throw new errors.AiScriptRuntimeError('expected param'); } diff --git a/packages/frontend/src/scripts/file-drop.ts b/packages/frontend/src/scripts/file-drop.ts index c2e863c0dc..4259fe25e9 100644 --- a/packages/frontend/src/scripts/file-drop.ts +++ b/packages/frontend/src/scripts/file-drop.ts @@ -15,7 +15,7 @@ export type DroppedDirectory = { isFile: false; path: string; children: DroppedItem[]; -} +}; export async function extractDroppedItems(ev: DragEvent): Promise { const dropItems = ev.dataTransfer?.items; diff --git a/packages/frontend/src/scripts/format-time-string.ts b/packages/frontend/src/scripts/format-time-string.ts index 35ad77d982..d383f143e1 100644 --- a/packages/frontend/src/scripts/format-time-string.ts +++ b/packages/frontend/src/scripts/format-time-string.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -const defaultLocaleStringFormats: {[index: string]: string} = { +const defaultLocaleStringFormats: { [index: string]: string } = { 'weekday': 'narrow', 'era': 'narrow', 'year': 'numeric', diff --git a/packages/frontend/src/scripts/key-event.ts b/packages/frontend/src/scripts/key-event.ts index a72776d48c..020a6c2174 100644 --- a/packages/frontend/src/scripts/key-event.ts +++ b/packages/frontend/src/scripts/key-event.ts @@ -7,7 +7,7 @@ * {@link KeyboardEvent.code} の値を表す文字列。不足分は適宜追加する * @see https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values */ -export type KeyCode = +export type KeyCode = ( | 'Backspace' | 'Tab' | 'Enter' @@ -94,32 +94,32 @@ export type KeyCode = | 'Quote' | 'Meta' | 'AltGraph' - ; +); /** * 修飾キーを表す文字列。不足分は適宜追加する。 */ -export type KeyModifier = +export type KeyModifier = ( | 'Shift' | 'Control' | 'Alt' | 'Meta' - ; +); /** * 押下されたキー以外の状態を表す文字列。不足分は適宜追加する。 */ -export type KeyState = +export type KeyState = ( | 'composing' | 'repeat' - ; +); export type KeyEventHandler = { modifiers?: KeyModifier[]; states?: KeyState[]; code: KeyCode | 'any'; handler: (event: KeyboardEvent) => void; -} +}; export function handleKeyEvent(event: KeyboardEvent, handlers: KeyEventHandler[]) { function checkModifier(ev: KeyboardEvent, modifiers? : KeyModifier[]) { diff --git a/packages/frontend/src/scripts/stream-mock.ts b/packages/frontend/src/scripts/stream-mock.ts index cb0e607fcb..9b1b368de4 100644 --- a/packages/frontend/src/scripts/stream-mock.ts +++ b/packages/frontend/src/scripts/stream-mock.ts @@ -37,9 +37,9 @@ export class StreamMock extends EventEmitter implements IStream { // do nothing } - public send(typeOrPayload: string): void - public send(typeOrPayload: string, payload: any): void - public send(typeOrPayload: Record | any[]): void + public send(typeOrPayload: string): void; + public send(typeOrPayload: string, payload: any): void; + public send(typeOrPayload: Record | any[]): void; public send(typeOrPayload: string | Record | any[], payload?: any): void { // do nothing } diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index e9650bcf1f..16b900e052 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -56,7 +56,7 @@ export type SoundStore = { fileUrl: string; volume: number; -} +}; export const postFormActions: PostFormAction[] = []; export const userActions: UserAction[] = []; diff --git a/packages/frontend/src/types/menu.ts b/packages/frontend/src/types/menu.ts index 046799536f..7cadef136d 100644 --- a/packages/frontend/src/types/menu.ts +++ b/packages/frontend/src/types/menu.ts @@ -6,7 +6,7 @@ import * as Misskey from 'misskey-js'; import type { ComputedRef, Ref } from 'vue'; -interface MenuRadioOptionsDef extends Record { } +type MenuRadioOptionsDef = Record; export type MenuAction = (ev: MouseEvent) => void; -- cgit v1.2.3-freya