From 1f1796d0ecd72bb895ebb6ec91f8a2240bd327a7 Mon Sep 17 00:00:00 2001 From: Kaustubh Kumar Date: Thu, 14 Nov 2024 13:25:16 +0530 Subject: [PATCH 01/11] feat: internal method to check if recording should continue (#3371) --- packages/hms-video-store/src/IHMSActions.ts | 7 +++++++ .../src/reactive-store/HMSSDKActions.ts | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/packages/hms-video-store/src/IHMSActions.ts b/packages/hms-video-store/src/IHMSActions.ts index 01cc905201..bcfe6dbdbc 100644 --- a/packages/hms-video-store/src/IHMSActions.ts +++ b/packages/hms-video-store/src/IHMSActions.ts @@ -40,6 +40,7 @@ import { IHMSSessionStoreActions, } from './schema'; import { HMSRoleChangeRequest } from './selectors'; +import { HMSStats } from './webrtc-stats'; /** * The below interface defines our SDK API Surface for taking room related actions. @@ -587,4 +588,10 @@ export interface IHMSActions> = (fn, name) => { return this.store.namedSetState(fn, name); }; + + /** + * @internal + * This will be used by beam to check if the recording should continue, it will pass __hms.stats + * It will poll at a fixed interval and start an exit timer if the method fails twice consecutively + * The exit timer is stopped if the method returns true before that + * @param hmsStats + */ + hasActiveElements(hmsStats: HMSStats): boolean { + const isWhiteboardPresent = Object.keys(this.store.getState().whiteboards).length > 0; + const isQuizOrPollPresent = Object.keys(this.store.getState().polls).length > 0; + const peerCount = Object.keys(this.store.getState().peers).length > 0; + const remoteTracks = hmsStats.getState().remoteTrackStats; + return ( + peerCount && + (isWhiteboardPresent || + isQuizOrPollPresent || + Object.values(remoteTracks).some(track => track && typeof track.bitrate === 'number' && track.bitrate > 0)) + ); + } } From 8e5a73468ed4f51cd718bb22096d2522efa637c2 Mon Sep 17 00:00:00 2001 From: Kaustubh Kumar Date: Fri, 15 Nov 2024 11:36:46 +0530 Subject: [PATCH 02/11] fix: animate resize to prevent flickers (#3303) --- packages/roomkit-react/package.json | 1 + .../Prebuilt/components/VideoLayouts/Grid.tsx | 61 ++++++++++--------- .../src/VideoTile/StyledVideoTile.tsx | 21 +++++-- yarn.lock | 7 +++ 4 files changed, 55 insertions(+), 35 deletions(-) diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json index a816c1bea7..5c6e1c1253 100644 --- a/packages/roomkit-react/package.json +++ b/packages/roomkit-react/package.json @@ -102,6 +102,7 @@ "@stitches/react": "1.3.1-1", "emoji-mart": "^5.2.2", "eventemitter2": "^6.4.9", + "framer-motion":"^11.11.0", "lodash.merge": "^4.6.2", "qrcode.react": "^3.1.0", "react-dom": "^18.2.0", diff --git a/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx b/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx index 751d5eed8b..dfd47f9b0c 100644 --- a/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx +++ b/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { AnimatePresence } from 'framer-motion'; import { TrackWithPeerAndDimensions } from '@100mslive/react-sdk'; import { Box } from '../../../Layout'; // @ts-ignore: No implicit Any @@ -9,35 +10,37 @@ export const Grid = React.forwardRef { const videoTileProps = useVideoTileContext(); return ( - - {tiles?.map(tile => { - return ( - - ); - })} - + + + {tiles?.map(tile => { + return ( + + ); + })} + + ); }, ); diff --git a/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx b/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx index a78fa6dbb2..731e33ec8b 100644 --- a/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx +++ b/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx @@ -1,15 +1,24 @@ +import { motion } from 'framer-motion'; import { Box } from '../Layout'; import { styled } from '../Theme'; import { flexCenter } from '../utils'; export const Root = styled('div', { padding: '0.75rem', - // show videotile context menu on hover - // [`&:hover .tile-menu`]: { - // display: 'inline-block', - // }, }); +const MotionRoot = motion(Root); +MotionRoot.defaultProps = { + layout: true, + transition: { + type: 'spring', + stiffness: 300, + damping: 30, + mass: 1, + duration: 0.15, + }, +}; + const Container = styled('div', { width: '100%', height: '100%', @@ -128,7 +137,7 @@ const AvatarContainer = styled(Box, { }); interface VideoTileType { - Root: typeof Root; + Root: typeof MotionRoot; Container: typeof Container; Overlay: typeof Overlay; Info: typeof Info; @@ -139,7 +148,7 @@ interface VideoTileType { } export const StyledVideoTile: VideoTileType = { - Root, + Root: MotionRoot, Container, Overlay, Info, diff --git a/yarn.lock b/yarn.lock index a4ab58ed6b..e5e417a61a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10433,6 +10433,13 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +framer-motion@^11.11.0: + version "11.11.9" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.11.9.tgz#a60ddf5abbd924812df923068628537a5c6ad8b9" + integrity sha512-XpdZseuCrZehdHGuW22zZt3SF5g6AHJHJi7JwQIigOznW4Jg1n0oGPMJQheMaKLC+0rp5gxUKMRYI6ytd3q4RQ== + dependencies: + tslib "^2.4.0" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" From 9e526fbf66c3e63221e5cd323522d66673e04e6d Mon Sep 17 00:00:00 2001 From: Kaustubh Kumar Date: Mon, 18 Nov 2024 14:29:11 +0530 Subject: [PATCH 03/11] fix: remove autohide controls for mweb (#3355) --- .../Prebuilt/components/ConferenceScreen.tsx | 42 ++++--------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/packages/roomkit-react/src/Prebuilt/components/ConferenceScreen.tsx b/packages/roomkit-react/src/Prebuilt/components/ConferenceScreen.tsx index 428c44470c..3061a10157 100644 --- a/packages/roomkit-react/src/Prebuilt/components/ConferenceScreen.tsx +++ b/packages/roomkit-react/src/Prebuilt/components/ConferenceScreen.tsx @@ -1,9 +1,8 @@ -import React, { useEffect, useRef, useState } from 'react'; +import React, { useEffect, useRef } from 'react'; import { DefaultConferencingScreen_Elements } from '@100mslive/types-prebuilt'; import { v4 as uuid } from 'uuid'; import { HMSRoomState, - selectAppData, selectIsConnectedToRoom, selectRoomState, useAwayNotifications, @@ -34,7 +33,7 @@ import { // @ts-ignore: No implicit Any import { useAuthToken, useSetAppDataByKey } from './AppData/useUISettings'; import { useLandscapeHLSStream, useMobileHLSStream } from '../common/hooks'; -import { APP_DATA, isAndroid, isIOS, isIPadOS } from '../common/constants'; +import { APP_DATA } from '../common/constants'; export const ConferenceScreen = () => { const { userName, endpoints, onJoin: onJoinFunc } = useHMSPrebuiltContext(); @@ -43,13 +42,11 @@ export const ConferenceScreen = () => { const roomState = useHMSStore(selectRoomState); const isConnectedToRoom = useHMSStore(selectIsConnectedToRoom); const hmsActions = useHMSActions(); - const [hideControls, setHideControls] = useState(false); - const dropdownList = useHMSStore(selectAppData(APP_DATA.dropdownList)); + const authTokenInAppData = useAuthToken(); const headerRef = useRef(null); const footerRef = useRef(null); - const isMobileDevice = isAndroid || isIOS || isIPadOS; - const dropdownListRef = useRef(); + const [isHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted); const { requestPermission } = useAwayNotifications(); @@ -60,28 +57,6 @@ export const ConferenceScreen = () => { const isLandscapeHLSStream = useLandscapeHLSStream(); const isMwebHLSStream = isMobileHLSStream || isLandscapeHLSStream; - const toggleControls = () => { - if (dropdownListRef.current?.length === 0 && isMobileDevice && !isMwebHLSStream) { - setHideControls(value => !value); - } - }; - - useEffect(() => { - let timeout: undefined | ReturnType; - dropdownListRef.current = dropdownList || []; - if (dropdownListRef.current && dropdownListRef.current.length === 0) { - clearTimeout(timeout); - timeout = setTimeout(() => { - if (dropdownListRef.current && dropdownListRef.current.length === 0) { - setHideControls(isMobileDevice); - } - }, 5000); - } - return () => { - clearTimeout(timeout); - }; - }, [dropdownList, hideControls, isMobileDevice]); - useEffect(() => { if ( authTokenInAppData && @@ -128,8 +103,6 @@ export const ConferenceScreen = () => { return ; } - const hideControlsForStreaming = isMwebHLSStream ? true : hideControls; - return ( <> {isHLSStarted ? ( @@ -144,7 +117,7 @@ export const ConferenceScreen = () => { css={{ h: '$18', transition: 'margin 0.3s ease-in-out', - marginTop: hideControlsForStreaming ? `-${headerRef.current?.clientHeight}px` : 'none', + marginTop: isMwebHLSStream ? `-${headerRef.current?.clientHeight}px` : 'none', '@md': { h: '$17', }, @@ -170,13 +143,12 @@ export const ConferenceScreen = () => { }} id="conferencing" data-testid="conferencing" - onClick={toggleControls} > {screenProps.elements ? ( ) : null} @@ -188,7 +160,7 @@ export const ConferenceScreen = () => { maxHeight: '$24', transition: 'margin 0.3s ease-in-out', bg: '$background_dim', - marginBottom: hideControlsForStreaming ? `-${footerRef.current?.clientHeight}px` : undefined, + marginBottom: isMwebHLSStream ? `-${footerRef.current?.clientHeight}px` : undefined, '@md': { maxHeight: 'unset', bg: screenProps.screenType === 'hls_live_streaming' ? 'transparent' : '$background_dim', From f7a163a136f267f0749b3b5c5021c6a151923abe Mon Sep 17 00:00:00 2001 From: ygit Date: Tue, 19 Nov 2024 11:57:56 +0530 Subject: [PATCH 04/11] docs: updated ReadMe (#3375) --- .github/CODEOWNERS | 1 - README.md | 36 +-- packages/hls-player/README.md | 346 +++++++++++++++++++++- packages/hls-player/package.json | 10 +- packages/hms-virtual-background/README.md | 239 ++++++++++++++- packages/hms-whiteboard/README.md | 120 ++++++++ packages/hms-whiteboard/package.json | 11 +- 7 files changed, 720 insertions(+), 43 deletions(-) create mode 100644 packages/hms-whiteboard/README.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 674766d7ca..ab2d4a1de5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,4 @@ @raviteja83 @KaustubhKumar05 -@amar-1995 @hdz-666 @ygit \ No newline at end of file diff --git a/README.md b/README.md index 07fd77dc2a..a34d228c3c 100644 --- a/README.md +++ b/README.md @@ -5,18 +5,20 @@ This monorepo contains all the packages required to integrate 100ms on the web. ## What is included? The packages folder contains all the SDK's of 100ms. Here is a brief overview of them: + | Directory | Package | Description | Link | |--|--|--|--| | `hms-video-store` | `@100mslive/hms-video-store` | This package contains the core SDK and the reactive store parts. | [README](./packages/hms-video-store) | -| `react-icons` | `@100mslive/react-icons` | This contains all the icons used in the 100ms prebuilt. | [README](./packages/react-icons) | | `react-sdk` | `@100mslive/react-sdk` | This contains the base React Hooks and some commonly used functionalities as React Hooks. | [README](./packages/react-sdk) | | `roomkit-react` | `@100mslive/roomkit-react`| This contains the React components used in the Prebuilt and the Prebuilt component itself. | [README](./packages/roomkit-react) | -| `roomkit-web` | `@100mslive/roomkit-web` | This is a web component port of the `HMSPrebuilt` component from the `roomkit-react`. If you are not using React,this can be used as a web component. | [README](./packages/roomkit-web)| +| `roomkit-web` | `@100mslive/roomkit-web` | This is a web component port of the `HMSPrebuilt` component from the `roomkit-react`. If you are not using React, this can be used as a web component. | [README](./packages/roomkit-web)| +| `hls-player` | `@100mslive/hls-player` | This is a HLS player offered by 100ms that can be used to play live video streams. | [README](./packages/hls-player) | +| `hms-whiteboard` | `@100mslive/hms-whiteboard` | This contains APIs for integrating Whiteboard collaboration into your conferencing sessions. | [README](./packages/hms-whiteboard) | +| `hms-virtual-background` | `@100mslive/hms-virtual-background` | This contains the Virtual Background plugin provided by 100ms. | [README](./packages/hms-virtual-background) | +| `react-icons` | `@100mslive/react-icons` | This contains all the icons used in the 100ms prebuilt. | [README](./packages/react-icons) | For full documentation, visit [100ms.live/docs](https://www.100ms.live/docs) -
- ## How to integrate? The 100ms SDK gives you everything you need to build scalable, high-quality live video and audio experiences. @@ -26,19 +28,17 @@ The 100ms SDK gives you everything you need to build scalable, high-quality live 1. ## Custom UI - 100ms SDKs are powerful and highly extensible to build and support all custom experiences and UI. - **Related packages include:** `@100mslive/react-sdk`, `@100mslive/hms-video-store` and `@100mslive/react-icons`. - - Get started with integrating the SDK using the [How to Guide](https://www.100ms.live/docs/javascript/v2/how-to-guides/install-the-sdk/integration).
+ - Get started with integrating the SDK using the [How to Guide](https://www.100ms.live/docs/javascript/v2/how-to-guides/install-the-sdk/integration). > Navigate to `react-sdk` for the base React Hooks and some commonly used functionalities by clicking [here](./packages/react-sdk). 2. ## 100ms Prebuilt - 100ms Prebuilt is a high-level abstraction with no-code customization that enables you to embed video conferencing and/or live streaming UI—with a few lines of code. - **Related packages include:** `roomkit-react` and `roomkit-web`. - - Get started with 100ms Prebuilt using the [Prebuilt Quickstart for Web](https://www.100ms.live/docs/javascript/v2/quickstart/prebuilt-quickstart).
+ - Get started with 100ms Prebuilt using the [Prebuilt Quickstart for Web](https://www.100ms.live/docs/javascript/v2/quickstart/prebuilt-quickstart). > Navigate to `roomkit-react` for the React components used in Prebuilt and the Prebuilt component itself by clicking [here](./packages/roomkit-react). -
- ![Banner](prebuilt-banner.png) ### 100ms Prebuilt Cross Platform Support @@ -51,9 +51,6 @@ The 100ms SDK gives you everything you need to build scalable, high-quality live | Flutter | [100ms-flutter](https://github.com/100mslive/100ms-flutter/tree/main/packages/hms_room_kit) | [Link](https://www.100ms.live/docs/flutter/v2/quickstart/prebuilt) | [hms_room_kit/example](https://github.com/100mslive/100ms-flutter/tree/main/packages/hms_room_kit/example) | | React Native | [100ms-react-native](https://github.com/100mslive/100ms-react-native/tree/main/packages/react-native-room-kit) | [Link](https://www.100ms.live/docs/react-native/v2/quickstart/prebuilt) | [react-native-room-kit/example](https://github.com/100mslive/100ms-react-native/tree/main/packages/react-native-room-kit/example) | -
-
- ## Setup ### Local Setup @@ -62,7 +59,7 @@ The 100ms SDK gives you everything you need to build scalable, high-quality live if you are using a different version in other projects, use [nvm](https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating) to manage node versions. -``` +```bash git clone https://github.com/100mslive/web-sdks.git cd web-sdks yarn install @@ -71,7 +68,7 @@ yarn build ### Running Sample Prebuilt -``` +```bash cd examples/prebuilt-react-integration yarn dev ``` @@ -86,9 +83,7 @@ Run `yarn start` by navigating to the package you are making changes to, the cha For example, if you are making changes in roomkit-react(prebuilt), run `yarn start` in that package. The sample app should auto reload. -> Note: Make sure `yarn build` is run atleast once before using `yarn start` - -
+> Note: Make sure `yarn build` is run atleast once before using `yarn start`. ### Deploying Your Changes @@ -104,17 +99,14 @@ For reference: ![Project Settings](./project-settings.png) -
Once the app has been deployed, you can append the room code at the end of the deployment URL to preview your changes -
- ### Maintaining A Forked Version -Tthe following command will build the roomkit-react package and generate a .tgz file: +The following command will build the roomkit-react package and generate a .tgz file: -``` +```bash yarn && yarn build; cd packages/roomkit-react; yarn pack @@ -142,8 +134,6 @@ import { HMSPrebuilt } from '@100mslive/roomkit-react'; We welcome external contributors or anyone excited to help improve 100ms SDKs. If you'd like to get involved, check out our [contribution guide](./DEVELOPER.MD), and get started exploring the codebase. -
- ## Community & Support - [GitHub Issues](https://github.com/100mslive/web-sdks/issues) - Submit any bugs or errors you encounter using the Web SDKs. diff --git a/packages/hls-player/README.md b/packages/hls-player/README.md index 0dda1052f8..4f62ce8e60 100644 --- a/packages/hls-player/README.md +++ b/packages/hls-player/README.md @@ -1,17 +1,343 @@ -`@100mslive/hls-player` is currently a wrapper on hls.js with easy to use interface and few add-ons for [100ms's interactive live streaming feature](https://www.100ms.live/docs/javascript/v2/how--to-guides/record-and-live-stream/hls/hls). +# 100ms HLS Player -Sample usage: +The `HMSHLSPlayer` is an HLS player offered by 100ms that can be used to play HLS streams. The player takes a URL and video element to play the stream. +## How to integrate HLS Player SDK + +You can use Node package manager or yarn to add HMSHLSPlayer sdk to your project. +Use [@100mslive/hls-player](https://www.npmjs.com/package/@100mslive/hls-player) as the package source. + +```bash +npm i @100mslive/hls-player +``` + +## HMSHLSPlayer methods + +Below shows all the methods exposed from player + +```javascript +interface IHMSHLSPlayer { + /** + * @returns get html video element + */ + getVideoElement(): HTMLVideoElement; + + /** + * set video volumne + * @param { volume } - in range [0,100] + */ + setVolume(volume: number): void; + /** + * + * @returns returns HMSHLSLayer which represents current + * quality. + */ + getLayer(): HMSHLSLayer | null; + /** + * + * @param { HMSHLSLayer } layer - layer we want to set the stream to. + * set { height: auto } to set the layer to auto + */ + setLayer(layer: HMSHLSLayer): void; + /** + * move the video to Live + */ + seekToLivePosition(): Promise; + /** + * play stream + * call this when autoplay error is received + */ + play(): Promise; + /** + * pause stream + */ + pause(): void; + + /** + * It will update the video element current time + * @param seekValue Pass currentTime in second + */ + seekTo(seekValue: number): void; +} +``` + +### How to use Player's HLS Stream + +You create an instance of HMSHLSPlayer like below: + +```javascript +import { HMSHLSPlayer } from '@100mslive/hls-player'; + +// hls url should be provided which player will run. +// second parameter is optional, if you had video element then pass to player else we will create one. +const hlsPlayer = new HMSHLSPlayer(hlsURL, videoEl) + +// if video element is not present, we will create a new video element which can be attached to your ui. +const videoEl = hlsPlayer.getVideoElement(); +``` + +### How to pause and resume the playback + +You call play/pause on the hlsPlayer instance like below: + +```javascript +// return Promise +hmsPlayer.play() + +hmsPlayer.pause() +``` + +### How to seek forward or backward + +You use `seekTo` methods on the hlsPlayer to seek to any position in video, below is given example: + +```javascript +// seekValue Pass currentTime in second +hmsPlayer.seekTo(5) +``` + +### How to seek to live position + +You use `seekToLivePosition` methods on the hlsPlayer instance to go to the live poition like below: + +```javascript +hmsPlayer.seekToLivePosition() +``` + +### How to change volume of HLS playback + +Use volume property to change the volume of HLS player. The volume level is between 0-100. Volume is set to 100 by default. + +```javascript +hlsPlayer.setVolume(50); +``` + +### Set video quality level to hls player + +```javascript +/** +* +* @returns returns HMSHLSLayer which represents current +* quality. +*/ +hlsPlayer.getLayer(): HMSHLSLayer | null; +/** +* +* @param { HMSHLSLayer } layer - layer we want to set the stream to. +* set { height: auto } to set the layer to auto +*/ +hlsPlayer.setLayer(layer: HMSHLSLayer): void; + +// quality interface +interface HMSHLSLayer { + readonly bitrate: number; + readonly height?: number; + readonly id?: number; + readonly width?: number; + url: string; + resolution?: string; +} +``` + +## Events exposed from HMSHLSPlayer + +We are exposing events from our hls player. + +```javascript +enum HMSHLSPlayerEvents { + TIMED_METADATA_LOADED = 'timed-metadata', + SEEK_POS_BEHIND_LIVE_EDGE = 'seek-pos-behind-live-edge', + + CURRENT_TIME = 'current-time', + AUTOPLAY_BLOCKED = 'autoplay-blocked', + + MANIFEST_LOADED = 'manifest-loaded', + LAYER_UPDATED = 'layer-updated', + + ERROR = 'error', + PLAYBACK_STATE = 'playback-state', + STATS = 'stats', +} +``` + +### Playback state + +```javascript +enum HLSPlaybackState { + playing, + paused, +} +interface HMSHLSPlaybackState { + state: HLSPlaybackState; +} +hlsPlayer.on(HMSHLSPlayerEvents.PLAYBACK_STATE, (event: HMSHLSPlayerEvents, data: HMSHLSPlaybackState): void => {}); ``` -import { - HLSPlaybackState, -} from "@100mslive/hls-player"; -// hlsUrl is the url in which the hls stream is ongoing -// videoElement is the video element where you want to play the stream -const player = new HMSHLSPlayer(hlsUrl, videoElement); -player.play() +### HLS Stats +```javascript +interface HlsPlayerStats { + /** Estimated bandwidth in bits/sec. Could be used to show connection speed. */ + bandwidthEstimate?: number; + /** The bitrate of the current level that is playing. Given in bits/sec */ + bitrate?: number; + /** the amount of video available in forward buffer. Given in ms */ + bufferedDuration?: number; + /** how far is the current playback from live edge.*/ + distanceFromLive?: number; + /** total Frames dropped since started watching the stream. */ + droppedFrames?: number; + /** the m3u8 url of the current level that is being played */ + url?: string; + /** the resolution of the level of the video that is being played */ + videoSize?: { + height: number; + width: number; + }; +} + +hlsPlayer.on(HMSHLSPlayerEvents.STATS, (event: HMSHLSPlayerEvents, data: HlsPlayerStats): void => {}); +``` + +### Manifest loaded data + +Hls player will provide a manifest which will provide a data like different quality layer once url is loaded. + +```javascript +interface HMSHLSManifestLoaded { + layers: HMSHLSLayer[]; +} +hlsPlayer.on(HMSHLSPlayerEvents.MANIFEST_LOADED, (event: HMSHLSPlayerEvents, data: HMSHLSManifestLoaded): void => {}); +``` + +### Quality changed data + +```javascript +interface HMSHLSLayerUpdated { + layer: HMSHLSLayer; +} +hlsPlayer.on(HMSHLSPlayerEvents.LAYER_UPDATED, (event: HMSHLSPlayerEvents, data: HMSHLSLayerUpdated): void => {}); +``` + +### Live Event + +Player will let you know if player is plaaying video live or not + +```javascript +interface HMSHLSStreamLive { + isLive: boolean; +} +hlsPlayer.on(HMSHLSPlayerEvents.SEEK_POS_BEHIND_LIVE_EDGE, (event: HMSHLSPlayerEvents, data: HMSHLSStreamLive): void => {}); ``` -More details to be added soon. +### HLS timed-metadata + +HLS player will parse and send the timed-metadata. + +```javascript +interface HMSHLSCue { + id?: string; + payload: string; + duration: number; + startDate: Date; + endDate?: Date; +} +hlsPlayer.on(HMSHLSPlayerEvents.TIMED_METADATA_LOADED, (event: HMSHLSPlayerEvents, data: HMSHLSCue): void => {}); +``` + +### Error handling + +```javascript +interface HMSHLSException { + name: string, + message: string, + description: string, + isTerminal: boolean, // decide if player error will automatically restart(if false) +} +hlsPlayer.on(HMSHLSPlayerEvents.ERROR, (event: HMSHLSPlayerEvents, data: HMSHLSException): void => {}); +hlsPlayer.on(HMSHLSPlayerEvents.AUTOPLAY_BLOCKED, (event: HMSHLSPlayerEvents, data: HMSHLSException): void => {}); +``` + +### Video current time + +```javascript +hlsPlayer.on(HMSHLSPlayerEvents.CURRENT_TIME, (event: HMSHLSPlayerEvents, data: number): void => {}); +``` + +### Example for events usage + +Below are the simple example of how to use hls player's event + +```javascript +const isPlaying = false; +const playbackEventHandler = data => isPlaying = data.state === HLSPlaybackState.paused; +hlsPlayer.on(HMSHLSPlayerEvents.PLAYBACK_STATE, playbackEventHandler); +``` + +## HLS Player example + +Below is a simple example in which hls-player will be used in your app. + +```javascript +// Vanilla JavaScript Example +import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents } from "@100mslive/hls-player"; + +const videoEl; // reference for video element +const hlsUrl; // reference to hls url + +// variable to handle ui and take some actions +let isLive = true, isPaused = false, isAutoBlockedPaused = false; + +const handleError = data => console.error("[HLSView] error in hls", data); +const handleNoLongerLive = ({ isLive }) => isLive = isLive; + +const playbackEventHandler = data => isPaused = (data.state === HLSPlaybackState.paused); + +const handleAutoplayBlock = data => isAutoBlockedPaused = !!data; + +const hlsPlayer = new HMSHLSPlayer(hlsUrl, videoEl); + +hlsPlayer.on(HMSHLSPlayerEvents.SEEK_POS_BEHIND_LIVE_EDGE, handleNoLongerLive); +hlsPlayer.on(HMSHLSPlayerEvents.ERROR, handleError); +hlsPlayer.on(HMSHLSPlayerEvents.PLAYBACK_STATE, playbackEventHandler); +hlsPlayer.on(HMSHLSPlayerEvents.AUTOPLAY_BLOCKED, handleAutoplayBlock); +``` + +```jsx +// React Example +import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents } from "@100mslive/hls-player"; +import { useEffect, useState } from 'react'; + +const videoEl; // reference for video element +const hlsUrl; // reference to hls url + +// variable to handle ui and take some actions +const [isVideoLive, setIsVideoLive] = useState(true); +const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState(false); +const [isPaused, setIsPaused] = useState(false); + +useEffect(() => { + const handleError = data => console.error("[HLSView] error in hls", data); + const handleNoLongerLive = ({ isLive }) => { + setIsVideoLive(isLive); + }; + + const playbackEventHandler = data => + setIsPaused(data.state === HLSPlaybackState.paused); + + const handleAutoplayBlock = data => setIsHlsAutoplayBlocked(!!data); + const hlsPlayer = new HMSHLSPlayer(hlsUrl, videoEl); + + hlsPlayer.on(HMSHLSPlayerEvents.SEEK_POS_BEHIND_LIVE_EDGE, handleNoLongerLive); + hlsPlayer.on(HMSHLSPlayerEvents.ERROR, handleError); + hlsPlayer.on(HMSHLSPlayerEvents.PLAYBACK_STATE, playbackEventHandler); + hlsPlayer.on(HMSHLSPlayerEvents.AUTOPLAY_BLOCKED, handleAutoplayBlock); + return () => { + hlsPlayer.off(HMSHLSPlayerEvents.SEEK_POS_BEHIND_LIVE_EDGE, handleNoLongerLive); + hlsPlayer.off(HMSHLSPlayerEvents.ERROR, handleError); + hlsPlayer.off(HMSHLSPlayerEvents.PLAYBACK_STATE, playbackEventHandler); + hlsPlayer.off(HMSHLSPlayerEvents.AUTOPLAY_BLOCKED, handleAutoplayBlock); + } +}, []); + +``` diff --git a/packages/hls-player/package.json b/packages/hls-player/package.json index af5c74f56e..5e0334e5ed 100644 --- a/packages/hls-player/package.json +++ b/packages/hls-player/package.json @@ -39,5 +39,13 @@ "@100mslive/hls-stats": "0.4.24", "eventemitter2": "^6.4.9", "hls.js": "1.4.12" - } + }, + "keywords": [ + "hls", + "video", + "player", + "webrtc", + "conferencing", + "100ms" + ] } diff --git a/packages/hms-virtual-background/README.md b/packages/hms-virtual-background/README.md index ac8a38d7c4..2009879b50 100755 --- a/packages/hms-virtual-background/README.md +++ b/packages/hms-virtual-background/README.md @@ -1,13 +1,238 @@ -## installation +# Virtual Background with Effects SDK -**with npm:** +Virtual background plugin helps in customising one’s background. The customising options are blurring the background or replacing it with a static image. This guide provides an overview of usage of the virtual background plugin of 100ms. -```npm i --save @100mslive/hms-virtual-background``` +## Pre-requisites -**with yarn** +Get the 100ms VirtualBackground Package** (Supported since version 1.11.28) -```yarn add @100mslive/hms-virtual-background``` +```bash section=GetHMSVirtualBackgroundPackage sectionIndex=1 +npm install --save @100mslive/hms-virtual-background@latest +``` -## Usage +## Features -Refer our [docs](https://www.100ms.live/docs/javascript/v2/plugins/virtual-background#start-and-stop-virtual-background) for usage. \ No newline at end of file +The following features are currently supported under the `HMSEffectsPlugin` class: + +```js +/** + * Sets the blur intensity. + * @param {number} blur - The blur intensity, ranging from 0 to 1. + * @returns {void} + */ +setBlur(blur) {} + +/** + * Sets the virtual background using the provided media URL. + * @param {HMSEffectsBackground} url - The media URL to set as the virtual background. + * Alternatively, the background image can be downloaded beforehand and passed to setBackground as objectURL + * @returns {void} + */ +setBackground(url) {} + +/** + * Retrieves the name of the plugin. + * @returns {string} The name of the plugin, 'HMSEffects'. + */ +getName() {} + +/** + * Retrieves the currently enabled background type or media URL. + * @returns {string|MediaStream|MediaStreamTrack|HTMLVideoElement} The background type or media URL. + */ +getBackground() {} + +/** + * Sets the preset quality of the virtual background. + * Options: "balanced" | "quality" + * The 'quality' preset has a higher CPU usage than the 'balanced' preset which is the default + * @param {string} preset - The preset quality to set. + * @returns {Promise} + */ +setPreset(preset) {} + +/** + * Retrieves the active preset quality of the virtual background. + * @returns {string} The active preset quality. + */ +getPreset() {} + +/** + * Clears all applied filters. + * @returns {void} + */ +removeEffects() {} + +/** + * Stops the plugin. + * @returns {void} + */ +stop() {} + +``` + +Callbacks supported by the plugin: + +On initialization, after the required resources are downloaded by the plugin: + +``` +const effectsPlugin = new HMSEffectsPlugin(, () => console.log("Plugin initialised")); + +``` + +On resolution change (on device rotation or when the video aspect ratio changes): + +``` +effectsPlugin.onResolutionChange = (width: number, height: number) => { + console.log(`Resolution changed to ${width}x${height}`) +} +``` + +## Instantiate Virtual Background + +The SDK key for effects is needed to instantiate the `HMSEffectsPlugin` class: + +```jsx + const effectsKey = useHMSStore(selectEffectsKey); +``` + +It is recommended to initialise the object in a separate file to prevent multiple initialisations on re-renders and keep the UI level code independent of internal calls by the SDK. + + +```js +import { HMSEffectsPlugin, HMSVirtualBackgroundTypes } from '@100mslive/hms-virtual-background'; + +export class VBPlugin { + private effectsPlugin?: HMSEffectsPlugin | undefined; + + initialisePlugin = (effectsSDKKey?: string) => { + if (this.getVBObject()) { + return; + } + if (effectsSDKKey) { + this.effectsPlugin = new HMSEffectsPlugin(effectsSDKKey); + } + }; + + getBackground = () => { + return this.effectsPlugin?.getBackground(); + }; + + getBlurAmount = () => { + return this.effectsPlugin?.getBlurAmount(); + }; + + getVBObject = () => { + return this.effectsPlugin; + }; + + getName = () => { + return this.effectsPlugin?.getName(); + }; + + setBlur = async (blurPower: number) => { + this.effectsPlugin?.setBlur(blurPower); + }; + + setBackground = async (mediaURL: string) => { + this.effectsPlugin?.setBackground(mediaURL); + }; + + setPreset = (preset: string) => { + this.effectsPlugin.setPreset(preset); + }; + + getPreset = () => { + return this.effectsPlugin?.getPreset() || ''; + }; + + removeEffects = async () => { + this.effectsPlugin?.removeEffects(); + }; + + reset = () => { + this.effectsPlugin = undefined; + }; +} + +export const VBHandler = new VBPlugin(); +``` + +## Building the UI + +The following snippet illustrates how to add the plugin to the video and manage the UI state to preserve configuration: + +```jsx +import { + selectEffectsKey, + selectIsLocalVideoPluginPresent + selectLocalVideoTrackID, + useHMSStore, +} from '@100mslive/react-sdk'; +import { + HMSEffectsPlugin, + HMSVirtualBackgroundTypes +} from '@100mslive/hms-virtual-background'; +import { VBHandler } from './VBHandler'; + +export const VirtualBackgroundPicker = () => { + const hmsActions = useHMSActions(); + // Get the effects SDK key here + const effectsKey = useHMSStore(selectEffectsKey); + const trackId = useHMSStore(selectLocalVideoTrackID); + const isPluginAdded = useHMSStore(selectIsLocalVideoPluginPresent(VBHandler?.getName() || '')); + + // State can be used to show active selection + const [background, setBackground] = useState( + VBHandler.getBackground() as string | HMSVirtualBackgroundTypes, + ); + + useEffect(() => { + if (!track?.id) { + return; + } + if (!isPluginAdded) { + let vbObject = VBHandler.getVBObject(); + if (!vbObject) { + VBHandler.initialisePlugin(effectsKey); + vbObject = VBHandler.getVBObject(); + if (effectsKey) { + hmsActions.addPluginsToVideoStream([vbObject as HMSEffectsPlugin]); + } + } + } + }, [hmsActions, isPluginAdded, effectsKey, track?.id]); + + // UI code for media picker can go here +} + +``` + +This handles initialisation and adding the plugin to the video stream. The plugin takes a few seconds on first load during initialisation. Subsequent filter and effect selections should take less than a second to reflect. + +The methods can be called via the `VBHandler` object: +```jsx +const setBackground = async(mediaURL : string) => { + await VBHandler?.setBackground(mediaURL); + // The selection can be highlighted using the activeBackground state + setActiveBackground(mediaURL); +} + +const setBlur = async(blurAmount: number) => { + await VBHandler?.setBlur(blurAmount); + setActiveBackground(HMSVirtualBackgroundTypes.BLUR); +} + +const removeEffects = async() => { + await VBHandler.removeEffects(); + setActiveBackground(HMSVirtualBackgroundTypes.NONE); +} +``` + + +The full implementation can be viewed in the [roomkit-react package](https://github.com/100mslive/web-sdks/blob/main/packages/roomkit-react/src/Prebuilt/components/VirtualBackground/VBPicker.tsx). + + +## Supported Browsers + +Effects virtual background is supported on Safari, Firefox and Chromium based browsers.
diff --git a/packages/hms-whiteboard/README.md b/packages/hms-whiteboard/README.md new file mode 100644 index 0000000000..2ba01efa5a --- /dev/null +++ b/packages/hms-whiteboard/README.md @@ -0,0 +1,120 @@ +# 100ms Whiteboard + +The 100ms SDK provides robust APIs for integrating whiteboard collaboration into your conferencing sessions. Participants can engage in real-time by drawing, writing, and collaborating on a shared digital whiteboard. This documentation outlines how to implement the start and stop functionality for a whiteboard and display it within an iframe or embed it as a React component. + +## Requirements + +- React 18 or higher +- Webpack 5 or higher if you're using it to bundle your app +- User roles must be configured to enable whiteboard functionality via the 100ms dashboard for starting or viewing the whiteboard. [Refer here](https://www.100ms.live/docs/get-started/v2/get-started/features/whiteboard#enabling-and-configuring-the-whiteboard). +- If you're on React and are not using the `@100mslive/roomkit-react` package, install the `@100mslive/hms-whiteboard` package. + +```bash +yarn add @100mslive/hms-whiteboard +``` + +## Opening and Closing the Whiteboard + +JavaScript users can use the `selectPermissions` selector which fetches the whiteboard specific permissions array from the local peer's role permissions. + +React users can check for the `toggle` function returned by the utility hook `useWhiteboard`. + +```js +// Vanilla JavaScript Example +import { selectPermissions, selectWhiteboard } from '@100mslive/hms-video-store'; + +const permissions = hmsStore.getState(selectPermissions)?.whiteboard; // Array<'read' | 'write' | 'admin'> +const isAdmin = !!permissions?.includes('admin'); +const whiteboard = hmsStore.getState(selectWhiteboard); +const isOwner = whiteboard?.owner === localPeerUserId; + +const toggle = async () => { + if (!isAdmin) { + return; + } + + if (whiteboard?.open) { + isOwner && (await actions.interactivityCenter.whiteboard.close()); + } else { + await actions.interactivityCenter.whiteboard.open(); + } +}; + +// usage +const toggleButton = document.getElementById('toggle-whiteboard'); +// non-admin users cannot toggle the whiteboard +toggleButton.disabled = !isAdmin; +toggleButton.onclick = toggle; +``` + +```jsx +// React Example +import React from 'react'; +import { useWhiteboard } from '@100mslive/react-sdk'; + +export const WhiteboardToggle = () => { + const { toggle, open, isOwner } = useWhiteboard(); + + // non-admin users cannot toggle the whiteboard + if (!toggle) { + return null; + } + + return ( + + ); +}; +``` + +## Displaying the Collaborative Whiteboard + +You can display the whiteboard when it's open by embedding it as an iframe or as a React component for more fine-grained controls, if your app is built using React. + +```js +// Vanilla JavaScript Example +import { selectWhiteboard } from '@100mslive/hms-video-store'; + +const whiteboard = hmsStore.subscribe((whiteboard) => { + if (whiteboard?.open && whiteboard?.url) { + const whiteboardIframe = document.createElement('iframe'); + whiteboardIframe.src = whiteboard.url; + } else { + const whiteboardIframe = document.getElementById('whiteboard'); + whiteboardIframe?.remove(); + } +}, selectWhiteboard); +``` + +```jsx +// React Example +import React from 'react'; +import { useWhiteboard } from '@100mslive/react-sdk'; +import { Whiteboard } from '@100mslive/hms-whiteboard'; +import '@100mslive/hms-whiteboard/index.css'; + +const WhiteboardEmbed = () => { + const { token, endpoint } = useWhiteboard(); + + if (!token) { + return null; + } + + return ( +
+ { + console.log(store, editor); + }} + /> +
+ ); +}; +``` + +Whiteboard related CSS needs to be imported in your app's top level CSS files using `@import '@100mslive/hms-whiteboard/index.css';`(recommended) or in one of your top level JS file using `import '@100mslive/hms-whiteboard/index.css';`. + +Note that if you're using `@100mslive/roomkit-react` you'll need to import `@100mslive/roomkit-react/index.css` accordingly. diff --git a/packages/hms-whiteboard/package.json b/packages/hms-whiteboard/package.json index 1323e9215e..258c33362a 100644 --- a/packages/hms-whiteboard/package.json +++ b/packages/hms-whiteboard/package.json @@ -58,5 +58,14 @@ "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-terser": "^7.0.2", "typescript": "^5.2.2" - } + }, + "keywords": [ + "whiteboard", + "tldraw", + "streaming", + "video", + "webrtc", + "conferencing", + "100ms" + ] } From 6e743546dad0326c2385a71fc2a88b285f8fd543 Mon Sep 17 00:00:00 2001 From: ygit Date: Wed, 20 Nov 2024 14:37:33 +0530 Subject: [PATCH 05/11] docs: added meta badges on ReadMe --- README.md | 6 ++++++ packages/hls-player/README.md | 5 +++++ packages/hls-stats/README.md | 6 ++++++ packages/hms-video-store/README.md | 3 ++- packages/hms-virtual-background/README.md | 5 +++++ packages/hms-whiteboard/README.md | 5 +++++ packages/react-icons/README.md | 8 +++++++- packages/react-sdk/README.md | 8 +++++++- packages/roomkit-react/README.md | 11 ++++++++--- packages/roomkit-web/README.md | 9 +++++++-- 10 files changed, 58 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a34d228c3c..05ee429921 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Web SDKs +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Activity](https://img.shields.io/github/commit-activity/m/100mslive/web-sdks.svg)](https://www.100ms.live/docs/javascript/v2/release-notes/release-notes) +[![License](https://img.shields.io/npm/l/@100mslive/hms-video-store)](https://www.100ms.live/) +[![Documentation](https://img.shields.io/badge/Read-Documentation-blue)](https://www.100ms.live/docs/javascript/v2/quickstart/javascript-quickstart) +[![Register](https://img.shields.io/badge/Contact-Know%20More-blue)](https://dashboard.100ms.live/register) + This monorepo contains all the packages required to integrate 100ms on the web. ## What is included? diff --git a/packages/hls-player/README.md b/packages/hls-player/README.md index 4f62ce8e60..0f8e8f1dd5 100644 --- a/packages/hls-player/README.md +++ b/packages/hls-player/README.md @@ -1,5 +1,10 @@ # 100ms HLS Player +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/hls-player)](https://bundlephobia.com/result?p=@100mslive/hls-player) +[![License](https://img.shields.io/npm/l/@100mslive/hls-player)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/hls-player) + The `HMSHLSPlayer` is an HLS player offered by 100ms that can be used to play HLS streams. The player takes a URL and video element to play the stream. ## How to integrate HLS Player SDK diff --git a/packages/hls-stats/README.md b/packages/hls-stats/README.md index d422d6ecd0..1af6ec5ed8 100644 --- a/packages/hls-stats/README.md +++ b/packages/hls-stats/README.md @@ -1,5 +1,11 @@ # @100mslive/hms-stats +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/hls-stats)](https://bundlephobia.com/result?p=@100mslive/hls-stats) +[![License](https://img.shields.io/npm/l/@100mslive/hls-stats)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/hls-stats) + + A simple library for HLS stats for Hls.js. ## Installation diff --git a/packages/hms-video-store/README.md b/packages/hms-video-store/README.md index 8c37e598cd..1d2f8b5f8e 100644 --- a/packages/hms-video-store/README.md +++ b/packages/hms-video-store/README.md @@ -1,8 +1,9 @@ # 100ms Reactive Store [![NPM](https://badgen.net/npm/v/@100mslive/hms-video-store?color=green)](https://www.npmjs.com/package/@100mslive/hms-video-store) -![Test](https://github.com/100mslive/hms-video-store/actions/workflows/main.yaml/badge.svg) +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) [![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/hms-video-store)](https://bundlephobia.com/result?p=@100mslive/hms-video-store) +[![License](https://img.shields.io/npm/l/@100mslive/hms-video-store)](https://www.100ms.live/) ![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/hms-video-store) ![Architecture](images/architecture.png) diff --git a/packages/hms-virtual-background/README.md b/packages/hms-virtual-background/README.md index 2009879b50..75ec13a8ec 100755 --- a/packages/hms-virtual-background/README.md +++ b/packages/hms-virtual-background/README.md @@ -1,5 +1,10 @@ # Virtual Background with Effects SDK +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/hms-virtual-background)](https://bundlephobia.com/result?p=@100mslive/hms-virtual-background) +[![License](https://img.shields.io/npm/l/@100mslive/hms-virtual-background)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/hms-virtual-background) + Virtual background plugin helps in customising one’s background. The customising options are blurring the background or replacing it with a static image. This guide provides an overview of usage of the virtual background plugin of 100ms. ## Pre-requisites diff --git a/packages/hms-whiteboard/README.md b/packages/hms-whiteboard/README.md index 2ba01efa5a..23137323d7 100644 --- a/packages/hms-whiteboard/README.md +++ b/packages/hms-whiteboard/README.md @@ -1,5 +1,10 @@ # 100ms Whiteboard +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/hms-whiteboard)](https://bundlephobia.com/result?p=@100mslive/hms-whiteboard) +[![License](https://img.shields.io/npm/l/@100mslive/hms-whiteboard)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/hms-whiteboard) + The 100ms SDK provides robust APIs for integrating whiteboard collaboration into your conferencing sessions. Participants can engage in real-time by drawing, writing, and collaborating on a shared digital whiteboard. This documentation outlines how to implement the start and stop functionality for a whiteboard and display it within an iframe or embed it as a React component. ## Requirements diff --git a/packages/react-icons/README.md b/packages/react-icons/README.md index 1e3d592ef4..b9477db9d3 100644 --- a/packages/react-icons/README.md +++ b/packages/react-icons/README.md @@ -1,4 +1,10 @@ -# React Icon Library +# 100ms React Icon Library + +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/react-icons)](https://bundlephobia.com/result?p=@100mslive/react-icons) +[![License](https://img.shields.io/npm/l/@100mslive/react-icons)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/react-icons) + Using the package in your application diff --git a/packages/react-sdk/README.md b/packages/react-sdk/README.md index 1cee52f0d3..c3f27ddd1a 100644 --- a/packages/react-sdk/README.md +++ b/packages/react-sdk/README.md @@ -1,4 +1,10 @@ -### About +# 100ms React SDK + +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/react-sdk)](https://bundlephobia.com/result?p=@100mslive/react-sdk) +[![License](https://img.shields.io/npm/l/@100mslive/react-sdk)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/react-sdk) + This package is a react wrapper over the core SDK(`@100mslive/hms-video-store`). An easy way to use the store, actions and notifications are provided via diff --git a/packages/roomkit-react/README.md b/packages/roomkit-react/README.md index b4a8f1f1ae..d1e12f6c91 100644 --- a/packages/roomkit-react/README.md +++ b/packages/roomkit-react/README.md @@ -1,12 +1,17 @@ ![Banner](https://github.com/100mslive/web-sdks/blob/06c65259912db6ccd8617f2ecb6fef51429251ec/prebuilt-banner.png) +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/roomkit-react)](https://bundlephobia.com/result?p=@100mslive/roomkit-react) +[![License](https://img.shields.io/npm/l/@100mslive/roomkit-react)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/roomkit-react) + # Room Kit React Library 100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps. ## Installation -``` +```bash // npm npm install @100mslive/roomkit-react@latest --save @@ -16,7 +21,7 @@ yarn add @100mslive/roomkit-react@latest ## Usage -#### Using room code +### Using room code ```jsx import { HMSPrebuilt } from '@100mslive/roomkit-react' @@ -28,7 +33,7 @@ export default App() { } ``` -#### Using authToken +### Using authToken ```jsx import { HMSPrebuilt } from '@100mslive/roomkit-react' diff --git a/packages/roomkit-web/README.md b/packages/roomkit-web/README.md index 1808c515d4..5e64a3d41b 100644 --- a/packages/roomkit-web/README.md +++ b/packages/roomkit-web/README.md @@ -1,10 +1,15 @@ -# `@100mslive/roomkit-web` +# 100ms Web RoomKit + +[![Lint, Test and Build](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml/badge.svg)](https://github.com/100mslive/web-sdks/actions/workflows/lint-test-build.yml) +[![Bundle Size](https://badgen.net/bundlephobia/minzip/@100mslive/roomkit-web)](https://bundlephobia.com/result?p=@100mslive/roomkit-web) +[![License](https://img.shields.io/npm/l/@100mslive/roomkit-web)](https://www.100ms.live/) +![Tree shaking](https://badgen.net/bundlephobia/tree-shaking/@100mslive/roomkit-web) A web component implementation of the HMSPrebuilt component from [roomkit-react](https://www.100ms.live/docs/javascript/v2/quickstart/prebuilt-quickstart) library. ## Usage -``` +```js import '@100mslive/roomkit-web' Vue From 939327b7a06e3f84d5d3583044042b0eaeb24497 Mon Sep 17 00:00:00 2001 From: ygit Date: Thu, 21 Nov 2024 11:39:09 +0530 Subject: [PATCH 06/11] Persisting audio & video device selection across local peer's role change (#3377) --- .../src/device-manager/DeviceManager.ts | 6 +++ .../src/sdk/RoleChangeManager.ts | 45 ++++++++++++++++--- packages/hms-video-store/src/sdk/index.ts | 1 + 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/packages/hms-video-store/src/device-manager/DeviceManager.ts b/packages/hms-video-store/src/device-manager/DeviceManager.ts index fd7bfcf9f3..8fedbc647c 100644 --- a/packages/hms-video-store/src/device-manager/DeviceManager.ts +++ b/packages/hms-video-store/src/device-manager/DeviceManager.ts @@ -31,6 +31,12 @@ export class DeviceManager implements HMSDeviceManager { hasWebcamPermission = false; hasMicrophonePermission = false; + currentSelection: SelectedDevices = { + audioInput: undefined, + videoInput: undefined, + audioOutput: undefined, + }; + private readonly TAG = '[Device Manager]:'; private initialized = false; private videoInputChanged = false; diff --git a/packages/hms-video-store/src/sdk/RoleChangeManager.ts b/packages/hms-video-store/src/sdk/RoleChangeManager.ts index c4be09307b..c13b2519bf 100644 --- a/packages/hms-video-store/src/sdk/RoleChangeManager.ts +++ b/packages/hms-video-store/src/sdk/RoleChangeManager.ts @@ -1,6 +1,6 @@ import { Store } from './store'; import { DeviceManager } from '../device-manager'; -import { HMSRole } from '../interfaces'; +import { DeviceType, HMSRole } from '../interfaces'; import InitialSettings from '../interfaces/settings'; import { SimulcastLayers } from '../interfaces/simulcast-layers'; import { HMSPeerUpdate, HMSTrackUpdate, HMSUpdateListener } from '../interfaces/update-listener'; @@ -144,14 +144,49 @@ export default class RoleChangeManager { } private getSettings(): InitialSettings { - const initialSettings = this.store.getConfig()?.settings; + const { isAudioMuted, isVideoMuted } = this.getMutedStatus(); + const { audioInputDeviceId, audioOutputDeviceId } = this.getAudioDeviceSettings(); + const videoDeviceId = this.getVideoInputDeviceId(); + return { + isAudioMuted: isAudioMuted, + isVideoMuted: isVideoMuted, + audioInputDeviceId: audioInputDeviceId, + audioOutputDeviceId: audioOutputDeviceId, + videoDeviceId: videoDeviceId, + }; + } + private getMutedStatus(): { isAudioMuted: boolean; isVideoMuted: boolean } { + const initialSettings = this.store.getConfig()?.settings; return { isAudioMuted: initialSettings?.isAudioMuted ?? true, isVideoMuted: initialSettings?.isVideoMuted ?? true, - audioInputDeviceId: initialSettings?.audioInputDeviceId || 'default', - audioOutputDeviceId: initialSettings?.audioOutputDeviceId || 'default', - videoDeviceId: initialSettings?.videoDeviceId || 'default', }; } + + private getAudioDeviceSettings(): { audioInputDeviceId: string; audioOutputDeviceId: string } { + const initialSettings = this.store.getConfig()?.settings; + const audioInputDeviceId = + this.deviceManager.currentSelection[DeviceType.audioInput]?.deviceId || + initialSettings?.audioInputDeviceId || + 'default'; + const audioOutputDeviceId = + this.deviceManager.currentSelection[DeviceType.audioOutput]?.deviceId || + initialSettings?.audioOutputDeviceId || + 'default'; + + return { + audioInputDeviceId, + audioOutputDeviceId, + }; + } + + private getVideoInputDeviceId(): string { + const initialSettings = this.store.getConfig()?.settings; + return ( + this.deviceManager.currentSelection[DeviceType.videoInput]?.deviceId || + initialSettings?.videoDeviceId || + 'default' + ); + } } diff --git a/packages/hms-video-store/src/sdk/index.ts b/packages/hms-video-store/src/sdk/index.ts index fe6040e751..50bd36b0eb 100644 --- a/packages/hms-video-store/src/sdk/index.ts +++ b/packages/hms-video-store/src/sdk/index.ts @@ -1350,6 +1350,7 @@ export class HMSSdk implements HMSInterface { } private handleLocalRoleUpdate = async ({ oldRole, newRole }: { oldRole: HMSRole; newRole: HMSRole }) => { + this.deviceManager.currentSelection = this.deviceManager.getCurrentSelection(); await this.transport.handleLocalRoleUpdate({ oldRole, newRole }); await this.roleChangeManager?.handleLocalPeerRoleUpdate({ oldRole, newRole }); await this.interactivityCenter.whiteboard.handleLocalRoleUpdate(); From 3566b402ddf120462a8927ac6c7596e135404f52 Mon Sep 17 00:00:00 2001 From: Kaustubh Kumar Date: Thu, 21 Nov 2024 13:41:56 +0530 Subject: [PATCH 07/11] fix: pip chat height (#3381) --- packages/roomkit-react/src/Prebuilt/components/PIP/PIPChat.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/roomkit-react/src/Prebuilt/components/PIP/PIPChat.tsx b/packages/roomkit-react/src/Prebuilt/components/PIP/PIPChat.tsx index e849836b90..e8a75cdbb5 100644 --- a/packages/roomkit-react/src/Prebuilt/components/PIP/PIPChat.tsx +++ b/packages/roomkit-react/src/Prebuilt/components/PIP/PIPChat.tsx @@ -72,7 +72,7 @@ export const PIPChat = () => { ]); return ( -
+
Date: Fri, 22 Nov 2024 15:56:28 +0530 Subject: [PATCH 08/11] fix: audio track constraints when krisp is enabled (#3374) --- .../media/settings/HMSAudioTrackSettings.ts | 12 +----- .../src/media/settings/constants.ts | 8 ++++ .../plugins/audio/HMSAudioPluginsManager.ts | 38 +++++++++++++++++- packages/roomkit-react/package.json | 4 +- yarn.lock | 39 ++++--------------- 5 files changed, 55 insertions(+), 46 deletions(-) create mode 100644 packages/hms-video-store/src/media/settings/constants.ts diff --git a/packages/hms-video-store/src/media/settings/HMSAudioTrackSettings.ts b/packages/hms-video-store/src/media/settings/HMSAudioTrackSettings.ts index f49020741e..20aa877ac0 100644 --- a/packages/hms-video-store/src/media/settings/HMSAudioTrackSettings.ts +++ b/packages/hms-video-store/src/media/settings/HMSAudioTrackSettings.ts @@ -1,3 +1,4 @@ +import { standardMediaConstraints } from './constants'; import { IAnalyticsPropertiesProvider } from '../../analytics/IAnalyticsPropertiesProvider'; import { HMSAudioCodec, HMSAudioMode, HMSAudioTrackSettings as IHMSAudioTrackSettings } from '../../interfaces'; @@ -8,20 +9,11 @@ export class HMSAudioTrackSettingsBuilder { private _deviceId = 'default'; private _audioMode: HMSAudioMode = HMSAudioMode.VOICE; private _advanced: Array = [ - // @ts-ignore - { googEchoCancellation: { exact: true } }, - // @ts-ignore - { googExperimentalEchoCancellation: { exact: true } }, - // @ts-ignore + ...standardMediaConstraints, { autoGainControl: { exact: true } }, // @ts-ignore { noiseSuppression: { exact: true } }, - // @ts-ignore - { googHighpassFilter: { exact: true } }, - // @ts-ignore - { googAudioMirroring: { exact: true } }, ]; - volume(volume: number) { if (!(0.0 <= volume && volume <= 1.0)) { throw Error('volume can only be in range [0.0, 1.0]'); diff --git a/packages/hms-video-store/src/media/settings/constants.ts b/packages/hms-video-store/src/media/settings/constants.ts new file mode 100644 index 0000000000..e1f0e8f4d2 --- /dev/null +++ b/packages/hms-video-store/src/media/settings/constants.ts @@ -0,0 +1,8 @@ +export const standardMediaConstraints = [ + { echoCancellation: { exact: true } }, + { highpassFilter: { exact: true } }, + { audioMirroring: { exact: true } }, + // These options can vary depending on the audio plugin + // { autoGainControl: { exact: true } }, + // { noiseSuppression: { exact: true } }, +]; diff --git a/packages/hms-video-store/src/plugins/audio/HMSAudioPluginsManager.ts b/packages/hms-video-store/src/plugins/audio/HMSAudioPluginsManager.ts index 75100bb9a5..fa84d76ed4 100644 --- a/packages/hms-video-store/src/plugins/audio/HMSAudioPluginsManager.ts +++ b/packages/hms-video-store/src/plugins/audio/HMSAudioPluginsManager.ts @@ -4,6 +4,8 @@ import AnalyticsEventFactory from '../../analytics/AnalyticsEventFactory'; import { ErrorFactory } from '../../error/ErrorFactory'; import { HMSAction } from '../../error/HMSAction'; import { EventBus } from '../../events/EventBus'; +import { HMSAudioTrackSettingsBuilder } from '../../media/settings'; +import { standardMediaConstraints } from '../../media/settings/constants'; import { HMSLocalAudioTrack } from '../../media/tracks'; import Room from '../../sdk/models/HMSRoom'; import HMSLogger from '../../utils/logger'; @@ -74,7 +76,7 @@ export class HMSAudioPluginsManager { } switch (plugin.getName()) { - case 'HMSKrispPlugin': + case 'HMSKrispPlugin': { if (!this.room?.isNoiseCancellationEnabled) { const errorMessage = 'Krisp Noise Cancellation is not enabled for this room'; if (this.pluginsMap.size === 0) { @@ -85,7 +87,23 @@ export class HMSAudioPluginsManager { } } this.eventBus.analytics.publish(AnalyticsEventFactory.krispStart()); + const { settings } = this.hmsTrack; + const newAudioTrackSettings = new HMSAudioTrackSettingsBuilder() + .codec(settings.codec) + .maxBitrate(settings.maxBitrate) + .deviceId(settings.deviceId!) + .advanced([ + ...standardMediaConstraints, + // @ts-ignore + { autoGainControl: { exact: false } }, + // @ts-ignore + { noiseSuppression: { exact: false } }, + ]) + .audioMode(settings.audioMode) + .build(); + await this.hmsTrack.setSettings(newAudioTrackSettings); break; + } default: } @@ -162,9 +180,25 @@ export class HMSAudioPluginsManager { async removePlugin(plugin: HMSAudioPlugin) { switch (plugin.getName()) { - case 'HMSKrispPlugin': + case 'HMSKrispPlugin': { this.eventBus.analytics.publish(AnalyticsEventFactory.krispStop()); + const { settings } = this.hmsTrack; + const newAudioTrackSettings = new HMSAudioTrackSettingsBuilder() + .codec(settings.codec) + .maxBitrate(settings.maxBitrate) + .deviceId(settings.deviceId!) + .advanced([ + ...standardMediaConstraints, + // @ts-ignore + { autoGainControl: { exact: true } }, + // @ts-ignore + { noiseSuppression: { exact: true } }, + ]) + .audioMode(settings.audioMode) + .build(); + await this.hmsTrack.setSettings(newAudioTrackSettings); break; + } default: break; } diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json index 5c6e1c1253..11c2c5bd90 100644 --- a/packages/roomkit-react/package.json +++ b/packages/roomkit-react/package.json @@ -76,7 +76,7 @@ }, "dependencies": { "@100mslive/hls-player": "0.3.24", - "@100mslive/hms-noise-cancellation": "0.0.1", + "@100mslive/hms-noise-cancellation": "0.0.2-alpha.7", "@100mslive/hms-virtual-background": "1.13.24", "@100mslive/hms-whiteboard": "0.0.14", "@100mslive/react-icons": "0.10.24", @@ -102,7 +102,7 @@ "@stitches/react": "1.3.1-1", "emoji-mart": "^5.2.2", "eventemitter2": "^6.4.9", - "framer-motion":"^11.11.0", + "framer-motion": "^11.11.0", "lodash.merge": "^4.6.2", "qrcode.react": "^3.1.0", "react-dom": "^18.2.0", diff --git a/yarn.lock b/yarn.lock index e5e417a61a..0f8d119744 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@100mslive/hms-noise-cancellation@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@100mslive/hms-noise-cancellation/-/hms-noise-cancellation-0.0.1.tgz#037c8bdfb6b2d7bf12f9d257422150fe6ca43acb" - integrity sha512-DGnzcXRDJREWypIjGX70er+f2k/XLLRF41lrXPs1+PtB1imdEkECPPS0Fg4BA0BCWKDNAGTZBHZPrBDgUmr9Lw== +"@100mslive/hms-noise-cancellation@0.0.2-alpha.7": + version "0.0.2-alpha.7" + resolved "https://registry.yarnpkg.com/@100mslive/hms-noise-cancellation/-/hms-noise-cancellation-0.0.2-alpha.7.tgz#049221bf8cac991c2e29594cf92e4022d1a8190b" + integrity sha512-XRhhbGWDWnSnKK6cfSiVaBpRyTleG/ysZr36Vec3WJab26rLBP7B9JTn0kT8MYpbBW+1mmyuPjR7vwI20Qo/vQ== "@100mslive/types-prebuilt@0.12.12": version "0.12.12" @@ -16541,16 +16541,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -16655,14 +16646,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -18015,7 +17999,7 @@ worker-timers@^7.0.40: worker-timers-broker "^6.0.95" worker-timers-worker "^7.0.59" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -18033,15 +18017,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 307632e9abaa686cde9659d597e80b0f6d871f42 Mon Sep 17 00:00:00 2001 From: Ravi theja Date: Mon, 25 Nov 2024 11:48:37 +0530 Subject: [PATCH 09/11] fix: dependabot errors (#3384) --- package.json | 4 +- packages/hms-whiteboard/package.json | 2 +- packages/react-icons/package.json | 2 +- packages/react-sdk/package.json | 2 +- yarn.lock | 512 +++++++++++++++++---------- 5 files changed, 331 insertions(+), 191 deletions(-) diff --git a/package.json b/package.json index 52db340ecb..652b546ff7 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "private": true, "devDependencies": { "@babel/core": "^7.8.0", - "@commitlint/cli": "^15.0.0", - "@commitlint/config-conventional": "^15.0.0", + "@commitlint/cli": "^19.6.0", + "@commitlint/config-conventional": "^19.6.0", "@size-limit/file": "^5.0.3", "@types/jest": "^27.0.3", "@types/node": "^16.11.17", diff --git a/packages/hms-whiteboard/package.json b/packages/hms-whiteboard/package.json index 258c33362a..99390f3495 100644 --- a/packages/hms-whiteboard/package.json +++ b/packages/hms-whiteboard/package.json @@ -53,7 +53,7 @@ "grpc-tools": "^1.12.4", "react": "^18.1.0", "react-dom": "^18.1.0", - "rollup": "^2.70.1", + "rollup": "^2.79.2", "rollup-plugin-esbuild": "^4.9.3", "rollup-plugin-import-css": "^3.5.0", "rollup-plugin-terser": "^7.0.2", diff --git a/packages/react-icons/package.json b/packages/react-icons/package.json index 757f6c0f1a..024bf193d9 100644 --- a/packages/react-icons/package.json +++ b/packages/react-icons/package.json @@ -38,7 +38,7 @@ "@svgr/cli": "^6.3.1", "@types/react": "^18.1.0", "react": "^18.1.0", - "rollup": "^2.70.1", + "rollup": "^2.79.2", "rollup-plugin-esbuild": "^4.9.3", "rollup-plugin-terser": "^7.0.2" }, diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json index eaa962bbec..0244fc3621 100644 --- a/packages/react-sdk/package.json +++ b/packages/react-sdk/package.json @@ -40,7 +40,7 @@ "@rollup/plugin-typescript": "^8.3.1", "@types/react": "^18.1.0", "react": "^18.1.0", - "rollup": "^2.70.1", + "rollup": "^2.79.2", "rollup-plugin-esbuild": "^4.9.3", "rollup-plugin-terser": "^7.0.2" }, diff --git a/yarn.lock b/yarn.lock index 0f8d119744..13e2f8c3fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1254,145 +1254,160 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@commitlint/cli@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-15.0.0.tgz#8e78e86ee2b6955c1a5d140e734a6c171ce367ee" - integrity sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg== - dependencies: - "@commitlint/format" "^15.0.0" - "@commitlint/lint" "^15.0.0" - "@commitlint/load" "^15.0.0" - "@commitlint/read" "^15.0.0" - "@commitlint/types" "^15.0.0" - lodash "^4.17.19" - resolve-from "5.0.0" - resolve-global "1.0.0" +"@commitlint/cli@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.6.0.tgz#98e7fc8501cc38b6eef4b7f61e19b15f3c53700e" + integrity sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w== + dependencies: + "@commitlint/format" "^19.5.0" + "@commitlint/lint" "^19.6.0" + "@commitlint/load" "^19.5.0" + "@commitlint/read" "^19.5.0" + "@commitlint/types" "^19.5.0" + tinyexec "^0.3.0" yargs "^17.0.0" -"@commitlint/config-conventional@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-15.0.0.tgz#3bf1adf319e3b431de12ba82dc399524038b2d8f" - integrity sha512-eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ== +"@commitlint/config-conventional@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz#badba72c8639ea79291e2941001bd7ea7fad3a2c" + integrity sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ== dependencies: - conventional-changelog-conventionalcommits "^4.3.1" + "@commitlint/types" "^19.5.0" + conventional-changelog-conventionalcommits "^7.0.2" -"@commitlint/ensure@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-15.0.0.tgz#06a63738e2393970a085b428e6cf80fa1fe76f48" - integrity sha512-7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA== +"@commitlint/config-validator@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.5.0.tgz#f0a4eda2109fc716ef01bb8831af9b02e3a1e568" + integrity sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw== dependencies: - "@commitlint/types" "^15.0.0" - lodash "^4.17.19" - -"@commitlint/execute-rule@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz#6bff7962df38e89ff9fdbc00abd79b8849c7e9f9" - integrity sha512-pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg== + "@commitlint/types" "^19.5.0" + ajv "^8.11.0" -"@commitlint/format@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-15.0.0.tgz#10935180913de9384bea4c9217f4c6c5ee100ab3" - integrity sha512-bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg== +"@commitlint/ensure@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-19.5.0.tgz#b087374a6a0a0140e5925a82901d234885d9f6dd" + integrity sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg== dependencies: - "@commitlint/types" "^15.0.0" - chalk "^4.0.0" + "@commitlint/types" "^19.5.0" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz#c13da8c03ea0379f30856111e27d57518e25b8a2" + integrity sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg== + +"@commitlint/format@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-19.5.0.tgz#d879db2d97d70ae622397839fb8603d56e85a250" + integrity sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A== + dependencies: + "@commitlint/types" "^19.5.0" + chalk "^5.3.0" + +"@commitlint/is-ignored@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz#6adb9097d36b68e00b9c06a73d7a08e9f54c54dc" + integrity sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw== + dependencies: + "@commitlint/types" "^19.5.0" + semver "^7.6.0" + +"@commitlint/lint@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.6.0.tgz#f9fc9b11b808c96bd3f85e882e056daabac40c36" + integrity sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg== + dependencies: + "@commitlint/is-ignored" "^19.6.0" + "@commitlint/parse" "^19.5.0" + "@commitlint/rules" "^19.6.0" + "@commitlint/types" "^19.5.0" + +"@commitlint/load@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.5.0.tgz#67f90a294894d1f99b930b6152bed2df44a81794" + integrity sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA== + dependencies: + "@commitlint/config-validator" "^19.5.0" + "@commitlint/execute-rule" "^19.5.0" + "@commitlint/resolve-extends" "^19.5.0" + "@commitlint/types" "^19.5.0" + chalk "^5.3.0" + cosmiconfig "^9.0.0" + cosmiconfig-typescript-loader "^5.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" -"@commitlint/is-ignored@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-15.0.0.tgz#382bf9f6f8d810f2ffc59ccc527f4389eadd7949" - integrity sha512-edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg== - dependencies: - "@commitlint/types" "^15.0.0" - semver "7.3.5" +"@commitlint/message@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-19.5.0.tgz#c062d9a1d2b3302c3a8cac25d6d1125ea9c019b2" + integrity sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ== -"@commitlint/lint@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-15.0.0.tgz#a93b8896fb25b05ab2ed0246d365f4908654588d" - integrity sha512-hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw== +"@commitlint/parse@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-19.5.0.tgz#b450dad9b5a95ac5ba472d6d0fdab822dce946fc" + integrity sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw== dependencies: - "@commitlint/is-ignored" "^15.0.0" - "@commitlint/parse" "^15.0.0" - "@commitlint/rules" "^15.0.0" - "@commitlint/types" "^15.0.0" + "@commitlint/types" "^19.5.0" + conventional-changelog-angular "^7.0.0" + conventional-commits-parser "^5.0.0" -"@commitlint/load@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-15.0.0.tgz#5bd391c1387aafe92b54cf2a86b76a5228fcf4ef" - integrity sha512-Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg== +"@commitlint/read@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-19.5.0.tgz#601f9f1afe69852b0f28aa81cd455b40979fad6b" + integrity sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ== dependencies: - "@commitlint/execute-rule" "^15.0.0" - "@commitlint/resolve-extends" "^15.0.0" - "@commitlint/types" "^15.0.0" - "@endemolshinegroup/cosmiconfig-typescript-loader" "^3.0.2" - chalk "^4.0.0" - cosmiconfig "^7.0.0" - lodash "^4.17.19" + "@commitlint/top-level" "^19.5.0" + "@commitlint/types" "^19.5.0" + git-raw-commits "^4.0.0" + minimist "^1.2.8" + tinyexec "^0.3.0" + +"@commitlint/resolve-extends@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz#f3ec33e12d10df90cae0bfad8e593431fb61b18e" + integrity sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA== + dependencies: + "@commitlint/config-validator" "^19.5.0" + "@commitlint/types" "^19.5.0" + global-directory "^4.0.1" + import-meta-resolve "^4.0.0" + lodash.mergewith "^4.6.2" resolve-from "^5.0.0" - typescript "^4.4.3" - -"@commitlint/message@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-15.0.0.tgz#98a38aca1b3cd996a0fcdbd9ad67e9039df60b0a" - integrity sha512-L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ== -"@commitlint/parse@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-15.0.0.tgz#cac77b7514748b8d01d00c0e67d5e54c695c302c" - integrity sha512-7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw== +"@commitlint/rules@^19.6.0": + version "19.6.0" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.6.0.tgz#2436da7974c3cf2a7236257f3ef5dd40c4d91312" + integrity sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw== dependencies: - "@commitlint/types" "^15.0.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" + "@commitlint/ensure" "^19.5.0" + "@commitlint/message" "^19.5.0" + "@commitlint/to-lines" "^19.5.0" + "@commitlint/types" "^19.5.0" -"@commitlint/read@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-15.0.0.tgz#da839f3b4d49b05586a9cd2666cc8c4a36b9ec91" - integrity sha512-5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw== - dependencies: - "@commitlint/top-level" "^15.0.0" - "@commitlint/types" "^15.0.0" - fs-extra "^10.0.0" - git-raw-commits "^2.0.0" +"@commitlint/to-lines@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-19.5.0.tgz#e4b7f34f09064568c96a74de4f1fc9f466c4d472" + integrity sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ== -"@commitlint/resolve-extends@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz#baf21227e2ac52cef546ec35dd6732e9b0b6e57c" - integrity sha512-7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg== +"@commitlint/top-level@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-19.5.0.tgz#0017ffe39b5ba3611a1debd62efe28803601a14f" + integrity sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng== dependencies: - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" + find-up "^7.0.0" -"@commitlint/rules@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-15.0.0.tgz#326370abc004492fcb5543198d1d55b14e25e3c8" - integrity sha512-SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA== +"@commitlint/types@^19.5.0": + version "19.5.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.5.0.tgz#c5084d1231d4dd50e40bdb656ee7601f691400b3" + integrity sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg== dependencies: - "@commitlint/ensure" "^15.0.0" - "@commitlint/message" "^15.0.0" - "@commitlint/to-lines" "^15.0.0" - "@commitlint/types" "^15.0.0" - execa "^5.0.0" - -"@commitlint/to-lines@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-15.0.0.tgz#b86ac98f319688990ecc2e09227fadf591b65c92" - integrity sha512-mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw== - -"@commitlint/top-level@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-15.0.0.tgz#467ec8377e81dfc916e1a20a27558862be1a4254" - integrity sha512-7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A== - dependencies: - find-up "^5.0.0" - -"@commitlint/types@^15.0.0": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-15.0.0.tgz#46fa7bda3e6340caf3e3a2e415bcb78ff0195eed" - integrity sha512-OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw== - dependencies: - chalk "^4.0.0" + "@types/conventional-commits-parser" "^5.0.0" + chalk "^5.3.0" "@cspotcode/source-map-support@^0.8.0": version "0.8.1" @@ -1453,16 +1468,6 @@ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== -"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d" - integrity sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA== - dependencies: - lodash.get "^4" - make-error "^1" - ts-node "^9" - tslib "^2" - "@ericcornelissen/bash-parser@0.5.3": version "0.5.3" resolved "https://registry.yarnpkg.com/@ericcornelissen/bash-parser/-/bash-parser-0.5.3.tgz#cda9f0e9ed3bcf62c29c277de778726425e03b0a" @@ -5764,6 +5769,13 @@ dependencies: "@types/node" "*" +"@types/conventional-commits-parser@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#8c9d23e0b415b24b91626d07017303755d542dc8" + integrity sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ== + dependencies: + "@types/node" "*" + "@types/core-js@^2.5.5": version "2.5.8" resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-2.5.8.tgz#d5c6ec44f2f3328653dce385ae586bd8261f8e85" @@ -6572,7 +6584,7 @@ dependencies: argparse "^2.0.1" -JSONStream@^1.0.4: +JSONStream@^1.0.4, JSONStream@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -6712,6 +6724,16 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@^8.11.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -7750,6 +7772,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -8178,7 +8205,7 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: +conventional-changelog-angular@^5.0.12: version "5.0.13" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== @@ -8186,14 +8213,19 @@ conventional-changelog-angular@^5.0.11, conventional-changelog-angular@^5.0.12: compare-func "^2.0.0" q "^1.5.1" -conventional-changelog-conventionalcommits@^4.3.1: - version "4.6.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz#0765490f56424b46f6cb4db9135902d6e5a36dc2" - integrity sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g== +conventional-changelog-angular@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-conventionalcommits@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz#aa5da0f1b2543094889e8cf7616ebe1a8f5c70d5" + integrity sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== dependencies: compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" conventional-changelog-core@^4.2.4: version "4.2.4" @@ -8243,7 +8275,7 @@ conventional-commits-filter@^2.0.7: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: +conventional-commits-parser@^3.2.0: version "3.2.4" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== @@ -8255,6 +8287,16 @@ conventional-commits-parser@^3.2.0, conventional-commits-parser@^3.2.2: split2 "^3.0.0" through2 "^4.0.0" +conventional-commits-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" + integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + dependencies: + JSONStream "^1.3.5" + is-text-path "^2.0.0" + meow "^12.0.1" + split2 "^4.0.0" + conventional-recommended-bump@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" @@ -8335,6 +8377,13 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +cosmiconfig-typescript-loader@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz#d8d02bff04e63faa2dc794d618168bd764c704be" + integrity sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA== + dependencies: + jiti "^1.21.6" + cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" @@ -8346,6 +8395,16 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -8526,6 +8585,11 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== +dargs@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" + integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -9094,7 +9158,7 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -10129,6 +10193,11 @@ fast-unique-numbers@^8.0.7: "@babel/runtime" "^7.22.6" tslib "^2.6.1" +fast-uri@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" + integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== + fastest-stable-stringify@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76" @@ -10310,6 +10379,15 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" +find-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" + integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== + dependencies: + locate-path "^7.2.0" + path-exists "^5.0.0" + unicorn-magic "^0.1.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -10721,7 +10799,7 @@ giget@^1.0.0: pathe "^1.1.0" tar "^6.1.13" -git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: +git-raw-commits@^2.0.8: version "2.0.11" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== @@ -10732,6 +10810,15 @@ git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: split2 "^3.0.0" through2 "^4.0.0" +git-raw-commits@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" + integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== + dependencies: + dargs "^8.0.0" + meow "^12.0.1" + split2 "^4.0.0" + git-remote-origin-url@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" @@ -10840,12 +10927,12 @@ glob@^8.0.1, glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -global-dirs@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== dependencies: - ini "^1.3.4" + ini "4.1.1" global-dirs@^3.0.0: version "3.0.1" @@ -11316,7 +11403,7 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.2.tgz#f89d910f8dfb6e15c03b2cae2faaf8c1f66455fe" integrity sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -11332,6 +11419,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +import-meta-resolve@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -11365,6 +11457,11 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + ini@^1.3.2, ini@^1.3.4: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -11830,6 +11927,13 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9: version "1.1.12" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" @@ -12477,7 +12581,7 @@ jest@26.6.0: import-local "^3.0.2" jest-cli "^26.6.0" -jiti@^1.21.0: +jiti@^1.21.0, jiti@^1.21.6: version "1.21.6" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== @@ -13002,7 +13106,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: +locate-path@^7.1.0, locate-path@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== @@ -13024,11 +13128,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.get@^4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -13039,16 +13138,41 @@ lodash.ismatch@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" @@ -13059,7 +13183,12 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.x, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +lodash@4.x, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -13178,7 +13307,7 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@1.x, make-error@^1, make-error@^1.1.1: +make-error@1.x, make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -13316,6 +13445,11 @@ memoizerific@^1.11.3: dependencies: map-or-similar "^1.5.0" +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -14463,7 +14597,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== @@ -15593,22 +15727,15 @@ resolve-file@^0.3.0: lazy-cache "^2.0.2" resolve "^1.2.0" -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-global@1.0.0, resolve-global@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" - integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== - dependencies: - global-dirs "^0.1.1" +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-pkg-maps@^1.0.0: version "1.0.0" @@ -15729,10 +15856,10 @@ rollup-plugin-terser@^7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup@^2.70.1: - version "2.79.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" - integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== +rollup@^2.79.2: + version "2.79.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090" + integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== optionalDependencies: fsevents "~2.3.2" @@ -15981,6 +16108,11 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.6.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -16304,7 +16436,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -16392,6 +16524,11 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -16920,6 +17057,11 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== +text-extensions@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" + integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -16965,6 +17107,11 @@ tiny-invariant@^1.3.1: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== +tinyexec@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" + integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -17137,18 +17284,6 @@ ts-node@^10.4.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-node@^9: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - ts-pattern@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ts-pattern/-/ts-pattern-4.3.0.tgz#7a995b39342f1b00d1507c2d2f3b90ea16e178a6" @@ -17178,7 +17313,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.6.1: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== @@ -17330,7 +17465,7 @@ typedoc@^0.24.8: minimatch "^9.0.0" shiki "^0.14.1" -"typescript@^3 || ^4", typescript@^4.4.3: +"typescript@^3 || ^4": version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -17405,6 +17540,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" From 4818432b75004981fb772e37acb52c920014c2b5 Mon Sep 17 00:00:00 2001 From: Kaustubh Kumar Date: Thu, 28 Nov 2024 16:31:58 +0530 Subject: [PATCH 10/11] revert: remove framer motion and nc for ios (#3388) --- packages/roomkit-react/package.json | 3 +- .../Prebuilt/components/VideoLayouts/Grid.tsx | 61 +++++++++---------- .../src/VideoTile/StyledVideoTile.tsx | 17 +----- yarn.lock | 15 ++--- 4 files changed, 36 insertions(+), 60 deletions(-) diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json index 11c2c5bd90..a816c1bea7 100644 --- a/packages/roomkit-react/package.json +++ b/packages/roomkit-react/package.json @@ -76,7 +76,7 @@ }, "dependencies": { "@100mslive/hls-player": "0.3.24", - "@100mslive/hms-noise-cancellation": "0.0.2-alpha.7", + "@100mslive/hms-noise-cancellation": "0.0.1", "@100mslive/hms-virtual-background": "1.13.24", "@100mslive/hms-whiteboard": "0.0.14", "@100mslive/react-icons": "0.10.24", @@ -102,7 +102,6 @@ "@stitches/react": "1.3.1-1", "emoji-mart": "^5.2.2", "eventemitter2": "^6.4.9", - "framer-motion": "^11.11.0", "lodash.merge": "^4.6.2", "qrcode.react": "^3.1.0", "react-dom": "^18.2.0", diff --git a/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx b/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx index dfd47f9b0c..751d5eed8b 100644 --- a/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx +++ b/packages/roomkit-react/src/Prebuilt/components/VideoLayouts/Grid.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { AnimatePresence } from 'framer-motion'; import { TrackWithPeerAndDimensions } from '@100mslive/react-sdk'; import { Box } from '../../../Layout'; // @ts-ignore: No implicit Any @@ -10,37 +9,35 @@ export const Grid = React.forwardRef { const videoTileProps = useVideoTileContext(); return ( - - - {tiles?.map(tile => { - return ( - - ); - })} - - + + {tiles?.map(tile => { + return ( + + ); + })} + ); }, ); diff --git a/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx b/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx index 731e33ec8b..5dc96fdb48 100644 --- a/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx +++ b/packages/roomkit-react/src/VideoTile/StyledVideoTile.tsx @@ -1,4 +1,3 @@ -import { motion } from 'framer-motion'; import { Box } from '../Layout'; import { styled } from '../Theme'; import { flexCenter } from '../utils'; @@ -7,18 +6,6 @@ export const Root = styled('div', { padding: '0.75rem', }); -const MotionRoot = motion(Root); -MotionRoot.defaultProps = { - layout: true, - transition: { - type: 'spring', - stiffness: 300, - damping: 30, - mass: 1, - duration: 0.15, - }, -}; - const Container = styled('div', { width: '100%', height: '100%', @@ -137,7 +124,7 @@ const AvatarContainer = styled(Box, { }); interface VideoTileType { - Root: typeof MotionRoot; + Root: typeof Root; Container: typeof Container; Overlay: typeof Overlay; Info: typeof Info; @@ -148,7 +135,7 @@ interface VideoTileType { } export const StyledVideoTile: VideoTileType = { - Root: MotionRoot, + Root, Container, Overlay, Info, diff --git a/yarn.lock b/yarn.lock index 13e2f8c3fd..c24338fdd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@100mslive/hms-noise-cancellation@0.0.2-alpha.7": - version "0.0.2-alpha.7" - resolved "https://registry.yarnpkg.com/@100mslive/hms-noise-cancellation/-/hms-noise-cancellation-0.0.2-alpha.7.tgz#049221bf8cac991c2e29594cf92e4022d1a8190b" - integrity sha512-XRhhbGWDWnSnKK6cfSiVaBpRyTleG/ysZr36Vec3WJab26rLBP7B9JTn0kT8MYpbBW+1mmyuPjR7vwI20Qo/vQ== +"@100mslive/hms-noise-cancellation@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@100mslive/hms-noise-cancellation/-/hms-noise-cancellation-0.0.1.tgz#037c8bdfb6b2d7bf12f9d257422150fe6ca43acb" + integrity sha512-DGnzcXRDJREWypIjGX70er+f2k/XLLRF41lrXPs1+PtB1imdEkECPPS0Fg4BA0BCWKDNAGTZBHZPrBDgUmr9Lw== "@100mslive/types-prebuilt@0.12.12": version "0.12.12" @@ -10511,13 +10511,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -framer-motion@^11.11.0: - version "11.11.9" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-11.11.9.tgz#a60ddf5abbd924812df923068628537a5c6ad8b9" - integrity sha512-XpdZseuCrZehdHGuW22zZt3SF5g6AHJHJi7JwQIigOznW4Jg1n0oGPMJQheMaKLC+0rp5gxUKMRYI6ytd3q4RQ== - dependencies: - tslib "^2.4.0" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" From ed69e8116758a121b7748e57fe028f350b3a4d2c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 19:42:36 +0530 Subject: [PATCH 11/11] ci: update versions for release (#3390) Co-authored-by: KaustubhKumar05 <57426646+KaustubhKumar05@users.noreply.github.com> --- .../prebuilt-react-integration/package.json | 2 +- packages/hls-player/package.json | 4 +-- packages/hls-stats/package.json | 2 +- packages/hms-video-store/package.json | 2 +- packages/hms-virtual-background/package.json | 6 ++-- packages/hms-whiteboard/package.json | 2 +- packages/react-icons/package.json | 2 +- packages/react-sdk/package.json | 4 +-- packages/roomkit-react/package.json | 12 +++---- packages/roomkit-web/package.json | 4 +-- yarn.lock | 31 +++++++++++++++++-- 11 files changed, 48 insertions(+), 23 deletions(-) diff --git a/examples/prebuilt-react-integration/package.json b/examples/prebuilt-react-integration/package.json index 8c838ca36b..643cb76447 100644 --- a/examples/prebuilt-react-integration/package.json +++ b/examples/prebuilt-react-integration/package.json @@ -10,7 +10,7 @@ "preview": "vite preview" }, "dependencies": { - "@100mslive/roomkit-react": "0.3.24", + "@100mslive/roomkit-react": "0.3.25", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/hls-player/package.json b/packages/hls-player/package.json index 5e0334e5ed..b0e2fff8e9 100644 --- a/packages/hls-player/package.json +++ b/packages/hls-player/package.json @@ -1,6 +1,6 @@ { "name": "@100mslive/hls-player", - "version": "0.3.24", + "version": "0.3.25", "description": "HLS client library which uses HTML5 Video element and Media Source Extension for playback", "main": "dist/index.cjs.js", "module": "dist/index.js", @@ -36,7 +36,7 @@ "author": "100ms", "license": "MIT", "dependencies": { - "@100mslive/hls-stats": "0.4.24", + "@100mslive/hls-stats": "0.4.25", "eventemitter2": "^6.4.9", "hls.js": "1.4.12" }, diff --git a/packages/hls-stats/package.json b/packages/hls-stats/package.json index fc3522ae93..6b7f077190 100644 --- a/packages/hls-stats/package.json +++ b/packages/hls-stats/package.json @@ -1,6 +1,6 @@ { "name": "@100mslive/hls-stats", - "version": "0.4.24", + "version": "0.4.25", "description": "A simple library that provides stats for your hls stream", "main": "dist/index.cjs.js", "module": "dist/index.js", diff --git a/packages/hms-video-store/package.json b/packages/hms-video-store/package.json index dcfed593f6..d16cebb840 100644 --- a/packages/hms-video-store/package.json +++ b/packages/hms-video-store/package.json @@ -1,5 +1,5 @@ { - "version": "0.12.24", + "version": "0.12.25", "license": "MIT", "repository": { "type": "git", diff --git a/packages/hms-virtual-background/package.json b/packages/hms-virtual-background/package.json index 3948195b3d..0df815ac53 100755 --- a/packages/hms-virtual-background/package.json +++ b/packages/hms-virtual-background/package.json @@ -1,5 +1,5 @@ { - "version": "1.13.24", + "version": "1.13.25", "license": "MIT", "name": "@100mslive/hms-virtual-background", "author": "100ms", @@ -62,10 +62,10 @@ "format": "prettier --write src/**/*.ts" }, "peerDependencies": { - "@100mslive/hms-video-store": "0.12.24" + "@100mslive/hms-video-store": "0.12.25" }, "devDependencies": { - "@100mslive/hms-video-store": "0.12.24" + "@100mslive/hms-video-store": "0.12.25" }, "dependencies": { "@mediapipe/selfie_segmentation": "^0.1.1632777926", diff --git a/packages/hms-whiteboard/package.json b/packages/hms-whiteboard/package.json index 99390f3495..5692c97880 100644 --- a/packages/hms-whiteboard/package.json +++ b/packages/hms-whiteboard/package.json @@ -2,7 +2,7 @@ "name": "@100mslive/hms-whiteboard", "author": "100ms", "license": "MIT", - "version": "0.0.14", + "version": "0.0.15", "main": "dist/index.cjs.js", "module": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/react-icons/package.json b/packages/react-icons/package.json index 024bf193d9..84da688e74 100644 --- a/packages/react-icons/package.json +++ b/packages/react-icons/package.json @@ -4,7 +4,7 @@ "main": "dist/index.cjs.js", "module": "dist/index.js", "typings": "dist/index.d.ts", - "version": "0.10.24", + "version": "0.10.25", "author": "100ms", "license": "MIT", "repository": { diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json index 0244fc3621..8af62c9e6d 100644 --- a/packages/react-sdk/package.json +++ b/packages/react-sdk/package.json @@ -4,7 +4,7 @@ "main": "dist/index.cjs.js", "module": "dist/index.js", "typings": "dist/index.d.ts", - "version": "0.10.24", + "version": "0.10.25", "author": "100ms", "license": "MIT", "repository": { @@ -48,7 +48,7 @@ "react": ">=16.8 <19.0.0" }, "dependencies": { - "@100mslive/hms-video-store": "0.12.24", + "@100mslive/hms-video-store": "0.12.25", "react-resize-detector": "^7.0.0", "zustand": "^3.6.2" } diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json index a816c1bea7..851029877e 100644 --- a/packages/roomkit-react/package.json +++ b/packages/roomkit-react/package.json @@ -10,7 +10,7 @@ "prebuilt", "roomkit" ], - "version": "0.3.24", + "version": "0.3.25", "author": "100ms", "license": "MIT", "repository": { @@ -75,12 +75,12 @@ "react": ">=17.0.2 <19.0.0" }, "dependencies": { - "@100mslive/hls-player": "0.3.24", + "@100mslive/hls-player": "0.3.25", "@100mslive/hms-noise-cancellation": "0.0.1", - "@100mslive/hms-virtual-background": "1.13.24", - "@100mslive/hms-whiteboard": "0.0.14", - "@100mslive/react-icons": "0.10.24", - "@100mslive/react-sdk": "0.10.24", + "@100mslive/hms-virtual-background": "1.13.25", + "@100mslive/hms-whiteboard": "0.0.15", + "@100mslive/react-icons": "0.10.25", + "@100mslive/react-sdk": "0.10.25", "@100mslive/types-prebuilt": "0.12.12", "@emoji-mart/data": "^1.0.6", "@emoji-mart/react": "^1.0.1", diff --git a/packages/roomkit-web/package.json b/packages/roomkit-web/package.json index b8ed70a12e..c1dc9eeb6e 100644 --- a/packages/roomkit-web/package.json +++ b/packages/roomkit-web/package.json @@ -1,6 +1,6 @@ { "name": "@100mslive/roomkit-web", - "version": "0.2.24", + "version": "0.2.25", "description": "A web component implementation of 100ms Prebuilt component", "keywords": [ "web-components", @@ -33,7 +33,7 @@ "build": "rm -rf dist && node ../../scripts/build-webapp" }, "dependencies": { - "@100mslive/roomkit-react": "0.3.24", + "@100mslive/roomkit-react": "0.3.25", "@r2wc/react-to-web-component": "2.0.2" } } diff --git a/yarn.lock b/yarn.lock index c24338fdd8..dca0b2a3a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16671,7 +16671,16 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -16776,7 +16785,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -18132,7 +18148,7 @@ worker-timers@^7.0.40: worker-timers-broker "^6.0.95" worker-timers-worker "^7.0.59" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -18150,6 +18166,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"