Merge branch 'dev'

This commit is contained in:
Ingo Oppermann 2022-09-30 10:01:26 +02:00
commit 0795d5fba8
No known key found for this signature in database
GPG Key ID: 2AB32426E9DD229E
33 changed files with 2207 additions and 1802 deletions

View File

@ -1,5 +1,22 @@
# Restreamer-UI
### v1.2.0 > v1.3.0
- Add low_delay option to processing (default: true)
- Mod uses the ingest stream for publication (datarhei/restreamer#411)
- Add dlive & Trovo publication services
- Mod optimized DVR on DiskFS
- Mod updates packages
- Fix SRT bitstream on tee
- Fix typo
- Fix viewer count (datarhei/restreamer#394)
- Fix user registration if username and/or password are set via environment (datarhei/restreamer-ui#13)
- Fix Dockerfile, Reduce size, serve production build (datarhei/restreamer-ui#12)
Dependency:
- datarhei Core v16.10.0+
#### v1.1.0 > v1.2.0
- Add allow writing HLS to disk

6
Caddyfile Normal file
View File

@ -0,0 +1,6 @@
http://127.0.0.1:3000
encode zstd gzip
file_server {
root ./build
}

View File

@ -1,6 +1,7 @@
ARG NODE_IMAGE=node:18.6.0-alpine3.15
ARG CADDY_IMAGE=caddy:2.5.2-alpine
FROM $NODE_IMAGE
FROM $NODE_IMAGE as builder
ARG NODE_SPACE_SIZE=10240
ENV NODE_OPTIONS="--openssl-legacy-provider --max-old-space-size=$NODE_SPACE_SIZE"
@ -20,6 +21,13 @@ RUN cd /ui && \
npm install && \
npm run build
FROM $CADDY_IMAGE
COPY --from=builder /ui/build /ui/build
COPY --from=builder /ui/Caddyfile /ui/Caddyfile
WORKDIR /ui
EXPOSE 3000
CMD [ "npm", "run", "start" ]
CMD [ "caddy", "run", "-config", "/ui/Caddyfile" ]

View File

@ -1,28 +1,28 @@
{
"name": "restreamer-ui",
"version": "1.2.0",
"bundle": "restreamer-v2.2.0",
"version": "1.3.0",
"bundle": "restreamer-v2.3.0",
"private": false,
"license": "Apache-2.0",
"dependencies": {
"@auth0/auth0-spa-js": "^1.22.1",
"@auth0/auth0-spa-js": "^1.22.3",
"@clappr/core": "^0.4.21",
"@clappr/hlsjs-playback": "^0.6.0",
"@clappr/plugins": "^0.4.16",
"@clappr/stats-plugin": "^0.2.0",
"@emotion/react": "^11.9.3",
"@emotion/styled": "^11.9.3",
"@fontsource/dosis": "^4.5.8",
"@fontsource/roboto": "^4.5.7",
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@emotion/react": "^11.10.0",
"@emotion/styled": "^11.10.0",
"@fontsource/dosis": "^4.5.9",
"@fontsource/roboto": "^4.5.8",
"@fortawesome/fontawesome-svg-core": "^6.1.2",
"@fortawesome/free-brands-svg-icons": "^6.1.2",
"@fortawesome/free-solid-svg-icons": "^6.1.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@lingui/core": "^3.14.0",
"@lingui/macro": "^3.14.0",
"@lingui/react": "^3.14.0",
"@mui/icons-material": "^5.8.4",
"@mui/lab": "^5.0.0-alpha.90",
"@mui/icons-material": "^5.10.2",
"@mui/lab": "^5.0.0-alpha.96",
"@mui/material": "5.1.1",
"@mui/styles": "^5.1.1",
"@testing-library/dom": "^8.13.0",
@ -36,7 +36,7 @@
"jwt-decode": "^3.1.2",
"make-plural": "^7.1.0",
"react": "^17.0.2",
"react-colorful": "^5.5.1",
"react-colorful": "^5.6.1",
"react-device-detect": "^2.2.2",
"react-dom": "^17.0.2",
"react-router-dom": "^6.3.0",
@ -45,7 +45,7 @@
"typescript": "^3.9.7",
"url-parse": "^1.5.10",
"uuid": "^8.3.2",
"video.js": "^7.19.2",
"video.js": "^7.20.2",
"videojs-overlay": "^2.1.5"
},
"scripts": {
@ -82,7 +82,7 @@
]
},
"devDependencies": {
"@babel/core": "^7.18.6",
"@babel/core": "^7.18.13",
"@lingui/cli": "^3.14.0",
"babel-core": "^7.0.0-bridge.0",
"prettier": "^2.7.1",

View File

@ -196,16 +196,24 @@ export default function RestreamerUI(props) {
});
};
const handlePasswordReset = async (username, password) => {
const [, err] = await restreamer.current.ConfigSet({
const handlePasswordReset = async (username, loginUsername, password, loginPassword) => {
const data = {
api: {
auth: {
enable: true,
username: username,
password: password,
},
},
});
};
if (username.length !== 0) {
data.api.auth.username = username;
}
if (password.length !== 0) {
data.api.auth.password = password;
}
const [, err] = await restreamer.current.ConfigSet(data);
if (err !== null) {
notify('error', 'save:settings', `There was an error resetting the password.`);
return 'ERROR';
@ -249,7 +257,7 @@ export default function RestreamerUI(props) {
if (restarted === true) {
// After the restart the API requires a login and this means the restart happened
await restreamer.current.Validate();
await restreamer.current.Login(username, password);
await restreamer.current.Login(loginUsername, loginPassword);
window.location.reload();
} else {
@ -368,7 +376,15 @@ export default function RestreamerUI(props) {
view = <Views.Incompatible type="ffmpeg" have={$state.compatibility.ffmpeg.have} want={$state.compatibility.ffmpeg.want} />;
}
} else if ($state.password === true) {
view = <Views.Password onReset={handlePasswordReset} />;
view = (
<Views.Password
onReset={handlePasswordReset}
username={restreamer.current.ConfigValue('api.auth.username')}
usernameOverride={restreamer.current.ConfigOverrides('api.auth.username')}
password={restreamer.current.ConfigValue('api.auth.password')}
passwordOverride={restreamer.current.ConfigOverrides('api.auth.password')}
/>
);
} else {
view = <Router restreamer={restreamer.current} />;
resources = handleResources;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,9 @@ export default function Player(props) {
liveui: true,
responsive: true,
fluid: true,
plugins: {
reloadSourceOnError: {}
},
sources: [{ src: props.source, type: 'application/x-mpegURL' }],
};

View File

@ -13,6 +13,7 @@ function init(settings) {
reconnect: true,
delay: 30,
staleTimeout: 30,
low_delay: true,
...settings,
};
@ -31,7 +32,7 @@ export default function Control(props) {
const handleChange = (what) => (event) => {
const value = event.target.value;
if (['autostart', 'reconnect', 'cleanup'].includes(what)) {
if (['autostart', 'reconnect', 'low_delay'].includes(what)) {
settings[what] = !settings[what];
} else {
settings[what] = value;
@ -44,6 +45,7 @@ export default function Control(props) {
<Grid container spacing={2}>
<Grid item xs={12}>
<Checkbox label={<Trans>Reconnect</Trans>} checked={settings.reconnect} onChange={handleChange('reconnect')} />
<Checkbox label={<Trans>Low delay</Trans>} checked={settings.low_delay} onChange={handleChange('low_delay')} />
</Grid>
<Grid item xs={12} md={6}>
<TextField

View File

@ -278,6 +278,7 @@ const defaultIngestMetadata = {
reconnect: true,
delay: 15,
staleTimeout: 30,
low_delay: true,
},
snapshot: {
enable: true,

View File

@ -722,6 +722,13 @@ class Restreamer {
password: '',
},
},
api: {
auth: {
enable: false,
username: '',
password: '',
},
},
hostname: '',
overrides: [],
};
@ -877,6 +884,14 @@ class Restreamer {
config.source.network.hls.credentials = encodeURIComponent(config.memfs.auth.username) + ':' + encodeURIComponent(config.memfs.auth.password);
}
// API Auth
config.api.auth.enable = val.config.api.auth.enable;
config.api.auth.username = val.config.api.auth.username;
config.api.auth.password = val.config.api.auth.password;
// Environment Config Overrides
config.overrides = val.overrides;
this.config = config;
@ -909,6 +924,25 @@ class Restreamer {
return this.config.overrides.includes(name);
}
ConfigValue(name) {
if (!this.config) {
return null;
}
const elms = name.split('.');
let config = this.config;
for (let e of elms) {
if (!(e in config)) {
return null;
}
config = config[e];
}
return config;
}
// Get system metadata
async GetMetadata() {
let metadata = await this._getMetadata();
@ -1355,7 +1389,18 @@ class Restreamer {
continue;
}
sessions.sessions++;
// Don't count viewers where nothing is transmitted.
if (s.bandwidth_tx_kbit === 0) {
continue;
}
// Don't count ffmpeg as session, only the bandwidth, otherwise
// the ingest and every running publication service would be
// considered as a viewer.
if (p !== 'ffmpeg') {
sessions.sessions++;
}
sessions.bitrate_kbit += s.bandwidth_tx_kbit;
}
}
@ -1537,80 +1582,89 @@ class Restreamer {
});
}
// Set hls storage endpoint
const hlsStorage = control.hls.storage;
// 1. Add output address and options
// Set hls variant suffix (Master/Variant playlist)
let bitrate_suffix = '';
if (control.hls.master_playlist) {
bitrate_suffix = '_var0';
}
const output = {
id: 'output_0',
address: `{${hlsStorage}}/${channel.channelid}${bitrate_suffix}.m3u8`,
options: ['-dn', '-sn', ...outputs[0].options.map((o) => '' + o)],
cleanup: [
{
pattern: `${hlsStorage}:/${channel.channelid}_*${bitrate_suffix}.` + (control.hls.version >= 7 ? 'mp4' : 'ts'),
max_files: parseInt(control.hls.listSize) + 6,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
},
{
pattern: `${hlsStorage}:/${channel.channelid}${bitrate_suffix}.m3u8`,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
},
],
};
// Add master playlist cleanup
if (control.hls.master_playlist) {
output.cleanup.push({
pattern: `${hlsStorage}:/${channel.channelid}.m3u8`,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
});
}
// Injects a metadata link as title
const metadata = `${this.GetPublicHTTPAddress()}/${channel.channelid}/oembed.json`;
const metadata_options = ['-metadata', `title=${metadata}`, '-metadata', 'service_provider=datarhei-Restreamer'];
output.options.push(...metadata_options);
// Fetch core config
// 1.1 Fetch core config
const core_config = this.ConfigActive();
// Fetch rtmp settings
// 1.2 Fetch rtmp settings
const rtmp_config = core_config.source.network.rtmp;
let rtmp_enabled = false;
if (control.rtmp && control.rtmp.enable && rtmp_config.enabled) {
rtmp_enabled = true;
}
if (
proc.input[0].address.includes('rtmp://localhost') &&
proc.input[0].address.includes(channel.channelid) &&
!proc.input[0].address.includes('ingest')
) {
rtmp_enabled = false;
control.rtmp.enable = true;
}
// Fetch srt settings
// 1.3 Fetch srt settings
const srt_config = core_config.source.network.srt;
let srt_enabled = false;
if (control.srt.enable && srt_config.enabled) {
srt_enabled = true;
}
if (
proc.input[0].address.includes('srt://localhost') &&
proc.input[0].address.includes(channel.channelid) &&
!proc.input[0].address.includes('ingest')
) {
srt_enabled = false;
control.srt.enable = true;
}
// 'tee_muxer' is required for the delivery of one output to multiple endpoints without processing the input for each output
// 1.4 'tee_muxer' is required for the delivery of one output to multiple endpoints without processing the input for each output
// http://ffmpeg.org/ffmpeg-all.html#tee-1
let tee_muxer = false;
if (rtmp_enabled || srt_enabled) {
tee_muxer = true;
}
// 1.5 Set hls filename vars
const hlsStorage = control.hls.storage;
let segmentPlaylistPath = `${channel.channelid}` + (control.hls.master_playlist ? `_{outputid}` : '');
let segmentFilePath = `${channel.channelid}` + (control.hls.master_playlist ? `_{outputid}_%04d` : '_%04d');
if (hlsStorage === 'diskfs') {
// diskfs (path structure)
segmentFilePath = `${channel.channelid}` + (control.hls.master_playlist ? `/{outputid}/%Y%m%d/%s` : '/%Y%m%d/%s');
}
// 1.6 Set hls filenames
const hls_master_playlist = `${channel.channelid}.m3u8`;
const hls_fmp4_init_filename = `${channel.channelid}.mp4`;
const hls_segment_playlist = `{${hlsStorage}}/${segmentPlaylistPath}.m3u8`;
const hls_segment_filename =
`{${hlsStorage}` + (tee_muxer ? '^:' : '') + `}/${segmentFilePath}.` + (!control.hls.lhls && control.hls.version === 7 ? 'mp4' : 'ts');
// 2. Add output address
const output = {
id: 'output_0',
address: hls_segment_playlist,
options: ['-dn', '-sn', ...outputs[0].options.map((o) => '' + o)],
cleanup: [],
};
// 3. Extend output options
// 3.1 Injects a metadata link as title
const metadata = `${this.GetPublicHTTPAddress()}/${channel.channelid}/oembed.json`;
const metadata_options = ['-metadata', `title=${metadata}`, '-metadata', 'service_provider=datarhei-Restreamer'];
output.options.push(...metadata_options);
// Manifest versions
// https://developer.apple.com/documentation/http_live_streaming/about_the_ext-x-version_tag
// https://ffmpeg.org/ffmpeg-all.html#Options-53
// 3.2 Returns the raw l/hls parameters for an EXT-X-VERSION
// fix Malformed AAC bitstream detected for hls version 7
let hls_aac_adtstoasc = false;
// Returns the raw l/hls parameters for an EXT-X-VERSION
const getHLSParams = (lhls, version) => {
if (lhls) {
// lhls
@ -1630,7 +1684,6 @@ class Restreamer {
['remove_at_exit', '0'],
['window_size', '' + parseInt(control.hls.listSize)],
['http_persistent', '0'],
['method', 'PUT'],
];
} else {
// hls
@ -1641,10 +1694,9 @@ class Restreamer {
['start_number', '0'],
['hls_time', '' + parseInt(control.hls.segmentDuration)],
['hls_list_size', '' + parseInt(control.hls.listSize)],
['hls_flags', 'append_list+delete_segments+program_date_time+independent_segments'],
['hls_flags', 'append_list+delete_segments+program_date_time+independent_segments+temp_file'],
['hls_delete_threshold', '4'],
['hls_segment_filename', `{${hlsStorage}` + (tee_muxer ? '^:' : '') + `}/${channel.channelid}_%04d${bitrate_suffix}.ts`],
['method', 'PUT'],
['hls_segment_filename', hls_segment_filename],
];
case 7:
// fix Malformed AAC bitstream detected for hls version 7
@ -1654,24 +1706,17 @@ class Restreamer {
}
hls_aac_adtstoasc = true;
}
// mp4 manifest cleanup
output.cleanup.push({
pattern: `${hlsStorage}:/${channel.channelid}.mp4`,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
});
return [
['f', 'hls'],
['start_number', '0'],
['hls_time', '' + parseInt(control.hls.segmentDuration)],
['hls_list_size', '' + parseInt(control.hls.listSize)],
['hls_flags', 'append_list+delete_segments+program_date_time+independent_segments'],
['hls_flags', 'append_list+delete_segments+program_date_time+independent_segments+temp_file'],
['hls_delete_threshold', '4'],
['hls_segment_type', 'fmp4'],
['hls_fmp4_init_filename', `${channel.channelid}.mp4`],
['hls_fmp4_init_filename', hls_fmp4_init_filename],
['hls_fmp4_init_resend', '1'],
['hls_segment_filename', `{${hlsStorage}` + (tee_muxer ? '^:' : '') + `}/${channel.channelid}_%04d${bitrate_suffix}.mp4`],
['method', 'PUT'],
['hls_segment_filename', hls_segment_filename],
];
// case 3
default:
@ -1680,25 +1725,34 @@ class Restreamer {
['start_number', '0'],
['hls_time', '' + parseInt(control.hls.segmentDuration)],
['hls_list_size', '' + parseInt(control.hls.listSize)],
['hls_flags', 'append_list+delete_segments+program_date_time'],
['hls_flags', 'append_list+delete_segments+program_date_time+temp_file'],
['hls_delete_threshold', '4'],
['hls_segment_filename', `{${hlsStorage}` + (tee_muxer ? '^:' : '') + `}/${channel.channelid}_%04d${bitrate_suffix}.ts`],
['method', 'PUT'],
['hls_segment_filename', hls_segment_filename],
];
}
}
};
const hls_params_raw = getHLSParams(control.hls.lhls, control.hls.version);
// Push master playlist params
if (control.hls.master_playlist) {
hls_params_raw.push(['master_pl_name', `${channel.channelid}.m3u8`], ['master_pl_publish_rate', `${control.hls.segmentDuration}`]);
// 3.3 Use strftime for DiskFS
if (control.hls.storage && control.hls.storage === 'diskfs') {
hls_params_raw.push(['strftime', '1'], ['strftime_mkdir', '1']);
}
// Overwrite output files
// 3.4 Push master playlist params
if (control.hls.master_playlist) {
hls_params_raw.push(['master_pl_name', hls_master_playlist], ['master_pl_publish_rate', `${control.hls.segmentDuration}`]);
}
// 3.5 Use HTTP method
if (control.hls.storage && control.hls.storage !== 'diskfs') {
hls_params_raw.push(['method', 'PUT']);
}
// 3.6 Overwrite output files
proc.options.push('-y');
// Returns the l/hls parameters with or without tee_muxer
// 3.7 Returns the l/hls parameters with or without tee_muxer
if (tee_muxer) {
// f=hls:start_number=0...
const hls_params = hls_params_raw
@ -1709,21 +1763,87 @@ class Restreamer {
.map((o) => o[0] + '=' + o[1])
.join(':');
output.options.push('-flags', '+global_header', '-tag:v', '7', '-tag:a', '10', '-f', 'tee');
// set flags
if (control.process.low_delay) {
output.options.push('-flags', '+low_delay+global_header');
} else {
output.options.push('-flags', '+global_header');
}
output.options.push('-tag:v', '7', '-tag:a', '10', '-f', 'tee');
// ['f=hls:start_number=0...]address.m3u8
// use tee_muxer formatting
output.address =
`[${hls_aac_adtstoasc ? 'bsfs/a=aac_adtstoasc:' : ''}${hls_params}]{${hlsStorage}}/${channel.channelid}${bitrate_suffix}.m3u8` +
`[${hls_aac_adtstoasc ? 'bsfs/a=aac_adtstoasc:' : ''}${hls_params}]${hls_segment_playlist}` +
(rtmp_enabled ? `|[f=flv]{rtmp,name=${channel.channelid}.stream}` : '') +
(srt_enabled ? `|[f=mpegts]{srt,name=${channel.channelid},mode=publish}` : '');
(srt_enabled ? `|[bsfs/v=dump_extra=freq=keyframe:f=mpegts]{srt,name=${channel.channelid},mode=publish}` : '');
} else {
// ['-f', 'hls', '-start_number', '0', ...]
// adding the '-' in front of the first option, then flatten everything
const hls_params = hls_params_raw.map((o) => ['-' + o[0], o[1]]).reduce((acc, val) => acc.concat(val), []);
// set flags
if (control.process.low_delay) {
output.options.push('-flags', '+low_delay');
}
output.options.push(...hls_params);
}
// 4. Add output cleanup jobs
// 4.1 Set hls cleanup filename vars
let cleanupSegmentFilePath = `${channel.channelid}` + (control.hls.master_playlist ? `_{outputid}_**` : '_**');
if (hlsStorage === 'diskfs') {
// diskfs (path structure)
cleanupSegmentFilePath = `${channel.channelid}` + (control.hls.master_playlist ? `/{outputid}/**` : '/**');
}
// 4.2 Set hls cleanup filenames
const cleanup_global = `${hlsStorage}:/${channel.channelid}**`;
const cleanup_hls_master_playlist = `${hlsStorage}:/${channel.channelid}.m3u8`;
const cleanup_hls_fmp4_init_filename = `${hlsStorage}:/${channel.channelid}.mp4`;
const cleanup_hls_segment_playlist = `${hlsStorage}:/${segmentPlaylistPath}.m3u8`;
const cleanup_hls_segment_filename = `${hlsStorage}:/${cleanupSegmentFilePath}.` + (!control.hls.lhls && control.hls.version === 7 ? 'mp4' : 'ts');
// 4.3 Cleanup id* (process is deleted) + continuously hls_segment_playlist and hls_segment_filename
output.cleanup.push(
{
pattern: cleanup_global,
purge_on_delete: true,
},
{
pattern: cleanup_hls_segment_playlist,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
},
{
pattern: cleanup_hls_segment_filename,
max_files: parseInt(control.hls.listSize) + 6,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
}
);
// 4.4 Cleanup hls_master_playlist
if (control.hls.master_playlist) {
output.cleanup.push({
pattern: cleanup_hls_master_playlist,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
});
}
// 4.5 Cleanup hls_fmp4_init_filename
if (!control.hls.lhls && control.hls.version === 7) {
output.cleanup.push({
pattern: cleanup_hls_fmp4_init_filename,
max_file_age_seconds: control.hls.cleanup ? parseInt(control.hls.segmentDuration) * (parseInt(control.hls.listSize) + 6) : 0,
purge_on_delete: true,
});
}
// 5. Push output
proc.output.push(output);
const [val, err] = await this._upsertProcess(channel.id, proc);
@ -2460,10 +2580,18 @@ class Restreamer {
output.options = [];
}
// set flags
let options = [];
if (control.process.low_delay) {
options.push('-flags', '+low_delay');
}
options.push(...output.options.map((o) => '' + o));
config.output.push({
id: 'output_' + i,
address: output.address,
options: output.options.map((o) => '' + o),
options: options,
});
}

View File

@ -1,6 +1,6 @@
import { name, version, bundle } from '../package.json';
const Core = '^16.9.0';
const Core = '^16.10.0';
const FFmpeg = '^4.1.0 || ^5.0.0';
const UI = bundle ? bundle : name + ' v' + version;
const Version = version;

View File

@ -326,13 +326,13 @@ const isSupportedProtocol = (url, supportedProtocols) => {
const getHLSAddress = (host, credentials, name, secure) => {
// Test for IPv6 addresses and put brackets around
let url = 'http' + (secure ? 's' : '') + '://' + (credentials.length !== 0 ? credentials + '@' : '') + host + '/memfs/ingest/' + name + '.m3u8';
let url = 'http' + (secure ? 's' : '') + '://' + (credentials.length !== 0 ? credentials + '@' : '') + host + '/memfs/' + name + '.m3u8';
return url;
};
const getRTMPAddress = (host, app, name, token, secure) => {
let url = 'rtmp' + (secure ? 's' : '') + '://' + host + app + '/ingest/' + name + '.stream';
let url = 'rtmp' + (secure ? 's' : '') + '://' + host + app + '/' + name + '.stream';
if (token.length !== 0) {
url += '?token=' + encodeURIComponent(token);
@ -348,7 +348,7 @@ const getSRTAddress = (host, name, token, passphrase, publish) => {
host +
'?mode=caller&transtype=live&streamid=#!:m=' +
(publish ? 'publish' : 'request') +
',r=ingest/' +
',r=' +
name +
(token.length !== 0 ? ',token=' + encodeURIComponent(token) : '');

View File

@ -436,7 +436,6 @@ export default function Wizard(props) {
);
}
// STEP 3 - Source Probe
// todo: der step kann durch nen backdrop abgelöst werden. dadurch wirkt es schneller
else if ($step === 'VIDEO PROBE') {
return (
<Paper xs={12} md={5} marginBottom="6em" className="PaperM">

View File

@ -40,10 +40,8 @@ export default function Progress(props) {
...divStyle,
};
if (fps && (fps < 10 || speed < 0.8 || speed > 1.2)) {
if (fps && (fps < 10 || speed < 1.0)) {
fpsStyle.backgroundColor = Palette.background.box_danger;
} else if (fps && (speed < 0.9 || speed > 1.1)) {
fpsStyle.backgroundColor = Palette.service.main;
} else {
fpsStyle.backgroundColor = Palette.background.box_default;
}

View File

@ -469,7 +469,7 @@ export default function Main(props) {
<DebugModal
open={$processDebug.open}
onClose={handleProcessDebug}
title={<Trans>Process debug report</Trans>}
title={<Trans>Process report</Trans>}
data={$processDebug.data}
onHelp={handleHelp('process-report')}
/>

View File

@ -6,7 +6,6 @@ import Button from '@mui/material/Button';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import LinearProgress from '@mui/material/LinearProgress';
import TextField from '@mui/material/TextField';
import Typography from '@mui/material/Typography';
import Paper from '../misc/Paper';
@ -14,6 +13,7 @@ import Password from '../misc/Password';
import PaperHeader from '../misc/PaperHeader';
import PaperContent from '../misc/PaperContent';
import PaperFooter from '../misc/PaperFooter';
import TextField from '../misc/TextField';
const generatePassword = (length) => {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
@ -28,11 +28,10 @@ const generatePassword = (length) => {
export default function ResetPassword(props) {
const [$login, setLogin] = React.useState({
username: 'admin',
password: generatePassword(6) + '-' + generatePassword(6) + '-' + generatePassword(6),
passwordConfirm: '',
showPassword: true,
memorized: false,
username: props.username.length === 0 ? 'admin' : props.username,
password: props.password.length === 0 ? generatePassword(6) + '-' + generatePassword(6) + '-' + generatePassword(6) : props.password,
passwordConfirm: props.password.length !== 0 ? props.password : '',
showPassword: props.password.length === 0 ? true : false,
});
const [$restart, setRestart] = React.useState({
restarting: false,
@ -48,7 +47,21 @@ export default function ResetPassword(props) {
timeout: false,
});
const res = await props.onReset($login.username, $login.password);
// If the username and/or password are set by an environment variable (override == true), then don't
// store that password to the config file. By setting them as empty string, the currently stored
// values won't be changed.
let username = $login.username;
if (props.usernameOverride) {
username = '';
}
let password = $login.password;
if (props.passwordOverride) {
password = '';
}
const res = await props.onReset(username, $login.username, password, $login.password);
switch (res) {
case 'ERROR':
setRestart({
@ -98,6 +111,8 @@ export default function ResetPassword(props) {
value={$login.username}
onChange={handleChange('username')}
autoComplete="username"
disabled={props.usernameOverride}
env={props.usernameOverride}
/>
</Grid>
<Grid item xs={12}>
@ -108,6 +123,8 @@ export default function ResetPassword(props) {
onChange={handleChange('password')}
show={$login.showPassword}
autoComplete="current-password"
disabled={props.passwordOverride}
env={props.passwordOverride}
/>
</Grid>
<Grid item xs={12}>
@ -117,6 +134,8 @@ export default function ResetPassword(props) {
label={<Trans>Confirm password</Trans>}
onChange={handleChange('passwordConfirm')}
show={$login.showPassword}
disabled={props.passwordOverride}
env={props.passwordOverride}
/>
</Grid>
<Grid item xs={12}>
@ -124,7 +143,7 @@ export default function ResetPassword(props) {
</Grid>
<Grid item xs={12}>
<Button variant="outlined" color="primary" fullWidth size="large" disabled={invalid} type="submit" onClick={handleReset}>
<Trans>Create user</Trans>
<Trans>Register user</Trans>
</Button>
</Grid>
</Grid>
@ -168,4 +187,8 @@ export default function ResetPassword(props) {
ResetPassword.defaultProps = {
onReset: function (username, password) {},
username: '',
usernameOverride: false,
password: '',
passwordOverride: false,
};

View File

@ -550,7 +550,7 @@ export default function Edit(props) {
<DebugModal
open={$processDebug.open}
onClose={handleProcessDebug}
title={<Trans>Process debug report</Trans>}
title={<Trans>Process report</Trans>}
data={$processDebug.data}
onHelp={handleHelp('process-report')}
/>

View File

@ -131,7 +131,7 @@ function Service(props) {
label={<Trans>Stream name</Trans>}
value={settings.stream_name}
onChange={handleChange('stream_name')}
placeholder={settings.protocol !== 'srt' ? 'streamId' : 'ingest/streamId'}
placeholder={'streamId'}
/>
</Grid>
<Grid item xs={12} md={settings.protocol !== 'srt' ? 9 : 4}>

View File

@ -2,25 +2,20 @@ import React from 'react';
import { Trans } from '@lingui/macro';
import Grid from '@mui/material/Grid';
import Link from '@mui/material/Link';
import TextField from '@mui/material/TextField';
import Logo from './logos/bitmovin.svg';
import Logo from './logos/dlive.svg';
const id = 'bitmovin';
const name = 'Bitmovin';
import FormInlineButton from '../../../misc/FormInlineButton';
const id = 'dlive';
const name = 'dlive';
const version = '1.0';
const stream_key_link = '';
const stream_key_link = 'https://dlive.tv/s/dashboard';
const description = (
<Trans>
Transmit the main source to the Bitmovin cloud encoding service, a powerful tool for live streaming. More details about the settings can be founds{' '}
<Link color="secondary" target="_blank" href="https://bitmovin.com/docs/encoding/tutorials/create-a-live-encoding-from-an-srt-stream">
here
</Link>
.
</Trans>
<Trans>Live-Streaming to dlive Live RTMP Service.</Trans>
);
const image_copyright = <Trans>Please contact the operator of the service and check what happens.</Trans>;
const image_copyright = '';
const author = {
creator: {
name: 'datarhei',
@ -42,14 +37,12 @@ const requires = {
};
function ServiceIcon(props) {
return <img src={Logo} alt="Bitmovin Logo" {...props} />;
return <img src={Logo} alt="dlive Logo" {...props} />;
}
function init(settings) {
const initSettings = {
protocol: 'srt://',
address: '',
port: ':2088',
key: '',
...settings,
};
@ -62,7 +55,7 @@ function Service(props) {
const handleChange = (what) => (event) => {
const value = event.target.value;
settings.settings[what] = value;
settings[what] = value;
const output = createOutput(settings);
@ -70,11 +63,9 @@ function Service(props) {
};
const createOutput = (settings) => {
const options = ['-strict', '-2', '-f', 'mpegts'];
const output = {
address: settings.protocol + settings.ip + settings.port,
options: options,
address: 'rtmp://stream.dlive.tv/live/' + settings.key,
options: ['-f', 'flv'],
};
return output;
@ -82,14 +73,13 @@ function Service(props) {
return (
<Grid container spacing={2}>
<Grid item xs={12} md={3}>
<TextField variant="outlined" fullWidth label={<Trans>Protocol</Trans>} value={settings.protocol} readOnly disabled />
</Grid>
<Grid item xs={12} md={6}>
<TextField variant="outlined" fullWidth label={<Trans>IP address</Trans>} value={settings.ip} onChange={handleChange('ip')} />
<Grid item xs={12} md={9}>
<TextField variant="outlined" fullWidth label={<Trans>Stream key</Trans>} value={settings.key} onChange={handleChange('key')} />
</Grid>
<Grid item xs={12} md={3}>
<TextField variant="outlined" fullWidth label={<Trans>Port</Trans>} value={settings.port} readOnly disabled />
<FormInlineButton target="blank" href={stream_key_link} component="a">
<Trans>GET</Trans>
</FormInlineButton>
</Grid>
</Grid>
);

View File

@ -0,0 +1,96 @@
import React from 'react';
import { Trans } from '@lingui/macro';
import Grid from '@mui/material/Grid';
import TextField from '@mui/material/TextField';
import Logo from './logos/trovo.svg';
import FormInlineButton from '../../../misc/FormInlineButton';
const id = 'trovo';
const name = 'Trovo';
const version = '1.0';
const stream_key_link = 'https://studio.trovo.live/mychannel/stream';
const description = (
<Trans>Live-Streaming to Trovo Live RTMP Service.</Trans>
);
const image_copyright = '';
const author = {
creator: {
name: 'datarhei',
link: 'https://github.com/datarhei',
},
maintainer: {
name: 'datarhei',
link: 'https://github.com/datarhei',
},
};
const category = 'platform';
const requires = {
protocols: ['rtmp'],
formats: ['flv'],
codecs: {
audio: ['aac', 'mp3'],
video: ['h264'],
},
};
function ServiceIcon(props) {
return <img src={Logo} alt="Trovo Logo" {...props} />;
}
function init(settings) {
const initSettings = {
key: '',
...settings,
};
return initSettings;
}
function Service(props) {
const settings = init(props.settings);
const handleChange = (what) => (event) => {
const value = event.target.value;
settings[what] = value;
const output = createOutput(settings);
props.onChange([output], settings);
};
const createOutput = (settings) => {
const output = {
address: 'rtmp://livepush.trovo.live/live/' + settings.key,
options: ['-f', 'flv'],
};
return output;
};
return (
<Grid container spacing={2}>
<Grid item xs={12} md={9}>
<TextField variant="outlined" fullWidth label={<Trans>Stream key</Trans>} value={settings.key} onChange={handleChange('key')} />
</Grid>
<Grid item xs={12} md={3}>
<FormInlineButton target="blank" href={stream_key_link} component="a">
<Trans>GET</Trans>
</FormInlineButton>
</Grid>
</Grid>
);
}
Service.defaultProps = {
settings: {},
skills: {},
metadata: {},
streams: [],
onChange: function (output, settings) {},
};
export { id, name, version, stream_key_link, description, image_copyright, author, category, requires, ServiceIcon as icon, Service as component };

View File

@ -5,6 +5,7 @@ import * as CDN77 from './CDN77';
import * as Core from './Core';
import * as DaCast from './DaCast';
import * as DASH from './DASH';
import * as DLive from './DLive';
import * as Facebook from './Facebook';
import * as Framebuffer from './Framebuffer';
import * as HLS from './HLS';
@ -20,6 +21,7 @@ import * as Restream from './Restream';
import * as RTMP from './RTMP';
import * as RTSP from './RTSP';
import * as SRT from './SRT';
import * as Trovo from './Trovo';
import * as Telegram from './Telegram';
import * as Twitch from './Twitch';
import * as Twitter from './Twitter';
@ -73,6 +75,8 @@ registry.Register(Vimeo);
registry.Register(Restream);
registry.Register(Telegram);
registry.Register(Linkedin);
registry.Register(DLive);
registry.Register(Trovo);
registry.Register(Livespotting);
registry.Register(Azure);
registry.Register(Brightcove);

View File

@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -0.549 24 24">
<path fill="#1EABE2" d="M8.12 0v5.272l8.175 5.708c.327.229.327.713 0 .941L8.12 17.629v5.273l15.581-10.878c.398-.278.398-.868 0-1.146L8.12 0z"/>
<path fill="#1EABE2" d="M3.529 3.833v4.049l4.44 3.1c.326.228.326.711 0 .938l-4.44 3.1v4.048l10.09-7.043c.398-.278.398-.868 0-1.146L3.529 3.833z"/>
<path fill="#1EABE2" d="M0 7.183v2.55l1.788 1.248c.327.229.327.712 0 .941L0 13.17v2.55l5.296-3.698c.396-.277.396-.864 0-1.141L0 7.183z"/>
</svg>

Before

Width:  |  Height:  |  Size: 508 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" baseProfile="basic" viewBox="0 0 158.958 158.995"><path fill="#ffd300" d="M69.887.557c14.979-1.804 30.469.679 44.049 7.299 15.998 7.638 29.259 20.835 37.003 36.814 7.915 16.083 10.037 34.924 6.068 52.408-3.416 15.192-11.436 29.324-22.767 40.039-14.003 13.411-33.079 21.388-52.472 21.833-13.644.467-27.393-2.758-39.444-9.166-16.338-8.572-29.451-23.043-36.411-40.146C-.77 93.472-1.81 75.053 2.901 58.207c4.35-15.893 13.813-30.278 26.628-40.59C41.03 8.301 55.204 2.297 69.887.557"/><path fill="#ffd300" d="M46.866 42.93c-3.926 3.882-6.175 9.251-6.515 14.725-3.458-3.989-7.829-7.002-12.285-9.76-1.422 4.159-2.971 8.296-5.241 12.073 5.41 1.231 11.225 1.591 16.211 4.201-5.22 1.953-10.715 2.929-16.19 3.862 2.187 3.797 3.84 7.893 5.178 12.073 4.541-2.61 8.827-5.792 12.391-9.675v30.47c0 3.373.828 6.747 2.334 9.759 3.565 7.193 11.224 12.158 19.287 12.286 14.09.084 28.2.02 42.288.042 5.814.084 11.648-2.122 15.829-6.196 4.329-4.053 6.854-9.909 6.896-15.829v-42.33c0-4.859-1.633-9.718-4.625-13.537-3.989-5.241-10.417-8.572-16.995-8.658-14.28 0-28.54.023-42.819 0-5.878-.127-11.65 2.334-15.744 6.494"/><path fill="#ffd300" d="M57.177 52.859c1.379-.339 2.8-.593 4.243-.614 14.662 0 29.324.021 43.986-.022 3.776.022 7.66 1.167 10.482 3.776 3.161 2.737 4.902 6.918 4.837 11.098-.042 4.519.042 9.059-.042 13.58-.212 5.388-3.776 10.439-8.741 12.519-6.451 2.567-13.877.064-19.203-3.926-2.166-2.058-4.499-4.243-7.575-4.688-3.395-.679-6.662 1.146-8.975 3.479-4.245 3.989-10.037 6.514-15.914 6.195-5.645-.063-10.926-3.988-12.837-9.271-1.421-3.735-.743-7.809-.912-11.691.148-3.755-.467-7.639.785-11.246 1.527-4.456 5.347-8.021 9.866-9.189"/><path fill="#ffd300" d="M62.248 60.626c-1.612.827-1.167 3.479.637 3.733 4.583.489 9.187 1.04 13.77 1.359 2.122-.106 2.377-3.502.298-3.905-3.841-.53-7.703-.764-11.543-1.231-1.039-.041-2.164-.36-3.162.044m37.833.126c-3.353.425-6.748.552-10.079 1.103-1.91.722-1.336 3.968.744 3.841 4.582-.36 9.143-.869 13.706-1.358 1.804-.297 2.037-3.246.297-3.818-1.529-.255-3.099.127-4.668.232m-31.658 6.663c-1.868.446-3.459 1.868-4.18 3.628-1.465 3.374.913 7.576 4.52 8.127 3.521.764 7.172-2.292 7.065-5.898.128-3.735-3.798-6.833-7.405-5.857m26.969.19c-1.846.659-3.332 2.292-3.798 4.203-.955 3.458 1.76 7.298 5.368 7.447 3.565.382 6.874-2.971 6.429-6.515-.192-3.798-4.477-6.513-7.999-5.135"/><path d="M46.866 42.93c4.095-4.16 9.866-6.621 15.701-6.557 14.28.021 28.539 0 42.819 0 6.599.105 13.006 3.438 16.996 8.657 2.992 3.841 4.625 8.678 4.625 13.537-.021 14.11 0 28.22 0 42.331-.021 5.919-2.567 11.776-6.896 15.828-4.18 4.073-10.016 6.28-15.829 6.196-14.11-.022-28.199.041-42.288-.044-8.042-.126-15.722-5.091-19.288-12.285-1.505-3.012-2.334-6.386-2.334-9.76V70.364c-3.542 3.883-7.829 7.066-12.39 9.676-1.337-4.18-2.991-8.255-5.178-12.074 5.475-.934 10.97-1.91 16.19-3.861-4.986-2.61-10.801-2.97-16.211-4.201 2.271-3.777 3.819-7.915 5.241-12.073 4.456 2.737 8.848 5.771 12.285 9.76.382-5.432 2.631-10.8 6.557-14.661"/><path fill="#ffd300" d="M57.177 52.859c-4.541 1.188-8.36 4.732-9.867 9.167-1.273 3.628-.637 7.511-.785 11.245.148 3.904-.509 7.957.912 11.692 1.89 5.282 7.173 9.208 12.837 9.272 5.877.338 11.69-2.187 15.914-6.197 2.313-2.333 5.58-4.158 8.975-3.479 3.076.445 5.41 2.63 7.575 4.688 5.325 3.989 12.752 6.472 19.203 3.925 4.986-2.058 8.529-7.109 8.741-12.519.084-4.52 0-9.061.042-13.579.065-4.159-1.676-8.34-4.837-11.098-2.822-2.609-6.706-3.755-10.482-3.776-14.662.021-29.324 0-43.986.021-1.419.045-2.841.299-4.242.638"/><path d="M62.248 60.626c.998-.404 2.123-.106 3.162-.064 3.84.467 7.724.701 11.543 1.231 2.1.402 1.824 3.82-.298 3.904-4.604-.297-9.188-.869-13.77-1.358-1.804-.234-2.249-2.886-.637-3.713m37.833.126c1.549-.105 3.14-.488 4.688-.233 1.74.572 1.507 3.521-.296 3.818-4.562.489-9.123 1.019-13.707 1.358-2.079.106-2.652-3.119-.744-3.841 3.332-.55 6.727-.677 10.059-1.102m-31.658 6.663c3.607-.976 7.532 2.102 7.404 5.857.107 3.606-3.544 6.662-7.065 5.898-3.607-.53-5.984-4.753-4.52-8.127.722-1.761 2.314-3.182 4.181-3.628m26.969.19c3.522-1.378 7.808 1.316 7.999 5.114.424 3.543-2.864 6.918-6.429 6.514-3.608-.147-6.323-3.988-5.368-7.447.466-1.888 1.951-3.501 3.798-4.181"/></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" baseProfile="basic" viewBox="0 0 117.643 116.249"><path fill="#32c27c" d="M104.629 82.328c-2.023-8.102-8.09-13.51-16.636-13.445-8.366.064-13.01 5.381-13.635 11.275-.46 4.346 1.199 7.835 3.606 9.262 4.426 2.624 7.533-1.846 5.809-3.504-1.11-1.068-1.625-1.972-1.383-3.588s1.477-3.233 4.39-3.233 5.368 2.082 5.891 6.39c.617 5.083-2.727 10.587-8.626 11.834-7.469 1.579-15.003-2.407-17.673-8.826s-1.945-16.427 4.441-22.548c5.059-4.849 11.607-6.635 17.18-6.635l18.645.818c1.38.061 2.612-.858 2.948-2.198l7.97-32.513c.058-.231.087-.469.087-.708 0-1.606-1.117-2.908-2.723-2.908H80.83c-.11 0-.22-.012-.328-.037-.782-.181-1.27-.962-1.089-1.744L83.22 3.562c.05-.215.075-.435.075-.655C83.295 1.302 81.994 0 80.388 0h-35.28c-1.971 0-3.698 1.322-4.211 3.226l-3.892 16.427c-.342 1.269-1.494 2.15-2.808 2.15H11.6c-2.041 0-3.808 1.415-4.256 3.405L.071 57.547c-.047.21-.071.424-.071.639 0 1.606 1.302 2.908 2.908 2.908h23.167c.143 0 .284.014.424.042 1.182.234 1.949 1.382 1.715 2.563-.687 3.469-1.149 6.899-1.385 10.29-.702 10.081 1.942 21.12 9.898 29.739 13.539 14.667 38.532 15.518 53.319 7.37 11.89-6.553 17.119-18.618 14.583-28.77"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -439,13 +439,25 @@ const configValues = {
return null;
},
},
'storage.disk.cache.types': {
'storage.disk.cache.types.allow': {
tab: 'storage',
set: (config, value) => {
config.storage.disk.cache.types = value;
config.storage.disk.cache.types.allow = value;
},
unset: (config) => {
delete config.storage.disk.cache.types;
delete config.storage.disk.cache.types.allow;
},
validate: (config) => {
return null;
},
},
'storage.disk.cache.types.block': {
tab: 'storage',
set: (config, value) => {
config.storage.disk.cache.types.block = value;
},
unset: (config) => {
delete config.storage.disk.cache.types.block;
},
validate: (config) => {
return null;
@ -756,7 +768,8 @@ export default function Settings(props) {
config.storage.cors.allow_all = true;
}
config.storage.cors.origins = config.storage.cors.origins.join('\n');
config.storage.disk.cache.types = config.storage.disk.cache.types.join('\n');
config.storage.disk.cache.types.allow = config.storage.disk.cache.types.allow.join('\n');
config.storage.disk.cache.types.block = config.storage.disk.cache.types.block.join('\n');
config.sessions.ip_ignorelist = config.sessions.ip_ignorelist.join('\n');
@ -905,7 +918,8 @@ export default function Settings(props) {
}
delete config.storage.cors.allow_all;
config.storage.disk.cache.types = toArray(config.storage.disk.cache.types, '\n');
config.storage.disk.cache.types.allow = toArray(config.storage.disk.cache.types.allow, '\n');
config.storage.disk.cache.types.block = toArray(config.storage.disk.cache.types.block, '\n');
config.sessions.ip_ignorelist = toArray(config.sessions.ip_ignorelist, '\n');
@ -1806,21 +1820,36 @@ export default function Settings(props) {
<Trans>Maximum file size to put in cache.</Trans>
</Typography>
</Grid>
<Grid item xs={12}>
<Grid item xs={6}>
<TextField
multiline
rows={5}
label={<Trans>Cache types</Trans>}
env={env('storage.disk.cache.types')}
disabled={env('storage.disk.cache.types') || !config.storage.disk.cache.enable}
value={config.storage.disk.cache.types}
onChange={handleChange('storage.disk.cache.types')}
env={env('storage.disk.cache.types.allow')}
disabled={env('storage.disk.cache.types.allow') || !config.storage.disk.cache.enable}
value={config.storage.disk.cache.types.allow}
onChange={handleChange('storage.disk.cache.types.allow')}
/>
<ErrorBox configvalue="storage.disk.cache.types" messages={$tabs.storage.messages} />
<ErrorBox configvalue="storage.disk.cache.types.allow" messages={$tabs.storage.messages} />
<Typography variant="caption">
<Trans>List of file extensions to cache (e.g. ".html"), one per line. Leave empty to cache all file types.</Trans>
</Typography>
</Grid>
<Grid item xs={6}>
<TextField
multiline
rows={5}
label={<Trans>Block cache types</Trans>}
env={env('storage.disk.cache.types.block')}
disabled={env('storage.disk.cache.types.block') || !config.storage.disk.cache.enable}
value={config.storage.disk.cache.types.block}
onChange={handleChange('storage.disk.cache.types.block')}
/>
<ErrorBox configvalue="storage.disk.cache.types.block" messages={$tabs.storage.messages} />
<Typography variant="caption">
<Trans>List of file extensions not to cache (e.g. ".m3u8"), one per line. Leave empty for none.</Trans>
</Typography>
</Grid>
</Grid>
</TabPanel>
<TabPanel value={$tab} index="rtmp" className="panel">

562
yarn.lock
View File

@ -10,16 +10,16 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@auth0/auth0-spa-js@^1.22.1":
version "1.22.1"
resolved "https://registry.yarnpkg.com/@auth0/auth0-spa-js/-/auth0-spa-js-1.22.1.tgz#ae463b9820aa323525918e2f49cededb042f84e3"
integrity sha512-l0FCmiN3XubpgCtB3U0ds4h+5WQNTnIF4eLT/fudHEtcyrT65QF/03LybGVdLyuvqdIF/D6OQsfjwYw0Ms605Q==
"@auth0/auth0-spa-js@^1.22.3":
version "1.22.3"
resolved "https://registry.yarnpkg.com/@auth0/auth0-spa-js/-/auth0-spa-js-1.22.3.tgz#8f1e6b8b7523394acc178af2acef1bd3762fe4aa"
integrity sha512-wy0ZjoBaNzxc9b/Mj9TNCWPxoriD3DP9/QCvG+7FQFvh9mvzL5IPfnm/dPjqHnxBN9CpIGecaNU7sKm4Jl6jhA==
dependencies:
abortcontroller-polyfill "^1.7.3"
browser-tabs-lock "^1.2.15"
core-js "^3.22.6"
es-cookie "^1.3.2"
fast-text-encoding "^1.0.3"
core-js "^3.24.0"
es-cookie "~1.3.2"
fast-text-encoding "^1.0.4"
promise-polyfill "^8.2.3"
unfetch "^4.2.0"
@ -56,10 +56,10 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab"
integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==
"@babel/compat-data@^7.18.6":
version "7.18.8"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d"
integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==
"@babel/compat-data@^7.18.8":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483"
integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==
"@babel/core@7.12.3":
version "7.12.3"
@ -104,21 +104,21 @@
json5 "^2.2.1"
semver "^6.3.0"
"@babel/core@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d"
integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==
"@babel/core@^7.18.13":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac"
integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==
dependencies:
"@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.18.6"
"@babel/helper-compilation-targets" "^7.18.6"
"@babel/helper-module-transforms" "^7.18.6"
"@babel/helpers" "^7.18.6"
"@babel/parser" "^7.18.6"
"@babel/template" "^7.18.6"
"@babel/traverse" "^7.18.6"
"@babel/types" "^7.18.6"
"@babel/generator" "^7.18.13"
"@babel/helper-compilation-targets" "^7.18.9"
"@babel/helper-module-transforms" "^7.18.9"
"@babel/helpers" "^7.18.9"
"@babel/parser" "^7.18.13"
"@babel/template" "^7.18.10"
"@babel/traverse" "^7.18.13"
"@babel/types" "^7.18.13"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@ -134,12 +134,12 @@
"@jridgewell/gen-mapping" "^0.3.0"
jsesc "^2.5.1"
"@babel/generator@^7.18.6", "@babel/generator@^7.18.7":
version "7.18.7"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd"
integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==
"@babel/generator@^7.18.13":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212"
integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==
dependencies:
"@babel/types" "^7.18.7"
"@babel/types" "^7.18.13"
"@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
@ -168,12 +168,12 @@
browserslist "^4.20.2"
semver "^6.3.0"
"@babel/helper-compilation-targets@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96"
integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==
"@babel/helper-compilation-targets@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf"
integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==
dependencies:
"@babel/compat-data" "^7.18.6"
"@babel/compat-data" "^7.18.8"
"@babel/helper-validator-option" "^7.18.6"
browserslist "^4.20.2"
semver "^6.3.0"
@ -218,10 +218,10 @@
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd"
integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==
"@babel/helper-environment-visitor@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7"
integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==
"@babel/helper-environment-visitor@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
"@babel/helper-explode-assignable-expression@^7.16.7":
version "7.16.7"
@ -238,13 +238,13 @@
"@babel/template" "^7.16.7"
"@babel/types" "^7.17.0"
"@babel/helper-function-name@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83"
integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==
"@babel/helper-function-name@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
dependencies:
"@babel/template" "^7.18.6"
"@babel/types" "^7.18.6"
"@babel/types" "^7.18.9"
"@babel/helper-hoist-variables@^7.16.7":
version "7.16.7"
@ -295,19 +295,19 @@
"@babel/traverse" "^7.18.0"
"@babel/types" "^7.18.0"
"@babel/helper-module-transforms@^7.18.6":
version "7.18.8"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz#4f8408afead0188cfa48672f9d0e5787b61778c8"
integrity sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==
"@babel/helper-module-transforms@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712"
integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==
dependencies:
"@babel/helper-environment-visitor" "^7.18.6"
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-module-imports" "^7.18.6"
"@babel/helper-simple-access" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.18.6"
"@babel/template" "^7.18.6"
"@babel/traverse" "^7.18.8"
"@babel/types" "^7.18.8"
"@babel/traverse" "^7.18.9"
"@babel/types" "^7.18.9"
"@babel/helper-optimise-call-expression@^7.16.7":
version "7.16.7"
@ -376,6 +376,11 @@
dependencies:
"@babel/types" "^7.18.6"
"@babel/helper-string-parser@^7.18.10":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
"@babel/helper-validator-identifier@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
@ -415,14 +420,14 @@
"@babel/traverse" "^7.18.2"
"@babel/types" "^7.18.2"
"@babel/helpers@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd"
integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==
"@babel/helpers@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9"
integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==
dependencies:
"@babel/template" "^7.18.6"
"@babel/traverse" "^7.18.6"
"@babel/types" "^7.18.6"
"@babel/traverse" "^7.18.9"
"@babel/types" "^7.18.9"
"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7":
version "7.17.12"
@ -447,7 +452,12 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef"
integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==
"@babel/parser@^7.18.6", "@babel/parser@^7.18.8":
"@babel/parser@^7.18.10", "@babel/parser@^7.18.13":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4"
integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==
"@babel/parser@^7.18.6":
version "7.18.8"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf"
integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==
@ -685,7 +695,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.17.12":
"@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.17.12":
version "7.17.12"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47"
integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==
@ -1197,13 +1207,20 @@
core-js-pure "^3.20.2"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.18.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.18.3":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.10.4", "@babel/template@^7.16.7", "@babel/template@^7.3.3":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
@ -1213,6 +1230,15 @@
"@babel/parser" "^7.16.7"
"@babel/types" "^7.16.7"
"@babel/template@^7.18.10":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
dependencies:
"@babel/code-frame" "^7.18.6"
"@babel/parser" "^7.18.10"
"@babel/types" "^7.18.10"
"@babel/template@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31"
@ -1238,19 +1264,19 @@
debug "^4.1.0"
globals "^11.1.0"
"@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8":
version "7.18.8"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.8.tgz#f095e62ab46abf1da35e5a2011f43aee72d8d5b0"
integrity sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==
"@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68"
integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==
dependencies:
"@babel/code-frame" "^7.18.6"
"@babel/generator" "^7.18.7"
"@babel/helper-environment-visitor" "^7.18.6"
"@babel/helper-function-name" "^7.18.6"
"@babel/generator" "^7.18.13"
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-function-name" "^7.18.9"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/parser" "^7.18.8"
"@babel/types" "^7.18.8"
"@babel/parser" "^7.18.13"
"@babel/types" "^7.18.13"
debug "^4.1.0"
globals "^11.1.0"
@ -1262,7 +1288,16 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
"@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.18.8":
"@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.9":
version "7.18.13"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a"
integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==
dependencies:
"@babel/helper-string-parser" "^7.18.10"
"@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0"
"@babel/types@^7.18.6":
version "7.18.8"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f"
integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==
@ -1315,24 +1350,35 @@
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
"@emotion/babel-plugin@^11.7.1":
version "11.9.2"
resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95"
integrity sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==
"@emotion/babel-plugin@^11.10.0":
version "11.10.2"
resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7"
integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA==
dependencies:
"@babel/helper-module-imports" "^7.12.13"
"@babel/plugin-syntax-jsx" "^7.12.13"
"@babel/runtime" "^7.13.10"
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.5"
"@emotion/serialize" "^1.0.2"
babel-plugin-macros "^2.6.1"
"@babel/helper-module-imports" "^7.16.7"
"@babel/plugin-syntax-jsx" "^7.17.12"
"@babel/runtime" "^7.18.3"
"@emotion/hash" "^0.9.0"
"@emotion/memoize" "^0.8.0"
"@emotion/serialize" "^1.1.0"
babel-plugin-macros "^3.1.0"
convert-source-map "^1.5.0"
escape-string-regexp "^4.0.0"
find-root "^1.1.0"
source-map "^0.5.7"
stylis "4.0.13"
"@emotion/cache@^11.10.0", "@emotion/cache@^11.10.1":
version "11.10.3"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87"
integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==
dependencies:
"@emotion/memoize" "^0.8.0"
"@emotion/sheet" "^1.2.0"
"@emotion/utils" "^1.2.0"
"@emotion/weak-memoize" "^0.3.0"
stylis "4.0.13"
"@emotion/cache@^11.7.1":
version "11.7.1"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539"
@ -1344,22 +1390,16 @@
"@emotion/weak-memoize" "^0.2.5"
stylis "4.0.13"
"@emotion/cache@^11.9.3":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.9.3.tgz#96638449f6929fd18062cfe04d79b29b44c0d6cb"
integrity sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/sheet" "^1.1.1"
"@emotion/utils" "^1.0.0"
"@emotion/weak-memoize" "^0.2.5"
stylis "4.0.13"
"@emotion/hash@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
"@emotion/hash@^0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7"
integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==
"@emotion/is-prop-valid@^1.1.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz#34ad6e98e871aa6f7a20469b602911b8b11b3a95"
@ -1367,51 +1407,45 @@
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/is-prop-valid@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz#f0907a416368cf8df9e410117068e20fe87c0a3a"
integrity sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==
"@emotion/is-prop-valid@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83"
integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/memoize" "^0.8.0"
"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
"@emotion/memoize@^0.7.4":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
"@emotion/react@^11.9.3":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.3.tgz#f4f4f34444f6654a2e550f5dab4f2d360c101df9"
integrity sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==
"@emotion/memoize@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f"
integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==
"@emotion/react@^11.10.0":
version "11.10.0"
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.0.tgz#53c577f063f26493f68a05188fb87528d912ff2e"
integrity sha512-K6z9zlHxxBXwN8TcpwBKcEsBsOw4JWCCmR+BeeOWgqp8GIU1yA2Odd41bwdAAr0ssbQrbJbVnndvv7oiv1bZeQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@emotion/babel-plugin" "^11.7.1"
"@emotion/cache" "^11.9.3"
"@emotion/serialize" "^1.0.4"
"@emotion/utils" "^1.1.0"
"@emotion/weak-memoize" "^0.2.5"
"@babel/runtime" "^7.18.3"
"@emotion/babel-plugin" "^11.10.0"
"@emotion/cache" "^11.10.0"
"@emotion/serialize" "^1.1.0"
"@emotion/utils" "^1.2.0"
"@emotion/weak-memoize" "^0.3.0"
hoist-non-react-statics "^3.3.1"
"@emotion/serialize@^1.0.2":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.3.tgz#99e2060c26c6292469fb30db41f4690e1c8fea63"
integrity sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==
"@emotion/serialize@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8"
integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA==
dependencies:
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.4"
"@emotion/unitless" "^0.7.5"
"@emotion/utils" "^1.0.0"
csstype "^3.0.2"
"@emotion/serialize@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.4.tgz#ff31fd11bb07999611199c2229e152faadc21a3c"
integrity sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==
dependencies:
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.4"
"@emotion/unitless" "^0.7.5"
"@emotion/utils" "^1.0.0"
"@emotion/hash" "^0.9.0"
"@emotion/memoize" "^0.8.0"
"@emotion/unitless" "^0.8.0"
"@emotion/utils" "^1.2.0"
csstype "^3.0.2"
"@emotion/sheet@^1.1.0":
@ -1419,37 +1453,47 @@
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2"
integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==
"@emotion/sheet@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.1.tgz#015756e2a9a3c7c5f11d8ec22966a8dbfbfac787"
integrity sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==
"@emotion/sheet@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5"
integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w==
"@emotion/styled@^11.9.3":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.9.3.tgz#47f0c71137fec7c57035bf3659b52fb536792340"
integrity sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==
"@emotion/styled@^11.10.0":
version "11.10.0"
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.0.tgz#c19484dab4206ae46727c07efb4316423dd21312"
integrity sha512-V9oaEH6V4KePeQpgUE83i8ht+4Ri3E8Djp/ZPJ4DQlqWhSKITvgzlR3/YQE2hdfP4Jw3qVRkANJz01LLqK9/TA==
dependencies:
"@babel/runtime" "^7.13.10"
"@emotion/babel-plugin" "^11.7.1"
"@emotion/is-prop-valid" "^1.1.3"
"@emotion/serialize" "^1.0.4"
"@emotion/utils" "^1.1.0"
"@babel/runtime" "^7.18.3"
"@emotion/babel-plugin" "^11.10.0"
"@emotion/is-prop-valid" "^1.2.0"
"@emotion/serialize" "^1.1.0"
"@emotion/utils" "^1.2.0"
"@emotion/unitless@^0.7.5":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
"@emotion/unitless@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db"
integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==
"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0":
"@emotion/utils@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
"@emotion/utils@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561"
integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==
"@emotion/weak-memoize@^0.2.5":
version "0.2.5"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
"@emotion/weak-memoize@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb"
integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==
"@endemolshinegroup/cosmiconfig-typescript-loader@^3.0.2":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz#eea4635828dde372838b0909693ebd9aafeec22d"
@ -1475,41 +1519,41 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@fontsource/dosis@^4.5.8":
"@fontsource/dosis@^4.5.9":
version "4.5.9"
resolved "https://registry.yarnpkg.com/@fontsource/dosis/-/dosis-4.5.9.tgz#149a5c48ee67a20301f79afd0430e7a87d2d6bbd"
integrity sha512-QU99CCETnBXwV/MDSQwwUbH15LtogYefsiZVIOGRNPGalqM+kjlvSxkA0A6vQZ3Pvkn0FylmaQw5IsD8so2PsQ==
"@fontsource/roboto@^4.5.8":
version "4.5.8"
resolved "https://registry.yarnpkg.com/@fontsource/dosis/-/dosis-4.5.8.tgz#d6c78fcd2e9df179efb09d96563868bb5ef4dfd9"
integrity sha512-dv9Mw3dMzVPTADMIo49y/b7S7W5LTGYOIeN+Ciht1PLX1+kKPUNwiapc3uU8DIQZrOGiuNo8ktUPtkTBjYoeNQ==
resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-4.5.8.tgz#56347764786079838faf43f0eeda22dd7328437f"
integrity sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==
"@fontsource/roboto@^4.5.7":
version "4.5.7"
resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-4.5.7.tgz#292740a52fa2bac61b89f92e1c588037defe65cb"
integrity sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==
"@fortawesome/fontawesome-common-types@6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.2.tgz#c1095b1bbabf19f37f9ff0719db38d92a410bcfe"
integrity sha512-wBaAPGz1Awxg05e0PBRkDRuTsy4B3dpBm+zreTTyd9TH4uUM27cAL4xWyWR0rLJCrRwzVsQ4hF3FvM6rqydKPA==
"@fortawesome/fontawesome-common-types@6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz#7dc996042d21fc1ae850e3173b5c67b0549f9105"
integrity sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==
"@fortawesome/fontawesome-svg-core@^6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz#3424ec6182515951816be9b11665d67efdce5b5f"
integrity sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==
"@fortawesome/fontawesome-svg-core@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.2.tgz#11e2e8583a7dea75d734e4d0e53d91c63fae7511"
integrity sha512-853G/Htp0BOdXnPoeCPTjFrVwyrJHpe8MhjB/DYE9XjwhnNDfuBCd3aKc2YUYbEfHEcBws4UAA0kA9dymZKGjA==
dependencies:
"@fortawesome/fontawesome-common-types" "6.1.1"
"@fortawesome/fontawesome-common-types" "6.1.2"
"@fortawesome/free-brands-svg-icons@^6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.1.tgz#3580961d4f42bd51dc171842402f23a18a5480b1"
integrity sha512-mFbI/czjBZ+paUtw5NPr2IXjun5KAC8eFqh1hnxowjA4mMZxWz4GCIksq6j9ZSa6Uxj9JhjjDVEd77p2LN2Blg==
"@fortawesome/free-brands-svg-icons@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.2.tgz#14160348b8ad5986b3805797dc4377a96e0014d9"
integrity sha512-b2eMfXQBsSxh52pcPtYchURQs6BWNh3zVTG8XH8Lv6V4kDhEg7D0kHN+K1SZniDiPb/e5tBlaygsinMUvetITA==
dependencies:
"@fortawesome/fontawesome-common-types" "6.1.1"
"@fortawesome/fontawesome-common-types" "6.1.2"
"@fortawesome/free-solid-svg-icons@^6.1.1":
version "6.1.1"
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz#3369e673f8fe8be2fba30b1ec274d47490a830a6"
integrity sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==
"@fortawesome/free-solid-svg-icons@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.2.tgz#491d668b8a6603698d0ce1ac620f66fd22b74c84"
integrity sha512-lTgZz+cMpzjkHmCwOG3E1ilUZrnINYdqMmrkv30EC3XbRsGlbIOL8H9LaNp5SV4g0pNJDfQ4EdTWWaMvdwyLiQ==
dependencies:
"@fortawesome/fontawesome-common-types" "6.1.1"
"@fortawesome/fontawesome-common-types" "6.1.2"
"@fortawesome/react-fontawesome@^0.2.0":
version "0.2.0"
@ -1925,36 +1969,36 @@
prop-types "^15.7.2"
react-is "^17.0.2"
"@mui/base@5.0.0-alpha.89":
version "5.0.0-alpha.89"
resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.89.tgz#d72681fa20e05297b426e113c47a0912b59c8b44"
integrity sha512-2g18hzt947qQ3gQQPOPEBfzQmaT2wafVhyJ7ZOZXeU6kKb88MdlHoPkK2lKXCHMBtRGnnsiF36j0rmhQXu0I5g==
"@mui/base@5.0.0-alpha.94":
version "5.0.0-alpha.94"
resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.94.tgz#8835dfb41fab8ee0dfafacd89178f877ea24bcbf"
integrity sha512-IJXmgTF07H1Iv5zjDV7zJZGUmb9cN8ERzd2dgA1akh6NWZgwyIGyQx+Au9+QSDoM5vN3FqZvU/0YCU6inUwgeQ==
dependencies:
"@babel/runtime" "^7.17.2"
"@emotion/is-prop-valid" "^1.1.3"
"@mui/types" "^7.1.4"
"@mui/utils" "^5.9.0"
"@popperjs/core" "^2.11.5"
"@emotion/is-prop-valid" "^1.2.0"
"@mui/types" "^7.1.5"
"@mui/utils" "^5.9.3"
"@popperjs/core" "^2.11.6"
clsx "^1.2.1"
prop-types "^15.8.1"
react-is "^18.2.0"
"@mui/icons-material@^5.8.4":
version "5.8.4"
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.8.4.tgz#3f2907c9f8f5ce4d754cb8fb4b68b5a1abf4d095"
integrity sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==
"@mui/icons-material@^5.10.2":
version "5.10.2"
resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.10.2.tgz#26e0a1ff1586f68e18ba1786bb8ba30ffd94475d"
integrity sha512-p7ku+43JeKRz0ONGzPZbRXZRbE7vCKP1Cr8l/Yj9sUIGVQ6CM/m37u6udacJZkDXD+G2FoxJPixrVvvjx6f64w==
dependencies:
"@babel/runtime" "^7.17.2"
"@mui/lab@^5.0.0-alpha.90":
version "5.0.0-alpha.90"
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.90.tgz#c70549f2c398a5c5e41755de22c1e18c9e470d77"
integrity sha512-9ze3cIo5OU7XSdB/FaV6JHJlFfyg2MpedakDHcFncoZRL2vvKJas3NOBaLKKxNN360RdUiUbHJZzKcCOyhQJug==
"@mui/lab@^5.0.0-alpha.96":
version "5.0.0-alpha.96"
resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.96.tgz#f34e6c86ff4c1fc9a87592c8428b0771d3c1c970"
integrity sha512-hA3nef9cV50eIljPA/otQ6CrDeI276UGRJmVw6YZzSBtUeGuE9FY411VOZeST4I4OM88RD3lwiRbN5aTX5Nn3g==
dependencies:
"@babel/runtime" "^7.17.2"
"@mui/base" "5.0.0-alpha.89"
"@mui/system" "^5.9.0"
"@mui/utils" "^5.9.0"
"@mui/base" "5.0.0-alpha.94"
"@mui/system" "^5.10.2"
"@mui/utils" "^5.9.3"
clsx "^1.2.1"
prop-types "^15.8.1"
react-is "^18.2.0"
@ -1986,13 +2030,23 @@
"@mui/utils" "^5.8.0"
prop-types "^15.8.1"
"@mui/private-theming@^5.9.0":
version "5.9.0"
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.9.0.tgz#d2437ed95ecfa3bfc9d2ee7c6053c94d4931cb26"
integrity sha512-t0ZsWxE/LvX5RH5azjx1esBHbIfD9zjnbSAYkpE59BPpkOrqAYDGoJguL2EPd9LaUb6COmBozmAwNenvI6RJRQ==
"@mui/private-theming@^5.9.3":
version "5.9.3"
resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.9.3.tgz#8ea06dbe0522b0cf4ba5ee19b1a4d7f74539ae1c"
integrity sha512-Ys3WO39WqoGciGX9k5AIi/k2zJhlydv4FzlEEwtw9OqdMaV0ydK/TdZekKzjP9sTI/JcdAP3H5DWtUaPLQJjWg==
dependencies:
"@babel/runtime" "^7.17.2"
"@mui/utils" "^5.9.0"
"@mui/utils" "^5.9.3"
prop-types "^15.8.1"
"@mui/styled-engine@^5.10.2":
version "5.10.2"
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.2.tgz#47257f02f0db0905d35f3a1d31bb8d2b63d0c228"
integrity sha512-YqnptNQ2E0cWwOTmLCEvrddiiR/neUfn2AD/4TDUXZu8B2n7NfDb9d3bAUfWZV+KmulQdAedoaZDqyXBFGLdbQ==
dependencies:
"@babel/runtime" "^7.17.2"
"@emotion/cache" "^11.10.1"
csstype "^3.1.0"
prop-types "^15.8.1"
"@mui/styled-engine@^5.8.0":
@ -2004,16 +2058,6 @@
"@emotion/cache" "^11.7.1"
prop-types "^15.8.1"
"@mui/styled-engine@^5.8.7":
version "5.8.7"
resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.8.7.tgz#63d0779c07677fe76d4705a02c7ae99f89b50780"
integrity sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==
dependencies:
"@babel/runtime" "^7.17.2"
"@emotion/cache" "^11.9.3"
csstype "^3.1.0"
prop-types "^15.8.1"
"@mui/styles@^5.1.1":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.1.1.tgz#59e240db3a117eae0fe37dcb98d6935a72d25da7"
@ -2051,16 +2095,16 @@
csstype "^3.1.0"
prop-types "^15.8.1"
"@mui/system@^5.9.0":
version "5.9.0"
resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.9.0.tgz#804055bc6fcd557479b8b28dfca7ed5c98fd9bf9"
integrity sha512-KLZDYMmT1usokEJH+raGTh1SbdOx4BVrT+wg8nRpKGNii2sfc3ntuJSKuv3Fu9oeC9xVFTnNBHXKrpJuxeDcqg==
"@mui/system@^5.10.2":
version "5.10.2"
resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.2.tgz#9393284304fcfb3882148eefc808f50d95878a27"
integrity sha512-YudwJhLcEoQiwCAmzeMr9P3ISiVGNsxBIIPzFxaGwJ8+mMrx3qoPVOV2sfm0ZuNiQuABshEw4KqHa5ftNC+pOQ==
dependencies:
"@babel/runtime" "^7.17.2"
"@mui/private-theming" "^5.9.0"
"@mui/styled-engine" "^5.8.7"
"@mui/types" "^7.1.4"
"@mui/utils" "^5.9.0"
"@mui/private-theming" "^5.9.3"
"@mui/styled-engine" "^5.10.2"
"@mui/types" "^7.1.5"
"@mui/utils" "^5.9.3"
clsx "^1.2.1"
csstype "^3.1.0"
prop-types "^15.8.1"
@ -2070,10 +2114,10 @@
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.3.tgz#d7636f3046110bcccc63e6acfd100e2ad9ca712a"
integrity sha512-DDF0UhMBo4Uezlk+6QxrlDbchF79XG6Zs0zIewlR4c0Dt6GKVFfUtzPtHCH1tTbcSlq/L2bGEdiaoHBJ9Y1gSA==
"@mui/types@^7.1.4":
version "7.1.4"
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.4.tgz#4185c05d6df63ec673cda15feab80440abadc764"
integrity sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==
"@mui/types@^7.1.5":
version "7.1.5"
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.5.tgz#5e5cc49d719bc86522983359bc1f90eddcff0624"
integrity sha512-HnRXrxgHJYJcT8ZDdDCQIlqk0s0skOKD7eWs9mJgBUu70hyW4iA6Kiv3yspJR474RFH8hysKR65VVSzUSzkuwA==
"@mui/utils@^5.1.1", "@mui/utils@^5.8.0":
version "5.8.0"
@ -2086,10 +2130,10 @@
prop-types "^15.8.1"
react-is "^17.0.2"
"@mui/utils@^5.9.0":
version "5.9.0"
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.9.0.tgz#2e1ac58905b767de47412cb32475862875b8e880"
integrity sha512-GAaiWP6zBC3RE1NHP9y1c1iKZh5s/nyKKqWxfTrw5lNQY5tWTh9/47F682FuiE5WT1o3h4w/LEkSSIZpMEDzrA==
"@mui/utils@^5.9.3":
version "5.9.3"
resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.9.3.tgz#a11e0824f00b7ea40257b390060ce167fe861d02"
integrity sha512-l0N5bcrenE9hnwZ/jPecpIRqsDFHkPXoFUcmkgysaJwVZzJ3yQkGXB47eqmXX5yyGrSc6HksbbqXEaUya+siew==
dependencies:
"@babel/runtime" "^7.17.2"
"@types/prop-types" "^15.7.5"
@ -2146,7 +2190,12 @@
schema-utils "^2.6.5"
source-map "^0.7.3"
"@popperjs/core@^2.11.5", "@popperjs/core@^2.4.4":
"@popperjs/core@^2.11.6":
version "2.11.6"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45"
integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==
"@popperjs/core@^2.4.4":
version "2.11.5"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
@ -3414,15 +3463,6 @@ babel-plugin-jest-hoist@^26.6.2:
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
babel-plugin-macros@^2.6.1:
version "2.8.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
dependencies:
"@babel/runtime" "^7.7.2"
cosmiconfig "^6.0.0"
resolve "^1.12.0"
babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
@ -4444,10 +4484,10 @@ core-js@^2.4.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.22.6:
version "3.23.4"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.4.tgz#92d640faa7f48b90bbd5da239986602cfc402aa6"
integrity sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==
core-js@^3.24.0:
version "3.25.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.0.tgz#be71d9e0dd648ffd70c44a7ec2319d039357eceb"
integrity sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==
core-js@^3.6.5:
version "3.22.8"
@ -4469,17 +4509,6 @@ cosmiconfig@^5.0.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
dependencies:
"@types/parse-json" "^4.0.0"
import-fresh "^3.1.0"
parse-json "^5.0.0"
path-type "^4.0.0"
yaml "^1.7.2"
cosmiconfig@^7.0.0:
version "7.0.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
@ -5347,7 +5376,7 @@ es-array-method-boxes-properly@^1.0.0:
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
es-cookie@^1.3.2:
es-cookie@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/es-cookie/-/es-cookie-1.3.2.tgz#80e831597f72a25721701bdcb21d990319acd831"
integrity sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==
@ -5888,10 +5917,10 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-text-encoding@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz#ec02ac8e01ab8a319af182dae2681213cfe9ce53"
integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==
fast-text-encoding@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.4.tgz#bf1898ad800282a4e53c0ea9690704dd26e4298e"
integrity sha512-x6lDDm/tBAzX9kmsPcZsNbvDs3Zey3+scsxaZElS8xWLgUMAg/oFLeewfUz0mu1CblHhhsu15jGkraldkFh8KQ==
fastq@^1.6.0:
version "1.13.0"
@ -6754,7 +6783,7 @@ import-fresh@^2.0.0:
caller-path "^2.0.0"
resolve-from "^3.0.0"
import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@ -10387,10 +10416,10 @@ react-app-polyfill@^2.0.0:
regenerator-runtime "^0.13.7"
whatwg-fetch "^3.4.1"
react-colorful@^5.5.1:
version "5.5.1"
resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.5.1.tgz#29d9c4e496f2ca784dd2bb5053a3a4340cfaf784"
integrity sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==
react-colorful@^5.6.1:
version "5.6.1"
resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b"
integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==
react-dev-utils@^11.0.3:
version "11.0.4"
@ -12430,7 +12459,7 @@ vendors@^1.0.0:
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
"video.js@^6 || ^7", video.js@^7.19.2:
"video.js@^6 || ^7":
version "7.19.2"
resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.19.2.tgz#83396db819b61e25328c020c0191dbe7a2187403"
integrity sha512-+rV/lJ1bDoMW3SbYlRp0eC9//RgvfBpEQ0USOyx44tHVxVyMjq+G9jZoiulsDXaIp4BX9q5+/y87TbZUysXBHA==
@ -12449,6 +12478,25 @@ vendors@^1.0.0:
videojs-font "3.2.0"
videojs-vtt.js "^0.15.3"
video.js@^7.20.2:
version "7.20.2"
resolved "https://registry.yarnpkg.com/video.js/-/video.js-7.20.2.tgz#7a1bd9575bb489ac13bcb231c76a35149c4eb34a"
integrity sha512-hdvAHKAyaL6bCDkeu0pPtFYKi1EDaOUovm7FN1xqBDolUxgH8FKy1WIgTS+Ouuaw7R54SCTcSeXjZEizhy9ouQ==
dependencies:
"@babel/runtime" "^7.12.5"
"@videojs/http-streaming" "2.14.2"
"@videojs/vhs-utils" "^3.0.4"
"@videojs/xhr" "2.6.0"
aes-decrypter "3.1.3"
global "^4.4.0"
keycode "^2.2.0"
m3u8-parser "4.7.1"
mpd-parser "0.21.1"
mux.js "6.0.1"
safe-json-parse "4.0.0"
videojs-font "3.2.0"
videojs-vtt.js "^0.15.3"
videojs-font@3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/videojs-font/-/videojs-font-3.2.0.tgz#212c9d3f4e4ec3fa7345167d64316add35e92232"
@ -12964,7 +13012,7 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.10.0, yaml@^1.7.2:
yaml@^1.10.0:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==