quackscore 0.2.0 → 0.2.3

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/README.md CHANGED
@@ -108,6 +108,12 @@ Filter by org or repo:
108
108
  quackscore create <github-username> --organisation <org> --repository <repo>
109
109
  ```
110
110
 
111
+ Limit to the last N weeks of PRs (useful for developers with large PR histories):
112
+
113
+ ```bash
114
+ quackscore create <github-username> --weeks 30
115
+ ```
116
+
111
117
  ### 4. Update later (only new PRs)
112
118
 
113
119
  ```bash
@@ -116,6 +122,12 @@ quackscore update <github-username>
116
122
 
117
123
  Fetches only PRs merged since the last run, analyzes them, and updates your stats, level, and charts. Your existing profile summary is left untouched — use `update-summary` when you want to regenerate it.
118
124
 
125
+ You can also limit the update window to a specific number of weeks:
126
+
127
+ ```bash
128
+ quackscore update <github-username> --weeks 12
129
+ ```
130
+
119
131
  ### 5. Refresh your profile summary
120
132
 
121
133
  ```bash
@@ -212,5 +224,6 @@ Everything lives in `~/.quackscore/`:
212
224
  - The GitHub token is required regardless of LLM setup.
213
225
  - API keys passed via `--github-token` and `--llm-api-key` take precedence over environment variables and are never written to disk.
214
226
  - `create` always rebuilds from scratch; `update` only fetches and analyzes new PRs without touching the existing summary; `update-summary` regenerates the summary without touching PRs.
227
+ - Use `--weeks <n>` on `create` or `update` to limit PR fetching to the last N weeks — handy for developers with years of history who only want a recent snapshot.
215
228
  - `remove` deletes only local files (`~/.quackscore/<username>.json` and `~/.quackscore/<username>.html`).
216
229
  - Add `--diagnostics` to any command for detailed internal tracing.
@@ -1,6 +1,7 @@
1
1
  export interface CreateOptions {
2
2
  org?: string;
3
3
  repository?: string;
4
+ weeks?: number;
4
5
  githubToken?: string;
5
6
  llmApiKey?: string;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKvF"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmLvF"}
@@ -6,7 +6,11 @@ import { generateHTML } from '../report/index.js';
6
6
  import { loadConfig } from '../config/index.js';
7
7
  import { rpgHeader, rpgLog, rpgInfo, rpgProgress, rpgSuccess, rpgError } from '../shared/ui.js';
8
8
  import { diagError, diagLog } from '../shared/diagnostics.js';
9
+ import { setupEscCancel } from '../shared/cancel.js';
9
10
  import open from 'open';
11
+ function weeksToSinceISO(weeks) {
12
+ return new Date(Date.now() - weeks * 7 * 24 * 60 * 60 * 1000).toISOString();
13
+ }
10
14
  export async function runCreate(username, options) {
11
15
  diagLog('Starting create command', {
12
16
  username,
@@ -15,6 +19,7 @@ export async function runCreate(username, options) {
15
19
  });
16
20
  diagLog('Create command is running in full rebuild mode', {
17
21
  username,
22
+ weeks: options.weeks,
18
23
  checkpointStrategy: 'ignore-local-cache-and-recompute-from-fetched-prs',
19
24
  });
20
25
  const token = options.githubToken ?? process.env['QUACKSCORE_GH_TOKEN'];
@@ -36,13 +41,20 @@ export async function runCreate(username, options) {
36
41
  }
37
42
  rpgHeader(`Quackscore — ${username}`);
38
43
  rpgLog('Sharpening the beak...');
39
- rpgInfo('Reading ancient PR scrolls...');
44
+ const since = options.weeks != null ? weeksToSinceISO(options.weeks) : undefined;
45
+ if (since) {
46
+ rpgInfo(`Limiting to PRs from the last ${options.weeks} week${options.weeks === 1 ? '' : 's'} (since ${new Date(since).toLocaleDateString()})...`);
47
+ }
48
+ else {
49
+ rpgInfo('Reading ancient PR scrolls...');
50
+ }
40
51
  let prs;
41
52
  try {
42
53
  const fetchStartedAt = Date.now();
43
54
  prs = await fetchUserPRs(username, token, {
44
55
  org: options.org,
45
56
  repo: options.repository,
57
+ since,
46
58
  });
47
59
  diagLog('Fetched PRs for create', {
48
60
  username,
@@ -65,7 +77,14 @@ export async function runCreate(username, options) {
65
77
  }
66
78
  else {
67
79
  rpgLog('Evaluating code complexity...');
80
+ rpgInfo('Press ESC to stop scanning and save partial results.');
81
+ const { isCancelled, cleanup } = setupEscCancel();
68
82
  for (let i = 0; i < prs.length; i++) {
83
+ if (isCancelled()) {
84
+ rpgInfo(`Scan stopped early after ${i} PR${i === 1 ? '' : 's'}. Saving partial results...`);
85
+ prs = prs.slice(0, i);
86
+ break;
87
+ }
69
88
  const pr = prs[i];
70
89
  rpgProgress(i + 1, prs.length, pr.title);
71
90
  diagLog('Analyzing PR during create', {
@@ -104,6 +123,7 @@ export async function runCreate(username, options) {
104
123
  rpgError(`Skipping PR #${pr.number}: ${err.message}`);
