sync: update from private repo (2336949a)
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
oss-sync
2026-09-17 11:29:31 +00:00
parent 28f74c4e37
commit 57702b4f34
2139 changed files with 321270 additions and 17494 deletions
+46
View File
@@ -0,0 +1,46 @@
{
// 型検査専用の設定 (#1001)。
//
// 検査範囲は「UI の TypeScript 全部」——src に加えて E2E 仕様と、ui/ 直下の
// playwright / vite の設定ファイル。
//
// ビルド用 (tsconfig.json) と分けてある理由: build は Dockerfile の
// `npm run build:ui` から呼ばれる**製品ビルド**の経路にある。そこに E2E を
// 混ぜると、製品イメージのビルドが @playwright/test や better-sqlite3 と
// いった devDependency に依存する。`npm ci --omit=dev` を足す、COPY の順を
// 入れ替える——そういう普通の変更が、テストではなく製品ビルドを壊すように
// なってしまう。検査の網は広く、ビルドの依存は狭く。
"extends": "./tsconfig.json",
"compilerOptions": {
// Node の型を明示で戻す (#1316)。
//
// 引き継ぎ元 (tsconfig.json) は types: [] で親ディレクトリの型定義を断って
// いる。あちらは出荷物だけを見る設定なので断てるが、こちらの検査対象には
// Node の上で動くものが混ざる: ui/ 直下の vite.config.ts (__dirname) と
// playwright の設定 (process.env / process.execPath)、e2e 一式、そして src の
// テスト (node:fs / node:path / global)。断ったままだと、これらが落ちる。
//
// ここは「取り込む型定義を選んで名指しする」のであって、自動取り込みには
// 戻さない。名指しなので、増えるのは node 1 つだけ。参照先を ui 自身の
// node_modules に固定するため、@types/node は ui/package.json の
// devDependencies に入れてある (版は直下と同じ ^20.11.30)。
//
// 版をそろえる意味は #1314 のときとは変わっている。#1314 で踏んだ「直下が 20 の
// ままこちらだけ新しくなると出荷物が落ちる」形は、tsconfig.json が types: [] に
// なった時点で出荷物の側からは消えた。いま残る意味は、画面側の検査とサーバー側の
// Node の版をそろえておくこと。将来 Node を 22 に上げるとき、直下だけ上げた瞬間に
// scripts/ui-typecheck-gate.test.ts の版そろえの見張りが落ちる——意図した動作で、
// 「こちらも一緒に上げろ」の合図。
//
// なお、この設定は「ブラウザに無いものを止める関所」にはならない。e2e が
// better-sqlite3 を読み、その .d.ts の `/// <reference types="node" />` が
// Node の型をプログラム全体へ呼び戻すので、types をどう書いても src で
// Buffer が通る (--explainFiles で確認)。関所は tsconfig.json 側。
"types": ["node"],
"noEmit": true
},
"include": ["src", "e2e", "e2e-auth", "*.ts"],
// exclude は extends で引き継がれる。引き継ぎ元はテストを外しているので、
// ここで書き直さないと src のテストが黙って検査対象から外れる (#1316)。
"exclude": ["node_modules", "dist"]
}