@readerseye2/cr_type 1.0.85 → 1.0.88
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.
|
@@ -168,6 +168,12 @@ export interface RecordingChunkPayload {
|
|
|
168
168
|
chunk: ChunkFile;
|
|
169
169
|
snapshot?: ViewerSnapshot;
|
|
170
170
|
}
|
|
171
|
+
/** 실시간 이벤트 relay (라이브 모니터링용, 청크 대기 없이 즉시 전송) */
|
|
172
|
+
export interface RecordingLiveEventsPayload {
|
|
173
|
+
recordingId: string;
|
|
174
|
+
segmentIndex: number;
|
|
175
|
+
events: ViewerEvent[];
|
|
176
|
+
}
|
|
171
177
|
/** 세그먼트 시작됨 (뷰어 열림) */
|
|
172
178
|
export interface SegmentStartedPayload {
|
|
173
179
|
recordingId: string;
|
|
@@ -2,7 +2,7 @@ import { MessageReadResponse, MessageResponse, NoticeMessageResult } from "./soc
|
|
|
2
2
|
import { ReadingSessionInfo, ViewerSnapshot } from "./reading-section.types";
|
|
3
3
|
import { ViewerEvent } from "./viewer-events.types";
|
|
4
4
|
import { ConnectedUser, ConnectedUsersGrouped } from "./connected-user.types";
|
|
5
|
-
import { RecordingStartedPayload, RecordingStoppedPayload, RecordingChunkPayload, SegmentStartedPayload, SegmentEndedPayload, RecordingListResultPayload, RecordingManifestPayload, SegmentMetaPayload, ChunksResultPayload } from "./recording.types";
|
|
5
|
+
import { RecordingStartedPayload, RecordingStoppedPayload, RecordingChunkPayload, RecordingLiveEventsPayload, SegmentStartedPayload, SegmentEndedPayload, RecordingListResultPayload, RecordingManifestPayload, SegmentMetaPayload, ChunksResultPayload } from "./recording.types";
|
|
6
6
|
export interface ServerToClientEvents {
|
|
7
7
|
connect: () => void;
|
|
8
8
|
disconnect: () => void;
|
|
@@ -67,6 +67,7 @@ export interface RecordingServerToClientEvents {
|
|
|
67
67
|
'recording:started': (payload: RecordingStartedPayload) => void;
|
|
68
68
|
'recording:stopped': (payload: RecordingStoppedPayload) => void;
|
|
69
69
|
'recording:chunk': (payload: RecordingChunkPayload) => void;
|
|
70
|
+
'recording:live-events': (payload: RecordingLiveEventsPayload) => void;
|
|
70
71
|
'recording:segment-started': (payload: SegmentStartedPayload) => void;
|
|
71
72
|
'recording:segment-ended': (payload: SegmentEndedPayload) => void;
|
|
72
73
|
'recording:error': (payload: {
|
|
@@ -29,7 +29,7 @@ export type CRViewerState = {
|
|
|
29
29
|
viewportHeight: number;
|
|
30
30
|
};
|
|
31
31
|
/** 뷰어 이벤트 타입 */
|
|
32
|
-
export type ViewerEventType = 'global_index_change' | 'scroll' | 'page_change' | 'section_change' | 'mode_change' | 'settings_change' | 'render_start' | 'loading_start' | 'loading_end' | 'viewport_resize' | 'audio_control';
|
|
32
|
+
export type ViewerEventType = 'global_index_change' | 'scroll' | 'page_change' | 'section_change' | 'mode_change' | 'settings_change' | 'render_start' | 'loading_start' | 'loading_end' | 'viewport_resize' | 'audio_control' | 'range_select' | 'range_change' | 'range_clear' | 'translate_request' | 'translate_loading_start' | 'translate_loading_end' | 'translate_modal_close';
|
|
33
33
|
/** 오디오 상태 스냅샷 */
|
|
34
34
|
export type AudioSnapshot = {
|
|
35
35
|
status: 'idle' | 'loading' | 'playing' | 'paused' | 'ended' | 'error';
|
|
@@ -85,8 +85,32 @@ export type ViewportResizeEvent = ViewerEventBase<'viewport_resize', {
|
|
|
85
85
|
export type AudioControlEvent = ViewerEventBase<'audio_control', {
|
|
86
86
|
action: AudioControlAction;
|
|
87
87
|
}>;
|
|
88
|
+
export type RangeSelectEvent = ViewerEventBase<'range_select', {
|
|
89
|
+
startGI: number;
|
|
90
|
+
endGI: number;
|
|
91
|
+
text: string;
|
|
92
|
+
}>;
|
|
93
|
+
export type RangeChangeEvent = ViewerEventBase<'range_change', {
|
|
94
|
+
startGI: number;
|
|
95
|
+
endGI: number;
|
|
96
|
+
text: string;
|
|
97
|
+
}>;
|
|
98
|
+
export type RangeClearEvent = ViewerEventBase<'range_clear', Record<string, never>>;
|
|
99
|
+
export type TranslateRequestEvent = ViewerEventBase<'translate_request', {
|
|
100
|
+
text: string;
|
|
101
|
+
startGI: number;
|
|
102
|
+
endGI: number;
|
|
103
|
+
}>;
|
|
104
|
+
export type TranslateLoadingStartEvent = ViewerEventBase<'translate_loading_start', {
|
|
105
|
+
text: string;
|
|
106
|
+
}>;
|
|
107
|
+
export type TranslateLoadingEndEvent = ViewerEventBase<'translate_loading_end', {
|
|
108
|
+
originalText: string;
|
|
109
|
+
translatedText: string;
|
|
110
|
+
}>;
|
|
111
|
+
export type TranslateModalCloseEvent = ViewerEventBase<'translate_modal_close', Record<string, never>>;
|
|
88
112
|
/** 모든 뷰어 이벤트 타입 (Union) */
|
|
89
|
-
export type ViewerEvent = GlobalIndexChangeEvent | ScrollEvent | PageChangeEvent | SectionChangeEvent | ModeChangeEvent | SettingsChangeEvent | RenderStartEvent | LoadingStartEvent | LoadingEndEvent | ViewportResizeEvent | AudioControlEvent;
|
|
113
|
+
export type ViewerEvent = GlobalIndexChangeEvent | ScrollEvent | PageChangeEvent | SectionChangeEvent | ModeChangeEvent | SettingsChangeEvent | RenderStartEvent | LoadingStartEvent | LoadingEndEvent | ViewportResizeEvent | AudioControlEvent | RangeSelectEvent | RangeChangeEvent | RangeClearEvent | TranslateRequestEvent | TranslateLoadingStartEvent | TranslateLoadingEndEvent | TranslateModalCloseEvent;
|
|
90
114
|
export type ViewerEventCallback = (event: ViewerEvent) => void;
|
|
91
115
|
/** 저장용 이벤트 (any type) */
|
|
92
116
|
export type StoredEvent = StoredViewerEvent<ViewerEventType, unknown>;
|