105
124
  }
106
125
  }
126
+ cleanup();
107
127
  }
108
128
  rpgLog('Assigning skill points...');
109
129
  const stats = aggregateStats(prs);
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgLvF"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmMvF"}
@@ -6,6 +6,7 @@ import { generateHTML } from '../report/index.js';
6
6
  import { loadConfig } from '../config/index.js';
7
7
  import { rpgHeader, rpgLog, rpgInfo, rpgProgress, rpgSuccess, rpgError } from '../shared/ui.js';
8
8
  import { diagError, diagLog } from '../shared/diagnostics.js';
9
+ import { setupEscCancel } from '../shared/cancel.js';
9
10
  import open from 'open';
10
11
  export async function runUpdate(username, options) {
11
12
  diagLog('Starting update command', {
@@ -48,19 +49,25 @@ export async function runUpdate(username, options) {
48
49
  });
49
50
  rpgLog(`Last updated: ${existing.lastUpdated}`);
50
51
  rpgInfo('Fetching new PR scrolls...');
52
+ const since = options.weeks != null
53
+ ? new Date(Date.now() - options.weeks * 7 * 24 * 60 * 60 * 1000).toISOString()
54
+ : existing.lastUpdated;
55
+ if (options.weeks != null) {
56
+ rpgInfo(`Limiting to PRs from the last ${options.weeks} week${options.weeks === 1 ? '' : 's'} (since ${new Date(since).toLocaleDateString()})...`);
57
+ }
51
58
  let newPRs;
52
59
  try {
53
60
  const fetchStartedAt = Date.now();
54
61
  newPRs = await fetchUserPRs(username, token, {
55
62
  org: options.org,
56
63
  repo: options.repository,
57
- since: existing.lastUpdated,
64
+ since,
58
65
  });
59
66
  diagLog('Fetched candidate PRs for update', {
60
67
  username,
61
68
  durationMs: Date.now() - fetchStartedAt,
62
69
  candidateCount: newPRs.length,
63
- since: existing.lastUpdated,
70
+ since,
64
71
  });
65
72
  }
66
73
  catch (err) {
@@ -86,7 +93,14 @@ export async function runUpdate(username, options) {
86
93
  return;
87
94
  }
88
95
  rpgLog('Evaluating code complexity...');
96
+ rpgInfo('Press ESC to stop scanning and save partial results.');
97
+ const { isCancelled, cleanup } = setupEscCancel();
89
98
  for (let i = 0; i < freshPRs.length; i++) {
99
+ if (isCancelled()) {
100
+ rpgInfo(`Scan stopped early after ${i} PR${i === 1 ? '' : 's'}. Saving partial results...`);
101
+ freshPRs.splice(i);
102
+ break;
103
+ }
90
104
  const pr = freshPRs[i];
91
105
  rpgProgress(i + 1, freshPRs.length, pr.title);
92
106
  diagLog('Analyzing fresh PR during update', {
@@ -125,6 +139,7 @@ export async function runUpdate(username, options) {
125
139
  rpgError(`Skipping PR #${pr.number}: ${err.message}`);
126
140
  }
127
141
  }
142
+ cleanup();
128
143
  const allPRs = [...existing.prs, ...freshPRs];
129
144
  const stats = aggregateStats(allPRs);
130
145
  diagLog('Aggregated stats for update', {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAsB;IACtE,OAAO,CAAC,yBAAyB,EAAE;QACjC,QAAQ;QACR,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;QAC7D,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;KACvF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,sEAAsE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAC1E,QAAQ,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,iEAAiE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzF,OAAO,CAAC,kDAAkD,CAAC,CAAC;QAC5D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,sCAAsC,EAAE;QAC9C,QAAQ;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;QAChC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;QACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE;YAC3C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,UAAU;YACxB,KAAK,EAAE,QAAQ,CAAC,WAAW;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,kCAAkC,EAAE;YAC1C,QAAQ;YACR,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc;YACvC,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,KAAK,EAAE,QAAQ,CAAC,WAAW;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,0CAA0C,EAAE,GAAG,EAAE;YACzD,QAAQ;YACR,OAAO;YACP,KAAK,EAAE,QAAQ,CAAC,WAAW;SAC5B,CAAC,CAAC;QACH,QAAQ,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,kCAAkC,EAAE;QAC1C,aAAa,EAAE,WAAW,CAAC,IAAI;QAC/B,cAAc,EAAE,MAAM,CAAC,MAAM;QAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;KAChD,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,QAAQ,CAAC,MAAM,4BAA4B,CAAC,CAAC;IAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,kDAAkD,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,MAAM,CAAC,+BAA+B,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,kCAAkC,EAAE;YAC1C,KAAK,EAAE,CAAC,GAAG,CAAC;YACZ,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,QAAQ,EAAE,EAAE,CAAC,MAAM;YACnB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,EAAE,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzC,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,2CAA2C,EAAE;gBACnD,QAAQ,EAAE,EAAE,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB;gBAC1C,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO;gBAC5B,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU;gBAClC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;gBACxB,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK;gBACxB,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY;gBACtC,MAAM,EAAE,EAAE,CAAC,MAAM;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBACjD,QAAQ,EAAE,EAAE,CAAC,MAAM;gBACnB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC,CAAC;YACH,QAAQ,CAAC,gBAAgB,EAAE,CAAC,MAAM,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,6BAA6B,EAAE;QACrC,kBAAkB,EAAE,MAAM,CAAC,MAAM;QACjC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;QAC1C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM;QACvD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;KAC3C,CAAC,CAAC;IAEH,OAAO,CAAC,wFAAwF,EAAE;QAChG,QAAQ;QACR,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC1C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAa;QACzB,QAAQ;QACR,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,GAAG,EAAE,MAAM;QACX,KAAK;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,CAAC,gCAAgC,EAAE;QACxC,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;QAC5B,KAAK,EAAE;YACL,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW;YACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK;SAC5B;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,+BAA+B,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,uCAAuC,EAAE;QAC/C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe;QACxC,UAAU;QACV,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC,CAAC;IAEH,UAAU,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,2CAA2C,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ function withDiagnosticsOption(command) {
16
16
  program
17
17
  .name('quackscore')
18
18
  .description('🦆 Transform your GitHub activity into a Duck RPG player card')
19
- .version('0.1.4');
19
+ .version('0.2.3');
20
20
  withDiagnosticsOption(program
21
21
  .command('init')
22
22
  .description('Configure the LLM provider and model (run once before first use)')
@@ -37,6 +37,7 @@ withDiagnosticsOption(program
37
37
  .description('Analyze all PRs and generate a player card')
38
38
  .option('--organisation <org>', 'Limit to a specific organisation')
39
39
  .option('--repository <repo>', 'Limit to a specific repository (requires --organisation)')
40
+ .option('--weeks <number>', 'Limit to PRs merged in the last N weeks', parseInt)
40
41
  .option('--github-token <token>', 'GitHub personal access token (overrides QUACKSCORE_GH_TOKEN)')
41
42
  .option('--llm-api-key <key>', 'LLM API key (overrides QUACKSCORE_LLM_API_KEY)')
42
43
  .action(async (username, options) => {
@@ -45,14 +46,16 @@ withDiagnosticsOption(program
45
46
  username,
46
47
  organisation: options.organisation,
47
48
  repository: options.repository,
49
+ weeks: options.weeks,
48
50
  });
49
- await runCreate(username, { org: options.organisation, repository: options.repository, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
51
+ await runCreate(username, { org: options.organisation, repository: options.repository, weeks: options.weeks, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
50
52
  }));
51
53
  withDiagnosticsOption(program
52
54
  .command('update <github_user>')
53
55
  .description('Analyze only new PRs since last run and regenerate card')
54
56
  .option('--organisation <org>', 'Limit to a specific organisation')
55
57
  .option('--repository <repo>', 'Limit to a specific repository (requires --organisation)')
58
+ .option('--weeks <number>', 'Limit to PRs merged in the last N weeks', parseInt)
56
59
  .option('--github-token <token>', 'GitHub personal access token (overrides QUACKSCORE_GH_TOKEN)')
57
60
  .option('--llm-api-key <key>', 'LLM API key (overrides QUACKSCORE_LLM_API_KEY)')
58
61
  .action(async (username, options) => {
@@ -61,8 +64,9 @@ withDiagnosticsOption(program
61
64
  username,
62
65
  organisation: options.organisation,
63
66
  repository: options.repository,
67
+ weeks: options.weeks,
64
68
  });
65
- await runUpdate(username, { org: options.organisation, repository: options.repository, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
69
+ await runUpdate(username, { org: options.organisation, repository: options.repository, weeks: options.weeks, githubToken: options.githubToken, llmApiKey: options.llmApiKey });
66
70
  }));
67
71
  withDiagnosticsOption(program
68
72
  .command('update-summary <github_user>')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;AAC/E,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kEAAkE,CAAC;KAC/E,cAAc,CACb,uBAAuB,EACvB,qFAAqF,CACtF;KACA,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAC9E,MAAM,CAAC,kBAAkB,EAAE,uEAAuE,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,OAAwF,EAAE,EAAE;IACzG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,0DAA0D,CAAC;KACzF,MAAM,CAAC,wBAAwB,EAAE,8DAA8D,CAAC;KAChG,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAwH,EAAE,EAAE;IAC3J,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,QAAQ;QACjB,QAAQ;QACR,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3J,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,0DAA0D,CAAC;KACzF,MAAM,CAAC,wBAAwB,EAAE,8DAA8D,CAAC;KAChG,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAwH,EAAE,EAAE;IAC3J,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,QAAQ;QACjB,QAAQ;QACR,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3J,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,8BAA8B,CAAC;KACvC,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAsD,EAAE,EAAE;IACzF,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,gBAAgB;QACzB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,gBAAgB,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,OAAkC,EAAE,EAAE;IACnD,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAkC,EAAE,EAAE;IACrE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,MAAM;QACf,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAkC,EAAE,EAAE;IACnD,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IACH,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC;AAEN,qBAAqB,CAAC,OAAO;KAC1B,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAkC,EAAE,EAAE;IACrE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACjD,OAAO,EAAE,QAAQ;QACjB,QAAQ;KACT,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC;AAEN,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA0L/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAs1B9E"}
1
+ {"version":3,"file":"leaderboard.d.ts","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA0L/E,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CA0hC9E"}
@@ -422,6 +422,97 @@ body {
422
422
  .filter-summary strong {
423
423
  color: var(--amber);
424
424
  }
425
+ .filter-date-input {
426
+ width: 100%;
427
+ padding: 14px 16px;
428
+ border-radius: 16px;
429
+ border: 1px solid rgba(255,255,255,0.1);
430
+ background: linear-gradient(180deg, rgba(34,34,34,0.96), rgba(25,25,25,0.96));
431
+ color: var(--text);
432
+ font: inherit;
433
+ cursor: pointer;
434
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
435
+ transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
436
+ }
437
+ .filter-date-input:hover {
438
+ border-color: rgba(125,162,255,0.22);
439
+ background: linear-gradient(180deg, rgba(38,38,38,0.98), rgba(28,28,28,0.98));
440
+ }
441
+ .filter-date-input:focus {
442
+ outline: none;
443
+ border-color: rgba(125,162,255,0.42);
444
+ box-shadow: 0 0 0 1px rgba(125,162,255,0.18), 0 18px 38px rgba(0,0,0,0.26);
445
+ }
446
+ .filter-date-input::-webkit-calendar-picker-indicator {
447
+ filter: invert(0.8) opacity(0.7);
448
+ cursor: pointer;
449
+ }
450
+ .modal-overlay {
451
+ position: fixed;
452
+ inset: 0;
453
+ z-index: 100;
454
+ display: grid;
455
+ place-items: center;
456
+ background: rgba(0,0,0,0.6);
457
+ backdrop-filter: blur(4px);
458
+ }
459
+ .modal-overlay[hidden] {
460
+ display: none;
461
+ }
462
+ .modal {
463
+ width: min(440px, calc(100vw - 40px));
464
+ padding: 28px;
465
+ border-radius: 24px;
466
+ border: 1px solid rgba(125,162,255,0.22);
467
+ background:
468
+ radial-gradient(circle at top right, rgba(125,162,255,0.1), transparent 34%),
469
+ linear-gradient(180deg, rgba(22,22,22,0.99), rgba(14,14,14,0.99));
470
+ box-shadow: 0 32px 64px rgba(0,0,0,0.56);
471
+ }
472
+ .modal h3 {
473
+ margin: 0 0 20px;
474
+ font-family: "Cinzel", ui-serif, Georgia, serif;
475
+ font-size: 1.1rem;
476
+ color: var(--amber);
477
+ }
478
+ .modal-fields {
479
+ display: grid;
480
+ grid-template-columns: 1fr 1fr;
481
+ gap: 14px;
482
+ margin-bottom: 22px;
483
+ }
484
+ .modal-field {
485
+ display: grid;
486
+ gap: 8px;
487
+ }
488
+ .modal-actions {
489
+ display: flex;
490
+ justify-content: flex-end;
491
+ gap: 10px;
492
+ }
493
+ .modal-btn {
494
+ padding: 10px 20px;
495
+ border-radius: 12px;
496
+ border: 1px solid rgba(255,255,255,0.1);
497
+ background: rgba(255,255,255,0.05);
498
+ color: var(--text);
499
+ font: inherit;
500
+ font-size: 0.9rem;
501
+ cursor: pointer;
502
+ transition: background 140ms ease, border-color 140ms ease;
503
+ }
504
+ .modal-btn:hover {
505
+ background: rgba(255,255,255,0.09);
506
+ }
507
+ .modal-btn.primary {
508
+ border-color: rgba(125,162,255,0.36);
509
+ background: linear-gradient(180deg, rgba(125,162,255,0.22), rgba(91,122,219,0.18));
510
+ color: #dbe5ff;
511
+ font-weight: 600;
512
+ }
513
+ .modal-btn.primary:hover {
514
+ background: linear-gradient(180deg, rgba(125,162,255,0.3), rgba(91,122,219,0.24));
515
+ }
425
516
  .board {
426
517
  display: grid;
427
518
  gap: 12px;
@@ -662,11 +753,14 @@ body {
662
753
  <section class="filters" aria-label="Leaderboard filters">
663
754
  <div class="filter-group">
664
755
  <label class="filter-label" for="time-filter">Time</label>
665
- ${renderFilterDropdown('time-filter', 'data-time-filter', 'All', [
666
- { value: 'all', label: 'All' },
756
+ ${renderFilterDropdown('time-filter', 'data-time-filter', 'All time', [
757
+ { value: 'all', label: 'All time' },
667
758
  { value: 'last_week', label: 'Last week' },
668
759
  { value: 'last_month', label: 'Last month' },
760
+ { value: 'last_3_months', label: 'Last 3 months' },
761
+ { value: 'last_6_months', label: 'Last 6 months' },
669
762
  { value: 'last_year', label: 'Last year' },
763
+ { value: 'custom', label: 'Custom range...' },
670
764
  ])}
671
765
  </div>
672
766
  <div class="filter-group">
@@ -685,6 +779,25 @@ body {
685
779
  <button class="page-btn" type="button" data-nav="next">Next</button>
686
780
  </div>
687
781
  </div>
782
+ <div class="modal-overlay" id="date-range-modal" hidden>
783
+ <div class="modal">
784
+ <h3>Custom Date Range</h3>
785
+ <div class="modal-fields">
786
+ <div class="modal-field">
787
+ <label class="filter-label" for="modal-from">From</label>
788
+ <input class="filter-date-input" type="date" id="modal-from" data-modal-from>
789
+ </div>
790
+ <div class="modal-field">
791
+ <label class="filter-label" for="modal-to">To</label>
792
+ <input class="filter-date-input" type="date" id="modal-to" data-modal-to>
793
+ </div>
794
+ </div>
795
+ <div class="modal-actions">
796
+ <button class="modal-btn" type="button" data-modal-cancel>Cancel</button>
797
+ <button class="modal-btn primary" type="button" data-modal-apply>Apply</button>
798
+ </div>
799
+ </div>
800
+ </div>
688
801
  <script id="leaderboard-data" type="application/json">${serializeForScript(profiles)}</script>
689
802
  <script>
690
803
  (function() {
@@ -695,6 +808,8 @@ body {
695
808
  all: 'all time',
696
809
  last_week: 'the last week',
697
810
  last_month: 'the last month',
811
+ last_3_months: 'the last 3 months',
812
+ last_6_months: 'the last 6 months',
698
813
  last_year: 'the last year',
699
814
  };
700
815
 
@@ -709,13 +824,23 @@ body {
709
824
  const nextButton = document.querySelector('[data-nav="next"]');
710
825
  const pageStatus = document.querySelector('[data-page-status]');
711
826
 
712
- if (!dataElement || !board || !timeFilter || !specializationFilter || !count || !filterSummary || !pagination || !prevButton || !nextButton || !pageStatus) {
827
+ const modalOverlay = document.getElementById('date-range-modal');
828
+ const modalFromInput = document.querySelector('[data-modal-from]');
829
+ const modalToInput = document.querySelector('[data-modal-to]');
830
+ const modalCancelBtn = document.querySelector('[data-modal-cancel]');
831
+ const modalApplyBtn = document.querySelector('[data-modal-apply]');
832
+
833
+ if (!dataElement || !board || !timeFilter || !specializationFilter || !count || !filterSummary || !pagination || !prevButton || !nextButton || !pageStatus || !modalOverlay || !modalFromInput || !modalToInput || !modalCancelBtn || !modalApplyBtn) {
713
834
  return;
714
835
  }
715
836
 
716
837
  const profiles = JSON.parse(dataElement.textContent || '[]');
717
838
  let currentPage = 1;
718
- const dropdowns = [setupDropdown(timeFilter), setupDropdown(specializationFilter)].filter(Boolean);
839
+ let customFrom = '';
840
+ let customTo = '';
841
+ let previousTimeValue = 'all';
842
+ const timeDropdown = setupDropdown(timeFilter);
843
+ const dropdowns = [timeDropdown, setupDropdown(specializationFilter)].filter(Boolean);
719
844
 
720
845
  document.addEventListener('click', (event) => {
721
846
  dropdowns.forEach((instance) => {
@@ -824,7 +949,7 @@ body {
824
949
  });
825
950
  });
826
951
 
827
- return { dropdown, close };
952
+ return { dropdown, close, setValue };
828
953
  }
829
954
 
830
955
  const calculateLevel = (totalPoints) => {
@@ -846,11 +971,13 @@ body {
846
971
  || left.username.localeCompare(right.username);
847
972
 
848
973
  const cutoffFor = (timeValue) => {
849
- if (timeValue === 'all') return null;
974
+ if (timeValue === 'all' || timeValue === 'custom') return null;
850
975
  const now = new Date();
851
976
  const cutoff = new Date(now);
852
977
  if (timeValue === 'last_week') cutoff.setDate(cutoff.getDate() - 7);
853
978
  if (timeValue === 'last_month') cutoff.setDate(cutoff.getDate() - 30);
979
+ if (timeValue === 'last_3_months') cutoff.setDate(cutoff.getDate() - 90);
980
+ if (timeValue === 'last_6_months') cutoff.setDate(cutoff.getDate() - 180);
854
981
  if (timeValue === 'last_year') cutoff.setDate(cutoff.getDate() - 365);
855
982
  return cutoff.getTime();
856
983
  };
@@ -878,10 +1005,14 @@ body {
878
1005
  }
879
1006
 
880
1007
  const cutoff = cutoffFor(timeValue);
1008
+ const customFromMs = timeValue === 'custom' && customFrom ? Date.parse(customFrom) : null;
1009
+ const customToMs = timeValue === 'custom' && customTo ? Date.parse(customTo + 'T23:59:59.999') : null;
881
1010
  const filtered = profile.contributions.filter((contribution) => {
882
1011
  const mergedAt = Date.parse(contribution.mergedAt);
883
1012
  if (Number.isNaN(mergedAt)) return false;
884
1013
  if (cutoff != null && mergedAt < cutoff) return false;
1014
+ if (customFromMs != null && mergedAt < customFromMs) return false;
1015
+ if (customToMs != null && mergedAt > customToMs) return false;
885
1016
  if (specializationValue !== 'all' && !contribution.areas.includes(specializationValue)) return false;
886
1017
  return true;
887
1018
  });
@@ -956,7 +1087,15 @@ body {
956
1087
  const renderEmptyState = () => {
957
1088
  const specializationValue = specializationFilter.value;
958
1089
  const specializationLabel = specializationValue === 'all' ? 'all specializations' : formatLabel(specializationValue);
959
- const timeLabel = TIME_LABELS[timeFilter.value] || 'all time';
1090
+ let timeLabel;
1091
+ if (timeFilter.value === 'custom') {
1092
+ const parts = [];
1093
+ if (customFrom) parts.push('from ' + formatDate(customFrom));
1094
+ if (customTo) parts.push('to ' + formatDate(customTo));
1095
+ timeLabel = parts.length ? parts.join(' ') : 'custom range';
1096
+ } else {
1097
+ timeLabel = TIME_LABELS[timeFilter.value] || 'all time';
1098
+ }
960
1099
  return '<div class="empty">No leaderboard entries match ' + escapeHtml(timeLabel) + ' and ' + escapeHtml(specializationLabel) + '.</div>';
961
1100
  };
962
1101
 
@@ -981,7 +1120,16 @@ body {
981
1120
 
982
1121
  const specializationValue = specializationFilter.value;
983
1122
  const specializationLabel = specializationValue === 'all' ? 'all specializations' : formatLabel(specializationValue);
984
- filterSummary.innerHTML = '<strong>' + entries.length + '</strong> profiles for ' + escapeHtml(TIME_LABELS[timeFilter.value] || 'all time') + ' across ' + escapeHtml(specializationLabel) + '.';
1123
+ let timeDescription;
1124
+ if (timeFilter.value === 'custom') {
1125
+ const parts = [];
1126
+ if (customFrom) parts.push('from ' + formatDate(customFrom));
1127
+ if (customTo) parts.push('to ' + formatDate(customTo));
1128
+ timeDescription = parts.length ? parts.join(' ') : 'custom range';
1129
+ } else {
1130
+ timeDescription = TIME_LABELS[timeFilter.value] || 'all time';
1131
+ }
1132
+ filterSummary.innerHTML = '<strong>' + entries.length + '</strong> profiles for ' + escapeHtml(timeDescription) + ' across ' + escapeHtml(specializationLabel) + '.';
985
1133
 
986
1134
  pagination.hidden = pageCount <= 1;
987
1135
  prevButton.disabled = currentPage === 1;
@@ -989,11 +1137,59 @@ body {
989
1137
  pageStatus.innerHTML = 'Page <strong>' + currentPage + '</strong> of ' + pageCount;
990
1138
  };
991
1139
 
1140
+ const openModal = () => {
1141
+ modalFromInput.value = customFrom;
1142
+ modalToInput.value = customTo;
1143
+ modalOverlay.hidden = false;
1144
+ modalFromInput.focus();
1145
+ };
1146
+
1147
+ const closeModal = () => {
1148
+ modalOverlay.hidden = true;
1149
+ };
1150
+
992
1151
  timeFilter.addEventListener('change', () => {
1152
+ if (timeFilter.value === 'custom') {
1153
+ openModal();
1154
+ } else {
1155
+ previousTimeValue = timeFilter.value;
1156
+ currentPage = 1;
1157
+ render();
1158
+ }
1159
+ });
1160
+
1161
+ modalCancelBtn.addEventListener('click', () => {
1162
+ closeModal();
1163
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1164
+ });
1165
+
1166
+ modalApplyBtn.addEventListener('click', () => {
1167
+ customFrom = modalFromInput.value;
1168
+ customTo = modalToInput.value;
1169
+ const parts = [];
1170
+ if (customFrom) parts.push(formatDate(customFrom));
1171
+ if (customTo) parts.push(formatDate(customTo));
1172
+ const label = timeFilter.closest('[data-filter-dropdown]')?.querySelector('[data-filter-label]');
1173
+ if (label) label.textContent = parts.length ? parts.join(' \u2013 ') : 'Custom range';
1174
+ closeModal();
993
1175
  currentPage = 1;
994
1176
  render();
995
1177
  });
996
1178
 
1179
+ modalOverlay.addEventListener('click', (event) => {
1180
+ if (event.target === modalOverlay) {
1181
+ closeModal();
1182
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1183
+ }
1184
+ });
1185
+
1186
+ document.addEventListener('keydown', (event) => {
1187
+ if (event.key === 'Escape' && !modalOverlay.hidden) {
1188
+ closeModal();
1189
+ if (timeDropdown) timeDropdown.setValue(previousTimeValue, false);
1190
+ }
1191
+ });
1192
+
997
1193
  specializationFilter.addEventListener('change', () => {
998
1194
  currentPage = 1;
999
1195
  render();
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leaderboard.js","sourceRoot":"","sources":["../../src/report/leaderboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function setupEscCancel(): {
2
+ isCancelled: () => boolean;
3
+ cleanup: () => void;
4
+ };
5
+ //# sourceMappingURL=cancel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/shared/cancel.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,IAAI;IAAE,WAAW,EAAE,MAAM,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CA8BpF"}
@@ -0,0 +1,28 @@
1
+ let cancelled = false;
2
+ export function setupEscCancel() {
3
+ cancelled = false;
4
+ if (!process.stdin.isTTY) {
5
+ return { isCancelled: () => cancelled, cleanup: () => { } };
6
+ }
7
+ process.stdin.setRawMode(true);
8
+ process.stdin.resume();
9
+ process.stdin.setEncoding('utf8');
10
+ const onData = (key) => {
11
+ if (key === '\u001b') {
12
+ cancelled = true;
13
+ }
14
+ else if (key === '\u0003') {
15
+ process.exit(0);
16
+ }
17
+ };
18
+ process.stdin.on('data', onData);
19
+ const cleanup = () => {
20
+ process.stdin.removeListener('data', onData);
21
+ if (process.stdin.isTTY) {
22
+ process.stdin.setRawMode(false);
23
+ }
24
+ process.stdin.pause();
25
+ };
26
+ return { isCancelled: () => cancelled, cleanup };
27
+ }
28
+ //# sourceMappingURL=cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/shared/cancel.ts"],"names":[],"mappings":"AAAA,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,cAAc;IAC5B,SAAS,GAAG,KAAK,CAAC;IAElB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;QAC7B,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quackscore",
3
- "version": "0.2.0",
3
+ "version": "0.2.3",
4
4
  "description": "Analyze GitHub activity and generate a Duck RPG-style developer card",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",