@besovideo/webrtc-player 0.2.8 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.browser.css +1 -1
- package/dist/main.browser.js +10 -10
- package/dist/main.es.css +1 -1
- package/dist/main.es.js +10 -10
- package/dist/types/app.d.ts +2 -4
- package/dist/types/components/bvWebrtc/index.d.ts +2 -0
- package/dist/types/components/puPlayer.d.ts +1 -1
- package/dist/types/components/types.d.ts +2 -0
- package/dist/types/core/customElement.d.ts +4 -0
- package/dist/types/core/dom.d.ts +22 -0
- package/dist/types/core/events.d.ts +21 -8
- package/dist/types/core/field.d.ts +4 -0
- package/dist/types/core/index.d.ts +20 -3
- package/dist/types/core/jsx.d.ts +8 -0
- package/dist/types/core/style.d.ts +10 -0
- package/dist/types/core/types.d.ts +7 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/instances/bvWebrtc.d.ts +8 -2
- package/dist/types/instances/common.d.ts +7 -1
- package/dist/types/main.d.ts +1 -1
- package/dist/types/plugins/controller/button.d.ts +13 -0
- package/dist/types/plugins/controller/event.d.ts +13 -0
- package/dist/types/plugins/controller/index.d.ts +22 -0
- package/dist/types/plugins/decorators.d.ts +2 -0
- package/dist/types/plugins/mixins/visible.d.ts +13 -0
- package/dist/types/plugins/modal.d.ts +33 -0
- package/dist/types/plugins/player/event.d.ts +18 -0
- package/dist/types/plugins/player/index.d.ts +25 -7
- package/dist/types/plugins/player/infoList.d.ts +14 -0
- package/dist/types/plugins/player/panel.d.ts +15 -0
- package/dist/types/plugins/player/reducers/types.d.ts +36 -0
- package/dist/types/plugins/types.d.ts +16 -23
- package/dist/types/plugins/video.d.ts +12 -2
- package/dist/types/templates/button.d.ts +8 -0
- package/dist/types/templates/icons.d.ts +18 -0
- package/dist/types/templates/type.d.ts +0 -0
- package/dist/types/utils/dev.d.ts +4 -0
- package/dist/types/utils/lang.d.ts +11 -0
- package/dist/types/utils/logger.d.ts +2 -0
- package/dist/types/utils/util.d.ts +2 -2
- package/dist/types/z_test/puPlayer.d.ts +1 -1
- package/dist/types/z_unuse/index.d.ts +5 -0
- package/package.json +68 -58
- package/dist/types/core/classes.d.ts +0 -2
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IPluginEvent, IPluginEventMap, Plugin } from "./types";
|
|
2
|
+
import { CanVisibleCtor } from "./mixins/visible";
|
|
3
|
+
interface IModalPluginEvent extends IPluginEvent {
|
|
4
|
+
target: ModalPluginBase;
|
|
5
|
+
}
|
|
6
|
+
interface IControllerPluginEventMap extends IPluginEventMap {
|
|
7
|
+
show: IModalPluginEvent;
|
|
8
|
+
hide: IModalPluginEvent;
|
|
9
|
+
}
|
|
10
|
+
interface IModalPluginOption {
|
|
11
|
+
container: HTMLElement;
|
|
12
|
+
title?: string;
|
|
13
|
+
content?: HTMLElement;
|
|
14
|
+
center?: boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
declare class ModalPluginBase extends Plugin<HTMLDivElement, IControllerPluginEventMap> {
|
|
18
|
+
container: HTMLElement;
|
|
19
|
+
title?: string;
|
|
20
|
+
private _content;
|
|
21
|
+
private _center;
|
|
22
|
+
constructor(options: IModalPluginOption);
|
|
23
|
+
set content(content: JSX.Element);
|
|
24
|
+
show(): void;
|
|
25
|
+
hide(): void;
|
|
26
|
+
clear(): void;
|
|
27
|
+
protected beforeDestroy(): void;
|
|
28
|
+
init(): HTMLDivElement;
|
|
29
|
+
}
|
|
30
|
+
declare const _mixinsModalPluginBase: CanVisibleCtor & typeof ModalPluginBase;
|
|
31
|
+
export default class ModalPlugin extends _mixinsModalPluginBase {
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IPluginEvent, IPluginEventMap } from "../../plugins/types";
|
|
2
|
+
import PlayerPlugin, { PLAYER_MODES } from "./index";
|
|
3
|
+
interface IPlayerEvent extends IPluginEvent {
|
|
4
|
+
target: PlayerPlugin;
|
|
5
|
+
}
|
|
6
|
+
interface IInitEvent extends IPlayerEvent {
|
|
7
|
+
name: "initEvent";
|
|
8
|
+
mode: PLAYER_MODES;
|
|
9
|
+
}
|
|
10
|
+
interface ICloseWebrtcEvent extends IPlayerEvent {
|
|
11
|
+
name: "closeWebrtcEvent";
|
|
12
|
+
peerConnection?: RTCPeerConnection;
|
|
13
|
+
}
|
|
14
|
+
export interface IPlayerPluginEventMap extends IPluginEventMap {
|
|
15
|
+
init: IInitEvent;
|
|
16
|
+
closeWebrtc: ICloseWebrtcEvent;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
import { RenderTarget } from "../../core/types";
|
|
2
|
-
import { Plugin } from "
|
|
2
|
+
import { Plugin } from "../types";
|
|
3
|
+
import { IWebRTCConnectOption } from "./reducers/types";
|
|
3
4
|
import MaskPlugin from "../mask";
|
|
4
5
|
import SpinnerPlugin from "../spinner";
|
|
5
6
|
import VideoPlugin from "../video";
|
|
6
|
-
import {
|
|
7
|
-
declare enum
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import { IPlayerPluginEventMap } from "./event";
|
|
8
|
+
export declare enum PLAYER_MODES {
|
|
9
|
+
DIRECT = "direct",
|
|
10
|
+
PLUGIN = "plugin",
|
|
11
|
+
REJECT = "reject"
|
|
12
|
+
}
|
|
13
|
+
declare enum DIRECT_SUPPORT_TYPES {
|
|
14
|
+
MP4 = "MP4",
|
|
15
|
+
FLAC = "FLAC",
|
|
16
|
+
OGG = "OGG",
|
|
17
|
+
WEBM = "WEBM",
|
|
18
|
+
AUTO = "AUTO"
|
|
19
|
+
}
|
|
20
|
+
declare enum PLUGIN_SUPPORT_TYPES {
|
|
21
|
+
WEBRTC = "WEBRTC"
|
|
10
22
|
}
|
|
11
23
|
interface IVideoOption {
|
|
12
24
|
url?: string;
|
|
13
|
-
type?:
|
|
25
|
+
type?: keyof typeof DIRECT_SUPPORT_TYPES | keyof typeof PLUGIN_SUPPORT_TYPES;
|
|
14
26
|
}
|
|
15
27
|
interface IPluginOption {
|
|
16
28
|
webrtc?: IWebRTCConnectOption;
|
|
@@ -24,7 +36,7 @@ export interface IPlayerPluginOptions {
|
|
|
24
36
|
playerConfig: IPlayerConfig;
|
|
25
37
|
direct: string;
|
|
26
38
|
}
|
|
27
|
-
declare class PlayerPlugin extends Plugin<HTMLDivElement> {
|
|
39
|
+
declare class PlayerPlugin extends Plugin<HTMLDivElement, IPlayerPluginEventMap> {
|
|
28
40
|
private _mode;
|
|
29
41
|
private _videoOption?;
|
|
30
42
|
private _pluginOption?;
|
|
@@ -32,6 +44,10 @@ declare class PlayerPlugin extends Plugin<HTMLDivElement> {
|
|
|
32
44
|
private _video;
|
|
33
45
|
private _spinner;
|
|
34
46
|
private _mask;
|
|
47
|
+
private _panel;
|
|
48
|
+
private _infoModal;
|
|
49
|
+
private _timer;
|
|
50
|
+
private _lastTotalReceivedBytes;
|
|
35
51
|
private _webrtcConnect?;
|
|
36
52
|
constructor(options?: Partial<IPlayerPluginOptions>);
|
|
37
53
|
private justifyVideoType;
|
|
@@ -49,8 +65,10 @@ declare class PlayerPlugin extends Plugin<HTMLDivElement> {
|
|
|
49
65
|
private onMuted;
|
|
50
66
|
private onUnMuted;
|
|
51
67
|
private loadPlayerConfig;
|
|
68
|
+
private initEvents;
|
|
52
69
|
private prepare;
|
|
53
70
|
private prepareDirect;
|
|
54
71
|
private closeWebrtc;
|
|
72
|
+
private refreshInfoModal;
|
|
55
73
|
}
|
|
56
74
|
export default PlayerPlugin;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface IInfoListItem {
|
|
2
|
+
label?: string;
|
|
3
|
+
value?: string;
|
|
4
|
+
suffix?: string;
|
|
5
|
+
}
|
|
6
|
+
interface IJsxInfoListItemProps extends IJsxProps, IInfoListItem {
|
|
7
|
+
}
|
|
8
|
+
export declare const InfoListItem: FC<IJsxInfoListItemProps>;
|
|
9
|
+
interface IJsxInfoListProps extends IJsxProps {
|
|
10
|
+
list?: any[];
|
|
11
|
+
factory?: Record<string, (value: any, subject: any) => IInfoListItem>;
|
|
12
|
+
}
|
|
13
|
+
declare const InfoList: FC<IJsxInfoListProps>;
|
|
14
|
+
export default InfoList;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import ControllerPlugin from "../controller";
|
|
2
|
+
declare class PlayerPanel {
|
|
3
|
+
private readonly _els;
|
|
4
|
+
private _controller;
|
|
5
|
+
private _autoHideTimeout?;
|
|
6
|
+
disableAutoHide: boolean;
|
|
7
|
+
constructor();
|
|
8
|
+
init(): HTMLElement[];
|
|
9
|
+
get els(): HTMLElement[];
|
|
10
|
+
get controller(): ControllerPlugin;
|
|
11
|
+
show(): void;
|
|
12
|
+
hide(): void;
|
|
13
|
+
showThenHide(): void;
|
|
14
|
+
}
|
|
15
|
+
export default PlayerPanel;
|
|
@@ -11,6 +11,42 @@ export interface IWebRTCConnectOption {
|
|
|
11
11
|
export interface IWebRTCOnGotStream {
|
|
12
12
|
(stream?: MediaStream): void;
|
|
13
13
|
}
|
|
14
|
+
declare type TrackKinds = "audio" | "video";
|
|
15
|
+
export interface IAudioStatsInfo {
|
|
16
|
+
mimeType?: string;
|
|
17
|
+
clockRate?: number;
|
|
18
|
+
channels?: number;
|
|
19
|
+
totalSamplesReceived?: number;
|
|
20
|
+
totalSamplesDuration?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface IVideoStatsInfo {
|
|
23
|
+
mimeType?: string;
|
|
24
|
+
clockRate?: number;
|
|
25
|
+
frameWidth?: number;
|
|
26
|
+
frameHeight?: number;
|
|
27
|
+
framesPerSecond?: number;
|
|
28
|
+
framesReceived?: number;
|
|
29
|
+
framesDecoded?: number;
|
|
30
|
+
totalInterFrameDelay?: number;
|
|
31
|
+
keyFramesDecoded?: number;
|
|
32
|
+
packetsLost?: number;
|
|
33
|
+
lastPacketReceivedTimestamp?: number;
|
|
34
|
+
bytesReceived?: number;
|
|
35
|
+
totalDecodeTime?: number;
|
|
36
|
+
}
|
|
37
|
+
interface IStatsInfos {
|
|
38
|
+
audios: IAudioStatsInfo[];
|
|
39
|
+
videos: IVideoStatsInfo[];
|
|
40
|
+
}
|
|
14
41
|
export interface IWebRTCConnect {
|
|
15
42
|
pc: RTCPeerConnection;
|
|
43
|
+
getReceiversMap(): Map<TrackKinds, RTCRtpReceiver[]>;
|
|
44
|
+
getStatsInfos(): Promise<IStatsInfos>;
|
|
45
|
+
}
|
|
46
|
+
export declare class WebRTCConnect implements IWebRTCConnect {
|
|
47
|
+
pc: RTCPeerConnection;
|
|
48
|
+
constructor(pc: RTCPeerConnection);
|
|
49
|
+
getReceiversMap(): Map<TrackKinds, RTCRtpReceiver[]>;
|
|
50
|
+
getStatsInfos(): Promise<IStatsInfos>;
|
|
16
51
|
}
|
|
52
|
+
export {};
|
|
@@ -1,32 +1,25 @@
|
|
|
1
|
-
import { IEvent,
|
|
1
|
+
import { IEvent, Events, IEventMap } from "../core/events";
|
|
2
2
|
import { RenderTarget } from "../core/types";
|
|
3
|
-
export interface IPluginEvent extends IEvent {
|
|
4
|
-
}
|
|
5
|
-
export interface IPluginEventTypes {
|
|
6
|
-
beforeRender?: IPluginEvent;
|
|
7
|
-
render?: IPluginEvent;
|
|
8
|
-
beforeDestroy?: IPluginEvent;
|
|
9
|
-
destroy?: IPluginEvent;
|
|
10
|
-
}
|
|
11
|
-
export interface IPluginEvents extends IEvents<IPluginEventTypes> {
|
|
12
|
-
}
|
|
13
|
-
export declare class PluginEvents implements IPluginEvents {
|
|
14
|
-
protected evMap: Map<string, Function[]>;
|
|
15
|
-
constructor();
|
|
16
|
-
on<K extends keyof IPluginEventTypes>(name: K, handler: IEventHandler<IPluginEventTypes, K>): void;
|
|
17
|
-
trigger<K extends keyof IPluginEventTypes>(name: K, param: any): void;
|
|
18
|
-
}
|
|
19
3
|
export interface IPlugin {
|
|
20
4
|
init(_container?: RenderTarget): RenderTarget;
|
|
21
|
-
|
|
5
|
+
empty(): void;
|
|
6
|
+
unmount(): void;
|
|
22
7
|
destroy(): void;
|
|
23
8
|
}
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
export interface IPluginEvent extends IEvent {
|
|
10
|
+
target: IPlugin;
|
|
11
|
+
}
|
|
12
|
+
export interface IPluginEventMap extends IEventMap {
|
|
13
|
+
destroy: IPluginEvent;
|
|
14
|
+
}
|
|
15
|
+
export declare abstract class Plugin<E extends HTMLElement = HTMLElement, M extends IPluginEventMap = IPluginEventMap> extends Events<M> implements IPlugin {
|
|
16
|
+
name: string;
|
|
17
|
+
el: E | null;
|
|
18
|
+
constructor(tagName: keyof HTMLElementTagNameMap, pluginName: string, classNames?: string);
|
|
27
19
|
protected abstract beforeDestroy(): void;
|
|
28
20
|
abstract init(_container?: RenderTarget): RenderTarget;
|
|
29
|
-
|
|
21
|
+
empty(): void;
|
|
22
|
+
unmount(): void;
|
|
30
23
|
destroy(): void;
|
|
31
|
-
getEl():
|
|
24
|
+
getEl(): E | null;
|
|
32
25
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import { Plugin } from "./types";
|
|
1
|
+
import { IPluginEvent, IPluginEventMap, Plugin } from "./types";
|
|
2
|
+
interface IVideoPluginEvent extends IPluginEvent {
|
|
3
|
+
target: VideoPlugin;
|
|
4
|
+
}
|
|
5
|
+
interface IVideoPluginEventMap extends IPluginEventMap {
|
|
6
|
+
play: IVideoPluginEvent;
|
|
7
|
+
pause: IVideoPluginEvent;
|
|
8
|
+
loadedmetadata: IVideoPluginEvent;
|
|
9
|
+
}
|
|
2
10
|
export interface IVideoFits {
|
|
3
11
|
contain: string;
|
|
4
12
|
fill: string;
|
|
@@ -11,7 +19,7 @@ export interface IVideoPluginOptions {
|
|
|
11
19
|
muted?: boolean;
|
|
12
20
|
fit?: keyof IVideoFits;
|
|
13
21
|
}
|
|
14
|
-
declare class VideoPlugin extends Plugin<HTMLVideoElement> {
|
|
22
|
+
declare class VideoPlugin extends Plugin<HTMLVideoElement, IVideoPluginEventMap> {
|
|
15
23
|
private _url;
|
|
16
24
|
private _srcObject;
|
|
17
25
|
private _autoPlay;
|
|
@@ -21,6 +29,8 @@ declare class VideoPlugin extends Plugin<HTMLVideoElement> {
|
|
|
21
29
|
set url(url: string);
|
|
22
30
|
set srcObject(sO: MediaProvider | null);
|
|
23
31
|
set muted(v: boolean);
|
|
32
|
+
set paused(v: boolean);
|
|
33
|
+
get paused(): boolean;
|
|
24
34
|
set autoPlay(v: boolean);
|
|
25
35
|
set fit(fit: keyof IVideoFits);
|
|
26
36
|
getVideoFit(): string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const Icon: FC;
|
|
2
|
+
interface IIconsProps {
|
|
3
|
+
filled?: boolean;
|
|
4
|
+
circle?: boolean;
|
|
5
|
+
off?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const Icons: {
|
|
8
|
+
Cog: FC<IIconsProps>;
|
|
9
|
+
Camera: FC<IIconsProps>;
|
|
10
|
+
Info: FC<IIconsProps>;
|
|
11
|
+
ArrowsExpand: FC<IIconsProps>;
|
|
12
|
+
X: FC<IIconsProps>;
|
|
13
|
+
Volume: FC<IIconsProps>;
|
|
14
|
+
Play: FC<IIconsProps>;
|
|
15
|
+
Full: FC<IIconsProps>;
|
|
16
|
+
};
|
|
17
|
+
export { Icon };
|
|
18
|
+
export default Icons;
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const lang: {
|
|
2
|
+
isArr: (arg: any) => arg is any[];
|
|
3
|
+
baseIsNaN: (value: any) => boolean;
|
|
4
|
+
isString: (arg?: any) => arg is string;
|
|
5
|
+
isNumber: (arg?: any) => arg is number;
|
|
6
|
+
isText: (arg?: any) => arg is string | number;
|
|
7
|
+
isFn: (arg: any) => arg is Function;
|
|
8
|
+
isUndefined: (arg?: any) => arg is undefined;
|
|
9
|
+
isNullOrUndefined: (arg?: any) => arg is null | undefined;
|
|
10
|
+
};
|
|
11
|
+
export default lang;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ShLogger } from "@shirtiny/logger";
|
|
2
2
|
declare class EmbedLogger extends ShLogger {
|
|
3
3
|
test: (message: string, ...data: any[]) => void;
|
|
4
|
+
libWarn: (message: string, ...data: any[]) => void;
|
|
5
|
+
libError: (message: string, ...data: any[]) => void;
|
|
4
6
|
}
|
|
5
7
|
declare const logger: EmbedLogger;
|
|
6
8
|
export default logger;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare function baseIsNaN(value: any): boolean;
|
|
2
1
|
declare const util: {
|
|
3
2
|
pullAll: (arr: any[], values: any[]) => any[];
|
|
4
|
-
|
|
3
|
+
toArray: (arr: any) => any[];
|
|
4
|
+
screenshot: (videoEl: HTMLVideoElement, fileName?: string) => void;
|
|
5
5
|
};
|
|
6
6
|
export default util;
|
package/package.json
CHANGED
|
@@ -1,58 +1,68 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@besovideo/webrtc-player",
|
|
3
|
-
"version": "0.2
|
|
4
|
-
"description": "@besovideo/webrtc-player desc",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
".":
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"@types/
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@besovideo/webrtc-player",
|
|
3
|
+
"version": "0.3.2",
|
|
4
|
+
"description": "@besovideo/webrtc-player desc",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"types": "./dist/types/main.d.ts",
|
|
7
|
+
"main": "./dist/main.es.js",
|
|
8
|
+
"module": "./dist/main.es.js",
|
|
9
|
+
"exports": {
|
|
10
|
+
"./dist/main.es.css": "./dist/main.es.css",
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/main.es.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"start": "dotenv -c development node .node/server.js",
|
|
20
|
+
"build": "npm run clean && dotenv -c production node .node/builder.js",
|
|
21
|
+
"test": "jest",
|
|
22
|
+
"lint": "eslint --max-warnings 0 . --ext .ts",
|
|
23
|
+
"clean": "shx rm -rf dist",
|
|
24
|
+
"ts-node": "ts-node"
|
|
25
|
+
},
|
|
26
|
+
"keywords": [
|
|
27
|
+
"bvwebclient",
|
|
28
|
+
"besovideo"
|
|
29
|
+
],
|
|
30
|
+
"jest": {
|
|
31
|
+
"preset": "ts-jest"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/jest": "26.0.23",
|
|
35
|
+
"@types/node": "15.6.1",
|
|
36
|
+
"@types/w3c-image-capture": "^1.0.5",
|
|
37
|
+
"@typescript-eslint/eslint-plugin": "^4.27.0",
|
|
38
|
+
"@typescript-eslint/parser": "^4.27.0",
|
|
39
|
+
"autoprefixer": "^10.2.6",
|
|
40
|
+
"camelcase": "^6.2.1",
|
|
41
|
+
"chalk": "^4.1.1",
|
|
42
|
+
"dotenv-cli": "^4.0.0",
|
|
43
|
+
"esbuild": "0.12.5",
|
|
44
|
+
"esbuild-sass-plugin": "^1.4.8",
|
|
45
|
+
"eslint": "^7.28.0",
|
|
46
|
+
"eslint-config-prettier": "^8.3.0",
|
|
47
|
+
"eslint-plugin-prettier": "^3.4.0",
|
|
48
|
+
"jest": "^27.2.2",
|
|
49
|
+
"open": "^8.2.0",
|
|
50
|
+
"postcss": "^8.3.5",
|
|
51
|
+
"postcss-preset-env": "^6.7.0",
|
|
52
|
+
"prettier": "^2.3.0",
|
|
53
|
+
"shx": "^0.3.3",
|
|
54
|
+
"svgo": "^2.8.0",
|
|
55
|
+
"ts-jest": "^27.0.5",
|
|
56
|
+
"ts-node": "10.0.0",
|
|
57
|
+
"typescript": "^4.5.3"
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@shirtiny/logger": "^2.1.13"
|
|
61
|
+
},
|
|
62
|
+
"browserslist": [
|
|
63
|
+
"last 1 version",
|
|
64
|
+
"> 1%",
|
|
65
|
+
"maintained node versions",
|
|
66
|
+
"not dead"
|
|
67
|
+
]
|
|
68
|
+
}
|