@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>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@readerseye2/cr_type",
3
- "version": "1.0.85",
3
+ "version": "1.0.88",
4
4
  "description": "CheckReading shared TypeScript types",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",