@readerseye2/cr_type 1.0.163 → 1.0.165

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.
@@ -64,7 +64,6 @@ export interface ReadingStateRatios {
64
64
  reading: number;
65
65
  scanning: number;
66
66
  blink: number;
67
- away: number;
68
67
  lost: number;
69
68
  etc: number;
70
69
  }
@@ -73,10 +72,12 @@ export interface ReadingProgressReport {
73
72
  sectionId: string;
74
73
  /** 섹션 전체 GI 수 (ViewerSnapshot.totalItems) */
75
74
  sectionGIMax: number;
76
- /** 구간에서 뷰포트에 표시된 GI 범위의 최소값 */
75
+ /** @deprecated exposedRanges 사용 */
77
76
  exposedFrom: number;
78
- /** 구간에서 뷰포트에 표시된 GI 범위의 최대값 */
77
+ /** @deprecated exposedRanges 사용 */
79
78
  exposedTo: number;
79
+ /** 이 구간에서 속도필터 통과한 읽기 GI 범위들 (빈 구간 보존) */
80
+ exposedRanges?: ReadRange[];
80
81
  /**
81
82
  * GI별 시선 dwell time (ms)
82
83
  * - 키: globalIndex (string), 값: 해당 5초 윈도우 내 누적 dwell ms
@@ -1,6 +1,9 @@
1
1
  import type { ReadRange } from './child-reading-progress.type';
2
- /** 정렬된 ranges 배열에 newRange를 머지 (겹침/인접 합산) */
3
- export declare function mergeReadRange(ranges: ReadRange[], newRange: ReadRange): ReadRange[];
2
+ /**
3
+ * 정렬된 ranges 배열에 newRange 머지 (겹침/인접 합산)
4
+ * @param gap — 허용 gap (기본 3: GI 3개 이내 빈 구간은 합침)
5
+ */
6
+ export declare function mergeReadRange(ranges: ReadRange[], newRange: ReadRange, gap?: number): ReadRange[];
4
7
  /** 여러 newRanges를 기존 ranges에 순차 머지 */
5
8
  export declare function mergeReadRanges(existing: ReadRange[], newRanges: ReadRange[]): ReadRange[];
6
9
  /** ranges 내 고유 GI 총 개수 (각 구간 길이 합) */
@@ -7,8 +7,11 @@ exports.mergeReadRanges = mergeReadRanges;
7
7
  exports.sumReadRanges = sumReadRanges;
8
8
  exports.gisToRanges = gisToRanges;
9
9
  exports.filterDwellToRanges = filterDwellToRanges;
10
- /** 정렬된 ranges 배열에 newRange를 머지 (겹침/인접 합산) */
11
- function mergeReadRange(ranges, newRange) {
10
+ /**
11
+ * 정렬된 ranges 배열에 newRange를 머지 (겹침/인접 합산)
12
+ * @param gap — 허용 gap (기본 3: GI 3개 이내 빈 구간은 합침)
13
+ */
14
+ function mergeReadRange(ranges, newRange, gap = 3) {
12
15
  if (ranges.length === 0)
13
16
  return [newRange];
14
17
  const result = [];
@@ -19,10 +22,10 @@ function mergeReadRange(ranges, newRange) {
19
22
  result.push(r);
20
23
  continue;
21
24
  }
22
- if (r.to + 1 < merged.from) {
25
+ if (r.to + gap < merged.from) {
23
26
  result.push(r);
24
27
  }
25
- else if (r.from > merged.to + 1) {
28
+ else if (r.from > merged.to + gap) {
26
29
  result.push(merged);
27
30
  result.push(r);
28
31
  inserted = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@readerseye2/cr_type",
3
- "version": "1.0.163",
3
+ "version": "1.0.165",
4
4
  "description": "CheckReading shared TypeScript types",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",