Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@akashic/amflow

Package Overview
Dependencies
Maintainers
5
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@akashic/amflow

The interface definition of AMFlow, a playlog communication interface

  • 3.3.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
644
decreased by-5.15%
Maintainers
5
Weekly downloads
 
Created
Source

AMFlow

Akashic Message Flow (AMFlow) は Akashic で共通に利用されるデータをやりとりするためのインターフェースを定義したものです。

このリポジトリでは、AMFlowの仕様及び、TypeScriptの型定義を提供します。

AMFlowの実装(以下、AMFlow実装)は、全てのメソッドを実装する必要はなく、用途に応じて必要なメソッドを実装してください。

仕様

エラー

AMFlowのエラーとして以下を定義しています。

エラー名意味通知方法
InvalidStatus不正な状態例外又はコールバック関数
PermissionError必要な権限が無い例外又はコールバック関数
NotImplemented未実装例外又はコールバック関数
Timeoutタイムアウトコールバック関数
BadRequest不正な要求コールバック関数
RuntimeError実行時エラー例外又はコールバック関数
TokenRevokedトークンが失効したコールバック関数

AMFlow実装は、Error#name にエラー名をセットし、例外又はコールバック関数によりアプリケーションにエラーを通知する必要があります。

TokenRevoked エラー等のコールバック関数のみで通知されるエラーは、sendEventsendTick を行った場合に例外は発生せず、ただ呼び出しが無視されます。

open

AMFlowのセッションを開始します。

open(playId: string, callback?: (error?: Error) => void): void;

セッションの確立成否を callback で通知します。

AMFlow実装は、このメソッド呼び出し時、または呼び出し前に必要であれば通信経路の確立を行うことが望まれます。

このメソッドの呼出し後、セッションの開始が必要なメソッドの呼び出しは、open() で指定された playId に関するものとなります。

セッションの開始が必須となるメソッドは以下となります。

  • close
  • authenticate
  • sendTick
  • sendEvent
  • getTickList
  • putStartPoint
  • getStartPoint

また、セッションの開始が必須ではないメソッドは以下となります。

  • onTick
  • onEvent
  • putStorageData
  • getStorageData

close

開始済みのAMFlowのセッションを終了します。このメソッドの呼び出しにはセッションの開始が必須です。

close(callback?: (error?: Error) => void): void;

AMFlow実装は、このメソッドの呼び出し後に open() とセッションの開始が必要なメソッド以外のメソッド呼び出しを受け付けてはなりません。

authenticate

セッションの認証を要求します。このメソッドの呼び出しにはセッションの開始が必須です。

また、このメソッドは複数回呼び出すことが可能で、権限を更新することができます。

authenticate(token: string, callback: (error: Error, permission: Permission) => void): void;

認証要求の結果として、権限情報を表す Permissioncallback で通知します。

AMFlow実装は、この Permission を元にその他のメソッドの動作を制限しなくてはなりません。

詳細は、Permission.ts に定義されています。

sendTick

playlog.Tick を送信します。このメソッドの呼び出しにはセッションの開始が必須です。

sendTick(tick: playlog.Tick): void;

playlog.Tick に含まれる playlog.Event の非永続化フラグ (playlog.EventFlags.Transient) が真の場合、そのイベントは getTickList() から除外されます。

onTick

playlog.Tick の受信ハンドラを登録します。

onTick(handler: (tick: playlog.Tick) => void): void;

このメソッドは複数回呼び出され、複数の受信ハンドラが登録される可能性があります。

offTick

onTick() で登録した受信ハンドラの登録を解除します。

offTick(handler: (event: playlog.Tick) => void): void;

sendEvent

playlog.Event を送信します。このメソッドの呼び出しにはセッションの開始が必須です。

sendEvent(event: playlog.Event): void;

onEvent

playlog.Event の受信ハンドラを登録します。

onEvent(handler: (event: playlog.Event) => void): void;

このメソッドは複数回呼び出され、複数の受信ハンドラが登録される可能性があります。

offEvent

onEvent() で登録した受信ハンドラの登録を解除します。

offEvent(handler: (event: playlog.Event) => void): void;

getTickList

保存された playlog.Tick のリストを playlog.TickList の形式で取得します。このメソッドの呼び出しにはセッションの開始が必須です。

getTickList(opts: GetTickListOptions, callback: (error: Error, tickList: playlog.TickList) => void): void;

opts.begin で指定されたフレーム番号を含むフレームから、opts.end で指定されたフレーム番号を含まないフレームのリストとなります。

opts.excludeEventFlagsplaylog.TickList に含まれる playlog.Event の除外条件を指定することができます。

指定された範囲の playlog.Tick が一つも見つからない場合、tickListnull となります。

putStartPoint

開始地点情報を保存します。このメソッドの呼び出しにはセッションの開始が必須です。

putStartPoint(startPoint: StartPoint, callback: (error: Error) => void): void;

StartPoint は開始地点情報を表すデータで、StartPoint.ts で定義されています。

getStartPoint

開始地点情報を取得します。このメソッドの呼び出しにはセッションの開始が必須です。

オプションとしてフレーム番号を指定しない場合は、0フレーム目に該当する開始地点情報を取得します。

オプションとしてフレーム番号を指定した場合は、フレーム番号以前の直近のフレームに該当する開始地点情報を取得します。

getStartPoint(opts: {frame?: number}, callback: (error: Error, startPoint: StartPoint) => void): void;

開始地点情報が見つからない場合、 StartPointnull となります。

putStorageData

ストレージデータを保存します。

putStorageData(key: playlog.StorageKey, value: playlog.StorageValue, options: any, callback: (err: Error) => void): void;

getStorageData

ストレージデータを取得します。

getStorageData(keys: playlog.StorageReadKey[], callback: (error: Error, values: playlog.StorageData[]) => void): void;

インストール

npm install @akashic/amflow

利用方法

import * as AMFlow from "@akashic/amflow";

開発

ビルド

npm run build

テスト

npm test

ライセンス

本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。

ただし、画像ファイルおよび音声ファイルは CC BY 2.1 JP の元で公開されています。

FAQs

Package last updated on 03 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc