マイグレーションガイド: v1.3.0
このガイドはv1.2.xからv1.3.0へのアップグレードを支援します。バージョン1.3.0はアプリケーションロジックに対する破壊的変更はありませんが、テストコードに影響する依存関係のアップグレードが含まれています。
リリース日
2026-05-21
破壊的変更の概要
| 変更内容 | 影響 | 必要なアクション |
|---|---|---|
| nodemailer v7 → v8 | エラーコード NoAuth が ENOAUTH に改名 | NoAuth を使用している場合はエラー処理を更新 |
AppSyncService.sendMessage 戻り値型 | Promise<any> から void | Promise<void> に変更 | テストモックを null から undefined に更新 |
移行前チェックリスト
アップグレード前に以下を確認してください:
- コードベースで
'NoAuth'エラーコードの使用を確認 - AppSyncService.sendMessage モックで
mockResolvedValue(null)の使用を確認 - アップグレード後にフルテストスイートを実行
破壊的変更1: nodemailer v8 エラーコード
変更内容
nodemailerがv7からv8にアップグレードされました。認証失敗のエラーコードが改名されました:
// Before (v1.2.x, nodemailer v7)
if (error.code === 'NoAuth') {
// handle authentication error
}
// After (v1.3.0, nodemailer v8)
if (error.code === 'ENOAUTH') {
// handle authentication error
}
移行手順
Step 1: 使用箇所を確認
grep -r "'NoAuth'" --include="*.ts" src/
grep -r '"NoAuth"' --include="*.ts" src/
Step 2: 見つかった場合は置き換え
find src/ -name "*.ts" -exec sed -i '' "s/'NoAuth'/'ENOAUTH'/g" {} \;
検索結果が見つからない場合は、対応不要です。
破壊的変更2: AppSyncService.sendMessage 戻り値型
変更内容
AppSyncService.sendMessage の戻り値型が Promise<any> から void | Promise<void> に変更されました。この変更は mockResolvedValue(null) を使用しているテストコードのみに影響します。
テストへの影響
テストファイルでTypeScriptのコンパイルエラーが発生します:
error TS2345: Argument of type 'null' is not assignable to parameter of type 'void | Promise<void>'.
移行手順
Step 1: 影響を受けるテストモックを確認
grep -r "sendMessage.*mockResolvedValue(null)" --include="*.spec.ts" src/
grep -r "sendMessage.*mockResolvedValue(null)" --include="*.spec.ts" test/
Step 2: null を undefined に置き換え
find src/ test/ -name "*.spec.ts" \
-exec sed -i '' 's/sendMessage\.mockResolvedValue(null)/sendMessage.mockResolvedValue(undefined)/g' {} \;
find src/ test/ -name "*.spec.ts" \
-exec sed -i '' 's/sendMessage: jest\.fn()\.mockResolvedValue(null)/sendMessage: jest.fn().mockResolvedValue(undefined)/g' {} \;
変更前:
// Before (v1.2.x)
const mockAppSyncService = {
sendMessage: jest.fn().mockResolvedValue(null),
};
// インラインオーバーライド
appSyncService.sendMessage.mockResolvedValue(null);
変更後:
// After (v1.3.0)
const mockAppSyncService = {
sendMessage: jest.fn().mockResolvedValue(undefined),
};
// インラインオーバーライド
appSyncService.sendMessage.mockResolvedValue(undefined);
アップグレード手順
Step 1: 依存関係を更新
npm install \
@mbc-cqrs-serverless/core@^1.3.0 \
@mbc-cqrs-serverless/tenant@^1.3.0 \
@mbc-cqrs-serverless/master@^1.3.0 \
@mbc-cqrs-serverless/sequence@^1.3.0 \
@mbc-cqrs-serverless/task@^1.3.0 \
@mbc-cqrs-serverless/cli@^1.3.0
Step 2: コードの修正を適用
- 使用している場合は
NoAuth→ENOAUTHを修正(上記参照) - AppSyncService モックの
mockResolvedValue(null)→mockResolvedValue(undefined)を修正
Step 3: テストを実 行
npm run test:cov
v1.3.0 の新機能
- nodemailer v8(TLSセキュリティの強化、OAuth2サポート、SMTPコマンドインジェクション対策)
- フレームワークAPIへの新規追加なし
サポート
移行中に問題が発生した場合: