jell-utils 0.1.0 → 0.2.0

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.
Files changed (170) hide show
  1. package/.claude/commands/tm/add-dependency.md +58 -0
  2. package/.claude/commands/tm/add-subtask.md +79 -0
  3. package/.claude/commands/tm/add-task.md +81 -0
  4. package/.claude/commands/tm/analyze-complexity.md +124 -0
  5. package/.claude/commands/tm/analyze-project.md +100 -0
  6. package/.claude/commands/tm/auto-implement-tasks.md +100 -0
  7. package/.claude/commands/tm/command-pipeline.md +80 -0
  8. package/.claude/commands/tm/complexity-report.md +120 -0
  9. package/.claude/commands/tm/convert-task-to-subtask.md +74 -0
  10. package/.claude/commands/tm/expand-all-tasks.md +52 -0
  11. package/.claude/commands/tm/expand-task.md +52 -0
  12. package/.claude/commands/tm/fix-dependencies.md +82 -0
  13. package/.claude/commands/tm/help.md +101 -0
  14. package/.claude/commands/tm/init-project-quick.md +49 -0
  15. package/.claude/commands/tm/init-project.md +53 -0
  16. package/.claude/commands/tm/install-taskmaster.md +118 -0
  17. package/.claude/commands/tm/learn.md +106 -0
  18. package/.claude/commands/tm/list-tasks-by-status.md +42 -0
  19. package/.claude/commands/tm/list-tasks-with-subtasks.md +30 -0
  20. package/.claude/commands/tm/list-tasks.md +46 -0
  21. package/.claude/commands/tm/next-task.md +69 -0
  22. package/.claude/commands/tm/parse-prd-with-research.md +51 -0
  23. package/.claude/commands/tm/parse-prd.md +52 -0
  24. package/.claude/commands/tm/project-status.md +67 -0
  25. package/.claude/commands/tm/quick-install-taskmaster.md +23 -0
  26. package/.claude/commands/tm/remove-all-subtasks.md +94 -0
  27. package/.claude/commands/tm/remove-dependency.md +65 -0
  28. package/.claude/commands/tm/remove-subtask.md +87 -0
  29. package/.claude/commands/tm/remove-subtasks.md +89 -0
  30. package/.claude/commands/tm/remove-task.md +110 -0
  31. package/.claude/commands/tm/setup-models.md +52 -0
  32. package/.claude/commands/tm/show-task.md +85 -0
  33. package/.claude/commands/tm/smart-workflow.md +58 -0
  34. package/.claude/commands/tm/sync-readme.md +120 -0
  35. package/.claude/commands/tm/tm-main.md +147 -0
  36. package/.claude/commands/tm/to-cancelled.md +58 -0
  37. package/.claude/commands/tm/to-deferred.md +50 -0
  38. package/.claude/commands/tm/to-done.md +47 -0
  39. package/.claude/commands/tm/to-in-progress.md +39 -0
  40. package/.claude/commands/tm/to-pending.md +35 -0
  41. package/.claude/commands/tm/to-review.md +43 -0
  42. package/.claude/commands/tm/update-single-task.md +122 -0
  43. package/.claude/commands/tm/update-task.md +75 -0
  44. package/.claude/commands/tm/update-tasks-from-id.md +111 -0
  45. package/.claude/commands/tm/validate-dependencies.md +72 -0
  46. package/.claude/commands/tm/view-models.md +52 -0
  47. package/.claude/settings.local.json +17 -3
  48. package/.cursor/commands/tm/add-dependency.md +55 -0
  49. package/.cursor/commands/tm/add-subtask.md +76 -0
  50. package/.cursor/commands/tm/add-task.md +78 -0
  51. package/.cursor/commands/tm/analyze-complexity.md +121 -0
  52. package/.cursor/commands/tm/analyze-project.md +97 -0
  53. package/.cursor/commands/tm/auto-implement-tasks.md +97 -0
  54. package/.cursor/commands/tm/command-pipeline.md +77 -0
  55. package/.cursor/commands/tm/complexity-report.md +117 -0
  56. package/.cursor/commands/tm/convert-task-to-subtask.md +71 -0
  57. package/.cursor/commands/tm/expand-all-tasks.md +51 -0
  58. package/.cursor/commands/tm/expand-task.md +49 -0
  59. package/.cursor/commands/tm/fix-dependencies.md +81 -0
  60. package/.cursor/commands/tm/help.md +98 -0
  61. package/.cursor/commands/tm/init-project-quick.md +46 -0
  62. package/.cursor/commands/tm/init-project.md +50 -0
  63. package/.cursor/commands/tm/install-taskmaster.md +117 -0
  64. package/.cursor/commands/tm/learn.md +103 -0
  65. package/.cursor/commands/tm/list-tasks-by-status.md +39 -0
  66. package/.cursor/commands/tm/list-tasks-with-subtasks.md +29 -0
  67. package/.cursor/commands/tm/list-tasks.md +43 -0
  68. package/.cursor/commands/tm/next-task.md +66 -0
  69. package/.cursor/commands/tm/parse-prd-with-research.md +48 -0
  70. package/.cursor/commands/tm/parse-prd.md +49 -0
  71. package/.cursor/commands/tm/project-status.md +64 -0
  72. package/.cursor/commands/tm/quick-install-taskmaster.md +22 -0
  73. package/.cursor/commands/tm/remove-all-subtasks.md +93 -0
  74. package/.cursor/commands/tm/remove-dependency.md +62 -0
  75. package/.cursor/commands/tm/remove-subtask.md +84 -0
  76. package/.cursor/commands/tm/remove-subtasks.md +86 -0
  77. package/.cursor/commands/tm/remove-task.md +107 -0
  78. package/.cursor/commands/tm/setup-models.md +51 -0
  79. package/.cursor/commands/tm/show-task.md +82 -0
  80. package/.cursor/commands/tm/smart-workflow.md +55 -0
  81. package/.cursor/commands/tm/sync-readme.md +117 -0
  82. package/.cursor/commands/tm/tm-main.md +146 -0
  83. package/.cursor/commands/tm/to-cancelled.md +55 -0
  84. package/.cursor/commands/tm/to-deferred.md +47 -0
  85. package/.cursor/commands/tm/to-done.md +44 -0
  86. package/.cursor/commands/tm/to-in-progress.md +36 -0
  87. package/.cursor/commands/tm/to-pending.md +32 -0
  88. package/.cursor/commands/tm/to-review.md +40 -0
  89. package/.cursor/commands/tm/update-single-task.md +119 -0
  90. package/.cursor/commands/tm/update-task.md +72 -0
  91. package/.cursor/commands/tm/update-tasks-from-id.md +108 -0
  92. package/.cursor/commands/tm/validate-dependencies.md +71 -0
  93. package/.cursor/commands/tm/view-models.md +51 -0
  94. package/.cursor/mcp.json +20 -0
  95. package/.cursor/rules/cursor_rules.mdc +53 -0
  96. package/.cursor/rules/self_improve.mdc +72 -0
  97. package/.cursor/rules/taskmaster/dev_workflow.mdc +424 -0
  98. package/.cursor/rules/taskmaster/taskmaster.mdc +573 -0
  99. package/.env.example +12 -0
  100. package/.gemini/commands/tm/add-dependency.toml +58 -0
  101. package/.gemini/commands/tm/add-subtask.toml +79 -0
  102. package/.gemini/commands/tm/add-task.toml +81 -0
  103. package/.gemini/commands/tm/analyze-complexity.toml +124 -0
  104. package/.gemini/commands/tm/analyze-project.toml +100 -0
  105. package/.gemini/commands/tm/auto-implement-tasks.toml +100 -0
  106. package/.gemini/commands/tm/command-pipeline.toml +80 -0
  107. package/.gemini/commands/tm/complexity-report.toml +120 -0
  108. package/.gemini/commands/tm/convert-task-to-subtask.toml +74 -0
  109. package/.gemini/commands/tm/expand-all-tasks.toml +54 -0
  110. package/.gemini/commands/tm/expand-task.toml +52 -0
  111. package/.gemini/commands/tm/fix-dependencies.toml +84 -0
  112. package/.gemini/commands/tm/help.toml +101 -0
  113. package/.gemini/commands/tm/init-project-quick.toml +49 -0
  114. package/.gemini/commands/tm/init-project.toml +53 -0
  115. package/.gemini/commands/tm/install-taskmaster.toml +120 -0
  116. package/.gemini/commands/tm/learn.toml +106 -0
  117. package/.gemini/commands/tm/list-tasks-by-status.toml +42 -0
  118. package/.gemini/commands/tm/list-tasks-with-subtasks.toml +32 -0
  119. package/.gemini/commands/tm/list-tasks.toml +46 -0
  120. package/.gemini/commands/tm/next-task.toml +69 -0
  121. package/.gemini/commands/tm/parse-prd-with-research.toml +51 -0
  122. package/.gemini/commands/tm/parse-prd.toml +52 -0
  123. package/.gemini/commands/tm/project-status.toml +67 -0
  124. package/.gemini/commands/tm/quick-install-taskmaster.toml +25 -0
  125. package/.gemini/commands/tm/remove-all-subtasks.toml +96 -0
  126. package/.gemini/commands/tm/remove-dependency.toml +65 -0
  127. package/.gemini/commands/tm/remove-subtask.toml +87 -0
  128. package/.gemini/commands/tm/remove-subtasks.toml +89 -0
  129. package/.gemini/commands/tm/remove-task.toml +110 -0
  130. package/.gemini/commands/tm/setup-models.toml +54 -0
  131. package/.gemini/commands/tm/show-task.toml +85 -0
  132. package/.gemini/commands/tm/smart-workflow.toml +58 -0
  133. package/.gemini/commands/tm/sync-readme.toml +120 -0
  134. package/.gemini/commands/tm/tm-main.toml +149 -0
  135. package/.gemini/commands/tm/to-cancelled.toml +58 -0
  136. package/.gemini/commands/tm/to-deferred.toml +50 -0
  137. package/.gemini/commands/tm/to-done.toml +47 -0
  138. package/.gemini/commands/tm/to-in-progress.toml +39 -0
  139. package/.gemini/commands/tm/to-pending.toml +35 -0
  140. package/.gemini/commands/tm/to-review.toml +43 -0
  141. package/.gemini/commands/tm/update-single-task.toml +122 -0
  142. package/.gemini/commands/tm/update-task.toml +75 -0
  143. package/.gemini/commands/tm/update-tasks-from-id.toml +111 -0
  144. package/.gemini/commands/tm/validate-dependencies.toml +74 -0
  145. package/.gemini/commands/tm/view-models.toml +54 -0
  146. package/.gemini/settings.json +20 -0
  147. package/.mcp.json +15 -0
  148. package/.taskmaster/CLAUDE.md +435 -0
  149. package/.taskmaster/config.json +44 -0
  150. package/.taskmaster/docs/prd.txt +584 -0
  151. package/.taskmaster/state.json +6 -0
  152. package/.taskmaster/tasks/tasks.json +304 -0
  153. package/.taskmaster/templates/example_prd.txt +47 -0
  154. package/.taskmaster/templates/example_prd_rpg.txt +511 -0
  155. package/CLAUDE.md +4 -138
  156. package/README.md +551 -0
  157. package/coverage/clover.xml +134 -22
  158. package/coverage/coverage-final.json +1 -1
  159. package/coverage/lcov-report/index.html +21 -21
  160. package/coverage/lcov-report/index.js.html +854 -29
  161. package/coverage/lcov.info +246 -39
  162. package/internal-docs/CLAUDE.md +139 -0
  163. package/internal-docs/NPM_DEPLOYMENT_GUIDE.md +203 -0
  164. package/internal-docs/OBSIDIAN_PROJECT_PROMPT.md +302 -0
  165. package/lib/index.d.ts +88 -0
  166. package/lib/index.js +275 -0
  167. package/package.json +11 -3
  168. /package/{DEPLOYMENT.md → internal-docs/DEPLOYMENT.md} +0 -0
  169. /package/{TEST_RESULTS.md → internal-docs/TEST_RESULTS.md} +0 -0
  170. /package/{TEST_SIMULATION.md → internal-docs/TEST_SIMULATION.md} +0 -0
