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.
- package/.claude/commands/tm/add-dependency.md +58 -0
- package/.claude/commands/tm/add-subtask.md +79 -0
- package/.claude/commands/tm/add-task.md +81 -0
- package/.claude/commands/tm/analyze-complexity.md +124 -0
- package/.claude/commands/tm/analyze-project.md +100 -0
- package/.claude/commands/tm/auto-implement-tasks.md +100 -0
- package/.claude/commands/tm/command-pipeline.md +80 -0
- package/.claude/commands/tm/complexity-report.md +120 -0
- package/.claude/commands/tm/convert-task-to-subtask.md +74 -0
- package/.claude/commands/tm/expand-all-tasks.md +52 -0
- package/.claude/commands/tm/expand-task.md +52 -0
- package/.claude/commands/tm/fix-dependencies.md +82 -0
- package/.claude/commands/tm/help.md +101 -0
- package/.claude/commands/tm/init-project-quick.md +49 -0
- package/.claude/commands/tm/init-project.md +53 -0
- package/.claude/commands/tm/install-taskmaster.md +118 -0
- package/.claude/commands/tm/learn.md +106 -0
- package/.claude/commands/tm/list-tasks-by-status.md +42 -0
- package/.claude/commands/tm/list-tasks-with-subtasks.md +30 -0
- package/.claude/commands/tm/list-tasks.md +46 -0
- package/.claude/commands/tm/next-task.md +69 -0
- package/.claude/commands/tm/parse-prd-with-research.md +51 -0
- package/.claude/commands/tm/parse-prd.md +52 -0
- package/.claude/commands/tm/project-status.md +67 -0
- package/.claude/commands/tm/quick-install-taskmaster.md +23 -0
- package/.claude/commands/tm/remove-all-subtasks.md +94 -0
- package/.claude/commands/tm/remove-dependency.md +65 -0
- package/.claude/commands/tm/remove-subtask.md +87 -0
- package/.claude/commands/tm/remove-subtasks.md +89 -0
- package/.claude/commands/tm/remove-task.md +110 -0
- package/.claude/commands/tm/setup-models.md +52 -0
- package/.claude/commands/tm/show-task.md +85 -0
- package/.claude/commands/tm/smart-workflow.md +58 -0
- package/.claude/commands/tm/sync-readme.md +120 -0
- package/.claude/commands/tm/tm-main.md +147 -0
- package/.claude/commands/tm/to-cancelled.md +58 -0
- package/.claude/commands/tm/to-deferred.md +50 -0
- package/.claude/commands/tm/to-done.md +47 -0
- package/.claude/commands/tm/to-in-progress.md +39 -0
- package/.claude/commands/tm/to-pending.md +35 -0
- package/.claude/commands/tm/to-review.md +43 -0
- package/.claude/commands/tm/update-single-task.md +122 -0
- package/.claude/commands/tm/update-task.md +75 -0
- package/.claude/commands/tm/update-tasks-from-id.md +111 -0
- package/.claude/commands/tm/validate-dependencies.md +72 -0
- package/.claude/commands/tm/view-models.md +52 -0
- package/.claude/settings.local.json +17 -3
- package/.cursor/commands/tm/add-dependency.md +55 -0
- package/.cursor/commands/tm/add-subtask.md +76 -0
- package/.cursor/commands/tm/add-task.md +78 -0
- package/.cursor/commands/tm/analyze-complexity.md +121 -0
- package/.cursor/commands/tm/analyze-project.md +97 -0
- package/.cursor/commands/tm/auto-implement-tasks.md +97 -0
- package/.cursor/commands/tm/command-pipeline.md +77 -0
- package/.cursor/commands/tm/complexity-report.md +117 -0
- package/.cursor/commands/tm/convert-task-to-subtask.md +71 -0
- package/.cursor/commands/tm/expand-all-tasks.md +51 -0
- package/.cursor/commands/tm/expand-task.md +49 -0
- package/.cursor/commands/tm/fix-dependencies.md +81 -0
- package/.cursor/commands/tm/help.md +98 -0
- package/.cursor/commands/tm/init-project-quick.md +46 -0
- package/.cursor/commands/tm/init-project.md +50 -0
- package/.cursor/commands/tm/install-taskmaster.md +117 -0
- package/.cursor/commands/tm/learn.md +103 -0
- package/.cursor/commands/tm/list-tasks-by-status.md +39 -0
- package/.cursor/commands/tm/list-tasks-with-subtasks.md +29 -0
- package/.cursor/commands/tm/list-tasks.md +43 -0
- package/.cursor/commands/tm/next-task.md +66 -0
- package/.cursor/commands/tm/parse-prd-with-research.md +48 -0
- package/.cursor/commands/tm/parse-prd.md +49 -0
- package/.cursor/commands/tm/project-status.md +64 -0
- package/.cursor/commands/tm/quick-install-taskmaster.md +22 -0
- package/.cursor/commands/tm/remove-all-subtasks.md +93 -0
- package/.cursor/commands/tm/remove-dependency.md +62 -0
- package/.cursor/commands/tm/remove-subtask.md +84 -0
- package/.cursor/commands/tm/remove-subtasks.md +86 -0
- package/.cursor/commands/tm/remove-task.md +107 -0
- package/.cursor/commands/tm/setup-models.md +51 -0
- package/.cursor/commands/tm/show-task.md +82 -0
- package/.cursor/commands/tm/smart-workflow.md +55 -0
- package/.cursor/commands/tm/sync-readme.md +117 -0
- package/.cursor/commands/tm/tm-main.md +146 -0
- package/.cursor/commands/tm/to-cancelled.md +55 -0
- package/.cursor/commands/tm/to-deferred.md +47 -0
- package/.cursor/commands/tm/to-done.md +44 -0
- package/.cursor/commands/tm/to-in-progress.md +36 -0
- package/.cursor/commands/tm/to-pending.md +32 -0
- package/.cursor/commands/tm/to-review.md +40 -0
- package/.cursor/commands/tm/update-single-task.md +119 -0
- package/.cursor/commands/tm/update-task.md +72 -0
- package/.cursor/commands/tm/update-tasks-from-id.md +108 -0
- package/.cursor/commands/tm/validate-dependencies.md +71 -0
- package/.cursor/commands/tm/view-models.md +51 -0
- package/.cursor/mcp.json +20 -0
- package/.cursor/rules/cursor_rules.mdc +53 -0
- package/.cursor/rules/self_improve.mdc +72 -0
- package/.cursor/rules/taskmaster/dev_workflow.mdc +424 -0
- package/.cursor/rules/taskmaster/taskmaster.mdc +573 -0
- package/.env.example +12 -0
- package/.gemini/commands/tm/add-dependency.toml +58 -0
- package/.gemini/commands/tm/add-subtask.toml +79 -0
- package/.gemini/commands/tm/add-task.toml +81 -0
- package/.gemini/commands/tm/analyze-complexity.toml +124 -0
- package/.gemini/commands/tm/analyze-project.toml +100 -0
- package/.gemini/commands/tm/auto-implement-tasks.toml +100 -0
- package/.gemini/commands/tm/command-pipeline.toml +80 -0
- package/.gemini/commands/tm/complexity-report.toml +120 -0
- package/.gemini/commands/tm/convert-task-to-subtask.toml +74 -0
- package/.gemini/commands/tm/expand-all-tasks.toml +54 -0
- package/.gemini/commands/tm/expand-task.toml +52 -0
- package/.gemini/commands/tm/fix-dependencies.toml +84 -0
- package/.gemini/commands/tm/help.toml +101 -0
- package/.gemini/commands/tm/init-project-quick.toml +49 -0
- package/.gemini/commands/tm/init-project.toml +53 -0
- package/.gemini/commands/tm/install-taskmaster.toml +120 -0
- package/.gemini/commands/tm/learn.toml +106 -0
- package/.gemini/commands/tm/list-tasks-by-status.toml +42 -0
- package/.gemini/commands/tm/list-tasks-with-subtasks.toml +32 -0
- package/.gemini/commands/tm/list-tasks.toml +46 -0
- package/.gemini/commands/tm/next-task.toml +69 -0
- package/.gemini/commands/tm/parse-prd-with-research.toml +51 -0
- package/.gemini/commands/tm/parse-prd.toml +52 -0
- package/.gemini/commands/tm/project-status.toml +67 -0
- package/.gemini/commands/tm/quick-install-taskmaster.toml +25 -0
- package/.gemini/commands/tm/remove-all-subtasks.toml +96 -0
- package/.gemini/commands/tm/remove-dependency.toml +65 -0
- package/.gemini/commands/tm/remove-subtask.toml +87 -0
- package/.gemini/commands/tm/remove-subtasks.toml +89 -0
- package/.gemini/commands/tm/remove-task.toml +110 -0
- package/.gemini/commands/tm/setup-models.toml +54 -0
- package/.gemini/commands/tm/show-task.toml +85 -0
- package/.gemini/commands/tm/smart-workflow.toml +58 -0
- package/.gemini/commands/tm/sync-readme.toml +120 -0
- package/.gemini/commands/tm/tm-main.toml +149 -0
- package/.gemini/commands/tm/to-cancelled.toml +58 -0
- package/.gemini/commands/tm/to-deferred.toml +50 -0
- package/.gemini/commands/tm/to-done.toml +47 -0
- package/.gemini/commands/tm/to-in-progress.toml +39 -0
- package/.gemini/commands/tm/to-pending.toml +35 -0
- package/.gemini/commands/tm/to-review.toml +43 -0
- package/.gemini/commands/tm/update-single-task.toml +122 -0
- package/.gemini/commands/tm/update-task.toml +75 -0
- package/.gemini/commands/tm/update-tasks-from-id.toml +111 -0
- package/.gemini/commands/tm/validate-dependencies.toml +74 -0
- package/.gemini/commands/tm/view-models.toml +54 -0
- package/.gemini/settings.json +20 -0
- package/.mcp.json +15 -0
- package/.taskmaster/CLAUDE.md +435 -0
- package/.taskmaster/config.json +44 -0
- package/.taskmaster/docs/prd.txt +584 -0
- package/.taskmaster/state.json +6 -0
- package/.taskmaster/tasks/tasks.json +304 -0
- package/.taskmaster/templates/example_prd.txt +47 -0
- package/.taskmaster/templates/example_prd_rpg.txt +511 -0
- package/CLAUDE.md +4 -138
- package/README.md +551 -0
- package/coverage/clover.xml +134 -22
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/index.html +21 -21
- package/coverage/lcov-report/index.js.html +854 -29
- package/coverage/lcov.info +246 -39
- package/internal-docs/CLAUDE.md +139 -0
- package/internal-docs/NPM_DEPLOYMENT_GUIDE.md +203 -0
- package/internal-docs/OBSIDIAN_PROJECT_PROMPT.md +302 -0
- package/lib/index.d.ts +88 -0
- package/lib/index.js +275 -0
- package/package.json +11 -3
- /package/{DEPLOYMENT.md → internal-docs/DEPLOYMENT.md} +0 -0
- /package/{TEST_RESULTS.md → internal-docs/TEST_RESULTS.md} +0 -0
- /package/{TEST_SIMULATION.md → internal-docs/TEST_SIMULATION.md} +0 -0
package/coverage/lcov.info
CHANGED
|
@@ -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
|
-
|
|
67
|
-
|
|
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:
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
175
|
-
DA:59,
|
|
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,
|
|
298
|
-
DA:373,
|
|
299
|
-
DA:374,
|
|
300
|
-
DA:375,
|
|
301
|
-
DA:376,
|
|
302
|
-
DA:377,
|
|
303
|
-
DA:378,
|
|
304
|
-
DA:379,
|
|
305
|
-
DA:381,
|
|
306
|
-
DA:382,
|
|
307
|
-
DA:383,
|
|
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:
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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,
|
|
432
|
-
BRDA:13,3,1,
|
|
433
|
-
BRDA:13,3,2,
|
|
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,
|
|
443
|
-
BRDA:22,8,1,
|
|
444
|
-
BRDA:22,8,2,
|
|
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,
|
|
506
|
-
BRDA:49,35,1,
|
|
507
|
-
BRDA:49,35,2,
|
|
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,
|
|
613
|
-
BRDA:373,87,1,
|
|
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
|
-
|
|
688
|
-
|
|
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 (< 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`를 실행하여 문제가 없는지 확인하세요.
|