Skip to content

Commit 96b4a6d

Browse files
YPandasdependabot[bot]Yuqi Huang
authored
Release v2.4.5 (#651)
* Bump @types/node from 24.9.0 to 24.9.1 (#636) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.0 to 24.9.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.9.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jsdom from 27.0.0 to 27.0.1 (#637) Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.0.0 to 27.0.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](jsdom/jsdom@27.0.0...27.0.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jsdom from 27.0.1 to 27.1.0 (#638) Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.0.1 to 27.1.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](jsdom/jsdom@27.0.1...27.1.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.38.0 to 9.39.0 (#639) Bumps [eslint](https://github.com/eslint/eslint) from 9.38.0 to 9.39.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.38.0...v9.39.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.39.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.9.1 to 24.10.0 (#640) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.9.1 to 24.10.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.10.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.46.2 to 8.46.3 (#641) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.46.2 to 8.46.3. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.46.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.46.2 to 8.46.3 (#642) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.46.2 to 8.46.3. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.3 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix Firefox compatibility by handling null ICE candidates (#632) Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Add periodic logging for WebRTC ingestion mode (#643) * Bump @typescript-eslint/eslint-plugin from 8.45.0 to 8.46.1 (#620) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.45.0 to 8.46.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.7.0 to 24.7.2 (#621) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.7.0 to 24.7.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.7.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.36.0 to 9.37.0 (#622) Bumps [eslint](https://github.com/eslint/eslint) from 9.36.0 to 9.37.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.36.0...v9.37.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.37.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ts-jest from 29.4.4 to 29.4.5 (#623) Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.4 to 29.4.5. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](kulshekhar/ts-jest@v29.4.4...v29.4.5) --- updated-dependencies: - dependency-name: ts-jest dependency-version: 29.4.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webpack from 5.102.0 to 5.102.1 (#626) Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.102.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](webpack/webpack@v5.102.0...v5.102.1) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.102.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.7.2 to 24.9.0 (#625) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.7.2 to 24.9.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.9.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.46.1 to 8.46.2 (#627) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.46.1 to 8.46.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.46.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.37.0 to 9.38.0 (#628) Bumps [eslint](https://github.com/eslint/eslint) from 9.37.0 to 9.38.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.37.0...v9.38.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.38.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.46.1 to 8.46.2 (#629) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.46.1 to 8.46.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: Add periodic connection status logging for WebRTC ingestion mode - Check peer connection state every 5 seconds during 30-second timeout - Log connection progress at 5s intervals to improve debugging visibility * Add periodic logging for WebRTC ingestion mode --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Add method existence check for getSelectedCandidatePair (#633) * Add method existence check for getSelectedCandidatePair * Add fallback method to log selected ICE candidate pairs when getSelectedCandidatePair() is not supported --------- Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Retries for JoinStorageSessionAsViewer mode (#645) * Bump @typescript-eslint/eslint-plugin from 8.45.0 to 8.46.1 (#620) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.45.0 to 8.46.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.1/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.7.0 to 24.7.2 (#621) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.7.0 to 24.7.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.7.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.36.0 to 9.37.0 (#622) Bumps [eslint](https://github.com/eslint/eslint) from 9.36.0 to 9.37.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.36.0...v9.37.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.37.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump ts-jest from 29.4.4 to 29.4.5 (#623) Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.4 to 29.4.5. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](kulshekhar/ts-jest@v29.4.4...v29.4.5) --- updated-dependencies: - dependency-name: ts-jest dependency-version: 29.4.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump webpack from 5.102.0 to 5.102.1 (#626) Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.102.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](webpack/webpack@v5.102.0...v5.102.1) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.102.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.7.2 to 24.9.0 (#625) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.7.2 to 24.9.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.9.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.46.1 to 8.46.2 (#627) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.46.1 to 8.46.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.46.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.37.0 to 9.38.0 (#628) Bumps [eslint](https://github.com/eslint/eslint) from 9.37.0 to 9.38.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.37.0...v9.38.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.38.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.46.1 to 8.46.2 (#629) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.46.1 to 8.46.2. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.2/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * remove role check before ingestion retry happens --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Bump @typescript-eslint/eslint-plugin from 8.46.3 to 8.46.4 (#646) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.46.3 to 8.46.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.46.3 to 8.46.4 (#647) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.46.3 to 8.46.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.46.4 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.39.0 to 9.39.1 (#648) Bumps [eslint](https://github.com/eslint/eslint) from 9.39.0 to 9.39.1. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](eslint/eslint@v9.39.0...v9.39.1) --- updated-dependencies: - dependency-name: eslint dependency-version: 9.39.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * modify logging for better user experience #650 (#650) Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * feat: add view URL parameter for auto-starting master/viewer mode (#649) Add support for ?view=master and ?view=viewer URL parameters to automatically start. Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Bump @typescript-eslint/eslint-plugin from 8.46.4 to 8.47.0 (#655) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.46.4 to 8.47.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.47.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.47.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @types/node from 24.10.0 to 24.10.1 (#656) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.0 to 24.10.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.10.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jsdom from 27.1.0 to 27.2.0 (#658) Bumps [jsdom](https://github.com/jsdom/jsdom) from 27.1.0 to 27.2.0. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md) - [Commits](jsdom/jsdom@27.1.0...27.2.0) --- updated-dependencies: - dependency-name: jsdom dependency-version: 27.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump js-yaml from 3.14.1 to 3.14.2 (#654) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](nodeca/js-yaml@3.14.1...3.14.2) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 3.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump glob from 10.4.5 to 10.5.0 (#660) Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](isaacs/node-glob@v10.4.5...v10.5.0) --- updated-dependencies: - dependency-name: glob dependency-version: 10.5.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: Add persistent client ID storage for viewer reconnection (#659) - Add persistent client ID storage for viewer reconnection Enhance client ID generation with timestamp and browser information for better uniqueness and replace base64 special characters (/, +, =) with AWS-compliant alternatives (_, -, removed) to meet X-Amz-ClientId pattern requirements Co-authored-by: Yuqi Huang <yuuqih@amazon.com> * Bump webpack from 5.102.1 to 5.103.0 (#662) Bumps [webpack](https://github.com/webpack/webpack) from 5.102.1 to 5.103.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](webpack/webpack@v5.102.1...v5.103.0) --- updated-dependencies: - dependency-name: webpack dependency-version: 5.103.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.47.0 to 8.48.0 (#663) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.47.0 to 8.48.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.48.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.47.0 to 8.48.0 (#664) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.47.0 to 8.48.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.48.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.48.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuqi Huang <yuuqih@amazon.com>
1 parent 05dd2be commit 96b4a6d

File tree

5 files changed

+365
-211
lines changed

5 files changed

+365
-211
lines changed

examples/answerer.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class Answerer {
9797
// `candidate` will be the empty string if the event indicates that there are no further candidates
9898
// to come in this generation, or null if all ICE gathering on all transports is complete.
9999
// https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/icecandidate_event
100-
if (candidate) {
100+
if (candidate && candidate.candidate) {
101101
console.log(this._loggingPrefix, 'Generated ICE candidate for', this._remoteClientId || 'remote');
102102
console.debug(this._loggingPrefix, 'ICE candidate:', candidate);
103103

@@ -110,6 +110,8 @@ class Answerer {
110110
console.log(this._loggingPrefix, 'Not sending ICE candidate to', this._remoteClientId || 'remote');
111111
}
112112
}
113+
} else if (candidate && !candidate.candidate) {
114+
//firefox special case, candidate with null candidate field
113115
} else {
114116
console.log(this._loggingPrefix, 'All ICE candidates have been generated for', this._remoteClientId || 'remote');
115117

examples/app.js

Lines changed: 63 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
let ROLE = null; // Possible values: 'MASTER', 'VIEWER', null
22
const LOG_LEVELS = ['debug', 'info', 'warn', 'error'];
33
let LOG_LEVEL = 'info'; // Possible values: any value of LOG_LEVELS
4-
let randomClientId = getRandomClientId(); // Holder for randomly-generated client id
54
let channelHelper = null; // Holder for channelHelper
65

76
// All supported codecs
@@ -75,17 +74,30 @@ function configureLogging() {
7574
}
7675

7776
function getRandomClientId() {
78-
return Math.random()
79-
.toString(36)
80-
.substring(2)
81-
.toUpperCase();
77+
const timestamp = Date.now().toString(36);
78+
const random = Math.random().toString(36).substring(2);
79+
const uaBase64 = btoa(navigator.userAgent).replace(/\//g, '_').replace(/\+/g, '-').replace(/=/g, '');
80+
return `${timestamp}-${random}-${uaBase64}`;
81+
}
82+
83+
function getTabScopedClientID() {
84+
try {
85+
let stored_ID = sessionStorage.getItem('viewer-client-id');
86+
if(!stored_ID) {
87+
stored_ID = getRandomClientId(); //if no client ID acquired before
88+
sessionStorage.setItem('viewer-client-id', stored_ID);
89+
}
90+
return stored_ID;
91+
} catch (e) {
92+
return getRandomClientId();
93+
}
8294
}
8395

8496
function getFormValues() {
8597
return {
8698
region: $('#region').val(),
8799
channelName: $('#channelName').val(),
88-
clientId: $('#clientId').val() || randomClientId,
100+
clientId: $('#clientId').val() || getTabScopedClientID(),
89101
sendVideo: $('#sendVideo').is(':checked'),
90102
sendAudio: $('#sendAudio').is(':checked'),
91103
streamName: $('#streamName').val(),
@@ -236,7 +248,6 @@ $('#viewer-button').click(async () => {
236248
if (!form[0].checkValidity()) {
237249
return;
238250
}
239-
randomClientId = getRandomClientId();
240251
const formValues = getFormValues();
241252

242253
if (formValues.autoDetermineMediaIngestMode) {
@@ -464,11 +475,44 @@ async function printPeerConnectionStateInfo(event, logPrefix, remoteClientId) {
464475
const trackType = sender.track?.kind;
465476
if (sender.transport) {
466477
const iceTransport = sender.transport.iceTransport;
467-
if (iceTransport) {
478+
if (iceTransport && typeof iceTransport.getSelectedCandidatePair === 'function') {
468479
const logSelectedCandidate = () =>
469480
console.debug(`Chosen candidate pair (${trackType || 'unknown'}):`, iceTransport.getSelectedCandidatePair());
470481
iceTransport.onselectedcandidatepairchange = logSelectedCandidate;
471482
logSelectedCandidate();
483+
} else {
484+
// Find nominated candidate pair
485+
const nominatedPair = Array.from(stats.values()).find(report =>
486+
report.type === 'candidate-pair' &&
487+
report.nominated === true
488+
);
489+
490+
if (nominatedPair) {
491+
// Get local and remote candidate detailsl;
492+
const localCandidate = stats.get(nominatedPair.localCandidateId);
493+
const remoteCandidate = stats.get(nominatedPair.remoteCandidateId);
494+
495+
if (localCandidate && remoteCandidate) {
496+
console.debug(`Chosen candidate pair (${trackType || 'unknown'}):`, {
497+
local: {
498+
id: localCandidate.id,
499+
address: localCandidate.address,
500+
port: localCandidate.port,
501+
type: localCandidate.candidateType,
502+
protocol: localCandidate.protocol,
503+
priority: localCandidate.priority
504+
},
505+
remote: {
506+
id: remoteCandidate.id,
507+
address: remoteCandidate.address,
508+
port: remoteCandidate.port,
509+
type: remoteCandidate.candidateType,
510+
protocol: remoteCandidate.protocol,
511+
priority: remoteCandidate.priority
512+
}
513+
});
514+
}
515+
}
472516
}
473517
} else {
474518
console.error('Failed to fetch the candidate pair!');
@@ -479,9 +523,7 @@ async function printPeerConnectionStateInfo(event, logPrefix, remoteClientId) {
479523
removeViewerTrackFromMaster(remoteClientId);
480524
}
481525
console.error(logPrefix, `Connection to ${remoteClientId || 'peer'} failed!`);
482-
if (ROLE === 'MASTER') {
483-
onPeerConnectionFailed(remoteClientId);
484-
}
526+
onPeerConnectionFailed(remoteClientId);
485527
}
486528
}
487529

@@ -978,6 +1020,16 @@ $('#codec-filter-toggle').on('change', (event) => {
9781020

9791021
$(document).ready(() => {
9801022
loadCodecPreferences();
1023+
1024+
// click start based on the url params
1025+
if (urlParams.has('view')) {
1026+
const viewMode = urlParams.get('view');
1027+
if (viewMode === 'master') {
1028+
$('#master-button').click();
1029+
} else if (viewMode === 'viewer') {
1030+
$('#viewer-button').click();
1031+
}
1032+
}
9811033
});
9821034

9831035
/**

examples/master.js

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -228,18 +228,27 @@ registerMasterSignalingClientCallbacks = (signalingClient, formValues, onStatsRe
228228
// If in WebRTC ingestion mode, retry if no connection was established within 30 seconds.
229229
// Note: This is an interim setting - the viewer application will retry after 30 seconds if the connection through the WebRTC Ingestion mode is not successful.
230230
if (master.channelHelper.isIngestionEnabled()) {
231-
setTimeout(function () {
232-
// We check that it's not failed because if the state transitioned to failed,
233-
// the state change callback would handle this already
234-
if (
235-
answerer.getPeerConnection().connectionState !== 'connected' &&
236-
answerer.getPeerConnection().connectionState !== 'failed' &&
237-
answerer.getPeerConnection().connectionState !== 'closed'
238-
) {
239-
console.error(`[${role}] Connection was not successful - Will retry after 30 seconds.`);
240-
onPeerConnectionFailed(remoteClientId, false, false);
241-
}
242-
}, 30000);
231+
const CHECK_INTERVAL_SECONDS = 5;
232+
const RETRY_TIMEOUT_SECONDS = 30;
233+
234+
for (let i = CHECK_INTERVAL_SECONDS; i <= RETRY_TIMEOUT_SECONDS; i += CHECK_INTERVAL_SECONDS) {
235+
setTimeout(function () {
236+
// check the state each 5 seconds
237+
//enter retry if still connecting after 30 seconds
238+
if (
239+
answerer.getPeerConnection().connectionState !== 'connected' &&
240+
answerer.getPeerConnection().connectionState !== 'failed' &&
241+
answerer.getPeerConnection().connectionState !== 'closed'
242+
) {
243+
if (i < RETRY_TIMEOUT_SECONDS) {
244+
console.log(`[${role}] Waiting for connection, time out in ${RETRY_TIMEOUT_SECONDS - i} seconds.`);
245+
} else {
246+
console.error(`[${role}] Connection failed after ${RETRY_TIMEOUT_SECONDS} seconds, will enter retry.`);
247+
onPeerConnectionFailed(remoteClientId, false);
248+
}
249+
}
250+
}, i * 1000);
251+
}
243252
}
244253
});
245254

@@ -275,17 +284,13 @@ registerMasterSignalingClientCallbacks = (signalingClient, formValues, onStatsRe
275284
}
276285
};
277286

278-
function onPeerConnectionFailed(remoteClientId, printLostConnectionLog = true, hasConnectedAlready = true) {
287+
function onPeerConnectionFailed(remoteClientId, printLostConnectionLog = true) {
279288
const role = ROLE;
280289
if (master?.channelHelper.isIngestionEnabled()) {
281290
if (printLostConnectionLog) {
282291
console.warn(`[${ROLE}] Lost connection to the storage session.`);
283292
}
284293
master?.connectionFailures?.push(new Date().getTime());
285-
if (hasConnectedAlready && role === 'VIEWER') {
286-
$('#stop-master-button').click();
287-
return;
288-
}
289294
if (shouldStopRetryingJoinStorageSession()) {
290295
console.error(
291296
`[${role}] Stopping the application after`,

examples/viewer.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,7 @@ async function startViewer(localView, remoteView, formValues, onStatsReport, rem
769769

770770
// Send any ICE candidates to the other peer
771771
viewer.peerConnection.addEventListener('icecandidate', ({ candidate }) => {
772-
if (candidate) {
772+
if (candidate && candidate.candidate) {
773773
console.log('[VIEWER] Generated ICE candidate');
774774
console.debug('ICE candidate:', candidate);
775775

@@ -782,6 +782,8 @@ async function startViewer(localView, remoteView, formValues, onStatsReport, rem
782782
console.log('[VIEWER] Not sending ICE candidate');
783783
}
784784
}
785+
} else if (candidate && !candidate.candidate) {
786+
//firefox special case, candidate with null candidate field
785787
} else {
786788
console.log('[VIEWER] All ICE candidates have been generated');
787789

0 commit comments

Comments
 (0)