diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 8dc2857f..ec0e86bb 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -5,7 +5,7 @@ runs: using: composite steps: - name: Install pnpm 🤏🏻 - uses: pnpm/action-setup@v2.2.4 + uses: pnpm/action-setup@v4 with: version: latest diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 290103e0..c1114887 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,7 +13,7 @@ on: - iris-web-rtm cdn: description: 'upload to cdn' - default: true + default: false type: boolean jobs: diff --git a/.gitignore b/.gitignore index 43d78e25..03558746 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ js/ docs/ __temp +# Optional eslint cache +.eslintcache \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 00000000..b5a5eb07 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..6b8c88da --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,12 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged --allow-empty + +if command -v gitleaks >/dev/null 2>&1; + then + echo "gitleaks found, proceeding..." + gitleaks protect --staged --source . -v agora-rtc-react.git -c .gitleaks.toml + else + echo "gitleaks not found, skip" + fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 795a0a51..e59353c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # IRIS_WEB +## [0.8.0-pre](https://github.com/AgoraIO-Extensions/iris_web/compare/v0.7.0...v0.8.0-pre) (2024-08-07) + + +### Bug Fixes + +* muteRemoteStream api ([6bf5895](https://github.com/AgoraIO-Extensions/iris_web/commit/6bf5895268cfd63a62689e18598fb009fc46f04c)) + ## [0.7.0](https://github.com/AgoraIO-Extensions/iris_web/compare/v0.5.0...v0.7.0) (2024-05-08) diff --git a/package.json b/package.json index 3f853dc5..11aebf70 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,12 @@ "private": true, "description": "iris web", "scripts": { + "prepare": "husky install", "build": "pnpm -F iris-web-rtc run build && pnpm -F iris-web-rtc-fake run build", "test": "pnpm -F iris-web-rtc run test", "lint": "eslint --ext .ts,.tsx . && prettier --check .", "lint:fix": "eslint --fix --ext .ts,.tsx . && prettier --write .", + "typecheck": "pnpm -F iris-web-rtc run typecheck", "terra": "cd scripts/terra &&yarn terra", "start": "sh ./scripts/build_local_dev.sh", "release": "release-it" @@ -27,21 +29,51 @@ } }, "devDependencies": { + "@commitlint/config-conventional": "^17.6.7", "@release-it/conventional-changelog": "^7.0.1", "@types/eslint": "^8.44.2", "@types/node": "^18.17.9", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", + "commitlint": "^17.6.7", + "cross-env": "^7.0.3", "eslint": "^8.4.1", "eslint-config-prettier": "^8.8.0", "eslint-plugin-auto-import": "^0.1.1", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-unused-imports": "^3.0.0", + "husky": "^8.0.3", "prettier": "^2.0.5", "release-it": "^16.1.3", + "lint-staged": "^14.0.0", "tsup": "^7.1.0" }, + "husky": { + "hooks": { + "pre-commit": "npm run lint", + "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS" + } + }, + "lint-staged": { + "*.{js,jsx,ts,tsx}": [ + "cross-env NODE_ENV=development eslint --cache" + ], + "*.json,.{eslintrc,prettierrc}": [ + "prettier --ignore-path .eslintignore --parser json --write" + ], + "*.{css,scss}": [ + "prettier --ignore-path .eslintignore --write" + ], + "*.{html,md,mdx,yml}": [ + "prettier --ignore-path .eslintignore --write" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, "release-it": { "git": { "commitMessage": "chore: release ${version}", diff --git a/packages/@iris/rtc/generate/AgoraBase.ts b/packages/@iris/rtc/generate/AgoraBase.ts index f162aada..eb8a0f96 100644 --- a/packages/@iris/rtc/generate/AgoraBase.ts +++ b/packages/@iris/rtc/generate/AgoraBase.ts @@ -85,6 +85,7 @@ export enum ERROR_CODE_TYPE { ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED = 119, ERR_DECRYPTION_FAILED = 120, ERR_INVALID_USER_ID = 121, + ERR_DATASTREAM_DECRYPTION_FAILED = 122, ERR_CLIENT_IS_BANNED_BY_SERVER = 123, ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH = 130, ERR_LICENSE_CREDENTIAL_INVALID = 131, @@ -253,6 +254,13 @@ export enum VIDEO_CODEC_TYPE { VIDEO_CODEC_GENERIC_JPEG = 20, } +export enum CAMERA_FOCAL_LENGTH_TYPE { + CAMERA_FOCAL_LENGTH_DEFAULT = 0, + CAMERA_FOCAL_LENGTH_WIDE_ANGLE = 1, + CAMERA_FOCAL_LENGTH_ULTRA_WIDE = 2, + CAMERA_FOCAL_LENGTH_TELEPHOTO = 3, +} + export enum TCcMode { CC_ENABLED = 0, CC_DISABLED = 1, @@ -276,6 +284,7 @@ export enum AUDIO_CODEC_TYPE { AUDIO_CODEC_JC1 = 10, AUDIO_CODEC_HEAAC2 = 11, AUDIO_CODEC_LPCNET = 12, + AUDIO_CODEC_OPUSMC = 13, } export enum AUDIO_ENCODING_TYPE { @@ -337,6 +346,12 @@ export enum H264PacketizeMode { export enum VIDEO_STREAM_TYPE { VIDEO_STREAM_HIGH = 0, VIDEO_STREAM_LOW = 1, + VIDEO_STREAM_LAYER_1 = 4, + VIDEO_STREAM_LAYER_2 = 5, + VIDEO_STREAM_LAYER_3 = 6, + VIDEO_STREAM_LAYER_4 = 7, + VIDEO_STREAM_LAYER_5 = 8, + VIDEO_STREAM_LAYER_6 = 9, } export class VideoSubscriptionOptions { @@ -371,6 +386,8 @@ export class EncodedVideoFrameInfo { decodeTimeMs?: number; streamType?: VIDEO_STREAM_TYPE; + + presentationMs?: number; } export enum COMPRESSION_PREFERENCE { @@ -388,6 +405,8 @@ export class AdvanceOptions { encodingPreference?: ENCODING_PREFERENCE; compressionPreference?: COMPRESSION_PREFERENCE; + + encodeAlpha?: boolean; } export enum VIDEO_MIRROR_MODE_TYPE { @@ -396,6 +415,11 @@ export enum VIDEO_MIRROR_MODE_TYPE { VIDEO_MIRROR_MODE_DISABLED = 2, } +export enum CAMERA_FORMAT_TYPE { + CAMERA_FORMAT_NV12 = 0, + CAMERA_FORMAT_BGRA = 1, +} + export enum CODEC_CAP_MASK { CODEC_CAP_MASK_NONE = 0, CODEC_CAP_MASK_HW_DEC = 1, @@ -418,6 +442,12 @@ export class CodecCapInfo { codecLevels?: CodecCapLevels; } +export class FocalLengthInfo { + cameraDirection?: number; + + focalLengthType?: CAMERA_FOCAL_LENGTH_TYPE; +} + export class VideoEncoderConfiguration { codecType?: VIDEO_CODEC_TYPE; @@ -458,6 +488,29 @@ export class SimulcastStreamConfig { framerate?: number; } +export enum StreamLayerIndex { + STREAM_LAYER_1 = 0, + STREAM_LAYER_2 = 1, + STREAM_LAYER_3 = 2, + STREAM_LAYER_4 = 3, + STREAM_LAYER_5 = 4, + STREAM_LAYER_6 = 5, + STREAM_LOW = 6, + STREAM_LAYER_COUNT_MAX = 7, +} + +export class StreamLayerConfig { + dimensions?: VideoDimensions; + + framerate?: number; + + enable?: boolean; +} + +export class SimulcastConfig { + configs?: StreamLayerConfig[]; +} + export class Rectangle { x?: number; @@ -639,6 +692,7 @@ export enum SCREEN_SCENARIO_TYPE { export enum VIDEO_APPLICATION_SCENARIO_TYPE { APPLICATION_SCENARIO_GENERAL = 0, APPLICATION_SCENARIO_MEETING = 1, + APPLICATION_SCENARIO_1V1 = 2, } export enum VIDEO_QOE_PREFERENCE_TYPE { @@ -655,6 +709,15 @@ export enum CAPTURE_BRIGHTNESS_LEVEL_TYPE { CAPTURE_BRIGHTNESS_LEVEL_DARK = 2, } +export enum CAMERA_STABILIZATION_MODE { + CAMERA_STABILIZATION_MODE_OFF = -1, + CAMERA_STABILIZATION_MODE_AUTO = 0, + CAMERA_STABILIZATION_MODE_LEVEL_1 = 1, + CAMERA_STABILIZATION_MODE_LEVEL_2 = 2, + CAMERA_STABILIZATION_MODE_LEVEL_3 = 3, + CAMERA_STABILIZATION_MODE_MAX_LEVEL = 3, +} + export enum LOCAL_AUDIO_STREAM_STATE { LOCAL_AUDIO_STREAM_STATE_STOPPED = 0, LOCAL_AUDIO_STREAM_STATE_RECORDING = 1, @@ -695,6 +758,8 @@ export enum LOCAL_VIDEO_STREAM_REASON { LOCAL_VIDEO_STREAM_REASON_DEVICE_NOT_FOUND = 8, LOCAL_VIDEO_STREAM_REASON_DEVICE_DISCONNECTED = 9, LOCAL_VIDEO_STREAM_REASON_DEVICE_INVALID_ID = 10, + LOCAL_VIDEO_STREAM_REASON_DEVICE_INTERRUPT = 14, + LOCAL_VIDEO_STREAM_REASON_DEVICE_FATAL_ERROR = 15, LOCAL_VIDEO_STREAM_REASON_DEVICE_SYSTEM_PRESSURE = 101, LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_MINIMIZED = 11, LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_CLOSED = 12, @@ -708,6 +773,7 @@ export enum LOCAL_VIDEO_STREAM_REASON { LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED = 27, LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_PAUSED = 28, LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_RESUMED = 29, + LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED = 30, } export enum REMOTE_AUDIO_STATE { @@ -727,6 +793,8 @@ export enum REMOTE_AUDIO_STATE_REASON { REMOTE_AUDIO_REASON_REMOTE_MUTED = 5, REMOTE_AUDIO_REASON_REMOTE_UNMUTED = 6, REMOTE_AUDIO_REASON_REMOTE_OFFLINE = 7, + REMOTE_AUDIO_REASON_NO_PACKET_RECEIVE = 8, + REMOTE_AUDIO_REASON_LOCAL_PLAY_FAILED = 9, } export enum REMOTE_VIDEO_STATE { @@ -770,8 +838,6 @@ export class VideoTrackInfo { channelId?: string; - streamType?: VIDEO_STREAM_TYPE; - codecType?: VIDEO_CODEC_TYPE; encodedFrameOnly?: boolean; @@ -1187,6 +1253,39 @@ export class BeautyOptions { sharpnessLevel?: number; } +export enum FACE_SHAPE_AREA { + FACE_SHAPE_AREA_NONE = -1, + FACE_SHAPE_AREA_HEADSCALE = 0, + FACE_SHAPE_AREA_FOREHEAD = 1, + FACE_SHAPE_AREA_FACECONTOUR = 2, + FACE_SHAPE_AREA_FACELENGTH = 3, + FACE_SHAPE_AREA_FACEWIDTH = 4, + FACE_SHAPE_AREA_CHEEKBONE = 5, + FACE_SHAPE_AREA_CHEEK = 6, + FACE_SHAPE_AREA_CHIN = 7, + FACE_SHAPE_AREA_EYESCALE = 8, + FACE_SHAPE_AREA_NOSELENGTH = 9, + FACE_SHAPE_AREA_NOSEWIDTH = 10, + FACE_SHAPE_AREA_MOUTHSCALE = 11, +} + +export class FaceShapeAreaOptions { + shapeArea?: FACE_SHAPE_AREA; + + shapeIntensity?: number; +} + +export enum FACE_SHAPE_BEAUTY_STYLE { + FACE_SHAPE_BEAUTY_STYLE_FEMALE = 0, + FACE_SHAPE_BEAUTY_STYLE_MALE = 1, +} + +export class FaceShapeBeautyOptions { + shapeStyle?: FACE_SHAPE_BEAUTY_STYLE; + + styleIntensity?: number; +} + export enum LOW_LIGHT_ENHANCE_MODE { LOW_LIGHT_ENHANCE_AUTO = 0, LOW_LIGHT_ENHANCE_MANUAL = 1, @@ -1299,6 +1398,7 @@ export enum AUDIO_EFFECT_PRESET { ROOM_ACOUSTICS_ETHEREAL = 33621760, ROOM_ACOUSTICS_3D_VOICE = 33622016, ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND = 33622272, + ROOM_ACOUSTICS_CHORUS = 33623296, VOICE_CHANGER_EFFECT_UNCLE = 33685760, VOICE_CHANGER_EFFECT_OLDMAN = 33686016, VOICE_CHANGER_EFFECT_BOY = 33686272, @@ -1336,6 +1436,19 @@ export enum HEADPHONE_EQUALIZER_PRESET { HEADPHONE_EQUALIZER_INEAR = 67108866, } +export enum VOICE_AI_TUNER_TYPE { + VOICE_AI_TUNER_MATURE_MALE = 0, + VOICE_AI_TUNER_FRESH_MALE = 1, + VOICE_AI_TUNER_ELEGANT_FEMALE = 2, + VOICE_AI_TUNER_SWEET_FEMALE = 3, + VOICE_AI_TUNER_WARM_MALE_SINGING = 4, + VOICE_AI_TUNER_GENTLE_FEMALE_SINGING = 5, + VOICE_AI_TUNER_HUSKY_MALE_SINGING = 6, + VOICE_AI_TUNER_WARM_ELEGANT_FEMALE_SINGING = 7, + VOICE_AI_TUNER_POWERFUL_MALE_SINGING = 8, + VOICE_AI_TUNER_DREAMY_FEMALE_SINGING = 9, +} + export class ScreenCaptureParameters { dimensions?: VideoDimensions; @@ -1434,6 +1547,7 @@ export enum AREA_CODE_EX { AREA_CODE_KR = 512, AREA_CODE_HKMC = 1024, AREA_CODE_US = 2048, + AREA_CODE_RU = 4096, AREA_CODE_OVS = 4294967294, } @@ -1519,12 +1633,16 @@ export class EncryptionConfig { encryptionKey?: string; encryptionKdfSalt?: number[]; + + datastreamEncryptionEnabled?: boolean; } export enum ENCRYPTION_ERROR_TYPE { ENCRYPTION_ERROR_INTERNAL_FAILURE = 0, ENCRYPTION_ERROR_DECRYPTION_FAILURE = 1, ENCRYPTION_ERROR_ENCRYPTION_FAILURE = 2, + ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE = 3, + ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE = 4, } export enum UPLOAD_ERROR_REASON { @@ -1577,6 +1695,7 @@ export enum EAR_MONITORING_FILTER_TYPE { EAR_MONITORING_FILTER_NONE = 1, EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS = 2, EAR_MONITORING_FILTER_NOISE_SUPPRESSION = 4, + EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER = 32768, } export enum THREAD_PRIORITY_TYPE { diff --git a/packages/@iris/rtc/generate/AgoraMediaBase.ts b/packages/@iris/rtc/generate/AgoraMediaBase.ts index fc91cfd1..a533c3f3 100644 --- a/packages/@iris/rtc/generate/AgoraMediaBase.ts +++ b/packages/@iris/rtc/generate/AgoraMediaBase.ts @@ -4,6 +4,16 @@ import { CallApiReturnType } from 'iris-web-core'; import { EncodedVideoFrameInfo } from './AgoraBase'; +export class ExtensionContext { + isValid?: boolean; + + uid?: number; + + providerName?: string; + + extensionName?: string; +} + export enum VIDEO_SOURCE_TYPE { VIDEO_SOURCE_CAMERA_PRIMARY = 0, VIDEO_SOURCE_CAMERA = 0, @@ -22,6 +32,7 @@ export enum VIDEO_SOURCE_TYPE { VIDEO_SOURCE_CAMERA_FOURTH = 12, VIDEO_SOURCE_SCREEN_THIRD = 13, VIDEO_SOURCE_SCREEN_FOURTH = 14, + VIDEO_SOURCE_SPEECH_DRIVEN = 15, VIDEO_SOURCE_UNKNOWN = 100, } @@ -71,6 +82,7 @@ export enum MEDIA_SOURCE_TYPE { RTC_IMAGE_GIF_SOURCE = 10, REMOTE_VIDEO_SOURCE = 11, TRANSCODED_VIDEO_SOURCE = 12, + SPEECH_DRIVEN_VIDEO_SOURCE = 13, UNKNOWN_MEDIA_SOURCE = 100, } @@ -127,6 +139,8 @@ export class AudioPcmFrame { bytes_per_sample?: BYTES_PER_SAMPLE; data_?: number[]; + + is_stereo_?: boolean; } export enum AUDIO_DUAL_MONO_MODE { @@ -148,8 +162,10 @@ export enum VIDEO_PIXEL_FORMAT { VIDEO_CVPIXEL_NV12 = 12, VIDEO_CVPIXEL_I420 = 13, VIDEO_CVPIXEL_BGRA = 14, + VIDEO_CVPIXEL_P010 = 15, VIDEO_PIXEL_I422 = 16, VIDEO_TEXTURE_ID3D11TEXTURE2D = 17, + VIDEO_PIXEL_I010 = 18, } export enum RENDER_MODE_TYPE { @@ -172,6 +188,109 @@ export interface IVideoFrameMetaInfo { getMetaInfoStr_c81192f(key: META_INFO_KEY): CallApiReturnType; } +export enum PrimaryID { + PRIMARYID_BT709 = 1, + PRIMARYID_UNSPECIFIED = 2, + PRIMARYID_BT470M = 4, + PRIMARYID_BT470BG = 5, + PRIMARYID_SMPTE170M = 6, + PRIMARYID_SMPTE240M = 7, + PRIMARYID_FILM = 8, + PRIMARYID_BT2020 = 9, + PRIMARYID_SMPTEST428 = 10, + PRIMARYID_SMPTEST431 = 11, + PRIMARYID_SMPTEST432 = 12, + PRIMARYID_JEDECP22 = 22, +} + +export enum RangeID { + RANGEID_INVALID = 0, + RANGEID_LIMITED = 1, + RANGEID_FULL = 2, + RANGEID_DERIVED = 3, +} + +export enum MatrixID { + MATRIXID_RGB = 0, + MATRIXID_BT709 = 1, + MATRIXID_UNSPECIFIED = 2, + MATRIXID_FCC = 4, + MATRIXID_BT470BG = 5, + MATRIXID_SMPTE170M = 6, + MATRIXID_SMPTE240M = 7, + MATRIXID_YCOCG = 8, + MATRIXID_BT2020_NCL = 9, + MATRIXID_BT2020_CL = 10, + MATRIXID_SMPTE2085 = 11, + MATRIXID_CDNCLS = 12, + MATRIXID_CDCLS = 13, + MATRIXID_BT2100_ICTCP = 14, +} + +export enum TransferID { + TRANSFERID_BT709 = 1, + TRANSFERID_UNSPECIFIED = 2, + TRANSFERID_GAMMA22 = 4, + TRANSFERID_GAMMA28 = 5, + TRANSFERID_SMPTE170M = 6, + TRANSFERID_SMPTE240M = 7, + TRANSFERID_LINEAR = 8, + TRANSFERID_LOG = 9, + TRANSFERID_LOG_SQRT = 10, + TRANSFERID_IEC61966_2_4 = 11, + TRANSFERID_BT1361_ECG = 12, + TRANSFERID_IEC61966_2_1 = 13, + TRANSFERID_BT2020_10 = 14, + TRANSFERID_BT2020_12 = 15, + TRANSFERID_SMPTEST2084 = 16, + TRANSFERID_SMPTEST428 = 17, + TRANSFERID_ARIB_STD_B67 = 18, +} + +export class ColorSpace { + primaries?: PrimaryID; + + transfer?: TransferID; + + matrix?: MatrixID; + + range?: RangeID; +} + +export class Hdr10MetadataInfo { + redPrimaryX?: number; + + redPrimaryY?: number; + + greenPrimaryX?: number; + + greenPrimaryY?: number; + + bluePrimaryX?: number; + + bluePrimaryY?: number; + + whitePointX?: number; + + whitePointY?: number; + + maxMasteringLuminance?: number; + + minMasteringLuminance?: number; + + maxContentLightLevel?: number; + + maxFrameAverageLightLevel?: number; +} + +export enum ALPHA_STITCH_MODE { + NO_ALPHA_STITCH = 0, + ALPHA_STITCH_UP = 1, + ALPHA_STITCH_BELOW = 2, + ALPHA_STITCH_LEFT = 3, + ALPHA_STITCH_RIGHT = 4, +} + export enum EGL_CONTEXT_TYPE { EGL_CONTEXT10 = 0, EGL_CONTEXT14 = 1, @@ -210,15 +329,27 @@ export class ExternalVideoFrame { textureId?: number; + fenceObject?: number; + matrix?: number[]; - metadata_buffer?: Uint8Array; + metadataBuffer?: Uint8Array; - metadata_size?: number; + metadataSize?: number; alphaBuffer?: Uint8Array; - texture_slice_index?: number; + fillAlphaBuffer?: boolean; + + alphaStitchMode?: ALPHA_STITCH_MODE; + + d3d11Texture2d?: any; + + textureSliceIndex?: number; + + hdr10MetadataInfo?: Hdr10MetadataInfo; + + colorSpace?: ColorSpace; } export class VideoFrame { @@ -256,9 +387,15 @@ export class VideoFrame { alphaBuffer?: Uint8Array; + alphaStitchMode?: ALPHA_STITCH_MODE; + pixelBuffer?: Uint8Array; metaInfo?: IVideoFrameMetaInfo; + + hdr10MetadataInfo?: Hdr10MetadataInfo; + + colorSpace?: ColorSpace; } export enum MEDIA_PLAYER_SOURCE_TYPE { @@ -302,6 +439,8 @@ export class AudioFrame { presentationMs?: number; audioTrackNumber?: number; + + rtpTimestamp?: number; } export enum AUDIO_FRAME_POSITION { @@ -492,6 +631,10 @@ export class MediaRecorderConfiguration { recorderInfoUpdateInterval?: number; } +export interface IFaceInfoObserver { + onFaceInfo_3a2037f(outFaceInfo: string): void; +} + export class RecorderInfo { fileName?: string; diff --git a/packages/@iris/rtc/generate/IAgoraLog.ts b/packages/@iris/rtc/generate/IAgoraLog.ts index 98adbb5a..b246e9b2 100644 --- a/packages/@iris/rtc/generate/IAgoraLog.ts +++ b/packages/@iris/rtc/generate/IAgoraLog.ts @@ -7,6 +7,7 @@ export enum LOG_LEVEL { LOG_LEVEL_ERROR = 4, LOG_LEVEL_FATAL = 8, LOG_LEVEL_API_CALL = 16, + LOG_LEVEL_DEBUG = 32, } export enum LOG_FILTER_TYPE { diff --git a/packages/@iris/rtc/generate/IAgoraMediaEngine.ts b/packages/@iris/rtc/generate/IAgoraMediaEngine.ts index 41475b58..fa52289f 100644 --- a/packages/@iris/rtc/generate/IAgoraMediaEngine.ts +++ b/packages/@iris/rtc/generate/IAgoraMediaEngine.ts @@ -13,6 +13,7 @@ import { EXTERNAL_VIDEO_SOURCE_TYPE, ExternalVideoFrame, IAudioFrameObserver, + IFaceInfoObserver, IVideoEncodedFrameObserver, IVideoFrameObserver, } from './AgoraMediaBase'; @@ -37,6 +38,10 @@ export interface IMediaEngine { observer: IVideoEncodedFrameObserver ): CallApiReturnType; + registerFaceInfoObserver_0303ed6( + observer: IFaceInfoObserver + ): CallApiReturnType; + pushAudioFrame_c71f4ab(frame: AudioFrame, trackId: number): CallApiReturnType; pullAudioFrame_2c74a9c(frame: AudioFrame): CallApiReturnType; diff --git a/packages/@iris/rtc/generate/IAgoraMusicContentCenter.ts b/packages/@iris/rtc/generate/IAgoraMusicContentCenter.ts index e41efd50..593aa19c 100644 --- a/packages/@iris/rtc/generate/IAgoraMusicContentCenter.ts +++ b/packages/@iris/rtc/generate/IAgoraMusicContentCenter.ts @@ -2,6 +2,12 @@ import { CallApiReturnType } from 'iris-web-core'; +export enum MusicPlayMode { + kMusicPlayModeOriginal = 0, + kMusicPlayModeAccompany = 1, + kMusicPlayModeLeadSing = 2, +} + export enum PreloadState { kPreloadStateCompleted = 0, kPreloadStateFailed = 1, @@ -148,6 +154,8 @@ export class MusicContentCenterConfiguration { export interface IMusicPlayer { open_303b92e(songCode: number, startPos: number): CallApiReturnType; + + setPlayMode_748bee0(mode: MusicPlayMode): CallApiReturnType; } export interface IMusicContentCenter { @@ -167,6 +175,8 @@ export interface IMusicContentCenter { createMusicPlayer(): CallApiReturnType; + destroyMusicPlayer_876d086(music_player: IMusicPlayer): CallApiReturnType; + getMusicCharts_66d4ecd(requestId: string): CallApiReturnType; getMusicCollectionByMusicChartId_8cd0b4d( @@ -201,7 +211,7 @@ export interface IMusicContentCenter { getLyric_5ab5efd( requestId: string, songCode: number, - LyricType: number + lyricType: number ): CallApiReturnType; getSongSimpleInfo_d3baeab( diff --git a/packages/@iris/rtc/generate/IAgoraRtcEngine.ts b/packages/@iris/rtc/generate/IAgoraRtcEngine.ts index 0e87edc0..d3a698d8 100644 --- a/packages/@iris/rtc/generate/IAgoraRtcEngine.ts +++ b/packages/@iris/rtc/generate/IAgoraRtcEngine.ts @@ -15,6 +15,8 @@ import { AudioRecordingConfiguration, AudioVolumeInfo, BeautyOptions, + CAMERA_FOCAL_LENGTH_TYPE, + CAMERA_STABILIZATION_MODE, CAPTURE_BRIGHTNESS_LEVEL_TYPE, CHANNEL_MEDIA_RELAY_ERROR, CHANNEL_MEDIA_RELAY_STATE, @@ -35,6 +37,10 @@ import { ERROR_CODE_TYPE, EchoTestConfiguration, EncryptionConfig, + FACE_SHAPE_AREA, + FaceShapeAreaOptions, + FaceShapeBeautyOptions, + FocalLengthInfo, HEADPHONE_EQUALIZER_PRESET, IAudioEncodedFrameObserver, INTERFACE_ID_TYPE, @@ -76,6 +82,7 @@ import { ScreenCaptureParameters2, SegmentationProperty, SenderOptions, + SimulcastConfig, SimulcastStreamConfig, SpatialAudioParams, THREAD_PRIORITY_TYPE, @@ -92,10 +99,12 @@ import { VIDEO_QOE_PREFERENCE_TYPE, VIDEO_STREAM_TYPE, VIDEO_TRANSCODER_ERROR, + VOICE_AI_TUNER_TYPE, VOICE_BEAUTIFIER_PRESET, VOICE_CONVERSION_PRESET, VideoCanvas, VideoDenoiserOptions, + VideoDimensions, VideoEncoderConfiguration, VideoFormat, VideoLayout, @@ -110,6 +119,7 @@ import { import { CONTENT_INSPECT_RESULT, ContentInspectConfig, + ExtensionContext, IAudioSpectrumObserver, MEDIA_SOURCE_TYPE, RAW_AUDIO_FRAME_OP_MODE_TYPE, @@ -194,6 +204,12 @@ export enum STREAM_FALLBACK_OPTIONS { STREAM_FALLBACK_OPTION_DISABLED = 0, STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1, STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 = 3, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 = 4, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 = 5, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 = 6, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 = 7, + STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 = 8, } export enum PRIORITY_TYPE { @@ -247,6 +263,8 @@ export class LocalVideoStats { dualStreamEnabled?: boolean; hwEncoderAccelerating?: number; + + simulcastDimensions?: VideoDimensions[]; } export class RemoteAudioStats { @@ -285,6 +303,8 @@ export class RemoteAudioStats { qualityChangedReason?: number; rxAudioBytes?: number; + + e2eDelay?: number; } export class RemoteVideoStats { @@ -300,6 +320,8 @@ export class RemoteVideoStats { receivedBitrate?: number; + decoderInputFrameRate?: number; + decoderOutputFrameRate?: number; rendererOutputFrameRate?: number; @@ -424,11 +446,15 @@ export enum CLOUD_PROXY_TYPE { export class CameraCapturerConfiguration { cameraDirection?: CAMERA_DIRECTION; + cameraFocalLengthType?: CAMERA_FOCAL_LENGTH_TYPE; + deviceId?: string; - format?: VideoFormat; + cameraId?: string; followEncodeDimensionRatio?: boolean; + + format?: VideoFormat; } export class ScreenCaptureConfiguration { @@ -545,6 +571,8 @@ export class ChannelMediaOptions { publishMixedAudioTrack?: boolean; + publishLipSyncTrack?: boolean; + autoSubscribeAudio?: boolean; autoSubscribeVideo?: boolean; @@ -576,6 +604,8 @@ export class ChannelMediaOptions { customVideoTrackId?: number; isAudioFilterable?: boolean; + + parameters?: string; } export enum PROXY_TYPE { @@ -983,20 +1013,24 @@ export interface IRtcEngineEventHandler { layoutlist: VideoLayout[] ): void; - onExtensionEvent_062d13c( - provider: string, - extension: string, + onAudioMetadataReceived_77edd82( + uid: number, + metadata: string, + length: number + ): void; + + onExtensionEventWithContext_a5fb27a( + context: ExtensionContext, key: string, value: string ): void; - onExtensionStarted_ccad422(provider: string, extension: string): void; + onExtensionStartedWithContext_67c38e3(context: ExtensionContext): void; - onExtensionStopped_ccad422(provider: string, extension: string): void; + onExtensionStoppedWithContext_67c38e3(context: ExtensionContext): void; - onExtensionError_bd3489b( - provider: string, - extension: string, + onExtensionErrorWithContext_a452f11( + context: ExtensionContext, error: number, message: string ): void; @@ -1063,12 +1097,6 @@ export interface IRtcEngineEventHandler { rotation: number ): void; - onLocalVideoStateChanged_b202b1b( - connection: RtcConnection, - state: LOCAL_VIDEO_STREAM_STATE, - reason: LOCAL_VIDEO_STREAM_REASON - ): void; - onRemoteVideoStateChanged_a14e9d1( connection: RtcConnection, remoteUid: number, @@ -1313,6 +1341,13 @@ export interface IRtcEngineEventHandler { layoutCount: number, layoutlist: VideoLayout[] ): void; + + onAudioMetadataReceived_0d4eb96( + connection: RtcConnection, + uid: number, + metadata: string, + length: number + ): void; } export interface IVideoDeviceManager { @@ -1371,6 +1406,8 @@ export enum MAX_METADATA_SIZE_TYPE { } export class Metadata { + channelId?: string; + uid?: number; size?: number; @@ -1519,10 +1556,6 @@ export interface IRtcEngine { options: ClientRoleOptions ): CallApiReturnType; - startEchoTest(): CallApiReturnType; - - startEchoTest_46f8ab7(intervalInSeconds: number): CallApiReturnType; - startEchoTest_16140d7(config: EchoTestConfiguration): CallApiReturnType; stopEchoTest(): CallApiReturnType; @@ -1560,6 +1593,28 @@ export interface IRtcEngine { type: MEDIA_SOURCE_TYPE ): CallApiReturnType; + setFaceShapeBeautyOptions_a862ce7( + enabled: boolean, + options: FaceShapeBeautyOptions, + type: MEDIA_SOURCE_TYPE + ): CallApiReturnType; + + setFaceShapeAreaOptions_2e242a3( + options: FaceShapeAreaOptions, + type: MEDIA_SOURCE_TYPE + ): CallApiReturnType; + + getFaceShapeBeautyOptions_8382895( + options: FaceShapeBeautyOptions, + type: MEDIA_SOURCE_TYPE + ): CallApiReturnType; + + getFaceShapeAreaOptions_0783e2c( + shapeArea: FACE_SHAPE_AREA, + options: FaceShapeAreaOptions, + type: MEDIA_SOURCE_TYPE + ): CallApiReturnType; + setLowlightEnhanceOptions_4f9f013( enabled: boolean, options: LowlightEnhanceOptions, @@ -1616,8 +1671,6 @@ export interface IRtcEngine { muteAllRemoteAudioStreams_5039d15(mute: boolean): CallApiReturnType; - setDefaultMuteAllRemoteAudioStreams_5039d15(mute: boolean): CallApiReturnType; - muteRemoteAudioStream_dbdc15a(uid: number, mute: boolean): CallApiReturnType; muteLocalVideoStream_5039d15(mute: boolean): CallApiReturnType; @@ -1626,8 +1679,6 @@ export interface IRtcEngine { muteAllRemoteVideoStreams_5039d15(mute: boolean): CallApiReturnType; - setDefaultMuteAllRemoteVideoStreams_5039d15(mute: boolean): CallApiReturnType; - setRemoteDefaultVideoStreamType_5a94eb0( streamType: VIDEO_STREAM_TYPE ): CallApiReturnType; @@ -1747,6 +1798,8 @@ export interface IRtcEngine { setAudioMixingPitch_46f8ab7(pitch: number): CallApiReturnType; + setAudioMixingPlaybackSpeed_46f8ab7(speed: number): CallApiReturnType; + getEffectsVolume(): CallApiReturnType; setEffectsVolume_46f8ab7(volume: number): CallApiReturnType; @@ -1868,6 +1921,11 @@ export interface IRtcEngine { highGain: number ): CallApiReturnType; + enableVoiceAITuner_28f5d5b( + enabled: boolean, + type: VOICE_AI_TUNER_TYPE + ): CallApiReturnType; + setLogFile_3a2037f(filePath: string): CallApiReturnType; setLogFilter_2626ac7(filter: LOG_FILTER_TYPE): CallApiReturnType; @@ -1878,6 +1936,8 @@ export interface IRtcEngine { uploadLogFile_66d4ecd(requestId: string): CallApiReturnType; + writeLog_62889f6(level: LOG_LEVEL, fmt: string): CallApiReturnType; + setLocalRenderMode_cfb201b( renderMode: RENDER_MODE_TYPE, mirrorMode: VIDEO_MIRROR_MODE_TYPE @@ -1904,6 +1964,10 @@ export interface IRtcEngine { setDualStreamMode_3a7f662(mode: SIMULCAST_STREAM_MODE): CallApiReturnType; + setSimulcastConfig_3dcdfd7( + simulcastConfig: SimulcastConfig + ): CallApiReturnType; + setDualStreamMode_b3a4f6c( mode: SIMULCAST_STREAM_MODE, streamConfig: SimulcastStreamConfig @@ -2126,6 +2190,10 @@ export interface IRtcEngine { enabled: boolean ): CallApiReturnType; + setCameraStabilizationMode_701b981( + mode: CAMERA_STABILIZATION_MODE + ): CallApiReturnType; + setDefaultAudioRouteToSpeakerphone_5039d15( defaultToSpeaker: boolean ): CallApiReturnType; @@ -2136,6 +2204,10 @@ export interface IRtcEngine { setRouteInCommunicationMode_46f8ab7(route: number): CallApiReturnType; + isCameraCenterStageSupported(): CallApiReturnType; + + enableCameraCenterStage_5039d15(enabled: boolean): CallApiReturnType; + getScreenCaptureSources_f3e02cb( thumbSize: SIZE, iconSize: SIZE, @@ -2186,6 +2258,11 @@ export interface IRtcEngine { queryScreenCaptureCapability(): CallApiReturnType; + queryCameraFocalLengthCapability_2dee6af( + focalLengthInfos: FocalLengthInfo[], + size: number + ): CallApiReturnType; + setScreenCaptureScenario_13de7b4( screenScenario: SCREEN_SCENARIO_TYPE ): CallApiReturnType; @@ -2266,10 +2343,6 @@ export interface IRtcEngine { registerPacketObserver_f8b44dd(observer: IPacketObserver): CallApiReturnType; - setEncryptionMode_3a2037f(encryptionMode: string): CallApiReturnType; - - setEncryptionSecret_3a2037f(secret: string): CallApiReturnType; - enableEncryption_421c27b( enabled: boolean, config: EncryptionConfig @@ -2466,6 +2539,11 @@ export interface IRtcEngine { getNtpWallTimeInMs(): CallApiReturnType; isFeatureAvailableOnDevice_a694b62(type: FeatureType): CallApiReturnType; + + sendAudioMetadata_878f309( + metadata: string, + length: number + ): CallApiReturnType; } export enum QUALITY_REPORT_FORMAT_TYPE { diff --git a/packages/@iris/rtc/generate/IAgoraRtcEngineEx.ts b/packages/@iris/rtc/generate/IAgoraRtcEngineEx.ts index 3b0a25fd..495766d5 100644 --- a/packages/@iris/rtc/generate/IAgoraRtcEngineEx.ts +++ b/packages/@iris/rtc/generate/IAgoraRtcEngineEx.ts @@ -8,6 +8,7 @@ import { EncryptionConfig, LiveTranscoding, SIMULCAST_STREAM_MODE, + SimulcastConfig, SimulcastStreamConfig, SpatialAudioParams, UserInfo, @@ -280,6 +281,11 @@ export interface IRtcEngineEx { connection: RtcConnection ): CallApiReturnType; + setSimulcastConfigEx_bd8d7d0( + simulcastConfig: SimulcastConfig, + connection: RtcConnection + ): CallApiReturnType; + setHighPriorityUserListEx_8736b5c( uidList: number[], uidNum: number, @@ -307,4 +313,15 @@ export interface IRtcEngineEx { connection: RtcConnection, parameters: string ): CallApiReturnType; + + getCallIdEx_b13f7c4( + callId: string, + connection: RtcConnection + ): CallApiReturnType; + + sendAudioMetadataEx_e2bf1c4( + connection: RtcConnection, + metadata: string, + length: number + ): CallApiReturnType; } diff --git a/packages/@iris/rtc/generate/IAudioDeviceManager.ts b/packages/@iris/rtc/generate/IAudioDeviceManager.ts index ce51991f..b00e380c 100644 --- a/packages/@iris/rtc/generate/IAudioDeviceManager.ts +++ b/packages/@iris/rtc/generate/IAudioDeviceManager.ts @@ -17,6 +17,8 @@ export interface IAudioDeviceManager { getPlaybackDeviceInfo_5540658(): CallApiReturnType; + getPlaybackDeviceInfo_ed3a96d(deviceTypeName: string): CallApiReturnType; + setPlaybackDeviceVolume_46f8ab7(volume: number): CallApiReturnType; getPlaybackDeviceVolume_915cb25(volume: number): CallApiReturnType; @@ -27,6 +29,8 @@ export interface IAudioDeviceManager { getRecordingDeviceInfo_5540658(): CallApiReturnType; + getRecordingDeviceInfo_ed3a96d(deviceTypeName: string): CallApiReturnType; + setRecordingDeviceVolume_46f8ab7(volume: number): CallApiReturnType; getRecordingDeviceVolume_915cb25(volume: number): CallApiReturnType; diff --git a/packages/@iris/rtc/index.ts b/packages/@iris/rtc/index.ts index fbf5a304..e5632de2 100644 --- a/packages/@iris/rtc/index.ts +++ b/packages/@iris/rtc/index.ts @@ -14,4 +14,4 @@ export * from './generate/IAgoraRtcEngine'; export * from './generate/IAgoraRtcEngineEx'; export * from './generate/IAgoraSpatialAudio'; export * from './generate/IAudioDeviceManager'; -export const NATIVE_RTC_VERSION = '4.3.0'; +export const NATIVE_RTC_VERSION = '4.4.0'; diff --git a/packages/@iris/rtc/package.json b/packages/@iris/rtc/package.json index 0db9d757..da286476 100644 --- a/packages/@iris/rtc/package.json +++ b/packages/@iris/rtc/package.json @@ -11,5 +11,5 @@ "dependencies": { "iris-web-core": "workspace:*" }, - "nativeSdkVersion": "4.3.0" + "nativeSdkVersion": "4.4.0" } diff --git a/packages/core/src/IrisApiEngine.ts b/packages/core/src/IrisApiEngine.ts index 5c8116b8..eb621fae 100644 --- a/packages/core/src/IrisApiEngine.ts +++ b/packages/core/src/IrisApiEngine.ts @@ -1,5 +1,11 @@ import { IrisApiEngineImpl, IrisEventHandlerImpl } from './IrisApiEngineImpl'; +declare global { + interface Window { + __AGORA_IRIS_API_ENGINE_LIST__: IrisApiEngine[]; + } +} + export class CallIrisApiResult { public constructor( public readonly code: number, @@ -66,7 +72,7 @@ export interface ApiInterceptor { dispose(): Promise; } -class EventParam { +export class EventParam { constructor( event: string, data: string, @@ -112,11 +118,21 @@ export interface IrisApiEngine { } function createIrisApiEngine(): IrisApiEngine { - return new IrisApiEngineImpl(); + let engine = new IrisApiEngineImpl(); + if (window.__AGORA_IRIS_API_ENGINE_LIST__ === undefined) { + window.__AGORA_IRIS_API_ENGINE_LIST__ = []; + window.__AGORA_IRIS_API_ENGINE_LIST__.push(engine); + } + return engine; } function disposeIrisApiEngine(engine_ptr: IrisApiEngine): number { engine_ptr.dispose(); + if (window.__AGORA_IRIS_API_ENGINE_LIST__ !== undefined) { + window.__AGORA_IRIS_API_ENGINE_LIST__.filter( + (engine) => engine !== engine_ptr + ); + } // IrisApiEngine.instance = null; return 0; } diff --git a/packages/fake/rtc/package.json b/packages/fake/rtc/package.json index 6199a4c8..e301500d 100644 --- a/packages/fake/rtc/package.json +++ b/packages/fake/rtc/package.json @@ -1,6 +1,6 @@ { "name": "iris-web-rtc-fake", - "version": "0.7.0", + "version": "0.8.0-pre", "description": "wait", "main": "./index.ts", "scripts": { @@ -13,8 +13,8 @@ "license": "MIT", "dependencies": { "@iris/native-rtc": "workspace: *", - "agora-rtc-sdk-ng": "4.20.0", - "@agoraio-extensions/agora-rtc-sdk-ng-fake": "^1.0.12", + "agora-rtc-sdk-ng": "4.22.0", + "@agoraio-extensions/agora-rtc-sdk-ng-fake": "^1.0.13", "iris-web-rtc": "workspace: *" }, "devDependencies": { diff --git a/packages/rtc/package.json b/packages/rtc/package.json index dc932373..fca38897 100644 --- a/packages/rtc/package.json +++ b/packages/rtc/package.json @@ -1,6 +1,6 @@ { "name": "iris-web-rtc", - "version": "0.7.0", + "version": "0.8.0-pre", "description": "wait", "main": "./src/index.ts", "scripts": { @@ -11,14 +11,15 @@ "start": "webpack serve --open", "lint": "eslint --ext .ts ./src/binding ./test/binding", "lint:fix": "eslint --fix --ext .ts ./src/binding ./test/binding", + "typecheck": "tsc --noEmit", "release": "release-it" }, "author": "AgoraIO-Extensions", "license": "MIT", "dependencies": { - "@agoraio-extensions/agora-rtc-sdk-ng-fake": "^1.0.12", + "@agoraio-extensions/agora-rtc-sdk-ng-fake": "^1.0.13", "@iris/native-rtc": "workspace: *", - "agora-rtc-sdk-ng": "4.20.0", + "agora-rtc-sdk-ng": "4.22.0", "iris-web-core": "workspace: *" }, "files": [ diff --git a/packages/rtc/src/IrisRtcApi.ts b/packages/rtc/src/IrisRtcApi.ts index b642979c..e96e48ba 100644 --- a/packages/rtc/src/IrisRtcApi.ts +++ b/packages/rtc/src/IrisRtcApi.ts @@ -1,6 +1,9 @@ import { IAgoraRTC } from 'agora-rtc-sdk-ng'; import { IrisApiEngine } from 'iris-web-core'; +import packageJson from '../package.json'; + +import { IrisClientManager } from './engine/IrisClientManager'; import { IrisRtcEngine } from './engine/IrisRtcEngine'; import { AgoraConsole } from './util'; @@ -18,6 +21,14 @@ function initIrisRtc( options?.irisRtcEngine ?? new IrisRtcEngine(irisApiEngine.getIrisEventHandlerManager(), options) ); + // set the first irisApiEngine apiInterceptors to irisClientManager + // this is a convenient way to get irisClientManager in most cases + if (window.__AGORA_IRIS_API_ENGINE_LIST__.length === 1) { + window.__AGORA_IRIS_CLIENT_MANAGER__ = + window.__AGORA_IRIS_API_ENGINE_LIST__[0][ + 'apiInterceptors' + ][0]?.irisClientManager; + } } export let IrisWebRtc = { @@ -25,3 +36,12 @@ export let IrisWebRtc = { AgoraConsole: AgoraConsole, initIrisRtc: initIrisRtc, }; + +declare global { + interface Window { + __AGORA_IRIS_CLIENT_MANAGER__: IrisClientManager; + __AGORA_IRIS_VERSION__: string; + } +} + +window.__AGORA_IRIS_VERSION__ = packageJson.version; diff --git a/packages/rtc/src/IrisVideoProcessor.ts b/packages/rtc/src/IrisVideoProcessor.ts deleted file mode 100644 index 0359f9fb..00000000 --- a/packages/rtc/src/IrisVideoProcessor.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { UID } from 'agora-rtc-sdk-ng'; - -import { - IrisCVideoFrameBuffer, - IrisVideoFrameBufferConfig, - IrisVideoFrameBufferDelegateHandle, - VideoParams, -} from './base/BaseType'; -import { IrisVideoFrameBufferManager } from './engine/IrisVideoFrameBufferManager'; - -export function CreateIrisVideoFrameBufferManager(): IrisVideoFrameBufferManager { - return new IrisVideoFrameBufferManager(); -} - -export function FreeIrisVideoFrameBufferManager( - manager_ptr: IrisVideoFrameBufferManager -) { - manager_ptr.destruction(); -} - -export function EnableVideoFrameBufferByConfig( - manager_ptr: IrisVideoFrameBufferManager, - buffer: IrisCVideoFrameBuffer, - config: IrisVideoFrameBufferConfig -): IrisVideoFrameBufferDelegateHandle { - manager_ptr.enableVideoFrameBufferByConfig(buffer, config); - let handle: IrisVideoFrameBufferDelegateHandle = config; - return handle; -} - -export function DisableVideoFrameBufferByDelegate( - manager_ptr: IrisVideoFrameBufferManager, - handle: IrisVideoFrameBufferDelegateHandle -) { - manager_ptr.disableVideoFrameBufferByConfig(handle); -} - -export function DisableVideoFrameBufferByConfig( - manager_ptr: IrisVideoFrameBufferManager, - config: IrisVideoFrameBufferConfig -) { - manager_ptr.disableVideoFrameBufferByConfig(config); -} - -export function DisableAllVideoFrameBuffer( - manager_ptr: IrisVideoFrameBufferManager -) { - manager_ptr.disableAllVideoFrameBuffer(); -} - -export function GetVideoFrame( - manager_ptr: IrisVideoFrameBufferManager, - uid: UID, - channel_id: string -): VideoParams { - return manager_ptr.getVideoFrame(uid, channel_id); -} - -export function GetVideoFrameByConfig( - manager_ptr: IrisVideoFrameBufferManager, - config: IrisVideoFrameBufferConfig -): VideoParams { - return manager_ptr.getVideoFrameByConfig(config); -} diff --git a/packages/rtc/src/base/BaseType.ts b/packages/rtc/src/base/BaseType.ts index afc5ae8e..1b2b22cc 100644 --- a/packages/rtc/src/base/BaseType.ts +++ b/packages/rtc/src/base/BaseType.ts @@ -1,5 +1,5 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { ILocalVideoTrack, IRemoteVideoTrack, UID } from 'agora-rtc-sdk-ng'; +import { ILocalVideoTrack, IRemoteVideoTrack } from 'agora-rtc-sdk-ng'; export enum IRIS_VIDEO_PROCESS_ERR { ERR_OK = 0, @@ -20,7 +20,7 @@ export enum IrisAudioSourceType { export interface IrisVideoFrameBufferConfig { type: NATIVE_RTC.VIDEO_SOURCE_TYPE; - id: UID; + id: number; key: string; } diff --git a/packages/rtc/src/base/DefaultValue.ts b/packages/rtc/src/base/DefaultValue.ts new file mode 100644 index 00000000..0e3a5696 --- /dev/null +++ b/packages/rtc/src/base/DefaultValue.ts @@ -0,0 +1,18 @@ +import * as NATIVE_RTC from '@iris/native-rtc'; +import { VideoPlayerConfig } from 'agora-rtc-sdk-ng'; + +export const defaultLeaveChannelOptions: NATIVE_RTC.LeaveChannelOptions = { + stopAudioMixing: true, + stopAllEffect: true, + stopMicrophoneRecording: true, +}; + +export const defaultVideoPlayerConfig: VideoPlayerConfig = { + fit: 'contain', + mirror: false, +}; + +export const defaultRemoteVideoPlayerConfig: VideoPlayerConfig = { + fit: 'cover', + mirror: false, +}; diff --git a/packages/rtc/src/base/index.ts b/packages/rtc/src/base/index.ts new file mode 100644 index 00000000..5dfdf823 --- /dev/null +++ b/packages/rtc/src/base/index.ts @@ -0,0 +1,2 @@ +export * from './BaseType'; +export * from './DefaultValue'; diff --git a/packages/rtc/src/binding/AgoraBaseDispatch.ts b/packages/rtc/src/binding/AgoraBaseDispatch.ts index a36a0f98..0627223b 100644 --- a/packages/rtc/src/binding/AgoraBaseDispatch.ts +++ b/packages/rtc/src/binding/AgoraBaseDispatch.ts @@ -11,7 +11,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IPacketObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -51,7 +51,7 @@ export class IPacketObserver { } export class IAudioEncodedFrameObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/AgoraMediaBaseDispatch.ts b/packages/rtc/src/binding/AgoraMediaBaseDispatch.ts index c34aabb4..0756ca64 100644 --- a/packages/rtc/src/binding/AgoraMediaBaseDispatch.ts +++ b/packages/rtc/src/binding/AgoraMediaBaseDispatch.ts @@ -20,7 +20,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IVideoFrameMetaInfoDispatch implements IVideoFrameMetaInfo { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -35,7 +35,7 @@ export class IVideoFrameMetaInfoDispatch implements IVideoFrameMetaInfo { } export class IAudioPcmFrameSink { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -54,7 +54,7 @@ export class IAudioPcmFrameSink { } export class IAudioFrameObserverBase { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -143,7 +143,7 @@ export class IAudioFrameObserverBase { } export class IAudioFrameObserver extends IAudioFrameObserverBase { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { super(engine); @@ -244,7 +244,7 @@ export class IAudioFrameObserver extends IAudioFrameObserverBase { } export class IAudioSpectrumObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -273,7 +273,7 @@ export class IAudioSpectrumObserver { } export class IVideoEncodedFrameObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -297,7 +297,7 @@ export class IVideoEncodedFrameObserver { } export class IVideoFrameObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -391,8 +391,27 @@ export class IVideoFrameObserver { } } +export class IFaceInfoObserver { + _engine: IrisRtcEngine; + + constructor(engine: IrisRtcEngine) { + this._engine = engine; + } + + notifyEvent(param: ApiParam): void { + this._engine.irisEventHandlerManager.notifyEvent('RtcEngine', param); + } + + onFaceInfo_3a2037f(outFaceInfo: string): void { + AgoraConsole.warn( + 'FaceInfoObserver_onFaceInfo_3a2037f not supported in this platform!' + ); + this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } +} + export class IMediaRecorderObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAgoraH265TranscoderDispatch.ts b/packages/rtc/src/binding/IAgoraH265TranscoderDispatch.ts index e4fe3c43..2a4b6375 100644 --- a/packages/rtc/src/binding/IAgoraH265TranscoderDispatch.ts +++ b/packages/rtc/src/binding/IAgoraH265TranscoderDispatch.ts @@ -11,7 +11,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IH265TranscoderObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -48,7 +48,7 @@ export class IH265TranscoderObserver { } export class IH265TranscoderDispatch implements IH265Transcoder { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAgoraMediaEngineDispatch.ts b/packages/rtc/src/binding/IAgoraMediaEngineDispatch.ts index 20be7dcb..67b3cf30 100644 --- a/packages/rtc/src/binding/IAgoraMediaEngineDispatch.ts +++ b/packages/rtc/src/binding/IAgoraMediaEngineDispatch.ts @@ -11,7 +11,7 @@ import { AgoraConsole } from '../util/AgoraConsole'; export class IMediaEngineDispatch implements IMediaEngine { // @ts-ignore _impl: IMediaEngineImpl; - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._impl = new IMediaEngineImpl(engine); @@ -43,6 +43,14 @@ export class IMediaEngineDispatch implements IMediaEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + registerFaceInfoObserver_0303ed6(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'MediaEngine_registerFaceInfoObserver_0303ed6 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore pushAudioFrame_c71f4ab(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( diff --git a/packages/rtc/src/binding/IAgoraMediaPlayerDispatch.ts b/packages/rtc/src/binding/IAgoraMediaPlayerDispatch.ts index f8778364..5211aced 100644 --- a/packages/rtc/src/binding/IAgoraMediaPlayerDispatch.ts +++ b/packages/rtc/src/binding/IAgoraMediaPlayerDispatch.ts @@ -11,7 +11,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IMediaPlayerDispatch implements IMediaPlayer { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -461,7 +461,7 @@ export class IMediaPlayerDispatch implements IMediaPlayer { export class IMediaPlayerCacheManagerDispatch implements IMediaPlayerCacheManager { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAgoraMediaPlayerSourceDispatch.ts b/packages/rtc/src/binding/IAgoraMediaPlayerSourceDispatch.ts index 37ab4725..e4a89ed9 100644 --- a/packages/rtc/src/binding/IAgoraMediaPlayerSourceDispatch.ts +++ b/packages/rtc/src/binding/IAgoraMediaPlayerSourceDispatch.ts @@ -17,7 +17,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IMediaPlayerSourceObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAgoraMediaRecorderDispatch.ts b/packages/rtc/src/binding/IAgoraMediaRecorderDispatch.ts index dc4eb07c..3cfbdfb3 100644 --- a/packages/rtc/src/binding/IAgoraMediaRecorderDispatch.ts +++ b/packages/rtc/src/binding/IAgoraMediaRecorderDispatch.ts @@ -7,7 +7,7 @@ import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { AgoraConsole } from '../util/AgoraConsole'; export class IMediaRecorderDispatch implements IMediaRecorder { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAgoraMusicContentCenterDispatch.ts b/packages/rtc/src/binding/IAgoraMusicContentCenterDispatch.ts index 1a88b4e1..9fa1cf38 100644 --- a/packages/rtc/src/binding/IAgoraMusicContentCenterDispatch.ts +++ b/packages/rtc/src/binding/IAgoraMusicContentCenterDispatch.ts @@ -18,7 +18,7 @@ import { AgoraConsole } from '../util/AgoraConsole'; import { IMediaPlayerDispatch } from './IAgoraMediaPlayerDispatch'; export class MusicChartCollectionDispatch implements MusicChartCollection { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -41,7 +41,7 @@ export class MusicChartCollectionDispatch implements MusicChartCollection { } export class MusicCollectionDispatch implements MusicCollection { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -88,7 +88,7 @@ export class MusicCollectionDispatch implements MusicCollection { } export class IMusicContentCenterEventHandler { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -161,7 +161,7 @@ export class IMusicContentCenterEventHandler { export class IMusicPlayerDispatch extends IMediaPlayerDispatch implements IMusicPlayer { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { super(engine); @@ -174,10 +174,18 @@ export class IMusicPlayerDispatch extends IMediaPlayerDispatch ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + + // @ts-ignore + setPlayMode_748bee0(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'MusicPlayer_setPlayMode_748bee0 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } } export class IMusicContentCenterDispatch implements IMusicContentCenter { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -230,6 +238,14 @@ export class IMusicContentCenterDispatch implements IMusicContentCenter { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + destroyMusicPlayer_876d086(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'MusicContentCenter_destroyMusicPlayer_876d086 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore getMusicCharts_66d4ecd(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( diff --git a/packages/rtc/src/binding/IAgoraRtcEngineDispatch.ts b/packages/rtc/src/binding/IAgoraRtcEngineDispatch.ts index 0f011bd4..c70a7748 100644 --- a/packages/rtc/src/binding/IAgoraRtcEngineDispatch.ts +++ b/packages/rtc/src/binding/IAgoraRtcEngineDispatch.ts @@ -18,6 +18,7 @@ import { DownlinkNetworkInfo, ENCRYPTION_ERROR_TYPE, ERROR_CODE_TYPE, + ExtensionContext, IRtcEngine, IVideoDeviceManager, LICENSE_ERROR_TYPE, @@ -71,14 +72,12 @@ import { ApiParam, CallApiReturnType, IrisCore } from 'iris-web-core'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { callApiBufferExtension } from '../extensions/CallApiBufferExtensions'; import { eventHandlerBufferExtension } from '../extensions/EventhandlerBufferExtensions'; -import { - IRtcEngineImpl, - IVideoDeviceManagerImpl, -} from '../impl/IAgoraRtcEngineImpl'; +import { IRtcEngineImpl } from '../impl/IAgoraRtcEngineImpl'; +import { IVideoDeviceManagerImpl } from '../impl/IVideoDeviceManagerImpl'; import { AgoraConsole } from '../util/AgoraConsole'; export class IRtcEngineEventHandler { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -1018,40 +1017,49 @@ export class IRtcEngineEventHandler { this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - onExtensionEvent_062d13c( - provider: string, - extension: string, + onAudioMetadataReceived_77edd82( + uid: number, + metadata: string, + length: number + ): void { + AgoraConsole.warn( + 'RtcEngineEventHandler_onAudioMetadataReceived_77edd82 not supported in this platform!' + ); + this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + onExtensionEventWithContext_a5fb27a( + context: ExtensionContext, key: string, value: string ): void { AgoraConsole.warn( - 'RtcEngineEventHandler_onExtensionEvent_062d13c not supported in this platform!' + 'RtcEngineEventHandler_onExtensionEventWithContext_a5fb27a not supported in this platform!' ); this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - onExtensionStarted_ccad422(provider: string, extension: string): void { + onExtensionStartedWithContext_67c38e3(context: ExtensionContext): void { AgoraConsole.warn( - 'RtcEngineEventHandler_onExtensionStarted_ccad422 not supported in this platform!' + 'RtcEngineEventHandler_onExtensionStartedWithContext_67c38e3 not supported in this platform!' ); this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - onExtensionStopped_ccad422(provider: string, extension: string): void { + onExtensionStoppedWithContext_67c38e3(context: ExtensionContext): void { AgoraConsole.warn( - 'RtcEngineEventHandler_onExtensionStopped_ccad422 not supported in this platform!' + 'RtcEngineEventHandler_onExtensionStoppedWithContext_67c38e3 not supported in this platform!' ); this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - onExtensionError_bd3489b( - provider: string, - extension: string, + onExtensionErrorWithContext_a452f11( + context: ExtensionContext, error: number, message: string ): void { AgoraConsole.warn( - 'RtcEngineEventHandler_onExtensionError_bd3489b not supported in this platform!' + 'RtcEngineEventHandler_onExtensionErrorWithContext_a452f11 not supported in this platform!' ); this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } @@ -1240,17 +1248,6 @@ export class IRtcEngineEventHandler { this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - onLocalVideoStateChanged_b202b1b( - connection: RtcConnection, - state: LOCAL_VIDEO_STREAM_STATE, - reason: LOCAL_VIDEO_STREAM_REASON - ): void { - AgoraConsole.warn( - 'RtcEngineEventHandler_onLocalVideoStateChanged_b202b1b not supported in this platform!' - ); - this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - onRemoteVideoStateChanged_a14e9d1( connection: RtcConnection, remoteUid: number, @@ -1961,12 +1958,24 @@ export class IRtcEngineEventHandler { ); this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + + onAudioMetadataReceived_0d4eb96( + connection: RtcConnection, + uid: number, + metadata: string, + length: number + ): void { + AgoraConsole.warn( + 'RtcEngineEventHandler_onAudioMetadataReceived_0d4eb96 not supported in this platform!' + ); + this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } } export class IVideoDeviceManagerDispatch implements IVideoDeviceManager { // @ts-ignore _impl: IVideoDeviceManagerImpl; - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._impl = new IVideoDeviceManagerImpl(engine); @@ -2033,7 +2042,7 @@ export class IVideoDeviceManagerDispatch implements IVideoDeviceManager { } export class IMetadataObserver { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -2069,7 +2078,7 @@ export class IMetadataObserver { } export class IDirectCdnStreamingEventHandler { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -2101,7 +2110,7 @@ export class IDirectCdnStreamingEventHandler { export class IRtcEngineDispatch implements IRtcEngine { // @ts-ignore _impl: IRtcEngineImpl; - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._impl = new IRtcEngineImpl(engine); @@ -2315,22 +2324,6 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._impl.setClientRole_b46cc48(role, options); } - // @ts-ignore - startEchoTest(): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_startEchoTest not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - - // @ts-ignore - startEchoTest_46f8ab7(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_startEchoTest_46f8ab7 not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - // @ts-ignore startEchoTest_16140d7(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -2433,6 +2426,38 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setFaceShapeBeautyOptions_a862ce7(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_setFaceShapeBeautyOptions_a862ce7 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + // @ts-ignore + setFaceShapeAreaOptions_2e242a3(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_setFaceShapeAreaOptions_2e242a3 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + // @ts-ignore + getFaceShapeBeautyOptions_8382895(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_getFaceShapeBeautyOptions_8382895 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + // @ts-ignore + getFaceShapeAreaOptions_0783e2c(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_getFaceShapeAreaOptions_0783e2c not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setLowlightEnhanceOptions_4f9f013(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -2584,16 +2609,6 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._impl.muteAllRemoteAudioStreams_5039d15(mute); } - // @ts-ignore - setDefaultMuteAllRemoteAudioStreams_5039d15( - apiParam: ApiParam - ): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setDefaultMuteAllRemoteAudioStreams_5039d15 not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - // @ts-ignore muteRemoteAudioStream_dbdc15a(apiParam: ApiParam): CallApiReturnType { let obj = JSON.parse(apiParam.data) as any; @@ -2647,16 +2662,6 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._impl.muteAllRemoteVideoStreams_5039d15(mute); } - // @ts-ignore - setDefaultMuteAllRemoteVideoStreams_5039d15( - apiParam: ApiParam - ): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setDefaultMuteAllRemoteVideoStreams_5039d15 not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - // @ts-ignore setRemoteDefaultVideoStreamType_5a94eb0( apiParam: ApiParam @@ -2974,6 +2979,14 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setAudioMixingPlaybackSpeed_46f8ab7(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_setAudioMixingPlaybackSpeed_46f8ab7 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore getEffectsVolume(): CallApiReturnType { AgoraConsole.warn( @@ -3297,6 +3310,14 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + enableVoiceAITuner_28f5d5b(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_enableVoiceAITuner_28f5d5b not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setLogFile_3a2037f(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -3342,35 +3363,74 @@ export class IRtcEngineDispatch implements IRtcEngine { } // @ts-ignore - setLocalRenderMode_cfb201b(apiParam: ApiParam): CallApiReturnType { + writeLog_62889f6(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( - 'RtcEngine_setLocalRenderMode_cfb201b not supported in this platform!' + 'RtcEngine_writeLog_62889f6 not supported in this platform!' ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setLocalRenderMode_cfb201b(apiParam: ApiParam): CallApiReturnType { + let obj = JSON.parse(apiParam.data) as any; + let renderMode = obj.renderMode; + if (renderMode === undefined) { + AgoraConsole.error('renderMode is undefined'); + throw 'renderMode is undefined'; + } + let mirrorMode = obj.mirrorMode; + if (mirrorMode === undefined) { + AgoraConsole.error('mirrorMode is undefined'); + throw 'mirrorMode is undefined'; + } + + return this._impl.setLocalRenderMode_cfb201b(renderMode, mirrorMode); + } + // @ts-ignore setRemoteRenderMode_6771ce0(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setRemoteRenderMode_6771ce0 not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let uid = obj.uid; + if (uid === undefined) { + AgoraConsole.error('uid is undefined'); + throw 'uid is undefined'; + } + let renderMode = obj.renderMode; + if (renderMode === undefined) { + AgoraConsole.error('renderMode is undefined'); + throw 'renderMode is undefined'; + } + let mirrorMode = obj.mirrorMode; + if (mirrorMode === undefined) { + AgoraConsole.error('mirrorMode is undefined'); + throw 'mirrorMode is undefined'; + } + + return this._impl.setRemoteRenderMode_6771ce0(uid, renderMode, mirrorMode); } // @ts-ignore setLocalRenderMode_bedb5ae(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setLocalRenderMode_bedb5ae not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let renderMode = obj.renderMode; + if (renderMode === undefined) { + AgoraConsole.error('renderMode is undefined'); + throw 'renderMode is undefined'; + } + + return this._impl.setLocalRenderMode_bedb5ae(renderMode); } // @ts-ignore setLocalVideoMirrorMode_b8a6c69(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setLocalVideoMirrorMode_b8a6c69 not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let mirrorMode = obj.mirrorMode; + if (mirrorMode === undefined) { + AgoraConsole.error('mirrorMode is undefined'); + throw 'mirrorMode is undefined'; + } + + return this._impl.setLocalVideoMirrorMode_b8a6c69(mirrorMode); } // @ts-ignore @@ -3397,6 +3457,14 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setSimulcastConfig_3dcdfd7(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_setSimulcastConfig_3dcdfd7 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setDualStreamMode_b3a4f6c(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -3861,6 +3929,14 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setCameraStabilizationMode_701b981(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_setCameraStabilizationMode_701b981 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setDefaultAudioRouteToSpeakerphone_5039d15( apiParam: ApiParam @@ -3895,6 +3971,22 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + isCameraCenterStageSupported(): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_isCameraCenterStageSupported not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + // @ts-ignore + enableCameraCenterStage_5039d15(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_enableCameraCenterStage_5039d15 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore getScreenCaptureSources_f3e02cb(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -3999,6 +4091,16 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + queryCameraFocalLengthCapability_2dee6af( + apiParam: ApiParam + ): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_queryCameraFocalLengthCapability_2dee6af not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setScreenCaptureScenario_13de7b4(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -4192,22 +4294,6 @@ export class IRtcEngineDispatch implements IRtcEngine { return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } - // @ts-ignore - setEncryptionMode_3a2037f(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setEncryptionMode_3a2037f not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - - // @ts-ignore - setEncryptionSecret_3a2037f(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngine_setEncryptionSecret_3a2037f not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); - } - // @ts-ignore enableEncryption_421c27b(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -4437,7 +4523,7 @@ export class IRtcEngineDispatch implements IRtcEngine { } let userInfo = obj.userInfo; - return this._impl.getUserInfoByUserAccount_c6a8f08(userAccount, userInfo); + return this._impl.getUserInfoByUserAccount_c6a8f08(userAccount); } // @ts-ignore @@ -4450,7 +4536,7 @@ export class IRtcEngineDispatch implements IRtcEngine { } let userInfo = obj.userInfo; - return this._impl.getUserInfoByUid_6b7aee8(uid, userInfo); + return this._impl.getUserInfoByUid_6b7aee8(uid); } // @ts-ignore @@ -4700,4 +4786,12 @@ export class IRtcEngineDispatch implements IRtcEngine { ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + + // @ts-ignore + sendAudioMetadata_878f309(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngine_sendAudioMetadata_878f309 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } } diff --git a/packages/rtc/src/binding/IAgoraRtcEngineExDispatch.ts b/packages/rtc/src/binding/IAgoraRtcEngineExDispatch.ts index a696e8e5..de51f17e 100644 --- a/packages/rtc/src/binding/IAgoraRtcEngineExDispatch.ts +++ b/packages/rtc/src/binding/IAgoraRtcEngineExDispatch.ts @@ -14,7 +14,7 @@ export class IRtcEngineExDispatch extends IRtcEngineDispatch implements IRtcEngineEx { // @ts-ignore _impl: IRtcEngineExImpl; - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { super(engine); @@ -57,10 +57,19 @@ export class IRtcEngineExDispatch extends IRtcEngineDispatch // @ts-ignore leaveChannelEx_b03ee9a(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngineEx_leaveChannelEx_b03ee9a not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let connection = obj.connection; + if (connection === undefined) { + AgoraConsole.error('connection is undefined'); + throw 'connection is undefined'; + } + let options = obj.options; + if (options === undefined) { + AgoraConsole.error('options is undefined'); + throw 'options is undefined'; + } + + return this._impl.leaveChannelEx_b03ee9a(connection, options); } // @ts-ignore @@ -289,10 +298,34 @@ export class IRtcEngineExDispatch extends IRtcEngineDispatch // @ts-ignore setRemoteRenderModeEx_a72fe4e(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e not supported in this platform!' + let obj = JSON.parse(apiParam.data) as any; + let uid = obj.uid; + if (uid === undefined) { + AgoraConsole.error('uid is undefined'); + throw 'uid is undefined'; + } + let renderMode = obj.renderMode; + if (renderMode === undefined) { + AgoraConsole.error('renderMode is undefined'); + throw 'renderMode is undefined'; + } + let mirrorMode = obj.mirrorMode; + if (mirrorMode === undefined) { + AgoraConsole.error('mirrorMode is undefined'); + throw 'mirrorMode is undefined'; + } + let connection = obj.connection; + if (connection === undefined) { + AgoraConsole.error('connection is undefined'); + throw 'connection is undefined'; + } + + return this._impl.setRemoteRenderModeEx_a72fe4e( + uid, + renderMode, + mirrorMode, + connection ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } // @ts-ignore @@ -537,6 +570,14 @@ export class IRtcEngineExDispatch extends IRtcEngineDispatch return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + // @ts-ignore + setSimulcastConfigEx_bd8d7d0(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngineEx_setSimulcastConfigEx_bd8d7d0 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + // @ts-ignore setHighPriorityUserListEx_8736b5c(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( @@ -576,4 +617,20 @@ export class IRtcEngineExDispatch extends IRtcEngineDispatch ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } + + // @ts-ignore + getCallIdEx_b13f7c4(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngineEx_getCallIdEx_b13f7c4 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } + + // @ts-ignore + sendAudioMetadataEx_e2bf1c4(apiParam: ApiParam): CallApiReturnType { + AgoraConsole.warn( + 'RtcEngineEx_sendAudioMetadataEx_e2bf1c4 not supported in this platform!' + ); + return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + } } diff --git a/packages/rtc/src/binding/IAgoraSpatialAudioDispatch.ts b/packages/rtc/src/binding/IAgoraSpatialAudioDispatch.ts index fb28188d..8f84da5b 100644 --- a/packages/rtc/src/binding/IAgoraSpatialAudioDispatch.ts +++ b/packages/rtc/src/binding/IAgoraSpatialAudioDispatch.ts @@ -8,7 +8,7 @@ import { AgoraConsole } from '../util/AgoraConsole'; export class ILocalSpatialAudioEngineDispatch implements ILocalSpatialAudioEngine { - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; diff --git a/packages/rtc/src/binding/IAudioDeviceManagerDispatch.ts b/packages/rtc/src/binding/IAudioDeviceManagerDispatch.ts index e20d8e58..e8198cb2 100644 --- a/packages/rtc/src/binding/IAudioDeviceManagerDispatch.ts +++ b/packages/rtc/src/binding/IAudioDeviceManagerDispatch.ts @@ -4,50 +4,60 @@ import { ERROR_CODE_TYPE, IAudioDeviceManager } from '@iris/native-rtc'; import { ApiParam, CallApiReturnType } from 'iris-web-core'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; +import { IAudioDeviceManagerImpl } from '../impl/IAudioDeviceManagerImpl'; import { AgoraConsole } from '../util/AgoraConsole'; export class IAudioDeviceManagerDispatch implements IAudioDeviceManager { - _engine: IrisRtcEngine = null; + // @ts-ignore + _impl: IAudioDeviceManagerImpl; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { + this._impl = new IAudioDeviceManagerImpl(engine); this._engine = engine; } // @ts-ignore enumeratePlaybackDevices(): CallApiReturnType { - AgoraConsole.warn( - 'AudioDeviceManager_enumeratePlaybackDevices not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + return this._impl.enumeratePlaybackDevices(); } // @ts-ignore enumerateRecordingDevices(): CallApiReturnType { - AgoraConsole.warn( - 'AudioDeviceManager_enumerateRecordingDevices not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + return this._impl.enumerateRecordingDevices(); } // @ts-ignore setPlaybackDevice_4ad5f6e(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'AudioDeviceManager_setPlaybackDevice_4ad5f6e not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let deviceId = obj.deviceId; + if (deviceId === undefined) { + AgoraConsole.error('deviceId is undefined'); + throw 'deviceId is undefined'; + } + + return this._impl.setPlaybackDevice_4ad5f6e(deviceId); } // @ts-ignore getPlaybackDevice_73b9872(apiParam: ApiParam): CallApiReturnType { + let obj = JSON.parse(apiParam.data) as any; + let deviceId = obj.deviceId; + + return this._impl.getPlaybackDevice_73b9872(); + } + + // @ts-ignore + getPlaybackDeviceInfo_5540658(): CallApiReturnType { AgoraConsole.warn( - 'AudioDeviceManager_getPlaybackDevice_73b9872 not supported in this platform!' + 'AudioDeviceManager_getPlaybackDeviceInfo_5540658 not supported in this platform!' ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } // @ts-ignore - getPlaybackDeviceInfo_5540658(): CallApiReturnType { + getPlaybackDeviceInfo_ed3a96d(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( - 'AudioDeviceManager_getPlaybackDeviceInfo_5540658 not supported in this platform!' + 'AudioDeviceManager_getPlaybackDeviceInfo_ed3a96d not supported in this platform!' ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } @@ -70,24 +80,36 @@ export class IAudioDeviceManagerDispatch implements IAudioDeviceManager { // @ts-ignore setRecordingDevice_4ad5f6e(apiParam: ApiParam): CallApiReturnType { - AgoraConsole.warn( - 'AudioDeviceManager_setRecordingDevice_4ad5f6e not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + let obj = JSON.parse(apiParam.data) as any; + let deviceId = obj.deviceId; + if (deviceId === undefined) { + AgoraConsole.error('deviceId is undefined'); + throw 'deviceId is undefined'; + } + + return this._impl.setRecordingDevice_4ad5f6e(deviceId); } // @ts-ignore getRecordingDevice_73b9872(apiParam: ApiParam): CallApiReturnType { + let obj = JSON.parse(apiParam.data) as any; + let deviceId = obj.deviceId; + + return this._impl.getRecordingDevice_73b9872(); + } + + // @ts-ignore + getRecordingDeviceInfo_5540658(): CallApiReturnType { AgoraConsole.warn( - 'AudioDeviceManager_getRecordingDevice_73b9872 not supported in this platform!' + 'AudioDeviceManager_getRecordingDeviceInfo_5540658 not supported in this platform!' ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } // @ts-ignore - getRecordingDeviceInfo_5540658(): CallApiReturnType { + getRecordingDeviceInfo_ed3a96d(apiParam: ApiParam): CallApiReturnType { AgoraConsole.warn( - 'AudioDeviceManager_getRecordingDeviceInfo_5540658 not supported in this platform!' + 'AudioDeviceManager_getRecordingDeviceInfo_ed3a96d not supported in this platform!' ); return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); } @@ -230,9 +252,6 @@ export class IAudioDeviceManagerDispatch implements IAudioDeviceManager { // @ts-ignore release(): CallApiReturnType { - AgoraConsole.warn( - 'AudioDeviceManager_release not supported in this platform!' - ); - return this._engine.returnResult(false, -ERROR_CODE_TYPE.ERR_NOT_SUPPORTED); + return this._impl.release(); } } diff --git a/packages/rtc/src/engine/IrisClient.ts b/packages/rtc/src/engine/IrisClient.ts index 4ea9cd0f..27847f6c 100644 --- a/packages/rtc/src/engine/IrisClient.ts +++ b/packages/rtc/src/engine/IrisClient.ts @@ -22,13 +22,14 @@ import { IrisRtcEngine } from './IrisRtcEngine'; export class IrisClient { id: string; - agoraRTCClient: IAgoraRTCClient; + //agoraRTCClient only exist after joinChannel + agoraRTCClient?: IAgoraRTCClient; _engine: IrisRtcEngine; irisClientState: IrisClientState; clientEventHandler: IrisClientEventHandler; audioTrackPackages: Array = new Array(); - videoTrackPackage: VideoTrackPackage; + videoTrackPackage?: VideoTrackPackage; connection: NATIVE_RTC.RtcConnection; @@ -37,24 +38,24 @@ export class IrisClient { this.irisClientState = new IrisClientState(this._engine.globalState); if (connection) { this.connection = connection; + } else { + this.connection = { + channelId: '', + localUid: 0, + }; } this.id = `irisClient_${Math.floor(Math.random() * new Date().getTime())}`; this._engine.irisClientManager.irisClientList.push(this); } - setConnection(connection: NATIVE_RTC.RtcConnection) { - this.connection = connection; - } - setClientConfig(): ClientConfig { let irisClientState = this.irisClientState; let config: ClientConfig = { - codec: - irisClientState.videoEncoderConfiguration != null - ? AgoraTranslate.NATIVE_RTCVIDEO_CODEC_TYPE2SDK_CODEC( - irisClientState.videoEncoderConfiguration.codecType - ) - : 'vp8', + codec: irisClientState.videoEncoderConfiguration?.codecType + ? AgoraTranslate.NATIVE_RTCVIDEO_CODEC_TYPE2SDK_CODEC( + irisClientState.videoEncoderConfiguration.codecType + ) + : 'vp8', mode: irisClientState.channelProfile ? AgoraTranslate.NATIVE_RTC_CHANNEL_PROFILE_TYPE2SDK_MODE( irisClientState.channelProfile @@ -94,7 +95,7 @@ export class IrisClient { ); //设置远端默认是 大流还是小流 - if (irisClientState.remoteDefaultVideoStreamType != null) { + if (irisClientState.remoteDefaultVideoStreamType !== 0) { this.agoraRTCClient .setRemoteDefaultVideoStreamType( AgoraTranslate.NATIVE_RTCVIDEO_STREAM_TYPE2RemoteStreamType( @@ -125,27 +126,27 @@ export class IrisClient { } else if (irisClientState.publishSecondaryCameraTrack == true) { videoSourceType = NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_SECONDARY; - } else if (irisClientState.publishScreenCaptureVideo == true) { + } else if (irisClientState.publishScreenTrack == true) { videoSourceType = NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY; } //如果当前轨道被特别指定了,那么就设置一下 - if (irisClientState.enabledDualStreamModes.has(videoSourceType)) { - let steamMode = irisClientState.enabledDualStreamModes.get( - videoSourceType + if (irisClientState.enabledDualStreamModes.has(videoSourceType!)) { + let streamMode = irisClientState.enabledDualStreamModes.get( + videoSourceType! ); - if (steamMode.enabled) { + if (streamMode?.enabled) { this.agoraRTCClient .enableDualStream() .then(() => {}) .catch(() => {}) .finally(() => {}); - if (steamMode.streamConfig != null) { + if (streamMode.streamConfig != null) { this.agoraRTCClient.setLowStreamParameter( AgoraTranslate.NATIVE_RTCSimulcastStreamConfig2LowStreamParameter( - steamMode.streamConfig + streamMode.streamConfig ) ); } @@ -169,7 +170,6 @@ export class IrisClient { //设置是否报告说话的人 if (irisClientState.enabledAudioVolumeIndication) { this.agoraRTCClient.enableAudioVolumeIndicator(); - irisClientState.enabledAudioVolumeIndication = null; } //是否开启了加密 @@ -177,12 +177,14 @@ export class IrisClient { let encryptionConfig: NATIVE_RTC.EncryptionConfig = irisClientState.encryptionConfig.config; let encryptionMode: EncryptionMode = AgoraTranslate.NATIVE_RTCENCRYPTION_MODE2EncryptionMode( - encryptionConfig.encryptionMode + encryptionConfig.encryptionMode! + ); + let salt: Uint8Array = new Uint8Array( + encryptionConfig.encryptionKdfSalt! ); - let salt: Uint8Array = new Uint8Array(encryptionConfig.encryptionKdfSalt); this.agoraRTCClient.setEncryptionConfig( encryptionMode, - encryptionConfig.encryptionKey, + encryptionConfig.encryptionKey!, salt ); //加密只有一次生效 @@ -217,7 +219,7 @@ export class IrisClient { addLocalAudioTrack(trackPackage: AudioTrackPackage) { this.audioTrackPackages.push(trackPackage); - trackPackage.setIrisClient(this); + trackPackage.irisClient = this; } removeLocalAudioTrack(trackPackage: AudioTrackPackage) { @@ -233,11 +235,12 @@ export class IrisClient { setLocalVideoTrack(trackPackage: VideoTrackPackage) { this.videoTrackPackage = trackPackage; - trackPackage.setIrisClient(this); + trackPackage.irisClient = this; } clearLocalVideoTrack() { - this.videoTrackPackage = null; + this.videoTrackPackage?.dispose(); + this.videoTrackPackage = undefined; } async release() { @@ -255,9 +258,6 @@ export class IrisClient { } } - this.audioTrackPackages = []; - this.videoTrackPackage = null; - this.agoraRTCClient = null; for ( let i = 0; i < this._engine.irisClientManager.remoteUserPackages.length; @@ -276,12 +276,18 @@ export class IrisClient { i--; } } - this.connection = null; //不删除通过engine.initialize创建的client if (this._engine.irisClientManager.irisClientList[0]?.id !== this.id) { this._engine.irisClientManager.irisClientList = this._engine.irisClientManager.irisClientList.filter( (item) => item.id != this.id ); } + this.audioTrackPackages = []; + this.connection = { + channelId: '', + localUid: 0, + }; + this.videoTrackPackage = undefined; + this.agoraRTCClient = undefined; } } diff --git a/packages/rtc/src/engine/IrisClientManager.ts b/packages/rtc/src/engine/IrisClientManager.ts index 1ff4dbc6..7d92bca3 100644 --- a/packages/rtc/src/engine/IrisClientManager.ts +++ b/packages/rtc/src/engine/IrisClientManager.ts @@ -10,7 +10,7 @@ import { IRemoteAudioTrack, IRemoteVideoTrack, ITrack, - UID, + VideoPlayerConfig, } from 'agora-rtc-sdk-ng'; import { @@ -19,10 +19,9 @@ import { IrisVideoFrameBufferConfig, VideoParams, } from '../base/BaseType'; +import { defaultVideoPlayerConfig } from '../base/DefaultValue'; import { IrisTrackEventHandler } from '../event_handler/IrisTrackEventHandler'; -import { AgoraConsole } from '../util'; - import { IrisClient } from './IrisClient'; import { IrisClientObserver } from './IrisClientObserver'; import { IrisIntervalType, IrisRtcEngine } from './IrisRtcEngine'; @@ -31,53 +30,34 @@ export type WalkILocalVideoPackageTrackFun = (track: VideoTrackPackage) => void; export class RemoteUserPackage { connection: NATIVE_RTC.RtcConnection; - element?: string; - uid?: UID; - videoSourceType?: NATIVE_RTC.VIDEO_SOURCE_TYPE; - audioSourceType?: IrisAudioSourceType; + element: string; + videoPlayerConfig: VideoPlayerConfig; + uid: number; + videoSourceType: NATIVE_RTC.VIDEO_SOURCE_TYPE; + audioSourceType: IrisAudioSourceType; constructor( connection: NATIVE_RTC.RtcConnection, - element?: string, - uid?: UID, - videoSourceType?: NATIVE_RTC.VIDEO_SOURCE_TYPE, - audioSourceType?: IrisAudioSourceType + element: string, + videoPlayerConfig: VideoPlayerConfig = defaultVideoPlayerConfig, + uid: number, + videoSourceType: NATIVE_RTC.VIDEO_SOURCE_TYPE, + audioSourceType: IrisAudioSourceType ) { this.connection = connection; this.element = element; + this.videoPlayerConfig = videoPlayerConfig; this.uid = uid; this.videoSourceType = videoSourceType; this.audioSourceType = audioSourceType; } - update({ - element = this.element, - uid = this.uid, - videoSourceType = this.videoSourceType, - audioSourceType = this.audioSourceType, - }: { - element?: string; - uid?: UID; - videoSourceType?: NATIVE_RTC.VIDEO_SOURCE_TYPE; - audioSourceType?: IrisAudioSourceType; - }) { - this.element = element; - this.uid = uid; - this.videoSourceType = videoSourceType; - this.audioSourceType = audioSourceType; - } - - dispose() { - this.connection = null; - this.element = null; - this.uid = null; - this.videoSourceType = null; - this.audioSourceType = null; - } + dispose() {} } export class VideoTrackPackage { element?: string; + videoPlayerConfig: VideoPlayerConfig; type?: NATIVE_RTC.VIDEO_SOURCE_TYPE | NATIVE_RTC.EXTERNAL_VIDEO_SOURCE_TYPE; track?: ILocalVideoTrack | IRemoteVideoTrack; isPreview: boolean = false; @@ -85,39 +65,17 @@ export class VideoTrackPackage { constructor( element?: string, + videoPlayerConfig: VideoPlayerConfig = defaultVideoPlayerConfig, type?: NATIVE_RTC.VIDEO_SOURCE_TYPE | NATIVE_RTC.EXTERNAL_VIDEO_SOURCE_TYPE, track?: ILocalVideoTrack | IRemoteVideoTrack ) { this.element = element; - this.type = type; - this.track = track; - } - - setPreview(isPreview: boolean) { - this.isPreview = isPreview; - } - - setIrisClient(irisClient: IrisClient) { - this.irisClient = irisClient; - } - - update({ - type = this.type, - track = this.track, - element = this.element, - }: { - type?: NATIVE_RTC.VIDEO_SOURCE_TYPE | NATIVE_RTC.EXTERNAL_VIDEO_SOURCE_TYPE; - track?: ILocalVideoTrack | IRemoteVideoTrack; - element?: string; - }) { - this.element = element; + this.videoPlayerConfig = videoPlayerConfig; this.type = type; this.track = track; } dispose() { - this.element = null; - this.type = null; this.isPreview = false; try { if (this.track) { @@ -129,8 +87,6 @@ export class VideoTrackPackage { } } } catch {} - this.track = null; - this.irisClient = null; } } @@ -144,34 +100,14 @@ export class AudioTrackPackage { irisClient: IrisClient; constructor( - type?: IrisAudioSourceType, - track?: ILocalAudioTrack | IRemoteAudioTrack + type: IrisAudioSourceType, + track: ILocalAudioTrack | IRemoteAudioTrack ) { this.type = type; this.track = track; } - setIrisClient(irisClient: IrisClient) { - this.irisClient = irisClient; - } - - update({ - type = this.type, - track = this.track, - }: { - type?: IrisAudioSourceType; - track?: - | ILocalAudioTrack - | IRemoteAudioTrack - | IMicrophoneAudioTrack - | ILocalTrack; - }) { - this.type = type; - this.track = track; - } - dispose() { - this.type = null; try { if (this.track) { if (this.track.isPlaying) { @@ -180,8 +116,6 @@ export class AudioTrackPackage { (this.track as ILocalTrack).close(); } } catch {} - this.irisClient = null; - this.track = null; } } @@ -189,29 +123,20 @@ export class BufferSourceAudioTrackPackage extends AudioTrackPackage { soundId: number; type: IrisAudioSourceType; track: IBufferSourceAudioTrack; - needPublish: boolean; - isPublished: boolean; - - setIsPublished(isPublished: boolean) { - this.isPublished = isPublished; - } constructor( - type?: IrisAudioSourceType, - track?: IBufferSourceAudioTrack, - soundId?: number, - needPublish?: boolean + type: IrisAudioSourceType, + track: IBufferSourceAudioTrack, + soundId: number ) { - super(); + super(type, track); this.type = type; this.track = track; this.soundId = soundId; - this.needPublish = needPublish; } dispose(): void { super.dispose(); - this.needPublish = false; } } @@ -226,7 +151,7 @@ export type TrackPackage = // 存放一堆东西的 export class IrisClientManager { - private _engine: IrisRtcEngine = null; + private _engine: IrisRtcEngine; irisClientList: IrisClient[] = []; localVideoTrackPackages: VideoTrackPackage[] = []; @@ -349,7 +274,7 @@ export class IrisClientManager { } } - getRemoteUserPackageByUid(uid: UID): RemoteUserPackage { + getRemoteUserPackageByUid(uid: number): RemoteUserPackage { return this.remoteUserPackages.filter((remoteUserPackage) => { return remoteUserPackage.uid == uid; })[0]; @@ -391,7 +316,7 @@ export class IrisClientManager { } } - removeRemoteUserPackage(uid: UID) { + removeRemoteUserPackage(uid: number) { for (let i = 0; i < this.remoteUserPackages.length; i++) { let userPackage = this.remoteUserPackages[i]; if (userPackage.uid == uid) { @@ -406,15 +331,15 @@ export class IrisClientManager { } } - public getVideoFrame(uid: UID, channel_id: string): VideoParams { + public getVideoFrame(uid: number, channel_id: string): VideoParams { this._engine.irisClientManager.irisClientList.map((irisClient) => { //当存在于本地 if ( - irisClient.agoraRTCClient.channelName == channel_id && + irisClient.agoraRTCClient?.channelName == channel_id && irisClient.agoraRTCClient.uid == uid ) { return { - video_track: irisClient.videoTrackPackage.track, + video_track: irisClient.videoTrackPackage?.track, is_new_frame: true, //todo how to know is a new frame process_err: IRIS_VIDEO_PROCESS_ERR.ERR_OK, }; @@ -437,7 +362,7 @@ export class IrisClientManager { } }); - return null; + return (null as unknown) as VideoParams; } public getVideoFrameByConfig( @@ -474,20 +399,14 @@ export class IrisClientManager { } }); - return null; + return (null as unknown) as VideoParams; } - getIrisClient() { - if (this.irisClientList.length == 0) { - this._engine.irisRtcErrorHandler.notInitialized(); - } else { - return this.irisClientList[0]; - } + getIrisClient(): IrisClient { + return this.irisClientList[0]; } - getIrisClientByConnection( - connection: NATIVE_RTC.RtcConnection - ): IrisClient | null { + getIrisClientByConnection(connection: NATIVE_RTC.RtcConnection): IrisClient { if (connection) { return this.irisClientList.filter((irisClient: IrisClient) => { if ( @@ -568,23 +487,9 @@ export class IrisClientManager { } async processBufferSourceAudioTrackClose( - bufferSourceAudioTrackPackage: BufferSourceAudioTrackPackage, - agoraRTCClient: IAgoraRTCClient + bufferSourceAudioTrackPackage: BufferSourceAudioTrackPackage ) { let track = bufferSourceAudioTrackPackage.track; - if ( - agoraRTCClient && - agoraRTCClient.localTracks && - agoraRTCClient.localTracks.indexOf(track) != -1 - ) { - try { - await agoraRTCClient.unpublish(track); - AgoraConsole.log('unpublish success'); - } catch (e) { - this._engine.returnResult(false); - throw e; - } - } //删除完毕后进行stop,close track.stopProcessAudioBuffer(); @@ -593,52 +498,25 @@ export class IrisClientManager { this.removeTrackEventHandlerByTrack(track); } - async processAudioTrackClose( - audioTrackPackage: AudioTrackPackage, - agoraRTCClient: IAgoraRTCClient - ) { + async processAudioTrackClose(audioTrackPackage: AudioTrackPackage) { let audioTrack = audioTrackPackage.track as ILocalAudioTrack; - if ( - agoraRTCClient && - agoraRTCClient.localTracks && - agoraRTCClient.localTracks.indexOf(audioTrack) != -1 - ) { - try { - await agoraRTCClient.unpublish(audioTrack); - AgoraConsole.log('unpublish success'); - } catch (e) { - this._engine.returnResult(false); - throw e; - } - } //删除完毕后进行stop if (audioTrack.isPlaying) { this._engine.trackHelper.stop(audioTrack); } if (!audioTrack.muted) { - await this._engine.trackHelper.setEnabled(audioTrack, false); + if ( + audioTrackPackage.type !== + IrisAudioSourceType.kAudioSourceTypeScreenCapture + ) { + await this._engine.trackHelper.setEnabled(audioTrack, false); + } } this.removeTrackEventHandlerByTrack(audioTrack); } - async processVideoTrackClose( - videoTrackPackage: VideoTrackPackage, - agoraRTCClient: IAgoraRTCClient - ) { + async processVideoTrackClose(videoTrackPackage: VideoTrackPackage) { let videoTrack = videoTrackPackage.track as ILocalVideoTrack; - if ( - agoraRTCClient && - agoraRTCClient.localTracks && - agoraRTCClient.localTracks.indexOf(videoTrack) != -1 - ) { - try { - await agoraRTCClient.unpublish(videoTrack); - AgoraConsole.log('unpublish success'); - } catch (e) { - this._engine.returnResult(false); - throw e; - } - } //如果isPreview是false则停止播放以及设置为不可用 if (!videoTrackPackage.isPreview) { @@ -658,16 +536,14 @@ export class IrisClientManager { } } - removeUserInfoByUserAccount(userAccount: string) { - const index = this.userInfoList.findIndex( - (user) => user.userAccount === userAccount - ); + removeUserInfoByUid(uid: number) { + const index = this.userInfoList.findIndex((user) => user.uid === uid); if (index !== -1) { this.userInfoList.splice(index, 1); } } - getUserInfoByUid(uid: UID): NATIVE_RTC.UserInfo | undefined { + getUserInfoByUid(uid: number): NATIVE_RTC.UserInfo | undefined { return this.userInfoList.find((userInfo) => userInfo.uid === uid); } diff --git a/packages/rtc/src/engine/IrisClientObserver.ts b/packages/rtc/src/engine/IrisClientObserver.ts index dcf53ce9..eed0ddce 100644 --- a/packages/rtc/src/engine/IrisClientObserver.ts +++ b/packages/rtc/src/engine/IrisClientObserver.ts @@ -1,5 +1,5 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { ILocalTrack, IMicrophoneAudioTrack } from 'agora-rtc-sdk-ng'; +import { ILocalTrack } from 'agora-rtc-sdk-ng'; import { IrisAudioSourceType } from '../base/BaseType'; import { @@ -22,11 +22,9 @@ import { IrisRtcEngine } from './IrisRtcEngine'; export enum NotifyType { 'PUBLISH_TRACK', 'UNPUBLISH_TRACK', - 'ENABLE_TRACK', - 'UNABLE_TRACK', - 'UPDATE_TRACK', 'MUTE_TRACK', 'UNMUTE_TRACK', + 'REMOVE_TRACK', } export enum NotifyRemoteType { 'SUBSCRIBE_VIDEO_TRACK', @@ -72,212 +70,127 @@ export class IrisClientObserver { ); } - //根据每个irisClient的options,分配对应的轨道,如果irisClient的agoraRTCClient已经加入频道,则发布轨道 async publishTrack(trackPackage: TrackPackage, irisClientList: IrisClient[]) { - let publishTrack: ILocalTrack; - let globalState = this._engine.globalState; - for (let irisClient of irisClientList) { - let options = irisClient.irisClientState; + const globalState = this._engine.globalState; + if (!trackPackage.track) return; + + let needPublish: boolean = false; + let track = trackPackage.track as ILocalTrack; + + for (const irisClient of irisClientList) { + const options = irisClient.irisClientState; + if (globalState.enabledAudio && globalState.enabledLocalAudio) { - if (options.publishMicrophoneTrack) { - if ( - trackPackage.track && - (trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary || - trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeMicrophoneSecondary) - ) { - this._engine.trackHelper.setMuted( - trackPackage.track as IMicrophoneAudioTrack, - false - ); - publishTrack = trackPackage.track as ILocalTrack; - irisClient.addLocalAudioTrack(trackPackage); - } - } - if (options.publishScreenCaptureAudio) { - if ( - trackPackage.track && - trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeScreenCapture - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.addLocalAudioTrack(trackPackage); - } + switch (trackPackage.type) { + case IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary: + case IrisAudioSourceType.kAudioSourceTypeMicrophoneSecondary: + if (options.publishMicrophoneTrack) { + this._engine.trackHelper.setMuted(track, false); + needPublish = true; + } + break; + case IrisAudioSourceType.kAudioSourceTypeScreenCapture: + if (options.publishScreenCaptureAudio) { + needPublish = true; + } + break; + case IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio: + needPublish = true; + break; } - - //engine.playEffect创建的track可以在加入频道前调用,也可以在加入频道后调用 - //needPublish通过调用engine.playEffect时绑定 - //当已加入频道时engine.playEffect调用会立刻publish - //当没有加入频道时,engine.playEffect调用不会publish,会等到加入频道后publish - //publish后, 会设置isPublished为true,避免重复publish - //当离开频道或者release时,轨道会关闭并unpublish - if ( - trackPackage.track && - trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio - ) { - if ( - (trackPackage as BufferSourceAudioTrackPackage).needPublish && - !(trackPackage as BufferSourceAudioTrackPackage).isPublished - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.addLocalAudioTrack(trackPackage); - } + if (needPublish) { + irisClient.addLocalAudioTrack(trackPackage as AudioTrackPackage); } } + if (globalState.enabledVideo && globalState.enabledLocalVideo) { - if (options.publishScreenCaptureVideo) { - if (options.publishScreenTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); + switch (trackPackage.type) { + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY: + if (options.publishScreenTrack) { + needPublish = true; } - } - if (options.publishSecondaryScreenTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_SECONDARY - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_SECONDARY: + if (options.publishSecondaryScreenTrack) { + needPublish = true; } - } - if (options.publishThirdScreenTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_THIRD - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_THIRD: + if (options.publishThirdScreenTrack) { + needPublish = true; } - } - if (options.publishFourthScreenTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_FOURTH - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_FOURTH: + if (options.publishFourthScreenTrack) { + needPublish = true; } - } - } - if (options.publishCameraTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); - } - } - if (options.publishSecondaryCameraTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_SECONDARY - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); - } - } - if (options.publishThirdCameraTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_THIRD - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); - } - } - if (options.publishFourthCameraTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_FOURTH - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); - } + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY: + if (options.publishCameraTrack) { + needPublish = true; + } + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_SECONDARY: + if (options.publishSecondaryCameraTrack) { + needPublish = true; + } + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_THIRD: + if (options.publishThirdCameraTrack) { + needPublish = true; + } + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_FOURTH: + if (options.publishFourthCameraTrack) { + needPublish = true; + } + break; + case NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CUSTOM: + if (options.publishCustomVideoTrack) { + needPublish = true; + } + break; } - if (options.publishCustomVideoTrack) { - if ( - trackPackage.track && - trackPackage.type === - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CUSTOM - ) { - publishTrack = trackPackage.track as ILocalTrack; - irisClient.setLocalVideoTrack(trackPackage); - } + if (needPublish) { + irisClient.setLocalVideoTrack(trackPackage as VideoTrackPackage); } } - //发布轨道必须保证该client的options满足条件,并且client已经加入频道,并且该轨道没有被发布过 if ( + needPublish && irisClient.agoraRTCClient?.channelName && - irisClient.agoraRTCClient.localTracks + !irisClient.agoraRTCClient.localTracks?.includes(track) ) { - for (let i = 0; i < irisClient.agoraRTCClient.localTracks.length; i++) { - let localTrack = irisClient.agoraRTCClient.localTracks[i]; - if (localTrack === publishTrack) { - publishTrack = null; - } - } - } else { - publishTrack = null; - } - if (publishTrack) { - if (!publishTrack.enabled) { - await this._engine.trackHelper.setEnabled(publishTrack, true); - } try { - AgoraConsole.debug(`publishTrack ${publishTrack}`); - await irisClient.agoraRTCClient.publish(publishTrack); + AgoraConsole.debug(`publishTrack ${track}`); + await irisClient.agoraRTCClient!.publish(track); } catch (reason) { AgoraConsole.error(reason); } - - if ( - trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio - ) { - (trackPackage as BufferSourceAudioTrackPackage).setIsPublished(true); - } } } } - async enableTrack(trackPackage: TrackPackage) { - let track = trackPackage.track as ILocalTrack; - if (!track?.enabled) { - await this._engine.trackHelper.setEnabled( - trackPackage.track as ILocalTrack, - true - ); + async unpublishTrack(trackPackage: TrackPackage) { + if (!trackPackage.track) { + return; } - } - async unableTrack(trackPackage: TrackPackage) { + let irisClient = trackPackage.irisClient; let track = trackPackage.track as ILocalTrack; - if (track?.enabled) { - await this._engine.trackHelper.setEnabled( - trackPackage.track as ILocalTrack, - false - ); + if (!irisClient) { + return; + } + let agoraRTCClient = irisClient.agoraRTCClient; + if (agoraRTCClient?.localTracks?.includes(track)) { + AgoraConsole.debug(`unpublishTrack ${track}`); + await this._engine.clientHelper.unpublish(agoraRTCClient!, track); } } async muteTrack(trackPackage: TrackPackage) { let track = trackPackage.track as ILocalTrack; + AgoraConsole.debug(`muteTrack ${track}`); if (!track?.muted) { await this._engine.trackHelper.setMuted( trackPackage.track as ILocalTrack, @@ -288,6 +201,7 @@ export class IrisClientObserver { async unmuteTrack(trackPackage: TrackPackage) { let track = trackPackage.track as ILocalTrack; + AgoraConsole.debug(`unmuteTrack ${track}`); if (track?.muted) { await this._engine.trackHelper.setMuted( trackPackage.track as ILocalTrack, @@ -296,55 +210,47 @@ export class IrisClientObserver { } } - async stopTrack(trackPackage: TrackPackage) { + async removeTrack(trackPackage: TrackPackage) { let irisClientManager = this._engine.irisClientManager; try { if (!trackPackage.track) { return; } - AgoraConsole.debug(`stopTrack ${trackPackage.track}`); - //还没有分配给对应的irisClient时,track会放到engine.initialize创建的client + AgoraConsole.debug(`removeTrack ${trackPackage.track}`); let irisClient = trackPackage.irisClient; - if (!trackPackage.irisClient) { + if (!irisClient) { irisClient = irisClientManager.irisClientList[0]; } - if (this._engine.implHelper.isAudio(trackPackage.type)) { + this.unpublishTrack(trackPackage); + if (this._engine.implHelper.isAudio(trackPackage.type!)) { await irisClientManager.processAudioTrackClose( - trackPackage as AudioTrackPackage, - irisClient.agoraRTCClient + trackPackage as AudioTrackPackage ); - if ( - trackPackage.type === - IrisAudioSourceType.kAudioSourceTypeScreenCapture - ) { - this._engine.rtcEngineEventHandler.onLocalAudioStateChanged_f33d789( - NATIVE_RTC.LOCAL_AUDIO_STREAM_STATE - .LOCAL_AUDIO_STREAM_STATE_STOPPED, - 0 - ); - irisClientManager.removeLocalAudioTrackPackage(trackPackage); - irisClient.removeLocalAudioTrack(trackPackage); - } + this._engine.rtcEngineEventHandler.onLocalAudioStateChanged_f33d789( + NATIVE_RTC.LOCAL_AUDIO_STREAM_STATE.LOCAL_AUDIO_STREAM_STATE_STOPPED, + 0 + ); + irisClientManager.removeLocalAudioTrackPackage( + trackPackage as AudioTrackPackage + ); + irisClient.removeLocalAudioTrack(trackPackage as AudioTrackPackage); } else if ( IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio === trackPackage.type ) { await irisClientManager.processBufferSourceAudioTrackClose( - trackPackage as BufferSourceAudioTrackPackage, - irisClient.agoraRTCClient + trackPackage as BufferSourceAudioTrackPackage ); irisClient.removeLocalAudioTrack(trackPackage); irisClientManager.removeLocalAudioTrackPackage(trackPackage); - } else if (this._engine.implHelper.isVideoCamera(trackPackage.type)) { + } else if (this._engine.implHelper.isVideoCamera(trackPackage.type!)) { await irisClientManager.processVideoTrackClose( - trackPackage as VideoTrackPackage, - irisClient?.agoraRTCClient + trackPackage as VideoTrackPackage ); - } else if (this._engine.implHelper.isScreenCapture(trackPackage.type)) { + } else if (this._engine.implHelper.isScreenCapture(trackPackage.type!)) { await irisClientManager.processVideoTrackClose( - trackPackage as VideoTrackPackage, - irisClient?.agoraRTCClient + trackPackage as VideoTrackPackage ); this._engine.rtcEngineEventHandler.onLocalVideoStateChanged_a44228a( trackPackage.type as NATIVE_RTC.VIDEO_SOURCE_TYPE, @@ -355,7 +261,6 @@ export class IrisClientObserver { trackPackage as VideoTrackPackage ); irisClient.clearLocalVideoTrack(); - } else { } } catch (reason) { AgoraConsole.error(reason); @@ -363,8 +268,6 @@ export class IrisClientObserver { } } - async updateTrack(trackPackage: TrackPackage) {} - async notifyLocal( type: NotifyType, scopePackages: TrackPackage[], @@ -374,17 +277,7 @@ export class IrisClientObserver { switch (type) { case NotifyType.PUBLISH_TRACK: if (scopePackage) { - await this.publishTrack(scopePackage, irisClientList); - } - break; - case NotifyType.ENABLE_TRACK: - if (scopePackage) { - await this.enableTrack(scopePackage); - } - break; - case NotifyType.UNABLE_TRACK: - if (scopePackage) { - await this.unableTrack(scopePackage); + await this.publishTrack(scopePackage, irisClientList ?? []); } break; case NotifyType.MUTE_TRACK: @@ -400,19 +293,19 @@ export class IrisClientObserver { case NotifyType.UNPUBLISH_TRACK: if (scopePackage) { - await this.stopTrack(scopePackage); + await this.unpublishTrack(scopePackage); } break; - case NotifyType.UPDATE_TRACK: + case NotifyType.REMOVE_TRACK: if (scopePackage) { - await this.updateTrack(scopePackage); + await this.removeTrack(scopePackage); } break; } } } - subscribeVideoTrack(userPackage: RemoteUserPackage) { + async subscribeVideoTrack(userPackage: RemoteUserPackage, force: boolean) { let irisClient = this._engine.irisClientManager.getIrisClientByConnection( userPackage.connection ); @@ -421,32 +314,38 @@ export class IrisClientObserver { } let autoSubscribeVideo: boolean = irisClient.irisClientState.autoSubscribeVideo; + let needSubscribe = autoSubscribeVideo || force; let enableVideo: boolean = this._engine.globalState.enabledVideo; - if (enableVideo && autoSubscribeVideo && irisClient.agoraRTCClient) { + if (enableVideo && needSubscribe && irisClient.agoraRTCClient) { let user = irisClient.agoraRTCClient.remoteUsers.find( (item) => item.uid === userPackage.uid ); if (!user || !user.hasVideo) { return; } - irisClient.agoraRTCClient.subscribe(user, 'video').then(() => { + await irisClient.agoraRTCClient.subscribe(user, 'video').then(() => { AgoraConsole.debug('onEventUserPublished subscribe video success'); + // setup video maybe called before subscribe, so we need to play video here too if (userPackage.element) { - this._engine.trackHelper.play(user.videoTrack, userPackage.element); + this._engine.trackHelper.play( + user!.videoTrack!, + userPackage.element, + userPackage.videoPlayerConfig + ); } let param: IrisTrackEventHandlerParam = { - channelName: irisClient.agoraRTCClient.channelName, client: irisClient.agoraRTCClient, - remoteUser: user, - track: user.videoTrack, + remoteUser: user!, + track: user!.videoTrack!, trackType: 'IRemoteVideoTrack', + videoSourceType: userPackage.videoSourceType, }; let trackEventHandler = new IrisTrackEventHandler(param, this._engine); this._engine.irisClientManager.addTrackEventHandler(trackEventHandler); }); } } - subscribeAudioTrack(userPackage: RemoteUserPackage) { + async subscribeAudioTrack(userPackage: RemoteUserPackage, force: boolean) { let irisClient = this._engine.irisClientManager.getIrisClientByConnection( userPackage.connection ); @@ -455,23 +354,24 @@ export class IrisClientObserver { } let autoSubscribeAudio: boolean = irisClient.irisClientState.autoSubscribeAudio; + let needSubscribe = autoSubscribeAudio || force; let enableAudio: boolean = this._engine.globalState.enabledAudio; - if (enableAudio && autoSubscribeAudio && irisClient.agoraRTCClient) { + if (enableAudio && needSubscribe && irisClient.agoraRTCClient) { let user = irisClient.agoraRTCClient.remoteUsers.find( (item) => item.uid === userPackage.uid ); if (!user || !user.hasAudio) { return; } - irisClient.agoraRTCClient.subscribe(user, 'audio').then(() => { + await irisClient.agoraRTCClient.subscribe(user, 'audio').then(() => { AgoraConsole.debug('onEventUserPublished subscribe audio success'); - this._engine.trackHelper.play(user.audioTrack); + this._engine.trackHelper.play(user!.audioTrack!); let param: IrisTrackEventHandlerParam = { - channelName: irisClient.agoraRTCClient.channelName, client: irisClient.agoraRTCClient, - remoteUser: user, - track: user.audioTrack, + remoteUser: user!, + track: user!.audioTrack!, trackType: 'IRemoteTrack', + videoSourceType: userPackage.videoSourceType, }; let trackEventHandler = new IrisTrackEventHandler(param, this._engine); this._engine.irisClientManager.addTrackEventHandler(trackEventHandler); @@ -479,7 +379,7 @@ export class IrisClientObserver { } } - unsubscribeVideoTrack(userPackage: RemoteUserPackage) { + async unsubscribeVideoTrack(userPackage: RemoteUserPackage, force: boolean) { let irisClient = this._engine.irisClientManager.getIrisClientByConnection( userPackage.connection ); @@ -490,17 +390,17 @@ export class IrisClientObserver { if (!user || !user.videoTrack) { return; } - irisClient.agoraRTCClient.unsubscribe(user, 'video').then(() => { + await irisClient.agoraRTCClient.unsubscribe(user, 'video').then(() => { AgoraConsole.debug('onEventUserPublished unsubscribe video success'); this._engine.irisClientManager.removetrackEventHandlerByRemoteUser( - user, + user!, 'video' ); }); } } - unsubscribeAudioTrack(userPackage: RemoteUserPackage) { + async unsubscribeAudioTrack(userPackage: RemoteUserPackage, force: boolean) { let irisClient = this._engine.irisClientManager.getIrisClientByConnection( userPackage.connection ); @@ -511,37 +411,41 @@ export class IrisClientObserver { if (!user || !user.audioTrack) { return; } - irisClient.agoraRTCClient.unsubscribe(user, 'audio').then(() => { + await irisClient.agoraRTCClient.unsubscribe(user, 'audio').then(() => { AgoraConsole.debug('onEventUserPublished unsubscribe audio success'); this._engine.irisClientManager.removetrackEventHandlerByRemoteUser( - user, + user!, 'audio' ); }); } } - notifyRemote(type: NotifyRemoteType, scopePackages: RemoteUserPackage[]) { + async notifyRemote( + type: NotifyRemoteType, + scopePackages: RemoteUserPackage[], + force: boolean = true + ) { for (let scopePackage of scopePackages) { switch (type) { case NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK: if (scopePackage) { - this.subscribeVideoTrack(scopePackage); + await this.subscribeVideoTrack(scopePackage, force); } break; case NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK: if (scopePackage) { - this.subscribeAudioTrack(scopePackage); + await this.subscribeAudioTrack(scopePackage, force); } break; case NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK: if (scopePackage) { - this.unsubscribeAudioTrack(scopePackage); + await this.unsubscribeAudioTrack(scopePackage, force); } break; case NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK: if (scopePackage) { - this.unsubscribeVideoTrack(scopePackage); + await this.unsubscribeVideoTrack(scopePackage, force); } break; } diff --git a/packages/rtc/src/engine/IrisRtcEngine.ts b/packages/rtc/src/engine/IrisRtcEngine.ts index 5d42681e..077aac76 100644 --- a/packages/rtc/src/engine/IrisRtcEngine.ts +++ b/packages/rtc/src/engine/IrisRtcEngine.ts @@ -1,6 +1,5 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { UID } from 'agora-rtc-sdk-ng'; import { ApiInterceptor, ApiInterceptorReturnType, @@ -61,17 +60,17 @@ export class IrisRtcEngine implements ApiInterceptor { public clientHelper: ClientHelper = new ClientHelper(this); public irisClientManager: IrisClientManager = new IrisClientManager(this); - public rtcEngineEventHandler: NATIVE_RTC.IRtcEngineEventHandler = null; + public rtcEngineEventHandler: NATIVE_RTC.IRtcEngineEventHandler; - public globalState: IrisGlobalState = null; - public agoraEventHandler: IrisAgoraEventHandler = null; - public executor: CallApiExecutor = null; - public irisEventHandlerManager: IrisEventHandlerManager = null; - public irisElement: IrisElement = null; + public globalState: IrisGlobalState; + public agoraEventHandler: IrisAgoraEventHandler; + public executor: CallApiExecutor; + public irisEventHandlerManager: IrisEventHandlerManager; + public irisElement: IrisElement; public irisIntervalList: { type: IrisIntervalType; interval: NodeJS.Timeout; - uid: UID; + uid: number; }[] = []; public irisRtcErrorHandler: IrisRtcErrorHandler = new IrisRtcErrorHandler( this @@ -79,7 +78,7 @@ export class IrisRtcEngine implements ApiInterceptor { constructor( irisEventHandlerManager: IrisEventHandlerManager, - options: InitIrisRtcOptions + options?: InitIrisRtcOptions ) { const mapData = [ ['MediaPlayer', new IMediaPlayerDispatch(this)], @@ -139,9 +138,6 @@ export class IrisRtcEngine implements ApiInterceptor { let obj = this.implDispatchesMap.get(className); if (obj) { let callApiFun = obj[funName]; - // if (apiParam.event === 'RtcEngine_joinChannelWithUserAccount_670ae7c3') { - // debugger; - // } if (callApiFun) { if ( func_name !== 'RtcEngine_initialize_0320339' && @@ -182,7 +178,11 @@ export class IrisRtcEngine implements ApiInterceptor { } } - public getVideoFrame(uid: UID, channel_id: string): VideoParams { + public getImplInstance(className: string): any { + return this.implDispatchesMap.get(className)?._impl; + } + + public getVideoFrame(uid: number, channel_id: string): VideoParams { return this.irisClientManager.getVideoFrame(uid, channel_id); } @@ -219,7 +219,7 @@ export class IrisRtcEngine implements ApiInterceptor { public addIrisInterval( type: IrisIntervalType, interval: NodeJS.Timeout, - uid: UID + uid: number ) { //如果添加的是远端用户的轮询,uid用远端的 //如果添加的是本地用户的轮询,uid固定为0 @@ -234,7 +234,7 @@ export class IrisRtcEngine implements ApiInterceptor { this.irisIntervalList.filter((a) => type == a.type); } - public removeIrisIntervalByUid(uid: UID) { + public removeIrisIntervalByUid(uid: number) { for (let i = 0; i < this.irisIntervalList.length; i++) { let item = this.irisIntervalList[i]; if (item.uid == uid) { diff --git a/packages/rtc/src/engine/IrisVideoFrameBufferManager.ts b/packages/rtc/src/engine/IrisVideoFrameBufferManager.ts deleted file mode 100644 index c37a05cb..00000000 --- a/packages/rtc/src/engine/IrisVideoFrameBufferManager.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { UID } from 'agora-rtc-sdk-ng'; - -import { - IrisCVideoFrameBuffer, - IrisVideoFrameBufferConfig, - IrisVideoFrameBufferDelegateHandle, - Size, - VideoParams, -} from '../base/BaseType'; - -import { IrisRtcEngine } from './IrisRtcEngine'; - -interface VideoFrameBufferAndConf { - buffer: IrisCVideoFrameBuffer; - conf: IrisVideoFrameBufferConfig; -} - -export class IrisVideoFrameBufferManager { - private _configMap: Map = new Map< - string, - VideoFrameBufferAndConf - >(); - private _sizeMap: Map = new Map(); - private _scheduleHandle: any = null; - private _engine: IrisRtcEngine = null; - - setEngine(engine: IrisRtcEngine) { - this._engine = engine; - } - - public enableVideoFrameBufferByConfig( - buffer: IrisCVideoFrameBuffer, - config: IrisVideoFrameBufferConfig - ): IrisVideoFrameBufferDelegateHandle { - let key: string = this.getConfigKey(config); - this._configMap.set(key, { buffer: buffer, conf: config }); - let handle: IrisVideoFrameBufferDelegateHandle = config; - - //todo 订阅流,或者不订阅流 - - return handle; - } - - public disableVideoFrameBufferByDelegate( - handle: IrisVideoFrameBufferDelegateHandle - ) { - let config: IrisVideoFrameBufferDelegateHandle = handle; - this.disableVideoFrameBufferByConfig(config); - } - - public disableVideoFrameBufferByConfig(config: IrisVideoFrameBufferConfig) { - let key: string = this.getConfigKey(config); - if (this._configMap.has(key)) this._configMap.delete(key); - - //todo 订阅流,或者不订阅流 - } - - public disableAllVideoFrameBuffer() { - this._configMap.clear(); - - //todo 订阅流,或者不订阅流 - } - - public getVideoFrame(uid: UID, channel_id: string): VideoParams { - return this._engine?.getVideoFrame(uid, channel_id); - } - - public getVideoFrameByConfig( - config: IrisVideoFrameBufferConfig - ): VideoParams { - return this._engine.getVideoFrameByConfig(config); - } - - public destruction() { - this._configMap.clear(); - if (this._scheduleHandle != null) { - clearInterval(this._scheduleHandle); - this._scheduleHandle = null; - } - this._engine = null; - } - - private getConfigKey(config: IrisVideoFrameBufferConfig): string { - return config.type.toString() + '_' + config.id + '_' + config.key; - } - - private upgradeScheduleState() { - let callBacks: number = 0; - this._configMap.forEach((val: VideoFrameBufferAndConf, key: string) => { - if (val.buffer.OnVideoFrameReceived != null) callBacks++; - }); - - if (this._scheduleHandle == null) { - if (callBacks > 0) { - this._scheduleHandle = setInterval(this.update.bind(this), 16); - } - } else { - if (callBacks <= 0) { - clearInterval(this._scheduleHandle); - this._scheduleHandle = null; - } - } - } - - private update(dt: number) { - //每16毫秒触发回调 - this._configMap.forEach((val: VideoFrameBufferAndConf, key: string) => { - if (val.buffer.OnVideoFrameReceived != null) { - var config = val.conf; - let videoParams: VideoParams = this.getVideoFrameByConfig(config); - if (videoParams != null) { - let resize = false; - let curWidth = 0; - let curHeight = 0; - - if (this._sizeMap.has(key)) { - let size: Size = this._sizeMap.get(key); - curWidth = (videoParams.video_track as any)._videoWidth; - curHeight = (videoParams.video_track as any)._videoHeight; - - resize = size.width != curWidth || size.height != curHeight; - } else { - resize = true; - } - val.buffer.OnVideoFrameReceived( - videoParams.video_track, - config, - resize - ); - this._sizeMap.set(key, { width: curWidth, height: curHeight }); - } - } - }); - } -} diff --git a/packages/rtc/src/event_handler/IrisClientEventHandler.ts b/packages/rtc/src/event_handler/IrisClientEventHandler.ts index 2330caf5..e744a46e 100644 --- a/packages/rtc/src/event_handler/IrisClientEventHandler.ts +++ b/packages/rtc/src/event_handler/IrisClientEventHandler.ts @@ -10,14 +10,14 @@ import { UID, } from 'agora-rtc-sdk-ng'; -import { IrisAudioSourceType } from '../base/BaseType'; +import { IrisAudioSourceType, defaultRemoteVideoPlayerConfig } from '../base'; import { IrisClient } from '../engine/IrisClient'; import { RemoteUserPackage } from '../engine/IrisClientManager'; import { NotifyRemoteType } from '../engine/IrisClientObserver'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; -import { AgoraTranslate } from '../util/AgoraTranslate'; +import { AgoraTranslate, getUidFromRemoteUser } from '../util'; export class IrisClientEventHandler { private _irisClient: IrisClient; @@ -27,7 +27,7 @@ export class IrisClientEventHandler { constructor(irisClient: IrisClient, engine: IrisRtcEngine) { this._irisClient = irisClient; this._engine = engine; - this.agoraRTCClient = irisClient.agoraRTCClient; + this.agoraRTCClient = irisClient.agoraRTCClient!; this.agoraRTCClient.on( 'connection-state-change', this.onEventConnectionStateChange.bind(this) @@ -42,10 +42,6 @@ export class IrisClientEventHandler { 'user-unpublished', this.onEventUserUnpublished.bind(this) ); - this.agoraRTCClient.on( - 'user-info-updated', - this.onEventUserInfoUpdated.bind(this) - ); this.agoraRTCClient.on('stream-message', this.onStreamMessage.bind(this)); this.agoraRTCClient.on( 'media-reconnect-start', @@ -118,7 +114,7 @@ export class IrisClientEventHandler { ): void { if (curState == 'DISCONNECTED') this._engine.rtcEngineEventHandler.onConnectionLost_c81e1a4( - this._irisClient.connection + this._irisClient.connection! ); else if ( reason == ConnectionDisconnectedReason.CHANNEL_BANNED || @@ -126,14 +122,14 @@ export class IrisClientEventHandler { reason == ConnectionDisconnectedReason.UID_BANNED ) { this._engine.rtcEngineEventHandler.onConnectionBanned_c81e1a4( - this._irisClient.connection + this._irisClient.connection! ); } else if ( reason == ConnectionDisconnectedReason.NETWORK_ERROR || reason == ConnectionDisconnectedReason.SERVER_ERROR ) { this._engine.rtcEngineEventHandler.onConnectionInterrupted_c81e1a4( - this._irisClient.connection + this._irisClient.connection! ); } @@ -150,7 +146,7 @@ export class IrisClientEventHandler { ); } this._engine.rtcEngineEventHandler.onConnectionStateChanged_4075a9c( - this._irisClient.connection, + this._irisClient.connection!, state, reason2 ); @@ -168,16 +164,15 @@ export class IrisClientEventHandler { channelId: this.agoraRTCClient.channelName, localUid: this.agoraRTCClient.uid as number, }; - let remoteUid = user.uid; + let remoteUid: number = getUidFromRemoteUser(user); let elapsed = 0; this._engine.rtcEngineEventHandler.onUserJoined_c5499bd( connection, - remoteUid as number, + remoteUid, elapsed ); - //@ts-ignore websdk的私有属性 - //如果是string uid 登录 - if (this.agoraRTCClient.isStringUID) { + //if joinchannel with string uid + if (typeof user.uid === 'string') { //@ts-ignore websdk的私有属性 let _uintid = user._uintid; let userInfo: NATIVE_RTC.UserInfo = { @@ -191,13 +186,14 @@ export class IrisClientEventHandler { this._engine.irisClientManager.addUserInfo(userInfo); } let userPackage = this._engine.irisClientManager.getRemoteUserPackageByUid( - user.uid + remoteUid ); if (!userPackage) { userPackage = new RemoteUserPackage( connection, - null, - user.uid, + '', + defaultRemoteVideoPlayerConfig, + remoteUid, NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_REMOTE, IrisAudioSourceType.kAudioSourceTypeRemote ); @@ -206,272 +202,159 @@ export class IrisClientEventHandler { this.agoraRTCClient ); } else { - userPackage.update({ - uid: user.uid, - }); + userPackage.uid = remoteUid; } } - onEventUserLeft(user: IAgoraRTCRemoteUser, reason: string): void { + async onEventUserLeft( + user: IAgoraRTCRemoteUser, + reason: string + ): Promise { + let remoteUid: number = getUidFromRemoteUser(user); let remoteUser = this._engine.irisClientManager.getRemoteUserPackageByUid( - user.uid + remoteUid ); let reason2 = AgoraTranslate.string2NATIVE_RTCUSER_OFFLINE_REASON_TYPE( reason ); this._engine.rtcEngineEventHandler.onUserOffline_0a32aac( this._irisClient.connection, - user.uid as number, + remoteUid, reason2 ); - //@ts-ignore websdk的私有属性 - //如果是string uid 登录 - if (this.agoraRTCClient.isStringUID) { - this._engine.irisClientManager.removeUserInfoByUserAccount( - user.uid as string - ); + //if joinchannel with string uid + if (typeof user.uid === 'string') { + this._engine.irisClientManager.removeUserInfoByUid(remoteUid); } - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK, [remoteUser] ); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK, [remoteUser] ); - this._engine.irisClientManager.removeRemoteUserPackage(user.uid); + this._engine.irisClientManager.removeRemoteUserPackage(user.uid as number); this._engine.irisClientManager.removetrackEventHandlerByRemoteUser( user, 'all' ); } - onEventUserPublished( + async onEventUserPublished( user: IAgoraRTCRemoteUser, mediaType: 'audio' | 'video' - ): void { + ): Promise { + let remoteUid: number = getUidFromRemoteUser(user); + let isLocal = user.uid === this.agoraRTCClient.uid; let remoteUser = this._engine.irisClientManager.getRemoteUserPackageByUid( - user.uid + remoteUid ); if (remoteUser) { if (mediaType == 'audio') { - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK, - [remoteUser] + [remoteUser], + false ); + this._engine.rtcEngineEventHandler.onUserMuteAudio_0aac2fe( + this._irisClient.connection, + remoteUid, + false + ); + if (!isLocal) { + this._engine.rtcEngineEventHandler.onRemoteAudioStateChanged_056772e( + this._irisClient.connection, + remoteUid, + NATIVE_RTC.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_STARTING, + NATIVE_RTC.REMOTE_AUDIO_STATE_REASON + .REMOTE_AUDIO_REASON_REMOTE_UNMUTED, + 0 + ); + } } else if (mediaType == 'video') { - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, - [remoteUser] + [remoteUser], + false ); + this._engine.rtcEngineEventHandler.onUserMuteVideo_0aac2fe( + this._irisClient.connection, + remoteUid, + false + ); + if (!isLocal) { + this._engine.rtcEngineEventHandler.onRemoteVideoStateChanged_a14e9d1( + this._irisClient.connection, + remoteUid, + NATIVE_RTC.REMOTE_VIDEO_STATE.REMOTE_VIDEO_STATE_STARTING, + NATIVE_RTC.REMOTE_VIDEO_STATE_REASON + .REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED, + 0 + ); + } } } } - onEventUserUnpublished( + async onEventUserUnpublished( user: IAgoraRTCRemoteUser, mediaType: 'audio' | 'video' - ): void { + ): Promise { + let remoteUid: number = getUidFromRemoteUser(user); let remoteUser = this._engine.irisClientManager.getRemoteUserPackageByUid( - user.uid + remoteUid ); if (remoteUser) { if (mediaType == 'audio') { - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK, [remoteUser] ); - } else if (mediaType == 'video') { - this._engine.irisClientManager.irisClientObserver.notifyRemote( - NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK, - [remoteUser] - ); - } - } - } - - onEventUserInfoUpdated( - uid: UID, - msg: - | 'mute-audio' - | 'mute-video' - | 'enable-local-video' - | 'unmute-audio' - | 'unmute-video' - | 'disable-local-video' - ): void { - let _uid = uid as number; - switch (msg) { - case 'mute-audio': this._engine.rtcEngineEventHandler.onUserMuteAudio_0aac2fe( this._irisClient.connection, - _uid, - true - ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_MUTE_AUDIO - ); - break; - case 'mute-video': - this._engine.rtcEngineEventHandler.onUserMuteVideo_0aac2fe( - this._irisClient.connection, - _uid, + remoteUid, true ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( + this._engine.rtcEngineEventHandler.onRemoteAudioStateChanged_056772e( this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_MUTE_VIDEO + remoteUid, + NATIVE_RTC.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_STOPPED, + NATIVE_RTC.REMOTE_AUDIO_STATE_REASON.REMOTE_AUDIO_REASON_REMOTE_MUTED, + 0 ); - break; - case 'unmute-audio': - this._engine.rtcEngineEventHandler.onUserMuteAudio_0aac2fe( - this._irisClient.connection, - _uid, - false + } else if (mediaType == 'video') { + await this._engine.irisClientManager.irisClientObserver.notifyRemote( + NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK, + [remoteUser] ); - break; - case 'unmute-video': this._engine.rtcEngineEventHandler.onUserMuteVideo_0aac2fe( this._irisClient.connection, - _uid, - false - ); - break; - case 'enable-local-video': - this._engine.rtcEngineEventHandler.onUserEnableLocalVideo_0aac2fe( - this._irisClient.connection, - _uid, + remoteUid, true ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( + this._engine.rtcEngineEventHandler.onRemoteVideoStateChanged_a14e9d1( this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_ENABLE_LOCAL_VIDEO + remoteUid, + NATIVE_RTC.REMOTE_VIDEO_STATE.REMOTE_VIDEO_STATE_STOPPED, + NATIVE_RTC.REMOTE_VIDEO_STATE_REASON + .REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED, + 0 ); - break; - case 'disable-local-video': - this._engine.rtcEngineEventHandler.onUserEnableLocalVideo_0aac2fe( - this._irisClient.connection, - _uid, - false - ); - break; - } - if (uid === this.agoraRTCClient.uid) { - switch (msg) { - case 'mute-audio': - this._engine.rtcEngineEventHandler.onUserMuteAudio_0aac2fe( - this._irisClient.connection, - _uid, - true - ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_MUTE_AUDIO - ); - break; - case 'mute-video': - this._engine.rtcEngineEventHandler.onUserMuteVideo_0aac2fe( - this._irisClient.connection, - _uid, - true - ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_MUTE_VIDEO - ); - break; - case 'unmute-audio': - this._engine.rtcEngineEventHandler.onUserMuteAudio_0aac2fe( - this._irisClient.connection, - _uid, - false - ); - break; - case 'unmute-video': - this._engine.rtcEngineEventHandler.onUserMuteVideo_0aac2fe( - this._irisClient.connection, - _uid, - false - ); - break; - case 'enable-local-video': - this._engine.rtcEngineEventHandler.onUserEnableLocalVideo_0aac2fe( - this._irisClient.connection, - _uid, - true - ); - this._engine.rtcEngineEventHandler.onUserStateChanged_65f95a7( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_USER_STATE.USER_STATE_ENABLE_LOCAL_VIDEO - ); - break; - case 'disable-local-video': - this._engine.rtcEngineEventHandler.onUserEnableLocalVideo_0aac2fe( - this._irisClient.connection, - _uid, - false - ); - break; - } - } else { - switch (msg) { - case 'mute-audio': - this._engine.rtcEngineEventHandler.onRemoteAudioStateChanged_056772e( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_STOPPED, - NATIVE_RTC.REMOTE_AUDIO_STATE_REASON - .REMOTE_AUDIO_REASON_REMOTE_MUTED, - 0 - ); - break; - case 'mute-video': - this._engine.rtcEngineEventHandler.onRemoteVideoStateChanged_a14e9d1( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_VIDEO_STATE.REMOTE_VIDEO_STATE_STOPPED, - NATIVE_RTC.REMOTE_VIDEO_STATE_REASON - .REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED, - 0 - ); - break; - case 'unmute-audio': - this._engine.rtcEngineEventHandler.onRemoteAudioStateChanged_056772e( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_AUDIO_STATE.REMOTE_AUDIO_STATE_STARTING, - NATIVE_RTC.REMOTE_AUDIO_STATE_REASON - .REMOTE_AUDIO_REASON_REMOTE_UNMUTED, - 0 - ); - break; - case 'unmute-video': - this._engine.rtcEngineEventHandler.onRemoteVideoStateChanged_a14e9d1( - this._irisClient.connection, - _uid, - NATIVE_RTC.REMOTE_VIDEO_STATE.REMOTE_VIDEO_STATE_STARTING, - NATIVE_RTC.REMOTE_VIDEO_STATE_REASON - .REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED, - 0 - ); - break; } } } onStreamMessage(uid: UID, payload: Uint8Array): void { + //if joinchannel with string uid + if (typeof uid === 'string') { + uid = this._engine.irisClientManager.getUserInfoByUserAccount(uid)?.uid!; + } this._engine.rtcEngineEventHandler.onStreamMessage_99898cb( this._irisClient.connection, - uid as number, + uid, this._engine.globalState.streamMessageStreamId, payload, payload.length, @@ -479,14 +362,14 @@ export class IrisClientEventHandler { ); } - onEventMediaReconnectStart(uid: UID): void { + onEventMediaReconnectStart(uid: number): void { //暂时没有找到对应的回调 } - onEventMediaReconnectEnd(uid: UID): void { + onEventMediaReconnectEnd(uid: number): void { //展示没有找到合适的回调 } - onEventStreamTypeChanged(uid: UID, streamType: RemoteStreamType): void { + onEventStreamTypeChanged(uid: number, streamType: RemoteStreamType): void { //展示没有合适的回调 } @@ -494,13 +377,17 @@ export class IrisClientEventHandler { uid: UID, isFallbackOrRecover: 'fallback' | 'recover' ): void { + //if joinchannel with string uid + if (typeof uid === 'string') { + uid = this._engine.irisClientManager.getUserInfoByUserAccount(uid)?.uid!; + } this._engine.rtcEngineEventHandler.onRemoteSubscribeFallbackToAudioOnly_dbdc15a( - uid as number, + uid, isFallbackOrRecover == 'fallback' ? true : false ); } - onEventVolumeIndicator(result: { level: number; uid: UID }[]): void { + onEventVolumeIndicator(result: { level: number; uid: number }[]): void { let speakers: NATIVE_RTC.AudioVolumeInfo[] = []; for (let i = 0; i < result.length; i++) { speakers.push( @@ -535,10 +422,9 @@ export class IrisClientEventHandler { } onEventTokenPrivilegeWillExpire(): void { - let token: string = this._irisClient.irisClientState.token; this._engine.rtcEngineEventHandler.onTokenPrivilegeWillExpire_8225ea3( this._irisClient.connection, - token + this._irisClient.irisClientState.token! ); } @@ -567,7 +453,7 @@ export class IrisClientEventHandler { //todo 后边再做 onEventLiveStreamingWarning(url: string, warning: IAgoraRTCError): void {} - onEventException(event: { code: number; msg: string; uid: UID }): void { + onEventException(event: { code: number; msg: string; uid: number }): void { //触发不了onError和onWarning, 错误吗几乎没有重合的部分 } diff --git a/packages/rtc/src/event_handler/IrisTrackEventHandler.ts b/packages/rtc/src/event_handler/IrisTrackEventHandler.ts index a2d309a5..2720b6d0 100644 --- a/packages/rtc/src/event_handler/IrisTrackEventHandler.ts +++ b/packages/rtc/src/event_handler/IrisTrackEventHandler.ts @@ -25,7 +25,6 @@ export type TrackType = | 'IBufferSourceAudioTrack' | 'IRemoteVideoTrack'; export interface IrisTrackEventHandlerParam { - channelName?: string; client?: IAgoraRTCClient; remoteUser?: IAgoraRTCRemoteUser; track: ITrack; @@ -37,21 +36,20 @@ export interface IrisTrackEventHandlerParam { //一个track可能被多个Client发布出去,所以一个track可以同事存在多个TrackEventHandler export class IrisTrackEventHandler { - private _client: IAgoraRTCClient = null; - private _remoteUser: IAgoraRTCRemoteUser = null; - private _track: ITrack | IBufferSourceAudioTrack = null; + private _client?: IAgoraRTCClient; + private _remoteUser?: IAgoraRTCRemoteUser; + private _track: ITrack | IBufferSourceAudioTrack; private _trackType: TrackType = 'ILocalTrack'; - private _videoSourceType: + private _videoSourceType?: | NATIVE_RTC.VIDEO_SOURCE_TYPE | NATIVE_RTC.EXTERNAL_VIDEO_SOURCE_TYPE; private _engine: IrisRtcEngine; - private __onEventTrackEnded = null; - private __onEventBeautyEffectOverload = null; - private __onEventFirstFrameDecoded = null; - private __onEventVideoElementVisibleStatus = null; - private __onEventSourceStateChange = null; + private __onEventTrackEnded: Function; + private __onEventFirstFrameDecoded = Function; + private __onEventVideoElementVisibleStatus = Function; + private __onEventSourceStateChange = Function; constructor(params: IrisTrackEventHandlerParam, engine: IrisRtcEngine) { this._client = params.client; @@ -68,9 +66,6 @@ export class IrisTrackEventHandler { case 'ILocalVideoTrack': this.__onEventTrackEnded = this.onEventTrackEnded.bind(this); this._track.on('track-ended', this.__onEventTrackEnded); - this.__onEventBeautyEffectOverload = this.onEventBeautyEffectOverload.bind( - this - ); this.__onEventVideoElementVisibleStatus = this.onEventVideoElementVisibleStatus.bind( this ); @@ -111,11 +106,7 @@ export class IrisTrackEventHandler { switch (this._trackType) { case 'ILocalTrack': // 屏幕共享的case - if ( - this._engine.implHelper.isScreenCapture( - this._videoSourceType as NATIVE_RTC.VIDEO_SOURCE_TYPE - ) - ) { + if (this._engine.implHelper.isScreenCapture(this._videoSourceType!)) { this._engine.implDispatchesMap .get('RtcEngine') ._impl.stopScreenCapture(); @@ -149,22 +140,25 @@ export class IrisTrackEventHandler { } onEventFirstFrameDecoded() { + if (!this._client) { + return; + } if (this._trackType == 'IRemoteTrack') { let connection: NATIVE_RTC.RtcConnection = { channelId: this._client.channelName, localUid: this._client.uid as number, }; let remoteUid = (this._remoteUser?.uid as number) || -1; - let elaspsed = 0; + let elapsed = 0; this._engine.rtcEngineEventHandler.onFirstRemoteAudioDecoded_c5499bd( connection, remoteUid, - elaspsed + elapsed ); this._engine.rtcEngineEventHandler.onFirstRemoteAudioFrame_c5499bd( connection, remoteUid, - elaspsed + elapsed ); } else if (this._trackType == 'IRemoteVideoTrack') { let connection: NATIVE_RTC.RtcConnection = { @@ -172,10 +166,10 @@ export class IrisTrackEventHandler { localUid: this._client.uid as number, }; let remoteUid = (this._remoteUser?.uid as number) || -1; - let elaspsed = 0; + let elapsed = 0; let width = -1; let height = -1; - if (this._remoteUser.hasVideo && this._remoteUser.videoTrack) { + if (this._remoteUser?.hasVideo && this._remoteUser.videoTrack) { let imageData = this._remoteUser.videoTrack.getCurrentFrameData(); width = imageData?.width || -1; height = imageData?.height || -1; @@ -185,14 +179,14 @@ export class IrisTrackEventHandler { remoteUid, width, height, - elaspsed + elapsed ); this._engine.rtcEngineEventHandler.onFirstRemoteVideoFrame_a68170a( connection, remoteUid, width, height, - elaspsed + elapsed ); } } @@ -201,7 +195,7 @@ export class IrisTrackEventHandler { return this._track; } - getRemoteUser(): IAgoraRTCRemoteUser { + getRemoteUser(): IAgoraRTCRemoteUser | undefined { return this._remoteUser; } diff --git a/packages/rtc/src/extensions/EventhandlerBufferExtensions.ts b/packages/rtc/src/extensions/EventhandlerBufferExtensions.ts index b93a2e8f..18921c4a 100644 --- a/packages/rtc/src/extensions/EventhandlerBufferExtensions.ts +++ b/packages/rtc/src/extensions/EventhandlerBufferExtensions.ts @@ -4,7 +4,7 @@ export function eventHandlerBufferExtension( func_name: string, data: any ): any[] { - let bufferList = []; + let bufferList: any = []; switch (func_name) { case IRTCENGINEEVENTHANDLER_ONSTREAMMESSAGE_99898cb: if (data.data) { diff --git a/packages/rtc/src/helper/ClientHelper.ts b/packages/rtc/src/helper/ClientHelper.ts index 6b54da1d..3879a3ba 100644 --- a/packages/rtc/src/helper/ClientHelper.ts +++ b/packages/rtc/src/helper/ClientHelper.ts @@ -1,5 +1,5 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { ClientRole, IAgoraRTCClient } from 'agora-rtc-sdk-ng'; +import { ClientRole, IAgoraRTCClient, ILocalTrack } from 'agora-rtc-sdk-ng'; import { CallIrisApiResult } from 'iris-web-core'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; @@ -41,7 +41,8 @@ export class ClientHelper { public async setClientRole( client: IAgoraRTCClient, role: NATIVE_RTC.CLIENT_ROLE_TYPE, - audienceLatencyLevel: NATIVE_RTC.AUDIENCE_LATENCY_LEVEL_TYPE + audienceLatencyLevel: NATIVE_RTC.AUDIENCE_LATENCY_LEVEL_TYPE = NATIVE_RTC + .AUDIENCE_LATENCY_LEVEL_TYPE.AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY ): Promise { try { let webRole: ClientRole = AgoraTranslate.NATIVE_RTC_CLIENT_ROLE_TYPE2ClientRole( @@ -54,7 +55,7 @@ export class ClientHelper { ? AgoraTranslate.NATIVE_RTC_AUDIENCE_LATENCY_LEVEL_TYPE2ClientRoleOptions( audienceLatencyLevel ) - : null + : undefined ); } catch (e) { AgoraConsole.error(e); @@ -80,4 +81,19 @@ export class ClientHelper { throw e; } } + + public async unpublish( + client: IAgoraRTCClient, + tracks?: ILocalTrack | ILocalTrack[] + ): Promise { + try { + await client.unpublish(tracks); + } catch (e) { + AgoraConsole.error(e); + Promise.resolve( + new CallIrisApiResult(-NATIVE_RTC.ERROR_CODE_TYPE.ERR_FAILED, e) + ); + throw e; + } + } } diff --git a/packages/rtc/src/helper/DomHelper.ts b/packages/rtc/src/helper/DomHelper.ts index eed69052..604e6a3a 100644 --- a/packages/rtc/src/helper/DomHelper.ts +++ b/packages/rtc/src/helper/DomHelper.ts @@ -10,7 +10,6 @@ export class IrisElement { public createIrisElement(): HTMLDivElement { const dom = document.createElement('div'); dom.id = this.containerID; - // dom.style.display = this.containerDisplay; this.containerElement = dom; return dom; } @@ -21,7 +20,6 @@ export class IrisElement { public remove() { this.containerElement?.remove(); - this.containerElement = null; } release() { diff --git a/packages/rtc/src/helper/ImplHelper.ts b/packages/rtc/src/helper/ImplHelper.ts index 9bd16f69..63483a93 100644 --- a/packages/rtc/src/helper/ImplHelper.ts +++ b/packages/rtc/src/helper/ImplHelper.ts @@ -12,6 +12,8 @@ import { } from 'agora-rtc-sdk-ng'; import { IrisAudioSourceType } from '../base/BaseType'; +import { IrisClient } from '../engine/IrisClient'; + import { AudioTrackPackage, BufferSourceAudioTrackPackage, @@ -21,10 +23,10 @@ import { NotifyType } from '../engine/IrisClientObserver'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { IrisTrackEventHandler } from '../event_handler/IrisTrackEventHandler'; +import { IRtcEngineImpl } from '../impl/IAgoraRtcEngineImpl'; import { IrisGlobalState } from '../state/IrisGlobalState'; -import { AgoraConsole } from '../util/AgoraConsole'; -import { AgoraTranslate } from '../util/AgoraTranslate'; +import { AgoraConsole, AgoraTranslate, isDefined } from '../util'; export class ImplHelper { _engine: IrisRtcEngine; @@ -34,10 +36,9 @@ export class ImplHelper { public async createBufferSourceAudioTrack( soundId: number, - publish: boolean, bufferSourceAudioTrackInitConfig: BufferSourceAudioTrackInitConfig ): Promise { - let bufferSourceAudioTrack: IBufferSourceAudioTrack = null; + let bufferSourceAudioTrack: IBufferSourceAudioTrack | undefined = undefined; try { bufferSourceAudioTrack = await this._engine.globalState.AgoraRTC.createBufferSourceAudioTrack( @@ -45,14 +46,15 @@ export class ImplHelper { ); } catch (e) { AgoraConsole.error('createBufferSourceAudioTrack failed'); - AgoraConsole.error(e); + throw e; + } + if (bufferSourceAudioTrack) { + await this.processAudioTrack(bufferSourceAudioTrack); } - await this.processAudioTrack(bufferSourceAudioTrack); let bufferSourceAudioTrackPackage = new BufferSourceAudioTrackPackage( IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio, - bufferSourceAudioTrack, - soundId, - publish + bufferSourceAudioTrack!, + soundId ); this._engine.irisClientManager.addLocalAudioTrackPackage( bufferSourceAudioTrackPackage @@ -60,7 +62,7 @@ export class ImplHelper { let trackEventHandler: IrisTrackEventHandler = new IrisTrackEventHandler( { - track: bufferSourceAudioTrack, + track: bufferSourceAudioTrack!, trackType: 'IBufferSourceAudioTrack', }, this._engine @@ -77,7 +79,7 @@ export class ImplHelper { let videoTrackPackage: VideoTrackPackage = this._engine.irisClientManager.getLocalVideoTrackPackageBySourceType( videoType )[0]; - let videoTrack: ILocalVideoTrack = null; + let videoTrack: ILocalVideoTrack; let config = { mediaStreamTrack, }; @@ -93,17 +95,22 @@ export class ImplHelper { ); } catch (e) { AgoraConsole.error('createCustomVideoTrack failed'); - AgoraConsole.error(e); + throw e; } await this.processVideoTrack(videoTrack); if (!videoTrackPackage) { - videoTrackPackage = new VideoTrackPackage(null, videoType, videoTrack); + videoTrackPackage = new VideoTrackPackage( + undefined, + undefined, + videoType, + videoTrack + ); this._engine.irisClientManager.addLocalVideoTrackPackage( videoTrackPackage ); } else { - videoTrackPackage.update({ track: videoTrack }); + videoTrackPackage.track = videoTrack; } let trackEventHandler: IrisTrackEventHandler = new IrisTrackEventHandler( { @@ -130,9 +137,9 @@ export class ImplHelper { return; } //如果没有track,但是有package,就需要创建track - let audioTrack: ILocalAudioTrack = null; - let videoTrack: ILocalVideoTrack = null; - let screenTrack = [null, null]; + let audioTrack: ILocalAudioTrack; + let videoTrack: ILocalVideoTrack; + let screenTrack = new Array(2); try { let conf: ScreenVideoTrackInitConfig = this.generateScreenVideoTrackInitConfig(); let result = await this._engine.globalState.AgoraRTC.createScreenVideoTrack( @@ -142,7 +149,7 @@ export class ImplHelper { if (Array.isArray(result)) { screenTrack = result; } else { - screenTrack = [result, null]; + screenTrack = [result, undefined]; } if (screenTrack) { //每一个track都可能是null @@ -163,7 +170,8 @@ export class ImplHelper { if (!videoTrackPackage) { videoTrackPackage = new VideoTrackPackage( - null, + undefined, + undefined, videoType, videoTrack ); @@ -171,7 +179,7 @@ export class ImplHelper { videoTrackPackage ); } else { - videoTrackPackage.update({ track: videoTrack }); + videoTrackPackage.track = videoTrack; } //设置屏幕共享特殊的事件 @@ -193,12 +201,10 @@ export class ImplHelper { } } - public async createAudioTrack(audioType: IrisAudioSourceType) { - let audioTrackPackage: AudioTrackPackage; - let audioTrack: IMicrophoneAudioTrack = null; + public async createMicrophoneAudioTrack(): Promise { + let audioTrack: IMicrophoneAudioTrack; try { audioTrack = await this._engine.globalState.AgoraRTC.createMicrophoneAudioTrack(); - //受全局enabledAudio控制 await this._engine.trackHelper.setEnabled(audioTrack, false); } catch (e) { AgoraConsole.error('createMicrophoneAudioTrack failed'); @@ -206,20 +212,17 @@ export class ImplHelper { } await this.processAudioTrack(audioTrack); - audioTrackPackage = new AudioTrackPackage(audioType, audioTrack); - this._engine.irisClientManager.addLocalAudioTrackPackage(audioTrackPackage); - return audioTrackPackage; + return audioTrack; } public async createVideoCameraTrack(): Promise { - let videoTrack: ICameraVideoTrack = null; + let videoTrack: ICameraVideoTrack; try { videoTrack = await this._engine.globalState.AgoraRTC.createCameraVideoTrack(); - //受全局enabledVideo控制 await this._engine.trackHelper.setEnabled(videoTrack, false); } catch (e) { AgoraConsole.error('createCameraVideoTrack failed'); - AgoraConsole.error(e); + throw e; } await this.processVideoTrack(videoTrack); @@ -301,9 +304,9 @@ export class ImplHelper { } public async enumerateDevices(): Promise<{ - playbackDevices: NATIVE_RTC.DeviceInfo[]; - recordingDevices: NATIVE_RTC.DeviceInfo[]; - videoDevices: NATIVE_RTC.DeviceInfo[]; + playbackDevices: MediaDeviceInfo[]; + recordingDevices: MediaDeviceInfo[]; + videoDevices: MediaDeviceInfo[]; }> { let info = await this._engine.globalState.AgoraRTC.getDevices(); let playbackDevices: any[] = []; @@ -343,48 +346,165 @@ export class ImplHelper { connection?: NATIVE_RTC.RtcConnection ) { const irisClientManager = this._engine.irisClientManager; - const irisClient = irisClientManager.getIrisClientByConnection(connection); - - let agoraRTCClient = irisClient?.agoraRTCClient; - if (!agoraRTCClient) { - return this._engine.returnResult( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_FAILED - ); + let irisClient: IrisClient; + if (connection) { + irisClient = irisClientManager.getIrisClientByConnection(connection); + } else { + irisClient = irisClientManager.getIrisClient(); + } + if (!irisClient) { + return; } - - let audioTrackPackages = irisClient.audioTrackPackages; - let videoTrackPackage = irisClient.videoTrackPackage; - let irisClientObserver = irisClientManager.irisClientObserver; - irisClientObserver.notifyLocal(NotifyType.UNPUBLISH_TRACK, [ - ...audioTrackPackages, - videoTrackPackage, - ]); - let irisClientState = irisClient.irisClientState; - irisClientState.mergeChannelMediaOptions(options); - if (irisClientState.clientRoleType) { - await this._engine.clientHelper.setClientRole( - agoraRTCClient, - irisClientState.clientRoleType, - irisClientState.audienceLatencyLevel + let agoraRTCClient = irisClient.agoraRTCClient; + let irisClientObserver = irisClientManager.irisClientObserver; + let localAudioTrackPackages = irisClientManager.localAudioTrackPackages; + let localVideoTrackPackages = irisClientManager.localVideoTrackPackages; + if (connection) { + localAudioTrackPackages = irisClientManager.getLocalAudioTrackPackageByConnection( + connection + ); + localVideoTrackPackages = irisClientManager.getLocalVideoTrackPackageByConnection( + connection ); } - if (irisClientState.token) { + + //clientRole update + if (isDefined(options.clientRoleType)) { + if ( + options.clientRoleType === + NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE && + irisClientState.clientRoleType !== options.clientRoleType + ) { + (this._engine.getImplInstance( + 'RtcEngine' + ) as IRtcEngineImpl).muteLocalAudioStream_5039d15(true); + (this._engine.getImplInstance( + 'RtcEngine' + ) as IRtcEngineImpl).muteLocalVideoStream_5039d15(true); + this._engine.rtcEngineEventHandler.onClientRoleChanged_2acaf10( + irisClient.connection!, + irisClientState.clientRoleType!, + options.clientRoleType!, + options + ); + await this._engine.clientHelper.setClientRole( + agoraRTCClient!, + options.clientRoleType!, + irisClientState.audienceLatencyLevel + ); + } + irisClientState.clientRoleType = options.clientRoleType; + } + + //token update + if (isDefined(options.token)) { try { - await agoraRTCClient.renewToken(irisClientState.token); + await agoraRTCClient!.renewToken(options.token); } catch (e) { return this._engine.returnResult(false); } } - irisClientObserver.notifyLocal( - NotifyType.PUBLISH_TRACK, - [ - ...irisClientManager.localAudioTrackPackages, - ...irisClientManager.localVideoTrackPackages, - ], - [irisClient] - ); + + let needPublishVideoTrackPackages: VideoTrackPackage[] = []; + let needUnPublishVideoTrackPackages: VideoTrackPackage[] = []; + let needPublishAudioTrackPackages: AudioTrackPackage[] = []; + let needUnPublishAudioTrackPackages: AudioTrackPackage[] = []; + if ( + irisClientState.clientRoleType === + NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_BROADCASTER + ) { + if (options.publishCameraTrack === false) { + needUnPublishVideoTrackPackages = [ + ...needUnPublishVideoTrackPackages, + ...localVideoTrackPackages.filter( + (e) => + e.type === + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY + ), + ]; + } + if (options.publishCameraTrack === true) { + needPublishVideoTrackPackages = [ + ...needPublishVideoTrackPackages, + ...localVideoTrackPackages.filter( + (e) => + e.type === + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY + ), + ]; + } + + if (options.publishMicrophoneTrack === false) { + needUnPublishAudioTrackPackages = [ + ...needUnPublishAudioTrackPackages, + ...localAudioTrackPackages.filter( + (e) => + e.type === IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + ), + ]; + } + + if (options.publishMicrophoneTrack === true) { + needPublishAudioTrackPackages = [ + ...needPublishAudioTrackPackages, + ...localAudioTrackPackages.filter( + (e) => + e.type === IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + ), + ]; + } + + if (options.publishScreenTrack === false) { + needUnPublishAudioTrackPackages = [ + ...needUnPublishAudioTrackPackages, + ...localAudioTrackPackages.filter( + (e) => e.type === IrisAudioSourceType.kAudioSourceTypeScreenCapture + ), + ]; + needUnPublishVideoTrackPackages = [ + ...needUnPublishVideoTrackPackages, + ...localVideoTrackPackages.filter( + (e) => + e.type === + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY + ), + ]; + } + + if (options.publishScreenTrack === true) { + needPublishAudioTrackPackages = [ + ...needPublishAudioTrackPackages, + ...irisClientManager.localAudioTrackPackages.filter( + (e) => e.type === IrisAudioSourceType.kAudioSourceTypeScreenCapture + ), + ]; + needPublishVideoTrackPackages = [ + ...needPublishVideoTrackPackages, + ...irisClientManager.localVideoTrackPackages.filter( + (e) => + e.type === + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY + ), + ]; + } + + irisClientState.mergeChannelMediaOptions(options); + await irisClientObserver.notifyLocal( + NotifyType.UNPUBLISH_TRACK, + [ + ...needUnPublishAudioTrackPackages, + ...needUnPublishVideoTrackPackages, + ], + [irisClient] + ); + + await irisClientObserver.notifyLocal( + NotifyType.PUBLISH_TRACK, + [...needPublishVideoTrackPackages, ...needPublishAudioTrackPackages], + [irisClient] + ); + } } public async joinChannel( @@ -400,10 +520,14 @@ export class ImplHelper { options = irisClient.irisClientState; irisClient.irisClientState.token = token; + if (!irisClient.agoraRTCClient) { + return this._engine.returnResult(false); + } + let agoraRTCClient = irisClient.agoraRTCClient; try { await agoraRTCClient.join( - globalState.rtcEngineContext.appId, + globalState.rtcEngineContext.appId!, channelId, token ? token : null, uid @@ -431,8 +555,34 @@ export class ImplHelper { userAccount: uid as string, }); } - irisClient.setConnection(con); + irisClient.connection = con; this._engine.rtcEngineEventHandler.onJoinChannelSuccess_263e4cd(con, 0); + + if ( + irisClient.irisClientState.clientRoleType === + NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_BROADCASTER && + this._engine.globalState.enabledAudio && + options.publishMicrophoneTrack + ) { + if ( + !this._engine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0] + ) { + let audioTrack = await this._engine.implHelper.createMicrophoneAudioTrack(); + this._engine.irisClientManager.addLocalAudioTrackPackage( + new AudioTrackPackage( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary, + audioTrack + ) + ); + await this._engine.trackHelper.setEnabled( + audioTrack as ILocalAudioTrack, + true + ); + } + } + await this._engine.irisClientManager.irisClientObserver.notifyLocal( NotifyType.PUBLISH_TRACK, [ diff --git a/packages/rtc/src/helper/TrackHelper.ts b/packages/rtc/src/helper/TrackHelper.ts index 08dc31e4..eba61a3e 100644 --- a/packages/rtc/src/helper/TrackHelper.ts +++ b/packages/rtc/src/helper/TrackHelper.ts @@ -1,5 +1,13 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { ICameraVideoTrack, ILocalTrack, ITrack } from 'agora-rtc-sdk-ng'; +import { + ICameraVideoTrack, + ILocalAudioTrack, + ILocalTrack, + IMicrophoneAudioTrack, + IRemoteAudioTrack, + ITrack, + VideoPlayerConfig, +} from 'agora-rtc-sdk-ng'; import { CallIrisApiResult } from 'iris-web-core'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; @@ -12,9 +20,17 @@ export class TrackHelper { this._engine = engine; } - public play(track: ITrack, element?: string): void { + public play( + track: ITrack, + element?: string | HTMLElement, + config?: VideoPlayerConfig + ): void { try { - track?.play(element); + if (track.trackMediaType === 'video' && config) { + (track as ICameraVideoTrack)?.play(element!, config); + } else { + track?.play(element); + } } catch (e) { AgoraConsole.error(e); Promise.resolve( @@ -61,7 +77,7 @@ export class TrackHelper { } } public async setDevice( - track: ICameraVideoTrack, + track: ICameraVideoTrack | IMicrophoneAudioTrack, deviceId: string ): Promise { try { @@ -74,4 +90,18 @@ export class TrackHelper { throw e; } } + public async setPlaybackDevice( + track: ILocalAudioTrack | IRemoteAudioTrack, + deviceId: string + ): Promise { + try { + await track?.setPlaybackDevice(deviceId); + } catch (e) { + AgoraConsole.error(e); + Promise.resolve( + new CallIrisApiResult(-NATIVE_RTC.ERROR_CODE_TYPE.ERR_FAILED, e) + ); + throw e; + } + } } diff --git a/packages/rtc/src/impl/IAgoraMediaEngineImpl.ts b/packages/rtc/src/impl/IAgoraMediaEngineImpl.ts index f6888716..9c1dc4ae 100644 --- a/packages/rtc/src/impl/IAgoraMediaEngineImpl.ts +++ b/packages/rtc/src/impl/IAgoraMediaEngineImpl.ts @@ -57,7 +57,9 @@ export class IMediaEngineImpl implements NATIVE_RTC.IMediaEngine { irisContainer = this._engine.irisElement.createIrisElement(); } let canvasID = `MediaEngine_pushVideoFrame_CANVAS`; - let canvas: HTMLCanvasElement = document.querySelector(`#${canvasID}`); + let canvas: HTMLCanvasElement | null = document.querySelector( + `#${canvasID}` + ); if (!canvas) { canvas = document.createElement('canvas'); canvas.id = canvasID; @@ -74,9 +76,9 @@ export class IMediaEngineImpl implements NATIVE_RTC.IMediaEngine { ); } drawRGBABufferToCanvas( - frame.stride, - frame.height, - frame.buffer, + frame.stride!, + frame.height!, + frame.buffer!, frame.format, canvas ); @@ -105,7 +107,7 @@ export class IMediaEngineImpl implements NATIVE_RTC.IMediaEngine { if (!videoTrack.isPlaying && videoTrackPackage.element) { this._engine.trackHelper.play(videoTrack, videoTrackPackage.element); } - this._engine.irisClientManager.irisClientObserver.notifyLocal( + await this._engine.irisClientManager.irisClientObserver.notifyLocal( NotifyType.PUBLISH_TRACK, [videoTrackPackage], this._engine.irisClientManager.irisClientList diff --git a/packages/rtc/src/impl/IAgoraRtcEngineExImpl.ts b/packages/rtc/src/impl/IAgoraRtcEngineExImpl.ts index df144531..8fb31ea5 100644 --- a/packages/rtc/src/impl/IAgoraRtcEngineExImpl.ts +++ b/packages/rtc/src/impl/IAgoraRtcEngineExImpl.ts @@ -1,16 +1,22 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { IAgoraRTCClient } from 'agora-rtc-sdk-ng'; +import { + ILocalAudioTrack, + IMicrophoneAudioTrack, + VideoPlayerConfig, +} from 'agora-rtc-sdk-ng'; import { CallApiReturnType, CallIrisApiResult } from 'iris-web-core'; +import { IrisAudioSourceType } from '../base/BaseType'; + +import { defaultLeaveChannelOptions } from '../base/DefaultValue'; import { IrisClient } from '../engine/IrisClient'; -import { RemoteUserPackage } from '../engine/IrisClientManager'; +import { AudioTrackPackage } from '../engine/IrisClientManager'; import { NotifyRemoteType, NotifyType } from '../engine/IrisClientObserver'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { SendDataStreamMessage } from '../helper/ClientHelper'; - -import { AgoraConsole } from '../util/AgoraConsole'; +import { AgoraConsole, AgoraTranslate, isDefined } from '../util'; //@ts-ignore export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { @@ -26,15 +32,15 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { options: NATIVE_RTC.ChannelMediaOptions ): CallApiReturnType { let processJoinChannel = async (): Promise => { - let irisClient = new IrisClient(this._engine, connection); + let irisClient = new IrisClient(this._engine); + irisClient.connection = connection; irisClient.createClient(options); irisClient.irisClientState.token = token; let agoraRTCClient = irisClient.agoraRTCClient; - try { - await agoraRTCClient.join( - this._engine.globalState.rtcEngineContext.appId, - connection.channelId, + await agoraRTCClient!.join( + this._engine.globalState.rtcEngineContext.appId!, + connection.channelId!, token ? token : null, connection.localUid ); @@ -52,6 +58,31 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { 0 ); + if ( + irisClient.irisClientState.clientRoleType === + NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_BROADCASTER && + this._engine.globalState.enabledAudio && + options.publishMicrophoneTrack + ) { + if ( + !this._engine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0] + ) { + let audioTrack = await this._engine.implHelper.createMicrophoneAudioTrack(); + this._engine.irisClientManager.addLocalAudioTrackPackage( + new AudioTrackPackage( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary, + audioTrack + ) + ); + await this._engine.trackHelper.setEnabled( + audioTrack as ILocalAudioTrack, + true + ); + } + } + await this._engine.irisClientManager.irisClientObserver.notifyLocal( NotifyType.PUBLISH_TRACK, [ @@ -67,8 +98,18 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { } leaveChannelEx_c81e1a4( connection: NATIVE_RTC.RtcConnection + ): CallApiReturnType { + return this.leaveChannelEx_b03ee9a(connection, defaultLeaveChannelOptions); + } + + leaveChannelEx_b03ee9a( + connection: NATIVE_RTC.RtcConnection, + options: NATIVE_RTC.LeaveChannelOptions ): CallApiReturnType { let processFunc = async (): Promise => { + if (!options) { + options = defaultLeaveChannelOptions; + } if (this._engine.irisClientManager.irisClientList.length === 0) { return this._engine.returnResult(); } @@ -87,6 +128,21 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let agoraRTCClient = irisClient?.agoraRTCClient; if (agoraRTCClient) { + //读取 options + for (let trackPackage of irisClient.audioTrackPackages) { + if (trackPackage.track) { + let track = trackPackage.track as IMicrophoneAudioTrack; + if (options.stopMicrophoneRecording) { + await this._engine.trackHelper.setMuted(track, true); + } + } + } + if (options.stopAllEffect) { + this._engine.getImplInstance('RtcEngine').stopAllEffects(); + } + if (options.stopAudioMixing) { + //todo audio Mixing + } try { await this._engine.clientHelper.leave(agoraRTCClient); } catch (e) { @@ -101,13 +157,13 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { connection, new NATIVE_RTC.RtcStats() ); - irisClient.release(); + await irisClient.release(); } - return this._engine.returnResult(); }; return this._engine.execute(processFunc); } + updateChannelMediaOptionsEx_457bb35( options: NATIVE_RTC.ChannelMediaOptions, connection: NATIVE_RTC.RtcConnection @@ -128,34 +184,36 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { connection: NATIVE_RTC.RtcConnection ): CallApiReturnType { let processVideoTrack = async (): Promise => { - let remoteUser = this._engine.irisClientManager.getRemoteUserPackageByUid( - canvas.uid - ); - if (remoteUser) { - remoteUser.update({ - element: canvas.view, - }); - this._engine.irisClientManager.irisClientObserver.notifyRemote( - NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, - [remoteUser] - ); - } else { - let userPackage = new RemoteUserPackage( - connection, - canvas.view, - canvas.uid, - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_REMOTE + if (isDefined(canvas.uid) && isDefined(canvas.view)) { + let remoteUserPackage = this._engine.irisClientManager.getRemoteUserPackageByUid( + canvas.uid ); + if (remoteUserPackage) { + remoteUserPackage.element = canvas.view; + } let irisClient = this._engine.irisClientManager.getIrisClientByConnection( connection ); - this._engine.irisClientManager.addRemoteUserPackage( - userPackage, - irisClient?.agoraRTCClient + if (irisClient) { + let remoteUser = irisClient.agoraRTCClient?.remoteUsers.find( + (user) => user.uid === canvas.uid + ); + // subscribe video maybe called before setupVideo, so we need to play video here too + if (remoteUser && remoteUser.videoTrack) { + this._engine.trackHelper.play( + remoteUser.videoTrack!, + remoteUserPackage.element, + remoteUserPackage.videoPlayerConfig + ); + } + } + return this._engine.returnResult(); + } else { + return this._engine.returnResult( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_INVALID_ARGUMENT ); } - - return this._engine.returnResult(); }; return this._engine.execute(processVideoTrack); @@ -172,7 +230,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let remoteUsers = remoteUserPackages.filter((userPackage) => { return userPackage.uid == uid; }); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK : NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK, @@ -193,7 +251,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { connection ); await this._engine.irisClientManager.irisClientObserver.notifyLocal( - mute ? NotifyType.MUTE_TRACK : NotifyType.UNMUTE_TRACK, + mute ? NotifyType.UNPUBLISH_TRACK : NotifyType.PUBLISH_TRACK, localAudioTrackPackages ); @@ -210,7 +268,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let remoteUserPackages = this._engine.irisClientManager.getRemoteUserPackagesByConnection( connection ); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK : NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK, @@ -235,7 +293,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let remoteUsers = remoteUserPackages.filter((userPackage) => { return userPackage.uid == uid; }); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK : NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, @@ -256,7 +314,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { connection ); await this._engine.irisClientManager.irisClientObserver.notifyLocal( - mute ? NotifyType.MUTE_TRACK : NotifyType.UNMUTE_TRACK, + mute ? NotifyType.UNPUBLISH_TRACK : NotifyType.PUBLISH_TRACK, localVideoTrackPackages ); @@ -273,7 +331,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let remoteUserPackages = this._engine.irisClientManager.getRemoteUserPackagesByConnection( connection ); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK : NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, @@ -309,7 +367,7 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { let irisClient = this._engine.irisClientManager.getIrisClientByConnection( connection ); - let agoraRTCClient: IAgoraRTCClient = irisClient?.agoraRTCClient; + let agoraRTCClient = irisClient?.agoraRTCClient; if (!agoraRTCClient?.channelName) { return this._engine.irisRtcErrorHandler.notInChannel(); } else { @@ -325,4 +383,48 @@ export class IRtcEngineExImpl implements NATIVE_RTC.IRtcEngineEx { return this._engine.execute(process); } + + setRemoteRenderModeEx_a72fe4e( + uid: number, + renderMode: NATIVE_RTC.RENDER_MODE_TYPE, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE, + connection: NATIVE_RTC.RtcConnection + ): CallApiReturnType { + let config: VideoPlayerConfig = { + fit: AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit( + renderMode ? renderMode : NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT + ), + mirror: + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_AUTO || + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + let remoteUserPackage = this._engine.irisClientManager.remoteUserPackages.find( + (user) => { + return user.uid === uid; + } + ); + if (remoteUserPackage) { + let irisClient = this._engine.irisClientManager.getIrisClientByConnection( + connection + ); + if (irisClient) { + let user = irisClient.agoraRTCClient?.remoteUsers.find( + (item) => item.uid === remoteUserPackage!.uid + ); + if (user && user.hasVideo) { + remoteUserPackage.videoPlayerConfig = config; + if (user.videoTrack) { + this._engine.trackHelper.play( + user.videoTrack, + remoteUserPackage.element, + remoteUserPackage.videoPlayerConfig + ); + } + } + } + } + return this._engine.returnResult(); + } } diff --git a/packages/rtc/src/impl/IAgoraRtcEngineImpl.ts b/packages/rtc/src/impl/IAgoraRtcEngineImpl.ts index 2a1118d2..60ce7ca9 100644 --- a/packages/rtc/src/impl/IAgoraRtcEngineImpl.ts +++ b/packages/rtc/src/impl/IAgoraRtcEngineImpl.ts @@ -2,10 +2,11 @@ import * as NATIVE_RTC from '@iris/native-rtc'; import { AudioSourceOptions, BufferSourceAudioTrackInitConfig, - IAgoraRTCClient, ICameraVideoTrack, + ILocalAudioTrack, ILocalVideoTrack, IMicrophoneAudioTrack, + VideoPlayerConfig, } from 'agora-rtc-sdk-ng'; import { AsyncTaskType, @@ -14,8 +15,10 @@ import { } from 'iris-web-core'; import { IrisAudioSourceType } from '../base/BaseType'; +import { defaultLeaveChannelOptions } from '../base/DefaultValue'; import { IrisClient } from '../engine/IrisClient'; import { + AudioTrackPackage, BufferSourceAudioTrackPackage, VideoTrackPackage, } from '../engine/IrisClientManager'; @@ -31,7 +34,7 @@ export const RTCENGINE_KEY = 'RtcEngine'; //@ts-ignore export class IRtcEngineImpl implements IRtcEngineExtensions { - private _engine: IrisRtcEngine = null; + private _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { this._engine = engine; @@ -69,9 +72,11 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { this._engine.globalState.rtcEngineContext = context; - this._engine.globalState.AgoraRTC.setArea([ - AgoraTranslate.NATIVE_RTCAREA_CODE2AREAS(context.areaCode), - ]); + if (context.areaCode) { + this._engine.globalState.AgoraRTC.setArea([ + AgoraTranslate.NATIVE_RTCAREA_CODE2AREAS(context.areaCode), + ]); + } if ( typeof context?.logConfig?.level === 'number' && @@ -81,14 +86,6 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { AgoraTranslate.NATIVE_RTCLOG_LEVEL2Number(context?.logConfig?.level) ); } - //音频模块默认是开启的,所以默认创建音频轨道 - try { - await this._engine.implHelper.createAudioTrack( - IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary - ); - } catch (e) { - AgoraConsole.warn(`createAudioTrack error: ${e}`); - } let result = this._engine.globalState.AgoraRTC.checkSystemRequirements(); return this._engine.returnResult(result); @@ -107,7 +104,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { token, channelId, uid, - irisClient.irisClientState + irisClient!.irisClientState ); } joinChannel_cdbb747( @@ -117,7 +114,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { options: NATIVE_RTC.ChannelMediaOptions ): CallApiReturnType { let processJoinChannel = async (): Promise => { - this._engine.implHelper.joinChannel(token, channelId, uid, options); + await this._engine.implHelper.joinChannel(token, channelId, uid, options); return this._engine.returnResult(); }; @@ -134,19 +131,12 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { return this._engine.execute(processFunc); } leaveChannel(): CallApiReturnType { - let options: NATIVE_RTC.LeaveChannelOptions = { - stopAudioMixing: true, - stopAllEffect: true, - stopMicrophoneRecording: true, - }; - return this.leaveChannel_2c0e3aa(options); + return this.leaveChannel_2c0e3aa(defaultLeaveChannelOptions); } leaveChannel_2c0e3aa( options: NATIVE_RTC.LeaveChannelOptions ): CallApiReturnType { let processFunc: AsyncTaskType = async (): Promise => { - //离开频道后重置参数 - // this._engine.globalState.reset(); if (this._engine.irisClientManager.irisClientList.length === 0) { return this._engine.returnResult(); } @@ -160,9 +150,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ); for (let irisClient of this._engine.irisClientManager.irisClientList) { - irisClient.irisClientState.mergeChannelMediaOptions(options); let agoraRTCClient = irisClient.agoraRTCClient; - options = irisClient.irisClientState; if (agoraRTCClient) { //读取 options @@ -172,15 +160,15 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { if (options.stopMicrophoneRecording) { await this._engine.trackHelper.setMuted(track, true); } - if (options.stopAllEffect) { - this.stopAllEffects(); - //todo effect - } - if (options.stopAudioMixing) { - //todo audio Mixing - } } } + if (options.stopAllEffect) { + this.stopAllEffects(); + //todo effect + } + if (options.stopAudioMixing) { + //todo audio Mixing + } //为了防止离开频道后丢失了channelName和uid,所以需要先保存一下 let con: NATIVE_RTC.RtcConnection = { @@ -264,7 +252,6 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { options.audienceLatencyLevel )); - //todo1 需要确认这个api是不是会改变所有connection的role,目前只改变了irisClientList[0]的 if (role === NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE) { this.muteLocalAudioStream_5039d15(true); this.muteLocalVideoStream_5039d15(true); @@ -272,8 +259,8 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { //如果已经加入频道 if (client?.channelName) { this._engine.rtcEngineEventHandler.onClientRoleChanged_2acaf10( - irisClient.connection, - oldRole, + irisClient.connection!, + oldRole!, role, options ); @@ -288,23 +275,9 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { enableVideo(): CallApiReturnType { let processVideoTrack = async (): Promise => { this._engine.globalState.enabledVideo = true; - this._engine.globalState.autoSubscribeVideo = true; - - //local - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.ENABLE_TRACK, - [...this._engine.irisClientManager.localVideoTrackPackages] - ); - for (let irisClient of this._engine.irisClientManager.irisClientList) { - irisClient.irisClientState.autoSubscribeVideo = true; - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.PUBLISH_TRACK, - [...this._engine.irisClientManager.localVideoTrackPackages], - [irisClient] - ); - } - - //remote + this.enableLocalVideo_5039d15(true); + this.muteLocalVideoStream_5039d15(false); + this.muteAllRemoteVideoStreams_5039d15(false); this.muteAllRemoteVideoStreams_5039d15(false); return this._engine.returnResult(); @@ -315,23 +288,9 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { disableVideo(): CallApiReturnType { let processVideoTrack = async (): Promise => { this._engine.globalState.enabledVideo = false; - this._engine.globalState.autoSubscribeVideo = false; - - //local - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNABLE_TRACK, - [...this._engine.irisClientManager.localVideoTrackPackages] - ); - for (let irisClient of this._engine.irisClientManager.irisClientList) { - irisClient.irisClientState.autoSubscribeVideo = false; - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNPUBLISH_TRACK, - [...this._engine.irisClientManager.localVideoTrackPackages], - [irisClient] - ); - } - - //remote + this.enableLocalVideo_5039d15(false); + this.muteLocalVideoStream_5039d15(true); + this.muteAllRemoteVideoStreams_5039d15(true); this.muteAllRemoteVideoStreams_5039d15(true); return this._engine.returnResult(); @@ -348,7 +307,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ): CallApiReturnType { let process = async (): Promise => { if (this._engine.globalState.enabledVideo == false) { - AgoraConsole.error('call enableVideo(true) before startPreview'); + AgoraConsole.warn('call enableVideo(true) before startPreview'); return this._engine.returnResult(); } @@ -368,26 +327,32 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { sourceType )[0]; if (!videoTrackPackage) { - videoTrackPackage = new VideoTrackPackage(null, sourceType, null); + videoTrackPackage = new VideoTrackPackage( + undefined, + undefined, + sourceType, + undefined + ); this._engine.irisClientManager.addLocalVideoTrackPackage( videoTrackPackage ); if (this._engine.implHelper.isVideoCamera(sourceType)) { - let cTrack = null; + let cTrack: ICameraVideoTrack; cTrack = await this._engine.implHelper.createVideoCameraTrack(); - videoTrackPackage.update({ track: cTrack }); + videoTrackPackage.track = cTrack; } } - videoTrackPackage.setPreview(true); + videoTrackPackage.isPreview = true; try { let track = videoTrackPackage?.track as ILocalVideoTrack; if (track) { - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.ENABLE_TRACK, - [videoTrackPackage] - ); + await this._engine.trackHelper.setEnabled(track, true); if (videoTrackPackage.element) { - this._engine.trackHelper.play(track, videoTrackPackage.element); + this._engine.trackHelper.play( + track, + videoTrackPackage.element, + videoTrackPackage.videoPlayerConfig + ); } } } catch (err) { @@ -428,31 +393,27 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { videoTrackPackage = this._engine.irisClientManager.getLocalVideoTrackPackageBySourceType( sourceType )[0]; - videoTrackPackage?.setPreview(false); - try { - let track = videoTrackPackage?.track as ILocalVideoTrack; + if (videoTrackPackage) { + videoTrackPackage.isPreview = false; + try { + let track = videoTrackPackage.track as ILocalVideoTrack; - if (track) { - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNABLE_TRACK, - [videoTrackPackage] - ); - if (videoTrackPackage.element) { - this._engine.trackHelper.play( - videoTrackPackage.track, - videoTrackPackage.element - ); + if (track) { + await this._engine.trackHelper.setEnabled(track, false); + if (videoTrackPackage.element && videoTrackPackage.track) { + this._engine.trackHelper.stop(videoTrackPackage.track); + } } + } catch (err) { + AgoraConsole.error(err); + return this._engine.returnResult(false); } - } catch (err) { - AgoraConsole.error(err); - return this._engine.returnResult(false); + this._engine.rtcEngineEventHandler.onLocalVideoStateChanged_a44228a( + sourceType, + NATIVE_RTC.LOCAL_VIDEO_STREAM_STATE.LOCAL_VIDEO_STREAM_STATE_STOPPED, + 0 + ); } - this._engine.rtcEngineEventHandler.onLocalVideoStateChanged_a44228a( - sourceType, - NATIVE_RTC.LOCAL_VIDEO_STREAM_STATE.LOCAL_VIDEO_STREAM_STATE_STOPPED, - 0 - ); return this._engine.returnResult(); }; return this._engine.execute(process); @@ -488,25 +449,39 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { sourceType )[0]; if (!trackPackage) { - trackPackage = new VideoTrackPackage(canvas.view, sourceType, null); + let config: VideoPlayerConfig = { + fit: AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit( + canvas.renderMode + ? canvas.renderMode + : NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT + ), + mirror: + canvas.mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_AUTO || + canvas.mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + trackPackage = new VideoTrackPackage(canvas.view, config, sourceType); this._engine.irisClientManager.addLocalVideoTrackPackage(trackPackage); if (this._engine.implHelper.isVideoCamera(sourceType)) { - let cTrack = null; + let cTrack: ICameraVideoTrack; cTrack = await this._engine.implHelper.createVideoCameraTrack(); - trackPackage.update({ track: cTrack }); + trackPackage.track = cTrack; } } - trackPackage.update({ type: sourceType, element: canvas.view }); + trackPackage.type = sourceType; + trackPackage.element = canvas.view; let track = trackPackage.track as ILocalVideoTrack; if (track) { - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.ENABLE_TRACK, - [trackPackage] - ); + await this._engine.trackHelper.setEnabled(track, true); if (trackPackage.element && trackPackage.isPreview) { - this._engine.trackHelper.play(track, trackPackage.element); + this._engine.trackHelper.play( + track, + trackPackage.element, + trackPackage.videoPlayerConfig + ); } } return this._engine.returnResult(); @@ -517,22 +492,8 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { enableAudio(): CallApiReturnType { let processAudioTracks = async (): Promise => { this._engine.globalState.enabledAudio = true; - - //local - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.ENABLE_TRACK, - this._engine.irisClientManager.localAudioTrackPackages - ); - for (let irisClient of this._engine.irisClientManager.irisClientList) { - irisClient.irisClientState.autoSubscribeAudio = true; - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.PUBLISH_TRACK, - [...this._engine.irisClientManager.localAudioTrackPackages], - [irisClient] - ); - } - - //remote + this.enableLocalAudio_5039d15(true); + this.muteLocalAudioStream_5039d15(false); this.muteAllRemoteAudioStreams_5039d15(false); return this._engine.returnResult(); @@ -543,22 +504,8 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { disableAudio(): CallApiReturnType { let processAudioTracks = async (): Promise => { this._engine.globalState.enabledAudio = false; - - //local - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNABLE_TRACK, - this._engine.irisClientManager.localAudioTrackPackages - ); - for (let irisClient of this._engine.irisClientManager.irisClientList) { - irisClient.irisClientState.autoSubscribeAudio = false; - await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNPUBLISH_TRACK, - [...this._engine.irisClientManager.localAudioTrackPackages], - [irisClient] - ); - } - - //remote + this.enableLocalAudio_5039d15(false); + this.muteLocalAudioStream_5039d15(true); this.muteAllRemoteAudioStreams_5039d15(true); return this._engine.returnResult(); @@ -595,13 +542,56 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { let processFunc = async (): Promise => { this._engine.globalState.enabledLocalAudio = enabled; - //找到本地audio + if (enabled) { + if ( + !this._engine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0] + ) { + let audioTrack = await this._engine.implHelper.createMicrophoneAudioTrack(); + this._engine.irisClientManager.addLocalAudioTrackPackage( + new AudioTrackPackage( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary, + audioTrack + ) + ); + } + try { + } catch (e) { + AgoraConsole.warn(`createAudioTrack error: ${e}`); + } + } else { + await this._engine.irisClientManager.irisClientObserver.notifyLocal( + NotifyType.REMOVE_TRACK, + this._engine.irisClientManager.localAudioTrackPackages + ); + } + + for (let trackPackage of this._engine.irisClientManager + .localAudioTrackPackages) { + await this._engine.trackHelper.setEnabled( + trackPackage.track as ILocalAudioTrack, + enabled + ); + } + await this._engine.irisClientManager.irisClientObserver.notifyLocal( + enabled ? NotifyType.UNMUTE_TRACK : NotifyType.MUTE_TRACK, + this._engine.irisClientManager.localAudioTrackPackages + ); await this._engine.irisClientManager.irisClientObserver.notifyLocal( - enabled ? NotifyType.ENABLE_TRACK : NotifyType.UNABLE_TRACK, + enabled ? NotifyType.PUBLISH_TRACK : NotifyType.UNPUBLISH_TRACK, this._engine.irisClientManager.localAudioTrackPackages ); - this.muteLocalAudioStream_5039d15(!enabled); + this._engine.rtcEngineEventHandler.onLocalAudioStateChanged_f33d789( + enabled + ? NATIVE_RTC.LOCAL_AUDIO_STREAM_STATE + .LOCAL_AUDIO_STREAM_STATE_RECORDING + : NATIVE_RTC.LOCAL_AUDIO_STREAM_STATE + .LOCAL_AUDIO_STREAM_STATE_STOPPED, + NATIVE_RTC.LOCAL_AUDIO_STREAM_REASON.LOCAL_AUDIO_STREAM_REASON_OK + ); + return this._engine.returnResult(); }; @@ -612,13 +602,22 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { let processFunc = async (): Promise => { this._engine.globalState.enabledLocalVideo = enabled; - //找到本地video + for (let trackPackage of this._engine.irisClientManager + .localVideoTrackPackages) { + await this._engine.trackHelper.setEnabled( + trackPackage.track as ICameraVideoTrack, + enabled + ); + } await this._engine.irisClientManager.irisClientObserver.notifyLocal( - enabled ? NotifyType.ENABLE_TRACK : NotifyType.UNABLE_TRACK, + enabled ? NotifyType.UNMUTE_TRACK : NotifyType.MUTE_TRACK, + this._engine.irisClientManager.localVideoTrackPackages + ); + await this._engine.irisClientManager.irisClientObserver.notifyLocal( + enabled ? NotifyType.PUBLISH_TRACK : NotifyType.UNPUBLISH_TRACK, this._engine.irisClientManager.localVideoTrackPackages ); - this.muteLocalVideoStream_5039d15(!enabled); return this._engine.returnResult(); }; @@ -627,7 +626,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { muteLocalAudioStream_5039d15(mute: boolean): CallApiReturnType { let processFunc = async (): Promise => { await this._engine.irisClientManager.irisClientObserver.notifyLocal( - mute ? NotifyType.MUTE_TRACK : NotifyType.UNMUTE_TRACK, + mute ? NotifyType.UNPUBLISH_TRACK : NotifyType.PUBLISH_TRACK, this._engine.irisClientManager.localAudioTrackPackages ); @@ -640,7 +639,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { muteLocalVideoStream_5039d15(mute: boolean): CallApiReturnType { let process = async () => { await this._engine.irisClientManager.irisClientObserver.notifyLocal( - mute ? NotifyType.MUTE_TRACK : NotifyType.UNMUTE_TRACK, + mute ? NotifyType.UNPUBLISH_TRACK : NotifyType.PUBLISH_TRACK, this._engine.irisClientManager.localVideoTrackPackages ); @@ -675,7 +674,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ): CallApiReturnType { let process = async () => { let irisClient = this._engine.irisClientManager.getIrisClient(); - let agoraRTCClient: IAgoraRTCClient = irisClient?.agoraRTCClient; + let agoraRTCClient = irisClient?.agoraRTCClient; if (!agoraRTCClient?.channelName) { return this._engine.irisRtcErrorHandler.notInChannel(); } else { @@ -693,7 +692,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { muteAllRemoteVideoStreams_5039d15(mute: boolean): CallApiReturnType { let processFunc = async (): Promise => { - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK : NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, @@ -710,7 +709,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { let remoteUserPackage = this._engine.irisClientManager.getRemoteUserPackageByUid( uid ); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_VIDEO_TRACK : NotifyRemoteType.SUBSCRIBE_VIDEO_TRACK, @@ -725,7 +724,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { muteAllRemoteAudioStreams_5039d15(mute: boolean): CallApiReturnType { let processFunc = async (): Promise => { - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK : NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK, @@ -742,7 +741,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { let remoteUserPackage = this._engine.irisClientManager.getRemoteUserPackageByUid( uid ); - this._engine.irisClientManager.irisClientObserver.notifyRemote( + await this._engine.irisClientManager.irisClientObserver.notifyRemote( mute ? NotifyRemoteType.UNSUBSCRIBE_AUDIO_TRACK : NotifyRemoteType.SUBSCRIBE_AUDIO_TRACK, @@ -767,7 +766,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ...(reportVad && { reportVad }), }; //只有在初次的时候才注册onAudioVolumeIndication事件 - let agoraRTCClient: IAgoraRTCClient = this._engine.irisClientManager.getIrisClient() + let agoraRTCClient = this._engine.irisClientManager.getIrisClient() ?.agoraRTCClient; if (!this._engine.globalState.enableAudioVolumeIndication) { @@ -794,25 +793,29 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ); } const remoteStats = agoraRTCClient.getRemoteAudioStats(); - let remoteSpeakers = []; + let remoteSpeakers: { + uid: number; + volume: number; + vad: number; + voicePitch: number; + }[] = []; for (let uid in remoteStats) { remoteSpeakers.push({ - uid: uid, + uid: parseInt(uid), volume: remoteStats[uid].receiveLevel, vad: 1, - // voicePitch: number, web没有 + voicePitch: 1.0, }); } - let biggestVolumeRemoteSpeaker = - remoteSpeakers.length > 0 ?? - remoteSpeakers.reduce((prev, curr) => { - return curr.receiveLevel > prev.receiveLevel ? curr : prev; - }); + let totalVolume: number = 0; + remoteSpeakers.forEach((speaker) => { + totalVolume += speaker.volume; + }); this._engine.rtcEngineEventHandler.onAudioVolumeIndication_781482a( connection, remoteSpeakers, remoteSpeakers.length, - biggestVolumeRemoteSpeaker + totalVolume ); } }, interval); @@ -848,9 +851,9 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { let irisClient = this._engine.irisClientManager.getIrisClient(); - let bufferSourceAudioTrackPackage: BufferSourceAudioTrackPackage = null; + let bufferSourceAudioTrackPackage: BufferSourceAudioTrackPackage; let bufferSourceAudioTrackInitConfig: BufferSourceAudioTrackInitConfig = { - source: null, + source: '', }; //如果是带有http或者https的则不拼接,否则拼接origin if (filePath.startsWith('https://') || filePath.startsWith('http://')) { @@ -862,7 +865,6 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { try { bufferSourceAudioTrackPackage = await this._engine.implHelper.createBufferSourceAudioTrack( soundId, - publish, bufferSourceAudioTrackInitConfig ); AgoraConsole.log('createBufferSourceAudioTrack success'); @@ -891,7 +893,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { config.startPlayTime = Math.floor(startPos / 1000); } bufferSourceAudioTrackPackage.track.startProcessAudioBuffer(config); - bufferSourceAudioTrackPackage.track.play(); + this._engine.trackHelper.play(bufferSourceAudioTrackPackage.track); } catch (reason) { AgoraConsole.error(reason); } @@ -922,7 +924,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { return this._engine.returnResult(); } await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNPUBLISH_TRACK, + NotifyType.REMOVE_TRACK, [bufferSourceAudioTrackPackage] ); @@ -1019,7 +1021,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { } await this._engine.irisClientManager.irisClientObserver.notifyLocal( - NotifyType.UNPUBLISH_TRACK, + NotifyType.REMOVE_TRACK, [...videoPackages, ...audioPackages] ); @@ -1112,10 +1114,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { return this._engine.execute(processJoinChannel); } - getUserInfoByUserAccount_c6a8f08( - userAccount: string, - userInfo: NATIVE_RTC.UserInfo - ): CallApiReturnType { + getUserInfoByUserAccount_c6a8f08(userAccount: string): CallApiReturnType { let user = this._engine.irisClientManager.getUserInfoByUserAccount( userAccount ); @@ -1129,10 +1128,7 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { ); } - getUserInfoByUid_6b7aee8( - uid: number, - userInfo: NATIVE_RTC.UserInfo - ): CallApiReturnType { + getUserInfoByUid_6b7aee8(uid: number): CallApiReturnType { let user = this._engine.irisClientManager.getUserInfoByUid(uid); return this._engine.returnResult( true, @@ -1143,99 +1139,122 @@ export class IRtcEngineImpl implements IRtcEngineExtensions { }) ); } -} -//@ts-ignore -export class IVideoDeviceManagerImpl implements NATIVE_RTC.IVideoDeviceManager { - private _engine: IrisRtcEngine; - - public constructor(engine: IrisRtcEngine) { - this._engine = engine; + setLocalRenderMode_cfb201b( + renderMode: NATIVE_RTC.RENDER_MODE_TYPE, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE + ): CallApiReturnType { + let config: VideoPlayerConfig = { + fit: AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit( + renderMode ? renderMode : NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT + ), + mirror: + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_AUTO || + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + this._engine.irisClientManager.localVideoTrackPackages.map( + (videoTrackPackage) => { + let track = videoTrackPackage.track as ILocalVideoTrack; + videoTrackPackage.videoPlayerConfig = config; + if (track) { + this._engine.trackHelper.play( + track, + videoTrackPackage.element, + videoTrackPackage.videoPlayerConfig + ); + } + } + ); + return this._engine.returnResult(); } - enumerateVideoDevices(): CallApiReturnType { - let deviceList = []; - let process = async () => { - try { - deviceList = (await this._engine.implHelper.enumerateDevices()) - ?.videoDevices; - } catch (e) { - AgoraConsole.log(e); - return this._engine.returnResult(false); + setRemoteRenderMode_6771ce0( + uid: number, + renderMode: NATIVE_RTC.RENDER_MODE_TYPE, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE + ): CallApiReturnType { + let config: VideoPlayerConfig = { + fit: AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit( + renderMode ? renderMode : NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT + ), + mirror: + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_AUTO || + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + let remoteUserPackage = this._engine.irisClientManager.remoteUserPackages.find( + (user) => { + return user.uid === uid; } - return this._engine.returnResult( - true, - 0, - JSON.stringify({ result: deviceList }) + ); + if (remoteUserPackage) { + let irisClient = this._engine.irisClientManager.getIrisClientByConnection( + remoteUserPackage.connection ); - }; - return this._engine.execute(process); - } - setDevice_4ad5f6e(deviceIdUTF8: string): CallApiReturnType { - let process = async () => { - this._engine.globalState.videoDeviceId = deviceIdUTF8; - - for (let videoTrackPackage of this._engine.irisClientManager - .localVideoTrackPackages) { - if (videoTrackPackage.track) { - if ( - videoTrackPackage.type == - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY || - videoTrackPackage.type == - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_SECONDARY || - videoTrackPackage.type == - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_THIRD || - videoTrackPackage.type == - NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_FOURTH - ) { - await this._engine.trackHelper.setDevice( - videoTrackPackage.track as ICameraVideoTrack, - deviceIdUTF8 + if (irisClient) { + let user = irisClient.agoraRTCClient?.remoteUsers.find( + (item) => item.uid === remoteUserPackage!.uid + ); + if (user && user.hasVideo) { + remoteUserPackage.videoPlayerConfig = config; + if (user.videoTrack) { + this._engine.trackHelper.play( + user.videoTrack, + remoteUserPackage.element, + remoteUserPackage.videoPlayerConfig ); } } } - - return this._engine.returnResult(); - }; - return this._engine.execute(process); + } + return this._engine.returnResult(); } - getDevice_73b9872(): CallApiReturnType { - let process = async () => { - let list: MediaDeviceInfo[] = []; - let deviceId = ''; - if (this._engine.globalState.videoDeviceId) { - deviceId = this._engine.globalState.videoDeviceId; - } else { - try { - list = await this._engine.globalState.AgoraRTC.getCameras(); - } catch (e) { - return this._engine.returnResult(false); - } - if (list && list.length > 0) { - deviceId = list[0].deviceId; + + setLocalRenderMode_bedb5ae( + renderMode: NATIVE_RTC.RENDER_MODE_TYPE + ): CallApiReturnType { + let fit = AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit( + renderMode ? renderMode : NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT + ); + this._engine.irisClientManager.localVideoTrackPackages.map( + (videoTrackPackage) => { + let track = videoTrackPackage.track as ILocalVideoTrack; + videoTrackPackage.videoPlayerConfig.fit = fit; + if (track) { + this._engine.trackHelper.play( + track, + videoTrackPackage.element, + videoTrackPackage.videoPlayerConfig + ); } } - return this._engine.returnResult( - true, - 0, - JSON.stringify({ - result: NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK, - deviceIdUTF8: deviceId, - }) - ); - }; - return this._engine.execute(process); + ); + return this._engine.returnResult(); } - release(): CallApiReturnType { - let process = async () => { - let engine = this._engine; - engine.globalState.playbackDevices = new Array(); - engine.globalState.recordingDevices = new Array(); - engine.globalState.videoDevices = new Array(); - return this._engine.returnResult(); - }; - return this._engine.execute(process); + setLocalVideoMirrorMode_b8a6c69( + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE + ): CallApiReturnType { + let mirror = + mirrorMode === NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_AUTO || + mirrorMode === + NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED; + this._engine.irisClientManager.localVideoTrackPackages.map( + (videoTrackPackage) => { + let track = videoTrackPackage.track as ILocalVideoTrack; + videoTrackPackage.videoPlayerConfig.mirror = mirror; + if (track) { + this._engine.trackHelper.play( + track, + videoTrackPackage.element, + videoTrackPackage.videoPlayerConfig + ); + } + } + ); + return this._engine.returnResult(); } } diff --git a/packages/rtc/src/impl/IAudioDeviceManagerImpl.ts b/packages/rtc/src/impl/IAudioDeviceManagerImpl.ts new file mode 100644 index 00000000..b5617fb3 --- /dev/null +++ b/packages/rtc/src/impl/IAudioDeviceManagerImpl.ts @@ -0,0 +1,179 @@ +import * as NATIVE_RTC from '@iris/native-rtc'; +import { + ILocalAudioTrack, + IMicrophoneAudioTrack, + IRemoteAudioTrack, +} from 'agora-rtc-sdk-ng'; +import { CallApiReturnType } from 'iris-web-core'; + +import { IrisAudioSourceType } from '../base/BaseType'; + +import { IrisRtcEngine } from '../engine/IrisRtcEngine'; +import { AgoraConsole } from '../util'; + +//@ts-ignore +export class IAudioDeviceManagerImpl implements NATIVE_RTC.IAudioDeviceManager { + private _engine: IrisRtcEngine; + + public constructor(engine: IrisRtcEngine) { + this._engine = engine; + } + + enumeratePlaybackDevices(): CallApiReturnType { + let deviceList: MediaDeviceInfo[] = []; + let process = async () => { + try { + deviceList = (await this._engine.implHelper.enumerateDevices()) + ?.playbackDevices; + } catch (e) { + AgoraConsole.log(e); + return this._engine.returnResult(false); + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ result: deviceList }) + ); + }; + return this._engine.execute(process); + } + + enumerateRecordingDevices(): CallApiReturnType { + let deviceList: MediaDeviceInfo[] = []; + let process = async () => { + try { + deviceList = (await this._engine.implHelper.enumerateDevices()) + ?.recordingDevices; + } catch (e) { + AgoraConsole.log(e); + return this._engine.returnResult(false); + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ result: deviceList }) + ); + }; + return this._engine.execute(process); + } + + setPlaybackDevice_4ad5f6e(deviceId: string): CallApiReturnType { + let process = async () => { + this._engine.globalState.playbackDeviceId = deviceId; + + for (let audioTrackPackage of this._engine.irisClientManager + .localAudioTrackPackages) { + if (audioTrackPackage.track) { + if ( + audioTrackPackage.type == + IrisAudioSourceType.kAudioSourceTypeRemote || + audioTrackPackage.type == + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary || + audioTrackPackage.type == + IrisAudioSourceType.kAudioSourceTypeMicrophoneSecondary + ) { + await this._engine.trackHelper.setPlaybackDevice( + audioTrackPackage.track as ILocalAudioTrack | IRemoteAudioTrack, + deviceId + ); + } + } + } + + return this._engine.returnResult(); + }; + return this._engine.execute(process); + } + + getPlaybackDevice_73b9872(): CallApiReturnType { + let process = async () => { + let list: MediaDeviceInfo[] = []; + let deviceId = ''; + if (this._engine.globalState.playbackDeviceId) { + deviceId = this._engine.globalState.playbackDeviceId; + } else { + try { + list = await this._engine.globalState.AgoraRTC.getPlaybackDevices(); + } catch (e) { + return this._engine.returnResult(false); + } + if (list && list.length > 0) { + deviceId = list[0].deviceId; + } + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ + result: NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK, + deviceId, + }) + ); + }; + return this._engine.execute(process); + } + + setRecordingDevice_4ad5f6e(deviceId: string): CallApiReturnType { + let process = async () => { + this._engine.globalState.recordingDeviceId = deviceId; + + for (let audioTrackPackage of this._engine.irisClientManager + .localAudioTrackPackages) { + if (audioTrackPackage.track) { + if ( + audioTrackPackage.type == + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary || + audioTrackPackage.type == + IrisAudioSourceType.kAudioSourceTypeMicrophoneSecondary + ) { + await this._engine.trackHelper.setDevice( + audioTrackPackage.track as IMicrophoneAudioTrack, + deviceId + ); + } + } + } + + return this._engine.returnResult(); + }; + return this._engine.execute(process); + } + + getRecordingDevice_73b9872(): CallApiReturnType { + let process = async () => { + let list: MediaDeviceInfo[] = []; + let deviceId = ''; + if (this._engine.globalState.recordingDeviceId) { + deviceId = this._engine.globalState.recordingDeviceId; + } else { + try { + list = await this._engine.globalState.AgoraRTC.getMicrophones(); + } catch (e) { + return this._engine.returnResult(false); + } + if (list && list.length > 0) { + deviceId = list[0].deviceId; + } + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ + result: NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK, + deviceId, + }) + ); + }; + return this._engine.execute(process); + } + + release(): CallApiReturnType { + let process = async () => { + let engine = this._engine; + engine.globalState.playbackDevices = new Array(); + engine.globalState.recordingDevices = new Array(); + return this._engine.returnResult(); + }; + return this._engine.execute(process); + } +} diff --git a/packages/rtc/src/impl/IVideoDeviceManagerImpl.ts b/packages/rtc/src/impl/IVideoDeviceManagerImpl.ts new file mode 100644 index 00000000..a90a045a --- /dev/null +++ b/packages/rtc/src/impl/IVideoDeviceManagerImpl.ts @@ -0,0 +1,99 @@ +import * as NATIVE_RTC from '@iris/native-rtc'; +import { ICameraVideoTrack } from 'agora-rtc-sdk-ng'; +import { CallApiReturnType } from 'iris-web-core'; + +import { IrisRtcEngine } from '../engine/IrisRtcEngine'; +import { AgoraConsole } from '../util'; + +//@ts-ignore +export class IVideoDeviceManagerImpl implements NATIVE_RTC.IVideoDeviceManager { + private _engine: IrisRtcEngine; + + public constructor(engine: IrisRtcEngine) { + this._engine = engine; + } + + enumerateVideoDevices(): CallApiReturnType { + let deviceList: MediaDeviceInfo[] = []; + let process = async () => { + try { + deviceList = (await this._engine.implHelper.enumerateDevices()) + ?.videoDevices; + } catch (e) { + AgoraConsole.log(e); + return this._engine.returnResult(false); + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ result: deviceList }) + ); + }; + return this._engine.execute(process); + } + setDevice_4ad5f6e(deviceIdUTF8: string): CallApiReturnType { + let process = async () => { + this._engine.globalState.videoDeviceId = deviceIdUTF8; + + for (let videoTrackPackage of this._engine.irisClientManager + .localVideoTrackPackages) { + if (videoTrackPackage.track) { + if ( + videoTrackPackage.type == + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY || + videoTrackPackage.type == + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_SECONDARY || + videoTrackPackage.type == + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_THIRD || + videoTrackPackage.type == + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_FOURTH + ) { + await this._engine.trackHelper.setDevice( + videoTrackPackage.track as ICameraVideoTrack, + deviceIdUTF8 + ); + } + } + } + + return this._engine.returnResult(); + }; + return this._engine.execute(process); + } + getDevice_73b9872(): CallApiReturnType { + let process = async () => { + let list: MediaDeviceInfo[] = []; + let deviceId = ''; + if (this._engine.globalState.videoDeviceId) { + deviceId = this._engine.globalState.videoDeviceId; + } else { + try { + list = await this._engine.globalState.AgoraRTC.getCameras(); + } catch (e) { + return this._engine.returnResult(false); + } + if (list && list.length > 0) { + deviceId = list[0].deviceId; + } + } + return this._engine.returnResult( + true, + 0, + JSON.stringify({ + result: NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK, + deviceIdUTF8: deviceId, + }) + ); + }; + return this._engine.execute(process); + } + + release(): CallApiReturnType { + let process = async () => { + let engine = this._engine; + engine.globalState.videoDevices = new Array(); + return this._engine.returnResult(); + }; + return this._engine.execute(process); + } +} diff --git a/packages/rtc/src/state/IrisClientState.ts b/packages/rtc/src/state/IrisClientState.ts index fd5f9e46..57620d48 100644 --- a/packages/rtc/src/state/IrisClientState.ts +++ b/packages/rtc/src/state/IrisClientState.ts @@ -1,18 +1,10 @@ import * as NATIVE_RTC from '@iris/native-rtc'; -import { UID } from 'agora-rtc-sdk-ng'; import { IrisGlobalState } from './IrisGlobalState'; //Record the intermediate status of the client export class IrisClientState { - //public role: NATIVE_RTC.CLIENT_ROLE_TYPE = NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE; - - _globalState: IrisGlobalState = null; - - //LeaveChannelOptions - stopAudioMixing?: boolean = true; - stopAllEffect?: boolean = true; - stopMicrophoneRecording?: boolean = true; + _globalState: IrisGlobalState; //ChannelMediaOptions publishCameraTrack?: boolean = true; @@ -27,35 +19,35 @@ export class IrisClientState { publishScreenCaptureVideo?: boolean; - publishScreenCaptureAudio?: boolean; + publishScreenCaptureAudio: boolean = false; - publishScreenTrack?: boolean; + publishScreenTrack: boolean = false; - publishSecondaryScreenTrack?: boolean; + publishSecondaryScreenTrack: boolean = false; - publishThirdScreenTrack?: boolean; + publishThirdScreenTrack: boolean = false; - publishFourthScreenTrack?: boolean; + publishFourthScreenTrack: boolean = false; - publishCustomAudioTrack?: boolean; + publishCustomAudioTrack: boolean = false; publishCustomAudioTrackId?: number; - publishCustomVideoTrack?: boolean; + publishCustomVideoTrack: boolean = false; - publishEncodedVideoTrack?: boolean; + publishEncodedVideoTrack: boolean = false; - publishMediaPlayerAudioTrack?: boolean; + publishMediaPlayerAudioTrack: boolean = false; - publishMediaPlayerVideoTrack?: boolean; + publishMediaPlayerVideoTrack: boolean = false; - publishTranscodedVideoTrack?: boolean; + publishTranscodedVideoTrack: boolean = false; - autoSubscribeAudio?: boolean = true; + autoSubscribeAudio: boolean = true; - autoSubscribeVideo?: boolean; + autoSubscribeVideo: boolean = true; - enableAudioRecordingOrPlayout?: boolean; + enableAudioRecordingOrPlayout: boolean = false; publishMediaPlayerId?: number; @@ -96,17 +88,17 @@ export class IrisClientState { }; //setClientOptions() - public clientRoleOptions?: NATIVE_RTC.ClientRoleOptions = null; + public clientRoleOptions: NATIVE_RTC.ClientRoleOptions; //mute 远端的用户流 - mutedRemoteAudioStreams: Map = new Map(); - mutedRemoteVideoStreams: Map = new Map(); + mutedRemoteAudioStreams: Map = new Map(); + mutedRemoteVideoStreams: Map = new Map(); videoSourceType: NATIVE_RTC.VIDEO_SOURCE_TYPE = NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA; //SetVideoEncoderConfiguration - videoEncoderConfiguration: NATIVE_RTC.VideoEncoderConfiguration = null; + videoEncoderConfiguration: NATIVE_RTC.VideoEncoderConfiguration; //是否开启大小流 enabledDualStreamMode: boolean = false; @@ -119,13 +111,14 @@ export class IrisClientState { >(); //远端的大小流 - remoteVideoStreamTypes: Map = new Map< - UID, + remoteVideoStreamTypes: Map = new Map< + number, NATIVE_RTC.VIDEO_STREAM_TYPE >(); //远端默认流 - remoteDefaultVideoStreamType: NATIVE_RTC.VIDEO_STREAM_TYPE = null; + remoteDefaultVideoStreamType: NATIVE_RTC.VIDEO_STREAM_TYPE = + NATIVE_RTC.VIDEO_STREAM_TYPE.VIDEO_STREAM_HIGH; encryptionConfig: { enabled: boolean; @@ -140,35 +133,30 @@ export class IrisClientState { interval: number; smooth: number; reportVad: boolean; - } = null; + }; //setPlaybackDevice: audiDevice - playbackDeviceId: string = null; + playbackDeviceId: string = ''; //setRecordingDevice: recordingDevice - recordingDeviceId: string = null; + recordingDeviceId: string = ''; //SetContentInspect - contentInspect: NATIVE_RTC.ContentInspectConfig = null; + contentInspect?: NATIVE_RTC.ContentInspectConfig; // startPreviewed 似乎没有用处 // startPreviewed: boolean = false; //用来记录暂停或者恢复的 - currChannelMediaRelayconfiguration: NATIVE_RTC.ChannelMediaRelayConfiguration = null; + currChannelMediaRelayConfiguration: NATIVE_RTC.ChannelMediaRelayConfiguration = new NATIVE_RTC.ChannelMediaRelayConfiguration(); constructor(globalState: IrisGlobalState) { this._globalState = globalState; if (globalState.rtcEngineContext?.channelProfile) { this.channelProfile = globalState.rtcEngineContext.channelProfile; } - if (globalState.autoSubscribeVideo) { - this.autoSubscribeVideo = globalState.autoSubscribeVideo; - } } - mergeChannelMediaOptions( - options: NATIVE_RTC.ChannelMediaOptions | NATIVE_RTC.LeaveChannelOptions - ) { + mergeChannelMediaOptions(options: NATIVE_RTC.ChannelMediaOptions) { for (let key in options) { this[key] = options[key]; } diff --git a/packages/rtc/src/state/IrisGlobalState.ts b/packages/rtc/src/state/IrisGlobalState.ts index 3c12da58..3870a207 100644 --- a/packages/rtc/src/state/IrisGlobalState.ts +++ b/packages/rtc/src/state/IrisGlobalState.ts @@ -53,24 +53,30 @@ export class IrisGlobalState { audioProcessingChannels?: number; //setVideoEncoderConfiguration - videoEncoderConfiguration: NATIVE_RTC.VideoEncoderConfiguration = null; + videoEncoderConfiguration: NATIVE_RTC.VideoEncoderConfiguration; - fallbackOption: NATIVE_RTC.STREAM_FALLBACK_OPTIONS = null; + fallbackOption: NATIVE_RTC.STREAM_FALLBACK_OPTIONS; - screenCaptureContentHint: NATIVE_RTC.VIDEO_CONTENT_HINT = null; + screenCaptureContentHint: NATIVE_RTC.VIDEO_CONTENT_HINT; // screenCaptureParameters: NATIVE_RTC.ScreenCaptureParameters = null; - screenCaptureParameters2: NATIVE_RTC.ScreenCaptureParameters2 = null; + screenCaptureParameters2: NATIVE_RTC.ScreenCaptureParameters2; - cloudProxy: NATIVE_RTC.CLOUD_PROXY_TYPE = null; + cloudProxy: NATIVE_RTC.CLOUD_PROXY_TYPE; //devicesInfo playbackDevices: DeviceInfo[] = new Array(); recordingDevices: DeviceInfo[] = new Array(); videoDevices: DeviceInfo[] = new Array(); - //setDevice() : videoDevice - videoDeviceId: string = null; + //setDevice() + videoDeviceId: string; + + //setPlaybackDevice_4ad5f6e() + playbackDeviceId: string; + + //setRecordingDevice_4ad5f6e() + recordingDeviceId: string; //enableAudioVolumeIndication enableAudioVolumeIndication: boolean = false; @@ -83,8 +89,6 @@ export class IrisGlobalState { channelProfile: NATIVE_RTC.CHANNEL_PROFILE_TYPE = NATIVE_RTC.CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING; - public autoSubscribeVideo: boolean = false; - reset() { this.enabledAudio = true; this.pausedAudio = false; diff --git a/packages/rtc/src/util/AgoraTool.ts b/packages/rtc/src/util/AgoraTool.ts index 9e437740..f39a0ee9 100644 --- a/packages/rtc/src/util/AgoraTool.ts +++ b/packages/rtc/src/util/AgoraTool.ts @@ -1,33 +1,48 @@ -export class AgoraTool { - //merge src to dest - public static mergeArray(dest: Array, src: Array) { - for (let i = 0; i < src.length; i++) { - dest.push(src[i]); - } +import { IAgoraRTCRemoteUser } from 'agora-rtc-sdk-ng'; + +export function mergeArray(dest: Array, src: Array) { + for (let i = 0; i < src.length; i++) { + dest.push(src[i]); } +} - //get file name from a file path - public static spliceFileName(filePath: string): string { - let lastIndex = 0; - lastIndex = filePath.lastIndexOf('/'); - if (lastIndex == -1) { - lastIndex = filePath.lastIndexOf('\\'); - } - let fileName: string = null; - if (lastIndex == -1) { - fileName = filePath; - } else { - fileName = filePath.substring(lastIndex + 1); - } - return fileName; +//get file name from a file path +export function spliceFileName(filePath: string): string { + let lastIndex = 0; + lastIndex = filePath.lastIndexOf('/'); + if (lastIndex == -1) { + lastIndex = filePath.lastIndexOf('\\'); } + let fileName: string; + if (lastIndex == -1) { + fileName = filePath; + } else { + fileName = filePath.substring(lastIndex + 1); + } + return fileName; +} + +// +export function downloadCanvasAsImage(canvas: any, fileName: string) { + let dataUrl = canvas.toDataURL('image/jpeg', 1.0); + let a = document.createElement('a'); + a.href = dataUrl; + a.download = fileName; + a.click(); +} + +export function isDefined(value: T | undefined | null): value is T { + return value !== undefined && value !== null; +} - // - public static downloadCanvasAsImage(canvas: any, fileName: string) { - let dataUrl = canvas.toDataURL('image/jpeg', 1.0); - let a = document.createElement('a'); - a.href = dataUrl; - a.download = fileName; - a.click(); +export function getUidFromRemoteUser(user: IAgoraRTCRemoteUser): number { + let remoteUid: number; + //if joinchannel with string uid + if (typeof user.uid === 'string') { + //@ts-ignore websdk private property + remoteUid = user._uintid; + } else { + remoteUid = user.uid; } + return remoteUid; } diff --git a/packages/rtc/src/util/AgoraTranslate.ts b/packages/rtc/src/util/AgoraTranslate.ts index 2b2ac17a..11d252da 100644 --- a/packages/rtc/src/util/AgoraTranslate.ts +++ b/packages/rtc/src/util/AgoraTranslate.ts @@ -3,30 +3,22 @@ import { AREAS, AudienceLatencyLevelType, ChannelMediaRelayError, - ChannelMediaRelayInfo, ClientRole, ClientRoleOptions, ConnectionDisconnectedReason, ConnectionState, DeviceState, EncryptionMode, - IChannelMediaRelayConfiguration, - InjectStreamConfig, InspectConfiguration, - LiveStreamingTranscodingConfig, - LiveStreamingTranscodingImage, LiveStreamingTranscodingUser, LowStreamParameter, RemoteStreamFallbackType, RemoteStreamType, SDK_CODEC, SDK_MODE, - UID, VideoEncoderConfiguration, } from 'agora-rtc-sdk-ng'; -import { IrisRtcEngine } from '../engine/IrisRtcEngine'; - import { AgoraConsole } from './AgoraConsole'; export class AgoraTranslate { @@ -126,11 +118,15 @@ export class AgoraTranslate { return { level: AudienceLatencyLevelType.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY, }; + default: + return { + level: AudienceLatencyLevelType.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY, + }; } } public static NATIVE_RTC_AUDIENCE_LATENCY_LEVEL_TYPE2ClientRoleOptions( - level: NATIVE_RTC.AUDIENCE_LATENCY_LEVEL_TYPE + level: NATIVE_RTC.AUDIENCE_LATENCY_LEVEL_TYPE | undefined ): ClientRoleOptions { switch (level) { case NATIVE_RTC.AUDIENCE_LATENCY_LEVEL_TYPE @@ -141,6 +137,10 @@ export class AgoraTranslate { return { level: AudienceLatencyLevelType.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY, }; + default: + return { + level: AudienceLatencyLevelType.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY, + }; } } @@ -148,8 +148,8 @@ export class AgoraTranslate { conf: NATIVE_RTC.VideoEncoderConfiguration ): VideoEncoderConfiguration { return { - width: conf.dimensions.width, - height: conf.dimensions.height, + width: conf.dimensions?.width, + height: conf.dimensions?.height, frameRate: conf.frameRate, bitrateMax: conf.bitrate, bitrateMin: conf.minBitrate, @@ -180,9 +180,11 @@ export class AgoraTranslate { public static NATIVE_RTCSimulcastStreamConfig2LowStreamParameter( config: NATIVE_RTC.SimulcastStreamConfig ): LowStreamParameter { + let width = config.dimensions ? config.dimensions.width! : 0; + let height = config.dimensions ? config.dimensions.height! : 0; let ret: LowStreamParameter = { - width: config.dimensions.width, - height: config.dimensions.height, + width: width, + height: height, framerate: { ideal: config.framerate, }, @@ -228,79 +230,42 @@ export class AgoraTranslate { return 'aes-128-gcm2'; case NATIVE_RTC.ENCRYPTION_MODE.AES_256_GCM2: return 'aes-256-gcm2'; + default: + return 'none'; } } - public static NATIVE_RTCInjectStreamConfig2InjectStreamConfig( - config: NATIVE_RTC.InjectStreamConfig - ): InjectStreamConfig { - let ret: InjectStreamConfig = { - audioBitrate: config.audioBitrate, - audioChannels: config.audioChannels, - audioSampleRate: config.audioSampleRate, - height: config.width, - width: config.height, - videoBitrate: config.videoBitrate, - videoFramerate: config.videoFramerate, - videoGop: config.videoGop, - }; - return ret; - } - - public static NATIVE_RTCChannelMediaRelayConfiguration2IChannelMediaRelayConfiguration( - config: NATIVE_RTC.ChannelMediaRelayConfiguration, - engine: IrisRtcEngine - ): IChannelMediaRelayConfiguration { - let ret: IChannelMediaRelayConfiguration = engine.globalState.AgoraRTC.createChannelMediaRelayConfiguration(); - ret.addDestChannelInfo( - AgoraTranslate.NATIVE_RTCChannelMediaInfo2ChannelMediaRelayInfo( - config.srcInfo - ) - ); - for (let i = 0; i < config.destInfos.length; i++) { - ret.addDestChannelInfo( - AgoraTranslate.NATIVE_RTCChannelMediaInfo2ChannelMediaRelayInfo( - config.destInfos[i] - ) - ); - } - return ret; - } - - public static NATIVE_RTCChannelMediaInfo2ChannelMediaRelayInfo( - info: NATIVE_RTC.ChannelMediaInfo - ): ChannelMediaRelayInfo { - let ret: ChannelMediaRelayInfo = { - channelName: info.channelName, - token: info.token, - uid: info.uid, - }; - return ret; - } - public static NATIVE_RTCContentInspectConfig2InspectConfiguration( config: NATIVE_RTC.ContentInspectConfig ): InspectConfiguration { + let defaultInterval = 1; let ret: InspectConfiguration = { - interval: 1, + interval: defaultInterval, extraInfo: config.extraInfo, inspectType: [], }; - let module: NATIVE_RTC.ContentInspectModule = config.modules[0]; - ret.interval = module.interval; + let module: NATIVE_RTC.ContentInspectModule = config.modules + ? config.modules[0] + : { + type: NATIVE_RTC.CONTENT_INSPECT_TYPE.CONTENT_INSPECT_MODERATION, + interval: defaultInterval, + }; + ret.interval = module.interval ?? defaultInterval; switch (module.type) { case NATIVE_RTC.CONTENT_INSPECT_TYPE.CONTENT_INSPECT_INVALID: break; case NATIVE_RTC.CONTENT_INSPECT_TYPE.CONTENT_INSPECT_MODERATION: - ret.inspectType.push('moderation'); + ret.inspectType!.push('moderation'); break; case NATIVE_RTC.CONTENT_INSPECT_TYPE.CONTENT_INSPECT_SUPERVISION: - ret.inspectType.push('supervise'); + ret.inspectType!.push('supervise'); break; } //web这里的单位是毫秒, 而native传入的间隔是秒 - ret.interval = module.interval * 1000; + ret.interval = module.interval + ? module.interval * 1000 + : defaultInterval * 1000; return ret; } @@ -367,6 +332,8 @@ export class AgoraTranslate { return RemoteStreamType.HIGH_STREAM; case NATIVE_RTC.VIDEO_STREAM_TYPE.VIDEO_STREAM_LOW: return RemoteStreamType.LOW_STREAM; + default: + return RemoteStreamType.HIGH_STREAM; } } @@ -381,30 +348,18 @@ export class AgoraTranslate { return RemoteStreamFallbackType.LOW_STREAM; case NATIVE_RTC.STREAM_FALLBACK_OPTIONS.STREAM_FALLBACK_OPTION_AUDIO_ONLY: return RemoteStreamFallbackType.AUDIO_ONLY; + default: + return RemoteStreamFallbackType.DISABLE; } } - public static NATIVE_RTCRtcImage2LiveStreamingTranscodingImage( - image: NATIVE_RTC.RtcImage - ): LiveStreamingTranscodingImage { - let ret: LiveStreamingTranscodingImage = { - url: image.url, - x: image.x, - y: image.y, - width: image.width, - height: image.height, - alpha: image.alpha, - }; - return ret; - } - public static NATIVE_RTCTranscodingUser2LiveStreamingTranscodingUser( user: NATIVE_RTC.TranscodingUser ): LiveStreamingTranscodingUser { let ret: LiveStreamingTranscodingUser = { alpha: user.alpha, height: user.height, - uid: user.uid as UID, + uid: user.uid as number, width: user.width, x: user.x, y: user.y, @@ -414,49 +369,6 @@ export class AgoraTranslate { return ret; } - public static NATIVE_RTCLiveTranscoding2LiveStreamingTranscodingConfig( - config: NATIVE_RTC.LiveTranscoding - ): LiveStreamingTranscodingConfig { - let ret: LiveStreamingTranscodingConfig = { - audioBitrate: config.audioBitrate, - audioChannels: config.audioChannels as 1 | 2 | 3 | 4 | 5, - audioSampleRate: config.audioSampleRate as 32000 | 44100 | 48000, - backgroundColor: config.backgroundColor, - height: config.height, - width: config.width, - lowLatency: config.lowLatency, - videoBitrate: config.videoBitrate, - videoCodecProfile: config.videoCodecProfile as 66 | 77 | 100, - videoFrameRate: config.videoFramerate, - videoGop: config.videoGop, - userConfigExtraInfo: config.transcodingExtraInfo, - }; - - if (config.watermarkCount >= 1) { - ret.watermark = AgoraTranslate.NATIVE_RTCRtcImage2LiveStreamingTranscodingImage( - config.watermark[0] - ); - } - if (config.backgroundImageCount >= 1) { - ret.backgroundImage = AgoraTranslate.NATIVE_RTCRtcImage2LiveStreamingTranscodingImage( - config.backgroundImage[0] - ); - } - - ret.transcodingUsers = []; - if (config.userCount > 0) { - for (let i = 0; i < config.userCount; i++) { - ret.transcodingUsers.push( - AgoraTranslate.NATIVE_RTCTranscodingUser2LiveStreamingTranscodingUser( - config.transcodingUsers[i] - ) - ); - } - } - - return ret; - } - /*************************/ public static DeviceState2NATIVE_RTCMEDIA_DEVICE_STATE_TYPE( state: DeviceState @@ -537,6 +449,9 @@ export class AgoraTranslate { case ConnectionDisconnectedReason.FALLBACK: return NATIVE_RTC.CONNECTION_CHANGED_REASON_TYPE .CONNECTION_CHANGED_INTERRUPTED; + default: + return NATIVE_RTC.CONNECTION_CHANGED_REASON_TYPE + .CONNECTION_CHANGED_INTERRUPTED; } } @@ -575,7 +490,7 @@ export class AgoraTranslate { public static volumeIndicatorResult2NATIVE_RTCAudioVolumeInfo(result: { level: number; - uid: UID; + uid: number; }): NATIVE_RTC.AudioVolumeInfo { //level范围是[0,100], volume范围是 0 - 255, 要做一下转换 let audioVolumInfo: NATIVE_RTC.AudioVolumeInfo = { @@ -606,4 +521,19 @@ export class AgoraTranslate { return NATIVE_RTC.CONTENT_INSPECT_RESULT.CONTENT_INSPECT_NEUTRAL; } } + + public static NATIVE_RTC_RENDER_MODE_TYPE2Fit( + renderMode: NATIVE_RTC.RENDER_MODE_TYPE + ): 'cover' | 'contain' | 'fill' { + switch (renderMode) { + case NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_ADAPTIVE: + return 'cover'; + case NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT: + return 'contain'; + case NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_HIDDEN: + return 'cover'; + default: + return 'fill'; + } + } } diff --git a/packages/rtc/src/util/BufferConvert.ts b/packages/rtc/src/util/BufferConvert.ts index bdb6c283..6d579512 100644 --- a/packages/rtc/src/util/BufferConvert.ts +++ b/packages/rtc/src/util/BufferConvert.ts @@ -9,6 +9,10 @@ export const drawRGBABufferToCanvas = ( ): void => { const ctx = canvas.getContext('2d'); + if (!ctx) { + return; + } + canvas.width = width; canvas.height = height; diff --git a/packages/rtc/src/util/Container.ts b/packages/rtc/src/util/Container.ts deleted file mode 100644 index ea0a5d78..00000000 --- a/packages/rtc/src/util/Container.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { UID } from 'agora-rtc-sdk-ng'; - -export type walkFun = (channelId: string, uid: UID, t: T) => void; - -export class Container { - private _container: Map> = new Map(); - - addT(channelId: string, uid: UID, t: T) { - if (!this._container.has(channelId)) { - this._container.set(channelId, new Map()); - } - - if (this._container.get(channelId).has(uid)) { - console.debug('t already added!'); - console.debug('channelId: ' + channelId + ' uid: ' + uid); - } else { - this._container.get(channelId).set(uid, t); - } - } - - removeT(channelId: string, uid: UID) { - if (this._container.has(channelId)) { - if (this._container.get(channelId).has(uid)) { - this._container.get(channelId).delete(uid); - } - } - } - - removeTs(channelId: string) { - if (this._container.has(channelId)) { - this._container.delete(channelId); - } - } - - getT(channelId: string, uid: UID): T { - return this._container.get(channelId)?.get(uid); - } - - getTs(channelId: string): Map { - return this._container.get(channelId); - } - - walkT(cb: walkFun) { - for (let c of this._container) { - let channelId = c[0]; - let map = c[1]; - for (let m of map) { - let uid = m[0]; - let t = m[1]; - cb(channelId, uid, t); - } - } - } - - async walkTAsync(cb: walkFun) { - for (let c of this._container) { - let channelId = c[0]; - let map = c[1]; - for (let m of map) { - let uid = m[0]; - let t = m[1]; - await cb(channelId, uid, t); - } - } - } - - getContainer(): Map> { - return this._container; - } -} diff --git a/packages/rtc/src/util/iris_rtc_api_type_gen.ts b/packages/rtc/src/util/iris_rtc_api_type_gen.ts index ca07c287..e8bbd375 100644 --- a/packages/rtc/src/util/iris_rtc_api_type_gen.ts +++ b/packages/rtc/src/util/iris_rtc_api_type_gen.ts @@ -65,6 +65,8 @@ export const IVIDEOFRAMEOBSERVER_GETMIRRORAPPLIED = 'VideoFrameObserver_getMirrorApplied'; export const IVIDEOFRAMEOBSERVER_GETOBSERVEDFRAMEPOSITION = 'VideoFrameObserver_getObservedFramePosition'; +export const IFACEINFOOBSERVER_ONFACEINFO_3a2037f = + 'FaceInfoObserver_onFaceInfo_3a2037f'; export const IMEDIARECORDEROBSERVER_ONRECORDERSTATECHANGED_c38849f = 'MediaRecorderObserver_onRecorderStateChanged_c38849f'; export const IMEDIARECORDEROBSERVER_ONRECORDERINFOUPDATED_64fa74a = @@ -91,6 +93,8 @@ export const IMEDIAENGINE_REGISTERVIDEOFRAMEOBSERVER_2cc0ef1 = 'MediaEngine_registerVideoFrameObserver_2cc0ef1'; export const IMEDIAENGINE_REGISTERVIDEOENCODEDFRAMEOBSERVER_d45d579 = 'MediaEngine_registerVideoEncodedFrameObserver_d45d579'; +export const IMEDIAENGINE_REGISTERFACEINFOOBSERVER_0303ed6 = + 'MediaEngine_registerFaceInfoObserver_0303ed6'; export const IMEDIAENGINE_PUSHAUDIOFRAME_c71f4ab = 'MediaEngine_pushAudioFrame_c71f4ab'; export const IMEDIAENGINE_PULLAUDIOFRAME_2c74a9c = @@ -286,6 +290,8 @@ export const IMUSICCONTENTCENTEREVENTHANDLER_ONSONGSIMPLEINFORESULT_9ad9c90 = export const IMUSICCONTENTCENTEREVENTHANDLER_ONPRELOADEVENT_20170bc = 'MusicContentCenterEventHandler_onPreLoadEvent_20170bc'; export const IMUSICPLAYER_OPEN_303b92e = 'MusicPlayer_open_303b92e'; +export const IMUSICPLAYER_SETPLAYMODE_748bee0 = + 'MusicPlayer_setPlayMode_748bee0'; export const IMUSICCONTENTCENTER_INITIALIZE_df70304 = 'MusicContentCenter_initialize_df70304'; export const IMUSICCONTENTCENTER_RENEWTOKEN_3a2037f = @@ -297,6 +303,8 @@ export const IMUSICCONTENTCENTER_UNREGISTEREVENTHANDLER = 'MusicContentCenter_unregisterEventHandler'; export const IMUSICCONTENTCENTER_CREATEMUSICPLAYER = 'MusicContentCenter_createMusicPlayer'; +export const IMUSICCONTENTCENTER_DESTROYMUSICPLAYER_876d086 = + 'MusicContentCenter_destroyMusicPlayer_876d086'; export const IMUSICCONTENTCENTER_GETMUSICCHARTS_66d4ecd = 'MusicContentCenter_getMusicCharts_66d4ecd'; export const IMUSICCONTENTCENTER_GETMUSICCOLLECTIONBYMUSICCHARTID_8cd0b4d = @@ -497,14 +505,16 @@ export const IRTCENGINEEVENTHANDLER_ONVIDEOPUBLISHSTATECHANGED_5b45b6e = 'RtcEngineEventHandler_onVideoPublishStateChanged_5b45b6e'; export const IRTCENGINEEVENTHANDLER_ONTRANSCODEDSTREAMLAYOUTINFO_3bfb91b = 'RtcEngineEventHandler_onTranscodedStreamLayoutInfo_3bfb91b'; -export const IRTCENGINEEVENTHANDLER_ONEXTENSIONEVENT_062d13c = - 'RtcEngineEventHandler_onExtensionEvent_062d13c'; -export const IRTCENGINEEVENTHANDLER_ONEXTENSIONSTARTED_ccad422 = - 'RtcEngineEventHandler_onExtensionStarted_ccad422'; -export const IRTCENGINEEVENTHANDLER_ONEXTENSIONSTOPPED_ccad422 = - 'RtcEngineEventHandler_onExtensionStopped_ccad422'; -export const IRTCENGINEEVENTHANDLER_ONEXTENSIONERROR_bd3489b = - 'RtcEngineEventHandler_onExtensionError_bd3489b'; +export const IRTCENGINEEVENTHANDLER_ONAUDIOMETADATARECEIVED_77edd82 = + 'RtcEngineEventHandler_onAudioMetadataReceived_77edd82'; +export const IRTCENGINEEVENTHANDLER_ONEXTENSIONEVENTWITHCONTEXT_a5fb27a = + 'RtcEngineEventHandler_onExtensionEventWithContext_a5fb27a'; +export const IRTCENGINEEVENTHANDLER_ONEXTENSIONSTARTEDWITHCONTEXT_67c38e3 = + 'RtcEngineEventHandler_onExtensionStartedWithContext_67c38e3'; +export const IRTCENGINEEVENTHANDLER_ONEXTENSIONSTOPPEDWITHCONTEXT_67c38e3 = + 'RtcEngineEventHandler_onExtensionStoppedWithContext_67c38e3'; +export const IRTCENGINEEVENTHANDLER_ONEXTENSIONERRORWITHCONTEXT_a452f11 = + 'RtcEngineEventHandler_onExtensionErrorWithContext_a452f11'; export const IRTCENGINEEVENTHANDLER_ONSETRTMFLAGRESULT_46f8ab7 = 'RtcEngineEventHandler_onSetRtmFlagResult_46f8ab7'; export const IRTCENGINEEVENTHANDLER_ONJOINCHANNELSUCCESS_263e4cd = @@ -529,8 +539,6 @@ export const IRTCENGINEEVENTHANDLER_ONFIRSTREMOTEVIDEODECODED_a68170a = 'RtcEngineEventHandler_onFirstRemoteVideoDecoded_a68170a'; export const IRTCENGINEEVENTHANDLER_ONVIDEOSIZECHANGED_99bf45c = 'RtcEngineEventHandler_onVideoSizeChanged_99bf45c'; -export const IRTCENGINEEVENTHANDLER_ONLOCALVIDEOSTATECHANGED_b202b1b = - 'RtcEngineEventHandler_onLocalVideoStateChanged_b202b1b'; export const IRTCENGINEEVENTHANDLER_ONREMOTEVIDEOSTATECHANGED_a14e9d1 = 'RtcEngineEventHandler_onRemoteVideoStateChanged_a14e9d1'; export const IRTCENGINEEVENTHANDLER_ONFIRSTREMOTEVIDEOFRAME_a68170a = @@ -615,6 +623,8 @@ export const IRTCENGINEEVENTHANDLER_ONSETRTMFLAGRESULT_263e4cd = 'RtcEngineEventHandler_onSetRtmFlagResult_263e4cd'; export const IRTCENGINEEVENTHANDLER_ONTRANSCODEDSTREAMLAYOUTINFO_48f6419 = 'RtcEngineEventHandler_onTranscodedStreamLayoutInfo_48f6419'; +export const IRTCENGINEEVENTHANDLER_ONAUDIOMETADATARECEIVED_0d4eb96 = + 'RtcEngineEventHandler_onAudioMetadataReceived_0d4eb96'; export const IVIDEODEVICEMANAGER_ENUMERATEVIDEODEVICES = 'VideoDeviceManager_enumerateVideoDevices'; export const IVIDEODEVICEMANAGER_SETDEVICE_4ad5f6e = @@ -668,9 +678,6 @@ export const IRTCENGINE_SETCLIENTROLE_3426fa6 = 'RtcEngine_setClientRole_3426fa6'; export const IRTCENGINE_SETCLIENTROLE_b46cc48 = 'RtcEngine_setClientRole_b46cc48'; -export const IRTCENGINE_STARTECHOTEST = 'RtcEngine_startEchoTest'; -export const IRTCENGINE_STARTECHOTEST_46f8ab7 = - 'RtcEngine_startEchoTest_46f8ab7'; export const IRTCENGINE_STARTECHOTEST_16140d7 = 'RtcEngine_startEchoTest_16140d7'; export const IRTCENGINE_STOPECHOTEST = 'RtcEngine_stopEchoTest'; @@ -690,6 +697,14 @@ export const IRTCENGINE_SETVIDEOENCODERCONFIGURATION_89677d8 = 'RtcEngine_setVideoEncoderConfiguration_89677d8'; export const IRTCENGINE_SETBEAUTYEFFECTOPTIONS_e7635d1 = 'RtcEngine_setBeautyEffectOptions_e7635d1'; +export const IRTCENGINE_SETFACESHAPEBEAUTYOPTIONS_a862ce7 = + 'RtcEngine_setFaceShapeBeautyOptions_a862ce7'; +export const IRTCENGINE_SETFACESHAPEAREAOPTIONS_2e242a3 = + 'RtcEngine_setFaceShapeAreaOptions_2e242a3'; +export const IRTCENGINE_GETFACESHAPEBEAUTYOPTIONS_8382895 = + 'RtcEngine_getFaceShapeBeautyOptions_8382895'; +export const IRTCENGINE_GETFACESHAPEAREAOPTIONS_0783e2c = + 'RtcEngine_getFaceShapeAreaOptions_0783e2c'; export const IRTCENGINE_SETLOWLIGHTENHANCEOPTIONS_4f9f013 = 'RtcEngine_setLowlightEnhanceOptions_4f9f013'; export const IRTCENGINE_SETVIDEODENOISEROPTIONS_4e9fccc = @@ -720,8 +735,6 @@ export const IRTCENGINE_MUTELOCALAUDIOSTREAM_5039d15 = 'RtcEngine_muteLocalAudioStream_5039d15'; export const IRTCENGINE_MUTEALLREMOTEAUDIOSTREAMS_5039d15 = 'RtcEngine_muteAllRemoteAudioStreams_5039d15'; -export const IRTCENGINE_SETDEFAULTMUTEALLREMOTEAUDIOSTREAMS_5039d15 = - 'RtcEngine_setDefaultMuteAllRemoteAudioStreams_5039d15'; export const IRTCENGINE_MUTEREMOTEAUDIOSTREAM_dbdc15a = 'RtcEngine_muteRemoteAudioStream_dbdc15a'; export const IRTCENGINE_MUTELOCALVIDEOSTREAM_5039d15 = @@ -730,8 +743,6 @@ export const IRTCENGINE_ENABLELOCALVIDEO_5039d15 = 'RtcEngine_enableLocalVideo_5039d15'; export const IRTCENGINE_MUTEALLREMOTEVIDEOSTREAMS_5039d15 = 'RtcEngine_muteAllRemoteVideoStreams_5039d15'; -export const IRTCENGINE_SETDEFAULTMUTEALLREMOTEVIDEOSTREAMS_5039d15 = - 'RtcEngine_setDefaultMuteAllRemoteVideoStreams_5039d15'; export const IRTCENGINE_SETREMOTEDEFAULTVIDEOSTREAMTYPE_5a94eb0 = 'RtcEngine_setRemoteDefaultVideoStreamType_5a94eb0'; export const IRTCENGINE_MUTEREMOTEVIDEOSTREAM_dbdc15a = @@ -796,6 +807,8 @@ export const IRTCENGINE_SETAUDIOMIXINGDUALMONOMODE_38a5515 = 'RtcEngine_setAudioMixingDualMonoMode_38a5515'; export const IRTCENGINE_SETAUDIOMIXINGPITCH_46f8ab7 = 'RtcEngine_setAudioMixingPitch_46f8ab7'; +export const IRTCENGINE_SETAUDIOMIXINGPLAYBACKSPEED_46f8ab7 = + 'RtcEngine_setAudioMixingPlaybackSpeed_46f8ab7'; export const IRTCENGINE_GETEFFECTSVOLUME = 'RtcEngine_getEffectsVolume'; export const IRTCENGINE_SETEFFECTSVOLUME_46f8ab7 = 'RtcEngine_setEffectsVolume_46f8ab7'; @@ -854,6 +867,8 @@ export const IRTCENGINE_SETHEADPHONEEQPRESET_b679644 = 'RtcEngine_setHeadphoneEQPreset_b679644'; export const IRTCENGINE_SETHEADPHONEEQPARAMETERS_4e92b3c = 'RtcEngine_setHeadphoneEQParameters_4e92b3c'; +export const IRTCENGINE_ENABLEVOICEAITUNER_28f5d5b = + 'RtcEngine_enableVoiceAITuner_28f5d5b'; export const IRTCENGINE_SETLOGFILE_3a2037f = 'RtcEngine_setLogFile_3a2037f'; export const IRTCENGINE_SETLOGFILTER_2626ac7 = 'RtcEngine_setLogFilter_2626ac7'; export const IRTCENGINE_SETLOGLEVEL_f125d83 = 'RtcEngine_setLogLevel_f125d83'; @@ -861,6 +876,7 @@ export const IRTCENGINE_SETLOGFILESIZE_2626ac7 = 'RtcEngine_setLogFileSize_2626ac7'; export const IRTCENGINE_UPLOADLOGFILE_66d4ecd = 'RtcEngine_uploadLogFile_66d4ecd'; +export const IRTCENGINE_WRITELOG_62889f6 = 'RtcEngine_writeLog_62889f6'; export const IRTCENGINE_SETLOCALRENDERMODE_cfb201b = 'RtcEngine_setLocalRenderMode_cfb201b'; export const IRTCENGINE_SETREMOTERENDERMODE_6771ce0 = @@ -875,6 +891,8 @@ export const IRTCENGINE_ENABLEDUALSTREAMMODE_9822d8a = 'RtcEngine_enableDualStreamMode_9822d8a'; export const IRTCENGINE_SETDUALSTREAMMODE_3a7f662 = 'RtcEngine_setDualStreamMode_3a7f662'; +export const IRTCENGINE_SETSIMULCASTCONFIG_3dcdfd7 = + 'RtcEngine_setSimulcastConfig_3dcdfd7'; export const IRTCENGINE_SETDUALSTREAMMODE_b3a4f6c = 'RtcEngine_setDualStreamMode_b3a4f6c'; export const IRTCENGINE_ENABLECUSTOMAUDIOLOCALPLAYBACK_9566341 = @@ -984,6 +1002,8 @@ export const IRTCENGINE_ISCAMERAAUTOEXPOSUREFACEMODESUPPORTED = 'RtcEngine_isCameraAutoExposureFaceModeSupported'; export const IRTCENGINE_SETCAMERAAUTOEXPOSUREFACEMODEENABLED_5039d15 = 'RtcEngine_setCameraAutoExposureFaceModeEnabled_5039d15'; +export const IRTCENGINE_SETCAMERASTABILIZATIONMODE_701b981 = + 'RtcEngine_setCameraStabilizationMode_701b981'; export const IRTCENGINE_SETDEFAULTAUDIOROUTETOSPEAKERPHONE_5039d15 = 'RtcEngine_setDefaultAudioRouteToSpeakerphone_5039d15'; export const IRTCENGINE_SETENABLESPEAKERPHONE_5039d15 = @@ -992,6 +1012,10 @@ export const IRTCENGINE_ISSPEAKERPHONEENABLED = 'RtcEngine_isSpeakerphoneEnabled'; export const IRTCENGINE_SETROUTEINCOMMUNICATIONMODE_46f8ab7 = 'RtcEngine_setRouteInCommunicationMode_46f8ab7'; +export const IRTCENGINE_ISCAMERACENTERSTAGESUPPORTED = + 'RtcEngine_isCameraCenterStageSupported'; +export const IRTCENGINE_ENABLECAMERACENTERSTAGE_5039d15 = + 'RtcEngine_enableCameraCenterStage_5039d15'; export const IRTCENGINE_GETSCREENCAPTURESOURCES_f3e02cb = 'RtcEngine_getScreenCaptureSources_f3e02cb'; export const IRTCENGINE_SETAUDIOSESSIONOPERATIONRESTRICTION_c492897 = @@ -1016,6 +1040,8 @@ export const IRTCENGINE_UPDATESCREENCAPTURE_270da41 = 'RtcEngine_updateScreenCapture_270da41'; export const IRTCENGINE_QUERYSCREENCAPTURECAPABILITY = 'RtcEngine_queryScreenCaptureCapability'; +export const IRTCENGINE_QUERYCAMERAFOCALLENGTHCAPABILITY_2dee6af = + 'RtcEngine_queryCameraFocalLengthCapability_2dee6af'; export const IRTCENGINE_SETSCREENCAPTURESCENARIO_13de7b4 = 'RtcEngine_setScreenCaptureScenario_13de7b4'; export const IRTCENGINE_STOPSCREENCAPTURE = 'RtcEngine_stopScreenCapture'; @@ -1057,10 +1083,6 @@ export const IRTCENGINE_SETREMOTEUSERPRIORITY_f34115b = 'RtcEngine_setRemoteUserPriority_f34115b'; export const IRTCENGINE_REGISTERPACKETOBSERVER_f8b44dd = 'RtcEngine_registerPacketObserver_f8b44dd'; -export const IRTCENGINE_SETENCRYPTIONMODE_3a2037f = - 'RtcEngine_setEncryptionMode_3a2037f'; -export const IRTCENGINE_SETENCRYPTIONSECRET_3a2037f = - 'RtcEngine_setEncryptionSecret_3a2037f'; export const IRTCENGINE_ENABLEENCRYPTION_421c27b = 'RtcEngine_enableEncryption_421c27b'; export const IRTCENGINE_CREATEDATASTREAM_b897a63 = @@ -1155,6 +1177,8 @@ export const IRTCENGINE_ENABLEINSTANTMEDIARENDERING = export const IRTCENGINE_GETNTPWALLTIMEINMS = 'RtcEngine_getNtpWallTimeInMs'; export const IRTCENGINE_ISFEATUREAVAILABLEONDEVICE_a694b62 = 'RtcEngine_isFeatureAvailableOnDevice_a694b62'; +export const IRTCENGINE_SENDAUDIOMETADATA_878f309 = + 'RtcEngine_sendAudioMetadata_878f309'; export const IRTCENGINEEX_JOINCHANNELEX_a3cd08c = 'RtcEngineEx_joinChannelEx_a3cd08c'; export const IRTCENGINEEX_LEAVECHANNELEX_c81e1a4 = @@ -1247,6 +1271,8 @@ export const IRTCENGINEEX_ENABLEDUALSTREAMMODEEX_4b18f41 = 'RtcEngineEx_enableDualStreamModeEx_4b18f41'; export const IRTCENGINEEX_SETDUALSTREAMMODEEX_622d0f3 = 'RtcEngineEx_setDualStreamModeEx_622d0f3'; +export const IRTCENGINEEX_SETSIMULCASTCONFIGEX_bd8d7d0 = + 'RtcEngineEx_setSimulcastConfigEx_bd8d7d0'; export const IRTCENGINEEX_SETHIGHPRIORITYUSERLISTEX_8736b5c = 'RtcEngineEx_setHighPriorityUserListEx_8736b5c'; export const IRTCENGINEEX_TAKESNAPSHOTEX_de1c015 = @@ -1257,6 +1283,10 @@ export const IRTCENGINEEX_STARTMEDIARENDERINGTRACINGEX_c81e1a4 = 'RtcEngineEx_startMediaRenderingTracingEx_c81e1a4'; export const IRTCENGINEEX_SETPARAMETERSEX_8225ea3 = 'RtcEngineEx_setParametersEx_8225ea3'; +export const IRTCENGINEEX_GETCALLIDEX_b13f7c4 = + 'RtcEngineEx_getCallIdEx_b13f7c4'; +export const IRTCENGINEEX_SENDAUDIOMETADATAEX_e2bf1c4 = + 'RtcEngineEx_sendAudioMetadataEx_e2bf1c4'; export const ILOCALSPATIALAUDIOENGINE_RELEASE = 'LocalSpatialAudioEngine_release'; export const ILOCALSPATIALAUDIOENGINE_INITIALIZE_cf94fbf = @@ -1309,6 +1339,8 @@ export const IAUDIODEVICEMANAGER_GETPLAYBACKDEVICE_73b9872 = 'AudioDeviceManager_getPlaybackDevice_73b9872'; export const IAUDIODEVICEMANAGER_GETPLAYBACKDEVICEINFO_5540658 = 'AudioDeviceManager_getPlaybackDeviceInfo_5540658'; +export const IAUDIODEVICEMANAGER_GETPLAYBACKDEVICEINFO_ed3a96d = + 'AudioDeviceManager_getPlaybackDeviceInfo_ed3a96d'; export const IAUDIODEVICEMANAGER_SETPLAYBACKDEVICEVOLUME_46f8ab7 = 'AudioDeviceManager_setPlaybackDeviceVolume_46f8ab7'; export const IAUDIODEVICEMANAGER_GETPLAYBACKDEVICEVOLUME_915cb25 = @@ -1319,6 +1351,8 @@ export const IAUDIODEVICEMANAGER_GETRECORDINGDEVICE_73b9872 = 'AudioDeviceManager_getRecordingDevice_73b9872'; export const IAUDIODEVICEMANAGER_GETRECORDINGDEVICEINFO_5540658 = 'AudioDeviceManager_getRecordingDeviceInfo_5540658'; +export const IAUDIODEVICEMANAGER_GETRECORDINGDEVICEINFO_ed3a96d = + 'AudioDeviceManager_getRecordingDeviceInfo_ed3a96d'; export const IAUDIODEVICEMANAGER_SETRECORDINGDEVICEVOLUME_46f8ab7 = 'AudioDeviceManager_setRecordingDeviceVolume_46f8ab7'; export const IAUDIODEVICEMANAGER_GETRECORDINGDEVICEVOLUME_915cb25 = diff --git a/packages/rtc/test/binding/AgoraBaseDispatch.test.ts b/packages/rtc/test/binding/AgoraBaseDispatch.test.ts index 3e377478..9db8948a 100644 --- a/packages/rtc/test/binding/AgoraBaseDispatch.test.ts +++ b/packages/rtc/test/binding/AgoraBaseDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/AgoraMediaBaseDispatch.test.ts b/packages/rtc/test/binding/AgoraMediaBaseDispatch.test.ts index 8606a9e9..3cf33faa 100644 --- a/packages/rtc/test/binding/AgoraMediaBaseDispatch.test.ts +++ b/packages/rtc/test/binding/AgoraMediaBaseDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -657,6 +657,24 @@ describe('IVideoFrameObserver', () => { ); }); }); +describe('IFaceInfoObserver', () => { + test('FaceInfoObserver_onFaceInfo_3a2037f impl call', async () => { + let eventHandler = new bindingAPI.IFaceInfoObserver(irisRtcEngine); + jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + eventHandler.onFaceInfo_3a2037f(undefined); + expect( + eventHandler._engine.irisEventHandlerManager.notifyEvent + ).toBeCalledTimes(0); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); +}); describe('IMediaRecorderObserver', () => { test('MediaRecorderObserver_onRecorderStateChanged_c38849f impl call', async () => { let eventHandler = new bindingAPI.IMediaRecorderObserver(irisRtcEngine); diff --git a/packages/rtc/test/binding/IAgoraH265TranscoderDispatch.test.ts b/packages/rtc/test/binding/IAgoraH265TranscoderDispatch.test.ts index 3def0004..80274102 100644 --- a/packages/rtc/test/binding/IAgoraH265TranscoderDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraH265TranscoderDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/IAgoraMediaEngineDispatch.test.ts b/packages/rtc/test/binding/IAgoraMediaEngineDispatch.test.ts index 3ebd6866..9761a800 100644 --- a/packages/rtc/test/binding/IAgoraMediaEngineDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraMediaEngineDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -124,6 +124,34 @@ describe('IMediaEngine', () => { ); }); + test('MediaEngine_registerFaceInfoObserver_0303ed6 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + observer: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'MediaEngine_registerFaceInfoObserver_0303ed6', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('MediaEngine')._impl + ?.registerFaceInfoObserver_0303ed6 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('MediaEngine_pushAudioFrame_c71f4ab impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -204,6 +232,7 @@ describe('IMediaEngine', () => { } catch (e) { expect(e).toEqual('enabled is undefined'); } + //@ts-ignore nParam.enabled = 'test'; try { await IrisCore.callIrisApi( @@ -221,6 +250,7 @@ describe('IMediaEngine', () => { } catch (e) { expect(e).toEqual('useTexture is undefined'); } + //@ts-ignore nParam.useTexture = 'test'; try { await IrisCore.callIrisApi( @@ -238,6 +268,7 @@ describe('IMediaEngine', () => { } catch (e) { expect(e).toEqual('sourceType is undefined'); } + //@ts-ignore nParam.sourceType = 'test'; try { await IrisCore.callIrisApi( @@ -255,6 +286,7 @@ describe('IMediaEngine', () => { } catch (e) { expect(e).toEqual('encodedVideoOption is undefined'); } + //@ts-ignore nParam.encodedVideoOption = 'test'; }); diff --git a/packages/rtc/test/binding/IAgoraMediaPlayerDispatch.test.ts b/packages/rtc/test/binding/IAgoraMediaPlayerDispatch.test.ts index 4e9587e7..f28c0b13 100644 --- a/packages/rtc/test/binding/IAgoraMediaPlayerDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraMediaPlayerDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/IAgoraMediaPlayerSourceDispatch.test.ts b/packages/rtc/test/binding/IAgoraMediaPlayerSourceDispatch.test.ts index 7ad208dd..a02e00b6 100644 --- a/packages/rtc/test/binding/IAgoraMediaPlayerSourceDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraMediaPlayerSourceDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/IAgoraMediaRecorderDispatch.test.ts b/packages/rtc/test/binding/IAgoraMediaRecorderDispatch.test.ts index 961b8d39..cfd22e30 100644 --- a/packages/rtc/test/binding/IAgoraMediaRecorderDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraMediaRecorderDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/IAgoraMusicContentCenterDispatch.test.ts b/packages/rtc/test/binding/IAgoraMusicContentCenterDispatch.test.ts index 71834547..9b862961 100644 --- a/packages/rtc/test/binding/IAgoraMusicContentCenterDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraMusicContentCenterDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -364,6 +364,34 @@ describe('IMusicPlayer', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); + + test('MusicPlayer_setPlayMode_748bee0 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + mode: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'MusicPlayer_setPlayMode_748bee0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('MusicPlayer')._impl + ?.setPlayMode_748bee0 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); }); describe('IMusicContentCenter', () => { test('MusicContentCenter_initialize_df70304 impl call', async () => { @@ -527,6 +555,34 @@ describe('IMusicContentCenter', () => { ); }); + test('MusicContentCenter_destroyMusicPlayer_876d086 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + music_player: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'MusicContentCenter_destroyMusicPlayer_876d086', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('MusicContentCenter')._impl + ?.destroyMusicPlayer_876d086 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('MusicContentCenter_getMusicCharts_66d4ecd impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -769,7 +825,7 @@ describe('IMusicContentCenter', () => { let nParam = { requestId: 'test', songCode: 'test', - LyricType: 'test', + lyricType: 'test', }; let apiParam = new IrisCore.EventParam( 'MusicContentCenter_getLyric_5ab5efd', diff --git a/packages/rtc/test/binding/IAgoraRtcEngineDispatch.test.ts b/packages/rtc/test/binding/IAgoraRtcEngineDispatch.test.ts index 60910fa8..61c43eef 100644 --- a/packages/rtc/test/binding/IAgoraRtcEngineDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraRtcEngineDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -1542,14 +1542,33 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); - test('RtcEngineEventHandler_onExtensionEvent_062d13c impl call', async () => { + test('RtcEngineEventHandler_onAudioMetadataReceived_77edd82 impl call', async () => { let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - eventHandler.onExtensionEvent_062d13c( + eventHandler.onAudioMetadataReceived_77edd82( undefined, + undefined, + undefined + ); + expect( + eventHandler._engine.irisEventHandlerManager.notifyEvent + ).toBeCalledTimes(0); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngineEventHandler_onExtensionEventWithContext_a5fb27a impl call', async () => { + let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); + jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + eventHandler.onExtensionEventWithContext_a5fb27a( undefined, undefined, undefined @@ -1563,13 +1582,13 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); - test('RtcEngineEventHandler_onExtensionStarted_ccad422 impl call', async () => { + test('RtcEngineEventHandler_onExtensionStartedWithContext_67c38e3 impl call', async () => { let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - eventHandler.onExtensionStarted_ccad422(undefined, undefined); + eventHandler.onExtensionStartedWithContext_67c38e3(undefined); expect( eventHandler._engine.irisEventHandlerManager.notifyEvent ).toBeCalledTimes(0); @@ -1579,13 +1598,13 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); - test('RtcEngineEventHandler_onExtensionStopped_ccad422 impl call', async () => { + test('RtcEngineEventHandler_onExtensionStoppedWithContext_67c38e3 impl call', async () => { let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - eventHandler.onExtensionStopped_ccad422(undefined, undefined); + eventHandler.onExtensionStoppedWithContext_67c38e3(undefined); expect( eventHandler._engine.irisEventHandlerManager.notifyEvent ).toBeCalledTimes(0); @@ -1595,14 +1614,13 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); - test('RtcEngineEventHandler_onExtensionError_bd3489b impl call', async () => { + test('RtcEngineEventHandler_onExtensionErrorWithContext_a452f11 impl call', async () => { let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - eventHandler.onExtensionError_bd3489b( - undefined, + eventHandler.onExtensionErrorWithContext_a452f11( undefined, undefined, undefined @@ -1797,26 +1815,6 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); - test('RtcEngineEventHandler_onLocalVideoStateChanged_b202b1b impl call', async () => { - let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); - jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - eventHandler.onLocalVideoStateChanged_b202b1b( - undefined, - undefined, - undefined - ); - expect( - eventHandler._engine.irisEventHandlerManager.notifyEvent - ).toBeCalledTimes(0); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); test('RtcEngineEventHandler_onRemoteVideoStateChanged_a14e9d1 impl call', async () => { let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); @@ -2423,6 +2421,27 @@ describe('IRtcEngineEventHandler', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); + test('RtcEngineEventHandler_onAudioMetadataReceived_0d4eb96 impl call', async () => { + let eventHandler = new bindingAPI.IRtcEngineEventHandler(irisRtcEngine); + jest.spyOn(eventHandler._engine.irisEventHandlerManager, 'notifyEvent'); + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + eventHandler.onAudioMetadataReceived_0d4eb96( + undefined, + undefined, + undefined, + undefined + ); + expect( + eventHandler._engine.irisEventHandlerManager.notifyEvent + ).toBeCalledTimes(0); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); }); describe('IVideoDeviceManager', () => { test('VideoDeviceManager_enumerateVideoDevices impl call', async () => { @@ -2473,6 +2492,7 @@ describe('IVideoDeviceManager', () => { } catch (e) { expect(e).toEqual('deviceIdUTF8 is undefined'); } + //@ts-ignore nParam.deviceIdUTF8 = 'test'; }); @@ -2785,6 +2805,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('context is undefined'); } + //@ts-ignore nParam.context = 'test'; }); @@ -3063,6 +3084,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('token is undefined'); } + //@ts-ignore nParam.token = 'test'; try { await IrisCore.callIrisApi( @@ -3080,6 +3102,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('channelId is undefined'); } + //@ts-ignore nParam.channelId = 'test'; try { await IrisCore.callIrisApi( @@ -3097,6 +3120,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('info is undefined'); } + //@ts-ignore nParam.info = 'test'; try { await IrisCore.callIrisApi( @@ -3114,6 +3138,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; }); @@ -3171,6 +3196,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('token is undefined'); } + //@ts-ignore nParam.token = 'test'; try { await IrisCore.callIrisApi( @@ -3188,6 +3214,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('channelId is undefined'); } + //@ts-ignore nParam.channelId = 'test'; try { await IrisCore.callIrisApi( @@ -3205,6 +3232,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; try { await IrisCore.callIrisApi( @@ -3222,6 +3250,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -3276,6 +3305,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -3355,6 +3385,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -3435,6 +3466,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('profile is undefined'); } + //@ts-ignore nParam.profile = 'test'; }); @@ -3488,6 +3520,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('role is undefined'); } + //@ts-ignore nParam.role = 'test'; }); @@ -3542,6 +3575,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('role is undefined'); } + //@ts-ignore nParam.role = 'test'; try { await IrisCore.callIrisApi( @@ -3559,6 +3593,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -3593,59 +3628,6 @@ describe('IRtcEngine', () => { ).toBeCalledWith('test', 'test'); }); - test('RtcEngine_startEchoTest impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = {}; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_startEchoTest', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl?.startEchoTest - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - - test('RtcEngine_startEchoTest_46f8ab7 impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = { - intervalInSeconds: 'test', - }; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_startEchoTest_46f8ab7', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.startEchoTest_46f8ab7 - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - test('RtcEngine_startEchoTest_16140d7 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -3826,6 +3808,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('sourceType is undefined'); } + //@ts-ignore nParam.sourceType = 'test'; }); @@ -3905,6 +3888,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('sourceType is undefined'); } + //@ts-ignore nParam.sourceType = 'test'; }); @@ -4010,6 +3994,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('config is undefined'); } + //@ts-ignore nParam.config = 'test'; }); @@ -4073,6 +4058,124 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_setFaceShapeBeautyOptions_a862ce7 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + enabled: 'test', + options: 'test', + type: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setFaceShapeBeautyOptions_a862ce7', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.setFaceShapeBeautyOptions_a862ce7 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + + test('RtcEngine_setFaceShapeAreaOptions_2e242a3 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + options: 'test', + type: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setFaceShapeAreaOptions_2e242a3', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.setFaceShapeAreaOptions_2e242a3 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + + test('RtcEngine_getFaceShapeBeautyOptions_8382895 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + options: 'test', + type: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_getFaceShapeBeautyOptions_8382895', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.getFaceShapeBeautyOptions_8382895 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + + test('RtcEngine_getFaceShapeAreaOptions_0783e2c impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + shapeArea: 'test', + options: 'test', + type: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_getFaceShapeAreaOptions_0783e2c', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.getFaceShapeAreaOptions_0783e2c + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_setLowlightEnhanceOptions_4f9f013 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -4242,6 +4345,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('canvas is undefined'); } + //@ts-ignore nParam.canvas = 'test'; }); @@ -4404,6 +4508,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('profile is undefined'); } + //@ts-ignore nParam.profile = 'test'; try { await IrisCore.callIrisApi( @@ -4421,6 +4526,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('scenario is undefined'); } + //@ts-ignore nParam.scenario = 'test'; }); @@ -4475,6 +4581,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('profile is undefined'); } + //@ts-ignore nParam.profile = 'test'; }); @@ -4556,6 +4663,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('enabled is undefined'); } + //@ts-ignore nParam.enabled = 'test'; }); @@ -4609,6 +4717,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -4662,6 +4771,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -4695,34 +4805,6 @@ describe('IRtcEngine', () => { ).toBeCalledWith('test'); }); - test('RtcEngine_setDefaultMuteAllRemoteAudioStreams_5039d15 impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = { - mute: 'test', - }; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_setDefaultMuteAllRemoteAudioStreams_5039d15', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setDefaultMuteAllRemoteAudioStreams_5039d15 - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - test('RtcEngine_muteRemoteAudioStream_dbdc15a parameter', async () => { let nParam = { uid: undefined, @@ -4744,6 +4826,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; try { await IrisCore.callIrisApi( @@ -4761,6 +4844,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -4815,6 +4899,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -4868,6 +4953,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('enabled is undefined'); } + //@ts-ignore nParam.enabled = 'test'; }); @@ -4921,6 +5007,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -4954,34 +5041,6 @@ describe('IRtcEngine', () => { ).toBeCalledWith('test'); }); - test('RtcEngine_setDefaultMuteAllRemoteVideoStreams_5039d15 impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = { - mute: 'test', - }; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_setDefaultMuteAllRemoteVideoStreams_5039d15', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setDefaultMuteAllRemoteVideoStreams_5039d15 - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - test('RtcEngine_setRemoteDefaultVideoStreamType_5a94eb0 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -5031,6 +5090,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; try { await IrisCore.callIrisApi( @@ -5048,6 +5108,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; }); @@ -5278,6 +5339,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('interval is undefined'); } + //@ts-ignore nParam.interval = 'test'; try { await IrisCore.callIrisApi( @@ -5295,6 +5357,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('smooth is undefined'); } + //@ts-ignore nParam.smooth = 'test'; try { await IrisCore.callIrisApi( @@ -5312,6 +5375,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('reportVad is undefined'); } + //@ts-ignore nParam.reportVad = 'test'; }); @@ -6058,6 +6122,34 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_setAudioMixingPlaybackSpeed_46f8ab7 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + speed: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setAudioMixingPlaybackSpeed_46f8ab7', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.setAudioMixingPlaybackSpeed_46f8ab7 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_getEffectsVolume impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -6168,6 +6260,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('soundId is undefined'); } + //@ts-ignore nParam.soundId = 'test'; try { await IrisCore.callIrisApi( @@ -6185,6 +6278,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('filePath is undefined'); } + //@ts-ignore nParam.filePath = 'test'; try { await IrisCore.callIrisApi( @@ -6202,6 +6296,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('loopCount is undefined'); } + //@ts-ignore nParam.loopCount = 'test'; try { await IrisCore.callIrisApi( @@ -6219,6 +6314,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('pitch is undefined'); } + //@ts-ignore nParam.pitch = 'test'; try { await IrisCore.callIrisApi( @@ -6236,6 +6332,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('pan is undefined'); } + //@ts-ignore nParam.pan = 'test'; try { await IrisCore.callIrisApi( @@ -6253,6 +6350,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('gain is undefined'); } + //@ts-ignore nParam.gain = 'test'; try { await IrisCore.callIrisApi( @@ -6270,6 +6368,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('publish is undefined'); } + //@ts-ignore nParam.publish = 'test'; try { await IrisCore.callIrisApi( @@ -6287,6 +6386,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('startPos is undefined'); } + //@ts-ignore nParam.startPos = 'test'; }); @@ -6549,6 +6649,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('soundId is undefined'); } + //@ts-ignore nParam.soundId = 'test'; }); @@ -7204,6 +7305,35 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_enableVoiceAITuner_28f5d5b impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + enabled: 'test', + type: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_enableVoiceAITuner_28f5d5b', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.enableVoiceAITuner_28f5d5b + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_setLogFile_3a2037f impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -7279,6 +7409,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('level is undefined'); } + //@ts-ignore nParam.level = 'test'; }); @@ -7366,16 +7497,16 @@ describe('IRtcEngine', () => { ); }); - test('RtcEngine_setLocalRenderMode_cfb201b impl call', async () => { + test('RtcEngine_writeLog_62889f6 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - renderMode: 'test', - mirrorMode: 'test', + level: 'test', + fmt: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_setLocalRenderMode_cfb201b', + 'RtcEngine_writeLog_62889f6', JSON.stringify(nParam), 0, '', @@ -7385,8 +7516,7 @@ describe('IRtcEngine', () => { ); await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setLocalRenderMode_cfb201b + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl?.writeLog_62889f6 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -7395,17 +7525,210 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_setLocalRenderMode_cfb201b parameter', async () => { + let nParam = { + renderMode: undefined, + mirrorMode: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setLocalRenderMode_cfb201b', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('renderMode is undefined'); + } + //@ts-ignore + nParam.renderMode = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setLocalRenderMode_cfb201b', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('mirrorMode is undefined'); + } + //@ts-ignore + nParam.mirrorMode = 'test'; + }); + + test('RtcEngine_setLocalRenderMode_cfb201b impl call', async () => { + jest + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl, + 'setLocalRenderMode_cfb201b' + ) + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + renderMode: 'test', + mirrorMode: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setLocalRenderMode_cfb201b', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setLocalRenderMode_cfb201b + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setLocalRenderMode_cfb201b + ).toBeCalledWith('test', 'test'); + }); + + test('RtcEngine_setRemoteRenderMode_6771ce0 parameter', async () => { + let nParam = { + uid: undefined, + renderMode: undefined, + mirrorMode: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setRemoteRenderMode_6771ce0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('uid is undefined'); + } + //@ts-ignore + nParam.uid = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setRemoteRenderMode_6771ce0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('renderMode is undefined'); + } + //@ts-ignore + nParam.renderMode = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setRemoteRenderMode_6771ce0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('mirrorMode is undefined'); + } + //@ts-ignore + nParam.mirrorMode = 'test'; + }); + test('RtcEngine_setRemoteRenderMode_6771ce0 impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl, + 'setRemoteRenderMode_6771ce0' + ) + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + uid: 'test', + renderMode: 'test', + mirrorMode: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setRemoteRenderMode_6771ce0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setRemoteRenderMode_6771ce0 + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setRemoteRenderMode_6771ce0 + ).toBeCalledWith('test', 'test', 'test'); + }); + + test('RtcEngine_setLocalRenderMode_bedb5ae parameter', async () => { + let nParam = { + renderMode: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setLocalRenderMode_bedb5ae', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('renderMode is undefined'); + } + //@ts-ignore + nParam.renderMode = 'test'; + }); + + test('RtcEngine_setLocalRenderMode_bedb5ae impl call', async () => { + jest + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl, + 'setLocalRenderMode_bedb5ae' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - uid: 'test', renderMode: 'test', - mirrorMode: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_setRemoteRenderMode_6771ce0', + 'RtcEngine_setLocalRenderMode_bedb5ae', JSON.stringify(nParam), 0, '', @@ -7416,24 +7739,50 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setRemoteRenderMode_6771ce0 - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .setLocalRenderMode_bedb5ae + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setLocalRenderMode_bedb5ae + ).toBeCalledWith('test'); }); - test('RtcEngine_setLocalRenderMode_bedb5ae impl call', async () => { + test('RtcEngine_setLocalVideoMirrorMode_b8a6c69 parameter', async () => { + let nParam = { + mirrorMode: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngine_setLocalVideoMirrorMode_b8a6c69', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('mirrorMode is undefined'); + } + //@ts-ignore + nParam.mirrorMode = 'test'; + }); + + test('RtcEngine_setLocalVideoMirrorMode_b8a6c69 impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl, + 'setLocalVideoMirrorMode_b8a6c69' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - renderMode: 'test', + mirrorMode: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_setLocalRenderMode_bedb5ae', + 'RtcEngine_setLocalVideoMirrorMode_b8a6c69', JSON.stringify(nParam), 0, '', @@ -7444,24 +7793,23 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setLocalRenderMode_bedb5ae - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .setLocalVideoMirrorMode_b8a6c69 + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + .setLocalVideoMirrorMode_b8a6c69 + ).toBeCalledWith('test'); }); - test('RtcEngine_setLocalVideoMirrorMode_b8a6c69 impl call', async () => { + test('RtcEngine_enableDualStreamMode_5039d15 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - mirrorMode: 'test', + enabled: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_setLocalVideoMirrorMode_b8a6c69', + 'RtcEngine_enableDualStreamMode_5039d15', JSON.stringify(nParam), 0, '', @@ -7472,7 +7820,7 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setLocalVideoMirrorMode_b8a6c69 + ?.enableDualStreamMode_5039d15 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -7481,15 +7829,16 @@ describe('IRtcEngine', () => { ); }); - test('RtcEngine_enableDualStreamMode_5039d15 impl call', async () => { + test('RtcEngine_enableDualStreamMode_9822d8a impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { enabled: 'test', + streamConfig: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_enableDualStreamMode_5039d15', + 'RtcEngine_enableDualStreamMode_9822d8a', JSON.stringify(nParam), 0, '', @@ -7500,7 +7849,7 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.enableDualStreamMode_5039d15 + ?.enableDualStreamMode_9822d8a ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -7509,16 +7858,15 @@ describe('IRtcEngine', () => { ); }); - test('RtcEngine_enableDualStreamMode_9822d8a impl call', async () => { + test('RtcEngine_setDualStreamMode_3a7f662 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - enabled: 'test', - streamConfig: 'test', + mode: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_enableDualStreamMode_9822d8a', + 'RtcEngine_setDualStreamMode_3a7f662', JSON.stringify(nParam), 0, '', @@ -7529,7 +7877,7 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.enableDualStreamMode_9822d8a + ?.setDualStreamMode_3a7f662 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -7538,15 +7886,15 @@ describe('IRtcEngine', () => { ); }); - test('RtcEngine_setDualStreamMode_3a7f662 impl call', async () => { + test('RtcEngine_setSimulcastConfig_3dcdfd7 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { - mode: 'test', + simulcastConfig: 'test', }; let apiParam = new IrisCore.EventParam( - 'RtcEngine_setDualStreamMode_3a7f662', + 'RtcEngine_setSimulcastConfig_3dcdfd7', JSON.stringify(nParam), 0, '', @@ -7557,7 +7905,7 @@ describe('IRtcEngine', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setDualStreamMode_3a7f662 + ?.setSimulcastConfig_3dcdfd7 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -9129,6 +9477,34 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_setCameraStabilizationMode_701b981 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + mode: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_setCameraStabilizationMode_701b981', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.setCameraStabilizationMode_701b981 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_setDefaultAudioRouteToSpeakerphone_5039d15 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -9239,6 +9615,60 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_isCameraCenterStageSupported impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = {}; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_isCameraCenterStageSupported', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.isCameraCenterStageSupported + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + + test('RtcEngine_enableCameraCenterStage_5039d15 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + enabled: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_enableCameraCenterStage_5039d15', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.enableCameraCenterStage_5039d15 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_getScreenCaptureSources_f3e02cb impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -9519,6 +9949,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('captureParams is undefined'); } + //@ts-ignore nParam.captureParams = 'test'; }); @@ -9606,6 +10037,35 @@ describe('IRtcEngine', () => { ); }); + test('RtcEngine_queryCameraFocalLengthCapability_2dee6af impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + focalLengthInfos: 'test', + size: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_queryCameraFocalLengthCapability_2dee6af', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.queryCameraFocalLengthCapability_2dee6af + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngine_setScreenCaptureScenario_13de7b4 impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -10103,6 +10563,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('sourceType is undefined'); } + //@ts-ignore nParam.sourceType = 'test'; }); @@ -10181,6 +10642,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('eventHandler is undefined'); } + //@ts-ignore nParam.eventHandler = 'test'; }); @@ -10234,6 +10696,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('eventHandler is undefined'); } + //@ts-ignore nParam.eventHandler = 'test'; }); @@ -10324,62 +10787,6 @@ describe('IRtcEngine', () => { ); }); - test('RtcEngine_setEncryptionMode_3a2037f impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = { - encryptionMode: 'test', - }; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_setEncryptionMode_3a2037f', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setEncryptionMode_3a2037f - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - - test('RtcEngine_setEncryptionSecret_3a2037f impl call', async () => { - jest - .spyOn(irisRtcEngine, 'returnResult') - .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = { - secret: 'test', - }; - let apiParam = new IrisCore.EventParam( - 'RtcEngine_setEncryptionSecret_3a2037f', - JSON.stringify(nParam), - 0, - '', - ['test'], - [], - 1 - ); - await IrisCore.callIrisApi(apiEnginePtr, apiParam); - expect( - irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl - ?.setEncryptionSecret_3a2037f - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); - }); - test('RtcEngine_enableEncryption_421c27b impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -10458,6 +10865,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('config is undefined'); } + //@ts-ignore nParam.config = 'test'; }); @@ -10940,6 +11348,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('token is undefined'); } + //@ts-ignore nParam.token = 'test'; try { await IrisCore.callIrisApi( @@ -10957,6 +11366,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('channelId is undefined'); } + //@ts-ignore nParam.channelId = 'test'; try { await IrisCore.callIrisApi( @@ -10974,6 +11384,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('userAccount is undefined'); } + //@ts-ignore nParam.userAccount = 'test'; }); @@ -11032,6 +11443,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('token is undefined'); } + //@ts-ignore nParam.token = 'test'; try { await IrisCore.callIrisApi( @@ -11049,6 +11461,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('channelId is undefined'); } + //@ts-ignore nParam.channelId = 'test'; try { await IrisCore.callIrisApi( @@ -11066,6 +11479,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('userAccount is undefined'); } + //@ts-ignore nParam.userAccount = 'test'; try { await IrisCore.callIrisApi( @@ -11083,6 +11497,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -11171,6 +11586,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('userAccount is undefined'); } + //@ts-ignore nParam.userAccount = 'test'; }); @@ -11202,7 +11618,7 @@ describe('IRtcEngine', () => { expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl .getUserInfoByUserAccount_c6a8f08 - ).toBeCalledWith('test', 'test'); + ).toBeCalledWith('test'); }); test('RtcEngine_getUserInfoByUid_6b7aee8 parameter', async () => { @@ -11226,6 +11642,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; }); @@ -11257,7 +11674,7 @@ describe('IRtcEngine', () => { expect( irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl .getUserInfoByUid_6b7aee8 - ).toBeCalledWith('test', 'test'); + ).toBeCalledWith('test'); }); test('RtcEngine_startOrUpdateChannelMediaRelay_e68f0a4 impl call', async () => { @@ -11947,6 +12364,7 @@ describe('IRtcEngine', () => { } catch (e) { expect(e).toEqual('parameters is undefined'); } + //@ts-ignore nParam.parameters = 'test'; }); @@ -12084,4 +12502,33 @@ describe('IRtcEngine', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); + + test('RtcEngine_sendAudioMetadata_878f309 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + metadata: 'test', + length: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngine_sendAudioMetadata_878f309', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngine')._impl + ?.sendAudioMetadata_878f309 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); }); diff --git a/packages/rtc/test/binding/IAgoraRtcEngineExDispatch.test.ts b/packages/rtc/test/binding/IAgoraRtcEngineExDispatch.test.ts index 1951b5f0..9bc93bc5 100644 --- a/packages/rtc/test/binding/IAgoraRtcEngineExDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraRtcEngineExDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -62,6 +62,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('token is undefined'); } + //@ts-ignore nParam.token = 'test'; try { await IrisCore.callIrisApi( @@ -79,6 +80,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; try { await IrisCore.callIrisApi( @@ -96,6 +98,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; }); @@ -151,6 +154,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -184,9 +188,55 @@ describe('IRtcEngineEx', () => { ).toBeCalledWith('test'); }); + test('RtcEngineEx_leaveChannelEx_b03ee9a parameter', async () => { + let nParam = { + connection: undefined, + options: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_leaveChannelEx_b03ee9a', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('connection is undefined'); + } + //@ts-ignore + nParam.connection = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_leaveChannelEx_b03ee9a', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('options is undefined'); + } + //@ts-ignore + nParam.options = 'test'; + }); + test('RtcEngineEx_leaveChannelEx_b03ee9a impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl, + 'leaveChannelEx_b03ee9a' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { connection: 'test', @@ -204,13 +254,12 @@ describe('IRtcEngineEx', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl - ?.leaveChannelEx_b03ee9a - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .leaveChannelEx_b03ee9a + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl + .leaveChannelEx_b03ee9a + ).toBeCalledWith('test', 'test'); }); test('RtcEngineEx_updateChannelMediaOptionsEx_457bb35 parameter', async () => { @@ -234,6 +283,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('options is undefined'); } + //@ts-ignore nParam.options = 'test'; try { await IrisCore.callIrisApi( @@ -251,6 +301,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -335,6 +386,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('canvas is undefined'); } + //@ts-ignore nParam.canvas = 'test'; try { await IrisCore.callIrisApi( @@ -352,6 +404,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -408,6 +461,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; try { await IrisCore.callIrisApi( @@ -425,6 +479,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -442,6 +497,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -499,6 +555,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('uid is undefined'); } + //@ts-ignore nParam.uid = 'test'; try { await IrisCore.callIrisApi( @@ -516,6 +573,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -533,6 +591,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -619,6 +678,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -636,6 +696,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -691,6 +752,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -708,6 +770,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -763,6 +826,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -780,6 +844,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -835,6 +900,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('mute is undefined'); } + //@ts-ignore nParam.mute = 'test'; try { await IrisCore.callIrisApi( @@ -852,6 +918,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -1097,9 +1164,93 @@ describe('IRtcEngineEx', () => { ); }); + test('RtcEngineEx_setRemoteRenderModeEx_a72fe4e parameter', async () => { + let nParam = { + uid: undefined, + renderMode: undefined, + mirrorMode: undefined, + connection: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('uid is undefined'); + } + //@ts-ignore + nParam.uid = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('renderMode is undefined'); + } + //@ts-ignore + nParam.renderMode = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('mirrorMode is undefined'); + } + //@ts-ignore + nParam.mirrorMode = 'test'; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('connection is undefined'); + } + //@ts-ignore + nParam.connection = 'test'; + }); + test('RtcEngineEx_setRemoteRenderModeEx_a72fe4e impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl, + 'setRemoteRenderModeEx_a72fe4e' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { uid: 'test', @@ -1119,13 +1270,12 @@ describe('IRtcEngineEx', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl - ?.setRemoteRenderModeEx_a72fe4e - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .setRemoteRenderModeEx_a72fe4e + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl + .setRemoteRenderModeEx_a72fe4e + ).toBeCalledWith('test', 'test', 'test', 'test'); }); test('RtcEngineEx_enableLoopbackRecordingEx_4f41542 impl call', async () => { @@ -1355,6 +1505,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('config is undefined'); } + //@ts-ignore nParam.config = 'test'; try { await IrisCore.callIrisApi( @@ -1372,6 +1523,7 @@ describe('IRtcEngineEx', () => { } catch (e) { expect(e).toEqual('connection is undefined'); } + //@ts-ignore nParam.connection = 'test'; }); @@ -1934,6 +2086,35 @@ describe('IRtcEngineEx', () => { ); }); + test('RtcEngineEx_setSimulcastConfigEx_bd8d7d0 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + simulcastConfig: 'test', + connection: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngineEx_setSimulcastConfigEx_bd8d7d0', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl + ?.setSimulcastConfigEx_bd8d7d0 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + test('RtcEngineEx_setHighPriorityUserListEx_8736b5c impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') @@ -2081,4 +2262,63 @@ describe('IRtcEngineEx', () => { -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED ); }); + + test('RtcEngineEx_getCallIdEx_b13f7c4 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + callId: 'test', + connection: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngineEx_getCallIdEx_b13f7c4', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl + ?.getCallIdEx_b13f7c4 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); + + test('RtcEngineEx_sendAudioMetadataEx_e2bf1c4 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = { + connection: 'test', + metadata: 'test', + length: 'test', + }; + let apiParam = new IrisCore.EventParam( + 'RtcEngineEx_sendAudioMetadataEx_e2bf1c4', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('RtcEngineEx')._impl + ?.sendAudioMetadataEx_e2bf1c4 + ).toBeUndefined(); + expect(irisRtcEngine.returnResult).toBeCalledTimes(1); + expect(irisRtcEngine.returnResult).toBeCalledWith( + false, + -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED + ); + }); }); diff --git a/packages/rtc/test/binding/IAgoraSpatialAudioDispatch.test.ts b/packages/rtc/test/binding/IAgoraSpatialAudioDispatch.test.ts index 9d5ffa55..22f29803 100644 --- a/packages/rtc/test/binding/IAgoraSpatialAudioDispatch.test.ts +++ b/packages/rtc/test/binding/IAgoraSpatialAudioDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; diff --git a/packages/rtc/test/binding/IAudioDeviceManagerDispatch.test.ts b/packages/rtc/test/binding/IAudioDeviceManagerDispatch.test.ts index 02cef3d3..da7bede6 100644 --- a/packages/rtc/test/binding/IAudioDeviceManagerDispatch.test.ts +++ b/packages/rtc/test/binding/IAudioDeviceManagerDispatch.test.ts @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -42,7 +42,10 @@ afterEach(() => { describe('IAudioDeviceManager', () => { test('AudioDeviceManager_enumeratePlaybackDevices impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'enumeratePlaybackDevices' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = {}; let apiParam = new IrisCore.EventParam( @@ -57,18 +60,20 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.enumeratePlaybackDevices - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .enumeratePlaybackDevices + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .enumeratePlaybackDevices + ).toBeCalledWith(); }); test('AudioDeviceManager_enumerateRecordingDevices impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'enumerateRecordingDevices' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = {}; let apiParam = new IrisCore.EventParam( @@ -83,18 +88,44 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.enumerateRecordingDevices - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .enumerateRecordingDevices + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .enumerateRecordingDevices + ).toBeCalledWith(); + }); + + test('AudioDeviceManager_setPlaybackDevice_4ad5f6e parameter', async () => { + let nParam = { + deviceId: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'AudioDeviceManager_setPlaybackDevice_4ad5f6e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('deviceId is undefined'); + } + //@ts-ignore + nParam.deviceId = 'test'; }); test('AudioDeviceManager_setPlaybackDevice_4ad5f6e impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'setPlaybackDevice_4ad5f6e' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { deviceId: 'test', @@ -111,18 +142,26 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.setPlaybackDevice_4ad5f6e - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .setPlaybackDevice_4ad5f6e + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .setPlaybackDevice_4ad5f6e + ).toBeCalledWith('test'); + }); + + test('AudioDeviceManager_getPlaybackDevice_73b9872 parameter', async () => { + let nParam = { + deviceId: undefined, + }; }); test('AudioDeviceManager_getPlaybackDevice_73b9872 impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'getPlaybackDevice_73b9872' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { deviceId: 'test', @@ -139,7 +178,32 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.getPlaybackDevice_73b9872 + .getPlaybackDevice_73b9872 + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .getPlaybackDevice_73b9872 + ).toBeCalledWith(); + }); + + test('AudioDeviceManager_getPlaybackDeviceInfo_5540658 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = {}; + let apiParam = new IrisCore.EventParam( + 'AudioDeviceManager_getPlaybackDeviceInfo_5540658', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + ?.getPlaybackDeviceInfo_5540658 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -148,13 +212,15 @@ describe('IAudioDeviceManager', () => { ); }); - test('AudioDeviceManager_getPlaybackDeviceInfo_5540658 impl call', async () => { + test('AudioDeviceManager_getPlaybackDeviceInfo_ed3a96d impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = {}; + let nParam = { + deviceTypeName: 'test', + }; let apiParam = new IrisCore.EventParam( - 'AudioDeviceManager_getPlaybackDeviceInfo_5540658', + 'AudioDeviceManager_getPlaybackDeviceInfo_ed3a96d', JSON.stringify(nParam), 0, '', @@ -165,7 +231,7 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.getPlaybackDeviceInfo_5540658 + ?.getPlaybackDeviceInfo_ed3a96d ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -230,9 +296,36 @@ describe('IAudioDeviceManager', () => { ); }); + test('AudioDeviceManager_setRecordingDevice_4ad5f6e parameter', async () => { + let nParam = { + deviceId: undefined, + }; + try { + await IrisCore.callIrisApi( + apiEnginePtr, + new IrisCore.EventParam( + 'AudioDeviceManager_setRecordingDevice_4ad5f6e', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ) + ); + } catch (e) { + expect(e).toEqual('deviceId is undefined'); + } + //@ts-ignore + nParam.deviceId = 'test'; + }); + test('AudioDeviceManager_setRecordingDevice_4ad5f6e impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'setRecordingDevice_4ad5f6e' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { deviceId: 'test', @@ -249,18 +342,26 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.setRecordingDevice_4ad5f6e - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + .setRecordingDevice_4ad5f6e + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .setRecordingDevice_4ad5f6e + ).toBeCalledWith('test'); + }); + + test('AudioDeviceManager_getRecordingDevice_73b9872 parameter', async () => { + let nParam = { + deviceId: undefined, + }; }); test('AudioDeviceManager_getRecordingDevice_73b9872 impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'getRecordingDevice_73b9872' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = { deviceId: 'test', @@ -277,7 +378,32 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.getRecordingDevice_73b9872 + .getRecordingDevice_73b9872 + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + .getRecordingDevice_73b9872 + ).toBeCalledWith(); + }); + + test('AudioDeviceManager_getRecordingDeviceInfo_5540658 impl call', async () => { + jest + .spyOn(irisRtcEngine, 'returnResult') + .mockResolvedValue(new CallIrisApiResult(0, '')); + let nParam = {}; + let apiParam = new IrisCore.EventParam( + 'AudioDeviceManager_getRecordingDeviceInfo_5540658', + JSON.stringify(nParam), + 0, + '', + ['test'], + [], + 1 + ); + await IrisCore.callIrisApi(apiEnginePtr, apiParam); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl + ?.getRecordingDeviceInfo_5540658 ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -286,13 +412,15 @@ describe('IAudioDeviceManager', () => { ); }); - test('AudioDeviceManager_getRecordingDeviceInfo_5540658 impl call', async () => { + test('AudioDeviceManager_getRecordingDeviceInfo_ed3a96d impl call', async () => { jest .spyOn(irisRtcEngine, 'returnResult') .mockResolvedValue(new CallIrisApiResult(0, '')); - let nParam = {}; + let nParam = { + deviceTypeName: 'test', + }; let apiParam = new IrisCore.EventParam( - 'AudioDeviceManager_getRecordingDeviceInfo_5540658', + 'AudioDeviceManager_getRecordingDeviceInfo_ed3a96d', JSON.stringify(nParam), 0, '', @@ -303,7 +431,7 @@ describe('IAudioDeviceManager', () => { await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl - ?.getRecordingDeviceInfo_5540658 + ?.getRecordingDeviceInfo_ed3a96d ).toBeUndefined(); expect(irisRtcEngine.returnResult).toBeCalledTimes(1); expect(irisRtcEngine.returnResult).toBeCalledWith( @@ -784,7 +912,10 @@ describe('IAudioDeviceManager', () => { test('AudioDeviceManager_release impl call', async () => { jest - .spyOn(irisRtcEngine, 'returnResult') + .spyOn( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl, + 'release' + ) .mockResolvedValue(new CallIrisApiResult(0, '')); let nParam = {}; let apiParam = new IrisCore.EventParam( @@ -798,12 +929,10 @@ describe('IAudioDeviceManager', () => { ); await IrisCore.callIrisApi(apiEnginePtr, apiParam); expect( - irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl?.release - ).toBeUndefined(); - expect(irisRtcEngine.returnResult).toBeCalledTimes(1); - expect(irisRtcEngine.returnResult).toBeCalledWith( - false, - -NATIVE_RTC.ERROR_CODE_TYPE.ERR_NOT_SUPPORTED - ); + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl.release + ).toBeCalledTimes(1); + expect( + irisRtcEngine.implDispatchesMap.get('AudioDeviceManager')._impl.release + ).toBeCalledWith(); }); }); diff --git a/packages/rtc/test/impl/IAgoraMediaEngineImpl.test.ts b/packages/rtc/test/impl/IAgoraMediaEngineImpl.test.ts index 79e1ec10..ceb59ff4 100644 --- a/packages/rtc/test/impl/IAgoraMediaEngineImpl.test.ts +++ b/packages/rtc/test/impl/IAgoraMediaEngineImpl.test.ts @@ -136,7 +136,7 @@ describe('IAgoraRtcEngineImpl', () => { expect( irisRtcEngine.irisClientManager.getLocalVideoTrackPackageBySourceType( NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CUSTOM - )[0].track.isPlaying + )[0].track!.isPlaying ).toBeFalsy(); await setupLocalVideo(apiEnginePtr, { canvas: { @@ -148,7 +148,7 @@ describe('IAgoraRtcEngineImpl', () => { expect( irisRtcEngine.irisClientManager.getLocalVideoTrackPackageBySourceType( NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CUSTOM - )[0].track.isPlaying + )[0].track!.isPlaying ).toBeTruthy(); }); }); diff --git a/packages/rtc/test/impl/IAgoraRtcEngineImpl.test.ts b/packages/rtc/test/impl/IAgoraRtcEngineImpl.test.ts index f4c24194..55680517 100644 --- a/packages/rtc/test/impl/IAgoraRtcEngineImpl.test.ts +++ b/packages/rtc/test/impl/IAgoraRtcEngineImpl.test.ts @@ -3,12 +3,7 @@ import { FakeAgoraRTCWrapper, } from '@agoraio-extensions/agora-rtc-sdk-ng-fake'; import * as NATIVE_RTC from '@iris/native-rtc'; -import { - AREAS, - IAgoraRTC, - ILocalAudioTrack, - ILocalTrack, -} from 'agora-rtc-sdk-ng'; +import { AREAS, IAgoraRTC, ILocalTrack } from 'agora-rtc-sdk-ng'; import { IrisApiEngine, IrisCore } from 'iris-web-core'; @@ -16,7 +11,8 @@ import { IrisWebRtc } from '../../src/IrisRtcApi'; import { IrisAudioSourceType } from '../../src/base/BaseType'; import { BufferSourceAudioTrackPackage } from '../../src/engine/IrisClientManager'; -import { AgoraConsole } from '../../src/util'; +import { NotifyType } from '../../src/engine/IrisClientObserver'; +import { AgoraConsole, AgoraTranslate } from '../../src/util'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; @@ -52,7 +48,7 @@ beforeEach(async () => { jest.spyOn(AgoraRTCMock, 'setArea'); jest.spyOn(AgoraRTCMock, 'setLogLevel'); jest.spyOn(AgoraRTCMock, 'checkSystemRequirements').mockReturnValue(true); - jest.spyOn(irisRtcEngine.implHelper, 'createAudioTrack'); + jest.spyOn(irisRtcEngine.implHelper, 'createMicrophoneAudioTrack'); jest.spyOn(irisRtcEngine, 'returnResult'); let nParam = { @@ -79,13 +75,6 @@ describe('IAgoraRtcEngineImpl', () => { expect(AgoraRTCMock.setLogLevel).toBeCalledTimes(1); expect(AgoraRTCMock.setLogLevel).toBeCalledWith(1); expect(AgoraRTCMock.checkSystemRequirements).toBeCalledTimes(1); - expect(irisRtcEngine.implHelper.createAudioTrack).toBeCalledTimes(1); - expect(irisRtcEngine.implHelper.createAudioTrack).toBeCalledWith( - IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary - ); - expect(irisRtcEngine.irisClientManager.localAudioTrackPackages.length).toBe( - 1 - ); //check if already initialized let nParam = { context: 'test', @@ -98,19 +87,16 @@ describe('IAgoraRtcEngineImpl', () => { }); test('release', async () => { jest.spyOn(irisRtcEngine.irisClientManager, 'release'); - expect( - irisRtcEngine.irisClientManager.irisClientList.length === 1 - ).toBeTruthy(); - expect(irisRtcEngine.irisClientManager.localAudioTrackPackages.length).toBe( - 1 - ); await callIris(apiEnginePtr, 'RtcEngine_release', null); expect(irisRtcEngine.irisClientManager.release).toBeCalledTimes(1); expect(irisRtcEngine.irisClientManager.localAudioTrackPackages.length).toBe( 0 ); + expect(irisRtcEngine.irisClientManager.localVideoTrackPackages.length).toBe( + 0 + ); expect(irisRtcEngine.irisIntervalList.length).toBe(0); - expect(irisRtcEngine.irisElement.containerElement).toBeNull(); + expect(irisRtcEngine.irisElement.containerElement).toBeUndefined(); expect( irisRtcEngine.irisClientManager.irisClientList.length === 0 ).toBeTruthy(); @@ -164,36 +150,32 @@ describe('IAgoraRtcEngineImpl', () => { ).toBeCalledWith('RtcEngine', 'test'); }); test('enableAudio', async () => { + jest.spyOn(rtcEngineImpl, 'enableLocalAudio_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteLocalAudioStream_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteAllRemoteAudioStreams_5039d15'); + await joinChannel(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); - expect(irisRtcEngine.globalState.enabledAudio).toBe(true); - expect( - irisRtcEngine.irisClientManager.localAudioTrackPackages[0].track.isPlaying - ).toBe(true); - for (let irisClient of irisRtcEngine.irisClientManager.irisClientList) { - expect(irisClient.irisClientState.autoSubscribeAudio).toBeTruthy(); - } - expect( - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers[0].audioTrack.isPlaying - ).toBe(true); + expect(rtcEngineImpl.enableLocalAudio_5039d15).toBeCalledWith(true); + expect(rtcEngineImpl.muteLocalAudioStream_5039d15).toBeCalledWith(false); + expect(rtcEngineImpl.muteAllRemoteAudioStreams_5039d15).toBeCalledWith( + false + ); }); test('disableAudio', async () => { + jest.spyOn(rtcEngineImpl, 'enableLocalAudio_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteLocalAudioStream_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteAllRemoteAudioStreams_5039d15'); + await joinChannel(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_disableAudio', null); - expect(irisRtcEngine.globalState.enabledAudio).toBe(false); - expect( - irisRtcEngine.irisClientManager.localAudioTrackPackages[0].track.isPlaying - ).toBe(false); - for (let irisClient of irisRtcEngine.irisClientManager.irisClientList) { - expect(irisClient.irisClientState.autoSubscribeAudio).toBeFalsy(); - } - expect( - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers[0].audioTrack - ).toBeUndefined(); + expect(rtcEngineImpl.enableLocalAudio_5039d15).toBeCalledWith(false); + expect(rtcEngineImpl.muteLocalAudioStream_5039d15).toBeCalledWith(true); + expect(rtcEngineImpl.muteAllRemoteAudioStreams_5039d15).toBeCalledWith( + true + ); }); test('setClientRole_3426fa6', async () => { @@ -292,10 +274,10 @@ describe('IAgoraRtcEngineImpl', () => { let irisClient = irisRtcEngine.irisClientManager.getIrisClient(); expect(irisClient.irisClientState.token).toBe(null); - expect(irisClient.connection.localUid).toBe(irisClient.agoraRTCClient.uid); - expect(irisClient.agoraRTCClient.channelName).toBe(FAKE_CHANNEL_NAME); + expect(irisClient.connection.localUid).toBe(irisClient.agoraRTCClient!.uid); + expect(irisClient.agoraRTCClient!.channelName).toBe(FAKE_CHANNEL_NAME); expect(irisClient.connection.channelId).toBe( - irisClient.agoraRTCClient.channelName + irisClient.agoraRTCClient!.channelName ); expect( irisRtcEngine.rtcEngineEventHandler.onJoinChannelSuccess_263e4cd @@ -306,14 +288,13 @@ describe('IAgoraRtcEngineImpl', () => { await joinChannel(apiEnginePtr, null); let agoraRTCClient = irisRtcEngine.irisClientManager.getIrisClient() .agoraRTCClient; - jest.spyOn(agoraRTCClient, 'renewToken'); - jest.spyOn(agoraRTCClient, 'setClientRole'); + jest.spyOn(agoraRTCClient!, 'renewToken'); + jest.spyOn(agoraRTCClient!, 'setClientRole'); let param = { options: { + clientRoleType: NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE, publishCameraTrack: true, publishMicrophoneTrack: true, - publishScreenCaptureVideo: true, - publishScreenCaptureAudio: true, publishScreenTrack: true, publishCustomVideoTrack: true, token: '123', @@ -324,8 +305,8 @@ describe('IAgoraRtcEngineImpl', () => { 'RtcEngine_updateChannelMediaOptions_7bfc1d7', param ); - expect(agoraRTCClient.renewToken).toBeCalledTimes(1); - expect(agoraRTCClient.setClientRole).toBeCalledTimes(1); + expect(agoraRTCClient!.renewToken).toBeCalledTimes(1); + expect(agoraRTCClient!.setClientRole).toBeCalledTimes(1); }); test('enableAudioVolumeIndication_39794a0', async () => { @@ -381,25 +362,27 @@ describe('IAgoraRtcEngineImpl', () => { }, }; jest.spyOn(rtcEngineImpl, 'stopAllEffects'); - jest.spyOn(irisRtcEngine.irisClientManager.getIrisClient(), 'release'); + let irisClient = irisRtcEngine.irisClientManager.getIrisClient(); + jest.spyOn(irisClient, 'release'); await joinChannel(apiEnginePtr, null); - let agoraRTCClient = irisRtcEngine.irisClientManager.getIrisClient() - .agoraRTCClient; + let agoraRTCClient = irisClient.agoraRTCClient; jest.spyOn(irisRtcEngine.rtcEngineEventHandler, 'onUserOffline_0a32aac'); jest.spyOn(irisRtcEngine.rtcEngineEventHandler, 'onLeaveChannel_c8e730d'); await callIris(apiEnginePtr, 'RtcEngine_leaveChannel_2c0e3aa', param); expect(rtcEngineImpl.stopAllEffects).toBeCalledTimes( - agoraRTCClient.remoteUsers.length + agoraRTCClient!.remoteUsers.length ); expect( irisRtcEngine.rtcEngineEventHandler.onUserOffline_0a32aac - ).toBeCalledTimes(agoraRTCClient.remoteUsers.length); + ).toBeCalledTimes(agoraRTCClient!.remoteUsers.length); expect( irisRtcEngine.rtcEngineEventHandler.onLeaveChannel_c8e730d ).toBeCalledTimes(1); - expect( - irisRtcEngine.irisClientManager.getIrisClient().release - ).toBeCalledTimes(1); + expect(irisClient.release).toBeCalledTimes(1); + expect(irisRtcEngine.irisClientManager.irisClientList.length).toBe(1); + expect(irisClient.videoTrackPackage).toBeUndefined(); + expect(irisClient.agoraRTCClient).toBeUndefined(); + expect(irisClient.audioTrackPackages.length).toBe(0); }); test('enableLocalAudio_5039d15', async () => { @@ -419,44 +402,32 @@ describe('IAgoraRtcEngineImpl', () => { }); test('enableVideo', async () => { + jest.spyOn(rtcEngineImpl, 'enableLocalVideo_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteLocalVideoStream_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteAllRemoteVideoStreams_5039d15'); + await joinChannel(apiEnginePtr, null); - await setupLocalVideo(apiEnginePtr, null); - await setupRemoteVideoEx(apiEnginePtr, null); - await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); - await callIris(apiEnginePtr, 'RtcEngine_startPreview', null); - expect(irisRtcEngine.globalState.enabledVideo).toBeTruthy(); - expect(irisRtcEngine.globalState.autoSubscribeVideo).toBeTruthy(); - expect( - irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track.isPlaying - ).toBe(true); - for (let irisClient of irisRtcEngine.irisClientManager.irisClientList) { - expect(irisClient.irisClientState.autoSubscribeVideo).toBeTruthy(); - } - expect( - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers[0].videoTrack.isPlaying - ).toBe(true); + await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); + expect(rtcEngineImpl.enableLocalVideo_5039d15).toBeCalledWith(true); + expect(rtcEngineImpl.muteLocalVideoStream_5039d15).toBeCalledWith(false); + expect(rtcEngineImpl.muteAllRemoteVideoStreams_5039d15).toBeCalledWith( + false + ); }); test('disableVideo', async () => { + jest.spyOn(rtcEngineImpl, 'enableLocalVideo_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteLocalVideoStream_5039d15'); + jest.spyOn(rtcEngineImpl, 'muteAllRemoteVideoStreams_5039d15'); + await joinChannel(apiEnginePtr, null); - await setupLocalVideo(apiEnginePtr, null); - await setupRemoteVideoEx(apiEnginePtr, null); - await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); - await callIris(apiEnginePtr, 'RtcEngine_startPreview', null); + await callIris(apiEnginePtr, 'RtcEngine_disableVideo', null); - expect(irisRtcEngine.globalState.enabledVideo).toBe(false); - expect(irisRtcEngine.globalState.autoSubscribeVideo).toBe(false); - expect( - irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track.isPlaying - ).toBe(false); - for (let irisClient of irisRtcEngine.irisClientManager.irisClientList) { - expect(irisClient.irisClientState.autoSubscribeVideo).toBeFalsy(); - } - expect( - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers[0].videoTrack - ).toBeUndefined(); + expect(rtcEngineImpl.enableLocalVideo_5039d15).toBeCalledWith(false); + expect(rtcEngineImpl.muteLocalVideoStream_5039d15).toBeCalledWith(true); + expect(rtcEngineImpl.muteAllRemoteVideoStreams_5039d15).toBeCalledWith( + true + ); }); test('startPreview', async () => { await joinChannel(apiEnginePtr, null); @@ -476,23 +447,24 @@ describe('IAgoraRtcEngineImpl', () => { irisRtcEngine.rtcEngineEventHandler, 'onLocalVideoStateChanged_a44228a' ); - jest.spyOn(AgoraConsole, 'error'); + jest.spyOn(AgoraConsole, 'warn'); await callIris(apiEnginePtr, 'RtcEngine_startPreview_4fd718e', param); - expect(AgoraConsole.error).toBeCalledWith( + expect(AgoraConsole.warn).toBeCalledWith( 'call enableVideo(true) before startPreview' ); jest.clearAllMocks(); await callIris(apiEnginePtr, 'RtcEngine_startPreview_4fd718e', { sourceType: 100, }); - expect(AgoraConsole.error).toBeCalledWith( + expect(AgoraConsole.warn).toBeCalledWith( 'call enableVideo(true) before startPreview' ); await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); await callIris(apiEnginePtr, 'RtcEngine_startPreview_4fd718e', param); expect( - irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track.isPlaying + irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track + ?.isPlaying ).toBe(true); expect( irisRtcEngine.irisClientManager.localVideoTrackPackages[0].isPreview @@ -531,7 +503,8 @@ describe('IAgoraRtcEngineImpl', () => { await callIris(apiEnginePtr, 'RtcEngine_startPreview', null); await callIris(apiEnginePtr, 'RtcEngine_stopPreview_4fd718e', param); expect( - irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track.isPlaying + irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track + ?.isPlaying ).toBe(false); expect( irisRtcEngine.irisClientManager.localVideoTrackPackages[0].isPreview @@ -594,7 +567,8 @@ describe('IAgoraRtcEngineImpl', () => { irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track ).not.toBeUndefined(); expect( - irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track.isPlaying + irisRtcEngine.irisClientManager.localVideoTrackPackages[0].track + ?.isPlaying ).toBeTruthy(); }); test('setLogLevel_f125d83', async () => { @@ -679,7 +653,6 @@ describe('IAgoraRtcEngineImpl', () => { NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_SCREEN_PRIMARY ).length ).toBe(0); - //由于initialize时已经创建了一个microphone track,所以这里是1 expect( irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( IrisAudioSourceType.kAudioSourceTypeScreenCapture @@ -718,11 +691,6 @@ describe('IAgoraRtcEngineImpl', () => { IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio ).length ).toBe(1); - expect( - (irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( - IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio - )[0] as BufferSourceAudioTrackPackage).needPublish - ).toBe(param.publish); expect( (irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( IrisAudioSourceType.kAudioSourceTypeBufferSourceAudio @@ -816,34 +784,37 @@ describe('IAgoraRtcEngineImpl', () => { expect(irisRtcEngine.globalState.channelProfile).toBe(param.profile); }); test('muteLocalAudioStream_5039d15', async () => { - jest.spyOn(rtcEngineImpl, 'muteLocalAudioStream_5039d15'); - await joinChannel(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); - let localAudioTrackPackage = irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( - IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary - ); - expect(localAudioTrackPackage.length).toBe(1); - expect(localAudioTrackPackage[0].track.isPlaying).toBe(true); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(false); - - await callIris(apiEnginePtr, 'RtcEngine_muteLocalAudioStream_5039d15', { - mute: true, - }); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(true); + await joinChannel(apiEnginePtr, null); + expect( + irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + ).length + ).toBe(1); + await callIris(apiEnginePtr, 'RtcEngine_leaveChannel'); + await callIris(apiEnginePtr, 'RtcEngine_disableAudio', null); - await callIris(apiEnginePtr, 'RtcEngine_muteLocalAudioStream_5039d15', { - mute: false, - }); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(false); + await joinChannel(apiEnginePtr, null); + expect( + irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + ).length + ).toBe(0); + await joinChannel(apiEnginePtr, null); + await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); + expect( + irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + ).length + ).toBe(1); }); test('muteAllRemoteAudioStreams_5039d15', async () => { jest.spyOn(rtcEngineImpl, 'muteAllRemoteAudioStreams_5039d15'); await joinChannel(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); - let remoteUsers = - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers; - expect(remoteUsers[0].audioTrack.isPlaying).toBe(true); + let remoteUsers = irisRtcEngine.irisClientManager.irisClientList[0] + ?.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].audioTrack?.isPlaying).toBe(true); await callIris( apiEnginePtr, @@ -866,10 +837,9 @@ describe('IAgoraRtcEngineImpl', () => { jest.spyOn(rtcEngineImpl, 'muteRemoteAudioStream_dbdc15a'); await joinChannel(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); - let remoteUsers = - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers; - expect(remoteUsers[0].audioTrack.isPlaying).toBe(true); + let remoteUsers = irisRtcEngine.irisClientManager.irisClientList[0] + ?.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].audioTrack?.isPlaying).toBe(true); await callIris(apiEnginePtr, 'RtcEngine_muteRemoteAudioStream_dbdc15a', { mute: true, @@ -892,28 +862,42 @@ describe('IAgoraRtcEngineImpl', () => { NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY ); expect(localVideoTrackPackage.length).toBe(1); - expect(localVideoTrackPackage[0].track.isPlaying).toBe(true); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(false); + + jest.spyOn( + irisRtcEngine.irisClientManager.irisClientObserver, + 'notifyLocal' + ); await callIris(apiEnginePtr, 'RtcEngine_muteLocalVideoStream_5039d15', { mute: true, }); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(true); + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toHaveBeenNthCalledWith( + 1, + NotifyType.UNPUBLISH_TRACK, + irisRtcEngine.irisClientManager.localVideoTrackPackages + ); await callIris(apiEnginePtr, 'RtcEngine_muteLocalVideoStream_5039d15', { mute: false, }); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(false); + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toHaveBeenNthCalledWith( + 2, + NotifyType.PUBLISH_TRACK, + irisRtcEngine.irisClientManager.localVideoTrackPackages + ); }); test('muteAllRemoteVideoStreams_5039d15', async () => { jest.spyOn(rtcEngineImpl, 'muteAllRemoteVideoStreams_5039d15'); await joinChannel(apiEnginePtr, null); await setupRemoteVideoEx(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); - let remoteUsers = - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers; - expect(remoteUsers[0].videoTrack.isPlaying).toBe(true); + let remoteUsers = irisRtcEngine.irisClientManager.irisClientList[0] + ?.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].videoTrack?.isPlaying).toBe(true); await callIris( apiEnginePtr, @@ -937,10 +921,9 @@ describe('IAgoraRtcEngineImpl', () => { await joinChannel(apiEnginePtr, null); await setupRemoteVideoEx(apiEnginePtr, null); await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); - let remoteUsers = - irisRtcEngine.irisClientManager.irisClientList[0]?.agoraRTCClient - .remoteUsers; - expect(remoteUsers[0].videoTrack.isPlaying).toBe(true); + let remoteUsers = irisRtcEngine.irisClientManager.irisClientList[0] + ?.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].videoTrack?.isPlaying).toBe(true); await callIris(apiEnginePtr, 'RtcEngine_muteRemoteVideoStream_dbdc15a', { mute: true, @@ -1037,9 +1020,9 @@ describe('IAgoraRtcEngineImpl', () => { let irisClient = irisRtcEngine.irisClientManager.getIrisClient(); expect(irisClient.irisClientState.token).toBe(null); - expect(irisClient.agoraRTCClient.channelName).toBe(FAKE_CHANNEL_NAME); + expect(irisClient.agoraRTCClient?.channelName).toBe(FAKE_CHANNEL_NAME); expect(irisClient.connection.channelId).toBe( - irisClient.agoraRTCClient.channelName + irisClient.agoraRTCClient?.channelName ); expect( irisRtcEngine.rtcEngineEventHandler.onJoinChannelSuccess_263e4cd @@ -1088,4 +1071,68 @@ describe('IAgoraRtcEngineImpl', () => { ); expect(JSON.parse(result.data).userInfo.uid).toBe(userInfoList[0].uid); }); + test('setLocalRenderMode_cfb201b', async () => { + let param = { + renderMode: NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + await setupLocalVideo(apiEnginePtr, null); + await callIris(apiEnginePtr, 'RtcEngine_setLocalRenderMode_cfb201b', param); + expect( + irisRtcEngine.irisClientManager.localVideoTrackPackages[0] + .videoPlayerConfig.fit + ).toBe(AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit(param.renderMode)); + expect( + irisRtcEngine.irisClientManager.localVideoTrackPackages[0] + .videoPlayerConfig.mirror + ).toBe(true); + }); + test('setLocalRenderMode_bedb5ae', async () => { + let param = { + renderMode: NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT, + }; + await setupLocalVideo(apiEnginePtr, null); + await callIris(apiEnginePtr, 'RtcEngine_setLocalRenderMode_bedb5ae', param); + expect( + irisRtcEngine.irisClientManager.localVideoTrackPackages[0] + .videoPlayerConfig.fit + ).toBe(AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit(param.renderMode)); + }); + test('setLocalVideoMirrorMode_b8a6c69', async () => { + let param = { + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + await setupLocalVideo(apiEnginePtr, null); + await callIris( + apiEnginePtr, + 'RtcEngine_setLocalVideoMirrorMode_b8a6c69', + param + ); + expect( + irisRtcEngine.irisClientManager.localVideoTrackPackages[0] + .videoPlayerConfig.mirror + ).toBe(true); + }); + test('setRemoteRenderMode_6771ce0', async () => { + let param = { + uid: TEST_REMOTE_UID, + renderMode: NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + }; + await setupLocalVideo(apiEnginePtr, null); + await joinChannel(apiEnginePtr, null); + await callIris( + apiEnginePtr, + 'RtcEngine_setRemoteRenderMode_6771ce0', + param + ); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].videoPlayerConfig + .fit + ).toBe(AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit(param.renderMode)); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].videoPlayerConfig + .mirror + ).toBe(true); + }); }); diff --git a/packages/rtc/test/impl/IAgoraRtcEngineImplEx.test.ts b/packages/rtc/test/impl/IAgoraRtcEngineImplEx.test.ts index e3a8d039..6c1bb11a 100644 --- a/packages/rtc/test/impl/IAgoraRtcEngineImplEx.test.ts +++ b/packages/rtc/test/impl/IAgoraRtcEngineImplEx.test.ts @@ -5,10 +5,14 @@ import { import * as NATIVE_RTC from '@iris/native-rtc'; import { AREAS, IAgoraRTC, ILocalTrack } from 'agora-rtc-sdk-ng'; -import { IrisApiEngine, IrisCore } from 'iris-web-core'; +import { EventParam, IrisApiEngine, IrisCore } from 'iris-web-core'; import { IrisWebRtc } from '../../src/IrisRtcApi'; import { IrisAudioSourceType } from '../../src/base/BaseType'; +import { defaultLeaveChannelOptions } from '../../src/base/DefaultValue'; +import { NotifyType } from '../../src/engine/IrisClientObserver'; + +import { AgoraTranslate } from '../../src/util'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; @@ -28,6 +32,7 @@ let rtcEngineExImpl: IRtcEngineExImpl; beforeEach(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); + IrisCore.createIrisEventHandler({} as any); IrisWebRtc.initIrisRtc(apiEnginePtr, { agoraRTC: FakeAgoraRTCWrapper.getFakeAgoraRTC(), }); @@ -79,15 +84,29 @@ describe('IAgoraRtcEngineImpl', () => { ); expect(irisClient.irisClientState.token).toBe(param.token); - expect(irisClient.agoraRTCClient.channelName).toBe(FAKE_CHANNEL_NAME); + expect(irisClient.agoraRTCClient?.channelName).toBe(FAKE_CHANNEL_NAME); expect(irisClient.connection.channelId).toBe( - irisClient.agoraRTCClient.channelName + irisClient.agoraRTCClient?.channelName ); expect( irisRtcEngine.rtcEngineEventHandler.onJoinChannelSuccess_263e4cd ).toBeCalledTimes(1); }); test('leaveChannelEx_c81e1a4', async () => { + await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); + let connection = await joinChannelEx(apiEnginePtr); + jest.spyOn(rtcEngineExImpl, 'leaveChannelEx_b03ee9a'); + let leaveParam = { + connection: connection, + }; + await callIris( + apiEnginePtr, + 'RtcEngineEx_leaveChannelEx_c81e1a4', + leaveParam + ); + expect(rtcEngineExImpl.leaveChannelEx_b03ee9a).toBeCalled(); + }); + test('leaveChannelEx_b03ee9a', async () => { let param = { token: '1234', connection: { @@ -104,16 +123,20 @@ describe('IAgoraRtcEngineImpl', () => { let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( param.connection ); - jest.spyOn(irisClient.agoraRTCClient, 'leave'); + jest.spyOn(irisClient.agoraRTCClient!, 'leave'); let leaveParam = { connection: param.connection, + options: defaultLeaveChannelOptions, }; await callIris( apiEnginePtr, - 'RtcEngineEx_leaveChannelEx_c81e1a4', + 'RtcEngineEx_leaveChannelEx_b03ee9a', leaveParam ); - expect(irisClient.agoraRTCClient).toBeNull(); + expect(irisClient.agoraRTCClient).toBeUndefined(); + expect(irisRtcEngine.irisClientManager.remoteUserPackages.length).toBe(0); + expect(irisClient.videoTrackPackage).toBeUndefined(); + expect(irisClient.audioTrackPackages.length).toBe(0); }); test('updateChannelMediaOptionsEx_457bb35', async () => { let param = { @@ -132,15 +155,14 @@ describe('IAgoraRtcEngineImpl', () => { let agoraRTCClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( param.connection ).agoraRTCClient; - jest.spyOn(agoraRTCClient, 'renewToken'); - jest.spyOn(agoraRTCClient, 'setClientRole'); + jest.spyOn(agoraRTCClient!, 'renewToken'); + jest.spyOn(agoraRTCClient!, 'setClientRole'); let param2 = { connection: param.connection, options: { + clientRoleType: NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_AUDIENCE, publishCameraTrack: true, publishMicrophoneTrack: true, - publishScreenCaptureVideo: true, - publishScreenCaptureAudio: true, publishScreenTrack: true, publishCustomVideoTrack: true, token: '123', @@ -151,76 +173,85 @@ describe('IAgoraRtcEngineImpl', () => { 'RtcEngineEx_updateChannelMediaOptionsEx_457bb35', param2 ); - expect(agoraRTCClient.renewToken).toBeCalledTimes(1); - expect(agoraRTCClient.setClientRole).toBeCalledTimes(1); + expect(agoraRTCClient?.renewToken).toBeCalledTimes(1); + expect(agoraRTCClient?.setClientRole).toBeCalledTimes(1); }); test('setupRemoteVideoEx_522a409', async () => { - let param = { - token: '1234', - connection: { - channelId: FAKE_CHANNEL_NAME, - localUid: TEST_UID, - }, - options: { - channelProfile: - NATIVE_RTC.CHANNEL_PROFILE_TYPE.CHANNEL_PROFILE_LIVE_BROADCASTING, - clientRoleType: NATIVE_RTC.CLIENT_ROLE_TYPE.CLIENT_ROLE_BROADCASTER, - }, - }; - await callIris(apiEnginePtr, 'RtcEngineEx_joinChannelEx_a3cd08c', param); + await callIris( + apiEnginePtr, + 'RtcEngine_registerEventHandler_5fc0465', + null, + [ + { + onEvent: async (e: EventParam) => { + if ( + e.event === + 'RtcEngineEventHandler_onRemoteVideoStateChanged_a14e9d1' + ) { + await callIris( + apiEnginePtr, + 'RtcEngineEx_setupRemoteVideoEx_522a409', + param2 + ); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages.length + ).toBe(1); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].element + ).toBe(param2.canvas.view); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].uid + ).toBe(param2.canvas.uid); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].connection + .channelId + ).toBe(param2.connection.channelId); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].connection + .localUid + ).toBe(param2.connection.localUid); + } + }, + }, + ] + ); + let connection = await joinChannelEx(apiEnginePtr); let param2 = { canvas: { uid: TEST_REMOTE_UID, view: 'test-view', - sourceType: NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY, + sourceType: NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_REMOTE, }, - connection: param.connection, + connection: connection, }; - await callIris( - apiEnginePtr, - 'RtcEngineEx_setupRemoteVideoEx_522a409', - param2 - ); - expect(irisRtcEngine.irisClientManager.remoteUserPackages.length).toBe(1); - expect(irisRtcEngine.irisClientManager.remoteUserPackages[0].element).toBe( - param2.canvas.view - ); - expect(irisRtcEngine.irisClientManager.remoteUserPackages[0].uid).toBe( - param2.canvas.uid - ); - expect( - irisRtcEngine.irisClientManager.remoteUserPackages[0].connection.channelId - ).toBe(param2.connection.channelId); - expect( - irisRtcEngine.irisClientManager.remoteUserPackages[0].connection.localUid - ).toBe(param2.connection.localUid); - await callIris(apiEnginePtr, 'RtcEngineEx_leaveChannelEx_c81e1a4', param); - expect(irisRtcEngine.irisClientManager.remoteUserPackages.length).toBe(0); }); test('muteLocalAudioStreamEx_3cf17a4', async () => { let connection = await joinChannelEx(apiEnginePtr); await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); - let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( - connection - ); let localAudioTrackPackage = irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary ); expect(localAudioTrackPackage.length).toBe(1); - expect(localAudioTrackPackage[0].track.isPlaying).toBe(true); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(false); + jest.spyOn( + irisRtcEngine.irisClientManager.irisClientObserver, + 'notifyLocal' + ); await callIris(apiEnginePtr, 'RtcEngineEx_muteLocalAudioStreamEx_3cf17a4', { mute: true, connection, }); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(true); + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toBeCalled(); await callIris(apiEnginePtr, 'RtcEngineEx_muteLocalAudioStreamEx_3cf17a4', { mute: false, connection, }); - expect((localAudioTrackPackage[0].track as ILocalTrack).muted).toBe(false); + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toBeCalled(); }); test('muteAllRemoteAudioStreamsEx_3cf17a4', async () => { let connection = await joinChannelEx(apiEnginePtr); @@ -228,8 +259,8 @@ describe('IAgoraRtcEngineImpl', () => { let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( connection ); - let remoteUsers = irisClient.agoraRTCClient.remoteUsers; - expect(remoteUsers[0].audioTrack.isPlaying).toBe(true); + let remoteUsers = irisClient.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].audioTrack!.isPlaying).toBe(true); await callIris( apiEnginePtr, @@ -256,8 +287,8 @@ describe('IAgoraRtcEngineImpl', () => { let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( connection ); - let remoteUsers = irisClient.agoraRTCClient.remoteUsers; - expect(remoteUsers[0].audioTrack.isPlaying).toBe(true); + let remoteUsers = irisClient.agoraRTCClient!.remoteUsers; + expect(remoteUsers[0].audioTrack!.isPlaying).toBe(true); await callIris( apiEnginePtr, @@ -289,59 +320,68 @@ describe('IAgoraRtcEngineImpl', () => { NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA_PRIMARY ); expect(localVideoTrackPackage.length).toBe(1); - expect(localVideoTrackPackage[0].track.isPlaying).toBe(true); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(false); + jest.spyOn( + irisRtcEngine.irisClientManager.irisClientObserver, + 'notifyLocal' + ); await callIris(apiEnginePtr, 'RtcEngineEx_muteLocalVideoStreamEx_3cf17a4', { mute: true, connection, }); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(true); + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toHaveBeenNthCalledWith( + 1, + NotifyType.UNPUBLISH_TRACK, + irisRtcEngine.irisClientManager.localVideoTrackPackages + ); await callIris(apiEnginePtr, 'RtcEngineEx_muteLocalVideoStreamEx_3cf17a4', { mute: false, connection, }); - expect((localVideoTrackPackage[0].track as ILocalTrack).muted).toBe(false); - }); - test('muteAllRemoteVideoStreamsEx_3cf17a4', async () => { - await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); - let connection = await joinChannelEx(apiEnginePtr); - await setupRemoteVideoEx(apiEnginePtr, null); - let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( - connection - ); - let remoteUsers = irisClient.agoraRTCClient.remoteUsers; - expect(remoteUsers[0].videoTrack.isPlaying).toBe(true); - - await callIris( - apiEnginePtr, - 'RtcEngineEx_muteAllRemoteVideoStreamsEx_3cf17a4', - { - mute: true, - connection, - } - ); - expect(remoteUsers[0].videoTrack).toBeUndefined(); - await callIris( - apiEnginePtr, - 'RtcEngineEx_muteAllRemoteVideoStreamsEx_3cf17a4', - { - mute: false, - connection, - } + expect( + irisRtcEngine.irisClientManager.irisClientObserver.notifyLocal + ).toHaveBeenNthCalledWith( + 2, + NotifyType.PUBLISH_TRACK, + irisRtcEngine.irisClientManager.localVideoTrackPackages ); - expect(remoteUsers[0].videoTrack).not.toBeUndefined(); }); test('muteRemoteVideoStreamEx_6d93082', async () => { await callIris(apiEnginePtr, 'RtcEngine_enableVideo', null); let connection = await joinChannelEx(apiEnginePtr); await setupRemoteVideoEx(apiEnginePtr, null); - let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( - connection + await callIris( + apiEnginePtr, + 'RtcEngine_registerEventHandler_5fc0465', + null, + [ + { + onEvent: async (e: EventParam) => { + if ( + e.event === + 'RtcEngineEventHandler_onRemoteVideoStateChanged_a14e9d1' + ) { + let irisClient = irisRtcEngine.irisClientManager.getIrisClientByConnection( + connection + ); + let remoteUsers = irisClient.agoraRTCClient!.remoteUsers; + if ( + (JSON.parse(e.data).state as NATIVE_RTC.REMOTE_VIDEO_STATE) === + NATIVE_RTC.REMOTE_VIDEO_STATE.REMOTE_VIDEO_STATE_STARTING + ) { + expect(remoteUsers[0].videoTrack).toBeUndefined(); + } else { + expect(remoteUsers[0].videoTrack).not.toBeUndefined(); + expect(remoteUsers[0].videoTrack?.isPlaying).toBe(true); + } + } + }, + }, + ] ); - let remoteUsers = irisClient.agoraRTCClient.remoteUsers; - expect(remoteUsers[0].videoTrack.isPlaying).toBe(true); await callIris( apiEnginePtr, @@ -352,7 +392,6 @@ describe('IAgoraRtcEngineImpl', () => { connection, } ); - expect(remoteUsers[0].videoTrack).toBeUndefined(); await callIris( apiEnginePtr, 'RtcEngineEx_muteRemoteVideoStreamEx_6d93082', @@ -362,7 +401,6 @@ describe('IAgoraRtcEngineImpl', () => { connection, } ); - expect(remoteUsers[0].videoTrack).not.toBeUndefined(); }); test('createDataStreamEx_9f641b6', async () => { @@ -405,4 +443,26 @@ describe('IAgoraRtcEngineImpl', () => { payload: 'test', }); }); + test('setRemoteRenderModeEx_a72fe4e', async () => { + let connection = await joinChannelEx(apiEnginePtr); + let param = { + uid: TEST_REMOTE_UID, + renderMode: NATIVE_RTC.RENDER_MODE_TYPE.RENDER_MODE_FIT, + mirrorMode: NATIVE_RTC.VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_ENABLED, + connection: connection, + }; + await callIris( + apiEnginePtr, + 'RtcEngineEx_setRemoteRenderModeEx_a72fe4e', + param + ); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].videoPlayerConfig + .fit + ).toBe(AgoraTranslate.NATIVE_RTC_RENDER_MODE_TYPE2Fit(param.renderMode)); + expect( + irisRtcEngine.irisClientManager.remoteUserPackages[0].videoPlayerConfig + .mirror + ).toBe(true); + }); }); diff --git a/packages/rtc/test/impl/IAudioDeviceManagerImpl.test.ts b/packages/rtc/test/impl/IAudioDeviceManagerImpl.test.ts new file mode 100644 index 00000000..bcd06112 --- /dev/null +++ b/packages/rtc/test/impl/IAudioDeviceManagerImpl.test.ts @@ -0,0 +1,196 @@ +import { + FAKE_PLAYBACKINPUT_DEVICE_ID, + FAKE_RECORDINGINPUT_DEVICE_ID, + FakeAgoraRTCWrapper, +} from '@agoraio-extensions/agora-rtc-sdk-ng-fake'; +import * as NATIVE_RTC from '@iris/native-rtc'; +import 'jest-canvas-mock'; + +import { ILocalAudioTrack, IMicrophoneAudioTrack } from 'agora-rtc-sdk-ng'; +import { IrisApiEngine, IrisCore } from 'iris-web-core'; + +import { IrisWebRtc } from '../../src/IrisRtcApi'; +import { IrisAudioSourceType } from '../../src/base/BaseType'; + +import { IAudioDeviceManagerImpl } from '../../src/impl/IAudioDeviceManagerImpl'; +import { IrisRtcEngine } from '../engine/IrisRtcEngine'; + +import { + callIris, + callIrisWithoutCheck, + joinChannel, + setupLocalVideo, +} from '../utils'; + +let apiEnginePtr: IrisApiEngine; +let irisRtcEngine: IrisRtcEngine; +let audioDeviceManagerImpl: IAudioDeviceManagerImpl; + +beforeEach(async () => { + apiEnginePtr = IrisCore.createIrisApiEngine(); + IrisWebRtc.initIrisRtc(apiEnginePtr, { + agoraRTC: FakeAgoraRTCWrapper.getFakeAgoraRTC(), + }); + jest.useFakeTimers(); + irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; + audioDeviceManagerImpl = irisRtcEngine.implDispatchesMap.get( + 'AudioDeviceManager' + )._impl; + jest.spyOn(irisRtcEngine, 'returnResult'); + + let nParam = { + context: { + areaCode: 1, + logConfig: { + level: 1, + }, + }, + }; + await callIris(apiEnginePtr, 'RtcEngine_initialize_0320339', nParam); +}); + +afterEach(() => { + IrisCore.disposeIrisApiEngine(apiEnginePtr); + jest.clearAllMocks(); + jest.useRealTimers(); +}); + +describe('IAgoraRtcEngineImpl', () => { + test('enumeratePlaybackDevices', async () => { + let result = await callIrisWithoutCheck( + apiEnginePtr, + 'AudioDeviceManager_enumeratePlaybackDevices' + ); + expect(result.code).toBe(NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK); + expect(irisRtcEngine.globalState.playbackDevices.length).not.toBe(0); + expect(irisRtcEngine.globalState.recordingDevices.length).not.toBe(0); + expect(irisRtcEngine.globalState.videoDevices.length).not.toBe(0); + expect(JSON.parse(result.data).result.length).toBe(1); + }); + test('enumerateRecordingDevices', async () => { + let result = await callIrisWithoutCheck( + apiEnginePtr, + 'AudioDeviceManager_enumerateRecordingDevices' + ); + expect(result.code).toBe(NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK); + expect(irisRtcEngine.globalState.playbackDevices.length).not.toBe(0); + expect(irisRtcEngine.globalState.recordingDevices.length).not.toBe(0); + expect(irisRtcEngine.globalState.videoDevices.length).not.toBe(0); + expect(JSON.parse(result.data).result.length).toBe(1); + }); + test('setPlaybackDevice_4ad5f6e', async () => { + let param = { + deviceId: 1, + }; + await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); + await joinChannel(apiEnginePtr, null); + jest.spyOn( + irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0].track as ILocalAudioTrack, + 'setPlaybackDevice' + ); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_setPlaybackDevice_4ad5f6e', + param + ); + expect(irisRtcEngine.globalState.playbackDeviceId).toBe(param.deviceId); + expect( + (irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0].track as ILocalAudioTrack).setPlaybackDevice + ).toBeCalledWith(param.deviceId); + }); + test('getPlaybackDevice_73b9872', async () => { + jest.spyOn(irisRtcEngine.globalState.AgoraRTC, 'getPlaybackDevices'); + let param = { + deviceId: 1, + }; + let result = await callIrisWithoutCheck( + apiEnginePtr, + 'AudioDeviceManager_getPlaybackDevice_73b9872', + param + ); + expect(result.code).toBe(NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK); + expect(JSON.parse(result.data).deviceId).toBe(FAKE_PLAYBACKINPUT_DEVICE_ID); + expect( + irisRtcEngine.globalState.AgoraRTC.getPlaybackDevices + ).toBeCalledTimes(1); + jest.clearAllMocks(); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_setPlaybackDevice_4ad5f6e', + param + ); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_getPlaybackDevice_73b9872', + param + ); + expect( + irisRtcEngine.globalState.AgoraRTC.getPlaybackDevices + ).toBeCalledTimes(0); + }); + test('setRecordingDevice_4ad5f6e', async () => { + let param = { + deviceId: 1, + }; + await callIris(apiEnginePtr, 'RtcEngine_enableAudio', null); + await joinChannel(apiEnginePtr, null); + jest.spyOn( + irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0].track as IMicrophoneAudioTrack, + 'setDevice' + ); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_setRecordingDevice_4ad5f6e', + param + ); + expect(irisRtcEngine.globalState.recordingDeviceId).toBe(param.deviceId); + expect( + (irisRtcEngine.irisClientManager.getLocalAudioTrackPackageBySourceType( + IrisAudioSourceType.kAudioSourceTypeMicrophonePrimary + )[0].track as IMicrophoneAudioTrack).setDevice + ).toBeCalledWith(param.deviceId); + }); + test('getRecordingDevice_73b9872', async () => { + jest.spyOn(irisRtcEngine.globalState.AgoraRTC, 'getMicrophones'); + let param = { + deviceId: 1, + }; + let result = await callIrisWithoutCheck( + apiEnginePtr, + 'AudioDeviceManager_getRecordingDevice_73b9872', + param + ); + expect(result.code).toBe(NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK); + expect(JSON.parse(result.data).deviceId).toBe( + FAKE_RECORDINGINPUT_DEVICE_ID + ); + expect(irisRtcEngine.globalState.AgoraRTC.getMicrophones).toBeCalledTimes( + 1 + ); + jest.clearAllMocks(); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_setRecordingDevice_4ad5f6e', + param + ); + await callIris( + apiEnginePtr, + 'AudioDeviceManager_getRecordingDevice_73b9872', + param + ); + expect(irisRtcEngine.globalState.AgoraRTC.getMicrophones).toBeCalledTimes( + 0 + ); + }); + test('release', async () => { + await callIris(apiEnginePtr, 'AudioDeviceManager_release', { sync: false }); + expect(irisRtcEngine.globalState.playbackDevices.length).toBe(0); + expect(irisRtcEngine.globalState.recordingDevices.length).toBe(0); + }); +}); diff --git a/packages/rtc/test/impl/IVideoDeviceManagerImpl.test.ts b/packages/rtc/test/impl/IVideoDeviceManagerImpl.test.ts index cb510580..be7e6e79 100644 --- a/packages/rtc/test/impl/IVideoDeviceManagerImpl.test.ts +++ b/packages/rtc/test/impl/IVideoDeviceManagerImpl.test.ts @@ -11,12 +11,11 @@ import { IrisApiEngine, IrisCore } from 'iris-web-core'; import { IrisWebRtc } from '../../src/IrisRtcApi'; +import { IVideoDeviceManagerImpl } from '../../src/impl/IVideoDeviceManagerImpl'; import { IrisRtcEngine } from '../engine/IrisRtcEngine'; import { callIris, callIrisWithoutCheck, setupLocalVideo } from '../utils'; -import { IVideoDeviceManagerImpl } from './IAgoraRtcEngineImpl'; - let apiEnginePtr: IrisApiEngine; let irisRtcEngine: IrisRtcEngine; let videoDeviceManagerImpl: IVideoDeviceManagerImpl; @@ -52,20 +51,9 @@ afterEach(() => { describe('IAgoraRtcEngineImpl', () => { test('enumerateVideoDevices', async () => { - let param = { - enabled: true, - useTexture: true, - sourceType: NATIVE_RTC.EXTERNAL_VIDEO_SOURCE_TYPE.ENCODED_VIDEO_FRAME, - encodedVideoOption: { - ccMode: NATIVE_RTC.TCcMode.CC_DISABLED, - codecType: NATIVE_RTC.VIDEO_CODEC_TYPE.VIDEO_CODEC_AV1, - targetBitrate: 1, - }, - }; let result = await callIrisWithoutCheck( apiEnginePtr, - 'VideoDeviceManager_enumerateVideoDevices', - param + 'VideoDeviceManager_enumerateVideoDevices' ); expect(result.code).toBe(NATIVE_RTC.ERROR_CODE_TYPE.ERR_OK); expect(irisRtcEngine.globalState.playbackDevices.length).not.toBe(0); @@ -78,6 +66,11 @@ describe('IAgoraRtcEngineImpl', () => { deviceIdUTF8: 1, }; await setupLocalVideo(apiEnginePtr); + console.log( + irisRtcEngine.irisClientManager.getLocalVideoTrackPackageBySourceType( + NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA + )[0].track as ICameraVideoTrack + ); jest.spyOn( irisRtcEngine.irisClientManager.getLocalVideoTrackPackageBySourceType( NATIVE_RTC.VIDEO_SOURCE_TYPE.VIDEO_SOURCE_CAMERA @@ -114,8 +107,6 @@ describe('IAgoraRtcEngineImpl', () => { }); test('release', async () => { await callIris(apiEnginePtr, 'VideoDeviceManager_release', { sync: false }); - expect(irisRtcEngine.globalState.playbackDevices.length).toBe(0); - expect(irisRtcEngine.globalState.recordingDevices.length).toBe(0); expect(irisRtcEngine.globalState.videoDevices.length).toBe(0); }); }); diff --git a/packages/rtc/test/utils/index.ts b/packages/rtc/test/utils/index.ts index 3f9252af..3b415eea 100644 --- a/packages/rtc/test/utils/index.ts +++ b/packages/rtc/test/utils/index.ts @@ -26,7 +26,8 @@ export const TEST_REMOTE_UID = 456; export async function callIris( apiEnginePtr: IrisApiEngine, apiName: string, - options: any = null + options: any = null, + buffers: any[] = ['test'] ) { let result = await IrisCore.callIrisApi( apiEnginePtr, @@ -35,7 +36,7 @@ export async function callIris( JSON.stringify(options), 0, '', - ['test'], + buffers, [], 1 ) @@ -115,6 +116,8 @@ export async function joinChannel(apiEnginePtr: IrisApiEngine, options?: any) { } as IAgoraRTCRemoteUser, ]; dispatchRTCEvent(agoraRTCClient, 'user-joined', user[0]); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'video'); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'audio'); agoraRTCClient.remoteUsers = user; } @@ -163,6 +166,8 @@ export async function joinChannelWithUserAccount( } as IAgoraRTCRemoteUser, ]; dispatchRTCEvent(agoraRTCClient, 'user-joined', user[0]); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'video'); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'audio'); agoraRTCClient.remoteUsers = user; } @@ -200,8 +205,9 @@ export async function joinChannelEx( videoTrack: FakeLocalVideoTrack.create(), } as IAgoraRTCRemoteUser, ]; - // triggerCallback(irisRtcEngine, 'onEventUserJoined', user); dispatchRTCEvent(agoraRTCClient, 'user-joined', user[0]); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'video'); + dispatchRTCEvent(agoraRTCClient, 'user-published', user[0], 'audio'); agoraRTCClient.remoteUsers = user; irisClient.connection.localUid = agoraRTCClient.uid; return irisClient.connection; diff --git a/packages/rtc/tsconfig.json b/packages/rtc/tsconfig.json index 8615e039..48f52a90 100644 --- a/packages/rtc/tsconfig.json +++ b/packages/rtc/tsconfig.json @@ -5,7 +5,9 @@ "moduleResolution": "node", "resolveJsonModule": true, "esModuleInterop": true, - "baseUrl": ".", + "strictNullChecks": true, + "skipLibCheck": true, + "baseUrl": "./", "rootDirs": ["./src", "./test"] }, "exclude": ["node_modules"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72d70f56..7aa0ee7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -19,6 +19,9 @@ importers: .: devDependencies: + '@commitlint/config-conventional': + specifier: ^17.6.7 + version: 17.8.1 '@release-it/conventional-changelog': specifier: ^7.0.1 version: 7.0.1(release-it@16.3.0) @@ -30,10 +33,16 @@ importers: version: 18.17.9 '@typescript-eslint/eslint-plugin': specifier: ^6.0.0 - version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.1.6) + version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.5.3) '@typescript-eslint/parser': specifier: ^6.0.0 - version: 6.0.0(eslint@8.4.1)(typescript@5.1.6) + version: 6.0.0(eslint@8.4.1)(typescript@5.5.3) + commitlint: + specifier: ^17.6.7 + version: 17.8.1 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 eslint: specifier: ^8.4.1 version: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) @@ -52,15 +61,21 @@ importers: eslint-plugin-unused-imports: specifier: ^3.0.0 version: 3.0.0(@typescript-eslint/eslint-plugin@6.0.0)(eslint@8.4.1) + husky: + specifier: ^8.0.3 + version: 8.0.3 + lint-staged: + specifier: ^14.0.0 + version: 14.0.1 prettier: specifier: ^2.0.5 version: 2.0.5 release-it: specifier: ^16.1.3 - version: 16.3.0(typescript@5.1.6) + version: 16.3.0(typescript@5.5.3) tsup: specifier: ^7.1.0 - version: 7.1.0(typescript@5.1.6) + version: 7.1.0(ts-node@10.9.1)(typescript@5.5.3) packages/@iris/rtc: dependencies: @@ -77,14 +92,14 @@ importers: packages/fake/rtc: dependencies: '@agoraio-extensions/agora-rtc-sdk-ng-fake': - specifier: ^1.0.12 - version: 1.0.12 + specifier: ^1.0.13 + version: 1.0.13 '@iris/native-rtc': specifier: 'workspace: *' version: link:../../@iris/rtc agora-rtc-sdk-ng: - specifier: 4.20.0 - version: 4.20.0 + specifier: 4.22.0 + version: 4.22.0 iris-web-rtc: specifier: 'workspace: *' version: link:../../rtc @@ -132,14 +147,14 @@ importers: packages/rtc: dependencies: '@agoraio-extensions/agora-rtc-sdk-ng-fake': - specifier: ^1.0.12 - version: 1.0.12 + specifier: ^1.0.13 + version: 1.0.13 '@iris/native-rtc': specifier: 'workspace: *' version: link:../@iris/rtc agora-rtc-sdk-ng: - specifier: 4.20.0 - version: 4.20.0 + specifier: 4.22.0 + version: 4.22.0 iris-web-core: specifier: 'workspace: *' version: link:../core @@ -192,4647 +207,73 @@ importers: packages: - '@aashutoshrathi/word-wrap@1.2.6': + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + dev: true - '@adobe/css-tools@4.3.1': + /@adobe/css-tools@4.3.1: resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==} + dev: true - '@agora-js/media@4.20.0': - resolution: {integrity: sha512-cprH3BmxiM2fEbbdSORCv0/LMl+7R4Zq5MUbCCRV4/BWDoDL+Fdp5otUi1GOoVV4jWNepDl7pkOOH64IfJ1n0Q==} - - '@agora-js/report@4.20.0': - resolution: {integrity: sha512-TaY+4M1qEdAtM4xmYDUlmzQdGmao23ljnrcBGtS1BXdTrDTH/GbN6+/NAng5Zp5TmBniYwpMHvfPwfVW9LX8Gg==} - - '@agora-js/shared@4.20.0': - resolution: {integrity: sha512-+Em8k8MJsYlZ5ItqJidXHdNbn/vmQi3/P0hjh0jsHsMZLwz0l9kETbo5Q7Lq/so8IyrHQw4DoK5Jen0/B4uW4w==} - - '@agoraio-extensions/agora-rtc-sdk-ng-fake@1.0.12': - resolution: {integrity: sha512-fXKDztmtIe+JwquCKlsEd59ZmvJVtGBaoj6g3QIzy6E8Z/VB6UMEn8thvvHO8wEzZ6CKl+uG2k8OF22kdpRkXQ==, tarball: https://npm.pkg.github.com/download/@agoraio-extensions/agora-rtc-sdk-ng-fake/1.0.12/99350f1d3d2b0ed7d3bd4dd58e39cad252b07ee0} - - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.22.13': - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.23.2': - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.23.2': - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.23.0': - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.22.15': - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.22.15': - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.0': - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.22.5': - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.22.5': - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.22.15': - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.23.2': - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.22.20': - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.23.0': - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.22.5': - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.22.5': - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.23.2': - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.23.2': - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.0': - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} - engines: {node: '>=10.0.0'} - - '@dsherret/to-absolute-glob@2.0.2': - resolution: {integrity: sha512-InCaQ/KEOcFtAFztn47wadritBLP2nT6m/ucbBnIgI5YwxuMzKKCHtqazR2+D1yR6y1ZTnPea9aLFEUrTttUSQ==} - engines: {node: '>=0.10.0'} - - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.9.1': - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@1.4.1': - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.9.5': - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - - '@hutson/parse-repository-url@5.0.0': - resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} - engines: {node: '>=10.13.0'} - - '@iarna/toml@2.2.5': - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@leichtgewicht/ip-codec@2.0.4': - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - - '@ljharb/through@2.3.12': - resolution: {integrity: sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==} - engines: {node: '>= 0.4'} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@octokit/auth-token@3.0.4': - resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} - engines: {node: '>= 14'} - - '@octokit/core@4.2.4': - resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} - engines: {node: '>= 14'} - - '@octokit/endpoint@7.0.6': - resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} - engines: {node: '>= 14'} - - '@octokit/graphql@5.0.6': - resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} - engines: {node: '>= 14'} - - '@octokit/openapi-types@18.1.1': - resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - - '@octokit/plugin-paginate-rest@6.1.2': - resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} - engines: {node: '>= 14'} - peerDependencies: - '@octokit/core': '>=4' - - '@octokit/plugin-request-log@1.0.4': - resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/plugin-rest-endpoint-methods@7.2.3': - resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} - engines: {node: '>= 14'} - peerDependencies: - '@octokit/core': '>=3' - - '@octokit/request-error@3.0.3': - resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} - engines: {node: '>= 14'} - - '@octokit/request@6.2.8': - resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} - engines: {node: '>= 14'} - - '@octokit/rest@19.0.13': - resolution: {integrity: sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==} - engines: {node: '>= 14'} - - '@octokit/tsconfig@1.0.2': - resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} - - '@octokit/types@10.0.0': - resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} - - '@octokit/types@9.3.2': - resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} - - '@release-it/conventional-changelog@7.0.1': - resolution: {integrity: sha512-qvMSzyaTWVCgbAFJ4OYb2HC2S+h47hqua6A/aYe5surdp9dXu47POz22tJUMyKr4z66g+nh2TElFqaWrLmOC3Q==} - engines: {node: '>=16'} - peerDependencies: - release-it: ^16.0.0 - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@sinonjs/commons@3.0.0': - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@testing-library/jest-dom@6.1.3': - resolution: {integrity: sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true - - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - - '@ts-morph/common@0.7.5': - resolution: {integrity: sha512-nlFunSKAsFWI0Ol/uPxJcpVqXxTGNuaWXTmoQDhcnwj1UM4QmBSUVWzqoQ0OzUlqo4sV1gobfFBkMHuZVemMAQ==} - - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/babel__core@7.20.3': - resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} - - '@types/babel__generator@7.6.6': - resolution: {integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==} - - '@types/babel__template@7.4.3': - resolution: {integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==} - - '@types/babel__traverse@7.20.3': - resolution: {integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==} - - '@types/body-parser@1.19.4': - resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} - - '@types/bonjour@3.5.12': - resolution: {integrity: sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==} - - '@types/connect-history-api-fallback@1.5.2': - resolution: {integrity: sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==} - - '@types/connect@3.4.37': - resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} - - '@types/eslint-scope@3.7.6': - resolution: {integrity: sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==} - - '@types/eslint@8.44.2': - resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} - - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - - '@types/estree@1.0.3': - resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} - - '@types/express-serve-static-core@4.17.38': - resolution: {integrity: sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg==} - - '@types/express@4.17.20': - resolution: {integrity: sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - - '@types/graceful-fs@4.1.8': - resolution: {integrity: sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==} - - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - - '@types/http-cache-semantics@4.0.3': - resolution: {integrity: sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==} - - '@types/http-errors@2.0.3': - resolution: {integrity: sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==} - - '@types/http-proxy@1.17.13': - resolution: {integrity: sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==} - - '@types/istanbul-lib-coverage@2.0.5': - resolution: {integrity: sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==} - - '@types/istanbul-lib-report@3.0.2': - resolution: {integrity: sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==} - - '@types/istanbul-reports@3.0.3': - resolution: {integrity: sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==} - - '@types/jest@29.5.3': - resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} - - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - - '@types/json-schema@7.0.14': - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/mime@1.3.4': - resolution: {integrity: sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==} - - '@types/mime@3.0.3': - resolution: {integrity: sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ==} - - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - - '@types/node@18.17.9': - resolution: {integrity: sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==} - - '@types/normalize-package-data@2.4.3': - resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} - - '@types/qs@6.9.9': - resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} - - '@types/range-parser@1.2.6': - resolution: {integrity: sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - - '@types/semver@7.5.4': - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} - - '@types/send@0.17.3': - resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} - - '@types/serve-index@1.9.3': - resolution: {integrity: sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg==} - - '@types/serve-static@1.15.4': - resolution: {integrity: sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==} - - '@types/sockjs@0.3.35': - resolution: {integrity: sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==} - - '@types/stack-utils@2.0.2': - resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==} - - '@types/tough-cookie@4.0.4': - resolution: {integrity: sha512-95Sfz4nvMAb0Nl9DTxN3j64adfwfbBPEYq14VN7zT5J5O2M9V6iZMIIQU1U+pJyl9agHYHNCqhCXgyEtIRRa5A==} - - '@types/ws@8.5.8': - resolution: {integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==} - - '@types/yargs-parser@21.0.2': - resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==} - - '@types/yargs@17.0.29': - resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} - - '@typescript-eslint/eslint-plugin@6.0.0': - resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.0.0': - resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.0.0': - resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.0.0': - resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.0.0': - resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@6.0.0': - resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.0.0': - resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@6.0.0': - resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@webassemblyjs/ast@1.11.1': - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} - - '@webassemblyjs/floating-point-hex-parser@1.11.1': - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} - - '@webassemblyjs/helper-api-error@1.11.1': - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} - - '@webassemblyjs/helper-buffer@1.11.1': - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} - - '@webassemblyjs/helper-numbers@1.11.1': - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.1': - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} - - '@webassemblyjs/helper-wasm-section@1.11.1': - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} - - '@webassemblyjs/ieee754@1.11.1': - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} - - '@webassemblyjs/leb128@1.11.1': - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} - - '@webassemblyjs/utf8@1.11.1': - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} - - '@webassemblyjs/wasm-edit@1.11.1': - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} - - '@webassemblyjs/wasm-gen@1.11.1': - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} - - '@webassemblyjs/wasm-opt@1.11.1': - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} - - '@webassemblyjs/wasm-parser@1.11.1': - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} - - '@webassemblyjs/wast-printer@1.11.1': - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} - - '@webpack-cli/configtest@1.2.0': - resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} - peerDependencies: - webpack: 4.x.x || 5.x.x - webpack-cli: 4.x.x - - '@webpack-cli/info@1.5.0': - resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} - peerDependencies: - webpack-cli: 4.x.x - - '@webpack-cli/serve@1.7.0': - resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} - peerDependencies: - webpack-cli: 4.x.x - webpack-dev-server: '*' - peerDependenciesMeta: - webpack-dev-server: - optional: true - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - - add-stream@1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} - engines: {node: '>= 14'} - - agora-rtc-sdk-ng@4.20.0: - resolution: {integrity: sha512-jgMn6NXuFKQ0nVkLP2hGn+Asxbx+DSV0gn5PY6X0iF7LC2xqsqEzGhehLASxliS81JjhMNKE72hHEzrQn0qtvQ==} - - agora-rte-extension@1.2.4: - resolution: {integrity: sha512-0ovZz1lbe30QraG1cU+ji7EnQ8aUu+Hf3F+a8xPml3wPOyUQEK6CTdxV9kMecr9t+fIDrGeW7wgJTsM1DQE7Nw==} - - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - - array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} - engines: {node: '>=8'} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-flatten@2.1.2: - resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} - - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - - array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.map@1.0.6: - resolution: {integrity: sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - - arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} - engines: {node: '>=8'} - - ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - - axios@0.27.2: - resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} - - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - basic-ftp@5.0.3: - resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} - engines: {node: '>=10.0.0'} - - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - - before-after-hook@2.2.3: - resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - - big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - - body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - bonjour-service@1.1.1: - resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - - bundle-require@4.0.2: - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - peerDependenciesMeta: - esbuild: - optional: true - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - caniuse-lite@1.0.30001550: - resolution: {integrity: sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} - - clean-css@5.3.2: - resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} - engines: {node: '>= 10.0'} - - clean-webpack-plugin@4.0.0: - resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} - engines: {node: '>=10.0.0'} - peerDependencies: - webpack: '>=4.0.0 <6.0.0' - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - code-block-writer@10.1.1: - resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - configstore@6.0.0: - resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} - engines: {node: '>=12'} - - connect-history-api-fallback@1.6.0: - resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} - engines: {node: '>=0.8'} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - - conventional-changelog-atom@4.0.0: - resolution: {integrity: sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==} - engines: {node: '>=16'} - - conventional-changelog-codemirror@4.0.0: - resolution: {integrity: sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==} - engines: {node: '>=16'} - - conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} - - conventional-changelog-core@7.0.0: - resolution: {integrity: sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==} - engines: {node: '>=16'} - - conventional-changelog-ember@4.0.0: - resolution: {integrity: sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==} - engines: {node: '>=16'} - - conventional-changelog-eslint@5.0.0: - resolution: {integrity: sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==} - engines: {node: '>=16'} - - conventional-changelog-express@4.0.0: - resolution: {integrity: sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==} - engines: {node: '>=16'} - - conventional-changelog-jquery@5.0.0: - resolution: {integrity: sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==} - engines: {node: '>=16'} - - conventional-changelog-jshint@4.0.0: - resolution: {integrity: sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==} - engines: {node: '>=16'} - - conventional-changelog-preset-loader@4.1.0: - resolution: {integrity: sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==} - engines: {node: '>=16'} - - conventional-changelog-writer@7.0.1: - resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} - engines: {node: '>=16'} - hasBin: true - - conventional-changelog@5.1.0: - resolution: {integrity: sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==} - engines: {node: '>=16'} - - conventional-commits-filter@4.0.0: - resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} - engines: {node: '>=16'} - - conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true - - conventional-recommended-bump@8.0.0: - resolution: {integrity: sha512-yvGN+VMy00WIe/pJufpmN+I4B2cM/WFK+CFCmDcjyVLyQR6J1KT2iecmA4NQ58gQAiNkvStEjcZp/W9h1JDM1A==} - engines: {node: '>=16'} - hasBin: true - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - - cssfontparser@1.2.1: - resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} - - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - - cssstyle@3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} - - dargs@8.1.0: - resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} - engines: {node: '>=12'} - - data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} - engines: {node: '>= 12'} - - data-uri-to-buffer@6.0.1: - resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} - engines: {node: '>= 14'} - - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - - data-urls@4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - dedent@1.5.1: - resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - - default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} - - del@4.1.1: - resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} - engines: {node: '>=6'} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - deprecation@2.3.1: - resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - - detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - dns-equal@1.0.0: - resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - - dot-prop@6.0.1: - resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} - engines: {node: '>=10'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - electron-to-chromium@1.4.559: - resolution: {integrity: sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==} - - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} - engines: {node: '>=10.13.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - envinfo@7.10.0: - resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} - engines: {node: '>=4'} - hasBin: true - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es-abstract@1.22.2: - resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} - engines: {node: '>= 0.4'} - - es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} - - es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - - escape-goat@4.0.0: - resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} - engines: {node: '>=12'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - - eslint-config-prettier@8.8.0: - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-auto-import@0.1.1: - resolution: {integrity: sha512-H3RX0wmRq/MLIf3ZMLEy9OyvQKUGxWIsi+TJenicgGptJzdQnQe6XheGlFlqnqUjpy3CQW/1KiF7UNTNxM6Xhw==} - engines: {node: '>=0.10.0'} - - eslint-plugin-import@2.27.5: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - eslint-plugin-unused-imports@3.0.0: - resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 - eslint: ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.4.1: - resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} - engines: {node: ^12.20 || >= 14.13} - - figures@5.0.0: - resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} - engines: {node: '>=14'} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - - follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} - engines: {node: '>=12.20.0'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - - get-uri@6.0.2: - resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} - engines: {node: '>= 14'} - - git-raw-commits@4.0.0: - resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} - engines: {node: '>=16'} - hasBin: true - - git-semver-tags@6.0.0: - resolution: {integrity: sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==} - engines: {node: '>=16'} - hasBin: true - - git-semver-tags@7.0.1: - resolution: {integrity: sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==} - engines: {node: '>=16'} - hasBin: true - - git-up@7.0.0: - resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} - - git-url-parse@13.1.0: - resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - - global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} - - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - globby@6.1.0: - resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} - engines: {node: '>=0.10.0'} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - got@13.0.0: - resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} - engines: {node: '>=16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - - has-yarn@3.0.0: - resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} - - hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} - engines: {node: ^16.14.0 || >=18.0.0} - - hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - - html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - - html-webpack-plugin@5.5.0: - resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} - engines: {node: '>=10.13.0'} - peerDependencies: - webpack: ^5.20.0 - - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - - http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true - - http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - - http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} - engines: {node: '>=8'} - hasBin: true - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - - inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - - inquirer@9.2.11: - resolution: {integrity: sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==} - engines: {node: '>=14.18.0'} - - internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - interpret@2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} - - ip@1.1.8: - resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} - - ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipaddr.js@2.1.0: - resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} - engines: {node: '>= 10'} - - is-absolute@1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - - is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - - is-negated-glob@1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} - engines: {node: '>=0.10.0'} - - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - - is-npm@6.0.0: - resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - - is-path-in-cwd@2.1.0: - resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} - engines: {node: '>=6'} - - is-path-inside@2.1.0: - resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} - engines: {node: '>=6'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-relative@1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - - is-ssh@1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-unc-path@1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-yarn-global@0.4.1: - resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} - engines: {node: '>=12'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - issue-parser@6.0.0: - resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} - engines: {node: '>=10.13'} - - istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} - engines: {node: '>=10'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} - - iterate-iterator@1.0.2: - resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} - - iterate-value@1.0.2: - resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} - - jest-canvas-mock@2.5.2: - resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==} - - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsdom@22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - lines-and-columns@2.0.3: - resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.capitalize@4.2.1: - resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} - - lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lodash.uniqby@4.7.0: - resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - - macos-release@3.2.0: - resolution: {integrity: sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - moo-color@1.0.3: - resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - - multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} - engines: {node: '>=10'} - - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} - - new-github-release-url@2.0.0: - resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - - normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} - engines: {node: '>=14.16'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.0: - resolution: {integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - - obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} - - os-name@5.1.0: - resolution: {integrity: sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} - engines: {node: '>= 14'} - - pac-resolver@7.0.0: - resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} - engines: {node: '>= 14'} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-json@7.1.0: - resolution: {integrity: sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==} - engines: {node: '>=16'} - - parse-path@7.0.0: - resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} - - parse-url@8.1.0: - resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - postcss-load-config@4.0.1: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@2.0.5: - resolution: {integrity: sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==} - engines: {node: '>=10.13.0'} - hasBin: true - - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - promise.allsettled@1.0.7: - resolution: {integrity: sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==} - engines: {node: '>= 0.4'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - protocols@2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - proxy-agent@6.3.1: - resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} - engines: {node: '>= 14'} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} - - pupa@3.1.0: - resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} - engines: {node: '>=12.20'} - - pure-rand@6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} - - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - read-pkg-up@10.1.0: - resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} - engines: {node: '>=16'} - - read-pkg@8.1.0: - resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} - engines: {node: '>=16'} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - rechoir@0.7.1: - resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} - engines: {node: '>= 0.10'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - - release-it@16.3.0: - resolution: {integrity: sha512-CP+WwKbgEvXreq6Iz9po3BtcyELtTxrt5RXRGnazQ0eCphPxFZR29+8sEZRCsJq2IKvlwb5mFUbf92u426oQog==} - engines: {node: '>=16'} - hasBin: true - - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - requireindex@1.1.0: - resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} - engines: {node: '>=0.10.5'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - - rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - - run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} - - sdp@3.2.0: - resolution: {integrity: sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==} - - select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - - selfsigned@2.1.1: - resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} - engines: {node: '>=10'} - - semver-diff@4.0.0: - resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} - engines: {node: '>=12'} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} - - serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - - set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - - setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - - socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} - engines: {node: '>= 14'} - - socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - - spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} - - spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} - hasBin: true - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - terser-webpack-plugin@5.3.9: - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.22.0: - resolution: {integrity: sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - - titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - - tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-jest@29.1.1: - resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - - ts-loader@9.3.1: - resolution: {integrity: sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - - ts-morph@9.1.0: - resolution: {integrity: sha512-sei4u651MBenr27sD6qLDXN3gZ4thiX71E3qV7SuVtDas0uvK2LtgZkIYUf9DKm/fLJ6AB/+yhRJ1vpEBJgy7Q==} - - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tsup@7.1.0: - resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} - engines: {node: '>=16.14'} - hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.1.0' - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - - type-fest@4.5.0: - resolution: {integrity: sha512-diLQivFzddJl4ylL3jxSkEc39Tpw7o1QeEHIPxVwryDK2lpB7Nqhzhuo6v5/Ls08Z0yPSAhsyAWlv1/H0ciNmw==} - engines: {node: '>=16'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - - typescript@4.1.6: - resolution: {integrity: sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - - ua-parser-js@0.7.37: - resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==} - - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - unc-path-regex@0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - - universal-user-agent@6.0.0: - resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-notifier@6.0.2: - resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} - engines: {node: '>=14.16'} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-join@5.0.0: - resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - - v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} - engines: {node: '>=10.12.0'} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - - wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - webpack-cli@4.10.0: - resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - '@webpack-cli/migrate': '*' - webpack: 4.x.x || 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - '@webpack-cli/migrate': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true - - webpack-dev-middleware@5.3.3: - resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - - webpack-dev-server@4.9.2: - resolution: {integrity: sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.73.0: - resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - webrtc-adapter@8.2.0: - resolution: {integrity: sha512-umxCMgedPAVq4Pe/jl3xmelLXLn4XZWFEMR5Iipb5wJ+k1xMX0yC4ZY9CueZUU1MjapFxai1tFGE7R/kotH6Ww==} - engines: {node: '>=6.0.0', npm: '>=3.10.0'} - - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - - whatwg-url@12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wildcard-match@5.1.2: - resolution: {integrity: sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==} - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - windows-release@5.1.1: - resolution: {integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - ws@8.14.2: - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.3.3: - resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} - engines: {node: '>= 14'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@adobe/css-tools@4.3.1': {} - - '@agora-js/media@4.20.0': + /@agora-js/media@4.22.0: + resolution: {integrity: sha512-6IYuzm6lUQ0xmkg70z+zc4GHSu+VdnuQvq8x12GnYKcKAUf13s3h6EMy68DLG4AjLU0c/bN2uNDt74u9Zwc7vQ==} dependencies: - '@agora-js/report': 4.20.0 - '@agora-js/shared': 4.20.0 + '@agora-js/report': 4.22.0 + '@agora-js/shared': 4.22.0 agora-rte-extension: 1.2.4 - axios: 0.27.2 - pako: 2.1.0 + axios: 1.7.2 webrtc-adapter: 8.2.0 transitivePeerDependencies: - debug + dev: false - '@agora-js/report@4.20.0': + /@agora-js/report@4.22.0: + resolution: {integrity: sha512-6LfrvRw9O97R1FP00vdPfS4hCjA8WMEllN7JDxTBnfPDaS+XHgu+ewcTkpSnhFVQG2pM45lwuE0G9F0RKLF5Jw==} dependencies: - '@agora-js/shared': 4.20.0 - axios: 0.27.2 + '@agora-js/shared': 4.22.0 + axios: 1.7.2 transitivePeerDependencies: - debug + dev: false - '@agora-js/shared@4.20.0': + /@agora-js/shared@4.22.0: + resolution: {integrity: sha512-taKwc0AqbwCHHJL/2VafRQ7thgOYC1c6tiRweL1X3QpfBjJdXYVjc9jn2zY9NAZO4l4+5f1S9t988d1536XPtQ==} dependencies: - axios: 0.27.2 + axios: 1.7.2 ua-parser-js: 0.7.37 transitivePeerDependencies: - debug + dev: false - '@agoraio-extensions/agora-rtc-sdk-ng-fake@1.0.12': {} + /@agoraio-extensions/agora-rtc-sdk-ng-fake@1.0.13: + resolution: {integrity: sha512-/aKmZwDxb4Vf50Bddbftz+vyibEcas9wrcfK5Qt5G1hONfoRegiub7h+dJhqubxRoFVARsGgBEB1NAFNOxICtQ==, tarball: https://npm.pkg.github.com/download/@agoraio-extensions/agora-rtc-sdk-ng-fake/1.0.13/73bd47268a178a4499e546f47c4bdeca3146560a} + dev: false - '@ampproject/remapping@2.2.1': + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 + dev: true - '@babel/code-frame@7.22.13': + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.20 chalk: 2.4.2 + dev: true - '@babel/compat-data@7.23.2': {} + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/core@7.23.2': + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 @@ -4851,38 +292,61 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - '@babel/generator@7.23.0': + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 + dev: true - '@babel/helper-compilation-targets@7.22.15': + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.23.2 '@babel/helper-validator-option': 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 + dev: true - '@babel/helper-environment-visitor@7.22.20': {} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-function-name@7.23.0': + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 '@babel/types': 7.23.0 + dev: true - '@babel/helper-hoist-variables@7.22.5': + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 + dev: true - '@babel/helper-module-imports@7.22.15': + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 + dev: true - '@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2)': + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.2 '@babel/helper-environment-visitor': 7.22.20 @@ -4890,122 +354,218 @@ snapshots: '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + dev: true - '@babel/helper-plugin-utils@7.22.5': {} + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-simple-access@7.22.5': + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 + dev: true - '@babel/helper-split-export-declaration@7.22.6': + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.0 + dev: true - '@babel/helper-string-parser@7.22.5': {} + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-identifier@7.22.20': {} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helper-validator-option@7.22.15': {} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true - '@babel/helpers@7.23.2': + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 '@babel/traverse': 7.23.2 '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/highlight@7.22.20': + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true - '@babel/parser@7.23.0': + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true dependencies: '@babel/types': 7.23.0 + dev: true - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2)': + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2)': + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2)': + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2)': + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2)': + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2)': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2)': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2)': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2)': + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.2 '@babel/helper-plugin-utils': 7.22.5 + dev: true - '@babel/runtime@7.23.2': + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 + dev: true - '@babel/template@7.22.15': + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 '@babel/parser': 7.23.0 '@babel/types': 7.23.0 + dev: true - '@babel/traverse@7.23.2': + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 '@babel/generator': 7.23.0 @@ -5019,100 +579,425 @@ snapshots: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true - '@babel/types@7.23.0': + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@commitlint/cli@17.8.1: + resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.8.1 + '@commitlint/lint': 17.8.1 + '@commitlint/load': 17.8.1 + '@commitlint/read': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional@17.8.1: + resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 6.1.0 + dev: true + + /@commitlint/config-validator@17.8.1: + resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.8.1 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@17.8.1: + resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.8.1 + 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 + dev: true + + /@commitlint/execute-rule@17.8.1: + resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/format@17.8.1: + resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.8.1 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@17.8.1: + resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.8.1 + semver: 7.5.4 + dev: true + + /@commitlint/lint@17.8.1: + resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.8.1 + '@commitlint/parse': 17.8.1 + '@commitlint/rules': 17.8.1 + '@commitlint/types': 17.8.1 + dev: true + + /@commitlint/load@17.8.1: + resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/execute-rule': 17.8.1 + '@commitlint/resolve-extends': 17.8.1 + '@commitlint/types': 17.8.1 + '@types/node': 20.5.1 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.5.3) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.1)(typescript@5.5.3) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1(@types/node@18.17.9)(typescript@5.5.3) + typescript: 5.5.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/message@17.8.1: + resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/parse@17.8.1: + resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.8.1 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 + dev: true + + /@commitlint/read@17.8.1: + resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.8.1 + '@commitlint/types': 17.8.1 + fs-extra: 11.2.0 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@17.8.1: + resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/types': 17.8.1 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@17.8.1: + resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.8.1 + '@commitlint/message': 17.8.1 + '@commitlint/to-lines': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + dev: true - '@bcoe/v8-coverage@0.2.3': {} + /@commitlint/to-lines@17.8.1: + resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/top-level@17.8.1: + resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} + engines: {node: '>=v14'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@17.8.1: + resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + dev: true - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 + dev: true - '@discoveryjs/json-ext@0.5.7': {} + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true - '@dsherret/to-absolute-glob@2.0.2': + /@dsherret/to-absolute-glob@2.0.2: + resolution: {integrity: sha512-InCaQ/KEOcFtAFztn47wadritBLP2nT6m/ucbBnIgI5YwxuMzKKCHtqazR2+D1yR6y1ZTnPea9aLFEUrTttUSQ==} + engines: {node: '>=0.10.0'} dependencies: is-absolute: 1.0.0 is-negated-glob: 1.0.0 + dev: true - '@esbuild/android-arm64@0.18.20': + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm@0.18.20': + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-x64@0.18.20': + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-arm64@0.18.20': + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-x64@0.18.20': + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-arm64@0.18.20': + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-x64@0.18.20': + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm64@0.18.20': + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm@0.18.20': + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ia32@0.18.20': + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-loong64@0.18.20': + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-mips64el@0.18.20': + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ppc64@0.18.20': + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-riscv64@0.18.20': + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-s390x@0.18.20': + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-x64@0.18.20': + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/netbsd-x64@0.18.20': + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/openbsd-x64@0.18.20': + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/sunos-x64@0.18.20': + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-arm64@0.18.20': + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-ia32@0.18.20': + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-x64@0.18.20': + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.4.1)': + /@eslint-community/eslint-utils@4.4.0(eslint@8.4.1): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.9.1': {} + /@eslint-community/regexpp@4.9.1: + resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/eslintrc@1.4.1': + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -5125,32 +1010,51 @@ snapshots: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - '@humanwhocodes/config-array@0.9.5': + /@humanwhocodes/config-array@0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true - '@humanwhocodes/object-schema@1.2.1': {} + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true - '@hutson/parse-repository-url@5.0.0': {} + /@hutson/parse-repository-url@5.0.0: + resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} + engines: {node: '>=10.13.0'} + dev: true - '@iarna/toml@2.2.5': {} + /@iarna/toml@2.2.5: + resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + dev: true - '@istanbuljs/load-nyc-config@1.1.0': + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} dependencies: camelcase: 5.3.1 find-up: 4.1.0 get-package-type: 0.1.0 js-yaml: 3.14.1 resolve-from: 5.0.0 + dev: true - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/console@29.7.0': + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.17.9 @@ -5158,8 +1062,16 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 + dev: true - '@jest/core@29.7.0(ts-node@10.9.1)': + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -5193,26 +1105,38 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - '@jest/environment@29.7.0': + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.17.9 jest-mock: 29.7.0 + dev: true - '@jest/expect-utils@29.7.0': + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: true - '@jest/expect@29.7.0': + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: expect: 29.7.0 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/fake-timers@29.7.0': + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 @@ -5220,8 +1144,11 @@ snapshots: jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - '@jest/globals@29.7.0': + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -5229,8 +1156,16 @@ snapshots: jest-mock: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - '@jest/reporters@29.7.0': + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -5258,32 +1193,47 @@ snapshots: v8-to-istanbul: 9.1.3 transitivePeerDependencies: - supports-color + dev: true - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 + dev: true - '@jest/source-map@29.6.3': + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.20 callsites: 3.1.0 graceful-fs: 4.2.11 + dev: true - '@jest/test-result@29.7.0': + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 collect-v8-coverage: 1.0.2 + dev: true - '@jest/test-sequencer@29.7.0': + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 slash: 3.0.0 + dev: true - '@jest/transform@29.7.0': + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.2 '@jest/types': 29.6.3 @@ -5302,8 +1252,11 @@ snapshots: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + dev: true - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 @@ -5311,55 +1264,92 @@ snapshots: '@types/node': 18.17.9 '@types/yargs': 17.0.29 chalk: 4.1.2 + dev: true - '@jridgewell/gen-mapping@0.3.3': + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 + dev: true - '@jridgewell/resolve-uri@3.1.1': {} + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true - '@jridgewell/set-array@1.1.2': {} + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true - '@jridgewell/source-map@0.3.5': + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 + dev: true - '@jridgewell/sourcemap-codec@1.4.15': {} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true - '@jridgewell/trace-mapping@0.3.20': + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true - '@leichtgewicht/ip-codec@2.0.4': {} + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true - '@ljharb/through@2.3.12': + /@ljharb/through@2.3.12: + resolution: {integrity: sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + dev: true - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 + dev: true - '@nodelib/fs.stat@2.0.5': {} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + dev: true - '@octokit/auth-token@3.0.4': {} + /@octokit/auth-token@3.0.4: + resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} + engines: {node: '>= 14'} + dev: true - '@octokit/core@4.2.4': + /@octokit/core@4.2.4: + resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} + engines: {node: '>= 14'} dependencies: '@octokit/auth-token': 3.0.4 '@octokit/graphql': 5.0.6 @@ -5370,45 +1360,73 @@ snapshots: universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding + dev: true - '@octokit/endpoint@7.0.6': + /@octokit/endpoint@7.0.6: + resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} + engines: {node: '>= 14'} dependencies: '@octokit/types': 9.3.2 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 + dev: true - '@octokit/graphql@5.0.6': + /@octokit/graphql@5.0.6: + resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} + engines: {node: '>= 14'} dependencies: '@octokit/request': 6.2.8 '@octokit/types': 9.3.2 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding + dev: true - '@octokit/openapi-types@18.1.1': {} + /@octokit/openapi-types@18.1.1: + resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} + dev: true - '@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4)': + /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): + resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=4' dependencies: '@octokit/core': 4.2.4 '@octokit/tsconfig': 1.0.2 '@octokit/types': 9.3.2 + dev: true - '@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4)': + /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4): + resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 4.2.4 + dev: true - '@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4)': + /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): + resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=3' dependencies: '@octokit/core': 4.2.4 '@octokit/types': 10.0.0 + dev: true - '@octokit/request-error@3.0.3': + /@octokit/request-error@3.0.3: + resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} + engines: {node: '>= 14'} dependencies: '@octokit/types': 9.3.2 deprecation: 2.3.1 once: 1.4.0 + dev: true - '@octokit/request@6.2.8': + /@octokit/request@6.2.8: + resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} + engines: {node: '>= 14'} dependencies: '@octokit/endpoint': 7.0.6 '@octokit/request-error': 3.0.3 @@ -5418,8 +1436,11 @@ snapshots: universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding + dev: true - '@octokit/rest@19.0.13': + /@octokit/rest@19.0.13: + resolution: {integrity: sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==} + engines: {node: '>= 14'} dependencies: '@octokit/core': 4.2.4 '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4) @@ -5427,54 +1448,103 @@ snapshots: '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4) transitivePeerDependencies: - encoding + dev: true - '@octokit/tsconfig@1.0.2': {} + /@octokit/tsconfig@1.0.2: + resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} + dev: true - '@octokit/types@10.0.0': + /@octokit/types@10.0.0: + resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} dependencies: '@octokit/openapi-types': 18.1.1 + dev: true - '@octokit/types@9.3.2': + /@octokit/types@9.3.2: + resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} dependencies: '@octokit/openapi-types': 18.1.1 + dev: true - '@pnpm/config.env-replace@1.1.0': {} + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + dev: true - '@pnpm/network.ca-file@1.0.2': + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} dependencies: graceful-fs: 4.2.10 + dev: true - '@pnpm/npm-conf@2.2.2': + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: true - '@release-it/conventional-changelog@7.0.1(release-it@16.3.0)': + /@release-it/conventional-changelog@7.0.1(release-it@16.3.0): + resolution: {integrity: sha512-qvMSzyaTWVCgbAFJ4OYb2HC2S+h47hqua6A/aYe5surdp9dXu47POz22tJUMyKr4z66g+nh2TElFqaWrLmOC3Q==} + engines: {node: '>=16'} + peerDependencies: + release-it: ^16.0.0 dependencies: concat-stream: 2.0.0 conventional-changelog: 5.1.0 conventional-recommended-bump: 8.0.0 - release-it: 16.3.0(typescript@5.1.6) + release-it: 16.3.0(typescript@5.5.3) semver: 7.5.4 + dev: true - '@sinclair/typebox@0.27.8': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@sindresorhus/is@5.6.0': {} + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: true - '@sinonjs/commons@3.0.0': + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} dependencies: type-detect: 4.0.8 + dev: true - '@sinonjs/fake-timers@10.3.0': + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.0 + dev: true - '@szmarczak/http-timer@5.0.1': + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} dependencies: defer-to-connect: 2.0.1 + dev: true - '@testing-library/jest-dom@6.1.3(@types/jest@29.5.3)(jest@29.7.0)': + /@testing-library/jest-dom@6.1.3(@types/jest@29.5.3)(jest@29.7.0): + resolution: {integrity: sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: '@adobe/css-tools': 4.3.1 '@babel/runtime': 7.23.2 @@ -5486,12 +1556,19 @@ snapshots: jest: 29.7.0(@types/node@18.17.9)(ts-node@10.9.1) lodash: 4.17.21 redent: 3.0.0 + dev: true - '@tootallnate/once@2.0.0': {} + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true - '@tootallnate/quickjs-emscripten@0.23.0': {} + /@tootallnate/quickjs-emscripten@0.23.0: + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + dev: true - '@ts-morph/common@0.7.5': + /@ts-morph/common@0.7.5: + resolution: {integrity: sha512-nlFunSKAsFWI0Ol/uPxJcpVqXxTGNuaWXTmoQDhcnwj1UM4QmBSUVWzqoQ0OzUlqo4sV1gobfFBkMHuZVemMAQ==} dependencies: '@dsherret/to-absolute-glob': 2.0.2 fast-glob: 3.3.2 @@ -5499,186 +1576,304 @@ snapshots: mkdirp: 1.0.4 multimatch: 5.0.0 typescript: 4.1.6 + dev: true - '@tsconfig/node10@1.0.9': {} + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true - '@tsconfig/node12@1.0.11': {} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true - '@tsconfig/node14@1.0.3': {} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true - '@tsconfig/node16@1.0.4': {} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true - '@types/babel__core@7.20.3': + /@types/babel__core@7.20.3: + resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} dependencies: '@babel/parser': 7.23.0 '@babel/types': 7.23.0 '@types/babel__generator': 7.6.6 '@types/babel__template': 7.4.3 '@types/babel__traverse': 7.20.3 + dev: true - '@types/babel__generator@7.6.6': + /@types/babel__generator@7.6.6: + resolution: {integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==} dependencies: '@babel/types': 7.23.0 + dev: true - '@types/babel__template@7.4.3': + /@types/babel__template@7.4.3: + resolution: {integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==} dependencies: '@babel/parser': 7.23.0 '@babel/types': 7.23.0 + dev: true - '@types/babel__traverse@7.20.3': + /@types/babel__traverse@7.20.3: + resolution: {integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==} dependencies: '@babel/types': 7.23.0 + dev: true - '@types/body-parser@1.19.4': + /@types/body-parser@1.19.4: + resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} dependencies: '@types/connect': 3.4.37 '@types/node': 18.17.9 + dev: true - '@types/bonjour@3.5.12': + /@types/bonjour@3.5.12: + resolution: {integrity: sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/connect-history-api-fallback@1.5.2': + /@types/connect-history-api-fallback@1.5.2: + resolution: {integrity: sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==} dependencies: '@types/express-serve-static-core': 4.17.38 '@types/node': 18.17.9 + dev: true - '@types/connect@3.4.37': + /@types/connect@3.4.37: + resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/eslint-scope@3.7.6': + /@types/eslint-scope@3.7.6: + resolution: {integrity: sha512-zfM4ipmxVKWdxtDaJ3MP3pBurDXOCoyjvlpE3u6Qzrmw4BPbfm4/ambIeTk/r/J0iq/+2/xp0Fmt+gFvXJY2PQ==} dependencies: '@types/eslint': 8.44.2 '@types/estree': 0.0.51 + dev: true - '@types/eslint@8.44.2': + /@types/eslint@8.44.2: + resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} dependencies: '@types/estree': 1.0.3 '@types/json-schema': 7.0.14 + dev: true - '@types/estree@0.0.51': {} + /@types/estree@0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + dev: true - '@types/estree@1.0.3': {} + /@types/estree@1.0.3: + resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} + dev: true - '@types/express-serve-static-core@4.17.38': + /@types/express-serve-static-core@4.17.38: + resolution: {integrity: sha512-hXOtc0tuDHZPFwwhuBJXPbjemWtXnJjbvuuyNH2Y5Z6in+iXc63c4eXYDc7GGGqHy+iwYqAJMdaItqdnbcBKmg==} dependencies: '@types/node': 18.17.9 '@types/qs': 6.9.9 '@types/range-parser': 1.2.6 '@types/send': 0.17.3 + dev: true - '@types/express@4.17.20': + /@types/express@4.17.20: + resolution: {integrity: sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==} dependencies: '@types/body-parser': 1.19.4 '@types/express-serve-static-core': 4.17.38 '@types/qs': 6.9.9 '@types/serve-static': 1.15.4 + dev: true - '@types/glob@7.2.0': + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 '@types/node': 18.17.9 + dev: true - '@types/graceful-fs@4.1.8': + /@types/graceful-fs@4.1.8: + resolution: {integrity: sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/html-minifier-terser@6.1.0': {} + /@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + dev: true - '@types/http-cache-semantics@4.0.3': {} + /@types/http-cache-semantics@4.0.3: + resolution: {integrity: sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==} + dev: true - '@types/http-errors@2.0.3': {} + /@types/http-errors@2.0.3: + resolution: {integrity: sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==} + dev: true - '@types/http-proxy@1.17.13': + /@types/http-proxy@1.17.13: + resolution: {integrity: sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/istanbul-lib-coverage@2.0.5': {} + /@types/istanbul-lib-coverage@2.0.5: + resolution: {integrity: sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==} + dev: true - '@types/istanbul-lib-report@3.0.2': + /@types/istanbul-lib-report@3.0.2: + resolution: {integrity: sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==} dependencies: '@types/istanbul-lib-coverage': 2.0.5 + dev: true - '@types/istanbul-reports@3.0.3': + /@types/istanbul-reports@3.0.3: + resolution: {integrity: sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==} dependencies: '@types/istanbul-lib-report': 3.0.2 + dev: true - '@types/jest@29.5.3': + /@types/jest@29.5.3: + resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: true - '@types/jsdom@20.0.1': + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: '@types/node': 18.17.9 '@types/tough-cookie': 4.0.4 parse5: 7.1.2 + dev: true + + /@types/json-schema@7.0.14: + resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true - '@types/json-schema@7.0.14': {} + /@types/mime@1.3.4: + resolution: {integrity: sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==} + dev: true - '@types/json5@0.0.29': {} + /@types/mime@3.0.3: + resolution: {integrity: sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ==} + dev: true - '@types/mime@1.3.4': {} + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: true - '@types/mime@3.0.3': {} + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true - '@types/minimatch@3.0.5': {} + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true - '@types/minimatch@5.1.2': {} + /@types/node@18.17.9: + resolution: {integrity: sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==} + dev: true - '@types/node@18.17.9': {} + /@types/node@20.5.1: + resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} + dev: true - '@types/normalize-package-data@2.4.3': {} + /@types/normalize-package-data@2.4.3: + resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} + dev: true - '@types/qs@6.9.9': {} + /@types/qs@6.9.9: + resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} + dev: true - '@types/range-parser@1.2.6': {} + /@types/range-parser@1.2.6: + resolution: {integrity: sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==} + dev: true - '@types/retry@0.12.0': {} + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true - '@types/semver@7.5.4': {} + /@types/semver@7.5.4: + resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + dev: true - '@types/send@0.17.3': + /@types/send@0.17.3: + resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} dependencies: '@types/mime': 1.3.4 '@types/node': 18.17.9 + dev: true - '@types/serve-index@1.9.3': + /@types/serve-index@1.9.3: + resolution: {integrity: sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg==} dependencies: '@types/express': 4.17.20 + dev: true - '@types/serve-static@1.15.4': + /@types/serve-static@1.15.4: + resolution: {integrity: sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==} dependencies: '@types/http-errors': 2.0.3 '@types/mime': 3.0.3 '@types/node': 18.17.9 + dev: true - '@types/sockjs@0.3.35': + /@types/sockjs@0.3.35: + resolution: {integrity: sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/stack-utils@2.0.2': {} + /@types/stack-utils@2.0.2: + resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==} + dev: true - '@types/tough-cookie@4.0.4': {} + /@types/tough-cookie@4.0.4: + resolution: {integrity: sha512-95Sfz4nvMAb0Nl9DTxN3j64adfwfbBPEYq14VN7zT5J5O2M9V6iZMIIQU1U+pJyl9agHYHNCqhCXgyEtIRRa5A==} + dev: true - '@types/ws@8.5.8': + /@types/ws@8.5.8: + resolution: {integrity: sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==} dependencies: '@types/node': 18.17.9 + dev: true - '@types/yargs-parser@21.0.2': {} + /@types/yargs-parser@21.0.2: + resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==} + dev: true - '@types/yargs@17.0.29': + /@types/yargs@17.0.29: + resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} dependencies: '@types/yargs-parser': 21.0.2 + dev: true - '@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.1.6)': + /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.5.3): + resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.5.3) '@typescript-eslint/scope-manager': 6.0.0 - '@typescript-eslint/type-utils': 6.0.0(eslint@8.4.1)(typescript@5.1.6) - '@typescript-eslint/utils': 6.0.0(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/type-utils': 6.0.0(eslint@8.4.1)(typescript@5.5.3) + '@typescript-eslint/utils': 6.0.0(eslint@8.4.1)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 6.0.0 debug: 4.3.4 eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) @@ -5688,42 +1883,74 @@ snapshots: natural-compare: 1.4.0 natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/parser@6.0.0(eslint@8.4.1)(typescript@5.1.6)': + /@typescript-eslint/parser@6.0.0(eslint@8.4.1)(typescript@5.5.3): + resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/scope-manager': 6.0.0 '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.5.3) '@typescript-eslint/visitor-keys': 6.0.0 debug: 4.3.4 eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) - typescript: 5.1.6 + typescript: 5.5.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/scope-manager@6.0.0': + /@typescript-eslint/scope-manager@6.0.0: + resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.0.0 '@typescript-eslint/visitor-keys': 6.0.0 + dev: true - '@typescript-eslint/type-utils@6.0.0(eslint@8.4.1)(typescript@5.1.6)': + /@typescript-eslint/type-utils@6.0.0(eslint@8.4.1)(typescript@5.5.3): + resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.0.0(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.5.3) + '@typescript-eslint/utils': 6.0.0(eslint@8.4.1)(typescript@5.5.3) debug: 4.3.4 eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/types@6.0.0': {} + /@typescript-eslint/types@6.0.0: + resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true - '@typescript-eslint/typescript-estree@6.0.0(typescript@5.1.6)': + /@typescript-eslint/typescript-estree@6.0.0(typescript@5.5.3): + resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@typescript-eslint/types': 6.0.0 '@typescript-eslint/visitor-keys': 6.0.0 @@ -5731,68 +1958,98 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 - ts-api-utils: 1.0.3(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.3(typescript@5.5.3) + typescript: 5.5.3 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@6.0.0(eslint@8.4.1)(typescript@5.1.6)': + /@typescript-eslint/utils@6.0.0(eslint@8.4.1)(typescript@5.5.3): + resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.4.1) '@types/json-schema': 7.0.14 '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.0.0 '@typescript-eslint/types': 6.0.0 - '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.5.3) eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-scope: 5.1.1 semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/visitor-keys@6.0.0': + /@typescript-eslint/visitor-keys@6.0.0: + resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.0.0 eslint-visitor-keys: 3.4.3 + dev: true - '@webassemblyjs/ast@1.11.1': + /@webassemblyjs/ast@1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: '@webassemblyjs/helper-numbers': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true - '@webassemblyjs/floating-point-hex-parser@1.11.1': {} + /@webassemblyjs/floating-point-hex-parser@1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + dev: true - '@webassemblyjs/helper-api-error@1.11.1': {} + /@webassemblyjs/helper-api-error@1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + dev: true - '@webassemblyjs/helper-buffer@1.11.1': {} + /@webassemblyjs/helper-buffer@1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + dev: true - '@webassemblyjs/helper-numbers@1.11.1': + /@webassemblyjs/helper-numbers@1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.1 '@webassemblyjs/helper-api-error': 1.11.1 '@xtuc/long': 4.2.2 + dev: true - '@webassemblyjs/helper-wasm-bytecode@1.11.1': {} + /@webassemblyjs/helper-wasm-bytecode@1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + dev: true - '@webassemblyjs/helper-wasm-section@1.11.1': + /@webassemblyjs/helper-wasm-section@1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 + dev: true - '@webassemblyjs/ieee754@1.11.1': + /@webassemblyjs/ieee754@1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} dependencies: '@xtuc/ieee754': 1.2.0 + dev: true - '@webassemblyjs/leb128@1.11.1': + /@webassemblyjs/leb128@1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} dependencies: '@xtuc/long': 4.2.2 + dev: true - '@webassemblyjs/utf8@1.11.1': {} + /@webassemblyjs/utf8@1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + dev: true - '@webassemblyjs/wasm-edit@1.11.1': + /@webassemblyjs/wasm-edit@1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 @@ -5802,23 +2059,29 @@ snapshots: '@webassemblyjs/wasm-opt': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 '@webassemblyjs/wast-printer': 1.11.1 + dev: true - '@webassemblyjs/wasm-gen@1.11.1': + /@webassemblyjs/wasm-gen@1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 '@webassemblyjs/ieee754': 1.11.1 '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 + dev: true - '@webassemblyjs/wasm-opt@1.11.1': + /@webassemblyjs/wasm-opt@1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 + dev: true - '@webassemblyjs/wasm-parser@1.11.1': + /@webassemblyjs/wasm-parser@1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-api-error': 1.11.1 @@ -5826,215 +2089,380 @@ snapshots: '@webassemblyjs/ieee754': 1.11.1 '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 + dev: true - '@webassemblyjs/wast-printer@1.11.1': + /@webassemblyjs/wast-printer@1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} dependencies: '@webassemblyjs/ast': 1.11.1 '@xtuc/long': 4.2.2 + dev: true - '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.73.0)': + /@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.73.0): + resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} + peerDependencies: + webpack: 4.x.x || 5.x.x + webpack-cli: 4.x.x dependencies: webpack: 5.73.0(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack-dev-server@4.9.2)(webpack@5.73.0) + dev: true - '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': + /@webpack-cli/info@1.5.0(webpack-cli@4.10.0): + resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} + peerDependencies: + webpack-cli: 4.x.x dependencies: envinfo: 7.10.0 webpack-cli: 4.10.0(webpack-dev-server@4.9.2)(webpack@5.73.0) + dev: true - '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)(webpack-dev-server@4.9.2)': + /@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)(webpack-dev-server@4.9.2): + resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} + peerDependencies: + webpack-cli: 4.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true dependencies: webpack-cli: 4.10.0(webpack-dev-server@4.9.2)(webpack@5.73.0) webpack-dev-server: 4.9.2(webpack-cli@4.10.0)(webpack@5.73.0) + dev: true - '@xtuc/ieee754@1.2.0': {} + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true - '@xtuc/long@4.2.2': {} + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true - JSONStream@1.3.5: + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true dependencies: jsonparse: 1.3.1 through: 2.3.8 + dev: true - abab@2.0.6: {} + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + dev: true - acorn-globals@7.0.1: + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: acorn: 8.10.0 acorn-walk: 8.2.0 + dev: true - acorn-import-assertions@1.9.0(acorn@8.10.0): + /acorn-import-assertions@1.9.0(acorn@8.10.0): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 dependencies: acorn: 8.10.0 + dev: true - acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.10.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.10.0 + dev: true - acorn-walk@8.2.0: {} + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true - acorn@8.10.0: {} + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true - add-stream@1.0.0: {} + /add-stream@1.0.0: + resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} + dev: true - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - agent-base@7.1.0: + /agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} dependencies: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - agora-rtc-sdk-ng@4.20.0: + /agora-rtc-sdk-ng@4.22.0: + resolution: {integrity: sha512-mP6BDNP6oV01IQV7yXZ4wIuwDpoHaK6ARiDVKDaD+fK3LXXWqUtCweZLwzTde+OYkauPEsivqNbkAp/q6Ggqtg==} dependencies: - '@agora-js/media': 4.20.0 - '@agora-js/report': 4.20.0 - '@agora-js/shared': 4.20.0 + '@agora-js/media': 4.22.0 + '@agora-js/report': 4.22.0 + '@agora-js/shared': 4.22.0 agora-rte-extension: 1.2.4 - axios: 0.27.2 + axios: 1.7.2 formdata-polyfill: 4.0.10 + pako: 2.1.0 ua-parser-js: 0.7.37 webrtc-adapter: 8.2.0 transitivePeerDependencies: - debug + dev: false - agora-rte-extension@1.2.4: {} + /agora-rte-extension@1.2.4: + resolution: {integrity: sha512-0ovZz1lbe30QraG1cU+ji7EnQ8aUu+Hf3F+a8xPml3wPOyUQEK6CTdxV9kMecr9t+fIDrGeW7wgJTsM1DQE7Nw==} + dev: false - ajv-formats@2.1.1(ajv@8.12.0): + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true dependencies: ajv: 8.12.0 + dev: true - ajv-keywords@3.5.2(ajv@6.12.6): + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 dependencies: ajv: 6.12.6 + dev: true - ajv-keywords@5.1.0(ajv@8.12.0): + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 + dev: true - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true - ajv@8.12.0: + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 + dev: true - ansi-align@3.0.1: + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 + dev: true - ansi-colors@4.1.3: {} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: true - ansi-html-community@0.0.8: {} + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true - any-promise@1.3.0: {} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 + dev: true - arg@4.1.3: {} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: true - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true - aria-query@5.3.0: + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + dev: true - array-buffer-byte-length@1.0.0: + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.2 + dev: true - array-differ@3.0.0: {} + /array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + dev: true - array-flatten@1.1.1: {} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true - array-flatten@2.1.2: {} + /array-flatten@2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true - array-ify@1.0.0: {} + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true - array-includes@3.1.7: + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 get-intrinsic: 1.2.1 is-string: 1.0.7 + dev: true - array-union@1.0.2: + /array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} dependencies: array-uniq: 1.0.3 + dev: true - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true - array-uniq@1.0.3: {} + /array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + dev: true - array.prototype.flat@1.3.2: + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 + dev: true - array.prototype.flatmap@1.3.2: + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 + dev: true - array.prototype.map@1.0.6: + /array.prototype.map@1.0.6: + resolution: {integrity: sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.2 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 + dev: true - arraybuffer.prototype.slice@1.0.2: + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.7 @@ -6043,29 +2471,54 @@ snapshots: get-intrinsic: 1.2.4 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 + dev: true - arrify@2.0.1: {} + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: true - ast-types@0.13.4: + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} dependencies: tslib: 2.6.2 + dev: true - async-retry@1.3.3: + /async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} dependencies: retry: 0.13.1 + dev: true - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - available-typed-arrays@1.0.5: {} + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true - axios@0.27.2: + /axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} dependencies: - follow-redirects: 1.15.3 + follow-redirects: 1.15.6 form-data: 4.0.0 + proxy-from-env: 1.1.0 transitivePeerDependencies: - debug + dev: false - babel-jest@29.7.0(@babel/core@7.23.2): + /babel-jest@29.7.0(@babel/core@7.23.2): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.23.2 '@jest/transform': 29.7.0 @@ -6077,8 +2530,11 @@ snapshots: slash: 3.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-istanbul@6.1.1: + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} dependencies: '@babel/helper-plugin-utils': 7.22.5 '@istanbuljs/load-nyc-config': 1.1.0 @@ -6087,15 +2543,22 @@ snapshots: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + dev: true - babel-plugin-jest-hoist@29.6.3: + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 '@babel/types': 7.23.0 '@types/babel__core': 7.20.3 '@types/babel__traverse': 7.20.3 + dev: true - babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.2): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.2): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.2 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) @@ -6110,40 +2573,69 @@ snapshots: '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) + dev: true - babel-preset-jest@29.6.3(@babel/core@7.23.2): + /babel-preset-jest@29.6.3(@babel/core@7.23.2): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.2 babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + dev: true - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true - basic-ftp@5.0.3: {} + /basic-ftp@5.0.3: + resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} + engines: {node: '>=10.0.0'} + dev: true - batch@0.6.1: {} + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true - before-after-hook@2.2.3: {} + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: true - big-integer@1.6.52: {} + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: true - binary-extensions@2.2.0: {} + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true - bl@4.1.0: + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 + dev: true - bl@5.1.0: + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} dependencies: buffer: 6.0.3 inherits: 2.0.4 readable-stream: 3.6.2 + dev: true - body-parser@1.20.1: + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6159,17 +2651,24 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - bonjour-service@1.1.1: + /bonjour-service@1.1.1: + resolution: {integrity: sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==} dependencies: array-flatten: 2.1.2 dns-equal: 1.0.0 fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 + dev: true - boolbase@1.0.0: {} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true - boxen@7.1.1: + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -6179,65 +2678,114 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: true - bplist-parser@0.2.0: + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} dependencies: big-integer: 1.6.52 + dev: true - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true - braces@3.0.2: + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 + dev: true - browserslist@4.22.1: + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: caniuse-lite: 1.0.30001550 electron-to-chromium: 1.4.559 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true - bs-logger@0.2.6: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 + dev: true - bser@2.1.1: + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true - buffer@5.7.1: + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: true - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: true - bundle-name@3.0.0: + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} dependencies: run-applescript: 5.0.0 + dev: true - bundle-require@4.0.2(esbuild@0.18.20): + /bundle-require@4.0.2(esbuild@0.18.20): + resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + peerDependenciesMeta: + esbuild: + optional: true dependencies: esbuild: 0.18.20 load-tsconfig: 0.2.5 + dev: true - bytes@3.0.0: {} + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true - cac@6.7.14: {} + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true - cacheable-lookup@7.0.0: {} + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + dev: true - cacheable-request@10.2.14: + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} dependencies: '@types/http-cache-semantics': 4.0.3 get-stream: 6.0.1 @@ -6246,58 +2794,108 @@ snapshots: mimic-response: 4.0.0 normalize-url: 8.0.0 responselike: 3.0.0 + dev: true - call-bind@1.0.2: + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.1 + dev: true - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.1 + dev: true - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - camel-case@4.1.2: + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 tslib: 2.6.2 + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true - camelcase@5.3.1: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true - camelcase@6.3.0: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true - camelcase@7.0.1: {} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: true - caniuse-lite@1.0.30001550: {} + /caniuse-lite@1.0.30001550: + resolution: {integrity: sha512-p82WjBYIypO0ukTsd/FG3Xxs+4tFeaY9pfT4amQL8KWtYH7H9nYwReGAbMTJ0hsmRO8IfDtsS6p3ZWj8+1c2RQ==} + dev: true - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true - chalk@3.0.0: + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true - char-regex@1.0.2: {} + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true - chardet@0.7.0: {} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true - chokidar@3.5.3: + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -6308,92 +2906,196 @@ snapshots: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true - chrome-trace-event@1.0.3: {} + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true - ci-info@3.9.0: {} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true - cjs-module-lexer@1.2.3: {} + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true - clean-css@5.3.2: + /clean-css@5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} + engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 + dev: true - clean-webpack-plugin@4.0.0(webpack@5.73.0): + /clean-webpack-plugin@4.0.0(webpack@5.73.0): + resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} + engines: {node: '>=10.0.0'} + peerDependencies: + webpack: '>=4.0.0 <6.0.0' dependencies: del: 4.1.1 webpack: 5.73.0(webpack-cli@4.10.0) + dev: true - cli-boxes@3.0.0: {} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: true - cli-cursor@3.1.0: + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 + dev: true - cli-cursor@4.0.0: + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true - cli-spinners@2.9.2: {} + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true - cli-width@4.1.0: {} + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: true - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: true - clone-deep@4.0.1: + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 + dev: true - clone@1.0.4: {} + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true - co@4.6.0: {} + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true - code-block-writer@10.1.1: {} + /code-block-writer@10.1.1: + resolution: {integrity: sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==} + dev: true - collect-v8-coverage@1.0.2: {} + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true - colorette@2.0.20: {} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - commander@2.20.3: {} + /commander@11.0.0: + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true - commander@4.1.1: {} + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true - commander@7.2.0: {} + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true - commander@8.3.0: {} + /commitlint@17.8.1: + resolution: {integrity: sha512-X+VPJwZsQDeGj/DG1NsxhZEl+oMHKNC+1myZ/zauNDoo+7OuLHfTOUU1C1a4CjKW4b6T7NuoFcYfK0kRCjCtbA==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/cli': 17.8.1 + '@commitlint/types': 17.8.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true - compare-func@2.0.0: + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 + dev: true - compressible@2.0.18: + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: true - compression@1.7.4: + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -6404,50 +3106,98 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: true - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - concat-stream@2.0.0: + /concat-stream@2.0.0: + resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} + engines: {'0': node >= 6.0} dependencies: buffer-from: 1.1.2 inherits: 2.0.4 readable-stream: 3.6.2 typedarray: 0.0.6 + dev: true - config-chain@1.1.13: + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 proto-list: 1.2.4 + dev: true - configstore@6.0.0: + /configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} dependencies: dot-prop: 6.0.1 graceful-fs: 4.2.11 unique-string: 3.0.0 write-file-atomic: 3.0.3 xdg-basedir: 5.1.0 + dev: true - connect-history-api-fallback@1.6.0: {} + /connect-history-api-fallback@1.6.0: + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} + engines: {node: '>=0.8'} + dev: true - content-disposition@0.5.4: + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 + dev: true - content-type@1.0.5: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + + /conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} + dependencies: + compare-func: 2.0.0 + dev: true - conventional-changelog-angular@7.0.0: + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} dependencies: compare-func: 2.0.0 + dev: true - conventional-changelog-atom@4.0.0: {} + /conventional-changelog-atom@4.0.0: + resolution: {integrity: sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==} + engines: {node: '>=16'} + dev: true + + /conventional-changelog-codemirror@4.0.0: + resolution: {integrity: sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==} + engines: {node: '>=16'} + dev: true - conventional-changelog-codemirror@4.0.0: {} + /conventional-changelog-conventionalcommits@6.1.0: + resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} + engines: {node: '>=14'} + dependencies: + compare-func: 2.0.0 + dev: true - conventional-changelog-conventionalcommits@7.0.2: + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} dependencies: compare-func: 2.0.0 + dev: true - conventional-changelog-core@7.0.0: + /conventional-changelog-core@7.0.0: + resolution: {integrity: sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==} + engines: {node: '>=16'} dependencies: '@hutson/parse-repository-url': 5.0.0 add-stream: 1.0.0 @@ -6459,22 +3209,44 @@ snapshots: normalize-package-data: 6.0.0 read-pkg: 8.1.0 read-pkg-up: 10.1.0 + dev: true - conventional-changelog-ember@4.0.0: {} + /conventional-changelog-ember@4.0.0: + resolution: {integrity: sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==} + engines: {node: '>=16'} + dev: true - conventional-changelog-eslint@5.0.0: {} + /conventional-changelog-eslint@5.0.0: + resolution: {integrity: sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==} + engines: {node: '>=16'} + dev: true - conventional-changelog-express@4.0.0: {} + /conventional-changelog-express@4.0.0: + resolution: {integrity: sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==} + engines: {node: '>=16'} + dev: true - conventional-changelog-jquery@5.0.0: {} + /conventional-changelog-jquery@5.0.0: + resolution: {integrity: sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==} + engines: {node: '>=16'} + dev: true - conventional-changelog-jshint@4.0.0: + /conventional-changelog-jshint@4.0.0: + resolution: {integrity: sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==} + engines: {node: '>=16'} dependencies: compare-func: 2.0.0 + dev: true - conventional-changelog-preset-loader@4.1.0: {} + /conventional-changelog-preset-loader@4.1.0: + resolution: {integrity: sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==} + engines: {node: '>=16'} + dev: true - conventional-changelog-writer@7.0.1: + /conventional-changelog-writer@7.0.1: + resolution: {integrity: sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==} + engines: {node: '>=16'} + hasBin: true dependencies: conventional-commits-filter: 4.0.0 handlebars: 4.7.8 @@ -6482,8 +3254,11 @@ snapshots: meow: 12.1.1 semver: 7.6.0 split2: 4.2.0 + dev: true - conventional-changelog@5.1.0: + /conventional-changelog@5.1.0: + resolution: {integrity: sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==} + engines: {node: '>=16'} dependencies: conventional-changelog-angular: 7.0.0 conventional-changelog-atom: 4.0.0 @@ -6496,17 +3271,39 @@ snapshots: conventional-changelog-jquery: 5.0.0 conventional-changelog-jshint: 4.0.0 conventional-changelog-preset-loader: 4.1.0 + dev: true + + /conventional-commits-filter@4.0.0: + resolution: {integrity: sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==} + engines: {node: '>=16'} + dev: true - conventional-commits-filter@4.0.0: {} + /conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + meow: 8.1.2 + split2: 3.2.2 + dev: true - conventional-commits-parser@5.0.0: + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true dependencies: JSONStream: 1.3.5 is-text-path: 2.0.0 meow: 12.1.1 split2: 4.2.0 + dev: true - conventional-recommended-bump@8.0.0: + /conventional-recommended-bump@8.0.0: + resolution: {integrity: sha512-yvGN+VMy00WIe/pJufpmN+I4B2cM/WFK+CFCmDcjyVLyQR6J1KT2iecmA4NQ58gQAiNkvStEjcZp/W9h1JDM1A==} + engines: {node: '>=16'} + hasBin: true dependencies: concat-stream: 2.0.0 conventional-changelog-preset-loader: 4.1.0 @@ -6515,24 +3312,60 @@ snapshots: git-raw-commits: 4.0.0 git-semver-tags: 6.0.0 meow: 12.1.1 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true - convert-source-map@2.0.0: {} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true - cookie-signature@1.0.6: {} + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true - cookie@0.5.0: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true - core-util-is@1.0.3: {} + /cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.1)(typescript@5.5.3): + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=4' + dependencies: + '@types/node': 20.5.1 + cosmiconfig: 8.3.6(typescript@5.5.3) + ts-node: 10.9.1(@types/node@18.17.9)(typescript@5.5.3) + typescript: 5.5.3 + dev: true - cosmiconfig@8.3.6(typescript@5.1.6): + /cosmiconfig@8.3.6(typescript@5.5.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.1.6 + typescript: 5.5.3 + dev: true - create-jest@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 @@ -6546,134 +3379,276 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true - create-require@1.1.1: {} + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true - crypto-random-string@4.0.0: + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} dependencies: type-fest: 1.4.0 + dev: true - css-select@4.3.0: + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 4.3.1 domutils: 2.8.0 nth-check: 2.1.1 + dev: true - css-what@6.1.0: {} + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true - css.escape@1.5.1: {} + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true - cssfontparser@1.2.1: {} + /cssfontparser@1.2.1: + resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} + dev: true - cssom@0.3.8: {} + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true - cssom@0.5.0: {} + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true - cssstyle@2.3.0: + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} dependencies: cssom: 0.3.8 + dev: true - cssstyle@3.0.0: + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} dependencies: rrweb-cssom: 0.6.0 + dev: true + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true - dargs@8.1.0: {} + /dargs@8.1.0: + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} + dev: true - data-uri-to-buffer@4.0.1: {} + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: true - data-uri-to-buffer@6.0.1: {} + /data-uri-to-buffer@6.0.1: + resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} + engines: {node: '>= 14'} + dev: true - data-urls@3.0.2: + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 + dev: true - data-urls@4.0.0: + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 12.0.1 + dev: true - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 + dev: true - debug@3.2.7: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - debug@4.3.4: + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true - decimal.js@10.4.3: {} + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - decompress-response@6.0.0: + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 + dev: true - dedent@1.5.1: {} + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deep-extend@0.6.0: {} + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true - deep-is@0.1.4: {} + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - deepmerge@4.3.1: {} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true - default-browser-id@3.0.0: + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 + dev: true - default-browser@4.0.0: + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 execa: 7.2.0 titleize: 3.0.0 + dev: true - default-gateway@6.0.3: + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} dependencies: execa: 5.1.1 + dev: true - defaults@1.0.4: + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 + dev: true - defer-to-connect@2.0.1: {} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + dev: true - define-lazy-prop@2.0.0: {} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true - define-lazy-prop@3.0.0: {} + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + dev: true - degenerator@5.0.1: + /degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} dependencies: ast-types: 0.13.4 escodegen: 2.1.0 esprima: 4.0.1 + dev: true - del@4.1.1: + /del@4.1.1: + resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} + engines: {node: '>=6'} dependencies: '@types/glob': 7.2.0 globby: 6.1.0 @@ -6682,123 +3657,226 @@ snapshots: p-map: 2.1.0 pify: 4.0.1 rimraf: 2.7.1 + dev: true - delayed-stream@1.0.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - depd@1.1.2: {} + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true - depd@2.0.0: {} + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true - deprecation@2.3.1: {} + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: true - dequal@2.0.3: {} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true - detect-newline@3.1.0: {} + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - detect-node@2.1.0: {} + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: {} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: true - dns-equal@1.0.0: {} + /dns-equal@1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true - dns-packet@5.6.1: + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.4 + dev: true - doctrine@2.1.0: + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true - dom-accessibility-api@0.5.16: {} + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true - dom-converter@0.2.0: + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} dependencies: utila: 0.4.0 + dev: true - dom-serializer@1.4.1: + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 + dev: true - domelementtype@2.3.0: {} + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true - domexception@4.0.0: + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} dependencies: webidl-conversions: 7.0.0 + dev: true - domhandler@4.3.1: + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 + dev: true - domutils@2.8.0: + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 + dev: true - dot-case@3.0.4: + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 tslib: 2.6.2 + dev: true - dot-prop@5.3.0: + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} dependencies: is-obj: 2.0.0 + dev: true - dot-prop@6.0.1: + /dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} dependencies: is-obj: 2.0.0 + dev: true - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true - ee-first@1.1.1: {} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true - electron-to-chromium@1.4.559: {} + /electron-to-chromium@1.4.559: + resolution: {integrity: sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==} + dev: true - emittery@0.13.1: {} + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emoji-regex@10.3.0: {} + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true - emoji-regex@8.0.0: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true - emoji-regex@9.2.2: {} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true - encodeurl@1.0.2: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true - enhanced-resolve@5.15.0: + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + dev: true - enquirer@2.4.1: + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + dev: true - entities@2.2.0: {} + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true - envinfo@7.10.0: {} + /envinfo@7.10.0: + resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} + engines: {node: '>=4'} + hasBin: true + dev: true - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true - es-abstract@1.22.2: + /es-abstract@1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 @@ -6839,16 +3917,26 @@ snapshots: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.11 + dev: true - es-array-method-boxes-properly@1.0.0: {} + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 + dev: true - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true - es-get-iterator@1.1.3: + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -6859,26 +3947,41 @@ snapshots: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 + dev: true - es-module-lexer@0.9.3: {} + /es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + dev: true - es-set-tostringtag@2.0.1: + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has: 1.0.4 has-tostringtag: 1.0.0 + dev: true - es-shim-unscopables@1.0.0: + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: has: 1.0.4 + dev: true - es-to-primitive@1.2.1: + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 + dev: true - esbuild@0.18.20: + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/android-arm': 0.18.20 '@esbuild/android-arm64': 0.18.20 @@ -6902,58 +4005,122 @@ snapshots: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + dev: true - escalade@3.1.1: {} + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true - escape-goat@4.0.0: {} + /escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + dev: true - escape-html@1.0.3: {} + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true - escape-string-regexp@1.0.5: {} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true - escape-string-regexp@2.0.0: {} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - escape-string-regexp@4.0.0: {} + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true - escape-string-regexp@5.0.0: {} + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true - escodegen@2.1.0: + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 + dev: true - eslint-config-prettier@8.8.0(eslint@8.4.1): + /eslint-config-prettier@8.8.0(eslint@8.4.1): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) + dev: true - eslint-import-resolver-node@0.3.9: + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.13.0 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.9)(eslint@8.4.1): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.9)(eslint@8.4.1): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: - '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.5.3) debug: 3.2.7 eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-auto-import@0.1.1(patch_hash=onhenmqddvrrcrygblukpimkmm): + /eslint-plugin-auto-import@0.1.1(patch_hash=onhenmqddvrrcrygblukpimkmm): + resolution: {integrity: sha512-H3RX0wmRq/MLIf3ZMLEy9OyvQKUGxWIsi+TJenicgGptJzdQnQe6XheGlFlqnqUjpy3CQW/1KiF7UNTNxM6Xhw==} + engines: {node: '>=0.10.0'} dependencies: requireindex: 1.1.0 ts-morph: 9.1.0 + dev: true + patched: true - eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.4.1): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.4.1): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: - '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/parser': 6.0.0(eslint@8.4.1)(typescript@5.5.3) array-includes: 3.1.7 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 @@ -6974,42 +4141,85 @@ snapshots: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.4.1)(prettier@2.0.5): + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.4.1)(prettier@2.0.5): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true dependencies: eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-config-prettier: 8.8.0(eslint@8.4.1) prettier: 2.0.5 prettier-linter-helpers: 1.0.0 + dev: true - eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.0.0)(eslint@8.4.1): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.0.0)(eslint@8.4.1): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.4.1)(typescript@5.5.3) eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-rule-composer: 0.3.0 + dev: true - eslint-rule-composer@0.3.0: {} + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-utils@3.0.0(eslint@8.4.1): + /eslint-utils@3.0.0(eslint@8.4.1): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm) eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint@8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm): + /eslint@8.4.1(patch_hash=6gbsiwqckd4dvo3ed3l26envlm): + resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.9.5 @@ -7051,36 +4261,74 @@ snapshots: v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color + dev: true + patched: true - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.3 + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true - esquery@1.5.0: + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true - estraverse@4.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - estraverse@5.3.0: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true - esutils@2.0.3: {} + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true - etag@1.8.1: {} + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true - eventemitter3@4.0.7: {} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true - events@3.3.0: {} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -7091,8 +4339,11 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 strip-final-newline: 2.0.0 + dev: true - execa@7.2.0: + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -7103,18 +4354,27 @@ snapshots: onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 + dev: true - exit@0.1.2: {} + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true - expect@29.7.0: + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: true - express@4.18.2: + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -7149,62 +4409,100 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: true - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true - fast-diff@1.3.0: {} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: true - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fastest-levenshtein@1.0.16: {} + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true - fastq@1.15.0: + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 + dev: true - faye-websocket@0.11.4: + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} dependencies: websocket-driver: 0.7.4 + dev: true - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true - fetch-blob@3.2.0: + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - figures@5.0.0: + /figures@5.0.0: + resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} + engines: {node: '>=14'} dependencies: escape-string-regexp: 5.0.0 is-unicode-supported: 1.3.0 + dev: true - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.1.1 + dev: true - fill-range@7.0.1: + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: true - finalhandler@1.2.0: + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -7215,104 +4513,212 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true - find-up@6.3.0: + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: locate-path: 7.2.0 path-exists: 5.0.0 + dev: true - flat-cache@3.1.1: + /flat-cache@3.1.1: + resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} + engines: {node: '>=12.0.0'} dependencies: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true - flat@5.0.2: {} + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true - flatted@3.2.9: {} + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true - follow-redirects@1.15.3: {} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false - for-each@0.3.3: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true - form-data-encoder@2.1.4: {} + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + dev: true - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - formdata-polyfill@4.0.10: + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.2.0 - forwarded@0.2.0: {} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true - fresh@0.5.2: {} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true - fs-extra@8.1.0: + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: true - fs-monkey@1.0.5: {} + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - function.prototype.name@1.1.6: + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.2 functions-have-names: 1.2.3 + dev: true - functional-red-black-tree@1.0.1: {} + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true - functions-have-names@1.2.3: {} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true - get-intrinsic@1.2.1: + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.2 has: 1.0.4 has-proto: 1.0.1 has-symbols: 1.0.3 + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.1 + dev: true - get-package-type@0.1.0: {} + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true - get-symbol-description@1.0.0: + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: true - get-uri@6.0.2: + /get-uri@6.0.2: + resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} + engines: {node: '>= 14'} dependencies: basic-ftp: 5.0.3 data-uri-to-buffer: 6.0.1 @@ -7320,43 +4726,81 @@ snapshots: fs-extra: 8.1.0 transitivePeerDependencies: - supports-color + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true - git-raw-commits@4.0.0: + /git-raw-commits@4.0.0: + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} + hasBin: true dependencies: dargs: 8.1.0 meow: 12.1.1 split2: 4.2.0 + dev: true - git-semver-tags@6.0.0: + /git-semver-tags@6.0.0: + resolution: {integrity: sha512-v5BL6psuUy+Ftuo99141XlOIDoJtKw5+YyDANS7fknSP0iT4cVIanc3toDsH4K+VpIWc19l2/xkwQmXMfloeUA==} + engines: {node: '>=16'} + hasBin: true dependencies: meow: 12.1.1 semver: 7.6.0 + dev: true - git-semver-tags@7.0.1: + /git-semver-tags@7.0.1: + resolution: {integrity: sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==} + engines: {node: '>=16'} + hasBin: true dependencies: meow: 12.1.1 semver: 7.6.0 + dev: true - git-up@7.0.0: + /git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} dependencies: is-ssh: 1.4.0 parse-url: 8.1.0 + dev: true - git-url-parse@13.1.0: + /git-url-parse@13.1.0: + resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} dependencies: git-up: 7.0.0 + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: true - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true - glob-to-regexp@0.4.1: {} + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true - glob@7.1.6: + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7364,8 +4808,10 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7373,22 +4819,44 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true - global-dirs@3.0.1: + /global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} dependencies: ini: 2.0.0 + dev: true - globals@11.12.0: {} + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true - globals@13.23.0: + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - globalthis@1.0.3: + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + dev: true - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -7396,28 +4864,39 @@ snapshots: ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 + dev: true - globby@13.2.2: + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 + dev: true - globby@6.1.0: + /globby@6.1.0: + resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} + engines: {node: '>=0.10.0'} dependencies: array-union: 1.0.2 glob: 7.2.3 object-assign: 4.1.1 pify: 2.3.0 pinkie-promise: 2.0.1 + dev: true - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 + dev: true - got@12.6.1: + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -7430,8 +4909,11 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 + dev: true - got@13.0.0: + /got@13.0.0: + resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} + engines: {node: '>=16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -7444,18 +4926,32 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 + dev: true - graceful-fs@4.2.10: {} + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true - grapheme-splitter@1.0.4: {} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - handle-thing@2.0.1: {} + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true - handlebars@4.7.8: + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -7463,55 +4959,118 @@ snapshots: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.17.4 + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true - has-bigints@1.0.2: {} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 + dev: true - has-proto@1.0.1: {} + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true - has-tostringtag@1.0.0: + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - has-yarn@3.0.0: {} + /has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - has@1.0.4: {} + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: true - hasown@2.0.1: + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true - he@1.2.0: {} + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true - hosted-git-info@7.0.1: + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hosted-git-info@7.0.1: + resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.0.1 + dev: true - hpack.js@2.1.6: + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.8 wbuf: 1.7.3 + dev: true - html-encoding-sniffer@3.0.0: + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} dependencies: whatwg-encoding: 2.0.0 + dev: true - html-entities@2.4.0: {} + /html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} + dev: true - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - html-minifier-terser@6.1.0: + /html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true dependencies: camel-case: 4.1.2 clean-css: 5.3.2 @@ -7520,8 +5079,13 @@ snapshots: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.22.0 + dev: true - html-webpack-plugin@5.5.0(webpack@5.73.0): + /html-webpack-plugin@5.5.0(webpack@5.73.0): + resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} + engines: {node: '>=10.13.0'} + peerDependencies: + webpack: ^5.20.0 dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -7529,51 +5093,79 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 webpack: 5.73.0(webpack-cli@4.10.0) + dev: true - htmlparser2@6.1.0: + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 + dev: true - http-cache-semantics@4.1.1: {} + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true - http-deceiver@1.2.7: {} + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true - http-errors@1.6.3: + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 + dev: true - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 + dev: true - http-parser-js@0.5.8: {} + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true - http-proxy-agent@5.0.0: + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - http-proxy-agent@7.0.2: + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - http-proxy-middleware@2.0.6(@types/express@4.17.20): + /http-proxy-middleware@2.0.6(@types/express@4.17.20): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true dependencies: '@types/express': 4.17.20 '@types/http-proxy': 1.17.13 @@ -7583,82 +5175,150 @@ snapshots: micromatch: 4.0.5 transitivePeerDependencies: - debug + dev: true - http-proxy@1.18.1: + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.3 requires-port: 1.0.0 transitivePeerDependencies: - debug + dev: true - http2-wrapper@2.2.0: + /http2-wrapper@2.2.0: + resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: true - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - https-proxy-agent@7.0.4: + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true - human-signals@2.1.0: {} + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true - human-signals@4.3.1: {} + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true - ignore@4.0.6: {} + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true - ignore@5.2.4: {} + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true - import-lazy@4.0.0: {} + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true - import-local@3.1.0: + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + dev: true - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - indent-string@4.0.0: {} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true - inherits@2.0.3: {} + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true - ini@2.0.0: {} + /ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true - inquirer@9.2.11: + /inquirer@9.2.11: + resolution: {integrity: sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==} + engines: {node: '>=14.18.0'} dependencies: '@ljharb/through': 2.3.12 ansi-escapes: 4.3.2 @@ -7675,215 +5335,426 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: true - internal-slot@1.0.5: + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has: 1.0.4 side-channel: 1.0.4 + dev: true - interpret@1.4.0: {} + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: true - interpret@2.2.0: {} + /interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true - ip@1.1.8: {} + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: true - ip@2.0.0: {} + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true - ipaddr.js@1.9.1: {} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true - ipaddr.js@2.1.0: {} + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + dev: true - is-absolute@1.0.0: + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} dependencies: is-relative: 1.0.0 is-windows: 1.0.2 + dev: true - is-arguments@1.1.1: + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.0 + dev: true - is-array-buffer@3.0.2: + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 is-typed-array: 1.1.12 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true - is-bigint@1.0.4: + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 + dev: true - is-boolean-object@1.1.2: + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.0 + dev: true - is-callable@1.2.7: {} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true - is-ci@3.0.1: + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true dependencies: ci-info: 3.9.0 + dev: true - is-core-module@2.13.0: + /is-core-module@2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.4 + dev: true - is-date-object@1.0.5: + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true - is-docker@2.2.1: {} + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true - is-docker@3.0.0: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true - is-extglob@2.1.1: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true - is-generator-fn@2.1.0: {} + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 + dev: true - is-inside-container@1.0.0: + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: is-docker: 3.0.0 + dev: true - is-installed-globally@0.4.0: + /is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} dependencies: global-dirs: 3.0.1 is-path-inside: 3.0.3 + dev: true - is-interactive@1.0.0: {} + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true - is-interactive@2.0.0: {} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true - is-map@2.0.2: {} + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true - is-negated-glob@1.0.0: {} + /is-negated-glob@1.0.0: + resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} + engines: {node: '>=0.10.0'} + dev: true - is-negative-zero@2.0.2: {} + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true - is-npm@6.0.0: {} + /is-npm@6.0.0: + resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - is-number-object@1.0.7: + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true - is-obj@2.0.0: {} + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true - is-path-cwd@2.2.0: {} + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true - is-path-in-cwd@2.1.0: + /is-path-in-cwd@2.1.0: + resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} + engines: {node: '>=6'} dependencies: is-path-inside: 2.1.0 + dev: true - is-path-inside@2.1.0: + /is-path-inside@2.1.0: + resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} + engines: {node: '>=6'} dependencies: path-is-inside: 1.0.2 + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true - is-path-inside@3.0.3: {} + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true - is-plain-obj@3.0.0: {} + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true - is-plain-object@2.0.4: + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 + dev: true - is-plain-object@5.0.0: {} + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-regex@1.1.4: + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.0 + dev: true - is-relative@1.0.0: + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} dependencies: is-unc-path: 1.0.0 + dev: true - is-set@2.0.2: {} + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true - is-shared-array-buffer@1.0.2: + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.7 + dev: true - is-ssh@1.4.0: + /is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} dependencies: protocols: 2.0.1 + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true - is-stream@3.0.0: {} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - is-string@1.0.7: + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 + dev: true - is-symbol@1.0.4: + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - is-text-path@2.0.0: + /is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} dependencies: text-extensions: 2.4.0 + dev: true - is-typed-array@1.1.12: + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.11 + dev: true - is-typedarray@1.0.0: {} + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true - is-unc-path@1.0.0: + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} dependencies: unc-path-regex: 0.1.2 + dev: true - is-unicode-supported@0.1.0: {} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true - is-unicode-supported@1.3.0: {} + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true - is-weakref@1.0.2: + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 + dev: true - is-windows@1.0.2: {} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: true - is-yarn-global@0.4.1: {} + /is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} + dev: true - isarray@1.0.0: {} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true - isarray@2.0.5: {} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - isobject@3.0.1: {} + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true - issue-parser@6.0.0: + /issue-parser@6.0.0: + resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} + engines: {node: '>=10.13'} dependencies: lodash.capitalize: 4.2.1 lodash.escaperegexp: 4.1.2 lodash.isplainobject: 4.0.6 lodash.isstring: 4.0.1 lodash.uniqby: 4.7.0 + dev: true - istanbul-lib-coverage@3.2.0: {} + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true - istanbul-lib-instrument@5.2.1: + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} dependencies: '@babel/core': 7.23.2 '@babel/parser': 7.23.0 @@ -7892,8 +5763,11 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-instrument@6.0.1: + /istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + engines: {node: '>=10'} dependencies: '@babel/core': 7.23.2 '@babel/parser': 7.23.0 @@ -7902,45 +5776,66 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.0 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@4.0.1: + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} dependencies: debug: 4.3.4 istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.6: + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - iterate-iterator@1.0.2: {} + /iterate-iterator@1.0.2: + resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} + dev: true - iterate-value@1.0.2: + /iterate-value@1.0.2: + resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} dependencies: es-get-iterator: 1.1.3 iterate-iterator: 1.0.2 + dev: true - jest-canvas-mock@2.5.2: + /jest-canvas-mock@2.5.2: + resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==} dependencies: cssfontparser: 1.2.1 moo-color: 1.0.3 + dev: true - jest-changed-files@29.7.0: + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 jest-util: 29.7.0 p-limit: 3.1.0 + dev: true - jest-circus@29.7.0: + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/expect': 29.7.0 @@ -7965,8 +5860,17 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-cli@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/test-result': 29.7.0 @@ -7984,8 +5888,19 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - jest-config@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true dependencies: '@babel/core': 7.23.2 '@jest/test-sequencer': 29.7.0 @@ -8010,31 +5925,48 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@18.17.9)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@18.17.9)(typescript@5.5.3) transitivePeerDependencies: - babel-plugin-macros - supports-color + dev: true - jest-diff@29.7.0: + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-docblock@29.7.0: + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 + dev: true - jest-each@29.7.0: + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 jest-util: 29.7.0 pretty-format: 29.7.0 + dev: true - jest-environment-jsdom@29.7.0: + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -8048,8 +5980,11 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jest-environment-node@29.7.0: + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -8057,10 +5992,16 @@ snapshots: '@types/node': 18.17.9 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: true - jest-get-type@29.6.3: {} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-haste-map@29.7.0: + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.8 @@ -8075,20 +6016,29 @@ snapshots: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + dev: true - jest-leak-detector@29.7.0: + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-matcher-utils@29.7.0: + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-message-util@29.7.0: + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.22.13 '@jest/types': 29.6.3 @@ -8099,27 +6049,47 @@ snapshots: pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 + dev: true - jest-mock@29.7.0: + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.17.9 jest-util: 29.7.0 + dev: true - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true dependencies: jest-resolve: 29.7.0 + dev: true - jest-regex-util@29.6.3: {} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jest-resolve-dependencies@29.7.0: + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color + dev: true - jest-resolve@29.7.0: + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 @@ -8130,8 +6100,11 @@ snapshots: resolve: 1.22.8 resolve.exports: 2.0.2 slash: 3.0.0 + dev: true - jest-runner@29.7.0: + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.7.0 '@jest/environment': 29.7.0 @@ -8156,8 +6129,11 @@ snapshots: source-map-support: 0.5.13 transitivePeerDependencies: - supports-color + dev: true - jest-runtime@29.7.0: + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 @@ -8183,8 +6159,11 @@ snapshots: strip-bom: 4.0.0 transitivePeerDependencies: - supports-color + dev: true - jest-snapshot@29.7.0: + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.2 '@babel/generator': 7.23.0 @@ -8208,8 +6187,11 @@ snapshots: semver: 7.6.0 transitivePeerDependencies: - supports-color + dev: true - jest-util@29.7.0: + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/node': 18.17.9 @@ -8217,8 +6199,11 @@ snapshots: ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: true - jest-validate@29.7.0: + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -8226,8 +6211,11 @@ snapshots: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 + dev: true - jest-watcher@29.7.0: + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 @@ -8237,21 +6225,36 @@ snapshots: emittery: 0.13.1 jest-util: 29.7.0 string-length: 4.0.2 + dev: true - jest-worker@27.5.1: + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/node': 18.17.9 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: true - jest-worker@29.7.0: + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.17.9 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: true - jest@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + /jest@29.7.0(@types/node@18.17.9)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true dependencies: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 @@ -8262,21 +6265,40 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + dev: true - joycon@3.1.1: {} + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: true - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 + dev: true - jsdom@20.0.3: + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: abab: 2.0.6 acorn: 8.10.0 @@ -8308,8 +6330,16 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jsdom@22.1.0: + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true dependencies: abab: 2.0.6 cssstyle: 3.0.0 @@ -8338,325 +6368,762 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true - json-parse-even-better-errors@3.0.0: {} + /json-parse-even-better-errors@3.0.0: + resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - json-stringify-safe@5.0.1: {} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true - json5@1.0.2: + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true - json5@2.2.3: {} + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true - jsonfile@4.0.0: + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + dev: true - jsonparse@1.3.1: {} + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true - latest-version@7.0.0: + /latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} dependencies: package-json: 8.1.1 + dev: true - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true - lilconfig@2.1.0: {} + /lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - lines-and-columns@1.2.4: {} + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.0.0 + debug: 4.3.4 + execa: 7.2.0 + lilconfig: 2.1.0 + listr2: 6.6.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true - lines-and-columns@2.0.3: {} + /listr2@6.6.1: + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 + rfdc: 1.4.1 + wrap-ansi: 8.1.0 + dev: true - load-tsconfig@0.2.5: {} + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - loader-runner@4.3.0: {} + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true - locate-path@7.2.0: + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 + dev: true + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.capitalize@4.2.1: + resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==} + dev: true + + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: true + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: true - lodash.capitalize@4.2.1: {} + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true - lodash.escaperegexp@4.1.2: {} + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true - lodash.isplainobject@4.0.6: {} + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true - lodash.isstring@4.0.1: {} + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true - lodash.memoize@4.1.2: {} + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true - lodash.merge@4.6.2: {} + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true - lodash.sortby@4.7.0: {} + /lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + dev: true - lodash.uniqby@4.7.0: {} + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: true - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true - log-symbols@4.1.0: + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 + dev: true - log-symbols@5.1.0: + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} dependencies: chalk: 5.3.0 is-unicode-supported: 1.3.0 + dev: true + + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true - lower-case@2.0.2: + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.6.2 + dev: true - lowercase-keys@3.0.0: {} + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - lru-cache@10.0.1: {} + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + dev: true - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: true - lru-cache@7.18.3: {} + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true - macos-release@3.2.0: {} + /macos-release@3.2.0: + resolution: {integrity: sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: semver: 7.6.0 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true - makeerror@1.0.12: + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true - memfs@3.5.3: + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.5 + dev: true + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + dev: true - meow@12.1.1: {} + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true - merge-descriptors@1.0.1: {} + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true - methods@1.1.2: {} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true - micromatch@4.0.5: + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 + dev: true - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - mime@1.6.0: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true - mimic-fn@2.1.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true - mimic-fn@4.0.0: {} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true - mimic-response@3.1.0: {} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true - mimic-response@4.0.0: {} + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - min-indent@1.0.1: {} + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true - minimalistic-assert@1.0.1: {} + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true - mkdirp@1.0.4: {} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true - moo-color@1.0.3: + /moo-color@1.0.3: + resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} dependencies: color-name: 1.1.4 + dev: true - ms@2.0.0: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true - multicast-dns@7.2.5: + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true dependencies: dns-packet: 5.6.1 thunky: 1.1.0 + dev: true - multimatch@5.0.0: + /multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} dependencies: '@types/minimatch': 3.0.5 array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 minimatch: 3.1.2 + dev: true - mute-stream@1.0.0: {} + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true - mz@2.7.0: + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 + dev: true - natural-compare-lite@1.4.0: {} + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true - natural-compare@1.4.0: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - negotiator@0.6.3: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true - neo-async@2.6.2: {} + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true - netmask@2.0.2: {} + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: true - new-github-release-url@2.0.0: + /new-github-release-url@2.0.0: + resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: type-fest: 2.19.0 + dev: true - no-case@3.0.4: + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 tslib: 2.6.2 + dev: true - node-domexception@1.0.0: {} + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} - node-fetch@2.7.0: + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 + dev: true - node-fetch@3.3.2: + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + dev: true + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true - node-forge@1.3.1: {} + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true - node-int64@0.4.0: {} + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true - node-releases@2.0.13: {} + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.0 + semver: 7.6.0 + validate-npm-package-license: 3.0.4 + dev: true - normalize-package-data@6.0.0: + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.0 semver: 7.6.0 validate-npm-package-license: 3.0.4 + dev: true - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true - normalize-url@8.0.0: {} + /normalize-url@8.0.0: + resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} + engines: {node: '>=14.16'} + dev: true - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 + dev: true - npm-run-path@5.1.0: + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 + dev: true - nth-check@2.1.1: + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 + dev: true - nwsapi@2.2.7: {} + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true - object-inspect@1.13.0: {} + /object-inspect@1.13.0: + resolution: {integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==} + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true - object.assign@4.1.4: + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true - object.values@1.1.7: + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 define-properties: 1.2.1 es-abstract: 1.22.2 + dev: true - obuf@1.1.2: {} + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: true - on-headers@1.0.2: {} + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 + dev: true - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 + dev: true - onetime@6.0.0: + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 + dev: true - open@8.4.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: true - open@9.1.0: + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} dependencies: default-browser: 4.0.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 + dev: true - optionator@0.9.3: + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} dependencies: '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 @@ -8664,8 +7131,11 @@ snapshots: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - ora@5.4.1: + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -8676,8 +7146,11 @@ snapshots: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 + dev: true - ora@7.0.1: + /ora@7.0.1: + resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} + engines: {node: '>=16'} dependencies: chalk: 5.3.0 cli-cursor: 4.0.0 @@ -8688,46 +7161,89 @@ snapshots: stdin-discarder: 0.1.0 string-width: 6.1.0 strip-ansi: 7.1.0 + dev: true - os-name@5.1.0: + /os-name@5.1.0: + resolution: {integrity: sha512-YEIoAnM6zFmzw3PQ201gCVCIWbXNyKObGlVvpAVvraAeOHnlYVKFssbA/riRX5R40WA6kKrZ7Dr7dWzO3nKSeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: macos-release: 3.2.0 windows-release: 5.1.1 + dev: true - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true - p-cancelable@3.0.0: {} + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + dev: true - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 + dev: true - p-limit@4.0.0: + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 + dev: true - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true - p-locate@6.0.0: + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 + dev: true - p-map@2.1.0: {} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true - p-retry@4.6.2: + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + dev: true - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true - pac-proxy-agent@7.0.1: + /pac-proxy-agent@7.0.1: + resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + engines: {node: '>= 14'} dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.0 @@ -8739,132 +7255,250 @@ snapshots: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color + dev: true - pac-resolver@7.0.0: + /pac-resolver@7.0.0: + resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} + engines: {node: '>= 14'} dependencies: degenerator: 5.0.1 ip: 1.1.8 netmask: 2.0.2 + dev: true - package-json@8.1.1: + /package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 semver: 7.6.0 + dev: true - pako@2.1.0: {} + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + dev: false - param-case@3.0.4: + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 + dev: true - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - parse-json@7.1.0: + /parse-json@7.1.0: + resolution: {integrity: sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==} + engines: {node: '>=16'} dependencies: '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 type-fest: 3.13.1 + dev: true - parse-path@7.0.0: + /parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} dependencies: protocols: 2.0.1 + dev: true - parse-url@8.1.0: + /parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} dependencies: parse-path: 7.0.0 + dev: true - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 + dev: true - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true - pascal-case@3.1.2: + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 tslib: 2.6.2 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-exists@4.0.0: {} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - path-exists@5.0.0: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: true - path-is-inside@1.0.2: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true - path-key@3.1.1: {} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true - path-key@4.0.0: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true - path-parse@1.0.7: {} + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true - path-to-regexp@0.1.7: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true - path-type@4.0.0: {} + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true - picocolors@1.0.0: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - picomatch@2.3.1: {} + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true - pinkie-promise@2.0.1: + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 + dev: true - pinkie@2.0.4: {} + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true - pirates@4.0.6: {} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: true - postcss-load-config@4.0.1: + /postcss-load-config@4.0.1(ts-node@10.9.1): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: lilconfig: 2.1.0 + ts-node: 10.9.1(@types/node@18.17.9)(typescript@5.5.3) yaml: 2.3.3 + dev: true - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - prettier-linter-helpers@1.0.0: + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 + dev: true - prettier@2.0.5: {} + /prettier@2.0.5: + resolution: {integrity: sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true - pretty-error@4.0.0: + /pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} dependencies: lodash: 4.17.21 renderkid: 3.0.0 + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 + dev: true - process-nextick-args@2.0.1: {} + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true - progress@2.0.3: {} + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true - promise.allsettled@1.0.7: + /promise.allsettled@1.0.7: + resolution: {integrity: sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==} + engines: {node: '>= 0.4'} dependencies: array.prototype.map: 1.0.6 call-bind: 1.0.7 @@ -8872,22 +7506,35 @@ snapshots: es-abstract: 1.22.2 get-intrinsic: 1.2.4 iterate-value: 1.0.2 + dev: true - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 + dev: true - proto-list@1.2.4: {} + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + dev: true - protocols@2.0.1: {} + /protocols@2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + dev: true - proxy-addr@2.0.7: + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 + dev: true - proxy-agent@6.3.1: + /proxy-agent@6.3.1: + resolution: {integrity: sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 @@ -8899,65 +7546,131 @@ snapshots: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color + dev: true - proxy-from-env@1.1.0: {} + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - punycode@2.3.0: {} + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true - pupa@3.1.0: + /pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} dependencies: escape-goat: 4.0.0 + dev: true - pure-rand@6.0.4: {} + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true - qs@6.11.0: + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true - querystringify@2.2.0: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true - queue-microtask@1.2.3: {} + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true - quick-lru@5.1.1: {} + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 + dev: true - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true - raw-body@2.5.1: + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 + dev: true - rc@1.2.8: + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + dev: true - react-is@18.2.0: {} + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true - read-pkg-up@10.1.0: + /read-pkg-up@10.1.0: + resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==} + engines: {node: '>=16'} dependencies: find-up: 6.3.0 read-pkg: 8.1.0 type-fest: 4.5.0 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.3 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true - read-pkg@8.1.0: + /read-pkg@8.1.0: + resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} + engines: {node: '>=16'} dependencies: '@types/normalize-package-data': 2.4.3 normalize-package-data: 6.0.0 parse-json: 7.1.0 type-fest: 4.5.0 + dev: true - readable-stream@2.3.8: + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -8966,57 +7679,93 @@ snapshots: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 + dev: true - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + dev: true - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: true - rechoir@0.6.2: + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} dependencies: resolve: 1.22.8 + dev: true - rechoir@0.7.1: + /rechoir@0.7.1: + resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} + engines: {node: '>= 0.10'} dependencies: resolve: 1.22.8 + dev: true - redent@3.0.0: + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 + dev: true - regenerator-runtime@0.14.0: {} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: true - regexp.prototype.flags@1.5.1: + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 set-function-name: 2.0.1 + dev: true - regexpp@3.2.0: {} + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true - registry-auth-token@5.0.2: + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} dependencies: '@pnpm/npm-conf': 2.2.2 + dev: true - registry-url@6.0.1: + /registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} dependencies: rc: 1.2.8 + dev: true - relateurl@0.2.7: {} + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true - release-it@16.3.0(typescript@5.1.6): + /release-it@16.3.0(typescript@5.5.3): + resolution: {integrity: sha512-CP+WwKbgEvXreq6Iz9po3BtcyELtTxrt5RXRGnazQ0eCphPxFZR29+8sEZRCsJq2IKvlwb5mFUbf92u426oQog==} + engines: {node: '>=16'} + hasBin: true dependencies: '@iarna/toml': 2.2.5 '@octokit/rest': 19.0.13 async-retry: 1.3.3 chalk: 5.3.0 - cosmiconfig: 8.3.6(typescript@5.1.6) + cosmiconfig: 8.3.6(typescript@5.5.3) execa: 7.2.0 git-url-parse: 13.1.0 globby: 13.2.2 @@ -9043,146 +7792,273 @@ snapshots: - encoding - supports-color - typescript + dev: true - renderkid@3.0.0: + /renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} dependencies: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 lodash: 4.17.21 strip-ansi: 6.0.1 + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true - requireindex@1.1.0: {} + /requireindex@1.1.0: + resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} + engines: {node: '>=0.10.5'} + dev: true - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - resolve-alpn@1.2.1: {} + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve-from@4.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true - resolve-from@5.0.0: {} + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true - resolve.exports@2.0.2: {} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - responselike@3.0.0: + /responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} dependencies: lowercase-keys: 3.0.0 + dev: true - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: true - restore-cursor@4.0.0: + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 + dev: true + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true - retry@0.13.1: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true - reusify@1.0.4: {} + /rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + dev: true - rimraf@2.7.1: + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true dependencies: glob: 7.2.3 + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: glob: 7.2.3 + dev: true - rollup@3.29.4: + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true optionalDependencies: fsevents: 2.3.3 + dev: true - rrweb-cssom@0.6.0: {} + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true - run-applescript@5.0.0: + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} dependencies: execa: 5.1.1 + dev: true - run-async@3.0.0: {} + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: true - rxjs@7.8.1: + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.2 + dev: true - safe-array-concat@1.0.1: + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true - safe-regex-test@1.0.0: + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 is-regex: 1.1.4 + dev: true - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - schema-utils@3.3.0: + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.14 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true - schema-utils@4.2.0: + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.14 ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) + dev: true - sdp@3.2.0: {} + /sdp@3.2.0: + resolution: {integrity: sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==} + dev: false - select-hose@2.0.0: {} + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true - selfsigned@2.1.1: + /selfsigned@2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} + engines: {node: '>=10'} dependencies: node-forge: 1.3.1 + dev: true - semver-diff@4.0.0: + /semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} dependencies: semver: 7.6.0 + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true - semver@7.5.4: + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 + dev: true - semver@7.6.0: + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 + dev: true - send@0.18.0: + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -9199,12 +8075,17 @@ snapshots: statuses: 2.0.1 transitivePeerDependencies: - supports-color + dev: true - serialize-javascript@6.0.1: + /serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} dependencies: randombytes: 2.1.0 + dev: true - serve-index@1.9.1: + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -9215,8 +8096,11 @@ snapshots: parseurl: 1.3.3 transitivePeerDependencies: - supports-color + dev: true - serve-static@1.15.0: + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -9224,8 +8108,11 @@ snapshots: send: 0.18.0 transitivePeerDependencies: - supports-color + dev: true - set-function-length@1.2.1: + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -9233,99 +8120,170 @@ snapshots: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 + dev: true - set-function-name@2.0.1: + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: true - setprototypeof@1.1.0: {} + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true - shallow-clone@3.0.1: + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true - shelljs@0.8.5: + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 + dev: true - side-channel@1.0.4: + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 object-inspect: 1.13.0 + dev: true - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true - sisteransi@1.0.5: {} + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true - slash@3.0.0: {} + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true - slash@4.0.0: {} + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true - smart-buffer@4.2.0: {} + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true - sockjs@0.3.24: + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 + dev: true - socks-proxy-agent@8.0.2: + /socks-proxy-agent@8.0.2: + resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 debug: 4.3.4 socks: 2.7.1 transitivePeerDependencies: - supports-color + dev: true - socks@2.7.1: + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} dependencies: ip: 2.0.0 smart-buffer: 4.2.0 + dev: true - source-map-support@0.5.13: + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true - source-map@0.6.1: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true - source-map@0.8.0-beta.0: + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} dependencies: whatwg-url: 7.1.0 + dev: true - spdx-correct@3.2.0: + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.16 + dev: true - spdx-exceptions@2.3.0: {} + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true - spdx-expression-parse@3.0.1: + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.16 + dev: true - spdx-license-ids@3.0.16: {} + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true - spdy-transport@3.0.0: + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} dependencies: debug: 4.3.4 detect-node: 2.1.0 @@ -9335,8 +8293,11 @@ snapshots: wbuf: 1.7.3 transitivePeerDependencies: - supports-color + dev: true - spdy@4.0.2: + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} dependencies: debug: 4.3.4 handle-thing: 2.0.1 @@ -9345,101 +8306,186 @@ snapshots: spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + dev: true - split2@4.2.0: {} + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 + dev: true - statuses@1.5.0: {} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true - stdin-discarder@0.1.0: + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: bl: 5.1.0 + dev: true - stop-iteration-iterator@1.0.0: + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.5 + dev: true - string-length@4.0.2: + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} dependencies: char-regex: 1.0.2 strip-ansi: 6.0.1 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + dev: true - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: true - string-width@6.1.0: + /string-width@6.1.0: + resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} + engines: {node: '>=16'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 10.3.0 strip-ansi: 7.1.0 + dev: true - string.prototype.trim@1.2.8: + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.2 + dev: true - string.prototype.trimend@1.0.7: + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.2 + dev: true - string.prototype.trimstart@1.0.7: + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.2 + dev: true - string_decoder@1.1.1: + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 + dev: true - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 + dev: true - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 + dev: true - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true - strip-bom@3.0.0: {} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true - strip-bom@4.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true - strip-final-newline@3.0.0: {} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true - strip-indent@3.0.0: + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true - strip-json-comments@2.0.1: {} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - sucrase@3.34.0: + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 @@ -9448,26 +8494,58 @@ snapshots: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: true - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - tapable@2.2.1: {} + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true - terser-webpack-plugin@5.3.9(webpack@5.73.0): + /terser-webpack-plugin@5.3.9(webpack@5.73.0): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 jest-worker: 27.5.1 @@ -9475,82 +8553,179 @@ snapshots: serialize-javascript: 6.0.1 terser: 5.22.0 webpack: 5.73.0(webpack-cli@4.10.0) + dev: true - terser@5.22.0: + /terser@5.22.0: + resolution: {integrity: sha512-hHZVLgRA2z4NWcN6aS5rQDc+7Dcy58HOf2zbYwmFcQ+ua3h6eEFf5lIDKTzbWwlazPyOZsFQO8V80/IjVNExEw==} + engines: {node: '>=10'} + hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 acorn: 8.10.0 commander: 2.20.3 source-map-support: 0.5.21 + dev: true - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - text-extensions@2.4.0: {} + /text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + dev: true - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - thenify-all@1.6.0: + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 + dev: true - thenify@3.3.1: + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 + dev: true - through@2.3.8: {} + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true - thunky@1.1.0: {} + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true - titleize@3.0.0: {} + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 + dev: true - tmpl@1.0.5: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true - tough-cookie@4.1.3: + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.0 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true - tr46@1.0.1: + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: punycode: 2.3.0 + dev: true - tr46@3.0.0: + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} dependencies: punycode: 2.3.0 + dev: true - tr46@4.1.1: + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} dependencies: punycode: 2.3.0 + dev: true - tree-kill@1.2.2: {} + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true - ts-api-utils@1.0.3(typescript@5.1.6): + /ts-api-utils@1.0.3(typescript@5.5.3): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.5.3 + dev: true - ts-interface-checker@0.1.13: {} + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true - ts-jest@29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.1.6): + /ts-jest@29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.1.6): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true dependencies: '@babel/core': 7.23.2 bs-logger: 0.2.6 @@ -9563,23 +8738,75 @@ snapshots: semver: 7.5.4 typescript: 5.1.6 yargs-parser: 21.1.1 + dev: true - ts-loader@9.3.1(typescript@5.1.6)(webpack@5.73.0): + /ts-loader@9.3.1(typescript@5.1.6)(webpack@5.73.0): + resolution: {integrity: sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 dependencies: chalk: 4.1.2 enhanced-resolve: 5.15.0 micromatch: 4.0.5 semver: 7.5.4 typescript: 5.1.6 - webpack: 5.73.0(webpack-cli@4.10.0) - - ts-morph@9.1.0: - dependencies: - '@dsherret/to-absolute-glob': 2.0.2 - '@ts-morph/common': 0.7.5 - code-block-writer: 10.1.1 + webpack: 5.73.0(webpack-cli@4.10.0) + dev: true + + /ts-morph@9.1.0: + resolution: {integrity: sha512-sei4u651MBenr27sD6qLDXN3gZ4thiX71E3qV7SuVtDas0uvK2LtgZkIYUf9DKm/fLJ6AB/+yhRJ1vpEBJgy7Q==} + dependencies: + '@dsherret/to-absolute-glob': 2.0.2 + '@ts-morph/common': 0.7.5 + code-block-writer: 10.1.1 + dev: true + + /ts-node@10.9.1(@types/node@18.17.9)(typescript@5.1.6): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.17.9 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.1.6 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true - ts-node@10.9.1(@types/node@18.17.9)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@18.17.9)(typescript@5.5.3): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 @@ -9593,20 +8820,39 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.5.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + dev: true - tsconfig-paths@3.14.2: + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true - tslib@2.6.2: {} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true - tsup@7.1.0(typescript@5.1.6): + /tsup@7.1.0(ts-node@10.9.1)(typescript@5.5.3): + resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true dependencies: bundle-require: 4.0.2(esbuild@0.18.20) cac: 6.7.14 @@ -9616,112 +8862,225 @@ snapshots: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1 + postcss-load-config: 4.0.1(ts-node@10.9.1) resolve-from: 5.0.0 rollup: 3.29.4 source-map: 0.8.0-beta.0 sucrase: 3.34.0 tree-kill: 1.2.2 - typescript: 5.1.6 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - ts-node + dev: true - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true - type-detect@4.0.8: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true - type-fest@0.20.2: {} + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true - type-fest@0.21.3: {} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true - type-fest@1.4.0: {} + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true - type-fest@2.19.0: {} + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: true - type-fest@3.13.1: {} + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true - type-fest@4.5.0: {} + /type-fest@4.5.0: + resolution: {integrity: sha512-diLQivFzddJl4ylL3jxSkEc39Tpw7o1QeEHIPxVwryDK2lpB7Nqhzhuo6v5/Ls08Z0yPSAhsyAWlv1/H0ciNmw==} + engines: {node: '>=16'} + dev: true - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + dev: true - typed-array-buffer@1.0.0: + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 is-typed-array: 1.1.12 + dev: true - typed-array-byte-length@1.0.0: + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 + dev: true - typed-array-byte-offset@1.0.0: + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.7 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 + dev: true - typed-array-length@1.0.4: + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: call-bind: 1.0.7 for-each: 0.3.3 is-typed-array: 1.1.12 + dev: true - typedarray-to-buffer@3.1.5: + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 + dev: true + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + dev: true - typedarray@0.0.6: {} + /typescript@4.1.6: + resolution: {integrity: sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true - typescript@4.1.6: {} + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + dev: true - typescript@5.1.6: {} + /typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true - ua-parser-js@0.7.37: {} + /ua-parser-js@0.7.37: + resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==} + dev: false - uglify-js@3.17.4: + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true optional: true - unbox-primitive@1.0.2: + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + dev: true - unc-path-regex@0.1.2: {} + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true - unique-string@3.0.0: + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} dependencies: crypto-random-string: 4.0.0 + dev: true + + /universal-user-agent@6.0.0: + resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} + dev: true - universal-user-agent@6.0.0: {} + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@0.1.2: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@0.2.0: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true - untildify@4.0.0: {} + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true - update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 + dev: true - update-notifier@6.0.2: + /update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} dependencies: boxen: 7.1.1 chalk: 5.3.0 @@ -9737,73 +9096,142 @@ snapshots: semver: 7.6.0 semver-diff: 4.0.0 xdg-basedir: 5.1.0 + dev: true - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.0 + dev: true - url-join@5.0.0: {} + /url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true - utila@0.4.0: {} + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + dev: true - utils-merge@1.0.1: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true - uuid@8.3.2: {} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true - v8-compile-cache-lib@3.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true - v8-compile-cache@2.4.0: {} + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true - v8-to-istanbul@9.1.3: + /v8-to-istanbul@9.1.3: + resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 '@types/istanbul-lib-coverage': 2.0.5 convert-source-map: 2.0.0 + dev: true - validate-npm-package-license@3.0.4: + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + dev: true - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true - w3c-xmlserializer@4.0.0: + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} dependencies: xml-name-validator: 4.0.0 + dev: true - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: true - watchpack@2.4.0: + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + dev: true - wbuf@1.7.3: + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: minimalistic-assert: 1.0.1 + dev: true - wcwidth@1.0.1: + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 + dev: true - web-streams-polyfill@3.2.1: {} + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} - webidl-conversions@3.0.1: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true - webidl-conversions@4.0.2: {} + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true - webidl-conversions@7.0.0: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - webpack-cli@4.10.0(webpack-dev-server@4.9.2)(webpack@5.73.0): + /webpack-cli@4.10.0(webpack-dev-server@4.9.2)(webpack@5.73.0): + resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + '@webpack-cli/migrate': '*' + webpack: 4.x.x || 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + '@webpack-cli/migrate': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.73.0) @@ -9819,8 +9247,13 @@ snapshots: webpack: 5.73.0(webpack-cli@4.10.0) webpack-dev-server: 4.9.2(webpack-cli@4.10.0)(webpack@5.73.0) webpack-merge: 5.10.0 + dev: true - webpack-dev-middleware@5.3.3(webpack@5.73.0): + /webpack-dev-middleware@5.3.3(webpack@5.73.0): + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -9828,8 +9261,18 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 webpack: 5.73.0(webpack-cli@4.10.0) + dev: true - webpack-dev-server@4.9.2(webpack-cli@4.10.0)(webpack@5.73.0): + /webpack-dev-server@4.9.2(webpack-cli@4.10.0)(webpack@5.73.0): + resolution: {integrity: sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: '@types/bonjour': 3.5.12 '@types/connect-history-api-fallback': 1.5.2 @@ -9867,16 +9310,31 @@ snapshots: - debug - supports-color - utf-8-validate + dev: true - webpack-merge@5.10.0: + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 + dev: true - webpack-sources@3.2.3: {} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true - webpack@5.73.0(webpack-cli@4.10.0): + /webpack@5.73.0(webpack-cli@4.10.0): + resolution: {integrity: sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: '@types/eslint-scope': 3.7.6 '@types/estree': 0.0.51 @@ -9907,131 +9365,238 @@ snapshots: - '@swc/core' - esbuild - uglify-js + dev: true - webrtc-adapter@8.2.0: + /webrtc-adapter@8.2.0: + resolution: {integrity: sha512-umxCMgedPAVq4Pe/jl3xmelLXLn4XZWFEMR5Iipb5wJ+k1xMX0yC4ZY9CueZUU1MjapFxai1tFGE7R/kotH6Ww==} + engines: {node: '>=6.0.0', npm: '>=3.10.0'} dependencies: sdp: 3.2.0 + dev: false - websocket-driver@0.7.4: + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 + dev: true - websocket-extensions@0.1.4: {} + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true - whatwg-encoding@2.0.0: + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-mimetype@3.0.0: {} + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true - whatwg-url@11.0.0: + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 + dev: true - whatwg-url@12.0.1: + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} dependencies: tr46: 4.1.1 webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: true - whatwg-url@7.1.0: + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 + dev: true - which-boxed-primitive@1.0.2: + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true - which-typed-array@1.1.11: + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 + dev: true - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - widest-line@4.0.1: + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 + dev: true - wildcard-match@5.1.2: {} + /wildcard-match@5.1.2: + resolution: {integrity: sha512-qNXwI591Z88c8bWxp+yjV60Ch4F8Riawe3iGxbzquhy8Xs9m+0+SLFBGb/0yCTIDElawtaImC37fYZ+dr32KqQ==} + dev: true - wildcard@2.0.1: {} + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true - windows-release@5.1.1: + /windows-release@5.1.1: + resolution: {integrity: sha512-NMD00arvqcq2nwqc5Q6KtrSRHK+fVD31erE5FEMahAw5PmVCgD7MUXodq3pdZSUkqA9Cda2iWx6s1XYwiJWRmw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: execa: 5.1.1 + dev: true - wordwrap@1.0.0: {} + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true - wrap-ansi@6.2.0: + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true - write-file-atomic@3.0.3: + /write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 + dev: true - write-file-atomic@4.0.2: + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + dev: true + + /ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true - ws@8.14.2: {} + /xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true - xdg-basedir@5.1.0: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - xml-name-validator@4.0.0: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true - xmlchars@2.2.0: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true - y18n@5.0.8: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true - yallist@3.1.1: {} + /yaml@2.3.1: + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} + dev: true - yallist@4.0.0: {} + /yaml@2.3.3: + resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} + engines: {node: '>= 14'} + dev: true - yaml@2.3.3: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -10040,9 +9605,19 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: true - yn@3.1.1: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true - yocto-queue@1.0.0: {} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/scripts/terra/binding.ts b/scripts/terra/binding.ts index b4da4d08..5b0b148f 100644 --- a/scripts/terra/binding.ts +++ b/scripts/terra/binding.ts @@ -60,9 +60,6 @@ export function binding(parseResult: ParseResult) { }); cxxfile.nodes = nodes.map((node: CXXTerraNode) => { - if (node.name === 'IRtcEngineEventHandler') { - // debugger; - } let hasSupportApi = false; node.asClazz().methods.map((method) => { diff --git a/scripts/terra/config/binding_configs.yaml b/scripts/terra/config/binding_configs.yaml index ebbb9eca..779c6891 100644 --- a/scripts/terra/config/binding_configs.yaml +++ b/scripts/terra/config/binding_configs.yaml @@ -4,13 +4,14 @@ parsers: package: '@agoraio-extensions/cxx-parser' args: includeHeaderDirs: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include' parseFiles: include: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/*.h' exclude: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/time_utils.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/IAgoraMediaComponentFactory.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/time_utils.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/rte_*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/IAgoraMediaComponentFactory.h' - name: IrisApiIdParser package: '@agoraio-extensions/terra_shared_configs' diff --git a/scripts/terra/config/support_list.json b/scripts/terra/config/support_list.json index 73af6390..63b3adde 100644 --- a/scripts/terra/config/support_list.json +++ b/scripts/terra/config/support_list.json @@ -46,6 +46,11 @@ "RtcEngine_stopEffect_46f8ab7", "RtcEngine_playEffect_531a783", "RtcEngine_stopAllEffects", + "RtcEngine_setLocalRenderMode_bedb5ae", + "RtcEngine_setLocalRenderMode_cfb201b", + "RtcEngine_setLocalVideoMirrorMode_b8a6c69", + "RtcEngine_setRemoteRenderMode_6771ce0", + "RtcEngineEx_setRemoteRenderModeEx_a72fe4e", "RtcEngineEx_joinChannelEx_a3cd08c", "RtcEngineEx_muteAllRemoteVideoStreamsEx_3cf17a4", "RtcEngineEx_muteAllRemoteAudioStreamsEx_3cf17a4", @@ -55,6 +60,7 @@ "RtcEngineEx_muteLocalAudioStreamEx_3cf17a4", "RtcEngineEx_muteRemoteVideoStreamEx_6d93082", "RtcEngineEx_muteRemoteAudioStreamEx_6d93082", + "RtcEngineEx_leaveChannelEx_b03ee9a", "RtcEngineEx_leaveChannelEx_c81e1a4", "RtcEngineEx_updateChannelMediaOptionsEx_457bb35", "RtcEngineEx_setupRemoteVideoEx_522a409", @@ -99,5 +105,12 @@ "VideoDeviceManager_enumerateVideoDevices", "VideoDeviceManager_setDevice_4ad5f6e", "VideoDeviceManager_getDevice_73b9872", - "VideoDeviceManager_release" + "VideoDeviceManager_release", + "AudioDeviceManager_enumerateRecordingDevices", + "AudioDeviceManager_enumeratePlaybackDevices", + "AudioDeviceManager_setRecordingDevice_4ad5f6e", + "AudioDeviceManager_setPlaybackDevice_4ad5f6e", + "AudioDeviceManager_getRecordingDevice_73b9872", + "AudioDeviceManager_getPlaybackDevice_73b9872", + "AudioDeviceManager_release" ] diff --git a/scripts/terra/config/types_configs.yaml b/scripts/terra/config/types_configs.yaml index cc6b44a0..2e0fdd70 100644 --- a/scripts/terra/config/types_configs.yaml +++ b/scripts/terra/config/types_configs.yaml @@ -4,13 +4,14 @@ parsers: package: '@agoraio-extensions/cxx-parser' args: includeHeaderDirs: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include' parseFiles: include: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/*.h' exclude: - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/time_utils.h' - - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.3.0/include/IAgoraMediaComponentFactory.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/time_utils.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/rte_*.h' + - '@agoraio-extensions/terra_shared_configs:headers/rtc_4.4.0/include/IAgoraMediaComponentFactory.h' - name: IrisApiIdParser package: '@agoraio-extensions/terra_shared_configs' @@ -45,4 +46,4 @@ parsers: renderers: - path: ../index.ts -version: 4.3.0 +version: 4.4.0 diff --git a/scripts/terra/templates/binding/file_content.mustache b/scripts/terra/templates/binding/file_content.mustache index 40504edf..bf11f04e 100644 --- a/scripts/terra/templates/binding/file_content.mustache +++ b/scripts/terra/templates/binding/file_content.mustache @@ -7,7 +7,7 @@ import { AgoraConsole } from '../util/AgoraConsole'; {{#user_data.isCallback}} export class {{name}} {{#base_clazzs}}extends {{.}}{{/base_clazzs}}{ - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { {{#user_data.hasBaseClazzs}} @@ -60,7 +60,7 @@ export class {{name}}Dispatch {{#base_clazzs}}extends {{.}}Dispatch{{/base_clazz // @ts-ignore _impl: {{name}}Impl; {{/user_data.hasSupportApi}} - _engine: IrisRtcEngine = null; + _engine: IrisRtcEngine; constructor(engine: IrisRtcEngine) { {{#user_data.hasBaseClazzs}} @@ -103,7 +103,7 @@ export class {{name}}Dispatch {{#base_clazzs}}extends {{.}}Dispatch{{/base_clazz {{/parameters}} {{/user_data.isRegisterMethod}} - return this._impl.{{name}}({{#parameters}}{{name}},{{/parameters}}); + return this._impl.{{name}}({{#parameters}}{{^is_output}}{{name}},{{/is_output}}{{/parameters}}); {{/user_data.isSupport}} {{^user_data.isSupport}} AgoraConsole.warn('{{{user_data.IrisApiIdParser.value}}} not supported in this platform!'); diff --git a/scripts/terra/templates/binding/test/file_content.mustache b/scripts/terra/templates/binding/test/file_content.mustache index b56c02b9..7c372914 100644 --- a/scripts/terra/templates/binding/test/file_content.mustache +++ b/scripts/terra/templates/binding/test/file_content.mustache @@ -15,7 +15,7 @@ beforeAll(async () => { apiEnginePtr = IrisCore.createIrisApiEngine(); IrisWebRtc.initIrisRtc(apiEnginePtr); irisRtcEngine = apiEnginePtr['apiInterceptors'][0]; - irisRtcEngine.implHelper.createAudioTrack = jest.fn(); + irisRtcEngine.implHelper.createMicrophoneAudioTrack = jest.fn(); let nParam = { context: 'test', }; @@ -123,6 +123,7 @@ describe('{{name}}', () => { } catch (e) { expect(e).toEqual('{{name}} is undefined'); } + //@ts-ignore nParam.{{name}} = 'test'; {{/is_output}} {{/parameters}} @@ -157,7 +158,7 @@ describe('{{name}}', () => { expect( irisRtcEngine.implDispatchesMap.get('{{user_data.prefix_name}}')._impl .{{name}} - ).toBeCalledWith({{#parameters}}'test',{{/parameters}}); + ).toBeCalledWith({{#parameters}}{{^is_output}}'test',{{/is_output}}{{/parameters}}); }); {{/user_data.isSupport}} {{^user_data.isSupport}}