hacklab 0.13.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,31 +6,31 @@ a card.
6
6
 
7
7
  ## Install
8
8
 
9
- Install, sign in, then scan this machine:
9
+ Install, then run setup:
10
10
 
11
11
  ```bash
12
12
  curl -fsSL https://hacklab.so/install | sh
13
- hacklab login
14
- hacklab scan
13
+ hacklab setup
15
14
  ```
16
15
 
17
16
  The script checks for Node 20+ and installs the CLI globally — that's all it
18
- does. After it, `hacklab` is a real command on your PATH; `login` creates or
19
- restores your account and `scan` uploads this machine's usage, shares the card,
20
- and turns on the background daemon. If you already have Node 20 or newer
21
- (including a version manager), you can skip the script:
17
+ does. After it, `hacklab` is a real command on your PATH, and `hacklab setup` is
18
+ the guided first run: it scans this machine's AI usage, signs you in with GitHub,
19
+ uploads your usage, and starts the background sync. If you already have Node 20
20
+ or newer (including a version manager), you can skip the script:
22
21
 
23
22
  ```bash
24
23
  npm i -g hacklab@latest
25
- hacklab login
26
- hacklab scan
24
+ hacklab setup
27
25
  ```
28
26
 
27
+ `login`, `scan`, and `sync` all still exist as standalone commands for re-running
28
+ one piece on its own.
29
+
29
30
  ### Windows
30
31
 
31
32
  On native Windows (PowerShell), use the `.ps1` installer instead — it checks
32
- for Node 20+ and installs the CLI globally, then points you at `hacklab login`
33
- and `hacklab scan`:
33
+ for Node 20+ and installs the CLI globally, then points you at `hacklab setup`:
34
34
 