@@ -63,8 +63,23 @@ FN:626,(anonymous_59)
63
63
  FN:628,(anonymous_60)
64
64
  FN:632,(anonymous_61)
65
65
  FN:646,(anonymous_62)
66
- FNF:63
67
- FNH:56
66
+ FN:664,(anonymous_63)
67
+ FN:699,(anonymous_64)
68
+ FN:731,(anonymous_65)
69
+ FN:739,(anonymous_66)
70
+ FN:748,(anonymous_67)
71
+ FN:757,(anonymous_68)
72
+ FN:776,(anonymous_69)
73
+ FN:792,(anonymous_70)
74
+ FN:798,(anonymous_71)
75
+ FN:846,(anonymous_72)
76
+ FN:856,(anonymous_73)
77
+ FN:865,(anonymous_74)
78
+ FN:875,(anonymous_75)
79
+ FN:889,(anonymous_76)
80
+ FN:925,(anonymous_77)
81
+ FNF:78
82
+ FNH:71
68
83
  FNDA:1,(anonymous_0)
69
84
  FNDA:0,(anonymous_1)
70
85
  FNDA:3,(anonymous_2)
@@ -105,7 +120,7 @@ FNDA:0,(anonymous_36)
105
120
  FNDA:0,(anonymous_37)
106
121
  FNDA:3,(anonymous_38)
107
122
  FNDA:0,(anonymous_39)
108
- FNDA:6,(anonymous_40)
123
+ FNDA:15,(anonymous_40)
109
124
  FNDA:2,(anonymous_41)
110
125
  FNDA:2,(anonymous_42)
111
126
  FNDA:1,(anonymous_43)
@@ -128,7 +143,22 @@ FNDA:2,(anonymous_59)
128
143
  FNDA:6,(anonymous_60)
129
144
  FNDA:4,(anonymous_61)
130
145
  FNDA:3,(anonymous_62)
131
- DA:2,7
146
+ FNDA:6,(anonymous_63)
147
+ FNDA:8,(anonymous_64)
148
+ FNDA:4,(anonymous_65)
149
+ FNDA:4,(anonymous_66)
150
+ FNDA:10,(anonymous_67)
151
+ FNDA:5,(anonymous_68)
152
+ FNDA:5,(anonymous_69)
153
+ FNDA:13,(anonymous_70)
154
+ FNDA:13,(anonymous_71)
155
+ FNDA:5,(anonymous_72)
156
+ FNDA:9,(anonymous_73)
157
+ FNDA:8,(anonymous_74)
158
+ FNDA:8,(anonymous_75)
159
+ FNDA:4,(anonymous_76)
160
+ FNDA:3,(anonymous_77)
161
+ DA:2,8
132
162
  DA:3,1
133
163
  DA:4,0
134
164
  DA:5,0
@@ -136,14 +166,14 @@ DA:6,0
136
166
  DA:7,0
137
167
  DA:9,0
138
168
  DA:11,1
139
- DA:13,7
169
+ DA:13,8
140
170
  DA:14,9
141
171
  DA:15,3
142
172
  DA:16,5
143
173
  DA:17,4
144
174
  DA:18,11
145
175
  DA:19,3
146
- DA:22,7
176
+ DA:22,8
147
177
  DA:23,19
148
178
  DA:24,9
149
179
  DA:25,27
@@ -165,14 +195,14 @@ DA:42,6
165
195
  DA:44,38
166
196
  DA:45,77
167
197
  DA:46,9
168
- DA:49,7
198
+ DA:49,8
169
199
  DA:50,5
170
200
  DA:51,10
171
201
  DA:52,0
172
202
  DA:53,0
173
203
  DA:56,5
174
- DA:58,7
175
- DA:59,7
204
+ DA:58,8
205
+ DA:59,8
176
206
  DA:66,5
177
207
  DA:67,5
178
208
  DA:75,5
@@ -294,17 +324,17 @@ DA:354,6
294
324
  DA:355,1
295
325
  DA:357,1
296
326
  DA:364,0
297
- DA:372,6
298
- DA:373,6
299
- DA:374,3
300
- DA:375,3
301
- DA:376,3
302
- DA:377,3
303
- DA:378,3
304
- DA:379,27
305
- DA:381,3
306
- DA:382,3
307
- DA:383,3
327
+ DA:372,15
328
+ DA:373,15
329
+ DA:374,5
330
+ DA:375,10
331
+ DA:376,10
332
+ DA:377,10
333
+ DA:378,10
334
+ DA:379,90
335
+ DA:381,10
336
+ DA:382,10
337
+ DA:383,10
308
338
  DA:393,2
309
339
  DA:394,2
310
340
  DA:395,2
@@ -418,19 +448,131 @@ DA:652,2
418
448
  DA:653,2
419
449
  DA:654,2
420
450
  DA:655,2
421
- DA:658,7
422
- LF:291
423
- LH:241
424
- BRDA:2,0,0,7
425
- BRDA:2,0,1,7
426
- BRDA:2,0,2,7
451
+ DA:665,6
452
+ DA:666,6
453
+ DA:675,6
454
+ DA:685,6
455
+ DA:687,6
456
+ DA:688,6
457
+ DA:689,48
458
+ DA:690,48
459
+ DA:692,6
460
+ DA:700,8
461
+ DA:701,8
462
+ DA:702,8
463
+ DA:703,8
464
+ DA:704,8
465
+ DA:705,8
466
+ DA:706,8
467
+ DA:707,8
468
+ DA:708,8
469
+ DA:709,8
470
+ DA:710,1
471
+ DA:711,7
472
+ DA:712,1
473
+ DA:713,6
474
+ DA:714,1
475
+ DA:715,5
476
+ DA:716,1
477
+ DA:717,4
478
+ DA:718,1
479
+ DA:719,3
480
+ DA:720,1
481
+ DA:721,2
482
+ DA:722,1
483
+ DA:723,1
484
+ DA:732,4
485
+ DA:740,4
486
+ DA:749,10
487
+ DA:758,5
488
+ DA:759,5
489
+ DA:760,5
490
+ DA:767,5
491
+ DA:768,5
492
+ DA:777,5
493
+ DA:778,5
494
+ DA:779,5
495
+ DA:780,5
496
+ DA:781,7
497
+ DA:782,7
498
+ DA:784,5
499
+ DA:785,5
500
+ DA:793,13
501
+ DA:794,1
502
+ DA:795,12
503
+ DA:796,12
504
+ DA:797,12
505
+ DA:798,12
506
+ DA:799,13
507
+ DA:800,13
508
+ DA:801,13
509
+ DA:802,52
510
+ DA:803,52
511
+ DA:804,52
512
+ DA:806,23
513
+ DA:807,17
514
+ DA:809,23
515
+ DA:812,13
516
+ DA:814,12
517
+ DA:815,12
518
+ DA:816,12
519
+ DA:817,12
520
+ DA:818,16
521
+ DA:819,16
522
+ DA:820,13
523
+ DA:822,13
524
+ DA:823,3
525
+ DA:825,1
526
+ DA:829,2
527
+ DA:833,10
528
+ DA:836,16
529
+ DA:837,16
530
+ DA:839,12
531
+ DA:847,5
532
+ DA:848,5
533
+ DA:857,9
534
+ DA:858,9
535
+ DA:866,8
536
+ DA:867,8
537
+ DA:868,8
538
+ DA:876,8
539
+ DA:877,8
540
+ DA:878,5
541
+ DA:881,3
542
+ DA:890,4
543
+ DA:891,4
544
+ DA:893,1
545
+ DA:894,1
546
+ DA:896,0
547
+ DA:897,0
548
+ DA:900,3
549
+ DA:902,2
550
+ DA:903,2
551
+ DA:905,0
552
+ DA:906,0
553
+ DA:909,1
554
+ DA:911,1
555
+ DA:912,1
556
+ DA:914,0
557
+ DA:915,0
558
+ DA:918,0
559
+ DA:926,3
560
+ DA:927,3
561
+ DA:928,1
562
+ DA:930,2
563
+ DA:933,8
564
+ LF:403
565
+ LH:346
566
+ BRDA:2,0,0,8
567
+ BRDA:2,0,1,8
568
+ BRDA:2,0,2,8
427
569
  BRDA:3,1,0,1
