このプロジェクトについて

@rapidrest/coreパッケージは、RapidRESTエコシステムでRESTfulアプリケーションを構築するための共通ユーティリティとコア機能のコレクションです。依存性の注入、キャッシング、認証、メッセージング、オブザーバビリティ、および汎用ヘルパーを含む、他のRapidRESTライブラリやサービスで利用される基礎的なビルディングブロックを提供します。 **オブジェクトのライフサイクルと依存性の注入** このライブラリには、フォルダベースの名前空間規約を使用して実行時にクラスを動的に検出するClassLoaderと、軽量DIコンテナであるObjectFactoryが含まれています。依存関係はデコレータ(@Inject, @Config, @Logger)を介して注入でき、オブジェクトのライフサイクルは@Initおよび@Destroyを通じて管理されます。 **キャッシングとセッションストレージ** 共通のSimpleStoreインターフェースがTTLベースのレコードストレージをサポートしており、2つの実装が提供されています。プロセス内ストレージ用のMemoryStoreと、複数のアプリケーションインスタンス間で状態を共有するためのRedisバックエンドのRedisStoreです。loadMany、saveMany、loadSet、saveSetなどのバルク操作が利用可能です。 **認証とバリデーション** JWTUtilsは、JSON Web Tokenの作成、署名、検証、デコードを提供し、オプションでパスワードまたはキーベースのペイロード暗号化と圧縮が可能です。UserUtilsは、ロール、スコープ、および組織メンバーシップのチェックを提供します。ValidationUtilsは、メール、URL、電話番号、UUID、セマンティックバージョン、IP、日付、JSONなどのバリデータライブラリを提供し、@Validatorデコレータと共に使用できます。 **メッセージングとアラート** MessagingUtilsは、共有テンプレートストアから、メール、SMS、またはSlack経由でテンプレート化されたメッセージ(Handlebars)を送信します。AlertUtilsは、ファイル添付付きの優先度ベースのインシデントアラート(P1~P5)を外部アラートサービスに送信します。NotificationUtilsは、Redis pub/subを介して、個々のユーザーチャネルへのリアルタイムプッシュ通知、または全サブスクライバーへのブロードキャストを配信します。 **オブザーバビリティ** 事前設定済みのWinston Loggerは、ログ行に呼び出し元のクラス名とメソッド名を自動的にタグ付けします。TelemetryUtilsは、アプリケーションのテレメトリイベントを記録し、設定された収集サービスに転送します。 **汎用ユーティリティ** StringUtils、ObjectUtils、FileUtils、OASUtils(OpenAPI仕様のロード、キャッシュ、クエリ用)、CacheUtils(境界付きの破棄キャッシュ)、およびApiErrorクラス(ステータスコードとテンプレートメッセージを持つHTTP対応クラス)が含まれています。 **並行処理** ThreadPoolは、CPU数に合わせて自動的にサイズ調整されるNode.jsワーカースレッドのプールを管理し、型付きメッセージパッシングとワーカークラッシュ時の自動再起動を提供します。 本パッケージはESM専用であり、Node.js >=24.0.0をターゲットとしています。必要なピア依存関係は、axios、redis(RedisStore用)、reflect-metadata、winston、およびwinston-transportです。メッセージングチャネルは、必要に応じてオプションパッケージ(nodemailer、twilio、@slack/bolt)を動的にロードします。