@readerseye2/cr_type 1.0.131 → 1.0.133

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.
@@ -24,6 +24,7 @@ export interface Book {
24
24
  en_level: BookEnLevel | null;
25
25
  ar_index: number | null;
26
26
  lexile_index: number | null;
27
+ fk_index: number | null;
27
28
  series: string | null;
28
29
  original_author: string | null;
29
30
  description: string | null;
@@ -278,6 +279,90 @@ export declare const getLexileDescription: (lexile: number) => {
278
279
  readonly level: "성인";
279
280
  readonly description: "학술·고전 문학";
280
281
  } | undefined;
282
+ /** Flesch-Kincaid Grade Level 범위별 설명 (정수 1~17) */
283
+ export declare const FK_INDEX_RANGES: readonly [{
284
+ readonly min: 1;
285
+ readonly max: 2;
286
+ readonly level: "유아 ~ 초1";
287
+ readonly description: "그림책, 기초 문장";
288
+ }, {
289
+ readonly min: 3;
290
+ readonly max: 4;
291
+ readonly level: "초2~3";
292
+ readonly description: "짧은 이야기, 기초 리더";
293
+ }, {
294
+ readonly min: 5;
295
+ readonly max: 6;
296
+ readonly level: "초4~5";
297
+ readonly description: "챕터북, 어휘 확장";
298
+ }, {
299
+ readonly min: 7;
300
+ readonly max: 8;
301
+ readonly level: "초6~중1";
302
+ readonly description: "복합 문장, 논픽션";
303
+ }, {
304
+ readonly min: 9;
305
+ readonly max: 10;
306
+ readonly level: "중2~3";
307
+ readonly description: "추론·비판적 읽기";
308
+ }, {
309
+ readonly min: 11;
310
+ readonly max: 12;
311
+ readonly level: "고등학생";
312
+ readonly description: "문학 작품, 추상 개념";
313
+ }, {
314
+ readonly min: 13;
315
+ readonly max: 14;
316
+ readonly level: "대학 초급";
317
+ readonly description: "학술 텍스트 입문";
318
+ }, {
319
+ readonly min: 15;
320
+ readonly max: 17;
321
+ readonly level: "대학~전문";
322
+ readonly description: "전문 논문, 고급 텍스트";
323
+ }];
324
+ /** FK 지수로 해당 범위 설명 조회 */
325
+ export declare const getFKDescription: (fk: number) => {
326
+ readonly min: 1;
327
+ readonly max: 2;
328
+ readonly level: "유아 ~ 초1";
329
+ readonly description: "그림책, 기초 문장";
330
+ } | {
331
+ readonly min: 3;
332
+ readonly max: 4;
333
+ readonly level: "초2~3";
334
+ readonly description: "짧은 이야기, 기초 리더";
335
+ } | {
336
+ readonly min: 5;
337
+ readonly max: 6;
338
+ readonly level: "초4~5";
339
+ readonly description: "챕터북, 어휘 확장";
340
+ } | {
341
+ readonly min: 7;
342
+ readonly max: 8;
343
+ readonly level: "초6~중1";
344
+ readonly description: "복합 문장, 논픽션";
345
+ } | {
346
+ readonly min: 9;
347
+ readonly max: 10;
348
+ readonly level: "중2~3";
349
+ readonly description: "추론·비판적 읽기";
350
+ } | {
351
+ readonly min: 11;
352
+ readonly max: 12;
353
+ readonly level: "고등학생";
354
+ readonly description: "문학 작품, 추상 개념";
355
+ } | {
356
+ readonly min: 13;
357
+ readonly max: 14;
358
+ readonly level: "대학 초급";
359
+ readonly description: "학술 텍스트 입문";
360
+ } | {
361
+ readonly min: 15;
362
+ readonly max: 17;
363
+ readonly level: "대학~전문";
364
+ readonly description: "전문 논문, 고급 텍스트";
365
+ } | undefined;
281
366
  /** 어절 수 → 재생 분수 계산 (200 WPM 기준) */
282
367
  export declare const calcSoundMinutes: (wordCount: number) => number;
283
368
  /** 언어 옵션 (UI Select용) */
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // ========== 리터럴 유니온 타입 ==========
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getAgeOptions = exports.getEnLevelOptions = exports.getGenreOptions = exports.getLengthOptions = exports.getLanguageOptions = exports.calcSoundMinutes = exports.getLexileDescription = exports.getARDescription = exports.LEXILE_INDEX_RANGES = exports.AR_INDEX_RANGES = exports.DEFAULT_BOOK_META = exports.BOOK_AGE_MAX = exports.BOOK_AGE_MIN = exports.BookEnLevelLabel = exports.BookGenreLabel = exports.BookLengthLabel = exports.BookLanguageLabel = void 0;
4
+ exports.getAgeOptions = exports.getEnLevelOptions = exports.getGenreOptions = exports.getLengthOptions = exports.getLanguageOptions = exports.calcSoundMinutes = exports.getFKDescription = exports.FK_INDEX_RANGES = exports.getLexileDescription = exports.getARDescription = exports.LEXILE_INDEX_RANGES = exports.AR_INDEX_RANGES = exports.DEFAULT_BOOK_META = exports.BOOK_AGE_MAX = exports.BOOK_AGE_MIN = exports.BookEnLevelLabel = exports.BookGenreLabel = exports.BookLengthLabel = exports.BookLanguageLabel = void 0;
5
5
  // ========== 라벨 (UI 표시용) ==========
6
6
  exports.BookLanguageLabel = {
7
7
  ko: "한국어",
@@ -81,6 +81,20 @@ exports.getARDescription = getARDescription;
81
81
  /** Lexile 지수로 해당 범위 설명 조회 */
82
82
  const getLexileDescription = (lexile) => exports.LEXILE_INDEX_RANGES.find((r) => lexile >= r.min && lexile <= r.max);
83
83
  exports.getLexileDescription = getLexileDescription;
84
+ /** Flesch-Kincaid Grade Level 범위별 설명 (정수 1~17) */
85
+ exports.FK_INDEX_RANGES = [
86
+ { min: 1, max: 2, level: "유아 ~ 초1", description: "그림책, 기초 문장" },
87
+ { min: 3, max: 4, level: "초2~3", description: "짧은 이야기, 기초 리더" },
88
+ { min: 5, max: 6, level: "초4~5", description: "챕터북, 어휘 확장" },
89
+ { min: 7, max: 8, level: "초6~중1", description: "복합 문장, 논픽션" },
90
+ { min: 9, max: 10, level: "중2~3", description: "추론·비판적 읽기" },
91
+ { min: 11, max: 12, level: "고등학생", description: "문학 작품, 추상 개념" },
92
+ { min: 13, max: 14, level: "대학 초급", description: "학술 텍스트 입문" },
93
+ { min: 15, max: 17, level: "대학~전문", description: "전문 논문, 고급 텍스트" },
94
+ ];
95
+ /** FK 지수로 해당 범위 설명 조회 */
96
+ const getFKDescription = (fk) => exports.FK_INDEX_RANGES.find((r) => fk >= r.min && fk <= r.max);
97
+ exports.getFKDescription = getFKDescription;
84
98
  // ========== 헬퍼 함수 ==========
85
99
  /** 어절 수 → 재생 분수 계산 (200 WPM 기준) */
86
100
  const calcSoundMinutes = (wordCount) => Math.ceil(wordCount / 200);
@@ -1,5 +1,5 @@
1
1
  /** 지원하는 시선추적 프로바이더 타입 */
2
- export type EyeTrackerType = 'eyedid' | 'seeso' | 'custom' | 'fake' | 'webgazer' | 'android_seeso';
2
+ export type EyeTrackerType = 'eyedid' | 'seeso' | 'custom' | 'fake' | 'webgazer' | 'android_seeso' | 'android_eyedid';
3
3
  /** 단일 시선 샘플 (0~1 정규화 좌표) */
4
4
  export interface GazeData {
5
5
  /** 정규화된 X 좌표 (0~1, 좌→우) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@readerseye2/cr_type",
3
- "version": "1.0.131",
3
+ "version": "1.0.133",
4
4
  "description": "CheckReading shared TypeScript types",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",