428
570
  BRDA:3,1,1,0
429
571
  BRDA:6,2,0,0
430
572
  BRDA:6,2,1,0
431
- BRDA:13,3,0,7
432
- BRDA:13,3,1,7
433
- BRDA:13,3,2,7
573
+ BRDA:13,3,0,8
574
+ BRDA:13,3,1,8
575
+ BRDA:13,3,2,8
434
576
  BRDA:14,4,0,9
435
577
  BRDA:14,4,1,0
436
578
  BRDA:15,5,0,3
@@ -439,9 +581,9 @@ BRDA:18,6,0,2
439
581
  BRDA:18,6,1,9
440
582
  BRDA:19,7,0,3
441
583
  BRDA:19,7,1,0
442
- BRDA:22,8,0,7
443
- BRDA:22,8,1,7
444
- BRDA:22,8,2,7
584
+ BRDA:22,8,0,8
585
+ BRDA:22,8,1,8
586
+ BRDA:22,8,2,8
445
587
  BRDA:23,9,0,4
446
588
  BRDA:23,9,1,15
447
589
  BRDA:23,10,0,9
@@ -502,9 +644,9 @@ BRDA:46,33,0,1
502
644
  BRDA:46,33,1,8
503
645
  BRDA:46,34,0,8
504
646
  BRDA:46,34,1,0
505
- BRDA:49,35,0,7
506
- BRDA:49,35,1,7
507
- BRDA:49,35,2,7
647
+ BRDA:49,35,0,8
648
+ BRDA:49,35,1,8
649
+ BRDA:49,35,2,8
508
650
  BRDA:50,36,0,5
509
651
  BRDA:50,36,1,0
510
652
  BRDA:50,37,0,5
@@ -609,8 +751,8 @@ BRDA:351,85,0,1
609
751
  BRDA:351,85,1,2
610
752
  BRDA:354,86,0,1
611
753
  BRDA:354,86,1,5
612
- BRDA:373,87,0,3
613
- BRDA:373,87,1,3
754
+ BRDA:373,87,0,5
755
+ BRDA:373,87,1,10
614
756
  BRDA:397,88,0,1
615
757
  BRDA:397,88,1,5
616
758
  BRDA:397,89,0,6
@@ -684,6 +826,71 @@ BRDA:649,117,0,3
684
826
  BRDA:649,117,1,0
685
827
  BRDA:650,118,0,1
686
828
  BRDA:650,118,1,2