35
35
  ```powershell
36
36
  irm https://hacklab.so/install.ps1 | iex
@@ -71,6 +71,9 @@ machine's usage to your profile. Cursor users with no API key are offered one
71
71
 
72
72
  ## Commands
73
73
 
74
+ - `hacklab setup` — the guided first run: scan, GitHub sign-in, one question
75
+ about sharing prompts, upload, background sync on. Safe to re-run; it skips
76
+ whatever is already done and stops early once everything is.
74
77
  - `hacklab scan` — scan this machine, upload to your profile, share the card.
75
78
  Requires login. Summons the daemon afterwards (`--no-daemon` to skip).
76
79
  - `hacklab sync` — re-scan local AI usage and sync it to your profile.
package/dist/cli.js CHANGED
@@ -71,6 +71,15 @@ const [cmd, ...args] = applyGlobalFlags(process.argv.slice(2));
71
71
  // core flow. Adding a command to the registry does NOT add it here — decide
72
72
  // whether it belongs on the front page.
73
73
  const HELP_GROUPS = [
74
+ {
75
+ title: 'start here',
76
+ rows: [
77
+ {
78
+ label: 'setup',
79
+ summary: 'first run: scan, sign in, start the background sync',
80
+ },
81
+ ],
82
+ },
74
83
  {
75
84
  title: 'auth',
76
85
  rows: [
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,0DAA0D;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,YAAY,GAA4C;IAC5D,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CACX,yBAAyB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,CAChH,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC;IACD,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAA;IACpC,CAAC;IACD,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAA;IAClC,CAAC;CACF,CAAA;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAc;IACtC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACpB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACd,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAA;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE9D,+EAA+E;AAC/E,0EAA0E;AAC1E,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,wCAAwC;AACxC,MAAM,WAAW,GAGZ;IACH;QACE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE;YAClD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,8BAA8B,EAAE;YAC5D,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE;SACxD;KACF;IACD;QACE,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,4BAA4B,EAAE;YAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE;SACnD;KACF;IACD;QACE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE;YAC/D,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,sCAAsC,EAAE;YAClE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,EAAE;SACpE;KACF;IACD;QACE,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE;YACnD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,EAAE;YAClE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,EAAE;SAClE;KACF;IACD;QACE,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,EAAE;YAC1D,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;SACrD;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;KACxE;IACD;QACE,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;KACrE;IACD;QACE,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE;YAC9C;gBACE,KAAK,EAAE,cAAc;gBACrB,OAAO,EACL,+DAA+D;aAClE;SACF;KACF;IACD;QACE,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE;YACJ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE;YAC/C;gBACE,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,gDAAgD;aAC1D;YACD;gBACE,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,iCAAiC;aAC3C;SACF;KACF;IACD;QACE,KAAK,EAAE,OAAO;QACd,IAAI,EAAE;YACJ;gBACE,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,mDAAmD;aAC7D;YACD,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,EAAE;YAC5D,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,EAAE;SACzD;KACF;CACF,CAAA;AAED,SAAS,SAAS;IAChB,MAAM,EAAE,CAAA;IACR,8EAA8E;IAC9E,qCAAqC;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CACjE,CAAA;IACD,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAA;QAC/B,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjB,CAAC;AAED,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,KAAK,UAAU,IAAI;IACjB,8EAA8E;IAC9E,0EAA0E;IAC1E,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC7C,SAAS,EAAE,CAAA;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,gBAAgB;IAChB,MAAM,yBAAyB,EAAE,CAAA;IAEjC,2EAA2E;IAC3E,6EAA6E;IAC7E,mCAAmC;IACnC,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE/B,8EAA8E;IAC9E,iEAAiE;IACjE,6DAA6D;IAC7D,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,sBAAsB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAClE,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GACX,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAA;QACxC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,gDAAgD;IAChD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC/D,MAAM,eAAe,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAEvB,+EAA+E;IAC/E,0EAA0E;IAC1E,MAAM,iBAAiB,EAAE,CAAA;AAC3B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;IAClC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACrD,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC5C,MAAM,iBAAiB,EAAE,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,39 @@
1
+ import { type Session } from '../session.js';
2
+ export type LoginOutcome = {
3
+ /** The session as it now stands (already persisted by `performLogin`). */
4
+ session: Session;
5
+ /**
6
+ * True when the account had a handle that still needed claiming and
7
+ * `POST /api/cli/claim` never succeeded. `login` shrugs this off; `setup`
8
+ * surfaces it, because the web onboarding UI polls `username_claimed` and
9
+ * waits forever when the claim is silently lost.
10
+ */
11
+ claimFailed: boolean;
12
+ };
1
13
  /**
2
- * Authenticate via GitHub's device flow. Unknown GitHub identities get an
3
- * account. An unclaimed GitHub-derived handle is claimed as-is.
14
+ * Authenticate via GitHub's device flow and persist the session. Unknown GitHub
15
+ * identities get an account. An unclaimed GitHub-derived handle is claimed as-is.
16
+ *
17
+ * The shared implementation behind both `hacklab login` and `hacklab setup` —
18
+ * there is exactly one device flow (the code/URL beat with the parallel
19
+ * Enter-wait ↔ poll race), and both front doors go through it. `claimAttempts`
20
+ * is how hard the handle claim tries before giving up.
21
+ */
22
+ export declare function performLogin(opts?: {
23
+ claimAttempts?: number;
24
+ }): Promise<LoginOutcome>;
25
+ /**
26
+ * Make sure the session's handle is actually claimed, resolving it from the
27
+ * profile first when the device poll didn't send one. Pure: it returns the
28
+ * updated session (the same object when nothing changed) and leaves persistence
29
+ * to the caller, so it works both on a session that was just minted and on one
30
+ * already sitting on disk from a half-finished signup.
31
+ */
32
+ export declare function ensureHandleClaimed(session: Session, attempts?: number): Promise<LoginOutcome>;
33
+ /**
34
+ * `hacklab login` — the standalone re-authenticate command. A lost handle claim
35
+ * stays quiet here (the account still works; the next login retries it); the
36
+ * guided `setup` flow is the one that has to complain.
4
37
  */
5
38
  export declare function login(): Promise<void>;
6
39
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4C3C"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,eAAe,CAAA;AAatB,MAAM,MAAM,YAAY,GAAG;IACzB,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,OAAO,CAAC,YAAY,CAAC,CAoBvB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAI,GACX,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAED;;;;GAIG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB3C"}
@@ -1,46 +1,83 @@
1
1
  import { clearSyncPaused } from '../daily-sync.js';
2
2
  import { captureEvent, identifyUser } from '../posthog.js';
3
- import { getAppUrl, saveSession } from '../session.js';
3
+ import { getAppUrl, resolveAppUrl, saveSession, } from '../session.js';
4
4
  import { bold, dim, link } from '../ui.js';
5
5
  import { openBrowser } from '../utils/openBrowser.js';
6
6
  import { waitForEnter } from '../utils/waitForEnter.js';
7
7
  /**
8
- * Authenticate via GitHub's device flow. Unknown GitHub identities get an
9
- * account. An unclaimed GitHub-derived handle is claimed as-is.
8
+ * Authenticate via GitHub's device flow and persist the session. Unknown GitHub
9
+ * identities get an account. An unclaimed GitHub-derived handle is claimed as-is.
10
+ *
11
+ * The shared implementation behind both `hacklab login` and `hacklab setup` —
12
+ * there is exactly one device flow (the code/URL beat with the parallel
13
+ * Enter-wait ↔ poll race), and both front doors go through it. `claimAttempts`
14
+ * is how hard the handle claim tries before giving up.
10
15
  */
11
- export async function login() {
16
+ export async function performLogin(opts = {}) {
12
17
  const appUrl = getAppUrl();
13
18
  const creds = await loginViaDevice(appUrl);
14
- let handle = creds.handle;
15
- let usernameClaimed = creds.usernameClaimed;
16
- if (!handle) {
17
- const me = await fetchMe(appUrl, creds.token);
18
- handle = me?.handle ?? me?.githubUsername ?? undefined;
19
- if (me?.claimed != null)
20
- usernameClaimed = me.claimed;
21
- }
22
- if (handle && !usernameClaimed) {
23
- const claimed = await claimHandle(appUrl, creds.token, handle);
24
- if (claimed) {
25
- handle = claimed;
26
- usernameClaimed = true;
27
- }
28
- }
29
- await saveSession({
19
+ const outcome = await ensureHandleClaimed({
30
20
  token: creds.token,
31
21
  email: creds.email,
32
- handle,
33
- usernameClaimed,
22
+ handle: creds.handle,
23
+ usernameClaimed: creds.usernameClaimed,
34
24
  appUrl,
35
25
  savedAt: new Date().toISOString(),
36
26
  expiresAt: creds.expiresAt,
37
- });
27
+ }, opts.claimAttempts);
28
+ await saveSession(outcome.session);
38
29
  await clearSyncPaused();
30
+ return outcome;
31
+ }
32
+ /**
33
+ * Make sure the session's handle is actually claimed, resolving it from the
34
+ * profile first when the device poll didn't send one. Pure: it returns the
35
+ * updated session (the same object when nothing changed) and leaves persistence
36
+ * to the caller, so it works both on a session that was just minted and on one
37
+ * already sitting on disk from a half-finished signup.
38
+ */
39
+ export async function ensureHandleClaimed(session, attempts = 1) {
40
+ if (session.handle && session.usernameClaimed) {
41
+ return { session, claimFailed: false };
42
+ }
43
+ const appUrl = resolveAppUrl(session);
44
+ let handle = session.handle;
45
+ let usernameClaimed = session.usernameClaimed;
46
+ if (!handle) {
47
+ const me = await fetchMe(appUrl, session.token);
48
+ handle = me?.handle ?? me?.githubUsername ?? undefined;
49
+ if (me?.claimed != null)
50
+ usernameClaimed = me.claimed;
51
+ }
52
+ if (!handle || usernameClaimed) {
53
+ return {
54
+ session: { ...session, handle, usernameClaimed },
55
+ claimFailed: false,
56
+ };
57
+ }
58
+ const claimed = await claimHandle(appUrl, session.token, handle, attempts);
59
+ return {
60
+ session: {
61
+ ...session,
62
+ handle: claimed ?? handle,
63
+ usernameClaimed: claimed ? true : usernameClaimed,
64
+ },
65
+ claimFailed: claimed === null,
66
+ };
67
+ }
68
+ /**
69
+ * `hacklab login` — the standalone re-authenticate command. A lost handle claim
70
+ * stays quiet here (the account still works; the next login retries it); the
71
+ * guided `setup` flow is the one that has to complain.
72
+ */
73
+ export async function login() {
74
+ const { session } = await performLogin();
75
+ const { handle, email, appUrl, usernameClaimed } = session;
39
76
  console.log('');
40
- console.log(handle ? `signed in as @${handle}` : `signed in as ${creds.email}`);
77
+ console.log(handle ? `signed in as @${handle}` : `signed in as ${email}`);
41
78
  if (handle) {
42
79
  await identifyUser(handle, {
43
- $set: { email: creds.email, handle, app_url: appUrl },
80
+ $set: { email, handle, app_url: appUrl },
44
81
  });
45
82
  await captureEvent(handle, 'cli_login_completed', {
46
83
  login_method: 'device_flow',
@@ -150,23 +187,31 @@ async function fetchMe(appUrl, token) {
150
187
  return null;
151
188
  }
152
189
  }
153
- async function claimHandle(appUrl, token, username) {
154
- try {
155
- const res = await fetch(`${appUrl}/api/cli/claim`, {
156
- method: 'POST',
157
- headers: {
158
- 'Content-Type': 'application/json',
159
- Authorization: `Bearer ${token}`,
160
- },
161
- body: JSON.stringify({ username }),
162
- });
163
- if (!res.ok)
164
- return null;
165
- const data = (await res.json());
166
- return data.handle ?? username;
167
- }
168
- catch {
169
- return null;
190
+ /**
191
+ * Claim `username` for this account, returning the claimed handle or null if
192
+ * every attempt failed. `attempts > 1` retries — the claim is idempotent for the
193
+ * owner, and a lost one leaves an account the web onboarding never sees finish.
194
+ */
195
+ async function claimHandle(appUrl, token, username, attempts = 1) {
196
+ for (let i = 0; i < Math.max(1, attempts); i++) {
197
+ try {
198
+ const res = await fetch(`${appUrl}/api/cli/claim`, {
199
+ method: 'POST',
200
+ headers: {
201
+ 'Content-Type': 'application/json',
202
+ Authorization: `Bearer ${token}`,
203
+ },
204
+ body: JSON.stringify({ username }),
205
+ });
206
+ if (res.ok) {
207
+ const data = (await res.json());
208
+ return data.handle ?? username;
209
+ }
210
+ }
211
+ catch {
212
+ // fall through to the next attempt
213
+ }
170
214
  }
215
+ return null;
171
216
  }
172
217
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `hacklab setup` — the front door.
3
+ *
4
+ * scan → anonymous rank → GitHub auth → one consent question → upload → daemon
5
+ *
6
+ * The one deliberate composite command in the CLI (DESIGN.md's "one job per
7
+ * command" carries a recorded exception for it): face-to-face testing showed
8
+ * that install → `login` → `scan` reads as three unrelated chores to someone who
9
+ * has never used hacklab, and people stalled between them. Each stage still
10
+ * degrades on its own terms, and every piece remains its own command for anyone
11
+ * who wants to re-run just that piece.
12
+ */
13
+ export declare function setup(): Promise<void>;
14
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2K3C"}
@@ -0,0 +1,265 @@
1
+ import * as clack from '@clack/prompts';
2
+ import { dailySyncState, installDailySync } from '../daily-sync.js';
3
+ import { captureEvent, identifyUser } from '../posthog.js';
4
+ import { loadPromptConsent, savePromptConsent, } from '../prompt-consent.js';
5
+ import { rebuildScanState } from '../scanners/incremental.js';
6
+ import { collectToolScans, mergeToolScans, } from '../scanners/index.js';
7
+ import { loadSession, resolveAppUrl, saveSession, } from '../session.js';
8
+ import { scanConsentedPromptStats, uploadTokenScan } from '../sync.js';
9
+ import { bold, dim, error, info, success } from '../ui.js';
10
+ import { ensureHandleClaimed, performLogin } from './login.js';
11
+ import { formatScanReceipt } from './scan.js';
12
+ /**
13
+ * `hacklab setup` — the front door.
14
+ *
15
+ * scan → anonymous rank → GitHub auth → one consent question → upload → daemon
16
+ *
17
+ * The one deliberate composite command in the CLI (DESIGN.md's "one job per
18
+ * command" carries a recorded exception for it): face-to-face testing showed
19
+ * that install → `login` → `scan` reads as three unrelated chores to someone who
20
+ * has never used hacklab, and people stalled between them. Each stage still
21
+ * degrades on its own terms, and every piece remains its own command for anyone
22
+ * who wants to re-run just that piece.
23
+ */
24
+ export async function setup() {
25
+ clack.intro(bold('Hacklab CLI setup'));
26
+ console.log(dim('scans your AI usage, connects GitHub, and starts a background usage sync'));
27
+ console.log('');
28
+ const existing = await loadSession();
29
+ const appUrl = resolveAppUrl(existing);
30
+ const syncState = await dailySyncState();
31
+ // ── Already set up ───────────────────────────────────────────────────────
32
+ // A finished account AND a live daemon means there is genuinely nothing to
33
+ // do. Anything less falls through and skips only the stages already done.
34
+ if (existing?.handle && existing.usernameClaimed && syncState === 'current') {
35
+ console.log(`already set up — you're ${bold(`@${existing.handle}`)}`);
36
+ console.log(dim('re-scan with `hacklab scan`, re-upload with `hacklab sync`'));
37
+ clack.outro(dim(`${appUrl}/${existing.handle}`));
38
+ return;
39
+ }
40
+ // ── Scan (before auth — an anonymous scan needs no account) ──────────────
41
+ const spin = clack.spinner();
42
+ spin.start('scanning local AI tool usage');
43
+ let results;
44
+ try {
45
+ results = await collectToolScans();
46
+ }
47
+ catch (err) {
48
+ spin.stop('scan failed');
49
+ clack.cancel(`couldn't read local AI usage: ${err instanceof Error ? err.message : String(err)}`);
50
+ process.exit(1);
51
+ }
52
+ spin.stop('scan complete');
53
+ const scan = mergeToolScans(results);
54
+ if (scan.grandTotal > 0) {
55
+ console.log('');
56
+ for (const line of formatScanReceipt(scan))
57
+ console.log(line);
58
+ console.log('');
59
+ }
60
+ else {
61
+ // No hard floor: a hackathon-door signup on a fresh laptop is exactly who
62
+ // this flow is for, so the default is yes.
63
+ const cont = await clack.confirm({
64
+ message: 'No AI usage found on this machine. Set up your account anyway?',
65
+ initialValue: true,
66
+ });
67
+ if (clack.isCancel(cont) || !cont) {
68
+ clack.outro(dim('come back after some Claude Code / Codex / Cursor sessions.'));
69
+ return;
70
+ }
71
+ }
72
+ // ── Anonymous rank preview (a hook, never a gate) ────────────────────────
73
+ let previewRank;
74
+ if (scan.grandTotal > 0) {
75
+ const preview = await fetchRankPreview(appUrl, scan.grandTotal);
76
+ if (preview) {
77
+ previewRank = preview.rank;
78
+ console.log(`${bold(`you'd be #${preview.rank}`)} of ${preview.ofTotal} hackers`);
79
+ console.log('');
80
+ }
81
+ }
82
+ // ── GitHub auth (the exact device flow `hacklab login` runs) ─────────────
83
+ let session;
84
+ let claimFailed;
85
+ if (existing) {
86
+ // Reuse a session that's already on disk. It may still be half-finished
87
+ // (auth succeeded, the claim didn't), so run the claim guard over it.
88
+ const outcome = await ensureHandleClaimed(existing, 2);
89
+ if (outcome.session !== existing)
90
+ await saveSession(outcome.session);
91
+ session = outcome.session;
92
+ claimFailed = outcome.claimFailed;
93
+ console.log(session.handle
94
+ ? `signed in as @${session.handle}`
95
+ : `signed in as ${session.email}`);
96
+ console.log('');
97
+ }
98
+ else {
99
+ try {
100
+ const outcome = await performLogin({ claimAttempts: 2 });
101
+ session = outcome.session;
102
+ claimFailed = outcome.claimFailed;
103
+ }
104
+ catch (err) {
105
+ clack.cancel(`GitHub sign-in failed: ${err instanceof Error ? err.message : String(err)}. run \`hacklab setup\` again.`);
106
+ process.exit(1);
107
+ }
108
+ console.log('');
109
+ console.log(session.handle
110
+ ? `signed in as @${session.handle}`
111
+ : `signed in as ${session.email}`);
112
+ console.log('');
113
+ }
114
+ // A lost claim must never be silent here: the web onboarding page polls
115
+ // `username_claimed` and would sit spinning forever.
116
+ if (claimFailed) {
117
+ error("couldn't finish claiming your handle");
118
+ info(dim('run `hacklab login` again to finish it'));
119
+ console.log('');
120
+ }
121
+ // ── The one question in the flow ─────────────────────────────────────────
122
+ const consent = await askConversationConsent();
123
+ // ── Upload ───────────────────────────────────────────────────────────────
124
+ spin.start('saving your usage');
125
+ let rank;
126
+ try {
127
+ const promptStats = await scanConsentedPromptStats(consent);
128
+ const uploaded = await uploadTokenScan(session, scan, {
129
+ interactive: true,
130
+ timeoutMs: 120_000,
131
+ promptStats,
132
+ });
133
+ // A full scan just went out, so re-base the minutely tick's incremental
134
+ // state on it — otherwise the first tick re-uploads the whole history.
135
+ await rebuildScanState(results);
136
+ spin.stop('usage saved');
137
+ const after = uploaded.rankAfter;
138
+ if (typeof after === 'number' && Number.isFinite(after))
139
+ rank = after;
140
+ if (rank)
141
+ console.log(`rank: #${rank}`);
142
+ }
143
+ catch {
144
+ // Never fatal — the account exists, and `hacklab sync` is the recovery.
145
+ spin.stop('usage sync deferred');
146
+ console.log(dim('run `hacklab sync` later to upload it'));
147
+ }
148
+ // ── Daemon (silent; the intro line is the whole disclosure) ──────────────
149
+ await installDaemon(syncState, session.handle);
150
+ // ── Tail ─────────────────────────────────────────────────────────────────
151
+ console.log('');
152
+ success(session.handle ? `you're in — ${appUrl}/${session.handle}` : "you're in");
153
+ clack.outro(dim('head back to your browser — the page will move on by itself'));
154
+ if (session.handle) {
155
+ await identifyUser(session.handle, {
156
+ $set: {
157
+ email: session.email,
158
+ handle: session.handle,
159
+ app_url: appUrl,
160
+ },
161
+ $set_once: { joined_at: new Date().toISOString() },
162
+ });
163
+ await captureEvent(session.handle, 'cli_setup_completed', {
164
+ tokens_total: scan.grandTotal,
165
+ ...((rank ?? previewRank) ? { rank: rank ?? previewRank } : {}),
166
+ prompt_consent: consent,
167
+ });
168
+ }
169
+ }
170
+ /**
171
+ * Ask once whether to share conversation text, defaulting to yes.
172
+ *
173
+ * Deliberately NOT prompt-consent.ts's `askYesNo` (which refuses to carry a
174
+ * default): setup is the one place a default-yes is the product decision, and
175
+ * `clack.confirm` with `initialValue: true` still requires the user to accept it
176
+ * — a keypress they perform, not a value applied behind their back. `sync`'s
177
+ * no-default disclosure is untouched. A non-TTY run has nobody to accept, so it
178
+ * stays at 'none'.
179
+ */
180
+ async function askConversationConsent() {
181
+ const stored = await loadPromptConsent();
182
+ if (stored) {
183
+ console.log(dim(`conversation sharing: ${stored} — change with \`hacklab config prompt-stats <full|stats|none>\``));
184
+ console.log('');
185
+ return stored;
186
+ }
187
+ if (!process.stdin.isTTY)
188
+ return 'none';
189
+ console.log(bold('share your prompts?'));
190
+ console.log('hacklab scores how well you work with AI. your real prompts give the');
191
+ console.log('scoring model actual evidence — a sharper score, and a profile that');
192
+ console.log('stands out. a sample of up to 20,000 characters is read by the model,');
193
+ console.log('scored, and discarded. never stored, never shown to anyone.');
194
+ console.log(dim('change anytime: hacklab config prompt-stats <full|stats|none>'));
195
+ console.log('');
196
+ const answer = await clack.confirm({
197
+ message: 'share a sample of your prompts?',
198
+ initialValue: true,
199
+ });
200
+ // Only the two tiers that were actually asked about. 'stats' (numbers, no
201
+ // text) was never on the table here; it stays reachable via `hacklab config`.
202
+ const tier = !clack.isCancel(answer) && answer === true ? 'full' : 'none';
203
+ await savePromptConsent(tier);
204
+ return tier;
205
+ }
206
+ /** The anonymous "you'd be #N of M" call. Any failure is skipped in silence. */
207
+ async function fetchRankPreview(appUrl, totalTokens) {
208
+ try {
209
+ const res = await fetch(`${appUrl}/api/rank/preview`, {
210
+ method: 'POST',
211
+ headers: { 'Content-Type': 'application/json' },
212
+ body: JSON.stringify({ totalTokens }),
213
+ signal: AbortSignal.timeout(10_000),
214
+ });
215
+ if (!res.ok)
216
+ return null;
217
+ const data = (await res.json());
218
+ if (typeof data.rank !== 'number' || typeof data.ofTotal !== 'number') {
219
+ return null;
220
+ }
221
+ return { rank: data.rank, ofTotal: data.ofTotal };
222
+ }
223
+ catch {
224
+ return null;
225
+ }
226
+ }
227
+ /**
228
+ * Arm the background sync without asking — the intro line already disclosed it.
229
+ * Same install-once / repair-'stale' rules `scan` uses: a reinstall rewrites the
230
+ * plists/units and bounces the jobs, so only touch the scheduler when something
231
+ * is actually wrong, and only announce a genuinely fresh install.
232
+ */
233
+ async function installDaemon(state, handle) {
234
+ if (state === 'current')
235
+ return;
236
+ const result = await installDailySync();
237
+ if (!result.ok) {
238
+ // A failed *repair* means the jobs are still scheduled — printing cron
239
+ // instructions there talks the user into a second, duplicate schedule.
240
+ if (state === 'missing') {
241
+ console.log(dim(result.instructions));
242
+ if (handle) {
243
+ await captureEvent(handle, 'cli_daily_sync_manual', {
244
+ mechanism: result.mechanism,
245
+ source: 'setup',
246
+ });
247
+ }
248
+ }
249
+ return;
250
+ }
251
+ if (!result.recorded) {
252
+ console.log(dim('could not record daily-sync state — config unwritable'));
253
+ return;
254
+ }
255
+ if (state === 'missing') {
256
+ console.log(dim(`background sync scheduled (${result.mechanism})`));
257
+ if (handle) {
258
+ await captureEvent(handle, 'cli_daily_sync_installed', {
259
+ mechanism: result.mechanism,
260
+ source: 'setup',
261
+ });
262
+ }
263
+ }
264
+ }
265
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EACL,iBAAiB,EAEjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,cAAc,GAEf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,WAAW,EACX,aAAa,EAEb,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACtC,OAAO,CAAC,GAAG,CACT,GAAG,CACD,0EAA0E,CAC3E,CACF,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,MAAM,cAAc,EAAE,CAAA;IAExC,4EAA4E;IAC5E,2EAA2E;IAC3E,0EAA0E;IAC1E,IAAI,QAAQ,EAAE,MAAM,IAAI,QAAQ,CAAC,eAAe,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,4DAA4D,CAAC,CAClE,CAAA;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAChD,OAAM;IACR,CAAC;IAED,4EAA4E;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAC1C,IAAI,OAAqB,CAAA;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAA;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACxB,KAAK,CAAC,MAAM,CACV,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpF,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAE1B,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAEpC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,2CAA2C;QAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,gEAAgE;YACzE,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;QACF,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,KAAK,CACT,GAAG,CAAC,6DAA6D,CAAC,CACnE,CAAA;YACD,OAAM;QACR,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,WAA+B,CAAA;IACnC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;YAC1B,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,UAAU,CACrE,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAgB,CAAA;IACpB,IAAI,WAAoB,CAAA;IACxB,IAAI,QAAQ,EAAE,CAAC;QACb,wEAAwE;QACxE,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACtD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QACzB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACjC,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE;YACnC,CAAC,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CACpC,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAA;YACxD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YACzB,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,CACV,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAC3G,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE;YACnC,CAAC,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CACpC,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAED,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAED,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAA;IAE9C,4EAA4E;IAC5E,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAC/B,IAAI,IAAwB,CAAA;IAC5B,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;YACpD,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,OAAO;YAClB,WAAW;SACZ,CAAC,CAAA;QACF,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAA;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,CAAA;QACrE,IAAI,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,4EAA4E;IAC5E,MAAM,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAE9C,4EAA4E;IAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CACzE,CAAA;IACD,KAAK,CAAC,KAAK,CACT,GAAG,CAAC,6DAA6D,CAAC,CACnE,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE;YACjC,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,MAAM;aAChB;YACD,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;SACnD,CAAC,CAAA;QACF,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE;YACxD,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,GAAG,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,cAAc,EAAE,OAAO;SACxB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,sBAAsB;IACnC,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CACT,GAAG,CACD,yBAAyB,MAAM,kEAAkE,CAClG,CACF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,MAAM,CAAA;IAEvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAA;IACD,OAAO,CAAC,GAAG,CACT,qEAAqE,CACtE,CAAA;IACD,OAAO,CAAC,GAAG,CACT,uEAAuE,CACxE,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,+DAA+D,CAAC,CACrE,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;QACjC,OAAO,EAAE,iCAAiC;QAC1C,YAAY,EAAE,IAAI;KACnB,CAAC,CAAA;IACF,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,IAAI,GACR,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,gFAAgF;AAChF,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;YACrC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwC,CAAA;QACtE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAiD,EACjD,MAA0B;IAE1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAM;IAE/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAA;IACvC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;YACrC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,YAAY,CAAC,MAAM,EAAE,uBAAuB,EAAE;oBAClD,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAA;QACzE,OAAM;IACR,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;QACnE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,YAAY,CAAC,MAAM,EAAE,0BAA0B,EAAE;gBACrD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE,OAAO;aAChB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,WAAW,GAAG;IACxB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,0FAA0F;IAC1F,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,WAAW,EAkJjC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,UAA8B,CAAA;AAExD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEjE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AA8BA,MAAM,MAAM,WAAW,GAAG;IACxB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,0FAA0F;IAC1F,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,WAAW,EAuJjC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,UAA8B,CAAA;AAExD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEjE"}
package/dist/registry.js CHANGED
@@ -19,10 +19,16 @@ import { referral } from './commands/referral.js';
19
19
  import { rtfm } from './commands/rtfm.js';
