メインコンテンツまでスキップ

マイグレーションガイド: v1.3.0

このガイドはv1.2.xからv1.3.0へのアップグレードを支援します。バージョン1.3.0はアプリケーションロジックに対する破壊的変更はありませんが、テストコードに影響する依存関係のアップグレードが含まれています。

リリース日

2026-05-21

破壊的変更の概要

変更内容影響必要なアクション
nodemailer v7 → v8エラーコード NoAuthENOAUTH に改名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: nullundefined に置き換え

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: コードの修正を適用

  1. 使用している場合は NoAuthENOAUTH を修正(上記参照)
  2. AppSyncService モックの mockResolvedValue(null)mockResolvedValue(undefined) を修正

Step 3: テストを実行

npm run test:cov

v1.3.0 の新機能

  • nodemailer v8(TLSセキュリティの強化、OAuth2サポート、SMTPコマンドインジェクション対策)
  • フレームワークAPIへの新規追加なし

サポート

移行中に問題が発生した場合:

関連ドキュメント