diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7fe94eefa5..63ae5c7397 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,9 @@ on: - packages/misskey-bubble-game/** - packages/misskey-reversi/** - packages/shared/eslint.config.js + - scripts/check-dts*.mjs - .github/workflows/lint.yml + - package.json pull_request: paths: - packages/backend/** @@ -31,7 +33,9 @@ on: - packages/misskey-bubble-game/** - packages/misskey-reversi/** - packages/shared/eslint.config.js + - scripts/check-dts*.mjs - .github/workflows/lint.yml + - package.json jobs: pnpm_install: runs-on: ubuntu-latest @@ -113,3 +117,22 @@ jobs: - run: pnpm i --frozen-lockfile - run: pnpm --filter "${{ matrix.workspace }}^..." run build - run: pnpm --filter ${{ matrix.workspace }} run typecheck + + check-dts: + needs: [pnpm_install] + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v6.0.2 + with: + fetch-depth: 0 + submodules: true + - name: Setup pnpm + uses: pnpm/action-setup@v6.0.3 + - uses: actions/setup-node@v6.4.0 + with: + node-version-file: '.node-version' + cache: 'pnpm' + - run: pnpm i --frozen-lockfile + - run: node --test scripts/check-dts.test.mjs + - run: pnpm check-dts diff --git a/package.json b/package.json index 33925d773a..5dcc85c172 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2026.6.1-alpha.1", + "version": "2026.7.0-alpha.0", "codename": "nasubi", "repository": { "type": "git", @@ -39,7 +39,8 @@ "migrateandstart": "pnpm migrate && pnpm start", "watch": "pnpm dev", "dev": "node scripts/dev.mjs", - "lint": "pnpm --no-bail -r lint", + "check-dts": "node scripts/check-dts.mjs", + "lint": "pnpm --no-bail -r lint && pnpm check-dts", "cy:open": "pnpm cypress open --config-file=cypress.config.ts", "cy:run": "pnpm cypress run", "e2e": "pnpm start-server-and-test start:test http://localhost:61812 cy:run", diff --git a/packages/backend/src/@types/probe-image-size.d.ts b/packages/backend/src/@types/probe-image-size.d.ts index 538836475c..f2efbc082d 100644 --- a/packages/backend/src/@types/probe-image-size.d.ts +++ b/packages/backend/src/@types/probe-image-size.d.ts @@ -26,7 +26,6 @@ declare module 'probe-image-size' { function probeImageSize(src: string | ReadStream, callback: (err: Error | null, result?: ProbeResult) => void): void; function probeImageSize(src: string | ReadStream, options: ProbeOptions, callback: (err: Error | null, result?: ProbeResult) => void): void; - namespace probeImageSize {} // Hack - - export = probeImageSize; + // eslint-disable-next-line import/no-default-export + export { probeImageSize as default }; } diff --git a/packages/backend/test/setup.e2e.ts b/packages/backend/test/setup.e2e.ts index 3141dc15ad..59bc6fcc62 100644 --- a/packages/backend/test/setup.e2e.ts +++ b/packages/backend/test/setup.e2e.ts @@ -7,6 +7,9 @@ import { beforeAll } from 'vitest'; import { initTestDb, sendEnvResetRequest } from './utils.js'; beforeAll(async () => { - await initTestDb(false); + // 前ファイルのNestJSアプリをdispose(env-reset)した後にスキーマをdrop & 再作成する。 + // 逆順だと、前ファイルの最後のテストが投げっぱなしにした非同期処理(cacheServiceのrefresh等)が + // dispose前のdrop中に発火し、Unhandled Rejection (relation does not exist) でクラッシュしうる。 await sendEnvResetRequest(); + await initTestDb(false); }); diff --git a/packages/frontend-builder/tsconfig.json b/packages/frontend-builder/tsconfig.json index ab943fded4..e2d1f7ada0 100644 --- a/packages/frontend-builder/tsconfig.json +++ b/packages/frontend-builder/tsconfig.json @@ -9,6 +9,7 @@ "sourceMap": false, "noEmit": true, "removeComments": true, + "skipLibCheck": true, "resolveJsonModule": true, "strict": true, "strictFunctionTypes": true, diff --git a/packages/frontend-embed/@types/theme.d.ts b/packages/frontend-embed/@types/theme.d.ts index 6ac1037493..6a010889d6 100644 --- a/packages/frontend-embed/@types/theme.d.ts +++ b/packages/frontend-embed/@types/theme.d.ts @@ -4,7 +4,7 @@ */ declare module '@@/themes/*.json5' { - import { Theme } from '@/theme.js'; + import { Theme } from '@@/js/theme.js'; const theme: Theme; diff --git a/packages/frontend-embed/tsconfig.json b/packages/frontend-embed/tsconfig.json index 24fa71de19..d0d7591f23 100644 --- a/packages/frontend-embed/tsconfig.json +++ b/packages/frontend-embed/tsconfig.json @@ -13,6 +13,7 @@ "module": "ES2022", "moduleResolution": "Bundler", "removeComments": false, + "skipLibCheck": true, "noLib": false, "strict": true, "strictNullChecks": true, diff --git a/packages/frontend-shared/tsconfig.json b/packages/frontend-shared/tsconfig.json index c2600dc45e..e038b9ca23 100644 --- a/packages/frontend-shared/tsconfig.json +++ b/packages/frontend-shared/tsconfig.json @@ -9,6 +9,7 @@ "sourceMap": false, "outDir": "./js-built", "removeComments": true, + "skipLibCheck": true, "resolveJsonModule": true, "strict": true, "strictFunctionTypes": true, diff --git a/packages/frontend/@types/theme.d.ts b/packages/frontend/@types/theme.d.ts index 6ac1037493..6a010889d6 100644 --- a/packages/frontend/@types/theme.d.ts +++ b/packages/frontend/@types/theme.d.ts @@ -4,7 +4,7 @@ */ declare module '@@/themes/*.json5' { - import { Theme } from '@/theme.js'; + import { Theme } from '@@/js/theme.js'; const theme: Theme; diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 1cb562fb62..e55a496bfe 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -144,7 +144,7 @@ SPDX-License-Identifier: AGPL-3.0-only -