メインコンテンツへスキップ

型定義

Blocklet SDKは、より堅牢で保守性の高いコードを書くのに役立つように、厳密に型付けされています。このセクションでは、ユーザーセッション、通知、イベント、ブロックレット設定を扱う際によく遭遇する最も一般的なTypeScriptの型とインターフェースのリファレンスを提供します。これらの型を理解することは、型の安全性を確保し、IDEのオートコンプリート機能を効果的に活用するのに役立ちます。

セッションとユーザーの型

これらの型は、アプリケーション内でのユーザー認証とアイデンティティを管理するための基本です。

SessionUser

SessionUserオブジェクトは、セッションミドルウェアによってrequestオブジェクト(req.userとして)に添付されます。これには、現在ログインしているユーザーに関する重要な情報が含まれています。

SessionUser Type Definition

typescript
export type SessionUser = {
  did: string;
  role: string | undefined;
  provider: string;
  fullName: string;
  walletOS: string;
  emailVerified?: boolean;
  phoneVerified?: boolean;
  method?: AuthMethod;
  kyc?: number;
  [key: string]: any;
};
  • did string (required) — ユーザーの分散型識別子(DID)。
  • role string | undefined — ユーザーに割り当てられた役割(例:「admin」、「owner」、「guest」)。
  • provider string (required) — ログインに使用された認証プロバイダー(例:「wallet」)。
  • fullName string (required) — ユーザーのフルネーム。
  • walletOS string (required) — ユーザーのウォレットのオペレーティングシステム。
  • emailVerified boolean — ユーザーのメールアドレスが検証済みかどうかを示します。
  • phoneVerified boolean — ユーザーの電話番号が検証済みかどうかを示します。
  • method AuthMethod — 使用された認証方法。一般的な値は「loginToken」、「componentCall」、「signedToken」、「accessKey」です。
  • kyc number — ユーザーのKYCステータスの数値表現。

TUserInfo

TUserInfo型は、ユーザーのアイデンティティ、連絡先情報、ログイン履歴、および関連するセキュリティ資格情報を含む、ユーザープロファイルの包括的なビューを提供します。

  • did string (required) — ユーザーの分散型識別子(DID)。
  • pk string (required) — ユーザーの公開鍵。
  • role string (required) — ユーザーの主要な役割。
  • avatar string (required) — ユーザーのアバター画像のURL。
  • fullName string (required) — ユーザーのフルネーム。
  • email string (required) — ユーザーのメールアドレス。
  • approved boolean (required) — ユーザーアカウントが承認されたかどうかを示します。
  • createdAt number (required) — ユーザーが作成されたときのタイムスタンプ。
  • lastLoginAt number (required) — ユーザーの最終ログイン時のタイムスタンプ。
  • passports TPassport[] (required) — ユーザーに発行されたパスポートの配列。
  • connectedAccounts TConnectedAccount[] (required) — ユーザーのプロファイルにリンクされた外部アカウントのリスト。

通知の型

通知サービスを使用する場合、これらの型を使用してメッセージを構築し、ユーザーに送信します。

TNotification

これは通知を定義するための主要なインターフェースです。通知のコンテンツ、外観、および動作を制御するために必要なすべてのフィールドが含まれています。

  • id string — 通知の一意の識別子。
  • title string — 通知のメインタイトル。
  • body string — 通知の主要なコンテンツまたはメッセージ。
  • type 'notification' | 'connect' | 'feed' | 'hi' | 'passthrough' — 通知のタイプ。これはその処理と表示に影響を与える可能性があります。
  • severity 'normal' | 'success' | 'error' | 'warning' — 重要度レベル。通知を色分けするためによく使用されます。
  • actions TNotificationAction[] — 通知に含めるインタラクティブなアクションボタンの配列。
  • attachments TNotificationAttachment[] — 画像、テキストブロック、リンクなどのリッチコンテンツ添付ファイルの配列。
  • activity TNotificationActivity — コメントやフォローなど、通知をトリガーしたソーシャルアクティビティを記述します。
  • url string — 通知がクリックされたときにナビゲートするURL。

