@kieransimkin/dancemoves 3.1.18 → 3.1.20

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/lib/index.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  export * from './rudiments';
2
2
  export type Remove = () => void;
3
+ export type PlaybackMedia = HTMLMediaElement | PlaybackSource;
4
+ export interface PlaybackMapping {offset?:number;duration?:number;playerStart?:number}
5
+ export type MasterReference = HTMLMediaElement | Readonly<{id:string;duration:number;element?:HTMLMediaElement}>;
6
+ export interface PlaybackSource extends EventTarget {
7
+ readonly nodeType:1;readonly tagName:string;readonly element:HTMLMediaElement|null;readonly activePlayer:HTMLMediaElement|HTMLIFrameElement|null;
8
+ currentTime:number;readonly duration:number;readonly paused:boolean;readonly ended:boolean;readonly seeking:boolean;readonly playbackRate:number;
9
+ play():Promise<void>|void;pause():void;
10
+ }
11
+ export interface PlayerRegistration extends PlaybackMapping {master:MasterReference;masterVerified:true}
12
+ export interface PlaybackController extends Controller {source:PlaybackSource;mapping:Readonly<PlaybackMapping>;ready?:Promise<PlaybackController>}
3
13
  export type Offset = Readonly<{x:number;y:number;z?:number}>;
4
14
  export type Metadata = string | {id?:string;handlerId?:string};
