Releases: shiguredo/sora-js-sdk
Releases · shiguredo/sora-js-sdk
2025.1.0
2025.1.0
- [CHANGE] レガシーストリーム
multistream: false
を廃止に伴いmultistream
オプションを削除する - [CHANGE] レガシーストリーム
multistream: false
を廃止する - [ADD]
ConnectionOptions
にskipIceCandidateEvent
を追加する- デフォルトは false
onIceCandidate
をスキップする- @voluntas
- [UPDATE] pnpm 10 系に上げる
- [FIX]
signalingUrlCandidates
がstring[]
で長さが 1 の場合signalingUrlCandidates[0]
を利用してstring
と同じ処理にする - [FIX]
signalingUrlCandidates
が[]
の場合はエラーにする
misc
- [CHANGE] WHIP/WHEP の E2E テストは e2e-test-wish.yml にまとめる
- E2E_TEST_WISH=true でのみ動作するようにする
- @voluntas
- [CHANGE] Chrome/Edge Canary の E2E テストは Nodejs 20 でのみ行うようにする
- Nodejs 20 が EoL が一番近い LTS であるため
- @voluntas
- [CHANGE] Chrome/Edge Canary の E2E テストを e2e-test-canary.yml に移動する
- [UPDATE]
*.spec.ts
を*.test.ts
に変更する - [UPDATE] パッケージ E2E テストに 2024.2.2 / 2024.2.0 / 2021.1.7 を追加する
- [ADD] Node.js 24 をビルドとテストに追加する
- [ADD] 再接続の E2E テストを追加する
- [ADD] WebKit の E2E テストを追加する
- まずは sendrecv のテストのみ
- AV1 には対応していないためテストから外している
- H.264/H.265 は対応している
- self-hosted runner の macOS でテストを行っている
- @voluntas
- [ADD] Firefox/WebKit で E2E テストを実現するため getFakeMedia を追加する
- [ADD] Playwright で Chrome / Edge をインストールして E2E テストできるようにする
- Chrome は stable / beta
- Edge は stable / beta / dev
- @voluntas
- [ADD] Playwright で macOS 上に Chrome と Edge Canary のテストを追加する
- Playwright でのインストールだと Canary は利用できないため Brew でインストールしている
- @voluntas
- [ADD] Chrome で H.265 の E2E テストを追加する
- e2e-test-h265.yml で独立させている
- self-hosted runner の macOS を利用して h265.test.ts のみをテストしている
- @voluntas
- [ADD] simulcast_sendonly / simulcast_recvonly を使った simulcast_rid のテストを追加する
- [ADD] e2e-tests に
WHIP
サイマルキャストのテストを追加する - [ADD] e2e-tests に
jose
を追加する - [ADD] Node.js 23 をビルドとテストに追加する
- Node.js 24 LTS が出たら削除する
- @voluntas
- [ADD] CI に TypeScript next のビルドとテストを追加する
- [ADD] E2E テストに
WHIP
とWHEP
のテストを追加する - [ADD] CI に TypeScript 5.1 から 5.7 までのビルドとテストを追加する
- [ADD] E2E テストに
"type": "close"
のテストを追加する - [ADD] E2E テストに
"type": "switched"
のテストを追加する - [ADD] .markdownlint.yaml ファイルを追加する
- [CHANGE] WHIP/WHEP 関連のテストは NPM パッケージの E2E テストではスキップするようにする
- [CHANGE] examples を削除する
- [CHANGE] Node.js 18 をビルドとテストから落とす
- [CHANGE] examples を e2e-tests に変更する
- 環境変数の Prefix を TEST_ に切り替える
- @voluntas
- [CHANGE] tsconfig.json の moduleResolution を Bundler に変更する
- [CHANGE] tsconfig.json の target と module を ES2022 に変更する
- [CHANGE] examples 以下専用の vite.config.mjs を用意する
- pnpm run dev は vite --config examples/vite.config.mjs を実行するようにする
- @voluntas
- [CHANGE] tests/ 以下を vitest と playwright に分ける
- [CHANGE] pnpm workspace の packages を辞めて src に切り替える
- [CHANGE] canary リリース方法を
canary.py
に変更するrelease_canary.sh
は削除- @voluntas
- [FIX] パッケージの E2E テストを修正する
2024.2.2
2024.2.2
リリース日: 2024-11-29
- [FIX] types を再度 export する
2024.2.1
リリース日: 2024-11-29
- [FIX] リリースミス修正
2024.2.0
リリース日: 2024-11-29
- [ADD] シグナリングのみを利用する
ConnectionMessaging
クラスを追加する - [ADD] シグナリング項目に
forwarding_filters
を追加する - [ADD] DataChannel メッセージング機能のヘッダー項目を追加する
header: [{"type": "sender_connection_id"}]
- @voluntas
- [CHANGE] Sora 側からの切断の SoraCloseEvent の title を
SHUTDOWN
に変更する - [ADD] DataChannel のみのシグナリングを利用している際、 Sora から切断された場合に送られてくる
"type": "close"
メッセージの処理を追加する- WebSocket シグナリングには Close フレームの Code/Reason があるが、DataChannel シグナリングのみでは判断ができないため
"type": "close"
は DataChannel シグナリング経由でのみ送られてくる- @voluntas
- [CHANGE] ForwardingFilter の型を
JSONType
からForwardingFilter
に変更するForwardingFilter
型を追加ForwardingFilterAction
型を追加ForwardingFilterRule
型を追加ForwardingFilterRuleField
型を追加ForwardingFilterRuleKindValue
型を追加ForwardingFilterRuleOperator
型を追加- @voluntas
- [CHANGE] ブラウザでは非推奨となっている
addstream
とremovestream
コールバックを削除する- 廃止宣言から 4 年位経過した
- @voluntas
- [CHANGE] メッセージングを送信する
sendMessage
がvoid
ではなくPromise<void>
を返すようになりました- DataChannel の切断部分のロジックを大幅に書き換えた
- 複数回 Disconnect を呼んだときの挙動に懸念あり
- @voluntas
- [UPDATE] メッセージングの圧縮を
fflate
を利用せず compressionStream API を利用するようにする - [UPDATE] メッセージングの展開を
fflate
を利用せず decompressionStream API を利用するようにする - [CHANGE] E2EE 機能を削除する
- [CHANGE] fflate を依存から削除する
misc
- [ADD] リプレイストラックのサンプルを追加する
- [ADD] メッセージングヘッダーの E2E テストを追加する
- [ADD] npm に登録されている stable SDK の E2E テストを追加する
- [FIX] RTCPeerConnection.close は Promise ではないので await しないようにする
- [CHANGE] ビルドシステムを Vite に変更する
- Rollup 関連を削除
- @voluntas
- [ADD] サンプルに getStats を追加する
- sendrecv / sendonly / recvonly / messaging / simulcast
- dataset に getStats の結果を入れて E2E テストで利用しやすくする
- @voluntas
- [UPDATE] E2E テストに getStats の結果を利用する用にする
- [UPDATE] examples で sora-js-sdk を使うよう
workspace:*
に変更する - [ADD] E2E テストに音声のみ配信サンプルを追加する
2024.2.1
2024.2.1
リリース日: 2024-11-29
- [FIX] リリースミス修正
2024.2.0
リリース日: 2024-11-29
- [ADD] シグナリングのみを利用する
ConnectionMessaging
クラスを追加する - [ADD] シグナリング項目に
forwarding_filters
を追加する - [ADD] DataChannel メッセージング機能のヘッダー項目を追加する
header: [{"type": "sender_connection_id"}]
- @voluntas
- [CHANGE] Sora 側からの切断の SoraCloseEvent の title を
SHUTDOWN
に変更する - [ADD] DataChannel のみのシグナリングを利用している際、 Sora から切断された場合に送られてくる
"type": "close"
メッセージの処理を追加する- WebSocket シグナリングには Close フレームの Code/Reason があるが、DataChannel シグナリングのみでは判断ができないため
"type": "close"
は DataChannel シグナリング経由でのみ送られてくる- @voluntas
- [CHANGE] ForwardingFilter の型を
JSONType
からForwardingFilter
に変更するForwardingFilter
型を追加ForwardingFilterAction
型を追加ForwardingFilterRule
型を追加ForwardingFilterRuleField
型を追加ForwardingFilterRuleKindValue
型を追加ForwardingFilterRuleOperator
型を追加- @voluntas
- [CHANGE] ブラウザでは非推奨となっている
addstream
とremovestream
コールバックを削除する- 廃止宣言から 4 年位経過した
- @voluntas
- [CHANGE] メッセージングを送信する
sendMessage
がvoid
ではなくPromise<void>
を返すようになりました- DataChannel の切断部分のロジックを大幅に書き換えた
- 複数回 Disconnect を呼んだときの挙動に懸念あり
- @voluntas
- [UPDATE] メッセージングの圧縮を
fflate
を利用せず compressionStream API を利用するようにする - [UPDATE] メッセージングの展開を
fflate
を利用せず decompressionStream API を利用するようにする - [CHANGE] E2EE 機能を削除する
- [CHANGE] fflate を依存から削除する
2024.2.0
2024.2.1 をご利用ください。
2024.2.0
リリース日: 2024-11-29
- [ADD] シグナリングのみを利用する
ConnectionMessaging
クラスを追加する - [ADD] シグナリング項目に
forwarding_filters
を追加する - [ADD] DataChannel メッセージング機能のヘッダー項目を追加する
header: [{"type": "sender_connection_id"}]
- @voluntas
- [CHANGE] Sora 側からの切断の SoraCloseEvent の title を
SHUTDOWN
に変更する - [ADD] DataChannel のみのシグナリングを利用している際、 Sora から切断された場合に送られてくる
"type": "close"
メッセージの処理を追加する- WebSocket シグナリングには Close フレームの Code/Reason があるが、DataChannel シグナリングのみでは判断ができないため
"type": "close"
は DataChannel シグナリング経由でのみ送られてくる- @voluntas
- [CHANGE] ForwardingFilter の型を
JSONType
からForwardingFilter
に変更するForwardingFilter
型を追加ForwardingFilterAction
型を追加ForwardingFilterRule
型を追加ForwardingFilterRuleField
型を追加ForwardingFilterRuleKindValue
型を追加ForwardingFilterRuleOperator
型を追加- @voluntas
- [CHANGE] ブラウザでは非推奨となっている
addstream
とremovestream
コールバックを削除する- 廃止宣言から 4 年位経過した
- @voluntas
- [CHANGE] メッセージングを送信する
sendMessage
がvoid
ではなくPromise<void>
を返すようになりました- DataChannel の切断部分のロジックを大幅に書き換えた
- 複数回 Disconnect を呼んだときの挙動に懸念あり
- @voluntas
- [UPDATE] メッセージングの圧縮を
fflate
を利用せず compressionStream API を利用するようにする - [UPDATE] メッセージングの展開を
fflate
を利用せず decompressionStream API を利用するようにする - [CHANGE] E2EE 機能を削除する
- [CHANGE] fflate を依存から削除する
2024.1.2
2024.1.1
2024.1.0
2024-06-07
- [UPDATE] tsconfig.json を統一する
- [UPDATE] CI の pnpm を 9 に上げる
- [UPDATE] Biome 1.8.0 に上げる
- [ADD]
tsc --noEmit
で型チェックを行うようにする - [CHANGE] オーディオコーデック
LYRA
のサポートを削除する - [CHANGE] シグナリングオプションの
multistream
は false の時のみレガシーストリームを使用する- レガシーストリームを使用したい場合は
multistream: false
の指定が必須となる - @tnamao
- レガシーストリームを使用したい場合は
- [CHANGE] stopAudioTrack と stopVideoTrack を非推奨にする
- 代わりに名前を変えただけの removeAudioTrack と removeVideoTrack を用意する
- @voluntas
- [CHANGE] examples を Vite を利用して動かすように変更する
- serve を削除
- Vite を追加
- vite.config.mts を追加
- @voluntas
- [CHANGE] deploy-pages.yml を削除する
- E2E テストで実行できるようになったので
- @voluntas
- [CHANGE] サンプルを class ベースに変更する
- [ADD] サンプル用の .env.template を用意する
- [ADD] tests に Playwright を利用した E2E テストを追加する
- e2ee と messaging は一旦 skip で追加
- @voluntas
- [ADD] .github/workflows/e2e-test.yml を追加する
- Node.js {18,20,22} で E2E テストを実行する
- Chromium で E2E テストを実行する
- @voluntas
- [FIX] examples 実行時に環境変数が設定されていない場合は空文字にする
- 対象項目は SORA_CHANNEL_ID_PREFIX, VITE_SORA_CHANNEL_ID_PREFIX, VITE_ACCESS_TOKEN
- @miosakuma
2023.2.0
2023-12-08
- [ADD] type: offer で受け取ったセッション ID を保持する
- [ADD] 接続オプションとしてビデオコーデック H265 のパラメータの送信を追加
ConnectionOptions
型にvideoH265Params
フィールドを追加- @tnamao
- [CHANGE] fmt / lint を biome へ移行する
- [CHANGE] Node.js 16 系を落とす
- [FIX] stopVideoTrack で例外を握りつぶしていたのを修正する
- [CHANGE] dist/ ディレクトリはリポジトリに含めないようにする
- 含めてもあまりメリットがない割に手間が増えるので削除してしまう
- @sile
- [FIX] ユーザが直接使わない型には @internal を指定して .d.ts に含まれないようにする
- sora-js-sdk 内部で使われている E2EE と Lyra 関連の型が生成される .d.ts ファイルに含まれないようにする
- これによって sora-js-sdk の利用者は tsconfig.json に
skipLibCheck: true
を指定せずともコンパイルができるようになる - @sile
- [CHANGE] vitest 化
- jest をやめる
- @voluntas
- [CHANGE] pnpm 化
- npx 利用をやめる
- @voluntas
2023.2.0-canary.15
2023.2.0-canary.15
2023.1.0
- [ADD] 接続オプションとしてビデオコーデック用パラメータの送信を追加
ConnectionOptions
型にvideoVP9Params
videoH264Params
videoAV1Params
フィールドを追加- @tnamao
- [ADD] GitHub Actions に Node.js 20 を追加する
- [UPDATE] TypeScript を 5 系に上げる
- [UPDATE] 接続オプションで転送フィルターを指定できるようにする
ConnectionOptions
型にforwardingFilter
フィールドを追加- @sile
- [UPDATE] SDP の再利用に対応する
- 主に Lyra 周りで同じ mid の使い回しを考慮していないところがあったのを修正
- @sile
- [UPDATE] オファー SDP のメディアポートに 0 を指定することで古いトランシーバーを解放できるようにする
- Firefox は 0 ポートを指定するとエラーになるので SDK 側で従来の 9 に置換している
- @sile
- [UPDATE] .github 以下に renovate.json を移動する
- [UPDATE] Safari / Mobile Safari で Lyra コーデックを使用可能にする
- これらのブラウザでは WebRTC Encoded Transform を使うようにする
- @sile
- [UPDATE] @shiguredo/lyra-wasm を 2023.1.0 に更新する
- Web Worker 対応と Mobile Safari 対応の取り込み
- @sile
- [CHANGE] .prettierrc を統一する
- [CHANGE] サンプルのチャネル ID を sora に変更する