TNotificationAttachment

添付ファイルを使用すると、通知にリッチで構造化されたコンテンツを追加できます。

  • type 'asset' | 'vc' | 'token' | 'text' | 'image' | 'divider' | 'transaction' | 'dapp' | 'link' | 'section' (required) — 表示するコンテンツのタイプ。
  • data any — 添付ファイルのデータペイロード。タイプによって異なります。例えば、「image」タイプにはurlプロパティを持つオブジェクトが含まれます。
  • fields any — 添付ファイル内に表示する追加フィールド。「section」タイプでよく使用されます。

例:画像添付ファイル

json
{
  "type": "image",
  "data": {
    "url": "https://path.to/your/image.png",
    "alt": "Descriptive text for the image"
  }
}

TNotificationAction

アクションは通知に追加できるインタラクティブなボタンで、ユーザーが直接応答できるようにします。

  • name string (required) — アクションの名前。識別子としてよく使用されます。
  • title string — ボタンに表示されるテキスト。指定されていない場合はnameがデフォルトになります。
  • link string — ボタンがクリックされたときにナビゲートするURL。
  • color string — ボタンのテキストの色。
  • bgColor string — ボタンの背景色。

イベントの型

イベントバスを使用する場合、イベントはTEventインターフェースを使用して構造化されます。

TEvent

このインターフェースは、Blockletエコシステム内で発行および消費されるイベントの構造を定義します。

  • id string (required) — イベントインスタンスの一意の識別子。
  • type string (required) — イベントタイプの名前(例:「user」、「post」)。
  • time Date (required) — イベントが発生したときのタイムスタンプ。
  • source unknown (required) — イベントのソースまたは発信元。
  • spec_version string (required) — CloudEvents仕様のバージョン。
  • object_id string — イベントが関連するオブジェクトのID。
  • object_type string — イベントが関連するオブジェクトのタイプ。
  • data object (required) — イベントのペイロード。何が起こったかの詳細が含まれます。

設定と状態の型

これらの型は、ブロックレットの設定オブジェクトと状態情報の構造を定義します。

WindowBlocklet

クライアントサイドでは、window.blockletオブジェクトが実行中のブロックレットに関する重要なコンテキストを提供します。このオブジェクトはWindowBlockletとして型付けされています。

  • did string (required) — ブロックレットインスタンスのDID。
  • appId string (required) — アプリケーションID。
  • appName string (required) — アプリケーションの表示名。
  • appUrl string (required) — アプリケーションの公開URL。
  • webWalletUrl string (required) — 関連付けられたウェブウォレットのURL。
  • isComponent boolean (required) — ブロックレットが別のブロックレットのコンポーネントとして実行されている場合はtrue。
  • prefix string (required) — ブロックレットのルートのURLプレフィックス。
  • theme TTheme (required) — UIの現在のテーマ設定。
  • navigation TNavigationItem[] (required) — アプリケーションメニューのナビゲーション項目の配列。

TBlockletState

この型は、サーバー上のブロックレットインスタンスの完全な状態を表します。これには、メタデータ、ステータス、設定、および他のコンポーネントとの関係が含まれます。

  • meta TBlockletMeta — ブロックレットのメタデータ。そのblocklet.ymlファイルから取得されます。
  • status enum_pb.BlockletStatusMap (required) — ブロックレットの現在の実行ステータス(例:「running」、「stopped」)。
  • port number (required) — ブロックレットが実行されているポート。
  • appDid string (required) — ブロックレットインスタンスのDID。
  • children TComponentState[] (required) — このブロックレットが子を持つ場合のコンポーネント状態の配列。
  • settings TBlockletSettings — ユーザーが設定したブロックレットの設定。
  • environments TConfigEntry[] (required) — ブロックレットに設定された環境変数のリスト。