5
15
  export interface PageConfig {
@@ -13,10 +23,10 @@ export interface Options extends PageConfig {
13
23
  paperPlanes?:{atlasUrl:string;planeCount?:number;compactPlaneCount?:number};
14
24
  }
15
25
  export type OrientationAdapter = 'light-will-win'|'dying-for-a-diagnosis'|'presents-and-chocolate'|'fully-nocturnal'|'amnesty-honestly'|'walk-with-me'|'dmitri-my-talisman'|'clay-stars'|'california-screamin';
16
- export interface Cue {time:number;type:string;name:string;label?:string;normalisedType?:string;normalisedName?:string;normalisedLabel?:string;audio?:HTMLAudioElement|null}
17
- export interface Lyric {time:number;text:string;normalisedText?:string;audio?:HTMLAudioElement|null;previousVisibleTime?:number|null;previousVisibleText?:string;previousVisibleNormalisedText?:string;previousVisibleIndex?:number;nextTime?:number|null;nextText?:string;nextVisibleTime?:number|null;nextVisibleText?:string;nextVisibleNormalisedText?:string;nextVisibleIndex?:number;[field:string]:unknown}
18
- export interface Clock {clock?:'page'|'audio';audio?:HTMLAudioElement;bpm?:number;strictlyFuture?:boolean;handlerId?:string}
19
- export interface IntervalDetail {intervalTicks:number;boundaryTick:number;audio:HTMLAudioElement|null;clock:'page'|'audio'}
26
+ export interface Cue {time:number;type:string;name:string;label?:string;normalisedType?:string;normalisedName?:string;normalisedLabel?:string;audio?:PlaybackMedia|null}
27
+ export interface Lyric {time:number;text:string;normalisedText?:string;audio?:PlaybackMedia|null;previousVisibleTime?:number|null;previousVisibleText?:string;previousVisibleNormalisedText?:string;previousVisibleIndex?:number;nextTime?:number|null;nextText?:string;nextVisibleTime?:number|null;nextVisibleText?:string;nextVisibleNormalisedText?:string;nextVisibleIndex?:number;[field:string]:unknown}
28
+ export interface Clock {clock?:'page'|'audio';audio?:PlaybackMedia;bpm?:number;strictlyFuture?:boolean;handlerId?:string}
29
+ export interface IntervalDetail {intervalTicks:number;boundaryTick:number;audio:PlaybackMedia|null;clock:'page'|'audio'}
20
30
  export interface Controller {id?:string;teardown():void;snapshot():Record<string,unknown>}
21
31
  export interface PointerController extends Controller {set(x:number,y:number,reason?:string):void;reset(reason?:string):void}
22
32
  export interface QualityController extends Controller {setTier(index:number,reason?:string):void}
@@ -25,16 +35,16 @@ export interface SpritePlaybackController extends Controller {restore(reason?:st
25
35
  export interface LyricStageController extends Controller {restore(reason?:string):void}
26
36
  export interface CooperativeArenaController extends Controller {setEnabled(value:boolean,reason?:string):void;setDensity(ships:number,hazards:number):void}
27
37
  export interface LyricStageSlots {previous:HTMLElement;current:HTMLElement;next:HTMLElement;viewport:HTMLElement;track:HTMLElement}
28
- export interface LyricStageState {root:Element;popover:HTMLElement;audio:HTMLAudioElement;slots:LyricStageSlots;detail?:Lyric|null;phase?:string;progress?:number;reason?:string;playing?:boolean;reducedMotion:boolean;forcedColours:boolean;[field:string]:unknown}
38
+ export interface LyricStageState {root:Element;popover:HTMLElement;audio:PlaybackMedia;slots:LyricStageSlots;detail?:Lyric|null;phase?:string;progress?:number;reason?:string;playing?:boolean;reducedMotion:boolean;forcedColours:boolean;[field:string]:unknown}
29
39
  export type LyricStageCleanup = void | (()=>void) | {durationTicks?:number;cleanup?:()=>void};
30
40
  export interface Effects {
31
41
  version:string;
32
42
  pointer(options:EffectOptions & {target?:Element|string;bounds?:Element|string;render?:(point:{x:number;y:number;reason?:string})=>void}):PointerController;
33
- playbackPulse(options:EffectOptions & {audio?:HTMLAudioElement|string;ticks?:number;className?:string;propertyPrefix?:string;render?:(state:Record<string,unknown> & {audio:HTMLAudioElement})=>void}):Controller & {sync():void};
43
+ playbackPulse(options:EffectOptions & {audio?:PlaybackMedia|string;ticks?:number;className?:string;propertyPrefix?:string;render?:(state:Record<string,unknown> & {audio:PlaybackMedia})=>void}):Controller & {sync():void};
34
44
  cueClass(options:EffectOptions & {cue?:string;className?:string;durationTicks?:number;render?:(state:Record<string,unknown>)=>void}):Controller & {fire(cue?:Cue):void;clear(reason?:string):void};
35
- cueTimeline(options:EffectOptions & {audio?:HTMLAudioElement|string;cues:Array<{id?:string;time:number;end?:number;[key:string]:unknown}>;onCue?:(event:Record<string,unknown>)=>void;render?:(state:Record<string,unknown>)=>void}):CueTimelineController;
36
- spritePlayback(options:EffectOptions & {audio?:HTMLAudioElement|string;target?:HTMLElement|string;frameCount?:number;columns?:number;framesPerRow?:number;columnOffset?:number;rowOffset?:number;frameMap?:number[];cycleTicks?:number;phaseOffsetSeconds?:number;staticFrame?:number;propertyPrefix?:string;qualityTiers?:string[];qualityFramesPerSecond?:number[];initialQuality?:number;render?:(state:Record<string,unknown> & {audio:HTMLAudioElement;target:HTMLElement;frame:number;localFrame:number;column:number;row:number;phase:number;cycleSeconds:number;playing:boolean})=>void}):SpritePlaybackController;
37
- lyricStage(options:EffectOptions & {audio?:HTMLAudioElement|string;popover?:HTMLElement|string;travelTicks?:number;cueDurationTicks?:number;render?:(state:LyricStageState)=>void;renderLyric?:(state:LyricStageState & {previousDetail?:Lyric|null;previousText?:string})=>LyricStageCleanup;renderCue?:(state:LyricStageState & {detail:Cue;count:number})=>LyricStageCleanup}):LyricStageController|Controller;
45
+ cueTimeline(options:EffectOptions & {audio?:PlaybackMedia|string;cues:Array<{id?:string;time:number;end?:number;[key:string]:unknown}>;onCue?:(event:Record<string,unknown>)=>void;render?:(state:Record<string,unknown>)=>void}):CueTimelineController;
46
+ spritePlayback(options:EffectOptions & {audio?:PlaybackMedia|string;target?:HTMLElement|string;frameCount?:number;columns?:number;framesPerRow?:number;columnOffset?:number;rowOffset?:number;frameMap?:number[];cycleTicks?:number;phaseOffsetSeconds?:number;staticFrame?:number;propertyPrefix?:string;qualityTiers?:string[];qualityFramesPerSecond?:number[];initialQuality?:number;render?:(state:Record<string,unknown> & {audio:PlaybackMedia;target:HTMLElement;frame:number;localFrame:number;column:number;row:number;phase:number;cycleSeconds:number;playing:boolean})=>void}):SpritePlaybackController;
47
+ lyricStage(options:EffectOptions & {audio?:PlaybackMedia|string;popover?:HTMLElement|string;travelTicks?:number;cueDurationTicks?:number;render?:(state:LyricStageState)=>void;renderLyric?:(state:LyricStageState & {previousDetail?:Lyric|null;previousText?:string})=>LyricStageCleanup;renderCue?:(state:LyricStageState & {detail:Cue;count:number})=>LyricStageCleanup}):LyricStageController|Controller;
38
48
  cooperativeArena(options:EffectOptions & {stage?:HTMLElement|string;shipSources:string[];hazardSources:string[];shipCount?:number;hazardCount?:number;speed?:number;bpm?:number;shotIntervalTicks?:number;enabled?:boolean;onHit?:(state:Record<string,unknown>)=>void;onCollision?:(state:Record<string,unknown>)=>void;render?:(state:Record<string,unknown>)=>void}):CooperativeArenaController;
39
49
  quality(options:EffectOptions & {tiers?:string[];render?:(state:{tier:string;index:number;reason:string;sample?:{fps:number}})=>void;[key:string]:unknown}):QualityController;
40
50
  get(id:string):Controller|null;snapshot():Record<string,unknown>[];teardown(id:string):void;teardownAll():void;
@@ -46,6 +56,9 @@ export interface PhoneMotionOptions {render?:(point:Offset & {reason:string})=>v
46
56
  export interface Recorder {start():Promise<MotionCapture>;stop(reason?:string):MotionCapture;snapshot():Record<string,unknown>;upload(endpoint:string,options?:{headers?:Record<string,string>;signal?:AbortSignal}):Promise<Record<string,unknown>>}
47
57
  export interface MotionCapture {schema:'ks-epk-motion-recording/v1';samples:Array<{milliseconds:number;beta:number;gamma:number;alpha?:number|null;[key:string]:unknown}>;[key:string]:unknown}
48
58
  export interface DanceMoves {
59
+ playbackSource(master:MasterReference|PlaybackSource):PlaybackSource;
60
+ registerPlayer(options:PlayerRegistration & {player:HTMLMediaElement}):PlaybackController;
61
+ registerYouTube(options:PlayerRegistration & {iframe:HTMLIFrameElement}):PlaybackController & {ready:Promise<PlaybackController>};
49
62
  readonly version:string;readonly bpm:number;readonly bpmSource:string;readonly ticksPerBeat:16;readonly root:HTMLElement;readonly config:Readonly<PageConfig>;
50
63
  readonly destroyed:boolean;ready:Promise<DanceMoves>;
51
64
  quantizeTicks(value:number):number;durationMilliseconds(ticks:number,bpmOverride?:number):number;currentTick(options?:Clock):number;
@@ -61,7 +74,7 @@ export interface DanceMoves {
61
74
  parseTimingFile(text:string):Cue[];parseLyricTimingFile(text:string):Lyric[];normaliseCueName(name:string):string;
62
75
  onCue(name:string,callback:(cue:Cue)=>void,metadata?:Metadata):Remove;onLyric(callback:(lyric:Lyric)=>void,metadata?:Metadata):Remove;
63
76
  fireCue(cue:Partial<Cue> & {name:string}):Cue;registerAnimationScope(root:HTMLElement,selectors:string[]):Remove;
64
- resetRunningAnimations(audio?:HTMLAudioElement):number;discoverAudio():void;
77
+ resetRunningAnimations(audio?:PlaybackMedia):number;discoverAudio():void;registerPlaybackSource(source:PlaybackSource):void;unregisterPlaybackSource(source:PlaybackSource):void;
65
78
  setDiagnosticsSink(callback:((record:Record<string,unknown>)=>void)|null):boolean;diagnosticsEnabled():boolean;
66
79
  applyCatalogueTiming?():Record<string,unknown>;catalogueTimingSnapshot?():Record<string,unknown>;removeCatalogueAnimationScope?():void;
67
80
  effects:Effects;rudiments:import('./rudiments').RudimentApi;