20
20
  import { scan } from './commands/scan.js';
21
21
  import { scout } from './commands/scout.js';
22
+ import { setup } from './commands/setup.js';
22
23
  import { sync } from './commands/sync.js';
23
24
  import { update } from './commands/update.js';
24
25
  import { whoami } from './commands/whoami.js';
25
26
  export const COMMANDS = [
27
+ {
28
+ name: 'setup',
29
+ summary: 'first run: scan, sign in, and start the background sync',
30
+ run: () => setup(),
31
+ },
26
32
  {
27
33
  name: 'scan',
28
34
  args: '[--no-daemon]',
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAiB7C,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,yDAAyD;QAClE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;KACnB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,qDAAqD;QAC9D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,qCAAqC;QAC9C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,sDAAsD;QAC/D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KAC5B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,+BAA+B;QACxC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;KACpB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,uCAAuC;QAChD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;KAClB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAC/C,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9B,CAAC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,qCAAqC;QAC9C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3B;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,6BAA6B;QACtC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;KACnB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,0CAA0C;QACnD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;KACpB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,2CAA2C;QACpD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;KACnC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,sDAAsD;QAC/D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KAC7B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,+CAA+C;QACxD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACzC;IACD;QACE,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,gDAAgD;QACtD,OAAO,EACL,+EAA+E;QACjF,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;KACzB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,yCAAyC;QAClD,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,8DAA8D;QACvE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,oDAAoD;QAC7D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,kDAAkD;QAC3D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KAC5B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,yDAAyD;QAC/D,OAAO,EAAE,+DAA+D;QACxE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EACL,mFAAmF;QACrF,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3B;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,oDAAoD;QAC7D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KAC7B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,OAAO,EACL,qEAAqE;QACvE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC9B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,2EAA2E;QAC3E,OAAO,EAAE,mCAAmC;QAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,iDAAiD;QAC1D,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;KACpB;CACF,CAAA;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAExD,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hacklab",
3
- "version": "0.13.2",
3
+ "version": "0.14.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"