687
- BRF:263
688
- BRH:193
829
+ BRDA:709,119,0,1
830
+ BRDA:709,119,1,7
831
+ BRDA:711,120,0,1
832
+ BRDA:711,120,1,6
833
+ BRDA:713,121,0,1
834
+ BRDA:713,121,1,5
835
+ BRDA:715,122,0,1
836
+ BRDA:715,122,1,4
837
+ BRDA:717,123,0,1
838
+ BRDA:717,123,1,3
839
+ BRDA:719,124,0,1
840
+ BRDA:719,124,1,2
841
+ BRDA:721,125,0,1
842
+ BRDA:721,125,1,1
843
+ BRDA:740,126,0,4
844
+ BRDA:740,126,1,3
845
+ BRDA:740,126,2,3
846
+ BRDA:758,127,0,2
847
+ BRDA:758,127,1,3
848
+ BRDA:768,128,0,3
849
+ BRDA:768,128,1,2
850
+ BRDA:780,129,0,12
851
+ BRDA:780,129,1,7
852
+ BRDA:784,130,0,1
853
+ BRDA:784,130,1,4
854
+ BRDA:784,131,0,1
855
+ BRDA:784,131,1,3
856
+ BRDA:793,132,0,1
857
+ BRDA:793,132,1,12
858
+ BRDA:804,133,0,23
859
+ BRDA:804,133,1,29
860
+ BRDA:806,134,0,17
861
+ BRDA:806,134,1,6
862
+ BRDA:806,135,0,23
863
+ BRDA:806,135,1,10
864
+ BRDA:819,136,0,13
865
+ BRDA:819,136,1,3
866
+ BRDA:822,137,0,3
867
+ BRDA:822,137,1,10
868
+ BRDA:822,138,0,13
869
+ BRDA:822,138,1,4
870
+ BRDA:823,139,0,1
871
+ BRDA:823,139,1,2
872
+ BRDA:868,140,0,8
873
+ BRDA:868,140,1,5
874
+ BRDA:891,141,0,1
875
+ BRDA:891,141,1,3
876
+ BRDA:893,142,0,1
877
+ BRDA:893,142,1,0
878
+ BRDA:896,143,0,0
879
+ BRDA:896,143,1,0
880
+ BRDA:900,144,0,2
881
+ BRDA:900,144,1,1
882
+ BRDA:902,145,0,2
883
+ BRDA:902,145,1,0
884
+ BRDA:905,146,0,0
885
+ BRDA:905,146,1,0
886
+ BRDA:909,147,0,1
887
+ BRDA:909,147,1,0
888
+ BRDA:911,148,0,1
889
+ BRDA:911,148,1,0
890
+ BRDA:914,149,0,0
891
+ BRDA:914,149,1,0
892
+ BRDA:927,150,0,1
893
+ BRDA:927,150,1,2
894
+ BRF:328
895
+ BRH:248
689
896
  end_of_record
