@applemusic-like-lyrics/core 0.1.3 → 0.2.0-alpha.0
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/LICENSE +72 -85
- package/README.md +3 -2
- package/dist/amll-core.js +5514 -1460
- package/dist/amll-core.js.map +1 -1
- package/dist/bg-render/base.d.ts +6 -5
- package/dist/bg-render/img.d.ts +4 -0
- package/dist/bg-render/index.d.ts +4 -4
- package/dist/bg-render/mesh-renderer/cp-presets.d.ts +17 -0
- package/dist/bg-render/mesh-renderer/index.d.ts +67 -0
- package/dist/bg-render/pixi-renderer.d.ts +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/lyric-player/bottom-line.d.ts +3 -3
- package/dist/lyric-player/index.d.ts +29 -16
- package/dist/lyric-player/interlude-dots.d.ts +2 -2
- package/dist/lyric-player/lyric-line.d.ts +26 -8
- package/dist/mg-test.d.ts +1 -0
- package/dist/utils/debounce.d.ts +2 -0
- package/dist/utils/linear.d.ts +21 -0
- package/dist/utils/schedule.d.ts +6 -0
- package/dist/utils/wa-spring.d.ts +1 -1
- package/package.json +30 -26
- package/dist/amll-core.cjs +0 -61
- package/dist/amll-core.cjs.map +0 -1
- package/dist/bg-render/eplor-renderer.d.ts +0 -54
package/dist/bg-render/base.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Disposable, HasElement } from
|
|
1
|
+
import { Disposable, HasElement } from '../interfaces';
|
|
2
2
|
export declare abstract class AbstractBaseRenderer implements Disposable, HasElement {
|
|
3
3
|
/**
|
|
4
|
-
* 修改背景的流动速度,数字越大越快,默认为
|
|
5
|
-
* @param speed 背景的流动速度,默认为
|
|
4
|
+
* 修改背景的流动速度,数字越大越快,默认为 8
|
|
5
|
+
* @param speed 背景的流动速度,默认为 8
|
|
6
6
|
*/
|
|
7
7
|
abstract setFlowSpeed(speed: number): void;
|
|
8
8
|
/**
|
|
@@ -75,8 +75,8 @@ export declare abstract class BaseRenderer extends AbstractBaseRenderer {
|
|
|
75
75
|
*/
|
|
76
76
|
protected onResize(width: number, height: number): void;
|
|
77
77
|
/**
|
|
78
|
-
* 修改背景的流动速度,数字越大越快,默认为
|
|
79
|
-
* @param speed 背景的流动速度,默认为
|
|
78
|
+
* 修改背景的流动速度,数字越大越快,默认为 4
|
|
79
|
+
* @param speed 背景的流动速度,默认为 4
|
|
80
80
|
*/
|
|
81
81
|
setFlowSpeed(speed: number): void;
|
|
82
82
|
/**
|
|
@@ -105,4 +105,5 @@ export declare abstract class BaseRenderer extends AbstractBaseRenderer {
|
|
|
105
105
|
*/
|
|
106
106
|
abstract setAlbum(albumSource: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
107
107
|
dispose(): void;
|
|
108
|
+
getElement(): HTMLElement;
|
|
108
109
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function blurImage(imageData: ImageData, radius: number, quality: number): void;
|
|
2
|
+
export declare function saturateImage(imageData: ImageData, saturation: number): void;
|
|
3
|
+
export declare function brightnessImage(imageData: ImageData, brightness: number): void;
|
|
4
|
+
export declare function contrastImage(imageData: ImageData, contrast: number): void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { AbstractBaseRenderer, BaseRenderer } from './base';
|
|
1
2
|
/**
|
|
2
3
|
* @fileoverview
|
|
3
4
|
* 一个播放歌词的组件
|
|
4
5
|
* @author SteveXMH
|
|
5
6
|
*/
|
|
6
|
-
export { AbstractBaseRenderer, BaseRenderer } from
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
export { EplorRenderer } from "./eplor-renderer";
|
|
7
|
+
export { AbstractBaseRenderer, BaseRenderer } from './base';
|
|
8
|
+
export { PixiRenderer } from './pixi-renderer';
|
|
9
|
+
export { MeshGradientRenderer } from './mesh-renderer';
|
|
10
10
|
export declare class BackgroundRender<Renderer extends BaseRenderer> implements AbstractBaseRenderer {
|
|
11
11
|
private element;
|
|
12
12
|
private renderer;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface ControlPointConf {
|
|
2
|
+
cx: number;
|
|
3
|
+
cy: number;
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
ur: number;
|
|
7
|
+
vr: number;
|
|
8
|
+
up: number;
|
|
9
|
+
vp: number;
|
|
10
|
+
}
|
|
11
|
+
interface ControlPointPreset {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
conf: ControlPointConf[];
|
|
15
|
+
}
|
|
16
|
+
export declare const CONTROL_POINT_PRESETS: readonly [ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset, ControlPointPreset];
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Vec2, Vec3 } from 'gl-matrix';
|
|
2
|
+
import { BaseRenderer } from '../base';
|
|
3
|
+
declare class ControlPoint {
|
|
4
|
+
color: Vec3;
|
|
5
|
+
location: Vec2;
|
|
6
|
+
uTangent: Vec2;
|
|
7
|
+
vTangent: Vec2;
|
|
8
|
+
private _uRot;
|
|
9
|
+
private _vRot;
|
|
10
|
+
private _uScale;
|
|
11
|
+
private _vScale;
|
|
12
|
+
constructor();
|
|
13
|
+
get uRot(): number;
|
|
14
|
+
get vRot(): number;
|
|
15
|
+
set uRot(value: number);
|
|
16
|
+
set vRot(value: number);
|
|
17
|
+
get uScale(): number;
|
|
18
|
+
get vScale(): number;
|
|
19
|
+
set uScale(value: number);
|
|
20
|
+
set vScale(value: number);
|
|
21
|
+
private updateUTangent;
|
|
22
|
+
private updateVTangent;
|
|
23
|
+
}
|
|
24
|
+
export declare class MeshGradientRenderer extends BaseRenderer {
|
|
25
|
+
private gl;
|
|
26
|
+
private lastFrameTime;
|
|
27
|
+
private frameTime;
|
|
28
|
+
private lastTickTime;
|
|
29
|
+
private volume;
|
|
30
|
+
private tickHandle;
|
|
31
|
+
private maxFPS;
|
|
32
|
+
private paused;
|
|
33
|
+
private staticMode;
|
|
34
|
+
private mainProgram;
|
|
35
|
+
private blendProgram;
|
|
36
|
+
private manualControl;
|
|
37
|
+
private reduceImageSizeCanvas;
|
|
38
|
+
private targetSize;
|
|
39
|
+
private currentSize;
|
|
40
|
+
private fullScreenMesh;
|
|
41
|
+
private drawFrameBuffer;
|
|
42
|
+
private drawFrameBufferTexture;
|
|
43
|
+
private meshStates;
|
|
44
|
+
private _disposed;
|
|
45
|
+
setManualControl(enable: boolean): void;
|
|
46
|
+
setWireFrame(enable: boolean): void;
|
|
47
|
+
getControlPoint(x: number, y: number): ControlPoint | undefined;
|
|
48
|
+
resizeControlPoints(width: number, height: number): void;
|
|
49
|
+
resetSubdivition(subDivisions: number): void;
|
|
50
|
+
private onTick;
|
|
51
|
+
private checkIfResize;
|
|
52
|
+
private onRedraw;
|
|
53
|
+
private onTickBinded;
|
|
54
|
+
private requestTick;
|
|
55
|
+
private supportTextureFloat;
|
|
56
|
+
constructor(canvas: HTMLCanvasElement);
|
|
57
|
+
protected onResize(width: number, height: number): void;
|
|
58
|
+
setStaticMode(enable: boolean): void;
|
|
59
|
+
setFPS(fps: number): void;
|
|
60
|
+
pause(): void;
|
|
61
|
+
resume(): void;
|
|
62
|
+
setAlbum(albumSource: string | HTMLImageElement | HTMLVideoElement, isVideo?: boolean): Promise<void>;
|
|
63
|
+
setLowFreqVolume(volume: number): void;
|
|
64
|
+
setHasLyric(_hasLyric: boolean): void;
|
|
65
|
+
dispose(): void;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type * from
|
|
2
|
-
export type * as spring from
|
|
3
|
-
export * from
|
|
4
|
-
export { LyricPlayer, type LyricLineMouseEvent } from
|
|
1
|
+
export type * from './interfaces';
|
|
2
|
+
export type * as spring from './utils/spring';
|
|
3
|
+
export * from './bg-render';
|
|
4
|
+
export { LyricPlayer, type LyricLineMouseEvent } from './lyric-player';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LyricPlayer } from
|
|
2
|
-
import { Disposable, HasElement } from
|
|
3
|
-
import { Spring } from
|
|
1
|
+
import { LyricPlayer } from '.';
|
|
2
|
+
import { Disposable, HasElement } from '../interfaces';
|
|
3
|
+
import { Spring } from '../utils/spring';
|
|
4
4
|
export declare class BottomLineEl implements HasElement, Disposable {
|
|
5
5
|
private lyricPlayer;
|
|
6
6
|
private element;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* @author SteveXMH
|
|
5
|
-
*/
|
|
6
|
-
import type { Disposable, HasElement, LyricLine } from "../interfaces";
|
|
7
|
-
import { SpringParams } from "../utils/spring";
|
|
8
|
-
import { LyricLineEl } from "./lyric-line";
|
|
1
|
+
import { Disposable, HasElement, LyricLine } from '../interfaces';
|
|
2
|
+
import { SpringParams } from '../utils/spring';
|
|
3
|
+
import { LyricLineEl } from './lyric-line';
|
|
9
4
|
/**
|
|
10
5
|
* 歌词行鼠标相关事件,可以获取到歌词行的索引和歌词行元素
|
|
11
6
|
*/
|
|
@@ -28,9 +23,7 @@ export declare class LyricLineMouseEvent extends MouseEvent {
|
|
|
28
23
|
*/
|
|
29
24
|
line: LyricLineEl, event: MouseEvent);
|
|
30
25
|
}
|
|
31
|
-
export
|
|
32
|
-
(evt: LyricLineMouseEvent): void;
|
|
33
|
-
}
|
|
26
|
+
export type LyricLineMouseEventListener = (evt: LyricLineMouseEvent) => void;
|
|
34
27
|
/**
|
|
35
28
|
* 歌词播放组件,本框架的核心组件
|
|
36
29
|
*
|
|
@@ -39,6 +32,7 @@ export interface LyricLineMouseEventListener {
|
|
|
39
32
|
export declare class LyricPlayer extends EventTarget implements HasElement, Disposable {
|
|
40
33
|
private element;
|
|
41
34
|
private currentTime;
|
|
35
|
+
private lastCurrentTime;
|
|
42
36
|
private lyricLines;
|
|
43
37
|
private processedLines;
|
|
44
38
|
private lyricLinesEl;
|
|
@@ -47,18 +41,21 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
|
|
|
47
41
|
private hotLines;
|
|
48
42
|
private bufferedLines;
|
|
49
43
|
private scrollToIndex;
|
|
44
|
+
private _wordFadeWidth;
|
|
50
45
|
private allowScroll;
|
|
51
46
|
private scrolledHandler;
|
|
52
47
|
private isScrolled;
|
|
48
|
+
private isSeeking;
|
|
49
|
+
private initializeSeeking;
|
|
53
50
|
private invokedByScrollEvent;
|
|
54
51
|
private scrollOffset;
|
|
55
52
|
private hidePassedLines;
|
|
53
|
+
private debounceCalcLayout;
|
|
56
54
|
private resizeObserver;
|
|
57
55
|
private posXSpringParams;
|
|
58
56
|
private posYSpringParams;
|
|
59
57
|
private scaleSpringParams;
|
|
60
|
-
private
|
|
61
|
-
private padding;
|
|
58
|
+
private scaleForBGSpringParams;
|
|
62
59
|
private enableBlur;
|
|
63
60
|
private enableScale;
|
|
64
61
|
private interludeDots;
|
|
@@ -70,11 +67,12 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
|
|
|
70
67
|
private alignAnchor;
|
|
71
68
|
private alignPosition;
|
|
72
69
|
private isNonDynamic;
|
|
70
|
+
private isNonDuet;
|
|
73
71
|
private scrollBoundary;
|
|
74
72
|
readonly size: [number, number];
|
|
75
73
|
readonly innerSize: [number, number];
|
|
76
74
|
private readonly onLineClickedHandler;
|
|
77
|
-
|
|
75
|
+
setIsSeeking(isSeeking: boolean): void;
|
|
78
76
|
/**
|
|
79
77
|
* 设置是否使用物理弹簧算法实现歌词动画效果,默认启用
|
|
80
78
|
*
|
|
@@ -102,7 +100,6 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
|
|
|
102
100
|
* @returns 是否启用歌词行缩放效果
|
|
103
101
|
*/
|
|
104
102
|
getEnableScale(): boolean;
|
|
105
|
-
readonly style: import("jss").StyleSheet<"lyricPlayer" | "lyricLine" | "@media (max-width: 1024px)" | "lyricDuetLine" | "lyricBgLine" | "lyricMainLine" | "lyricSubLine" | "disableSpring" | "interludeDots" | "@supports (mix-blend-mode: plus-lighter)" | "tmpDisableTransition">;
|
|
106
103
|
private _baseFontSize;
|
|
107
104
|
get baseFontSize(): number;
|
|
108
105
|
private isPageVisible;
|
|
@@ -125,6 +122,8 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
|
|
|
125
122
|
* 重建样式
|
|
126
123
|
*
|
|
127
124
|
* 这个只允许内部调用
|
|
125
|
+
*
|
|
126
|
+
* @private
|
|
128
127
|
*/
|
|
129
128
|
rebuildStyle(): void;
|
|
130
129
|
/**
|
|
@@ -137,11 +136,25 @@ export declare class LyricPlayer extends EventTarget implements HasElement, Disp
|
|
|
137
136
|
* @param enable 是否启用
|
|
138
137
|
*/
|
|
139
138
|
setEnableBlur(enable: boolean): void;
|
|
139
|
+
get wordFadeWidth(): number;
|
|
140
|
+
/**
|
|
141
|
+
* 设置文字动画的渐变宽度,单位以歌词行的主文字字体大小的倍数为单位,默认为 0.5,即一个全角字符的一半宽度
|
|
142
|
+
*
|
|
143
|
+
* 如果要模拟 Apple Music for Android 的效果,可以设置为 1
|
|
144
|
+
*
|
|
145
|
+
* 如果要模拟 Apple Music for iPad 的效果,可以设置为 0.5
|
|
146
|
+
*
|
|
147
|
+
* 如果想要近乎禁用渐变效果,可以设置成非常接近 0 的小数(例如 `0.0001` ),但是**不可以为 0**
|
|
148
|
+
*
|
|
149
|
+
* @param value 需要设置的渐变宽度,单位以歌词行的主文字字体大小的倍数为单位,默认为 0.5
|
|
150
|
+
*/
|
|
151
|
+
setWordFadeWidth(value?: number): void;
|
|
140
152
|
/**
|
|
141
153
|
* 设置当前播放歌词,要注意传入后这个数组内的信息不得修改,否则会发生错误
|
|
142
154
|
* @param lines 歌词数组
|
|
155
|
+
* @param initialTime 初始时间,默认为 0
|
|
143
156
|
*/
|
|
144
|
-
setLyricLines(lines: LyricLine[]): void;
|
|
157
|
+
setLyricLines(lines: LyricLine[], initialTime?: number): void;
|
|
145
158
|
/**
|
|
146
159
|
* 重置用户滚动状态
|
|
147
160
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LyricPlayer } from
|
|
2
|
-
import
|
|
1
|
+
import { LyricPlayer } from '.';
|
|
2
|
+
import { Disposable, HasElement } from '../interfaces';
|
|
3
3
|
export declare class InterludeDots implements HasElement, Disposable {
|
|
4
4
|
private readonly lyricPlayer;
|
|
5
5
|
private element;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { LyricPlayer } from
|
|
2
|
-
import { Disposable, HasElement, LyricLine, LyricWord } from
|
|
3
|
-
import { Spring } from
|
|
1
|
+
import { LyricPlayer } from '.';
|
|
2
|
+
import { Disposable, HasElement, LyricLine, LyricWord } from '../interfaces';
|
|
3
|
+
import { Spring } from '../utils/spring';
|
|
4
|
+
interface RealWord extends LyricWord {
|
|
5
|
+
mainElement: HTMLSpanElement;
|
|
6
|
+
subElements: HTMLSpanElement[];
|
|
7
|
+
elementAnimations: Animation[];
|
|
8
|
+
maskAnimations: Animation[];
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
padding: number;
|
|
12
|
+
shouldEmphasize: boolean;
|
|
13
|
+
}
|
|
4
14
|
export declare function shouldEmphasize(word: LyricWord): boolean;
|
|
5
15
|
export declare class RawLyricLineMouseEvent extends MouseEvent {
|
|
6
16
|
readonly line: LyricLineEl;
|
|
@@ -32,11 +42,14 @@ export declare class LyricLineEl extends EventTarget implements HasElement, Disp
|
|
|
32
42
|
private readonly onMouseEvent;
|
|
33
43
|
addMouseEventListener(type: MouseEventTypes, callback: MouseEventListener | null, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
34
44
|
removeMouseEventListener(type: MouseEventTypes, callback: MouseEventListener | null, options?: boolean | EventListenerOptions | undefined): void;
|
|
45
|
+
areWordsOnSameLine(word1: RealWord, word2: RealWord): boolean;
|
|
35
46
|
private isEnabled;
|
|
36
|
-
|
|
47
|
+
private hasFaded;
|
|
48
|
+
enable(maskAnimationTime?: number): Promise<void>;
|
|
37
49
|
disable(maskAnimationTime?: number): void;
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
private lastWord?;
|
|
51
|
+
resume(currentTime?: number): void;
|
|
52
|
+
pause(currentTime?: number): void;
|
|
40
53
|
setMaskAnimationState(maskAnimationTime?: number): void;
|
|
41
54
|
measureSize(): [number, number];
|
|
42
55
|
setLine(line: LyricLine): void;
|
|
@@ -51,14 +64,19 @@ export declare class LyricLineEl extends EventTarget implements HasElement, Disp
|
|
|
51
64
|
private initFloatAnimation;
|
|
52
65
|
private initEmphasizeAnimation;
|
|
53
66
|
private get totalDuration();
|
|
54
|
-
|
|
67
|
+
private maskImageDirty;
|
|
68
|
+
private markImageDirtyPromises;
|
|
69
|
+
markMaskImageDirty(): Promise<void>;
|
|
70
|
+
waitMaskImageUpdated(): Promise<void>;
|
|
71
|
+
updateMaskImage(): Promise<void>;
|
|
55
72
|
private generateCalcBasedMaskImage;
|
|
56
73
|
private generateWebAnimationBasedMaskImage;
|
|
57
74
|
getElement(): HTMLElement;
|
|
58
|
-
setTransform(left?: number, top?: number, scale?: number, opacity?: number, blur?: number, force?: boolean, delay?: number): void;
|
|
75
|
+
setTransform(left?: number, top?: number, scale?: number, opacity?: number, subopacity?: number, blur?: number, force?: boolean, delay?: number): void;
|
|
59
76
|
update(delta?: number): void;
|
|
60
77
|
_getDebugTargetPos(): string;
|
|
61
78
|
get isInSight(): boolean;
|
|
79
|
+
private disposeElements;
|
|
62
80
|
dispose(): void;
|
|
63
81
|
}
|
|
64
82
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface LinearParams {
|
|
2
|
+
duration: number;
|
|
3
|
+
}
|
|
4
|
+
export declare class Linear {
|
|
5
|
+
private currentPosition;
|
|
6
|
+
private targetPosition;
|
|
7
|
+
private currentTime;
|
|
8
|
+
private params;
|
|
9
|
+
private currentSolver;
|
|
10
|
+
private startTime;
|
|
11
|
+
private queueParams;
|
|
12
|
+
private queuePosition;
|
|
13
|
+
constructor(currentPosition?: number);
|
|
14
|
+
private resetSolver;
|
|
15
|
+
arrived(): boolean;
|
|
16
|
+
setPosition(targetPosition: number): void;
|
|
17
|
+
update(delta?: number): void;
|
|
18
|
+
updateParams(params: Partial<LinearParams>, delay?: number): void;
|
|
19
|
+
setTargetPosition(targetPosition: number, delay?: number): void;
|
|
20
|
+
getCurrentPosition(): number;
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applemusic-like-lyrics/core",
|
|
3
|
-
"
|
|
4
|
-
"version": "0.1.3",
|
|
3
|
+
"version": "0.2.0-alpha.0",
|
|
5
4
|
"description": "AMLL 的纯 JS 核心组件框架,包括歌词显示组件和背景组件等其它可以复用的组件",
|
|
6
5
|
"repository": {
|
|
7
6
|
"url": "https://github.com/Steve-xmh/applemusic-like-lyrics.git",
|
|
@@ -15,13 +14,6 @@
|
|
|
15
14
|
"dist/**/*.cjs",
|
|
16
15
|
"dist/**/*.map"
|
|
17
16
|
],
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build:docs": "typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts",
|
|
20
|
-
"build": "vite build",
|
|
21
|
-
"build:dev": "vite build",
|
|
22
|
-
"fmt": "biome format --write ./src",
|
|
23
|
-
"dev": "vite dev"
|
|
24
|
-
},
|
|
25
17
|
"type": "module",
|
|
26
18
|
"main": "./dist/amll-core.cjs",
|
|
27
19
|
"module": "./dist/amll-core.js",
|
|
@@ -31,23 +23,28 @@
|
|
|
31
23
|
"types": "./dist/index.d.ts",
|
|
32
24
|
"import": "./dist/amll-core.js",
|
|
33
25
|
"require": "./dist/amll-core.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./style.css": {
|
|
28
|
+
"import": "./dist/style.css",
|
|
29
|
+
"require": "./dist/style.css"
|
|
34
30
|
}
|
|
35
31
|
},
|
|
36
32
|
"devDependencies": {
|
|
37
33
|
"@applemusic-like-lyrics/lyric": "^0.0.2",
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@types/stats.js": "^0.17.
|
|
34
|
+
"@biomejs/biome": "^1.8.3",
|
|
35
|
+
"@types/deep-freeze": "^0.1.5",
|
|
36
|
+
"@types/stats.js": "^0.17.3",
|
|
41
37
|
"lil-gui": "^0.18.2",
|
|
42
38
|
"stats.js": "^0.17.0",
|
|
43
|
-
"typedoc": "^0.
|
|
44
|
-
"typedoc-plugin-markdown": "^
|
|
45
|
-
"typescript": "^5.
|
|
46
|
-
"vite": "^
|
|
47
|
-
"vite-plugin-dts": "^
|
|
48
|
-
"vite-plugin-glsl": "^1.
|
|
49
|
-
"vite-plugin-top-level-await": "^1.
|
|
50
|
-
"vite-plugin-wasm": "^3.
|
|
39
|
+
"typedoc": "^0.26.5",
|
|
40
|
+
"typedoc-plugin-markdown": "^4.2.3",
|
|
41
|
+
"typescript": "^5.5.4",
|
|
42
|
+
"vite": "^5.4.0",
|
|
43
|
+
"vite-plugin-dts": "^4.0.3",
|
|
44
|
+
"vite-plugin-glsl": "^1.3.0",
|
|
45
|
+
"vite-plugin-top-level-await": "^1.4.4",
|
|
46
|
+
"vite-plugin-wasm": "^3.3.0",
|
|
47
|
+
"@applemusic-like-lyrics/ttml": "^0.1.1"
|
|
51
48
|
},
|
|
52
49
|
"peerDependencies": {
|
|
53
50
|
"@pixi/app": "*",
|
|
@@ -56,12 +53,19 @@
|
|
|
56
53
|
"@pixi/filter-blur": "*",
|
|
57
54
|
"@pixi/filter-bulge-pinch": "*",
|
|
58
55
|
"@pixi/filter-color-matrix": "*",
|
|
59
|
-
"@pixi/sprite": "*"
|
|
60
|
-
"jss": "*",
|
|
61
|
-
"jss-preset-default": "*"
|
|
56
|
+
"@pixi/sprite": "*"
|
|
62
57
|
},
|
|
63
58
|
"dependencies": {
|
|
64
|
-
"bezier-easing": "^2.1.0"
|
|
59
|
+
"bezier-easing": "^2.1.0",
|
|
60
|
+
"deep-freeze": "^0.0.1",
|
|
61
|
+
"gl-matrix": "^4.0.0-beta.2"
|
|
65
62
|
},
|
|
66
|
-
"
|
|
67
|
-
|
|
63
|
+
"scripts": {
|
|
64
|
+
"build:docs": "typedoc --plugin typedoc-plugin-markdown --out docs src/index.ts",
|
|
65
|
+
"build": "vite build",
|
|
66
|
+
"build:dev": "vite build",
|
|
67
|
+
"fmt": "biome format --write ./src",
|
|
68
|
+
"dev": "vite dev",
|
|
69
|
+
"preinstall": "npx only-allow pnpm"
|
|
70
|
+
}
|
|
71
|
+
}
|