kakaotalk-chat-analyzer 0.2.1 → 0.2.2
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/src/analysis.js +256 -2
- package/dist/src/analysis.js.map +1 -1
- package/dist/src/cli.js +4 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/report.js +390 -33
- package/dist/src/report.js.map +1 -1
- package/dist/src/types.d.ts +54 -0
- package/package.json +1 -1
package/dist/src/analysis.js
CHANGED
|
@@ -69,12 +69,19 @@ export function buildReportData(result, options) {
|
|
|
69
69
|
let messagesWithAttachments = 0;
|
|
70
70
|
let nightMessages = 0;
|
|
71
71
|
let emojiMessages = 0;
|
|
72
|
+
let weekendMessages = 0;
|
|
73
|
+
let questionMessages = 0;
|
|
74
|
+
let speakerSwitches = 0;
|
|
75
|
+
let monologueMessages = 0;
|
|
72
76
|
const gapsMs = [];
|
|
73
77
|
let prevMs = null;
|
|
74
78
|
let prevSender = null;
|
|
75
79
|
let runSender = null;
|
|
76
80
|
let runLen = 0;
|
|
77
81
|
for (const record of result.records) {
|
|
82
|
+
if (prevSender !== null && record.sender !== prevSender) {
|
|
83
|
+
speakerSwitches += 1;
|
|
84
|
+
}
|
|
78
85
|
const alias = aliases.get(record.sender) ?? "???";
|
|
79
86
|
const stat = getParticipantStat(senderStats, alias);
|
|
80
87
|
const messageLength = record.message.length;
|
|
@@ -84,6 +91,13 @@ export function buildReportData(result, options) {
|
|
|
84
91
|
if (/\p{Extended_Pictographic}/u.test(record.message)) {
|
|
85
92
|
emojiMessages += 1;
|
|
86
93
|
}
|
|
94
|
+
if (/\?|?/.test(record.message)) {
|
|
95
|
+
questionMessages += 1;
|
|
96
|
+
}
|
|
97
|
+
const wi = weekdayIndex(record.date);
|
|
98
|
+
if (wi === 0 || wi === 6) {
|
|
99
|
+
weekendMessages += 1;
|
|
100
|
+
}
|
|
87
101
|
if (NIGHT_HOURS.has(record.date.hour)) {
|
|
88
102
|
nightMessages += 1;
|
|
89
103
|
stat.nightMessages += 1;
|
|
@@ -96,6 +110,9 @@ export function buildReportData(result, options) {
|
|
|
96
110
|
prevMs = ms;
|
|
97
111
|
if (record.sender === prevSender) {
|
|
98
112
|
runLen += 1;
|
|
113
|
+
if (runLen >= 3) {
|
|
114
|
+
monologueMessages += 1;
|
|
115
|
+
}
|
|
99
116
|
}
|
|
100
117
|
else {
|
|
101
118
|
if (prevSender !== null && runSender !== null) {
|
|
@@ -129,7 +146,7 @@ export function buildReportData(result, options) {
|
|
|
129
146
|
increment(daily, dayKey);
|
|
130
147
|
increment(monthly, `${record.date.year}-${pad2(record.date.month)}`);
|
|
131
148
|
hourly[record.date.hour] = (hourly[record.date.hour] ?? 0) + 1;
|
|
132
|
-
weekdays[
|
|
149
|
+
weekdays[wi] = (weekdays[wi] ?? 0) + 1;
|
|
133
150
|
}
|
|
134
151
|
if (prevSender !== null && runSender !== null) {
|
|
135
152
|
const prevAlias = aliases.get(prevSender) ?? "???";
|
|
@@ -181,6 +198,88 @@ export function buildReportData(result, options) {
|
|
|
181
198
|
const nightSharePercent = total > 0 ? round((nightMessages / total) * 100, 1) : 0;
|
|
182
199
|
const activeDays = daily.size;
|
|
183
200
|
const messagesPerActiveDay = activeDays > 0 ? round(total / activeDays, 1) : 0;
|
|
201
|
+
const allMessageCounts = [...senderStats.values()].map((s) => s.messages).sort((a, b) => a - b);
|
|
202
|
+
const participantGini = computeGini(allMessageCounts);
|
|
203
|
+
const gapsSorted = gapsMs.length > 0 ? [...gapsMs].sort((a, b) => a - b) : [];
|
|
204
|
+
const replyGapP90Minutes = gapsSorted.length > 0 ? round(quantileSorted(gapsSorted, 0.9) / 60_000, 1) : null;
|
|
205
|
+
const maxSilenceBetweenActiveDays = maxSilenceGapDays(sortedDays);
|
|
206
|
+
const top3ParticipantSharePercent = computeTop3Share(senderStats, total);
|
|
207
|
+
const linkDomainEntropyBits = domainEntropyBits(domains);
|
|
208
|
+
const densityMessagesPerCalendarDay = computeDensityPerCalendarDay(result.records, total);
|
|
209
|
+
const weekendSharePercent = total > 0 ? round((weekendMessages / total) * 100, 1) : 0;
|
|
210
|
+
const questionLikeMessagesPer100 = total > 0 ? round((questionMessages / total) * 100, 2) : 0;
|
|
211
|
+
const speakerSwitchRatePer100 = total > 0 ? round((speakerSwitches / total) * 100, 2) : 0;
|
|
212
|
+
const daypartPercents = computeDaypartPercents(hourly, total);
|
|
213
|
+
const rhythmScore = computeRhythmScore({
|
|
214
|
+
gini: participantGini,
|
|
215
|
+
longestStreak,
|
|
216
|
+
density: densityMessagesPerCalendarDay,
|
|
217
|
+
});
|
|
218
|
+
const linksPer100 = total > 0 ? round((messagesWithLinks / total) * 100, 2) : 0;
|
|
219
|
+
const attachmentsPer100 = total > 0 ? round((messagesWithAttachments / total) * 100, 2) : 0;
|
|
220
|
+
const perParticipantMsgs = [...senderStats.values()].map((s) => s.messages);
|
|
221
|
+
const medianMessagesPerParticipant = perParticipantMsgs.length > 0
|
|
222
|
+
? round(medianSorted([...perParticipantMsgs].sort((a, b) => a - b)), 2)
|
|
223
|
+
: null;
|
|
224
|
+
let burstUnder1m = 0;
|
|
225
|
+
let gapOver60m = 0;
|
|
226
|
+
for (const g of gapsMs) {
|
|
227
|
+
if (g < 60_000)
|
|
228
|
+
burstUnder1m += 1;
|
|
229
|
+
if (g > 3_600_000)
|
|
230
|
+
gapOver60m += 1;
|
|
231
|
+
}
|
|
232
|
+
const burstGapUnder1mPercent = gapsMs.length > 0 ? round((burstUnder1m / gapsMs.length) * 100, 1) : null;
|
|
233
|
+
const gapOver60mPercent = gapsMs.length > 0 ? round((gapOver60m / gapsMs.length) * 100, 1) : null;
|
|
234
|
+
let activeHoursCount = 0;
|
|
235
|
+
for (let h = 0; h < 24; h += 1) {
|
|
236
|
+
if ((hourly[h] ?? 0) > 0)
|
|
237
|
+
activeHoursCount += 1;
|
|
238
|
+
}
|
|
239
|
+
let keywordTokenSum = 0;
|
|
240
|
+
let keywordTopCount = 0;
|
|
241
|
+
for (const c of keywords.values()) {
|
|
242
|
+
keywordTokenSum += c;
|
|
243
|
+
keywordTopCount = Math.max(keywordTopCount, c);
|
|
244
|
+
}
|
|
245
|
+
const keywordTop1SharePercent = keywordTokenSum > 0 ? round((keywordTopCount / keywordTokenSum) * 100, 1) : null;
|
|
246
|
+
let attachmentMarkerSum = 0;
|
|
247
|
+
for (const c of attachments.values())
|
|
248
|
+
attachmentMarkerSum += c;
|
|
249
|
+
const photoMarkerCount = attachments.get("사진") ?? 0;
|
|
250
|
+
const photoShareOfAllAttachmentMarkers = attachmentMarkerSum > 0 ? round((photoMarkerCount / attachmentMarkerSum) * 100, 1) : null;
|
|
251
|
+
let maxDayMessages = 0;
|
|
252
|
+
for (const c of daily.values())
|
|
253
|
+
maxDayMessages = Math.max(maxDayMessages, c);
|
|
254
|
+
const peakDaySharePercent = total > 0 ? round((maxDayMessages / total) * 100, 1) : 0;
|
|
255
|
+
const uniqueDomainCount = domains.size;
|
|
256
|
+
const replyGapCoeffVariation = gapCoeffVariation(gapsMs);
|
|
257
|
+
const monologueMessagesPercent = total > 0 ? round((monologueMessages / total) * 100, 1) : 0;
|
|
258
|
+
const insights = {
|
|
259
|
+
weekendSharePercent,
|
|
260
|
+
participantGini,
|
|
261
|
+
replyGapP90Minutes,
|
|
262
|
+
maxSilenceBetweenActiveDays,
|
|
263
|
+
top3ParticipantSharePercent,
|
|
264
|
+
linkDomainEntropyBits,
|
|
265
|
+
densityMessagesPerCalendarDay,
|
|
266
|
+
questionLikeMessagesPer100,
|
|
267
|
+
speakerSwitchRatePer100,
|
|
268
|
+
rhythmScore,
|
|
269
|
+
daypartPercents,
|
|
270
|
+
linksPer100,
|
|
271
|
+
attachmentsPer100,
|
|
272
|
+
medianMessagesPerParticipant,
|
|
273
|
+
burstGapUnder1mPercent,
|
|
274
|
+
gapOver60mPercent,
|
|
275
|
+
activeHoursCount,
|
|
276
|
+
keywordTop1SharePercent,
|
|
277
|
+
photoShareOfAllAttachmentMarkers,
|
|
278
|
+
monologueMessagesPercent,
|
|
279
|
+
peakDaySharePercent,
|
|
280
|
+
uniqueDomainCount,
|
|
281
|
+
replyGapCoeffVariation,
|
|
282
|
+
};
|
|
184
283
|
const highlights = buildHighlights({
|
|
185
284
|
total,
|
|
186
285
|
topAlias: participantStats[0]?.alias ?? null,
|
|
@@ -192,6 +291,13 @@ export function buildReportData(result, options) {
|
|
|
192
291
|
longestStreak,
|
|
193
292
|
emojiMessages,
|
|
194
293
|
messagesWithAttachments,
|
|
294
|
+
weekendSharePercent,
|
|
295
|
+
participantGini,
|
|
296
|
+
replyGapP90Minutes,
|
|
297
|
+
maxSilenceBetweenActiveDays,
|
|
298
|
+
rhythmScore,
|
|
299
|
+
burstGapUnder1mPercent,
|
|
300
|
+
monologueMessagesPercent,
|
|
195
301
|
});
|
|
196
302
|
return {
|
|
197
303
|
generatedAt: new Date().toISOString(),
|
|
@@ -219,6 +325,7 @@ export function buildReportData(result, options) {
|
|
|
219
325
|
nightSharePercent,
|
|
220
326
|
emojiMessages,
|
|
221
327
|
},
|
|
328
|
+
insights,
|
|
222
329
|
participants: participantStats,
|
|
223
330
|
daily: [...daily.entries()].map(([date, count]) => ({ date, count })).sort((a, b) => a.date.localeCompare(b.date)),
|
|
224
331
|
hourly,
|
|
@@ -375,6 +482,132 @@ function longestDateStreak(sortedYmd) {
|
|
|
375
482
|
}
|
|
376
483
|
return best;
|
|
377
484
|
}
|
|
485
|
+
function computeGini(counts) {
|
|
486
|
+
if (counts.length === 0)
|
|
487
|
+
return null;
|
|
488
|
+
const sorted = [...counts].sort((a, b) => a - b);
|
|
489
|
+
const n = sorted.length;
|
|
490
|
+
let sum = 0;
|
|
491
|
+
for (const x of sorted)
|
|
492
|
+
sum += x;
|
|
493
|
+
if (sum === 0)
|
|
494
|
+
return null;
|
|
495
|
+
let num = 0;
|
|
496
|
+
for (let i = 0; i < n; i += 1) {
|
|
497
|
+
num += (2 * i - n + 1) * sorted[i];
|
|
498
|
+
}
|
|
499
|
+
return round(num / (n * sum), 3);
|
|
500
|
+
}
|
|
501
|
+
function quantileSorted(sortedAsc, p) {
|
|
502
|
+
if (sortedAsc.length === 0)
|
|
503
|
+
return 0;
|
|
504
|
+
const pos = (sortedAsc.length - 1) * p;
|
|
505
|
+
const lo = Math.floor(pos);
|
|
506
|
+
const hi = Math.ceil(pos);
|
|
507
|
+
if (lo === hi)
|
|
508
|
+
return sortedAsc[lo];
|
|
509
|
+
const w = pos - lo;
|
|
510
|
+
return sortedAsc[lo] * (1 - w) + sortedAsc[hi] * w;
|
|
511
|
+
}
|
|
512
|
+
function gapCoeffVariation(gaps) {
|
|
513
|
+
if (gaps.length < 2)
|
|
514
|
+
return null;
|
|
515
|
+
let sum = 0;
|
|
516
|
+
for (const g of gaps)
|
|
517
|
+
sum += g;
|
|
518
|
+
const mean = sum / gaps.length;
|
|
519
|
+
if (mean <= 0)
|
|
520
|
+
return null;
|
|
521
|
+
let varAcc = 0;
|
|
522
|
+
for (const g of gaps) {
|
|
523
|
+
const d = g - mean;
|
|
524
|
+
varAcc += d * d;
|
|
525
|
+
}
|
|
526
|
+
const variance = varAcc / gaps.length;
|
|
527
|
+
const sd = Math.sqrt(variance);
|
|
528
|
+
return round(sd / mean, 2);
|
|
529
|
+
}
|
|
530
|
+
function maxSilenceGapDays(sortedYmd) {
|
|
531
|
+
if (sortedYmd.length < 2)
|
|
532
|
+
return null;
|
|
533
|
+
let best = 0;
|
|
534
|
+
for (let i = 1; i < sortedYmd.length; i += 1) {
|
|
535
|
+
const a = new Date(`${sortedYmd[i - 1]}T12:00:00Z`).getTime();
|
|
536
|
+
const b = new Date(`${sortedYmd[i]}T12:00:00Z`).getTime();
|
|
537
|
+
const diffDays = Math.round((b - a) / 86_400_000);
|
|
538
|
+
best = Math.max(best, Math.max(0, diffDays - 1));
|
|
539
|
+
}
|
|
540
|
+
return best;
|
|
541
|
+
}
|
|
542
|
+
function computeTop3Share(stats, total) {
|
|
543
|
+
if (total === 0)
|
|
544
|
+
return 0;
|
|
545
|
+
const top3 = [...stats.values()]
|
|
546
|
+
.map((s) => s.messages)
|
|
547
|
+
.sort((a, b) => b - a)
|
|
548
|
+
.slice(0, 3)
|
|
549
|
+
.reduce((a, c) => a + c, 0);
|
|
550
|
+
return round((top3 / total) * 100, 1);
|
|
551
|
+
}
|
|
552
|
+
function domainEntropyBits(domains) {
|
|
553
|
+
let sum = 0;
|
|
554
|
+
for (const c of domains.values())
|
|
555
|
+
sum += c;
|
|
556
|
+
if (sum === 0)
|
|
557
|
+
return null;
|
|
558
|
+
let h = 0;
|
|
559
|
+
for (const c of domains.values()) {
|
|
560
|
+
if (c <= 0)
|
|
561
|
+
continue;
|
|
562
|
+
const p = c / sum;
|
|
563
|
+
h -= p * Math.log2(p);
|
|
564
|
+
}
|
|
565
|
+
return round(h, 2);
|
|
566
|
+
}
|
|
567
|
+
function computeDensityPerCalendarDay(records, total) {
|
|
568
|
+
if (total === 0 || records.length === 0)
|
|
569
|
+
return null;
|
|
570
|
+
const first = records[0].date;
|
|
571
|
+
const last = records[records.length - 1].date;
|
|
572
|
+
const spanDays = Math.max(1, Math.floor((partsToUtcMs(last) - partsToUtcMs(first)) / 86_400_000) + 1);
|
|
573
|
+
return round(total / spanDays, 2);
|
|
574
|
+
}
|
|
575
|
+
function computeDaypartPercents(hourly, total) {
|
|
576
|
+
const bands = [
|
|
577
|
+
{ key: "dawn", label: "새벽(0~5시)", lo: 0, hi: 5 },
|
|
578
|
+
{ key: "morning", label: "오전(6~11시)", lo: 6, hi: 11 },
|
|
579
|
+
{ key: "afternoon", label: "오후(12~17시)", lo: 12, hi: 17 },
|
|
580
|
+
{ key: "evening", label: "저녁(18~23시)", lo: 18, hi: 23 },
|
|
581
|
+
];
|
|
582
|
+
if (total === 0) {
|
|
583
|
+
return bands.map((b) => ({ key: b.key, label: b.label, percent: 0 }));
|
|
584
|
+
}
|
|
585
|
+
const raw = bands.map((b) => {
|
|
586
|
+
let c = 0;
|
|
587
|
+
for (let h = b.lo; h <= b.hi; h += 1)
|
|
588
|
+
c += hourly[h] ?? 0;
|
|
589
|
+
return { key: b.key, label: b.label, count: c };
|
|
590
|
+
});
|
|
591
|
+
const sum = raw.reduce((a, x) => a + x.count, 0) || 1;
|
|
592
|
+
let rounded = raw.map((x) => ({
|
|
593
|
+
key: x.key,
|
|
594
|
+
label: x.label,
|
|
595
|
+
percent: round((x.count / sum) * 100, 1),
|
|
596
|
+
}));
|
|
597
|
+
const drift = 100 - rounded.reduce((a, x) => a + x.percent, 0);
|
|
598
|
+
if (Math.abs(drift) >= 0.05 && rounded.length > 0) {
|
|
599
|
+
const idx = rounded.reduce((best, x, i, arr) => (x.percent >= arr[best].percent ? i : best), 0);
|
|
600
|
+
rounded = rounded.map((x, i) => i === idx ? { ...x, percent: round(x.percent + drift, 1) } : x);
|
|
601
|
+
}
|
|
602
|
+
return rounded;
|
|
603
|
+
}
|
|
604
|
+
function computeRhythmScore(input) {
|
|
605
|
+
const g = input.gini ?? 0.45;
|
|
606
|
+
const streakN = Math.min(1, input.longestStreak / 28);
|
|
607
|
+
const densityN = input.density != null ? Math.min(1, input.density / 40) : 0.25;
|
|
608
|
+
const score = 48 * (1 - Math.min(0.95, g)) + 32 * streakN + 20 * densityN;
|
|
609
|
+
return Math.max(0, Math.min(100, Math.round(score)));
|
|
610
|
+
}
|
|
378
611
|
function buildHighlights(input) {
|
|
379
612
|
const out = [];
|
|
380
613
|
if (input.topAlias && input.topShare !== null && input.total > 0) {
|
|
@@ -401,6 +634,27 @@ function buildHighlights(input) {
|
|
|
401
634
|
if (input.messagesWithAttachments > 0) {
|
|
402
635
|
out.push(`사진·파일·동영상 등 첨부가 들어간 메시지는 **${input.messagesWithAttachments}**건입니다.`);
|
|
403
636
|
}
|
|
404
|
-
|
|
637
|
+
if (input.total > 0 && input.weekendSharePercent > 0) {
|
|
638
|
+
out.push(`주말(토·일) 메시지 비중은 **${input.weekendSharePercent}%**예요.`);
|
|
639
|
+
}
|
|
640
|
+
if (input.participantGini !== null && input.participantGini >= 0.35) {
|
|
641
|
+
out.push(`참여도는 소수에게 조금 몰린 편이에요(Gini **${input.participantGini}** 근처).`);
|
|
642
|
+
}
|
|
643
|
+
if (input.replyGapP90Minutes !== null && input.replyGapP90Minutes >= 30) {
|
|
644
|
+
out.push(`가끔 긴 침묵도 있어요 — 응답 간격 **상위 10%**가 약 **${input.replyGapP90Minutes}분** 이상입니다.`);
|
|
645
|
+
}
|
|
646
|
+
if (input.maxSilenceBetweenActiveDays !== null && input.maxSilenceBetweenActiveDays >= 7) {
|
|
647
|
+
out.push(`활동일 사이 최대 **${input.maxSilenceBetweenActiveDays}일** 동안은 메시지가 끊긴 구간이 있었어요.`);
|
|
648
|
+
}
|
|
649
|
+
if (input.rhythmScore >= 65) {
|
|
650
|
+
out.push(`종합 **리듬 점수**는 **${input.rhythmScore}/100** — 꾸준하고 균형 잡힌 페이스에 가깝습니다.`);
|
|
651
|
+
}
|
|
652
|
+
if (input.burstGapUnder1mPercent !== null && input.burstGapUnder1mPercent >= 40) {
|
|
653
|
+
out.push(`응답 간격의 **${input.burstGapUnder1mPercent}%**가 1분 이내로, 실시간 대화 톤이 강해요.`);
|
|
654
|
+
}
|
|
655
|
+
if (input.monologueMessagesPercent >= 25) {
|
|
656
|
+
out.push(`같은 사람 **3연속 이상** 메시지가 전체의 **${input.monologueMessagesPercent}%** — 긴 설명·정리 구간이 잦을 수 있어요.`);
|
|
657
|
+
}
|
|
658
|
+
return out.slice(0, 12);
|
|
405
659
|
}
|
|
406
660
|
//# sourceMappingURL=analysis.js.map
|
package/dist/src/analysis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.js
CHANGED
|
@@ -19,9 +19,10 @@ program.addHelpText("after", `
|
|
|
19
19
|
kca <보내기.csv> --local 업로드 없이 로컬에만 저장 (-o 로 폴더 지정)
|
|
20
20
|
kca <보내기.csv> --dry-run 업로드 생략(미리 생성만)
|
|
21
21
|
|
|
22
|
-
npx
|
|
23
|
-
npx
|
|
24
|
-
npx
|
|
22
|
+
npx 예시 (짧은 이름):
|
|
23
|
+
npx kcachat@latest <보내기.csv> --local
|
|
24
|
+
npx kcachat@latest <보내기.csv>
|
|
25
|
+
(전체 패키지명: npx kakaotalk-chat-analyzer@latest … 동일)
|
|
25
26
|
`);
|
|
26
27
|
const main = program.command("default", { isDefault: true, hidden: true });
|
|
27
28
|
main
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/F,OAAO,CAAC,WAAW,CACjB,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/report.js
CHANGED
|
@@ -5,10 +5,11 @@ export function renderReportHtml(data) {
|
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="utf-8">
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<meta name="color-scheme" content="light dark">
|
|
8
9
|
<title>카카오톡 대화 리포트 · kca</title>
|
|
9
10
|
<style>
|
|
10
11
|
:root {
|
|
11
|
-
color-scheme: light;
|
|
12
|
+
color-scheme: light dark;
|
|
12
13
|
--bg: #f4f1ea;
|
|
13
14
|
--bg2: #e8e2d6;
|
|
14
15
|
--ink: #141a1f;
|
|
@@ -19,36 +20,110 @@ export function renderReportHtml(data) {
|
|
|
19
20
|
--accent2: #c45c2a;
|
|
20
21
|
--gold: #b8860b;
|
|
21
22
|
--shadow: 0 18px 50px rgba(20, 26, 31, 0.08);
|
|
23
|
+
--bar-bg: #e5dfd4;
|
|
24
|
+
--glow: rgba(15, 107, 92, 0.18);
|
|
22
25
|
font-family: "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", ui-sans-serif, system-ui, sans-serif;
|
|
23
26
|
}
|
|
27
|
+
@media (prefers-color-scheme: dark) {
|
|
28
|
+
:root:not([data-theme="light"]) {
|
|
29
|
+
--bg: #070a0e;
|
|
30
|
+
--bg2: #0e1218;
|
|
31
|
+
--ink: #e9eef5;
|
|
32
|
+
--muted: #8b98a8;
|
|
33
|
+
--line: rgba(255, 255, 255, 0.1);
|
|
34
|
+
--panel: rgba(255, 255, 255, 0.045);
|
|
35
|
+
--accent: #3ee8c5;
|
|
36
|
+
--accent2: #ff9f43;
|
|
37
|
+
--gold: #fbbf24;
|
|
38
|
+
--shadow: 0 28px 90px rgba(0, 0, 0, 0.55);
|
|
39
|
+
--bar-bg: rgba(255, 255, 255, 0.08);
|
|
40
|
+
--glow: rgba(62, 232, 197, 0.15);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
:root[data-theme="dark"] {
|
|
44
|
+
--bg: #070a0e;
|
|
45
|
+
--bg2: #0e1218;
|
|
46
|
+
--ink: #e9eef5;
|
|
47
|
+
--muted: #8b98a8;
|
|
48
|
+
--line: rgba(255, 255, 255, 0.1);
|
|
49
|
+
--panel: rgba(255, 255, 255, 0.045);
|
|
50
|
+
--accent: #3ee8c5;
|
|
51
|
+
--accent2: #ff9f43;
|
|
52
|
+
--gold: #fbbf24;
|
|
53
|
+
--shadow: 0 28px 90px rgba(0, 0, 0, 0.55);
|
|
54
|
+
--bar-bg: rgba(255, 255, 255, 0.08);
|
|
55
|
+
--glow: rgba(62, 232, 197, 0.15);
|
|
56
|
+
}
|
|
57
|
+
:root[data-theme="light"] {
|
|
58
|
+
--bg: #f4f1ea;
|
|
59
|
+
--bg2: #e8e2d6;
|
|
60
|
+
--ink: #141a1f;
|
|
61
|
+
--muted: #5c6670;
|
|
62
|
+
--line: #d4cdc2;
|
|
63
|
+
--panel: #fffcf7;
|
|
64
|
+
--accent: #0f6b5c;
|
|
65
|
+
--accent2: #c45c2a;
|
|
66
|
+
--gold: #b8860b;
|
|
67
|
+
--shadow: 0 18px 50px rgba(20, 26, 31, 0.08);
|
|
68
|
+
--bar-bg: #e5dfd4;
|
|
69
|
+
--glow: rgba(15, 107, 92, 0.18);
|
|
70
|
+
}
|
|
24
71
|
* { box-sizing: border-box; }
|
|
25
|
-
body {
|
|
72
|
+
body {
|
|
73
|
+
margin: 0;
|
|
74
|
+
background:
|
|
75
|
+
radial-gradient(1000px 520px at 12% -8%, var(--glow), transparent 55%),
|
|
76
|
+
radial-gradient(800px 420px at 92% 0%, rgba(196, 92, 42, 0.12), transparent 45%),
|
|
77
|
+
linear-gradient(180deg, var(--bg), var(--bg2));
|
|
78
|
+
color: var(--ink);
|
|
79
|
+
transition: background 0.28s ease, color 0.2s ease;
|
|
80
|
+
}
|
|
26
81
|
main { width: min(1200px, calc(100% - 36px)); margin: 0 auto; padding: 36px 0 56px; }
|
|
82
|
+
.toolbar {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-wrap: wrap;
|
|
85
|
+
align-items: center;
|
|
86
|
+
gap: 10px;
|
|
87
|
+
margin-bottom: 18px;
|
|
88
|
+
padding: 10px 14px;
|
|
89
|
+
border-radius: 12px;
|
|
90
|
+
border: 1px solid var(--line);
|
|
91
|
+
background: var(--panel);
|
|
92
|
+
box-shadow: var(--shadow);
|
|
93
|
+
}
|
|
94
|
+
.toolbar-label { font-size: 12px; font-weight: 700; color: var(--muted); margin-right: 4px; }
|
|
95
|
+
.theme-btn {
|
|
96
|
+
font: inherit;
|
|
97
|
+
font-size: 12px;
|
|
98
|
+
font-weight: 650;
|
|
99
|
+
padding: 7px 12px;
|
|
100
|
+
border-radius: 999px;
|
|
101
|
+
border: 1px solid var(--line);
|
|
102
|
+
background: transparent;
|
|
103
|
+
color: var(--ink);
|
|
104
|
+
cursor: pointer;
|
|
105
|
+
}
|
|
106
|
+
.theme-btn:hover { border-color: var(--accent); color: var(--accent); }
|
|
27
107
|
.hero { display: grid; gap: 20px; grid-template-columns: 1.35fr 1fr; align-items: stretch; padding-bottom: 28px; }
|
|
28
108
|
h1 { margin: 0; font-size: clamp(28px, 4.2vw, 48px); line-height: 1.08; letter-spacing: -0.03em; font-weight: 800; }
|
|
29
109
|
.sub { margin: 12px 0 0; color: var(--muted); line-height: 1.65; font-size: 15px; max-width: 52ch; }
|
|
30
110
|
.badge-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
|
|
31
|
-
.badge { font-size: 12px; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--line); background:
|
|
111
|
+
.badge { font-size: 12px; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel); color: var(--muted); }
|
|
32
112
|
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; box-shadow: var(--shadow); }
|
|
33
113
|
.side-card { display: flex; flex-direction: column; gap: 10px; justify-content: center; }
|
|
34
114
|
.side-card p { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.5; }
|
|
35
115
|
.side-card strong { color: var(--ink); }
|
|
36
116
|
h2 { margin: 0 0 12px; font-size: 17px; font-weight: 750; letter-spacing: -0.02em; }
|
|
37
117
|
.grid { display: grid; gap: 14px; }
|
|
38
|
-
.metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
39
|
-
.metrics6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
40
118
|
.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
41
119
|
.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
42
|
-
.metric .label { display: block; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
|
|
43
|
-
.metric .value { font-size: 26px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
|
|
44
|
-
.metric .sub { display: block; color: var(--muted); font-size: 11px; margin-top: 6px; }
|
|
45
120
|
.highlights { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
|
|
46
121
|
.highlights li { padding: 12px 14px; border-radius: 10px; background: linear-gradient(120deg, rgba(15,107,92,0.08), rgba(196,92,42,0.06)); border: 1px solid rgba(15,107,92,0.15); font-size: 14px; line-height: 1.55; }
|
|
47
122
|
.highlights strong { color: var(--accent); font-weight: 750; }
|
|
48
123
|
.bars { display: grid; gap: 8px; }
|
|
49
124
|
.bar-row { display: grid; grid-template-columns: minmax(72px, 1fr) minmax(0, 2.2fr) 52px; gap: 10px; align-items: center; min-height: 22px; }
|
|
50
125
|
.bar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
|
|
51
|
-
.bar-track { height: 9px; background:
|
|
126
|
+
.bar-track { height: 9px; background: var(--bar-bg); border-radius: 999px; overflow: hidden; }
|
|
52
127
|
.bar-fill {
|
|
53
128
|
display: block;
|
|
54
129
|
height: 100%;
|
|
@@ -78,7 +153,7 @@ export function renderReportHtml(data) {
|
|
|
78
153
|
min-height: 46px;
|
|
79
154
|
padding: 4px 3px;
|
|
80
155
|
font-weight: 650;
|
|
81
|
-
border: 1px solid
|
|
156
|
+
border: 1px solid var(--line);
|
|
82
157
|
}
|
|
83
158
|
.day-k { font-size: 10px; line-height: 1.15; font-weight: 750; letter-spacing: -0.02em; }
|
|
84
159
|
.day-n { font-size: 12px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; }
|
|
@@ -122,17 +197,17 @@ export function renderReportHtml(data) {
|
|
|
122
197
|
.self-serve p { margin: 0 0 8px; }
|
|
123
198
|
.self-serve ol { margin: 0 0 10px; padding-left: 1.25rem; }
|
|
124
199
|
.self-serve li { margin: 4px 0; }
|
|
125
|
-
.self-serve code { font-size: 11.5px; background:
|
|
200
|
+
.self-serve code { font-size: 11.5px; background: var(--bar-bg); padding: 1px 5px; border-radius: 4px; color: var(--ink); }
|
|
126
201
|
.self-serve .cmd {
|
|
127
202
|
margin: 10px 0 12px;
|
|
128
203
|
padding: 11px 13px;
|
|
129
204
|
border-radius: 8px;
|
|
130
|
-
background:
|
|
205
|
+
background: var(--bar-bg);
|
|
131
206
|
border: 1px solid var(--line);
|
|
132
207
|
font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
|
|
133
208
|
font-size: 12px;
|
|
134
209
|
line-height: 1.45;
|
|
135
|
-
color:
|
|
210
|
+
color: var(--ink);
|
|
136
211
|
overflow-x: auto;
|
|
137
212
|
white-space: pre-wrap;
|
|
138
213
|
overflow-wrap: anywhere;
|
|
@@ -140,19 +215,150 @@ export function renderReportHtml(data) {
|
|
|
140
215
|
}
|
|
141
216
|
.self-serve .links { margin: 10px 0 0; font-size: 12px; }
|
|
142
217
|
.self-serve .links a { font-weight: 650; }
|
|
218
|
+
.insight-hero { position: relative; overflow: hidden; }
|
|
219
|
+
.insight-hero::before {
|
|
220
|
+
content: "";
|
|
221
|
+
position: absolute;
|
|
222
|
+
inset: -40% 40% auto -20%;
|
|
223
|
+
height: 120%;
|
|
224
|
+
background: radial-gradient(closest-side, var(--glow), transparent 70%);
|
|
225
|
+
pointer-events: none;
|
|
226
|
+
}
|
|
227
|
+
.insight-head { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; align-items: flex-start; position: relative; z-index: 1; }
|
|
228
|
+
.insight-lede { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.65; max-width: 62ch; }
|
|
229
|
+
.insight-grid {
|
|
230
|
+
display: grid;
|
|
231
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
232
|
+
gap: 10px;
|
|
233
|
+
margin-top: 18px;
|
|
234
|
+
position: relative;
|
|
235
|
+
z-index: 1;
|
|
236
|
+
}
|
|
237
|
+
@media (min-width: 1080px) {
|
|
238
|
+
.insight-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
|
239
|
+
}
|
|
240
|
+
@media (max-width: 720px) { .insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
|
241
|
+
.ins-metric {
|
|
242
|
+
padding: 12px 14px;
|
|
243
|
+
border-radius: 12px;
|
|
244
|
+
border: 1px solid var(--line);
|
|
245
|
+
background: linear-gradient(145deg, rgba(255,255,255,0.04), transparent);
|
|
246
|
+
}
|
|
247
|
+
.ins-m-label { display: block; font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; }
|
|
248
|
+
.ins-m-val { font-size: 22px; font-weight: 850; letter-spacing: -0.03em; line-height: 1.1; }
|
|
249
|
+
.ins-m-sub { display: block; font-size: 11px; color: var(--muted); margin-top: 6px; }
|
|
250
|
+
.insight-split { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 22px; position: relative; z-index: 1; }
|
|
251
|
+
@media (max-width: 900px) { .insight-split { grid-template-columns: 1fr; } }
|
|
252
|
+
.insight-sub { margin: 0 0 6px; font-size: 14px; font-weight: 750; color: var(--ink); }
|
|
253
|
+
.daypart-bar { display: flex; height: 14px; border-radius: 999px; overflow: hidden; border: 1px solid var(--line); }
|
|
254
|
+
.dp-seg { min-width: 2px; height: 100%; transition: opacity 0.2s; }
|
|
255
|
+
.dp-seg:hover { opacity: 0.85; }
|
|
256
|
+
.daypart-legend { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 16px; font-size: 12px; color: var(--muted); }
|
|
257
|
+
.daypart-legend li { display: flex; align-items: center; gap: 6px; }
|
|
258
|
+
.daypart-legend i { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
|
|
259
|
+
.rh-wrap { position: relative; width: 108px; height: 108px; flex-shrink: 0; }
|
|
260
|
+
.rh-ring {
|
|
261
|
+
width: 108px;
|
|
262
|
+
height: 108px;
|
|
263
|
+
border-radius: 50%;
|
|
264
|
+
background: conic-gradient(from -90deg, var(--accent) calc(var(--p) * 1%), var(--bar-bg) 0);
|
|
265
|
+
display: grid;
|
|
266
|
+
place-items: center;
|
|
267
|
+
box-shadow: 0 0 0 1px var(--line) inset;
|
|
268
|
+
}
|
|
269
|
+
.rh-ring span {
|
|
270
|
+
width: 74px;
|
|
271
|
+
height: 74px;
|
|
272
|
+
border-radius: 50%;
|
|
273
|
+
background: var(--panel);
|
|
274
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
|
|
275
|
+
border: 1px solid var(--line);
|
|
276
|
+
}
|
|
277
|
+
.rh-cap {
|
|
278
|
+
position: absolute;
|
|
279
|
+
inset: 0;
|
|
280
|
+
display: flex;
|
|
281
|
+
flex-direction: column;
|
|
282
|
+
align-items: center;
|
|
283
|
+
justify-content: center;
|
|
284
|
+
pointer-events: none;
|
|
285
|
+
font-size: 11px;
|
|
286
|
+
color: var(--muted);
|
|
287
|
+
font-weight: 700;
|
|
288
|
+
}
|
|
289
|
+
.rh-cap span { font-size: 22px; font-weight: 900; color: var(--ink); letter-spacing: -0.04em; }
|
|
290
|
+
.rh-cap small { font-size: 11px; font-weight: 700; color: var(--muted); margin-left: 1px; }
|
|
291
|
+
.sc-plot {
|
|
292
|
+
position: relative;
|
|
293
|
+
height: 200px;
|
|
294
|
+
border-radius: 12px;
|
|
295
|
+
border: 1px dashed var(--line);
|
|
296
|
+
background: linear-gradient(180deg, rgba(0,0,0,0.02), transparent);
|
|
297
|
+
margin-top: 4px;
|
|
298
|
+
}
|
|
299
|
+
.sc-dot {
|
|
300
|
+
position: absolute;
|
|
301
|
+
width: 12px;
|
|
302
|
+
height: 12px;
|
|
303
|
+
margin-left: -6px;
|
|
304
|
+
margin-top: -6px;
|
|
305
|
+
border-radius: 50%;
|
|
306
|
+
box-shadow: 0 0 0 2px var(--panel), 0 4px 12px rgba(0, 0, 0, 0.18);
|
|
307
|
+
cursor: default;
|
|
308
|
+
}
|
|
309
|
+
.sc-axis { position: absolute; font-size: 10px; color: var(--muted); font-weight: 650; }
|
|
310
|
+
.sc-x { right: 8px; bottom: 6px; }
|
|
311
|
+
.sc-y { left: 8px; top: 8px; }
|
|
312
|
+
.fact-card { margin-bottom: 14px; padding: 14px 16px; }
|
|
313
|
+
.fact-card h2 { margin: 0 0 6px; font-size: 15px; }
|
|
314
|
+
.fact-hint { margin: 0 0 10px; font-size: 11px; color: var(--muted); line-height: 1.45; }
|
|
315
|
+
.fact-grid {
|
|
316
|
+
display: grid;
|
|
317
|
+
grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
|
|
318
|
+
gap: 5px 7px;
|
|
319
|
+
}
|
|
320
|
+
.fact-cell {
|
|
321
|
+
padding: 5px 7px;
|
|
322
|
+
border-radius: 8px;
|
|
323
|
+
border: 1px solid var(--line);
|
|
324
|
+
background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), transparent);
|
|
325
|
+
min-height: 42px;
|
|
326
|
+
}
|
|
327
|
+
.fact-cell b {
|
|
328
|
+
display: block;
|
|
329
|
+
color: var(--muted);
|
|
330
|
+
font-size: 9px;
|
|
331
|
+
font-weight: 750;
|
|
332
|
+
letter-spacing: 0.03em;
|
|
333
|
+
line-height: 1.15;
|
|
334
|
+
margin-bottom: 2px;
|
|
335
|
+
}
|
|
336
|
+
.fact-cell span {
|
|
337
|
+
font-weight: 850;
|
|
338
|
+
font-size: 12.5px;
|
|
339
|
+
font-variant-numeric: tabular-nums;
|
|
340
|
+
letter-spacing: -0.02em;
|
|
341
|
+
}
|
|
143
342
|
footer { margin-top: 28px; color: var(--muted); font-size: 11px; line-height: 1.5; }
|
|
144
343
|
@media (max-width: 900px) {
|
|
145
|
-
.hero, .two, .three
|
|
344
|
+
.hero, .two, .three { grid-template-columns: 1fr; }
|
|
146
345
|
.hours-chart-inner { min-width: 480px; }
|
|
147
346
|
}
|
|
148
347
|
</style>
|
|
149
348
|
</head>
|
|
150
349
|
<body>
|
|
151
350
|
<main>
|
|
351
|
+
<div class="toolbar" role="toolbar" aria-label="표시 테마">
|
|
352
|
+
<span class="toolbar-label">테마</span>
|
|
353
|
+
<button type="button" class="theme-btn" data-theme-set="light">라이트</button>
|
|
354
|
+
<button type="button" class="theme-btn" data-theme-set="dark">다크</button>
|
|
355
|
+
<button type="button" class="theme-btn" data-theme-set="system">시스템</button>
|
|
356
|
+
</div>
|
|
357
|
+
${renderFactMatrix(data)}
|
|
152
358
|
<header class="hero">
|
|
153
359
|
<div>
|
|
154
360
|
<h1>카카오톡 대화 리포트</h1>
|
|
155
|
-
<p class="sub">원문 메시지·전체 URL은 저장하지 않습니다. 참여자는 <strong>부분 마스킹된 표시명</strong>으로만 보여요. 아래는
|
|
361
|
+
<p class="sub">원문 메시지·전체 URL은 저장하지 않습니다. 참여자는 <strong>부분 마스킹된 표시명</strong>으로만 보여요. 핵심 수치는 상단 <strong>팩트 매트릭스</strong>에 모았고, 아래는 차트·고급 인사이트입니다.</p>
|
|
156
362
|
<div class="badge-row">
|
|
157
363
|
<span class="badge">프라이버시: ${escapeHtml(privacyLabel(data.privacy))}</span>
|
|
158
364
|
<span class="badge">인코딩: ${escapeHtml(data.source.encoding)}</span>
|
|
@@ -170,21 +376,7 @@ export function renderReportHtml(data) {
|
|
|
170
376
|
? `<section class="card" style="margin-bottom:16px"><h2>하이라이트</h2><ul class="highlights">${data.highlights.map((h) => `<li>${renderHighlightLine(h)}</li>`).join("")}</ul></section>`
|
|
171
377
|
: ""}
|
|
172
378
|
|
|
173
|
-
|
|
174
|
-
${metric("총 메시지", formatNumber(data.summary.totalMessages), `활동일 ${formatNumber(data.summary.activeDays)}일`)}
|
|
175
|
-
${metric("참여자", formatNumber(data.summary.participants), "부분 마스킹 표시")}
|
|
176
|
-
${metric("평균 길이", `${data.summary.averageMessageLength}`, "글자 수 기준")}
|
|
177
|
-
${metric("URL 포함", formatNumber(data.summary.messagesWithLinks), "메시지 수")}
|
|
178
|
-
</section>
|
|
179
|
-
|
|
180
|
-
<section class="grid metrics6" style="margin-bottom:14px">
|
|
181
|
-
${metric("활동일당 평균", `${data.summary.messagesPerActiveDay}`, "메시지 / 활동일")}
|
|
182
|
-
${metric("최장 연속일", `${data.summary.longestActiveStreakDays}`, "메시지가 있었던 날 기준")}
|
|
183
|
-
${metric("심야 비중", `${data.summary.nightSharePercent}%`, "23~05시")}
|
|
184
|
-
${metric("응답 간격 중앙값", data.summary.medianReplyGapMinutes !== null ? `${data.summary.medianReplyGapMinutes}분` : "—", "연속 메시지 기준")}
|
|
185
|
-
${metric("피크 타임", data.summary.peakHour !== null ? `${data.summary.peakHour}시` : "—", "가장 붐빈 시각")}
|
|
186
|
-
${metric("이모지 느낌", formatNumber(data.summary.emojiMessages), "감지된 메시지")}
|
|
187
|
-
</section>
|
|
379
|
+
${renderInsightDeck(data)}
|
|
188
380
|
|
|
189
381
|
<section class="grid two" style="margin-bottom:14px">
|
|
190
382
|
${panel("일별 활동 히트맵", renderDaily(data.daily))}
|
|
@@ -208,6 +400,35 @@ export function renderReportHtml(data) {
|
|
|
208
400
|
|
|
209
401
|
${renderSelfServeCallout()}
|
|
210
402
|
|
|
403
|
+
<script>
|
|
404
|
+
(function () {
|
|
405
|
+
var KEY = "kca-report-theme";
|
|
406
|
+
var root = document.documentElement;
|
|
407
|
+
function apply(v) {
|
|
408
|
+
if (v === "system" || !v) {
|
|
409
|
+
root.removeAttribute("data-theme");
|
|
410
|
+
try {
|
|
411
|
+
localStorage.removeItem(KEY);
|
|
412
|
+
} catch (e) {}
|
|
413
|
+
} else {
|
|
414
|
+
root.setAttribute("data-theme", v);
|
|
415
|
+
try {
|
|
416
|
+
localStorage.setItem(KEY, v);
|
|
417
|
+
} catch (e) {}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
try {
|
|
421
|
+
var s = localStorage.getItem(KEY);
|
|
422
|
+
if (s === "dark" || s === "light") root.setAttribute("data-theme", s);
|
|
423
|
+
} catch (e) {}
|
|
424
|
+
document.querySelectorAll(".theme-btn").forEach(function (btn) {
|
|
425
|
+
btn.addEventListener("click", function () {
|
|
426
|
+
apply(btn.getAttribute("data-theme-set") || "system");
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
})();
|
|
430
|
+
</script>
|
|
431
|
+
|
|
211
432
|
<script type="application/json" id="report-data">${escapeJsonForHtml(data)}</script>
|
|
212
433
|
<footer>${escapeHtml(data.source.fileName)} · 경고 ${data.source.warnings}건 · 본 리포트는 통계 목적이며 법적·회계적 증빙으로 사용할 수 없습니다.</footer>
|
|
213
434
|
</main>
|
|
@@ -219,6 +440,145 @@ export function renderReportHtml(data) {
|
|
|
219
440
|
}
|
|
220
441
|
return html;
|
|
221
442
|
}
|
|
443
|
+
function renderFactMatrix(data) {
|
|
444
|
+
const s = data.summary;
|
|
445
|
+
const ins = data.insights;
|
|
446
|
+
const cells = [
|
|
447
|
+
["총 메시지", formatNumber(s.totalMessages)],
|
|
448
|
+
["참여자", formatNumber(s.participants)],
|
|
449
|
+
["활동일", formatNumber(s.activeDays)],
|
|
450
|
+
["활동일당", String(s.messagesPerActiveDay)],
|
|
451
|
+
["캘린더 밀도", ins.densityMessagesPerCalendarDay === null ? "—" : String(ins.densityMessagesPerCalendarDay)],
|
|
452
|
+
["링크·100", String(ins.linksPer100)],
|
|
453
|
+
["첨부·100", String(ins.attachmentsPer100)],
|
|
454
|
+
["사진÷첨부%", ins.photoShareOfAllAttachmentMarkers === null ? "—" : `${ins.photoShareOfAllAttachmentMarkers}%`],
|
|
455
|
+
["참여 중앙값", ins.medianMessagesPerParticipant === null ? "—" : String(ins.medianMessagesPerParticipant)],
|
|
456
|
+
["리듬 점수", `${ins.rhythmScore}/100`],
|
|
457
|
+
["주말%", `${ins.weekendSharePercent}%`],
|
|
458
|
+
["심야%", `${s.nightSharePercent}%`],
|
|
459
|
+
["1분내 응답%", ins.burstGapUnder1mPercent === null ? "—" : `${ins.burstGapUnder1mPercent}%`],
|
|
460
|
+
["60분+ 간격%", ins.gapOver60mPercent === null ? "—" : `${ins.gapOver60mPercent}%`],
|
|
461
|
+
["독백3+%", `${ins.monologueMessagesPercent}%`],
|
|
462
|
+
["간격 중앙", s.medianReplyGapMinutes === null ? "—" : `${s.medianReplyGapMinutes}분`],
|
|
463
|
+
["간격 P90", ins.replyGapP90Minutes === null ? "—" : `${ins.replyGapP90Minutes}분`],
|
|
464
|
+
["간격 CV", ins.replyGapCoeffVariation === null ? "—" : String(ins.replyGapCoeffVariation)],
|
|
465
|
+
["활성 시각 수", String(ins.activeHoursCount)],
|
|
466
|
+
["피크 시각", s.peakHour === null ? "—" : `${s.peakHour}시`],
|
|
467
|
+
["최장 연속일", String(s.longestActiveStreakDays)],
|
|
468
|
+
["최장 공백", ins.maxSilenceBetweenActiveDays === null ? "—" : `${ins.maxSilenceBetweenActiveDays}일`],
|
|
469
|
+
["피크일 점유", `${ins.peakDaySharePercent}%`],
|
|
470
|
+
["도메인 종류", String(ins.uniqueDomainCount)],
|
|
471
|
+
["도메인 H", ins.linkDomainEntropyBits === null ? "—" : `${ins.linkDomainEntropyBits} bit`],
|
|
472
|
+
["키워드 1위%", ins.keywordTop1SharePercent === null ? "—" : `${ins.keywordTop1SharePercent}%`],
|
|
473
|
+
["상위3 점유", `${ins.top3ParticipantSharePercent}%`],
|
|
474
|
+
["Gini", ins.participantGini === null ? "—" : String(ins.participantGini)],
|
|
475
|
+
["화자전환·100", String(ins.speakerSwitchRatePer100)],
|
|
476
|
+
["질문느낌·100", String(ins.questionLikeMessagesPer100)],
|
|
477
|
+
["이모지", formatNumber(s.emojiMessages)],
|
|
478
|
+
["평균 길이", String(s.averageMessageLength)],
|
|
479
|
+
["URL 포함 건", formatNumber(s.messagesWithLinks)],
|
|
480
|
+
["첨부 포함 건", formatNumber(s.messagesWithAttachments)],
|
|
481
|
+
];
|
|
482
|
+
const inner = cells
|
|
483
|
+
.map(([k, v]) => `<div class="fact-cell"><b>${escapeHtml(k)}</b><span>${escapeHtml(v)}</span></div>`)
|
|
484
|
+
.join("");
|
|
485
|
+
return `<section class="card fact-card" aria-label="핵심 지표 요약">
|
|
486
|
+
<h2>팩트 매트릭스</h2>
|
|
487
|
+
<p class="fact-hint">외부 API·무거운 모델 없이, 메시지·시간·메타만으로 계산한 <strong>운영형 KPI</strong> 밀집 뷰입니다. MPU·응답 분포·첨부 구성 등 대시보드에서 자주 보는 축을 한 화면에 모았습니다.</p>
|
|
488
|
+
<div class="fact-grid">${inner}</div>
|
|
489
|
+
</section>`;
|
|
490
|
+
}
|
|
491
|
+
function renderInsightDeck(data) {
|
|
492
|
+
const ins = data.insights;
|
|
493
|
+
const giniStr = ins.participantGini === null ? "—" : String(ins.participantGini);
|
|
494
|
+
const p90 = ins.replyGapP90Minutes === null ? "—" : `${ins.replyGapP90Minutes}분`;
|
|
495
|
+
const silence = ins.maxSilenceBetweenActiveDays === null ? "—" : `${ins.maxSilenceBetweenActiveDays}일`;
|
|
496
|
+
const entropy = ins.linkDomainEntropyBits === null ? "—" : `${ins.linkDomainEntropyBits} bit`;
|
|
497
|
+
const density = ins.densityMessagesPerCalendarDay === null ? "—" : String(ins.densityMessagesPerCalendarDay);
|
|
498
|
+
const daypartBar = ins.daypartPercents
|
|
499
|
+
.map((d) => {
|
|
500
|
+
const w = Math.max(0, d.percent);
|
|
501
|
+
const c = daypartColor(d.key);
|
|
502
|
+
return `<span class="dp-seg" style="width:${w}%;background:${c}" title="${escapeHtml(d.label)} ${w}%"></span>`;
|
|
503
|
+
})
|
|
504
|
+
.join("");
|
|
505
|
+
const scatter = renderParticipantScatter(data.participants);
|
|
506
|
+
return `<section class="card insight-hero" style="margin-bottom:14px">
|
|
507
|
+
<div class="insight-head">
|
|
508
|
+
<div>
|
|
509
|
+
<h2>고급 인사이트 · 행동 지표</h2>
|
|
510
|
+
<p class="insight-lede">참여 <strong>불균형(Gini)</strong>·응답 간격 <strong>꼬리(90% 백분위)</strong>·링크 도메인 <strong>엔트로피</strong> 등, 그룹 대화 분석에서 자주 보는 지표를 CSV 집계에 맞게 넣었습니다. 원문·전체 URL은 계속 저장하지 않습니다.</p>
|
|
511
|
+
</div>
|
|
512
|
+
<div class="rh-wrap" aria-label="리듬 점수">
|
|
513
|
+
<div class="rh-ring" style="--p:${ins.rhythmScore}"><span></span></div>
|
|
514
|
+
<div class="rh-cap"><strong>리듬</strong><span>${ins.rhythmScore}<small>/100</small></span></div>
|
|
515
|
+
</div>
|
|
516
|
+
</div>
|
|
517
|
+
<div class="insight-grid">
|
|
518
|
+
${insMetric("주말 비중", `${ins.weekendSharePercent}%`, "토·일")}
|
|
519
|
+
${insMetric("참여 Gini", giniStr, "0=균등 ·↑집중")}
|
|
520
|
+
${insMetric("간격 P90", p90, "연속 메시지")}
|
|
521
|
+
${insMetric("최장 공백", silence, "활동일 사이")}
|
|
522
|
+
${insMetric("상위3 점유", `${ins.top3ParticipantSharePercent}%`, "메시지 기준")}
|
|
523
|
+
${insMetric("도메인 H", entropy, "Shannon bit")}
|
|
524
|
+
${insMetric("캘린더 밀도", density, "일평균 메시지")}
|
|
525
|
+
${insMetric("질문 느낌", `${ins.questionLikeMessagesPer100}/100`, "? 포함")}
|
|
526
|
+
${insMetric("화자 전환", `${ins.speakerSwitchRatePer100}/100`, "메시지당 교대")}
|
|
527
|
+
</div>
|
|
528
|
+
<div class="insight-split">
|
|
529
|
+
<div>
|
|
530
|
+
<h3 class="insight-sub">시간대 세그먼트</h3>
|
|
531
|
+
<p class="chart-hint">하루를 네 구간으로 나눈 <strong>메시지 비중</strong>입니다.</p>
|
|
532
|
+
<div class="daypart-bar" role="img" aria-label="시간대 비중">${daypartBar}</div>
|
|
533
|
+
<ul class="daypart-legend">${ins.daypartPercents
|
|
534
|
+
.map((d) => `<li><i style="background:${daypartColor(d.key)}"></i>${escapeHtml(d.label)} <strong>${d.percent}%</strong></li>`)
|
|
535
|
+
.join("")}</ul>
|
|
536
|
+
</div>
|
|
537
|
+
<div>
|
|
538
|
+
<h3 class="insight-sub">참여자 말풍선 맵</h3>
|
|
539
|
+
<p class="chart-hint">가로 <strong>점유율(%)</strong>, 세로 <strong>평균 길이</strong> (상위 12명).</p>
|
|
540
|
+
${scatter}
|
|
541
|
+
</div>
|
|
542
|
+
</div>
|
|
543
|
+
</section>`;
|
|
544
|
+
}
|
|
545
|
+
function insMetric(label, value, sub) {
|
|
546
|
+
return `<div class="ins-metric"><span class="ins-m-label">${escapeHtml(label)}</span><span class="ins-m-val">${escapeHtml(value)}</span><span class="ins-m-sub">${escapeHtml(sub)}</span></div>`;
|
|
547
|
+
}
|
|
548
|
+
function daypartColor(key) {
|
|
549
|
+
switch (key) {
|
|
550
|
+
case "dawn":
|
|
551
|
+
return "linear-gradient(180deg,#818cf8,#4f46e5)";
|
|
552
|
+
case "morning":
|
|
553
|
+
return "linear-gradient(180deg,#22d3ee,#0891b2)";
|
|
554
|
+
case "afternoon":
|
|
555
|
+
return "linear-gradient(180deg,#4ade80,#059669)";
|
|
556
|
+
case "evening":
|
|
557
|
+
return "linear-gradient(180deg,#fb923c,#ea580c)";
|
|
558
|
+
default:
|
|
559
|
+
return "#64748b";
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
function renderParticipantScatter(parts) {
|
|
563
|
+
const top = parts.slice(0, 12);
|
|
564
|
+
if (top.length === 0) {
|
|
565
|
+
return `<p style="margin:0;color:var(--muted);font-size:13px">데이터가 없습니다.</p>`;
|
|
566
|
+
}
|
|
567
|
+
const maxShare = Math.max(...top.map((p) => p.sharePercent), 0.1);
|
|
568
|
+
const maxLen = Math.max(...top.map((p) => p.averageLength), 1);
|
|
569
|
+
const minLen = Math.min(...top.map((p) => p.averageLength));
|
|
570
|
+
const lenSpan = Math.max(maxLen - minLen, 0.1);
|
|
571
|
+
const dots = top
|
|
572
|
+
.map((p, i) => {
|
|
573
|
+
const x = 8 + (p.sharePercent / maxShare) * 82;
|
|
574
|
+
const yRaw = (p.averageLength - minLen) / lenSpan;
|
|
575
|
+
const y = 12 + (1 - yRaw) * 76;
|
|
576
|
+
const hue = (i * 53) % 360;
|
|
577
|
+
return `<div class="sc-dot" style="left:${x}%;top:${y}%;background:hsl(${hue} 72% 52%)" title="${escapeHtml(p.alias)} · ${p.sharePercent}% · 평균 ${p.averageLength}자"></div>`;
|
|
578
|
+
})
|
|
579
|
+
.join("");
|
|
580
|
+
return `<div class="sc-plot">${dots}<span class="sc-axis sc-x">점유 →</span><span class="sc-axis sc-y">길이 ↑</span></div>`;
|
|
581
|
+
}
|
|
222
582
|
function privacyLabel(mode) {
|
|
223
583
|
if (mode === "public-masked")
|
|
224
584
|
return "부분 마스킹(기본)";
|
|
@@ -226,9 +586,6 @@ function privacyLabel(mode) {
|
|
|
226
586
|
return "완전 별칭(User 001)";
|
|
227
587
|
return mode;
|
|
228
588
|
}
|
|
229
|
-
function metric(label, value, sub) {
|
|
230
|
-
return `<div class="card metric"><span class="label">${escapeHtml(label)}</span><span class="value">${escapeHtml(value)}</span><span class="sub">${escapeHtml(sub)}</span></div>`;
|
|
231
|
-
}
|
|
232
589
|
function panel(title, content) {
|
|
233
590
|
return `<div class="card"><h2>${escapeHtml(title)}</h2>${content}</div>`;
|
|
234
591
|
}
|
package/dist/src/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/report.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -50,6 +50,59 @@ export interface DailyCount {
|
|
|
50
50
|
date: string;
|
|
51
51
|
count: number;
|
|
52
52
|
}
|
|
53
|
+
/** 고급 집계·행동 패턴 지표(원문 미저장, 통계 전용) */
|
|
54
|
+
export interface ReportInsights {
|
|
55
|
+
/** 토·일 메시지 비중(%) */
|
|
56
|
+
weekendSharePercent: number;
|
|
57
|
+
/** 참여자 메시지 수 불평등(Gini, 0=완전 균등, 1에 가까울수록 소수 집중) */
|
|
58
|
+
participantGini: number | null;
|
|
59
|
+
/** 연속 메시지 간격의 90퍼센타일(분) — 꼬리가 길수록 가끔 긴 침묵 */
|
|
60
|
+
replyGapP90Minutes: number | null;
|
|
61
|
+
/** 활동이 있었던 날 사이 최대 ‘빈’ 일수(인접 활동일 기준) */
|
|
62
|
+
maxSilenceBetweenActiveDays: number | null;
|
|
63
|
+
/** 메시지 상위 3명이 차지한 비율(%) */
|
|
64
|
+
top3ParticipantSharePercent: number;
|
|
65
|
+
/** 링크 도메인 분포의 샤논 엔트로피(bit). 다양할수록 큼 */
|
|
66
|
+
linkDomainEntropyBits: number | null;
|
|
67
|
+
/** 첫날~마지막날 달력 일수로 나눈 일평균 메시지(스팬 0일이면 null) */
|
|
68
|
+
densityMessagesPerCalendarDay: number | null;
|
|
69
|
+
/** 물음표(?, ?) 포함 메시지 비율(100메시지당) */
|
|
70
|
+
questionLikeMessagesPer100: number;
|
|
71
|
+
/** 발화자가 바뀐 비율(100메시지당 화자 전환 횟수) */
|
|
72
|
+
speakerSwitchRatePer100: number;
|
|
73
|
+
/** 0~100 종합 ‘리듬’ 점수(참여 균형·연속 활동·밀도 가중) */
|
|
74
|
+
rhythmScore: number;
|
|
75
|
+
/** 시간대 세그먼트(새벽0~5, 오전6~11, 오후12~17, 저녁18~23) 비율 합계 100에 근접 */
|
|
76
|
+
daypartPercents: {
|
|
77
|
+
key: string;
|
|
78
|
+
label: string;
|
|
79
|
+
percent: number;
|
|
80
|
+
}[];
|
|
81
|
+
/** 100메시지당 URL 포함 메시지 수 */
|
|
82
|
+
linksPer100: number;
|
|
83
|
+
/** 100메시지당 첨부 포함 메시지 수 */
|
|
84
|
+
attachmentsPer100: number;
|
|
85
|
+
/** 참여자 1인당 메시지 수 중앙값 */
|
|
86
|
+
medianMessagesPerParticipant: number | null;
|
|
87
|
+
/** 응답 간격 1분 미만 비율(%) — 빠른 왕복 */
|
|
88
|
+
burstGapUnder1mPercent: number | null;
|
|
89
|
+
/** 응답 간격 60분 초과 비율(%) — 비동기 대화 */
|
|
90
|
+
gapOver60mPercent: number | null;
|
|
91
|
+
/** 메시지가 1건 이상 있었던 시각(0~23) 개수 */
|
|
92
|
+
activeHoursCount: number;
|
|
93
|
+
/** 키워드 토큰 중 1위가 차지한 비율(%) */
|
|
94
|
+
keywordTop1SharePercent: number | null;
|
|
95
|
+
/** 첨부 마커 합계 중 ‘사진’ 비중(%) */
|
|
96
|
+
photoShareOfAllAttachmentMarkers: number | null;
|
|
97
|
+
/** 동일인 3연속 이상 메시지 비중(%) — 독백·정리형 발화 */
|
|
98
|
+
monologueMessagesPercent: number;
|
|
99
|
+
/** 일별 최대 메시지가 전체에서 차지한 비율(%) */
|
|
100
|
+
peakDaySharePercent: number;
|
|
101
|
+
/** 서로 다른 링크 도메인 수 */
|
|
102
|
+
uniqueDomainCount: number;
|
|
103
|
+
/** 응답 간격 변동계수(σ/μ, 무차원). 클수록 템포 들쭉날쭉 */
|
|
104
|
+
replyGapCoeffVariation: number | null;
|
|
105
|
+
}
|
|
53
106
|
export interface ReportData {
|
|
54
107
|
generatedAt: string;
|
|
55
108
|
privacy: PrivacyMode;
|
|
@@ -83,6 +136,7 @@ export interface ReportData {
|
|
|
83
136
|
/** 이모지/픽토그램이 포함된 메시지 수(대략적) */
|
|
84
137
|
emojiMessages: number;
|
|
85
138
|
};
|
|
139
|
+
insights: ReportInsights;
|
|
86
140
|
participants: ParticipantStat[];
|
|
87
141
|
daily: DailyCount[];
|
|
88
142
|
hourly: number[];
|
package/package.json
CHANGED