@@ -0,0 +1,139 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ This is a TypeScript utility library (`jell-utils`) containing utility functions primarily focused on:
8
+ - Korean text processing and detection
9
+ - Date/time manipulation and formatting
10
+ - String transformations (camelCase, snake_case, title case)
11
+ - HTML/text parsing and cleaning
12
+ - Array comparison utilities
13
+ - iOS device detection
14
+
15
+ The library is designed for both browser and Node.js environments, with compiled output in CommonJS format.
16
+
17
+ ## Development Commands
18
+
19
+ ### Build & Compilation
20
+ ```bash
21
+ # Build TypeScript to JavaScript (outputs to lib/ directory)
22
+ yarn build
23
+ # or
24
+ npm run build
25
+ ```
26
+
27
+ ### Testing
28
+ ```bash
29
+ # Run all tests using Jest
30
+ yarn test
31
+ # or
32
+ npm test
33
+
34
+ # Test files are in __tests__/ directory
35
+ # Tests are written for TypeScript but run against compiled JS in lib/
36
+ ```
37
+
38
+ ### Code Quality
39
+ ```bash
40
+ # Lint TypeScript files
41
+ yarn lint
42
+ # or
43
+ npm run lint
44
+
45
+ # Auto-fix linting issues
46
+ yarn lint:fix
47
+ # or
48
+ npm run lint:fix
49
+
50
+ # Format code with Prettier
51
+ yarn format
52
+ # or
53
+ npm run format
54
+ ```
55
+
56
+ ### Publishing Workflow
57
+ ```bash
58
+ # Pre-publish checks (runs test, lint, and lint:fix)
59
+ yarn prepublishOnly
60
+
61
+ # Version management (includes linting and formatting)
62
+ yarn preversion # lint check
63
+ yarn version # format and git add
64
+ yarn postversion # git push with tags
65
+ ```
66
+
67
+ ## Architecture & Structure
68
+
69
+ ### Core Module Structure
70
+ - **Source**: `src/index.ts` - Single file containing all utility functions as a default export object
71
+ - **Compiled Output**: `lib/index.js` + `lib/index.d.ts` - ES5 CommonJS with TypeScript declarations
72
+ - **Tests**: `__tests__/korean.test.ts` - Jest tests importing from compiled lib directory
73
+
74
+ ### Key Design Patterns
75
+ - **Single Object Export**: All utilities are methods on a single `util` object
76
+ - **Pure Functions**: All utility functions are stateless and side-effect free (except `clearTag` which uses DOM)
77
+ - **Defensive Programming**: Functions include type checking and fallback values
78
+ - **Browser Compatibility**: Uses DOM APIs for `clearTag` and `navigator` for `isiOS`
79
+
80
+ ### Function Categories
81
+
82
+ 1. **Korean Text Processing**:
83
+ - `isKorean()` - Detects Korean characters using Unicode ranges
84
+
85
+ 2. **Date/Time Utilities**:
86
+ - `getNowDate()` - Current datetime in local timezone
87
+ - `getKoreanDate()` - Korean date format ("월일" format)
88
+ - `formatDate()` - yyyy-mm-dd formatting
89
+ - `calDDay()` - D-day calculator
90
+ - `parseTime()` - Parse time strings to milliseconds
91
+
92
+ 3. **String Transformations**:
93
+ - `toCamelCase()` - Convert to camelCase
94
+ - `toSnakeCase()` - Convert to snake_case
95
+ - `toTitleCase()` - Convert to Title Case with space handling
96
+ - `replaceBetween()` - Replace substring at specific indices
97
+
98
+ 4. **HTML/Text Processing**:
99
+ - `parseTag()` - Decode HTML entities (&lt; to <)
100
+ - `toText()` - Convert <br> tags to newlines
101
+ - `toHtml()` - Convert newlines to <br> tags
102
+ - `clearTag()` - Remove HTML tags (browser only)
103
+
104
+ 5. **Data Utilities**:
105
+ - `clone()` - Shallow object cloning
106
+ - `equalArrays()` - Array comparison
107
+ - `parseNumber()` - Safe number parsing with defaults
108
+
109
+ 6. **Browser Detection**:
110
+ - `isiOS()` - Detect iOS devices via user agent
111
+
112
+ ## Development Notes
113
+
114
+ ### Build Process
115
+ - TypeScript compiles to ES5 for broad compatibility
116
+ - Outputs both JavaScript and TypeScript declaration files
117
+ - Uses strict TypeScript configuration with proper module resolution
118
+
119
+ ### Testing Strategy
120
+ - Tests run against compiled JavaScript in `lib/` directory, not source TypeScript
121
+ - Jest configuration supports both .ts and .js files
122
+ - Tests focus on core functionality rather than edge cases
123
+
124
+ ### Type Safety Considerations
125
+ - Uses `Record<string, unknown>` for generic object types
126
+ - TODO comment indicates need to improve object typing
127
+ - Functions include runtime type checking for safety
128
+
129
+ ### Browser Dependencies
130
+ - `clearTag()` function requires DOM environment (uses `document.createElement`)
131
+ - `isiOS()` function requires browser environment (uses `navigator.userAgent`)
132
+ - Other functions are environment-agnostic
133
+
134
+ When adding new utilities:
135
+ 1. Add to the main util object in `src/index.ts`
136
+ 2. Follow existing patterns for type safety and error handling
137
+ 3. Add comprehensive JSDoc documentation
138
+ 4. Write tests in `__tests__/` directory
139
+ 5. Test against compiled output, not source
@@ -0,0 +1,203 @@
1
+ # 📦 NPM 배포 가이드
2
+
3
+ ## 사전 준비
4
+
5
+ ### 1. npm 계정 및 인증
6
+
7
+ ```bash
8
+ # npm 로그인 상태 확인
9
+ npm whoami
10
+
11
+ # 로그인이 안되어 있다면
12
+ npm login
13
+ ```
14
+
15
+ ### 2. .npmrc 파일 설정 (이미 완료됨)
16
+
17
+ `.npmrc` 파일에 인증 토큰이 설정되어 있어야 합니다:
18
+
19
+ ```
20
+ //registry.npmjs.org/:_authToken=npm_YOUR_TOKEN_HERE
21
+ ```
22
+
23
+ ⚠️ **중요**: `.npmrc` 파일은 `.gitignore`에 포함되어 있어 Git에 커밋되지 않습니다. 토큰을 안전하게 보관하세요!
24
+
25
+ ## 배포 프로세스
26
+
27
+ ### 방법 1: 수동 배포 (권장)
28
+
29
+ ```bash
30
+ # 1. 모든 변경사항 커밋
31
+ git add .
32
+ git commit -m "feat: describe your changes"
33
+ git push
34
+
35
+ # 2. 버전 업데이트
36
+ npm version patch # 0.0.18 → 0.0.19 (버그 수정)
37
+ npm version minor # 0.0.18 → 0.1.0 (새 기능 추가)
38
+ npm version major # 0.0.18 → 1.0.0 (Breaking changes)
39
+
40
+ # 3. 배포
41
+ npm publish
42
+ ```
43
+
44
+ ### 방법 2: 한 번에 실행
45
+
46
+ ```bash
47
+ # 테스트와 빌드를 수동으로 확인 후
48
+ npm run build && npm test
49
+
50
+ # 버전 업데이트와 배포
51
+ npm version minor && npm publish
52
+ ```
53
+
54
+ ## 자동 체크리스트
55
+
56
+ `npm publish` 실행 시 `prepublishOnly` 스크립트가 자동으로 다음을 실행합니다:
57
+
58
+ 1. ✅ **테스트 실행** (`npm test`)
59
+ 2. ✅ **Lint 검사** (`npm run lint`)
60
+ 3. ✅ **빌드** (`npm run build` - prepare 훅에서)
61
+
62
+ 어느 하나라도 실패하면 배포가 중단됩니다.
63
+
64
+ ## 버전 전략
65
+
66
+ ### Semantic Versioning (SemVer)
67
+
68
+ - **MAJOR (1.0.0)**: Breaking changes - 기존 API가 변경되어 호환성이 깨짐
69
+ - **MINOR (0.1.0)**: 새 기능 추가 - 하위 호환성 유지
70
+ - **PATCH (0.0.1)**: 버그 수정 - 하위 호환성 유지
71
+
72
+ ### 예시
73
+
74
+ ```bash
75
+ # 새 기능 추가 (오늘처럼)
76
+ npm version minor
77
+ # 0.0.18 → 0.1.0
78
+
79
+ # 버그 수정
80
+ npm version patch
81
+ # 0.1.0 → 0.1.1
82
+
83
+ # Breaking changes
84
+ npm version major
85
+ # 0.1.1 → 1.0.0
86
+ ```
87
+
88
+ ## Git Push 문제 해결
89
+
90
+ 만약 Git push 시 권한 오류가 발생한다면:
91
+
92
+ ```bash
93
+ # 현재 Git 사용자 확인
94
+ git config user.name
95
+ git config user.email
96
+
97
+ # Git credential 재설정
98
+ git config --global credential.helper osxkeychain
99
+
100
+ # 또는 SSH 키 사용
101
+ git remote set-url origin git@github.com:jellive/jell-utils.js.git
102
+ ```
103
+
104
+ ## 배포 확인
105
+
106
+ ```bash
107
+ # 패키지 페이지에서 확인
108
+ # https://www.npmjs.com/package/jell-utils
109
+
110
+ # 설치 테스트
111
+ npm install jell-utils
112
+
113
+ # 또는
114
+ npm view jell-utils version
115
+ ```
116
+
117
+ ## Semantic Release (자동 배포)
118
+
119
+ 프로젝트에 semantic-release가 설정되어 있습니다. CI/CD에서 자동 배포하려면:
120
+
121
+ ```bash
122
+ # Conventional Commits 형식으로 커밋
123
+ git commit -m "feat: add new utility function"
124
+ git commit -m "fix: resolve bug in parseTime"
125
+ git commit -m "docs: update README"
126
+
127
+ # Push하면 GitHub Actions가 자동으로 배포
128
+ git push
129
+ ```
130
+
131
+ ### Conventional Commits 규칙
132
+
133
+ - `feat:` - 새 기능 (MINOR 버전 증가)
134
+ - `fix:` - 버그 수정 (PATCH 버전 증가)
135
+ - `docs:` - 문서만 변경 (버전 증가 없음)
136
+ - `BREAKING CHANGE:` - Breaking changes (MAJOR 버전 증가)
137
+
138
+ ## 문제 해결
139
+
140
+ ### 에러: "You do not have permission to publish"
141
+
142
+ ```bash
143
+ # npm 로그인 다시 확인
144
+ npm whoami
145
+ npm logout
146
+ npm login
147
+ ```
148
+
149
+ ### 에러: "Package version already exists"
150
+
151
+ ```bash
152
+ # 버전을 올려야 합니다
153
+ npm version patch
154
+ npm publish
155
+ ```
156
+
157
+ ### 에러: "prepublishOnly script failed"
158
+
159
+ 테스트나 Lint 에러를 먼저 수정해야 합니다:
160
+
161
+ ```bash
162
+ # 에러 확인
163
+ npm test
164
+ npm run lint
165
+
166
+ # 수정 후 다시 시도
167
+ npm publish
168
+ ```
169
+
170
+ ## 배포 체크리스트
171
+
172
+ - [ ] 모든 테스트 통과 (`npm test`)
173
+ - [ ] Lint 검사 통과 (`npm run lint`)
174
+ - [ ] 빌드 성공 (`npm run build`)
175
+ - [ ] README.md 업데이트
176
+ - [ ] CHANGELOG.md 업데이트 (선택사항)
177
+ - [ ] Git 커밋 및 Push
178
+ - [ ] 버전 업데이트
179
+ - [ ] npm publish
180
+ - [ ] 배포 확인 (npmjs.com)
181
+
182
+ ## 현재 버전
183
+
184
+ - **현재**: 0.1.0
185
+ - **마지막 배포**: 2025-10-11
186
+ - **포함된 기능**:
187
+ - Korean utilities (초성 검색, 사업자등록번호)
188
+ - Object/Array utilities (getByPath, setByPath, groupBy, sortBy, deepMerge)
189
+ - String utilities (extractNumbers, maskString, getFileExtension)
190
+ - Date utilities (dateDiff)
191
+ - Async utilities (retry with backoff)
192
+ - 50개 테스트 케이스 (79.67% 커버리지)
193
+
194
+ ## 다음 배포 시
195
+
196
+ 1. 변경사항을 커밋
197
+ 2. `npm version [patch|minor|major]` 선택
198
+ 3. `npm publish` 실행
199
+ 4. 완료! 🚀
200
+
201
+ ---
202
+
203
+ **참고**: 배포 전 항상 로컬에서 `npm test && npm run build`를 실행하여 문제가 없는지 확인하세요.