Blocklet SDKは、より堅牢で保守性の高いコードを書くのに役立つように、厳密に型付けされています。このセクションでは、ユーザーセッション、通知、イベント、ブロックレット設定を扱う際によく遭遇する最も一般的なTypeScriptの型とインターフェースのリファレンスを提供します。これらの型を理解することは、型の安全性を確保し、IDEのオートコンプリート機能を効果的に活用するのに役立ちます。
セッションとユーザーの型
これらの型は、アプリケーション内でのユーザー認証とアイデンティティを管理するための基本です。
SessionUser
SessionUserオブジェクトは、セッションミドルウェアによってrequestオブジェクト(req.userとして)に添付されます。これには、現在ログインしているユーザーに関する重要な情報が含まれています。
SessionUser Type Definition
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」タイプでよく使用されます。
例:画像添付ファイル
{
"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) — ブロックレットに設定された環境変数のリスト。