@read-frog/definitions 0.1.4 → 0.3.1

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/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { tz } from "@date-fns/tz";
3
+ import { addDays, addHours, differenceInCalendarDays, isSameDay, startOfDay, subHours } from "date-fns";
2
4
  //#region src/constants/app.ts
3
5
  const APP_NAME = "Read Frog";
4
6
  //#endregion
@@ -12,10 +14,6 @@ const BETA_FEATURES = { notebase: "notebase" };
12
14
  const BETA_FEATURE_KEYS = [BETA_FEATURES.notebase];
13
15
  const NOTEBASE_BETA_FEATURE_KEY = BETA_FEATURES.notebase;
14
16
  //#endregion
15
- //#region src/constants/column.ts
16
- const COLUMN_MIN_WIDTH = 100;
17
- const COLUMN_MAX_WIDTH = 500;
18
- //#endregion
19
17
  //#region src/constants/dictionary.ts
20
18
  const LANG_DICTIONARY_LABELS = {
21
19
  "eng": {
@@ -2377,6 +2375,10 @@ const LANG_DICTIONARY_LABELS = {
2377
2375
  }
2378
2376
  };
2379
2377
  //#endregion
2378
+ //#region src/constants/notebase-column.ts
2379
+ const NOTEBASE_COLUMN_MIN_WIDTH = 100;
2380
+ const NOTEBASE_COLUMN_MAX_WIDTH = 500;
2381
+ //#endregion
2380
2382
  //#region src/constants/url.ts
2381
2383
  const CHROME_EXTENSION_ORIGIN = "chrome-extension://modkelfkcfjpgbfmnbnllalkiogfofhb";
2382
2384
  const EDGE_EXTENSION_ORIGIN = "extension://cbcbomlgikfbdnoaohcjfledcoklcjbo";
@@ -2480,402 +2482,60 @@ function getVersionType(version) {
2480
2482
  else return "patch";
2481
2483
  }
2482
2484
  //#endregion
2483
- //#region src/types/column.ts
2484
- const COLUMN_TYPES = [
2485
- "string",
2486
- "number",
2487
- "boolean",
2488
- "date",
2489
- "select"
2485
+ //#region src/types/card.ts
2486
+ const CARD_STATE_VALUES = [
2487
+ "new",
2488
+ "learning",
2489
+ "review",
2490
+ "relearning"
2490
2491
  ];
2491
- const selectOptionSchema = z.object({
2492
- id: z.string(),
2493
- value: z.string(),
2494
- color: z.string().regex(/^#[0-9a-f]{6}$/i, "Color must be a valid hex color")
2495
- });
2496
- const columnConfigSchema = z.discriminatedUnion("type", [
2497
- z.object({ type: z.literal("string") }),
2498
- z.object({
2499
- type: z.literal("number"),
2500
- decimal: z.number().int().min(0).default(0),
2501
- format: z.enum([
2502
- "number",
2503
- "currency",
2504
- "percent"
2505
- ]).default("number")
2506
- }),
2507
- z.object({ type: z.literal("boolean") }),
2508
- z.object({
2509
- type: z.literal("date"),
2510
- dateFormat: z.string().optional()
2511
- }),
2512
- z.object({
2513
- type: z.literal("select"),
2514
- options: z.array(selectOptionSchema).default([])
2515
- })
2516
- ]);
2517
- const COLUMN_TYPE_INFO = {
2518
- string: {
2519
- label: "Text",
2520
- defaultConfig: { type: "string" }
2521
- },
2522
- number: {
2523
- label: "Number",
2524
- defaultConfig: {
2525
- type: "number",
2526
- decimal: 0,
2527
- format: "number"
2528
- }
2529
- },
2530
- boolean: {
2531
- label: "Checkbox",
2532
- defaultConfig: { type: "boolean" }
2533
- },
2534
- date: {
2535
- label: "Date",
2536
- defaultConfig: { type: "date" }
2537
- },
2538
- select: {
2539
- label: "Select",
2540
- defaultConfig: {
2541
- type: "select",
2542
- options: []
2543
- }
2544
- }
2492
+ const SCHEDULE_STATUS_VALUES = [
2493
+ "new",
2494
+ "learning",
2495
+ "review",
2496
+ "suspended",
2497
+ "buried"
2498
+ ];
2499
+ const cardStateSchema = z.enum(CARD_STATE_VALUES);
2500
+ const scheduleStatusSchema = z.enum(SCHEDULE_STATUS_VALUES);
2501
+ const CARD_STATE_TO_SCHEDULE_STATUS = {
2502
+ new: "new",
2503
+ learning: "learning",
2504
+ relearning: "learning",
2505
+ review: "review"
2545
2506
  };
2546
- function isNumberConfig(config) {
2547
- return config.type === "number";
2548
- }
2549
- function isSelectConfig(config) {
2550
- return config.type === "select";
2551
- }
2507
+ const basicCardTemplateConfigSchema = z.object({
2508
+ type: z.literal("basic"),
2509
+ frontPattern: z.string().min(1),
2510
+ backPattern: z.string().min(1)
2511
+ }).strict();
2512
+ const cardTemplateConfigSchema = z.discriminatedUnion("type", [basicCardTemplateConfigSchema]);
2513
+ const cardIdentityShape = {
2514
+ id: z.uuid(),
2515
+ notebaseId: z.uuid(),
2516
+ notebaseRowId: z.uuid(),
2517
+ templateId: z.uuid(),
2518
+ variantKey: z.string()
2519
+ };
2520
+ const cardReviewStateShape = {
2521
+ state: cardStateSchema,
2522
+ scheduleStatus: scheduleStatusSchema,
2523
+ dueAt: z.coerce.date(),
2524
+ lastReviewTime: z.coerce.date().nullable(),
2525
+ stability: z.number(),
2526
+ difficulty: z.number(),
2527
+ step: z.number().int(),
2528
+ lapses: z.number().int(),
2529
+ reps: z.number().int()
2530
+ };
2531
+ const cardMemoryStateShape = {
2532
+ ...cardReviewStateShape,
2533
+ buriedAt: z.coerce.date().nullable()
2534
+ };
2535
+ const cardReviewStateSchema = z.object(cardReviewStateShape);
2536
+ const cardMemoryStateSchema = z.object(cardMemoryStateShape);
2552
2537
  //#endregion
2553
- //#region src/types/languages.ts
2554
- const LANG_CODE_ISO6393_OPTIONS = [
2555
- "eng",
2556
- "cmn",
2557
- "cmn-Hant",
2558
- "yue",
2559
- "spa",
2560
- "rus",
2561
- "arb",
2562
- "ben",
2563
- "hin",
2564
- "por",
2565
- "ind",
2566
- "jpn",
2567
- "fra",
2568
- "deu",
2569
- "jav",
2570
- "kor",
2571
- "tel",
2572
- "vie",
2573
- "mar",
2574
- "ita",
2575
- "tam",
2576
- "tur",
2577
- "urd",
2578
- "guj",
2579
- "pol",
2580
- "ukr",
2581
- "kan",
2582
- "mai",
2583
- "mal",
2584
- "pes",
2585
- "mya",
2586
- "swh",
2587
- "sun",
2588
- "ron",
2589
- "pan",
2590
- "bho",
2591
- "amh",
2592
- "hau",
2593
- "fuv",
2594
- "bos",
2595
- "hrv",
2596
- "nld",
2597
- "srp",
2598
- "tha",
2599
- "ckb",
2600
- "yor",
2601
- "uzn",
2602
- "zlm",
2603
- "ibo",
2604
- "npi",
2605
- "ceb",
2606
- "skr",
2607
- "tgl",
2608
- "hun",
2609
- "azj",
2610
- "sin",
2611
- "koi",
2612
- "ell",
2613
- "ces",
2614
- "mag",
2615
- "run",
2616
- "bel",
2617
- "plt",
2618
- "qug",
2619
- "mad",
2620
- "nya",
2621
- "zyb",
2622
- "pbu",
2623
- "kin",
2624
- "zul",
2625
- "bul",
2626
- "swe",
2627
- "lin",
2628
- "som",
2629
- "hms",
2630
- "hnj",
2631
- "ilo",
2632
- "kaz",
2633
- "heb",
2634
- "nob",
2635
- "nno",
2636
- "afr",
2637
- "sqi",
2638
- "asm",
2639
- "eus",
2640
- "bre",
2641
- "cat",
2642
- "cos",
2643
- "cym",
2644
- "dan",
2645
- "div",
2646
- "epo",
2647
- "ekk",
2648
- "fao",
2649
- "fij",
2650
- "fin",
2651
- "fry",
2652
- "gla",
2653
- "gle",
2654
- "glg",
2655
- "grn",
2656
- "hat",
2657
- "haw",
2658
- "hye",
2659
- "ido",
2660
- "ina",
2661
- "isl",
2662
- "kat",
2663
- "khm",
2664
- "kir",
2665
- "lao",
2666
- "lat",
2667
- "lvs",
2668
- "lit",
2669
- "ltz",
2670
- "mkd",
2671
- "mlt",
2672
- "mon",
2673
- "mri",
2674
- "nso",
2675
- "oci",
2676
- "ori",
2677
- "orm",
2678
- "prs",
2679
- "san",
2680
- "slk",
2681
- "slv",
2682
- "smo",
2683
- "sna",
2684
- "snd",
2685
- "sot",
2686
- "tah",
2687
- "tat",
2688
- "tgk",
2689
- "tir",
2690
- "ton",
2691
- "tsn",
2692
- "tuk",
2693
- "uig",
2694
- "vol",
2695
- "wol",
2696
- "xho",
2697
- "ydd",
2698
- "aka",
2699
- "bam",
2700
- "bis",
2701
- "bod",
2702
- "che",
2703
- "chv",
2704
- "dzo",
2705
- "ewe",
2706
- "kab",
2707
- "lug",
2708
- "oss",
2709
- "ssw",
2710
- "ven",
2711
- "war",
2712
- "nde",
2713
- "nbl",
2714
- "pam",
2715
- "hil",
2716
- "bcl",
2717
- "min",
2718
- "ace",
2719
- "bug",
2720
- "ban",
2721
- "bjn",
2722
- "mak",
2723
- "sas",
2724
- "tet",
2725
- "cha",
2726
- "niu",
2727
- "tvl",
2728
- "gil",
2729
- "mah",
2730
- "pau",
2731
- "wls",
2732
- "rar",
2733
- "hif"
2734
- ];
2735
- const LANG_CODE_ISO6391_OPTIONS = [
2736
- "en",
2737
- "zh",
2738
- "zh-TW",
2739
- "es",
2740
- "ru",
2741
- "ar",
2742
- "bn",
2743
- "hi",
2744
- "pt",
2745
- "id",
2746
- "ja",
2747
- "fr",
2748
- "de",
2749
- "jv",
2750
- "ko",
2751
- "te",
2752
- "vi",
2753
- "mr",
2754
- "it",
2755
- "ta",
2756
- "tr",
2757
- "ur",
2758
- "gu",
2759
- "pl",
2760
- "uk",
2761
- "kn",
2762
- "ml",
2763
- "fa",
2764
- "my",
2765
- "sw",
2766
- "su",
2767
- "ro",
2768
- "pa",
2769
- "am",
2770
- "ha",
2771
- "ff",
2772
- "bs",
2773
- "hr",
2774
- "nl",
2775
- "sr",
2776
- "th",
2777
- "ku",
2778
- "yo",
2779
- "uz",
2780
- "ms",
2781
- "ig",
2782
- "ne",
2783
- "tl",
2784
- "hu",
2785
- "az",
2786
- "si",
2787
- "el",
2788
- "cs",
2789
- "ny",
2790
- "rw",
2791
- "zu",
2792
- "bg",
2793
- "sv",
2794
- "ln",
2795
- "so",
2796
- "kk",
2797
- "be",
2798
- "he",
2799
- "nb",
2800
- "nn",
2801
- "af",
2802
- "sq",
2803
- "as",
2804
- "eu",
2805
- "br",
2806
- "ca",
2807
- "co",
2808
- "cy",
2809
- "da",
2810
- "dv",
2811
- "eo",
2812
- "et",
2813
- "fo",
2814
- "fj",
2815
- "fi",
2816
- "fy",
2817
- "gd",
2818
- "ga",
2819
- "gl",
2820
- "gn",
2821
- "ht",
2822
- "hy",
2823
- "io",
2824
- "ia",
2825
- "is",
2826
- "ka",
2827
- "km",
2828
- "ky",
2829
- "lo",
2830
- "la",
2831
- "lv",
2832
- "lt",
2833
- "lb",
2834
- "mk",
2835
- "mt",
2836
- "mn",
2837
- "mi",
2838
- "oc",
2839
- "or",
2840
- "om",
2841
- "sa",
2842
- "sk",
2843
- "sl",
2844
- "sm",
2845
- "sn",
2846
- "sd",
2847
- "st",
2848
- "ty",
2849
- "tt",
2850
- "tg",
2851
- "ti",
2852
- "to",
2853
- "tn",
2854
- "tk",
2855
- "ug",
2856
- "vo",
2857
- "wo",
2858
- "xh",
2859
- "yi",
2860
- "ak",
2861
- "bm",
2862
- "bi",
2863
- "bo",
2864
- "ce",
2865
- "cv",
2866
- "ee",
2867
- "lg",
2868
- "os",
2869
- "ss",
2870
- "ve",
2871
- "nd",
2872
- "nr",
2873
- "ch",
2874
- "mh",
2875
- "dz"
2876
- ];
2877
- const langCodeISO6393Schema = z.enum(LANG_CODE_ISO6393_OPTIONS);
2878
- const langCodeISO6391Schema = z.enum(LANG_CODE_ISO6391_OPTIONS);
2538
+ //#region src/types/language-names/en.ts
2879
2539
  const LANG_CODE_TO_EN_NAME = {
2880
2540
  "eng": "English",
2881
2541
  "cmn": "Simplified Mandarin Chinese",
@@ -3057,6 +2717,8 @@ const LANG_CODE_TO_EN_NAME = {
3057
2717
  "rar": "Rarotongan",
3058
2718
  "hif": "Fiji Hindi"
3059
2719
  };
2720
+ //#endregion
2721
+ //#region src/types/language-names/locale.ts
3060
2722
  const LANG_CODE_TO_LOCALE_NAME = {
3061
2723
  "eng": "English",
3062
2724
  "cmn": "简体中文",
@@ -3238,124 +2900,634 @@ const LANG_CODE_TO_LOCALE_NAME = {
3238
2900
  "rar": "Māori Kūki ʻĀirani",
3239
2901
  "hif": "फ़िजी हिंदी"
3240
2902
  };
3241
- const ISO6393_TO_6391 = {
3242
- "eng": "en",
3243
- "cmn": "zh",
3244
- "cmn-Hant": "zh-TW",
3245
- "yue": "zh",
3246
- "spa": "es",
3247
- "rus": "ru",
3248
- "arb": "ar",
3249
- "ben": "bn",
3250
- "hin": "hi",
3251
- "por": "pt",
3252
- "ind": "id",
3253
- "jpn": "ja",
3254
- "fra": "fr",
3255
- "deu": "de",
3256
- "jav": "jv",
3257
- "kor": "ko",
3258
- "tel": "te",
3259
- "vie": "vi",
3260
- "mar": "mr",
3261
- "ita": "it",
3262
- "tam": "ta",
3263
- "tur": "tr",
3264
- "urd": "ur",
3265
- "guj": "gu",
3266
- "pol": "pl",
3267
- "ukr": "uk",
3268
- "kan": "kn",
3269
- "mai": void 0,
3270
- "mal": "ml",
3271
- "pes": "fa",
3272
- "mya": "my",
3273
- "swh": "sw",
3274
- "sun": "su",
3275
- "ron": "ro",
3276
- "pan": "pa",
3277
- "bho": void 0,
3278
- "amh": "am",
3279
- "hau": "ha",
3280
- "fuv": "ff",
3281
- "bos": "bs",
3282
- "hrv": "hr",
3283
- "nld": "nl",
3284
- "srp": "sr",
3285
- "tha": "th",
3286
- "ckb": "ku",
3287
- "yor": "yo",
3288
- "uzn": "uz",
3289
- "zlm": "ms",
3290
- "ibo": "ig",
3291
- "npi": "ne",
3292
- "ceb": void 0,
3293
- "skr": void 0,
3294
- "tgl": "tl",
3295
- "hun": "hu",
3296
- "azj": "az",
3297
- "sin": "si",
3298
- "koi": void 0,
3299
- "ell": "el",
3300
- "ces": "cs",
3301
- "mag": void 0,
3302
- "run": void 0,
3303
- "bel": "be",
3304
- "plt": void 0,
3305
- "qug": void 0,
3306
- "mad": void 0,
3307
- "nya": "ny",
3308
- "zyb": void 0,
3309
- "pbu": void 0,
3310
- "kin": "rw",
3311
- "zul": "zu",
3312
- "bul": "bg",
3313
- "swe": "sv",
3314
- "lin": "ln",
3315
- "som": "so",
3316
- "hms": void 0,
3317
- "hnj": void 0,
3318
- "ilo": void 0,
3319
- "kaz": "kk",
3320
- "heb": "he",
3321
- "nob": "nb",
3322
- "nno": "nn",
3323
- "afr": "af",
3324
- "sqi": "sq",
3325
- "asm": "as",
3326
- "eus": "eu",
3327
- "bre": "br",
3328
- "cat": "ca",
3329
- "cos": "co",
3330
- "cym": "cy",
3331
- "dan": "da",
3332
- "div": "dv",
3333
- "epo": "eo",
3334
- "ekk": "et",
3335
- "fao": "fo",
3336
- "fij": "fj",
3337
- "fin": "fi",
3338
- "fry": "fy",
3339
- "gla": "gd",
3340
- "gle": "ga",
3341
- "glg": "gl",
3342
- "grn": "gn",
3343
- "hat": "ht",
3344
- "haw": void 0,
3345
- "hye": "hy",
3346
- "ido": "io",
3347
- "ina": "ia",
3348
- "isl": "is",
3349
- "kat": "ka",
3350
- "khm": "km",
3351
- "kir": "ky",
3352
- "lao": "lo",
3353
- "lat": "la",
3354
- "lvs": "lv",
3355
- "lit": "lt",
3356
- "ltz": "lb",
3357
- "mkd": "mk",
3358
- "mlt": "mt",
2903
+ //#endregion
2904
+ //#region src/types/language-names/zh.ts
2905
+ const LANG_CODE_TO_ZH_NAME = {
2906
+ "eng": "英语",
2907
+ "cmn": "简体中文",
2908
+ "cmn-Hant": "繁体中文",
2909
+ "yue": "粤语",
2910
+ "spa": "西班牙语",
2911
+ "rus": "俄语",
2912
+ "arb": "阿拉伯语",
2913
+ "ben": "孟加拉语",
2914
+ "hin": "印地语",
2915
+ "por": "葡萄牙语",
2916
+ "ind": "印尼语",
2917
+ "jpn": "日语",
2918
+ "fra": "法语",
2919
+ "deu": "德语",
2920
+ "jav": "爪哇语",
2921
+ "kor": "韩语",
2922
+ "tel": "泰卢固语",
2923
+ "vie": "越南语",
2924
+ "mar": "马拉地语",
2925
+ "ita": "意大利语",
2926
+ "tam": "泰米尔语",
2927
+ "tur": "土耳其语",
2928
+ "urd": "乌尔都语",
2929
+ "guj": "古吉拉特语",
2930
+ "pol": "波兰语",
2931
+ "ukr": "乌克兰语",
2932
+ "kan": "坎纳达语",
2933
+ "mai": "迈蒂利语",
2934
+ "mal": "马拉雅拉姆语",
2935
+ "pes": "波斯语",
2936
+ "mya": "缅甸语",
2937
+ "swh": "斯瓦希里语",
2938
+ "sun": "巽他语",
2939
+ "ron": "罗马尼亚语",
2940
+ "pan": "旁遮普语",
2941
+ "bho": "博杰普尔语",
2942
+ "amh": "阿姆哈拉语",
2943
+ "hau": "豪萨语",
2944
+ "fuv": "富拉语",
2945
+ "bos": "波斯尼亚语",
2946
+ "hrv": "克罗地亚语",
2947
+ "nld": "荷兰语",
2948
+ "srp": "塞尔维亚语",
2949
+ "tha": "泰语",
2950
+ "ckb": "库尔德语",
2951
+ "yor": "约鲁巴语",
2952
+ "uzn": "乌兹别克语",
2953
+ "zlm": "马来语",
2954
+ "ibo": "伊博语",
2955
+ "npi": "尼泊尔语",
2956
+ "ceb": "宿务语",
2957
+ "skr": "旁遮普语",
2958
+ "tgl": "塔加路语",
2959
+ "hun": "匈牙利语",
2960
+ "azj": "北阿塞拜疆语",
2961
+ "sin": "僧伽罗语",
2962
+ "koi": "科米-彼尔姆语",
2963
+ "ell": "现代希腊语",
2964
+ "ces": "捷克语",
2965
+ "mag": "马加哈语",
2966
+ "run": "鲁恩达语",
2967
+ "bel": "白俄罗斯语",
2968
+ "plt": "高原马达加斯加语",
2969
+ "qug": "奇布查语",
2970
+ "mad": "马都拉语",
2971
+ "nya": "尼扬加语",
2972
+ "zyb": "壮语",
2973
+ "pbu": "北部普什图语",
2974
+ "kin": "基尼亚卢旺达语",
2975
+ "zul": "祖鲁语",
2976
+ "bul": "保加利亚语",
2977
+ "swe": "瑞典语",
2978
+ "lin": "林加拉语",
2979
+ "som": "索马里语",
2980
+ "hms": "南部乾东苗语",
2981
+ "hnj": "苗族北部语",
2982
+ "ilo": "伊洛卡诺语",
2983
+ "kaz": "哈萨克语",
2984
+ "heb": "希伯来语",
2985
+ "nob": "书面挪威语",
2986
+ "nno": "新挪威语",
2987
+ "afr": "南非荷兰语",
2988
+ "sqi": "阿尔巴尼亚语",
2989
+ "asm": "阿萨姆语",
2990
+ "eus": "巴斯克语",
2991
+ "bre": "布列塔尼语",
2992
+ "cat": "加泰罗尼亚语",
2993
+ "cos": "科西嘉语",
2994
+ "cym": "威尔士语",
2995
+ "dan": "丹麦语",
2996
+ "div": "迪维希语",
2997
+ "epo": "世界语",
2998
+ "ekk": "爱沙尼亚语",
2999
+ "fao": "法罗语",
3000
+ "fij": "斐济语",
3001
+ "fin": "芬兰语",
3002
+ "fry": "西弗里西亚语",
3003
+ "gla": "苏格兰盖尔语",
3004
+ "gle": "爱尔兰语",
3005
+ "glg": "加利西亚语",
3006
+ "grn": "瓜拉尼语",
3007
+ "hat": "海地克里奥尔语",
3008
+ "haw": "夏威夷语",
3009
+ "hye": "亚美尼亚语",
3010
+ "ido": "伊多语",
3011
+ "ina": "国际辅助语",
3012
+ "isl": "冰岛语",
3013
+ "kat": "格鲁吉亚语",
3014
+ "khm": "高棉语",
3015
+ "kir": "吉尔吉斯语",
3016
+ "lao": "老挝语",
3017
+ "lat": "拉丁语",
3018
+ "lvs": "拉脱维亚语",
3019
+ "lit": "立陶宛语",
3020
+ "ltz": "卢森堡语",
3021
+ "mkd": "马其顿语",
3022
+ "mlt": "马耳他语",
3023
+ "mon": "蒙古语",
3024
+ "mri": "毛利语",
3025
+ "nso": "北索托语",
3026
+ "oci": "奥克语",
3027
+ "ori": "奥里亚语",
3028
+ "orm": "奥罗莫语",
3029
+ "prs": "达里语",
3030
+ "san": "梵语",
3031
+ "slk": "斯洛伐克语",
3032
+ "slv": "斯洛文尼亚语",
3033
+ "smo": "萨摩亚语",
3034
+ "sna": "绍纳语",
3035
+ "snd": "信德语",
3036
+ "sot": "南索托语",
3037
+ "tah": "塔希提语",
3038
+ "tat": "鞑靼语",
3039
+ "tgk": "塔吉克语",
3040
+ "tir": "提格雷尼亚语",
3041
+ "ton": "汤加语",
3042
+ "tsn": "茨瓦纳语",
3043
+ "tuk": "土库曼语",
3044
+ "uig": "维吾尔语",
3045
+ "vol": "沃拉普克语",
3046
+ "wol": "沃洛夫语",
3047
+ "xho": "科萨语",
3048
+ "ydd": "东意第绪语",
3049
+ "aka": "阿坎语",
3050
+ "bam": "班巴拉语",
3051
+ "bis": "比斯拉马语",
3052
+ "bod": "藏语",
3053
+ "che": "车臣语",
3054
+ "chv": "楚瓦什语",
3055
+ "dzo": "宗喀语",
3056
+ "ewe": "埃维语",
3057
+ "kab": "卡拜尔语",
3058
+ "lug": "卢干达语",
3059
+ "oss": "奥塞梯语",
3060
+ "ssw": "斯瓦蒂语",
3061
+ "ven": "文达语",
3062
+ "war": "瓦瑞语",
3063
+ "nde": "北恩德贝勒语",
3064
+ "nbl": "南恩德贝勒语",
3065
+ "pam": "邦板牙语",
3066
+ "hil": "希利盖农语",
3067
+ "bcl": "中比科尔语",
3068
+ "min": "米南佳保语",
3069
+ "ace": "亚齐语",
3070
+ "bug": "布吉语",
3071
+ "ban": "巴厘语",
3072
+ "bjn": "班贾尔语",
3073
+ "mak": "望加锡语",
3074
+ "sas": "萨萨克语",
3075
+ "tet": "德顿语",
3076
+ "cha": "查莫罗语",
3077
+ "niu": "纽埃语",
3078
+ "tvl": "图瓦卢语",
3079
+ "gil": "吉尔伯特语",
3080
+ "mah": "马绍尔语",
3081
+ "pau": "帕劳语",
3082
+ "wls": "瓦利斯语",
3083
+ "rar": "拉罗汤加语",
3084
+ "hif": "斐济印地语"
3085
+ };
3086
+ //#endregion
3087
+ //#region src/types/languages.ts
3088
+ const LANG_CODE_ISO6393_OPTIONS = [
3089
+ "eng",
3090
+ "cmn",
3091
+ "cmn-Hant",
3092
+ "yue",
3093
+ "spa",
3094
+ "rus",
3095
+ "arb",
3096
+ "ben",
3097
+ "hin",
3098
+ "por",
3099
+ "ind",
3100
+ "jpn",
3101
+ "fra",
3102
+ "deu",
3103
+ "jav",
3104
+ "kor",
3105
+ "tel",
3106
+ "vie",
3107
+ "mar",
3108
+ "ita",
3109
+ "tam",
3110
+ "tur",
3111
+ "urd",
3112
+ "guj",
3113
+ "pol",
3114
+ "ukr",
3115
+ "kan",
3116
+ "mai",
3117
+ "mal",
3118
+ "pes",
3119
+ "mya",
3120
+ "swh",
3121
+ "sun",
3122
+ "ron",
3123
+ "pan",
3124
+ "bho",
3125
+ "amh",
3126
+ "hau",
3127
+ "fuv",
3128
+ "bos",
3129
+ "hrv",
3130
+ "nld",
3131
+ "srp",
3132
+ "tha",
3133
+ "ckb",
3134
+ "yor",
3135
+ "uzn",
3136
+ "zlm",
3137
+ "ibo",
3138
+ "npi",
3139
+ "ceb",
3140
+ "skr",
3141
+ "tgl",
3142
+ "hun",
3143
+ "azj",
3144
+ "sin",
3145
+ "koi",
3146
+ "ell",
3147
+ "ces",
3148
+ "mag",
3149
+ "run",
3150
+ "bel",
3151
+ "plt",
3152
+ "qug",
3153
+ "mad",
3154
+ "nya",
3155
+ "zyb",
3156
+ "pbu",
3157
+ "kin",
3158
+ "zul",
3159
+ "bul",
3160
+ "swe",
3161
+ "lin",
3162
+ "som",
3163
+ "hms",
3164
+ "hnj",
3165
+ "ilo",
3166
+ "kaz",
3167
+ "heb",
3168
+ "nob",
3169
+ "nno",
3170
+ "afr",
3171
+ "sqi",
3172
+ "asm",
3173
+ "eus",
3174
+ "bre",
3175
+ "cat",
3176
+ "cos",
3177
+ "cym",
3178
+ "dan",
3179
+ "div",
3180
+ "epo",
3181
+ "ekk",
3182
+ "fao",
3183
+ "fij",
3184
+ "fin",
3185
+ "fry",
3186
+ "gla",
3187
+ "gle",
3188
+ "glg",
3189
+ "grn",
3190
+ "hat",
3191
+ "haw",
3192
+ "hye",
3193
+ "ido",
3194
+ "ina",
3195
+ "isl",
3196
+ "kat",
3197
+ "khm",
3198
+ "kir",
3199
+ "lao",
3200
+ "lat",
3201
+ "lvs",
3202
+ "lit",
3203
+ "ltz",
3204
+ "mkd",
3205
+ "mlt",
3206
+ "mon",
3207
+ "mri",
3208
+ "nso",
3209
+ "oci",
3210
+ "ori",
3211
+ "orm",
3212
+ "prs",
3213
+ "san",
3214
+ "slk",
3215
+ "slv",
3216
+ "smo",
3217
+ "sna",
3218
+ "snd",
3219
+ "sot",
3220
+ "tah",
3221
+ "tat",
3222
+ "tgk",
3223
+ "tir",
3224
+ "ton",
3225
+ "tsn",
3226
+ "tuk",
3227
+ "uig",
3228
+ "vol",
3229
+ "wol",
3230
+ "xho",
3231
+ "ydd",
3232
+ "aka",
3233
+ "bam",
3234
+ "bis",
3235
+ "bod",
3236
+ "che",
3237
+ "chv",
3238
+ "dzo",
3239
+ "ewe",
3240
+ "kab",
3241
+ "lug",
3242
+ "oss",
3243
+ "ssw",
3244
+ "ven",
3245
+ "war",
3246
+ "nde",
3247
+ "nbl",
3248
+ "pam",
3249
+ "hil",
3250
+ "bcl",
3251
+ "min",
3252
+ "ace",
3253
+ "bug",
3254
+ "ban",
3255
+ "bjn",
3256
+ "mak",
3257
+ "sas",
3258
+ "tet",
3259
+ "cha",
3260
+ "niu",
3261
+ "tvl",
3262
+ "gil",
3263
+ "mah",
3264
+ "pau",
3265
+ "wls",
3266
+ "rar",
3267
+ "hif"
3268
+ ];
3269
+ const LANG_CODE_ISO6391_OPTIONS = [
3270
+ "en",
3271
+ "zh",
3272
+ "zh-TW",
3273
+ "es",
3274
+ "ru",
3275
+ "ar",
3276
+ "bn",
3277
+ "hi",
3278
+ "pt",
3279
+ "id",
3280
+ "ja",
3281
+ "fr",
3282
+ "de",
3283
+ "jv",
3284
+ "ko",
3285
+ "te",
3286
+ "vi",
3287
+ "mr",
3288
+ "it",
3289
+ "ta",
3290
+ "tr",
3291
+ "ur",
3292
+ "gu",
3293
+ "pl",
3294
+ "uk",
3295
+ "kn",
3296
+ "ml",
3297
+ "fa",
3298
+ "my",
3299
+ "sw",
3300
+ "su",
3301
+ "ro",
3302
+ "pa",
3303
+ "am",
3304
+ "ha",
3305
+ "ff",
3306
+ "bs",
3307
+ "hr",
3308
+ "nl",
3309
+ "sr",
3310
+ "th",
3311
+ "ku",
3312
+ "yo",
3313
+ "uz",
3314
+ "ms",
3315
+ "ig",
3316
+ "ne",
3317
+ "tl",
3318
+ "hu",
3319
+ "az",
3320
+ "si",
3321
+ "el",
3322
+ "cs",
3323
+ "ny",
3324
+ "rw",
3325
+ "zu",
3326
+ "bg",
3327
+ "sv",
3328
+ "ln",
3329
+ "so",
3330
+ "kk",
3331
+ "be",
3332
+ "he",
3333
+ "nb",
3334
+ "nn",
3335
+ "af",
3336
+ "sq",
3337
+ "as",
3338
+ "eu",
3339
+ "br",
3340
+ "ca",
3341
+ "co",
3342
+ "cy",
3343
+ "da",
3344
+ "dv",
3345
+ "eo",
3346
+ "et",
3347
+ "fo",
3348
+ "fj",
3349
+ "fi",
3350
+ "fy",
3351
+ "gd",
3352
+ "ga",
3353
+ "gl",
3354
+ "gn",
3355
+ "ht",
3356
+ "hy",
3357
+ "io",
3358
+ "ia",
3359
+ "is",
3360
+ "ka",
3361
+ "km",
3362
+ "ky",
3363
+ "lo",
3364
+ "la",
3365
+ "lv",
3366
+ "lt",
3367
+ "lb",
3368
+ "mk",
3369
+ "mt",
3370
+ "mn",
3371
+ "mi",
3372
+ "oc",
3373
+ "or",
3374
+ "om",
3375
+ "sa",
3376
+ "sk",
3377
+ "sl",
3378
+ "sm",
3379
+ "sn",
3380
+ "sd",
3381
+ "st",
3382
+ "ty",
3383
+ "tt",
3384
+ "tg",
3385
+ "ti",
3386
+ "to",
3387
+ "tn",
3388
+ "tk",
3389
+ "ug",
3390
+ "vo",
3391
+ "wo",
3392
+ "xh",
3393
+ "yi",
3394
+ "ak",
3395
+ "bm",
3396
+ "bi",
3397
+ "bo",
3398
+ "ce",
3399
+ "cv",
3400
+ "ee",
3401
+ "lg",
3402
+ "os",
3403
+ "ss",
3404
+ "ve",
3405
+ "nd",
3406
+ "nr",
3407
+ "ch",
3408
+ "mh",
3409
+ "dz"
3410
+ ];
3411
+ const langCodeISO6393Schema = z.enum(LANG_CODE_ISO6393_OPTIONS);
3412
+ const langCodeISO6391Schema = z.enum(LANG_CODE_ISO6391_OPTIONS);
3413
+ const ISO6393_TO_6391 = {
3414
+ "eng": "en",
3415
+ "cmn": "zh",
3416
+ "cmn-Hant": "zh-TW",
3417
+ "yue": "zh",
3418
+ "spa": "es",
3419
+ "rus": "ru",
3420
+ "arb": "ar",
3421
+ "ben": "bn",
3422
+ "hin": "hi",
3423
+ "por": "pt",
3424
+ "ind": "id",
3425
+ "jpn": "ja",
3426
+ "fra": "fr",
3427
+ "deu": "de",
3428
+ "jav": "jv",
3429
+ "kor": "ko",
3430
+ "tel": "te",
3431
+ "vie": "vi",
3432
+ "mar": "mr",
3433
+ "ita": "it",
3434
+ "tam": "ta",
3435
+ "tur": "tr",
3436
+ "urd": "ur",
3437
+ "guj": "gu",
3438
+ "pol": "pl",
3439
+ "ukr": "uk",
3440
+ "kan": "kn",
3441
+ "mai": void 0,
3442
+ "mal": "ml",
3443
+ "pes": "fa",
3444
+ "mya": "my",
3445
+ "swh": "sw",
3446
+ "sun": "su",
3447
+ "ron": "ro",
3448
+ "pan": "pa",
3449
+ "bho": void 0,
3450
+ "amh": "am",
3451
+ "hau": "ha",
3452
+ "fuv": "ff",
3453
+ "bos": "bs",
3454
+ "hrv": "hr",
3455
+ "nld": "nl",
3456
+ "srp": "sr",
3457
+ "tha": "th",
3458
+ "ckb": "ku",
3459
+ "yor": "yo",
3460
+ "uzn": "uz",
3461
+ "zlm": "ms",
3462
+ "ibo": "ig",
3463
+ "npi": "ne",
3464
+ "ceb": void 0,
3465
+ "skr": void 0,
3466
+ "tgl": "tl",
3467
+ "hun": "hu",
3468
+ "azj": "az",
3469
+ "sin": "si",
3470
+ "koi": void 0,
3471
+ "ell": "el",
3472
+ "ces": "cs",
3473
+ "mag": void 0,
3474
+ "run": void 0,
3475
+ "bel": "be",
3476
+ "plt": void 0,
3477
+ "qug": void 0,
3478
+ "mad": void 0,
3479
+ "nya": "ny",
3480
+ "zyb": void 0,
3481
+ "pbu": void 0,
3482
+ "kin": "rw",
3483
+ "zul": "zu",
3484
+ "bul": "bg",
3485
+ "swe": "sv",
3486
+ "lin": "ln",
3487
+ "som": "so",
3488
+ "hms": void 0,
3489
+ "hnj": void 0,
3490
+ "ilo": void 0,
3491
+ "kaz": "kk",
3492
+ "heb": "he",
3493
+ "nob": "nb",
3494
+ "nno": "nn",
3495
+ "afr": "af",
3496
+ "sqi": "sq",
3497
+ "asm": "as",
3498
+ "eus": "eu",
3499
+ "bre": "br",
3500
+ "cat": "ca",
3501
+ "cos": "co",
3502
+ "cym": "cy",
3503
+ "dan": "da",
3504
+ "div": "dv",
3505
+ "epo": "eo",
3506
+ "ekk": "et",
3507
+ "fao": "fo",
3508
+ "fij": "fj",
3509
+ "fin": "fi",
3510
+ "fry": "fy",
3511
+ "gla": "gd",
3512
+ "gle": "ga",
3513
+ "glg": "gl",
3514
+ "grn": "gn",
3515
+ "hat": "ht",
3516
+ "haw": void 0,
3517
+ "hye": "hy",
3518
+ "ido": "io",
3519
+ "ina": "ia",
3520
+ "isl": "is",
3521
+ "kat": "ka",
3522
+ "khm": "km",
3523
+ "kir": "ky",
3524
+ "lao": "lo",
3525
+ "lat": "la",
3526
+ "lvs": "lv",
3527
+ "lit": "lt",
3528
+ "ltz": "lb",
3529
+ "mkd": "mk",
3530
+ "mlt": "mt",
3359
3531
  "mon": "mn",
3360
3532
  "mri": "mi",
3361
3533
  "nso": void 0,
@@ -3444,6 +3616,158 @@ const RTL_LANG_CODES = [
3444
3616
  "prs"
3445
3617
  ];
3446
3618
  //#endregion
3447
- export { APP_NAME, AUTH_BASE_PATH, AUTH_COOKIE_PATTERNS, BETA_FEATURES, BETA_FEATURE_KEYS, CHROME_EXTENSION_ORIGIN, COLUMN_MAX_WIDTH, COLUMN_MIN_WIDTH, COLUMN_TYPES, COLUMN_TYPE_INFO, EDGE_EXTENSION_ORIGIN, ISO6393_TO_6391, LANG_CODE_ISO6391_OPTIONS, LANG_CODE_ISO6393_OPTIONS, LANG_CODE_TO_EN_NAME, LANG_CODE_TO_LOCALE_NAME, LANG_DICTIONARY_LABELS, LOCALE_TO_ISO6393, NOTEBASE_BETA_FEATURE_KEY, ORPC_PREFIX, RTL_LANG_CODES, SEMANTIC_VERSION_REGEX, columnConfigSchema, createCellSchema, createRowSchema, getVersionType, isNumberConfig, isSelectConfig, langCodeISO6391Schema, langCodeISO6393Schema, langLevel, parseSemanticVersion, rowSchemaToJsonSchema, selectOptionSchema, semanticVersionSchema };
3619
+ //#region src/types/notebase-column.ts
3620
+ const NOTEBASE_COLUMN_TYPES = [
3621
+ "string",
3622
+ "number",
3623
+ "boolean",
3624
+ "date",
3625
+ "select"
3626
+ ];
3627
+ const notebaseSelectOptionSchema = z.object({
3628
+ id: z.string(),
3629
+ value: z.string(),
3630
+ color: z.string().regex(/^#[0-9a-f]{6}$/i, "Color must be a valid hex color")
3631
+ });
3632
+ const notebaseColumnConfigSchema = z.discriminatedUnion("type", [
3633
+ z.object({ type: z.literal("string") }),
3634
+ z.object({
3635
+ type: z.literal("number"),
3636
+ decimal: z.number().int().min(0).default(0),
3637
+ format: z.enum([
3638
+ "number",
3639
+ "currency",
3640
+ "percent"
3641
+ ]).default("number")
3642
+ }),
3643
+ z.object({ type: z.literal("boolean") }),
3644
+ z.object({
3645
+ type: z.literal("date"),
3646
+ dateFormat: z.string().optional()
3647
+ }),
3648
+ z.object({
3649
+ type: z.literal("select"),
3650
+ options: z.array(notebaseSelectOptionSchema).default([])
3651
+ })
3652
+ ]);
3653
+ const NOTEBASE_COLUMN_TYPE_INFO = {
3654
+ string: {
3655
+ label: "Text",
3656
+ defaultConfig: { type: "string" }
3657
+ },
3658
+ number: {
3659
+ label: "Number",
3660
+ defaultConfig: {
3661
+ type: "number",
3662
+ decimal: 0,
3663
+ format: "number"
3664
+ }
3665
+ },
3666
+ boolean: {
3667
+ label: "Checkbox",
3668
+ defaultConfig: { type: "boolean" }
3669
+ },
3670
+ date: {
3671
+ label: "Date",
3672
+ defaultConfig: { type: "date" }
3673
+ },
3674
+ select: {
3675
+ label: "Select",
3676
+ defaultConfig: {
3677
+ type: "select",
3678
+ options: []
3679
+ }
3680
+ }
3681
+ };
3682
+ function isNumberConfig(config) {
3683
+ return config.type === "number";
3684
+ }
3685
+ function isSelectConfig(config) {
3686
+ return config.type === "select";
3687
+ }
3688
+ //#endregion
3689
+ //#region src/types/srs.ts
3690
+ const srsStepPattern = /^[1-9]\d*[mhd]$/;
3691
+ const REVIEW_RATING_VALUES = [
3692
+ "again",
3693
+ "hard",
3694
+ "good",
3695
+ "easy"
3696
+ ];
3697
+ const reviewRatingSchema = z.enum(REVIEW_RATING_VALUES);
3698
+ const SRS_REVIEW_DURATION_MS_MAX = 18e4;
3699
+ const srsStepSchema = z.templateLiteral([z.number(), z.enum([
3700
+ "m",
3701
+ "h",
3702
+ "d"
3703
+ ])]).refine((step) => srsStepPattern.test(step), "Expected a positive integer step like \"1m\", \"10m\", \"1h\", or \"1d\"");
3704
+ const srsWeightsSchema = z.array(z.number());
3705
+ const schedulingParamsShape = {
3706
+ newPerDay: z.number().int().gte(-1),
3707
+ reviewsPerDay: z.number().int().gte(-1),
3708
+ desiredRetention: z.number().gt(0).lte(1),
3709
+ enableShortTerm: z.boolean(),
3710
+ maximumInterval: z.number().int().positive(),
3711
+ learningSteps: z.array(srsStepSchema),
3712
+ relearningSteps: z.array(srsStepSchema),
3713
+ leechThreshold: z.number().int().positive(),
3714
+ enableFuzz: z.boolean(),
3715
+ weights: srsWeightsSchema.optional()
3716
+ };
3717
+ const schedulingParamsSchema = z.object(schedulingParamsShape).strict();
3718
+ const DEFAULT_SRS_SCHEDULING_PARAMS = {
3719
+ newPerDay: 20,
3720
+ reviewsPerDay: 200,
3721
+ desiredRetention: .9,
3722
+ enableShortTerm: true,
3723
+ maximumInterval: 36500,
3724
+ learningSteps: ["1m", "10m"],
3725
+ relearningSteps: ["10m"],
3726
+ leechThreshold: 8,
3727
+ enableFuzz: false
3728
+ };
3729
+ const fsrsReviewLogSnapshotSchema = z.object({
3730
+ rating: z.union([
3731
+ z.literal(1),
3732
+ z.literal(2),
3733
+ z.literal(3),
3734
+ z.literal(4)
3735
+ ]),
3736
+ state: z.union([
3737
+ z.literal(0),
3738
+ z.literal(1),
3739
+ z.literal(2),
3740
+ z.literal(3)
3741
+ ]),
3742
+ dueAt: z.string(),
3743
+ stability: z.number(),
3744
+ difficulty: z.number(),
3745
+ scheduledDays: z.number(),
3746
+ learningSteps: z.number(),
3747
+ review: z.string()
3748
+ }).strict();
3749
+ //#endregion
3750
+ //#region src/utils/srs-day.ts
3751
+ const SRS_DAY_START_HOUR = 4;
3752
+ function getSrsDayStart(date, timezone, startHour = 4) {
3753
+ const timezoneContext = tz(timezone);
3754
+ const shiftedDayStart = startOfDay(subHours(date, startHour, { in: timezoneContext }), { in: timezoneContext });
3755
+ return new Date(addHours(shiftedDayStart, startHour, { in: timezoneContext }).getTime());
3756
+ }
3757
+ function getSrsDayEnd(date, timezone, startHour = 4) {
3758
+ const timezoneContext = tz(timezone);
3759
+ const nextShiftedDayStart = addDays(startOfDay(subHours(date, startHour, { in: timezoneContext }), { in: timezoneContext }), 1, { in: timezoneContext });
3760
+ return new Date(addHours(nextShiftedDayStart, startHour, { in: timezoneContext }).getTime());
3761
+ }
3762
+ function isSameSrsDay(left, right, timezone, startHour = 4) {
3763
+ const timezoneContext = tz(timezone);
3764
+ return isSameDay(subHours(left, startHour, { in: timezoneContext }), subHours(right, startHour, { in: timezoneContext }), { in: timezoneContext });
3765
+ }
3766
+ function differenceInSrsDays(later, earlier, timezone, startHour = 4) {
3767
+ const timezoneContext = tz(timezone);
3768
+ return differenceInCalendarDays(subHours(later, startHour, { in: timezoneContext }), subHours(earlier, startHour, { in: timezoneContext }), { in: timezoneContext });
3769
+ }
3770
+ //#endregion
3771
+ export { APP_NAME, AUTH_BASE_PATH, AUTH_COOKIE_PATTERNS, BETA_FEATURES, BETA_FEATURE_KEYS, CARD_STATE_TO_SCHEDULE_STATUS, CARD_STATE_VALUES, CHROME_EXTENSION_ORIGIN, DEFAULT_SRS_SCHEDULING_PARAMS, EDGE_EXTENSION_ORIGIN, ISO6393_TO_6391, LANG_CODE_ISO6391_OPTIONS, LANG_CODE_ISO6393_OPTIONS, LANG_CODE_TO_EN_NAME, LANG_CODE_TO_LOCALE_NAME, LANG_CODE_TO_ZH_NAME, LANG_DICTIONARY_LABELS, LOCALE_TO_ISO6393, NOTEBASE_BETA_FEATURE_KEY, NOTEBASE_COLUMN_MAX_WIDTH, NOTEBASE_COLUMN_MIN_WIDTH, NOTEBASE_COLUMN_TYPES, NOTEBASE_COLUMN_TYPE_INFO, ORPC_PREFIX, REVIEW_RATING_VALUES, RTL_LANG_CODES, SCHEDULE_STATUS_VALUES, SEMANTIC_VERSION_REGEX, SRS_DAY_START_HOUR, SRS_REVIEW_DURATION_MS_MAX, basicCardTemplateConfigSchema, cardIdentityShape, cardMemoryStateSchema, cardMemoryStateShape, cardReviewStateSchema, cardReviewStateShape, cardStateSchema, cardTemplateConfigSchema, createCellSchema, createRowSchema, differenceInSrsDays, fsrsReviewLogSnapshotSchema, getSrsDayEnd, getSrsDayStart, getVersionType, isNumberConfig, isSameSrsDay, isSelectConfig, langCodeISO6391Schema, langCodeISO6393Schema, langLevel, notebaseColumnConfigSchema, notebaseSelectOptionSchema, parseSemanticVersion, reviewRatingSchema, rowSchemaToJsonSchema, scheduleStatusSchema, schedulingParamsSchema, schedulingParamsShape, semanticVersionSchema, srsStepSchema, srsWeightsSchema };
3448
3772
 
3449
3773
  //# sourceMappingURL=index.js.map