quackscore 0.2.4 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +26 -10
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +19 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/leaderboard.d.ts +5 -1
- package/dist/commands/leaderboard.d.ts.map +1 -1
- package/dist/commands/leaderboard.js +57 -29
- package/dist/commands/leaderboard.js.map +1 -1
- package/dist/commands/profile-options.d.ts +24 -0
- package/dist/commands/profile-options.d.ts.map +1 -0
- package/dist/commands/profile-options.js +38 -0
- package/dist/commands/profile-options.js.map +1 -0
- package/dist/commands/remove.d.ts +5 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +14 -5
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/show.d.ts +5 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +12 -3
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/update-summary.d.ts +2 -0
- package/dist/commands/update-summary.d.ts.map +1 -1
- package/dist/commands/update-summary.js +12 -3
- package/dist/commands/update-summary.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +148 -68
- package/dist/commands/update.js.map +1 -1
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +14 -0
- package/dist/config/types.js.map +1 -1
- package/dist/github/client.d.ts +5 -5
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +163 -186
- package/dist/github/client.js.map +1 -1
- package/dist/index.js +32 -7
- package/dist/index.js.map +1 -1
- package/dist/llm/analyzer.d.ts +3 -3
- package/dist/llm/analyzer.d.ts.map +1 -1
- package/dist/llm/analyzer.js.map +1 -1
- package/dist/llm/character.d.ts +2 -2
- package/dist/llm/character.d.ts.map +1 -1
- package/dist/llm/character.js.map +1 -1
- package/dist/llm/client.d.ts +2 -2
- package/dist/llm/client.d.ts.map +1 -1
- package/dist/llm/client.js +1 -1
- package/dist/llm/client.js.map +1 -1
- package/dist/llm/providers.d.ts +3 -3
- package/dist/llm/providers.d.ts.map +1 -1
- package/dist/llm/providers.js +25 -6
- package/dist/llm/providers.js.map +1 -1
- package/dist/report/generate.d.ts.map +1 -1
- package/dist/report/generate.js +4 -2
- package/dist/report/generate.js.map +1 -1
- package/dist/report/leaderboard.d.ts +5 -1
- package/dist/report/leaderboard.d.ts.map +1 -1
- package/dist/report/leaderboard.js +611 -865
- package/dist/report/leaderboard.js.map +1 -1
- package/dist/shared/profile-scope.d.ts +19 -0
- package/dist/shared/profile-scope.d.ts.map +1 -0
- package/dist/shared/profile-scope.js +101 -0
- package/dist/shared/profile-scope.js.map +1 -0
- package/dist/shared/types.d.ts +28 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/ui.d.ts +1 -0
- package/dist/shared/ui.d.ts.map +1 -1
- package/dist/shared/ui.js +3 -0
- package/dist/shared/ui.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/leaderboard.d.ts +3 -2
- package/dist/storage/leaderboard.d.ts.map +1 -1
- package/dist/storage/leaderboard.js +80 -9
- package/dist/storage/leaderboard.js.map +1 -1
- package/dist/storage/paths.d.ts +5 -0
- package/dist/storage/paths.d.ts.map +1 -1
- package/dist/storage/paths.js +13 -0
- package/dist/storage/paths.js.map +1 -1
- package/dist/storage/report.d.ts +4 -2
- package/dist/storage/report.d.ts.map +1 -1
- package/dist/storage/report.js +25 -8
- package/dist/storage/report.js.map +1 -1
- package/dist/storage/user.d.ts +2 -1
- package/dist/storage/user.d.ts.map +1 -1
- package/dist/storage/user.js +27 -10
- package/dist/storage/user.js.map +1 -1
- package/package.json +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGlE,MAAM,cAAc,GAA2B;IAC7C,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PRData, ProfileScope, UserData } from './types.js';
|
|
2
|
+
export interface ProfileSelector {
|
|
3
|
+
username: string;
|
|
4
|
+
organisation?: string;
|
|
5
|
+
repository?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function teamKey(team: string): string;
|
|
8
|
+
export declare function normalizeProfileScope(scope?: ProfileScope): ProfileScope;
|
|
9
|
+
export declare function profileSelector(username: string, scope?: ProfileScope): ProfileSelector;
|
|
10
|
+
export declare function scopeFromSelector(selector: ProfileSelector, windowWeeks?: number): ProfileScope;
|
|
11
|
+
export declare function profileStorageKey(selector: ProfileSelector): string;
|
|
12
|
+
export declare function profileScopeLabel(scope?: ProfileScope): string;
|
|
13
|
+
export declare function profileDisplayName(username: string, scope?: ProfileScope): string;
|
|
14
|
+
export declare function normalizeTeams(teams?: string[]): string[];
|
|
15
|
+
export declare function mergeTeamDisplay(existingTeams?: string[], requestedTeams?: string[]): string[];
|
|
16
|
+
export declare function hasTeamMatch(teams: string[] | undefined, team?: string): boolean;
|
|
17
|
+
export declare function prIdentity(pr: Pick<PRData, 'repo' | 'number'>): string;
|
|
18
|
+
export declare function normalizeUserDataShape(data: UserData): UserData;
|
|
19
|
+
//# sourceMappingURL=profile-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-scope.d.ts","sourceRoot":"","sources":["../../src/shared/profile-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAaD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,YAAY,CAMxE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,eAAe,CAMvF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAM/F;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAYnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAS9D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAGjF;AAED,wBAAgB,cAAc,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAa7D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,GAAE,MAAM,EAAO,EAAE,cAAc,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAatG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,MAAM,CAEtE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAM/D"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
const GLOBAL_SCOPE_LABEL = 'All repositories';
|
|
2
|
+
function cleanValue(value) {
|
|
3
|
+
const trimmed = value?.trim();
|
|
4
|
+
return trimmed ? trimmed : undefined;
|
|
5
|
+
}
|
|
6
|
+
function encodeSegment(value) {
|
|
7
|
+
return encodeURIComponent(value.replace(/\s+/g, ' ').trim());
|
|
8
|
+
}
|
|
9
|
+
export function teamKey(team) {
|
|
10
|
+
return team.trim().toLocaleLowerCase();
|
|
11
|
+
}
|
|
12
|
+
export function normalizeProfileScope(scope) {
|
|
13
|
+
return {
|
|
14
|
+
organisation: cleanValue(scope?.organisation),
|
|
15
|
+
repository: cleanValue(scope?.repository),
|
|
16
|
+
windowWeeks: scope?.windowWeeks,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function profileSelector(username, scope) {
|
|
20
|
+
return {
|
|
21
|
+
username: username.trim(),
|
|
22
|
+
organisation: cleanValue(scope?.organisation),
|
|
23
|
+
repository: cleanValue(scope?.repository),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function scopeFromSelector(selector, windowWeeks) {
|
|
27
|
+
return normalizeProfileScope({
|
|
28
|
+
organisation: selector.organisation,
|
|
29
|
+
repository: selector.repository,
|
|
30
|
+
windowWeeks,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function profileStorageKey(selector) {
|
|
34
|
+
const username = selector.username.trim();
|
|
35
|
+
const organisation = cleanValue(selector.organisation);
|
|
36
|
+
const repository = cleanValue(selector.repository);
|
|
37
|
+
if (!organisation)
|
|
38
|
+
return username;
|
|
39
|
+
const keyParts = [username, 'org', encodeSegment(organisation)];
|
|
40
|
+
if (repository) {
|
|
41
|
+
keyParts.push('repo', encodeSegment(repository));
|
|
42
|
+
}
|
|
43
|
+
return keyParts.join('__');
|
|
44
|
+
}
|
|
45
|
+
export function profileScopeLabel(scope) {
|
|
46
|
+
const normalized = normalizeProfileScope(scope);
|
|
47
|
+
if (normalized.organisation && normalized.repository) {
|
|
48
|
+
return `${normalized.organisation}/${normalized.repository}`;
|
|
49
|
+
}
|
|
50
|
+
if (normalized.organisation) {
|
|
51
|
+
return normalized.organisation;
|
|
52
|
+
}
|
|
53
|
+
return GLOBAL_SCOPE_LABEL;
|
|
54
|
+
}
|
|
55
|
+
export function profileDisplayName(username, scope) {
|
|
56
|
+
const scopeLabel = profileScopeLabel(scope);
|
|
57
|
+
return scopeLabel === GLOBAL_SCOPE_LABEL ? username : `${username} @ ${scopeLabel}`;
|
|
58
|
+
}
|
|
59
|
+
export function normalizeTeams(teams = []) {
|
|
60
|
+
const deduped = new Map();
|
|
61
|
+
for (const team of teams) {
|
|
62
|
+
const trimmed = team.trim();
|
|
63
|
+
if (!trimmed)
|
|
64
|
+
continue;
|
|
65
|
+
const key = teamKey(trimmed);
|
|
66
|
+
if (!deduped.has(key)) {
|
|
67
|
+
deduped.set(key, trimmed);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return [...deduped.values()];
|
|
71
|
+
}
|
|
72
|
+
export function mergeTeamDisplay(existingTeams = [], requestedTeams = []) {
|
|
73
|
+
const existingByKey = new Map(normalizeTeams(existingTeams).map((team) => [teamKey(team), team]));
|
|
74
|
+
const merged = [];
|
|
75
|
+
const seen = new Set();
|
|
76
|
+
for (const team of normalizeTeams(requestedTeams)) {
|
|
77
|
+
const key = teamKey(team);
|
|
78
|
+
if (seen.has(key))
|
|
79
|
+
continue;
|
|
80
|
+
merged.push(existingByKey.get(key) ?? team);
|
|
81
|
+
seen.add(key);
|
|
82
|
+
}
|
|
83
|
+
return merged;
|
|
84
|
+
}
|
|
85
|
+
export function hasTeamMatch(teams, team) {
|
|
86
|
+
const normalizedFilter = cleanValue(team) ? teamKey(team) : undefined;
|
|
87
|
+
if (!normalizedFilter)
|
|
88
|
+
return true;
|
|
89
|
+
return (teams ?? []).some((candidate) => teamKey(candidate) === normalizedFilter);
|
|
90
|
+
}
|
|
91
|
+
export function prIdentity(pr) {
|
|
92
|
+
return `${pr.repo}#${pr.number}`;
|
|
93
|
+
}
|
|
94
|
+
export function normalizeUserDataShape(data) {
|
|
95
|
+
return {
|
|
96
|
+
...data,
|
|
97
|
+
scope: normalizeProfileScope(data.scope),
|
|
98
|
+
teams: normalizeTeams(data.teams),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=profile-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-scope.js","sourceRoot":"","sources":["../../src/shared/profile-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -53,12 +53,19 @@ export interface CharacterProfile {
|
|
|
53
53
|
summary: string;
|
|
54
54
|
avatarUrl?: string;
|
|
55
55
|
}
|
|
56
|
+
export interface ProfileScope {
|
|
57
|
+
organisation?: string;
|
|
58
|
+
repository?: string;
|
|
59
|
+
windowWeeks?: number;
|
|
60
|
+
}
|
|
56
61
|
export interface UserData {
|
|
57
62
|
username: string;
|
|
58
63
|
lastUpdated: string;
|
|
59
64
|
prs: PRData[];
|
|
60
65
|
stats: PlayerStats;
|
|
61
66
|
character?: CharacterProfile;
|
|
67
|
+
scope?: ProfileScope;
|
|
68
|
+
teams?: string[];
|
|
62
69
|
}
|
|
63
70
|
export interface LeaderboardContribution {
|
|
64
71
|
mergedAt: string;
|
|
@@ -69,6 +76,9 @@ export interface LeaderboardProfile {
|
|
|
69
76
|
storageKey: string;
|
|
70
77
|
username: string;
|
|
71
78
|
lastUpdated: string;
|
|
79
|
+
scope: ProfileScope;
|
|
80
|
+
scopeLabel: string;
|
|
81
|
+
teams: string[];
|
|
72
82
|
totalPoints: number;
|
|
73
83
|
level: number;
|
|
74
84
|
analyzedPRs: number;
|
|
@@ -82,6 +92,8 @@ export interface LeaderboardProfile {
|
|
|
82
92
|
export interface LeaderboardEntry {
|
|
83
93
|
storageKey: string;
|
|
84
94
|
username: string;
|
|
95
|
+
scopeLabel: string;
|
|
96
|
+
teams: string[];
|
|
85
97
|
totalPoints: number;
|
|
86
98
|
level: number;
|
|
87
99
|
lastUpdated: string;
|
|
@@ -92,4 +104,20 @@ export interface LeaderboardEntry {
|
|
|
92
104
|
summary?: string;
|
|
93
105
|
reportPath?: string;
|
|
94
106
|
}
|
|
107
|
+
export interface TeamLeaderboardMember {
|
|
108
|
+
storageKey: string;
|
|
109
|
+
username: string;
|
|
110
|
+
scopeLabel: string;
|
|
111
|
+
reportPath?: string;
|
|
112
|
+
}
|
|
113
|
+
export interface TeamLeaderboardEntry {
|
|
114
|
+
team: string;
|
|
115
|
+
totalPoints: number;
|
|
116
|
+
level: number;
|
|
117
|
+
memberCount: number;
|
|
118
|
+
analyzedPRs: number;
|
|
119
|
+
primaryArea?: string;
|
|
120
|
+
lastActivityAt?: string;
|
|
121
|
+
members: TeamLeaderboardMember[];
|
|
122
|
+
}
|
|
95
123
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,aAAa,8FAUhB,CAAC;AAEX,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,0BAA0B,qEAAsE,CAAC;AAE9G,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/ui.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export declare function rpgLog(message: string): void;
|
|
|
2
2
|
export declare function rpgSuccess(message: string): void;
|
|
3
3
|
export declare function rpgError(message: string): void;
|
|
4
4
|
export declare function rpgInfo(message: string): void;
|
|
5
|
+
export declare function rpgWarn(message: string): void;
|
|
5
6
|
export declare function rpgProgress(current: number, total: number, title: string): void;
|
|
6
7
|
export declare function rpgHeader(text: string): void;
|
|
7
8
|
//# sourceMappingURL=ui.d.ts.map
|
package/dist/shared/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/shared/ui.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG5C"}
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/shared/ui.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI/E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG5C"}
|
package/dist/shared/ui.js
CHANGED
|
@@ -12,6 +12,9 @@ export function rpgError(message) {
|
|
|
12
12
|
export function rpgInfo(message) {
|
|
13
13
|
console.log(`📜 ${chalk.yellow(message)}`);
|
|
14
14
|
}
|
|
15
|
+
export function rpgWarn(message) {
|
|
16
|
+
console.log(`⚠️ ${chalk.yellow(message)}`);
|
|
17
|
+
}
|
|
15
18
|
export function rpgProgress(current, total, title) {
|
|
16
19
|
const pct = Math.round((current / total) * 100);
|
|
17
20
|
const bar = '█'.repeat(Math.floor(pct / 5)) + '░'.repeat(20 - Math.floor(pct / 5));
|
package/dist/shared/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/shared/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,KAAa;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,WAAW,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/shared/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAa,EAAE,KAAa;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,WAAW,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { saveUserData, loadUserData } from './user.js';
|
|
2
2
|
export { saveReport, getUserReportPath } from './report.js';
|
|
3
|
-
export { loadLeaderboard, loadLeaderboardProfiles, saveLeaderboardReport } from './leaderboard.js';
|
|
3
|
+
export { loadLeaderboard, loadLeaderboardProfiles, loadTeamLeaderboard, saveLeaderboardReport } from './leaderboard.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/storage/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { saveUserData, loadUserData } from './user.js';
|
|
2
2
|
export { saveReport, getUserReportPath } from './report.js';
|
|
3
|
-
export { loadLeaderboard, loadLeaderboardProfiles, saveLeaderboardReport } from './leaderboard.js';
|
|
3
|
+
export { loadLeaderboard, loadLeaderboardProfiles, loadTeamLeaderboard, saveLeaderboardReport } from './leaderboard.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { LeaderboardEntry, LeaderboardProfile } from '../shared/types.js';
|
|
1
|
+
import type { LeaderboardEntry, LeaderboardProfile, TeamLeaderboardEntry } from '../shared/types.js';
|
|
2
2
|
export declare function loadLeaderboardProfiles(): LeaderboardProfile[];
|
|
3
|
-
export declare function loadLeaderboard(): LeaderboardEntry[];
|
|
3
|
+
export declare function loadLeaderboard(team?: string): LeaderboardEntry[];
|
|
4
|
+
export declare function loadTeamLeaderboard(): TeamLeaderboardEntry[];
|
|
4
5
|
export declare function saveLeaderboardReport(html: string): string;
|
|
5
6
|
//# sourceMappingURL=leaderboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/storage/leaderboard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAY,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/storage/leaderboard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAY,MAAM,oBAAoB,CAAC;AAgJ/G,wBAAgB,uBAAuB,IAAI,kBAAkB,EAAE,CAkC9D;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAKjE;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,EAAE,CA2D5D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { calculateLevel } from '../scoring/index.js';
|
|
4
|
-
import { ensureStorageDir, LEADERBOARD_FILE, LEADERBOARD_REPORT_FILE, STORAGE_DIR } from './paths.js';
|
|
4
|
+
import { ensureStorageDir, LEADERBOARD_FILE, LEADERBOARD_REPORT_FILE, STORAGE_DIR, profileReportPathByKey } from './paths.js';
|
|
5
5
|
import { diagLog } from '../shared/diagnostics.js';
|
|
6
6
|
import { normalizeTechnologies } from '../shared/technologies.js';
|
|
7
|
+
import { hasTeamMatch, normalizeTeams, normalizeUserDataShape, profileScopeLabel, teamKey } from '../shared/profile-scope.js';
|
|
7
8
|
const IGNORED_JSON_FILES = new Set(['config.json', 'leaderboard.json']);
|
|
8
9
|
function isUserData(value) {
|
|
9
10
|
if (!value || typeof value !== 'object')
|
|
@@ -18,7 +19,7 @@ function isUserData(value) {
|
|
|
18
19
|
}
|
|
19
20
|
function normalizeUserData(data) {
|
|
20
21
|
return {
|
|
21
|
-
...data,
|
|
22
|
+
...normalizeUserDataShape(data),
|
|
22
23
|
prs: data.prs.map((pr) => pr.analysis
|
|
23
24
|
? {
|
|
24
25
|
...pr,
|
|
@@ -34,14 +35,21 @@ function normalizeUserData(data) {
|
|
|
34
35
|
},
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
|
-
function
|
|
38
|
+
function compareProfileEntries(left, right) {
|
|
38
39
|
return right.totalPoints - left.totalPoints
|
|
39
40
|
|| right.analyzedPRs - left.analyzedPRs
|
|
40
41
|
|| Date.parse(right.lastActivityAt ?? right.lastUpdated) - Date.parse(left.lastActivityAt ?? left.lastUpdated)
|
|
41
42
|
|| left.username.localeCompare(right.username);
|
|
42
43
|
}
|
|
44
|
+
function compareTeamEntries(left, right) {
|
|
45
|
+
return right.totalPoints - left.totalPoints
|
|
46
|
+
|| right.memberCount - left.memberCount
|
|
47
|
+
|| right.analyzedPRs - left.analyzedPRs
|
|
48
|
+
|| Date.parse(right.lastActivityAt ?? '') - Date.parse(left.lastActivityAt ?? '')
|
|
49
|
+
|| left.team.localeCompare(right.team);
|
|
50
|
+
}
|
|
43
51
|
function toLeaderboardProfile(storageKey, data) {
|
|
44
|
-
const reportPath =
|
|
52
|
+
const reportPath = profileReportPathByKey(storageKey);
|
|
45
53
|
const primaryArea = Object.entries(data.stats.areas).sort(([, left], [, right]) => right - left)[0]?.[0];
|
|
46
54
|
const contributionDates = data.prs
|
|
47
55
|
.map((pr) => pr.mergedAt)
|
|
@@ -51,6 +59,9 @@ function toLeaderboardProfile(storageKey, data) {
|
|
|
51
59
|
storageKey,
|
|
52
60
|
username: data.username,
|
|
53
61
|
lastUpdated: data.lastUpdated,
|
|
62
|
+
scope: data.scope ?? {},
|
|
63
|
+
scopeLabel: profileScopeLabel(data.scope),
|
|
64
|
+
teams: normalizeTeams(data.teams),
|
|
54
65
|
totalPoints: data.stats.totalPoints,
|
|
55
66
|
level: data.stats.level,
|
|
56
67
|
analyzedPRs: data.stats.analyzedPRs,
|
|
@@ -71,11 +82,13 @@ function toLeaderboardProfile(storageKey, data) {
|
|
|
71
82
|
}),
|
|
72
83
|
};
|
|
73
84
|
}
|
|
74
|
-
function
|
|
85
|
+
function toProfileEntry(profile) {
|
|
75
86
|
if (profile.contributions.length === 0) {
|
|
76
87
|
return {
|
|
77
88
|
storageKey: profile.storageKey,
|
|
78
89
|
username: profile.username,
|
|
90
|
+
scopeLabel: profile.scopeLabel,
|
|
91
|
+
teams: profile.teams,
|
|
79
92
|
totalPoints: profile.totalPoints,
|
|
80
93
|
level: profile.level,
|
|
81
94
|
lastUpdated: profile.lastUpdated,
|
|
@@ -104,6 +117,8 @@ function toLeaderboardEntry(profile) {
|
|
|
104
117
|
return {
|
|
105
118
|
storageKey: profile.storageKey,
|
|
106
119
|
username: profile.username,
|
|
120
|
+
scopeLabel: profile.scopeLabel,
|
|
121
|
+
teams: profile.teams,
|
|
107
122
|
totalPoints,
|
|
108
123
|
level,
|
|
109
124
|
lastUpdated: profile.lastUpdated,
|
|
@@ -137,7 +152,7 @@ export function loadLeaderboardProfiles() {
|
|
|
137
152
|
return [];
|
|
138
153
|
}
|
|
139
154
|
const normalized = normalizeUserData(parsed);
|
|
140
|
-
return [toLeaderboardProfile(
|
|
155
|
+
return [toLeaderboardProfile(fileName.slice(0, -5), normalized)];
|
|
141
156
|
}
|
|
142
157
|
catch (error) {
|
|
143
158
|
diagLog('Skipping unreadable leaderboard profile', {
|
|
@@ -148,10 +163,66 @@ export function loadLeaderboardProfiles() {
|
|
|
148
163
|
}
|
|
149
164
|
});
|
|
150
165
|
}
|
|
151
|
-
export function loadLeaderboard() {
|
|
166
|
+
export function loadLeaderboard(team) {
|
|
152
167
|
return loadLeaderboardProfiles()
|
|
153
|
-
.
|
|
154
|
-
.
|
|
168
|
+
.filter((profile) => hasTeamMatch(profile.teams, team))
|
|
169
|
+
.map(toProfileEntry)
|
|
170
|
+
.sort(compareProfileEntries);
|
|
171
|
+
}
|
|
172
|
+
export function loadTeamLeaderboard() {
|
|
173
|
+
const teams = new Map();
|
|
174
|
+
const teamAreas = new Map();
|
|
175
|
+
for (const profile of loadLeaderboardProfiles()) {
|
|
176
|
+
if (profile.teams.length === 0)
|
|
177
|
+
continue;
|
|
178
|
+
const allTimeEntry = toProfileEntry(profile);
|
|
179
|
+
const areaTotals = profile.contributions.reduce((totals, contribution) => {
|
|
180
|
+
for (const area of contribution.areas) {
|
|
181
|
+
totals[area] = (totals[area] || 0) + contribution.points;
|
|
182
|
+
}
|
|
183
|
+
return totals;
|
|
184
|
+
}, {});
|
|
185
|
+
for (const team of profile.teams) {
|
|
186
|
+
const key = teamKey(team);
|
|
187
|
+
const existing = teams.get(key) ?? {
|
|
188
|
+
team,
|
|
189
|
+
totalPoints: 0,
|
|
190
|
+
level: 1,
|
|
191
|
+
memberCount: 0,
|
|
192
|
+
analyzedPRs: 0,
|
|
193
|
+
primaryArea: undefined,
|
|
194
|
+
lastActivityAt: undefined,
|
|
195
|
+
members: [],
|
|
196
|
+
};
|
|
197
|
+
const areaTotalsForTeam = teamAreas.get(key) ?? {};
|
|
198
|
+
existing.totalPoints += allTimeEntry.totalPoints;
|
|
199
|
+
existing.analyzedPRs += allTimeEntry.analyzedPRs;
|
|
200
|
+
existing.lastActivityAt = !existing.lastActivityAt
|
|
201
|
+
? allTimeEntry.lastActivityAt
|
|
202
|
+
: (Date.parse(allTimeEntry.lastActivityAt ?? '') > Date.parse(existing.lastActivityAt)
|
|
203
|
+
? allTimeEntry.lastActivityAt
|
|
204
|
+
: existing.lastActivityAt);
|
|
205
|
+
existing.members.push({
|
|
206
|
+
storageKey: profile.storageKey,
|
|
207
|
+
username: profile.username,
|
|
208
|
+
scopeLabel: profile.scopeLabel,
|
|
209
|
+
reportPath: profile.reportPath,
|
|
210
|
+
});
|
|
211
|
+
for (const [area, points] of Object.entries(areaTotals)) {
|
|
212
|
+
areaTotalsForTeam[area] = (areaTotalsForTeam[area] || 0) + points;
|
|
213
|
+
}
|
|
214
|
+
existing.primaryArea = Object.entries(areaTotalsForTeam).sort(([, left], [, right]) => right - left)[0]?.[0] ?? existing.primaryArea;
|
|
215
|
+
teams.set(key, existing);
|
|
216
|
+
teamAreas.set(key, areaTotalsForTeam);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return [...teams.values()]
|
|
220
|
+
.map((entry) => ({
|
|
221
|
+
...entry,
|
|
222
|
+
level: calculateLevel(entry.totalPoints).level,
|
|
223
|
+
memberCount: entry.members.length,
|
|
224
|
+
}))
|
|
225
|
+
.sort(compareTeamEntries);
|
|
155
226
|
}
|
|
156
227
|
export function saveLeaderboardReport(html) {
|
|
157
228
|
ensureStorageDir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/storage/leaderboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/storage/leaderboard.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/paths.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import type { ProfileSelector } from '../shared/profile-scope.js';
|
|
1
2
|
export declare const STORAGE_DIR: string;
|
|
2
3
|
export declare const LEADERBOARD_FILE: string;
|
|
3
4
|
export declare const LEADERBOARD_REPORT_FILE: string;
|
|
4
5
|
export declare function ensureStorageDir(): void;
|
|
5
6
|
export declare function userFilePath(username: string): string;
|
|
6
7
|
export declare function userReportPath(username: string): string;
|
|
8
|
+
export declare function profileFilePath(selector: ProfileSelector): string;
|
|
9
|
+
export declare function profileReportPath(selector: ProfileSelector): string;
|
|
10
|
+
export declare function profileFilePathByKey(storageKey: string): string;
|
|
11
|
+
export declare function profileReportPathByKey(storageKey: string): string;
|
|
7
12
|
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAyC,CAAC;AAClE,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAC3E,eAAO,MAAM,uBAAuB,QAA6C,CAAC;AAElF,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,eAAO,MAAM,WAAW,QAAyC,CAAC;AAClE,eAAO,MAAM,gBAAgB,QAA6C,CAAC;AAC3E,eAAO,MAAM,uBAAuB,QAA6C,CAAC;AAElF,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE"}
|
package/dist/storage/paths.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import { diagLog } from '../shared/diagnostics.js';
|
|
5
|
+
import { profileStorageKey } from '../shared/profile-scope.js';
|
|
5
6
|
export const STORAGE_DIR = path.join(os.homedir(), '.quackscore');
|
|
6
7
|
export const LEADERBOARD_FILE = path.join(STORAGE_DIR, 'leaderboard.json');
|
|
7
8
|
export const LEADERBOARD_REPORT_FILE = path.join(STORAGE_DIR, 'leaderboard.html');
|
|
@@ -17,4 +18,16 @@ export function userFilePath(username) {
|
|
|
17
18
|
export function userReportPath(username) {
|
|
18
19
|
return path.join(STORAGE_DIR, `${username}.html`);
|
|
19
20
|
}
|
|
21
|
+
export function profileFilePath(selector) {
|
|
22
|
+
return path.join(STORAGE_DIR, `${profileStorageKey(selector)}.json`);
|
|
23
|
+
}
|
|
24
|
+
export function profileReportPath(selector) {
|
|
25
|
+
return path.join(STORAGE_DIR, `${profileStorageKey(selector)}.html`);
|
|
26
|
+
}
|
|
27
|
+
export function profileFilePathByKey(storageKey) {
|
|
28
|
+
return path.join(STORAGE_DIR, `${storageKey}.json`);
|
|
29
|
+
}
|
|
30
|
+
export function profileReportPathByKey(storageKey) {
|
|
31
|
+
return path.join(STORAGE_DIR, `${storageKey}.html`);
|
|
32
|
+
}
|
|
20
33
|
//# sourceMappingURL=paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/storage/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAElF,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/storage/report.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { ProfileSelector } from '../shared/profile-scope.js';
|
|
2
|
+
import type { ProfileScope } from '../shared/types.js';
|
|
3
|
+
export declare function getUserReportPath(selectorOrUsername: ProfileSelector | string, scope?: ProfileScope): string;
|
|
4
|
+
export declare function saveReport(selectorOrUsername: ProfileSelector | string, html: string, scope?: ProfileScope): string;
|
|
3
5
|
//# sourceMappingURL=report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/storage/report.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/storage/report.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,eAAe,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAiB5G;AAED,wBAAgB,UAAU,CAAC,kBAAkB,EAAE,eAAe,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAcnH"}
|