@vibes.diy/identity 14.3.187 → 14.3.189

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.
@@ -69,7 +69,7 @@ describe("device-id register — already-enrolled short-circuit (no re-login)",
69
69
  expect(isResDeviceIdRegister(msg)).toBe(true);
70
70
  if (isResDeviceIdRegister(msg)) {
71
71
  expect(msg.output).toContain("Device already has a certificate. Registration not needed.");
72
- expect(msg.output).toContain("Use --force-renew to renew the certificate.");
72
+ expect(msg.output).toContain("Use --force to renew the certificate.");
73
73
  expect(msg.output).toContain("Existing Device ID Fingerprint:");
74
74
  }
75
75
  const devid = await kb.getDeviceId();
@@ -1 +1 @@
1
- {"version":3,"file":"register-golden.test.js","sourceRoot":"","sources":["../../jsr/device-id/register-golden.test.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAuB,MAAM,eAAe,CAAC;AAIxH,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAElG,CAAC;AACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAG/B,MAAM,gBAAgB;IACX,OAAO,GAAc,EAAE,CAAC;IACjC,IAAI,CAAS,QAAiB,EAAE,IAAQ;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AAID,KAAK,UAAU,eAAe,CAAC,KAAgB,EAAE,GAAsC;IACrF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,CAAyB,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,GAAG,EAAE;KACxD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAqE,CAAC;IACzG,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAA6C,CAAC;IAC/F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,4BAA4B,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAsC;IAClD,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,kCAAkC;IAChD,QAAQ,EAAE,0BAA0B;IACpC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,yCAAyC;IAChD,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;IACjF,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC;YAC3F,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,QAAQ,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAE,MAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnG,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7F,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"register-golden.test.js","sourceRoot":"","sources":["../../jsr/device-id/register-golden.test.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAuB,MAAM,eAAe,CAAC;AAIxH,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAElG,CAAC;AACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAG/B,MAAM,gBAAgB;IACX,OAAO,GAAc,EAAE,CAAC;IACjC,IAAI,CAAS,QAAiB,EAAE,IAAQ;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAe,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AAID,KAAK,UAAU,eAAe,CAAC,KAAgB,EAAE,GAAsC;IACrF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,CAAyB,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,GAAG,EAAE;KACxD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAqE,CAAC;IACzG,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAA6C,CAAC;IAC/F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,4BAA4B,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAsC;IAClD,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,kCAAkC;IAChD,QAAQ,EAAE,0BAA0B;IACpC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,yCAAyC;IAChD,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,QAAQ,CAAC,mEAAmE,EAAE,GAAG,EAAE;IACjF,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,4DAA4D,CAAC,CAAC;YAC3F,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,QAAQ,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAE,MAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnG,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,iCAAiC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7F,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,29 +1,34 @@
1
1
  import { createServer } from "node:net";
2
- import { describe, it, expect, vi } from "vitest";
3
- import { AppContext, Evento, Result } from "@adviser/cement";
2
+ import { describe, it, expect } from "vitest";
3
+ import { AppContext, Evento, Result, URI } from "@adviser/cement";
4
4
  import { ensureSuperThis } from "../index.js";
5
- import { getKeyBag } from "../keybag/keybag.js";
5
+ import { getKeyBag, deviceIdKeybagFilePath } from "../keybag/keybag.js";
6
+ import { deviceIdKey as deviceIdKeybagId } from "../keybag/key-bag.js";
6
7
  import { DeviceIdKey } from "./key.js";
7
8
  import { createTestDeviceCA } from "./test-helpers.js";
8
9
  import { deviceIdRegisterEvento, isResDeviceIdRegister } from "./register.js";
9
- const openMock = vi.hoisted(() => ({
10
+ const opener = {
10
11
  waiters: [],
11
12
  failNext: false,
12
- }));
13
- vi.mock("open", () => ({
14
- default: (url) => {
15
- for (const w of openMock.waiters.splice(0))
16
- w(url);
17
- if (openMock.failNext) {
18
- openMock.failNext = false;
19
- return Promise.reject(new Error("no browser available"));
20
- }
21
- return Promise.resolve();
22
- },
23
- }));
13
+ };
14
+ function openBrowser(url) {
15
+ for (const w of opener.waiters.splice(0))
16
+ w(url);
17
+ if (opener.failNext) {
18
+ opener.failNext = false;
19
+ return Promise.reject(new Error("no browser available"));
20
+ }
21
+ return Promise.resolve();
22
+ }
24
23
  function nextOpenUrl() {
25
- return new Promise((resolve) => openMock.waiters.push(resolve));
24
+ return new Promise((resolve) => opener.waiters.push(resolve));
26
25
  }
26
+ const desktopDeps = {
27
+ openBrowser,
28
+ env: {},
29
+ platform: "darwin",
30
+ pasteSource: () => undefined,
31
+ };
27
32
  const FIXTURE = (await import("../keybag/keybag-golden.fixture.json", { with: { type: "json" } })).default;
28
33
  class TestSendProvider {
29
34
  results = [];
@@ -35,14 +40,14 @@ class TestSendProvider {
35
40
  return Promise.resolve(Result.Ok(undefined));
36
41
  }
37
42
  }
38
- function startRegister(sthis, raw) {
43
+ function startRegister(sthis, raw, deps = {}) {
39
44
  const evento = new Evento({
40
45
  encode: (i) => Promise.resolve(Result.Ok(i.result)),
41
46
  decode: (i) => Promise.resolve(Result.Ok(i)),
42
47
  });
43
48
  evento.push([deviceIdRegisterEvento]);
44
49
  const send = new TestSendProvider();
45
- const appCtx = new AppContext().set("cliCtx", { sthis });
50
+ const appCtx = new AppContext().set("cliCtx", { sthis }).set("deviceIdRegisterDeps", { ...desktopDeps, ...deps });
46
51
  const request = {
47
52
  type: "msg.cmd-ts",
48
53
  cmdTs: { raw, outputFormat: "text" },
@@ -196,7 +201,7 @@ describe("device-id register — enroll round-trip (Hono callback server)", { ti
196
201
  describe("device-id register — failure branches", { timeout: 30000 }, () => {
197
202
  it("no callback before the deadline ⇒ timeout error (and the browser-open failure is survived)", async () => {
198
203
  const sthis = memSthis();
199
- openMock.failNext = true;
204
+ opener.failNext = true;
200
205
  const { send, done } = startRegister(sthis, { ...baseArgs, timeout: "1" });
201
206
  await expect(done).rejects.toThrow("Timeout waiting for certificate from CA (1s).");
202
207
  const progress = progressMessages(send);
@@ -230,4 +235,152 @@ describe("device-id register — failure branches", { timeout: 30000 }, () => {
230
235
  expect(devid.cert.IsNone()).toBe(true);
231
236
  });
232
237
  });
238
+ async function rawKeybagItem(sthis) {
239
+ const kb = await getKeyBag(sthis);
240
+ return (await kb.provider()).get(deviceIdKeybagId);
241
+ }
242
+ async function enrollViaCallback(sthis) {
243
+ const openedUrlP = nextOpenUrl();
244
+ const { done } = startRegister(sthis, baseArgs);
245
+ const { certJWT, returnUrl } = await mintCertFromOpenUrl(sthis, await openedUrlP);
246
+ await fetch(`${returnUrl}?cert=${encodeURIComponent(certJWT)}`);
247
+ await done;
248
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
249
+ return { jwk: devid.deviceId.Unwrap(), certJWT, returnUrl };
250
+ }
251
+ async function waitForProgress(send, prefix) {
252
+ for (let i = 0; i < 200; i++) {
253
+ const hit = progressMessages(send).find((m) => m.startsWith(prefix));
254
+ if (hit)
255
+ return hit;
256
+ await new Promise((r) => setTimeout(r, 25));
257
+ }
258
+ throw new Error(`no progress message starting with ${prefix}`);
259
+ }
260
+ function testPaste() {
261
+ const listeners = [];
262
+ let closed = false;
263
+ return {
264
+ source: () => ({
265
+ onLine: (cb) => listeners.push(cb),
266
+ close: () => {
267
+ closed = true;
268
+ },
269
+ }),
270
+ type: (line) => listeners.forEach((l) => l(line)),
271
+ closed: () => closed,
272
+ };
273
+ }
274
+ describe("device-id register — manual --cert completion", { timeout: 30000 }, () => {
275
+ it("--cert <jwt> stores a keybag item identical to the callback path's for the same key + cert", async () => {
276
+ const viaCallback = memSthis();
277
+ const { jwk, certJWT } = await enrollViaCallback(viaCallback);
278
+ const callbackItem = await rawKeybagItem(viaCallback);
279
+ const viaManual = memSthis();
280
+ await (await getKeyBag(viaManual)).setDeviceId(jwk);
281
+ const msg = await startRegister(viaManual, { ...baseArgs, cert: certJWT }).done;
282
+ expect(isResDeviceIdRegister(msg)).toBe(true);
283
+ if (isResDeviceIdRegister(msg)) {
284
+ expect(msg.output).toContain("Registration complete!");
285
+ expect(msg.output).toContain(`Keybag: ${deviceIdKeybagFilePath(viaManual)}`);
286
+ }
287
+ const manualItem = await rawKeybagItem(viaManual);
288
+ expect(manualItem).toEqual(callbackItem);
289
+ expect(JSON.stringify(manualItem)).toBe(JSON.stringify(callbackItem));
290
+ });
291
+ it("--cert accepts the whole failed redirect URL", async () => {
292
+ const viaCallback = memSthis();
293
+ const { jwk, certJWT, returnUrl } = await enrollViaCallback(viaCallback);
294
+ const sthis = memSthis();
295
+ await (await getKeyBag(sthis)).setDeviceId(jwk);
296
+ await startRegister(sthis, { ...baseArgs, cert: `${returnUrl}?cert=${encodeURIComponent(certJWT)}` }).done;
297
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
298
+ expect(devid.cert.Unwrap().certificateJWT).toBe(certJWT);
299
+ });
300
+ it("refuses a cert issued for a different device key, naming both fingerprints", async () => {
301
+ const viaCallback = memSthis();
302
+ const { jwk, certJWT } = await enrollViaCallback(viaCallback);
303
+ const certFingerprint = await (await DeviceIdKey.createFromJWK(jwk)).Ok().fingerPrint();
304
+ const sthis = memSthis();
305
+ const otherKey = await DeviceIdKey.create();
306
+ await (await getKeyBag(sthis)).setDeviceId(await otherKey.exportPrivateJWK());
307
+ const { done } = startRegister(sthis, { ...baseArgs, cert: certJWT });
308
+ await expect(done).rejects.toThrow("Certificate does not match this device's key");
309
+ await expect(done).rejects.toThrow(certFingerprint);
310
+ await expect(done).rejects.toThrow(await otherKey.fingerPrint());
311
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
312
+ expect(devid.cert.IsNone()).toBe(true);
313
+ });
314
+ it("--cert with no pending key ⇒ tells the user to run login first", async () => {
315
+ const sthis = memSthis();
316
+ const { done } = startRegister(sthis, { ...baseArgs, cert: "a.b.c" });
317
+ await expect(done).rejects.toThrow("no pending device key; run vibes-diy login first");
318
+ });
319
+ });
320
+ describe("device-id register — remote browser waiting", { timeout: 30000 }, () => {
321
+ it("timeout: heartbeat lines while waiting, then the --cert recovery text with the keybag path", async () => {
322
+ const sthis = memSthis();
323
+ const { send, done } = startRegister(sthis, { ...baseArgs, timeout: "1" }, { heartbeatMs: 200 });
324
+ await expect(done).rejects.toThrow("Timeout waiting for certificate from CA (1s).");
325
+ await expect(done).rejects.toThrow("your browser probably can't reach this machine's localhost");
326
+ await expect(done).rejects.toThrow("npx vibes-diy login --cert '<value>'");
327
+ await expect(done).rejects.toThrow(`Your pending device key is kept at ${deviceIdKeybagFilePath(sthis)}.`);
328
+ const heartbeats = progressMessages(send).filter((m) => m.startsWith("Still waiting for the browser callback on http://localhost:"));
329
+ expect(heartbeats.length).toBeGreaterThan(0);
330
+ expect(heartbeats[0]).toMatch(/\/cert \(\d+s left\)…$/);
331
+ });
332
+ it("headless host: no browser launch, URL + manual path first, and a pasted redirect URL completes login", async () => {
333
+ const sthis = memSthis();
334
+ let opened = 0;
335
+ const paste = testPaste();
336
+ const { send, done } = startRegister(sthis, baseArgs, {
337
+ env: { CLAUDECODE: "1" },
338
+ platform: "linux",
339
+ openBrowser: () => {
340
+ opened++;
341
+ return Promise.resolve();
342
+ },
343
+ pasteSource: paste.source,
344
+ });
345
+ const urlLine = await waitForProgress(send, "URL: ");
346
+ const progress = progressMessages(send);
347
+ expect(progress).toContain("\nNot opening a browser (CLAUDECODE is set).");
348
+ expect(progress.join("\n")).toContain("copy the cert= value (or the whole URL) from the address bar and run: npx vibes-diy login --cert '<value>'");
349
+ const { certJWT, returnUrl } = await mintCertFromOpenUrl(sthis, urlLine.slice("URL: ".length).trim());
350
+ paste.type("not a cert");
351
+ paste.type(`${returnUrl}?cert=${encodeURIComponent(certJWT)}`);
352
+ const msg = await done;
353
+ expect(isResDeviceIdRegister(msg)).toBe(true);
354
+ expect(opened).toBe(0);
355
+ expect(paste.closed()).toBe(true);
356
+ expect(progressMessages(send)).toContain("That doesn't look like a certificate — paste the cert= value or the whole URL.");
357
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
358
+ expect(devid.cert.Unwrap().certificateJWT).toBe(certJWT);
359
+ });
360
+ it("a pending key is reused and announced; --force replaces it with a fresh key", async () => {
361
+ const sthis = memSthis();
362
+ const pending = await DeviceIdKey.create();
363
+ const kb = await getKeyBag(sthis);
364
+ await kb.setDeviceId(await pending.exportPrivateJWK());
365
+ const reuse = startRegister(sthis, { ...baseArgs, timeout: "1" });
366
+ await expect(reuse.done).rejects.toThrow("Timeout");
367
+ expect(progressMessages(reuse.send)).toContain(`Reusing unenrolled device key from a previous login attempt (fingerprint ${await pending.fingerPrint()}, keybag ${deviceIdKeybagFilePath(sthis)}). Use --force for a fresh key.`);
368
+ const fresh = startRegister(sthis, { ...baseArgs, timeout: "1", forceRenew: true });
369
+ await expect(fresh.done).rejects.toThrow("Timeout");
370
+ expect(progressMessages(fresh.send)).toContain("Creating new device ID key pair...");
371
+ const after = await kb.getDeviceId();
372
+ const afterKey = (await DeviceIdKey.createFromJWK(after.deviceId.Unwrap())).Ok();
373
+ expect(await afterKey.fingerPrint()).not.toBe(await pending.fingerPrint());
374
+ });
375
+ });
376
+ describe("deviceIdKeybagFilePath", () => {
377
+ it("names the hashed json file under the keybag dir for a file: keybag", () => {
378
+ const sthis = ensureSuperThis();
379
+ sthis.env.set("FP_KEYBAG_URL", "file:///home/someone/.fireproof/keybag");
380
+ const p = deviceIdKeybagFilePath(sthis);
381
+ expect(p.startsWith("/home/someone/.fireproof/keybag/")).toBe(true);
382
+ expect(p.endsWith(".json")).toBe(true);
383
+ expect(URI.from(`file://${p}`).pathname).toBe(p);
384
+ });
385
+ });
233
386
  //# sourceMappingURL=register-integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-integration.test.js","sourceRoot":"","sources":["../../jsr/device-id/register-integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-integration.test.js","sourceRoot":"","sources":["../../jsr/device-id/register-integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Result } from "@adviser/cement";
2
+ import type { KeyBag } from "../keybag/key-bag.js";
3
+ import type { DeviceIdKey } from "./key.js";
4
+ import { type CertificatePayload } from "../types/cert-payload.js";
5
+ export declare const MANUAL_CERT_COMMAND = "npx vibes-diy login --cert '<value>'";
6
+ export declare function extractCertValue(input: string): Result<string>;
7
+ export declare function parseCertJWT(certJWT: string): Result<CertificatePayload>;
8
+ export interface StoreDeviceCertParams {
9
+ readonly keyBag: KeyBag;
10
+ readonly deviceIdKey: DeviceIdKey;
11
+ readonly certJWT: string;
12
+ }
13
+ export interface StoredDeviceCert {
14
+ readonly fingerprint: string;
15
+ readonly certificatePayload: CertificatePayload;
16
+ }
17
+ export declare function storeDeviceCert({ keyBag, deviceIdKey, certJWT }: StoreDeviceCertParams): Promise<Result<StoredDeviceCert>>;
18
+ export interface HeadlessDetectInput {
19
+ readonly env: Readonly<Record<string, string | undefined>>;
20
+ readonly platform: string;
21
+ readonly noBrowser: boolean;
22
+ }
23
+ export interface HeadlessDetection {
24
+ readonly headless: boolean;
25
+ readonly reason?: string;
26
+ }
27
+ export declare function detectHeadlessBrowser({ env, platform, noBrowser }: HeadlessDetectInput): HeadlessDetection;
28
+ export declare function formatRemaining(seconds: number): string;
29
+ export declare function heartbeatMessage(callbackUrl: string, remainingSeconds: number): string;
30
+ export declare function manualCompletionHint(pasteEnabled: boolean): string;
31
+ export declare function timeoutMessage(timeout: string, keyBagLocation: string): string;
@@ -0,0 +1,103 @@
1
+ import { decodeJwt, calculateJwkThumbprint } from "jose";
2
+ import { URI, Result, exception2Result } from "@adviser/cement";
3
+ import { CertificatePayloadSchema } from "../types/cert-payload.js";
4
+ export const MANUAL_CERT_COMMAND = "npx vibes-diy login --cert '<value>'";
5
+ export function extractCertValue(input) {
6
+ const withoutCommand = input.trim().replace(/^(?:npx\s+)?vibes-diy\s+login\s+--cert(?:=|\s+)/, "");
7
+ const trimmed = withoutCommand.trim().replace(/^['"]+|['"]+$/g, "");
8
+ if (trimmed === "") {
9
+ return Result.Err("empty --cert value");
10
+ }
11
+ if (/^https?:\/\//i.test(trimmed)) {
12
+ const cert = URI.from(trimmed).getParam("cert");
13
+ if (!cert) {
14
+ return Result.Err(`the URL has no cert= parameter: ${trimmed}`);
15
+ }
16
+ return Result.Ok(cert);
17
+ }
18
+ if (trimmed.startsWith("cert=")) {
19
+ const rDecoded = exception2Result(() => decodeURIComponent(trimmed.slice("cert=".length)));
20
+ if (rDecoded.isErr()) {
21
+ return Result.Err(`the cert= value is not valid URL encoding: ${rDecoded.Err().message}`);
22
+ }
23
+ return Result.Ok(rDecoded.Ok());
24
+ }
25
+ return Result.Ok(trimmed);
26
+ }
27
+ export function parseCertJWT(certJWT) {
28
+ return exception2Result(() => CertificatePayloadSchema.parse(decodeJwt(certJWT)));
29
+ }
30
+ export async function storeDeviceCert({ keyBag, deviceIdKey, certJWT }) {
31
+ const rPayload = parseCertJWT(certJWT);
32
+ if (rPayload.isErr()) {
33
+ return Result.Err(rPayload.Err());
34
+ }
35
+ const certificatePayload = rPayload.Ok();
36
+ const fingerprint = await deviceIdKey.fingerPrint();
37
+ const rCertFingerprint = await exception2Result(() => calculateJwkThumbprint(certificatePayload.certificate.subjectPublicKeyInfo, "sha256"));
38
+ if (rCertFingerprint.isErr()) {
39
+ return Result.Err(`Certificate has an unreadable subject public key: ${rCertFingerprint.Err().message}`);
40
+ }
41
+ const certFingerprint = rCertFingerprint.Ok();
42
+ if (certFingerprint !== fingerprint) {
43
+ return Result.Err([
44
+ "Certificate does not match this device's key — refusing to store it.",
45
+ `Certificate key fingerprint: ${certFingerprint}`,
46
+ `Device key fingerprint: ${fingerprint}`,
47
+ "The cert was issued for a different login attempt. Run vibes-diy login again and approve the new URL.",
48
+ ].join("\n"));
49
+ }
50
+ const jwkPrivate = await deviceIdKey.exportPrivateJWK();
51
+ await keyBag.setDeviceId(jwkPrivate, { certificateJWT: certJWT, certificatePayload });
52
+ return Result.Ok({ fingerprint, certificatePayload });
53
+ }
54
+ const REMOTE_ENV_KEYS = ["CI", "CLAUDECODE", "CODESPACES", "SSH_CONNECTION", "SSH_TTY"];
55
+ function isSet(v) {
56
+ return v !== undefined && v !== "";
57
+ }
58
+ export function detectHeadlessBrowser({ env, platform, noBrowser }) {
59
+ if (noBrowser) {
60
+ return { headless: true, reason: "--no-browser" };
61
+ }
62
+ const remoteKey = REMOTE_ENV_KEYS.find((k) => isSet(env[k]));
63
+ if (remoteKey) {
64
+ return { headless: true, reason: `${remoteKey} is set` };
65
+ }
66
+ const claudeKey = Object.keys(env).find((k) => k.startsWith("CLAUDE_CODE_") && isSet(env[k]));
67
+ if (claudeKey) {
68
+ return { headless: true, reason: `${claudeKey} is set` };
69
+ }
70
+ if (platform === "linux" && !isSet(env.DISPLAY) && !isSet(env.WAYLAND_DISPLAY)) {
71
+ return { headless: true, reason: "no DISPLAY or WAYLAND_DISPLAY" };
72
+ }
73
+ return { headless: false };
74
+ }
75
+ export function formatRemaining(seconds) {
76
+ const s = Math.max(0, Math.round(seconds));
77
+ if (s >= 120) {
78
+ return `${Math.floor(s / 60)}m`;
79
+ }
80
+ return `${s}s`;
81
+ }
82
+ export function heartbeatMessage(callbackUrl, remainingSeconds) {
83
+ return `Still waiting for the browser callback on ${callbackUrl} (${formatRemaining(remainingSeconds)} left)…`;
84
+ }
85
+ export function manualCompletionHint(pasteEnabled) {
86
+ const lines = [
87
+ "Open this URL in any browser. If that browser is on another machine, the final redirect to localhost will fail —",
88
+ `copy the cert= value (or the whole URL) from the address bar and run: ${MANUAL_CERT_COMMAND}`,
89
+ ];
90
+ if (pasteEnabled) {
91
+ lines.push("(or paste it here and press Enter).");
92
+ }
93
+ return lines.join("\n");
94
+ }
95
+ export function timeoutMessage(timeout, keyBagLocation) {
96
+ return [
97
+ `Timeout waiting for certificate from CA (${timeout}s).`,
98
+ "If you approved in the browser, your browser probably can't reach this machine's localhost.",
99
+ `Copy the cert= value from the browser's address bar and run: ${MANUAL_CERT_COMMAND}.`,
100
+ `Your pending device key is kept at ${keyBagLocation}.`,
101
+ ].join(" ");
102
+ }
103
+ //# sourceMappingURL=register-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-support.js","sourceRoot":"","sources":["../../jsr/device-id/register-support.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { detectHeadlessBrowser, extractCertValue, formatRemaining, heartbeatMessage, manualCompletionHint, timeoutMessage, } from "./register-support.js";
3
+ const desktop = { platform: "darwin", noBrowser: false };
4
+ describe("detectHeadlessBrowser", () => {
5
+ it("a desktop mac/windows host with no remote markers opens the browser", () => {
6
+ expect(detectHeadlessBrowser({ ...desktop, env: {} })).toEqual({ headless: false });
7
+ expect(detectHeadlessBrowser({ env: {}, platform: "win32", noBrowser: false }).headless).toBe(false);
8
+ });
9
+ it("linux with a DISPLAY or WAYLAND_DISPLAY is a desktop", () => {
10
+ expect(detectHeadlessBrowser({ env: { DISPLAY: ":0" }, platform: "linux", noBrowser: false }).headless).toBe(false);
11
+ expect(detectHeadlessBrowser({ env: { WAYLAND_DISPLAY: "wayland-0" }, platform: "linux", noBrowser: false }).headless).toBe(false);
12
+ });
13
+ it("linux without a display is headless", () => {
14
+ expect(detectHeadlessBrowser({ env: {}, platform: "linux", noBrowser: false })).toEqual({
15
+ headless: true,
16
+ reason: "no DISPLAY or WAYLAND_DISPLAY",
17
+ });
18
+ expect(detectHeadlessBrowser({ env: { DISPLAY: "" }, platform: "linux", noBrowser: false }).headless).toBe(true);
19
+ });
20
+ it.each(["CI", "CLAUDECODE", "CODESPACES", "SSH_CONNECTION", "SSH_TTY"])("%s marks a remote/agent host", (key) => {
21
+ expect(detectHeadlessBrowser({ ...desktop, env: { [key]: "1", DISPLAY: ":0" } })).toEqual({
22
+ headless: true,
23
+ reason: `${key} is set`,
24
+ });
25
+ });
26
+ it("any CLAUDE_CODE_* variable marks an agent host", () => {
27
+ expect(detectHeadlessBrowser({ ...desktop, env: { CLAUDE_CODE_ENTRYPOINT: "cli" } })).toEqual({
28
+ headless: true,
29
+ reason: "CLAUDE_CODE_ENTRYPOINT is set",
30
+ });
31
+ });
32
+ it("empty markers don't count", () => {
33
+ expect(detectHeadlessBrowser({ ...desktop, env: { CI: "", CLAUDE_CODE_X: "" } }).headless).toBe(false);
34
+ });
35
+ it("--no-browser wins", () => {
36
+ expect(detectHeadlessBrowser({ env: {}, platform: "darwin", noBrowser: true })).toEqual({
37
+ headless: true,
38
+ reason: "--no-browser",
39
+ });
40
+ });
41
+ });
42
+ describe("extractCertValue", () => {
43
+ it("passes a raw JWT through, trimming whitespace and shell quotes", () => {
44
+ expect(extractCertValue(" aaa.bbb.ccc \n").Ok()).toBe("aaa.bbb.ccc");
45
+ expect(extractCertValue("'aaa.bbb.ccc'").Ok()).toBe("aaa.bbb.ccc");
46
+ });
47
+ it("pulls cert= out of the failed localhost redirect URL", () => {
48
+ expect(extractCertValue("http://localhost:54321/cert?cert=aaa.bbb.ccc").Ok()).toBe("aaa.bbb.ccc");
49
+ });
50
+ it("accepts a bare cert=… fragment", () => {
51
+ expect(extractCertValue("cert=aaa.bbb.ccc").Ok()).toBe("aaa.bbb.ccc");
52
+ });
53
+ it("strips the CA page's copied command, with or without npx", () => {
54
+ expect(extractCertValue("npx vibes-diy login --cert 'aaa.bbb.ccc'").Ok()).toBe("aaa.bbb.ccc");
55
+ expect(extractCertValue("vibes-diy login --cert 'aaa.bbb.ccc'").Ok()).toBe("aaa.bbb.ccc");
56
+ expect(extractCertValue("vibes-diy login --cert=aaa.bbb.ccc").Ok()).toBe("aaa.bbb.ccc");
57
+ });
58
+ it("returns an Err for a malformed cert= escape instead of throwing", () => {
59
+ expect(extractCertValue("cert=%").isErr()).toBe(true);
60
+ });
61
+ it("rejects empty input and a URL without cert=", () => {
62
+ expect(extractCertValue(" ").isErr()).toBe(true);
63
+ expect(extractCertValue("http://localhost:54321/cert").isErr()).toBe(true);
64
+ });
65
+ });
66
+ describe("wait/timeout copy", () => {
67
+ it("formats remaining time in minutes when large, seconds when short", () => {
68
+ expect(formatRemaining(3600)).toBe("60m");
69
+ expect(formatRemaining(3570.4)).toBe("59m");
70
+ expect(formatRemaining(119)).toBe("119s");
71
+ expect(formatRemaining(-3)).toBe("0s");
72
+ });
73
+ it("heartbeat names the callback URL and time left", () => {
74
+ expect(heartbeatMessage("http://localhost:4000/cert", 3540)).toBe("Still waiting for the browser callback on http://localhost:4000/cert (59m left)…");
75
+ });
76
+ it("manual hint offers paste only when stdin can take it", () => {
77
+ expect(manualCompletionHint(true)).toContain("paste it here");
78
+ expect(manualCompletionHint(false)).not.toContain("paste it here");
79
+ expect(manualCompletionHint(false)).toContain("npx vibes-diy login --cert '<value>'");
80
+ });
81
+ it("timeout explains the remote-browser case and where the pending key is", () => {
82
+ const m = timeoutMessage("3600", "/home/me/.fireproof/keybag/abc.json");
83
+ expect(m).toContain("Timeout waiting for certificate from CA (3600s).");
84
+ expect(m).toContain("If you approved in the browser, your browser probably can't reach this machine's localhost.");
85
+ expect(m).toContain("Copy the cert= value from the browser's address bar and run: npx vibes-diy login --cert '<value>'.");
86
+ expect(m).toContain("Your pending device key is kept at /home/me/.fireproof/keybag/abc.json.");
87
+ });
88
+ });
89
+ //# sourceMappingURL=register-support.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-support.test.js","sourceRoot":"","sources":["../../jsr/device-id/register-support.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import type { EventoHandler } from "@adviser/cement";
2
2
  import { type WrapCmdTSMsg } from "@vibes.diy/cmd-tools";
3
+ export interface PasteSource {
4
+ onLine(cb: (line: string) => void): void;
5
+ close(): void;
6
+ }
7
+ export interface DeviceIdRegisterDeps {
8
+ readonly openBrowser: (url: string) => Promise<unknown>;
9
+ readonly env: Readonly<Record<string, string | undefined>>;
10
+ readonly platform: string;
11
+ readonly heartbeatMs: number;
12
+ readonly pasteSource: () => PasteSource | undefined;
13
+ }
3
14
  export declare const ReqDeviceIdRegister: import("arktype/internal/variants/object.ts").ObjectType<{
4
15
  type: "core-cli.device-id-register";
5
16
  commonName: string;
@@ -11,6 +22,8 @@ export declare const ReqDeviceIdRegister: import("arktype/internal/variants/obje
11
22
  port: string;
12
23
  timeout: string;
13
24
  forceRenew: boolean;
25
+ cert?: string | undefined;
26
+ noBrowser?: boolean | undefined;
14
27
  }, {}>;
15
28
  export type ReqDeviceIdRegister = typeof ReqDeviceIdRegister.infer;
16
29
  export declare const ResDeviceIdRegister: import("arktype/internal/variants/object.ts").ObjectType<{
@@ -1,15 +1,36 @@
1
- import { decodeJwt } from "jose";
1
+ import { createInterface } from "node:readline";
2
2
  import { Hono } from "hono";
3
3
  import { serve } from "@hono/node-server";
4
4
  import open from "open";
5
5
  import { Future, timeouted, isSuccess, isTimeout, BuildURI, Result, Option, loadAsset } from "@adviser/cement";
6
6
  import { type } from "arktype";
7
7
  import { sendMsg, sendProgress } from "@vibes.diy/cmd-tools";
8
- import { getKeyBag } from "../keybag/keybag.js";
8
+ import { getKeyBag, deviceIdKeybagFilePath } from "../keybag/keybag.js";
9
9
  import { isUnreadableDeviceIdKeybagError } from "../keybag/key-bag.js";
10
10
  import { DeviceIdKey } from "./key.js";
11
11
  import { DeviceIdCSR } from "./csr.js";
12
- import { CertificatePayloadSchema } from "../types/cert-payload.js";
12
+ import { detectHeadlessBrowser, extractCertValue, heartbeatMessage, manualCompletionHint, parseCertJWT, storeDeviceCert, timeoutMessage, } from "./register-support.js";
13
+ function stdinPasteSource() {
14
+ if (!process.stdin.isTTY) {
15
+ return undefined;
16
+ }
17
+ const rl = createInterface({ input: process.stdin });
18
+ return {
19
+ onLine: (cb) => {
20
+ rl.on("line", cb);
21
+ },
22
+ close: () => rl.close(),
23
+ };
24
+ }
25
+ function defaultDeps(sthis) {
26
+ return {
27
+ openBrowser: (url) => open(url),
28
+ env: Object.fromEntries(sthis.env.keys().map((k) => [k, sthis.env.get(k)])),
29
+ platform: process.platform,
30
+ heartbeatMs: 30_000,
31
+ pasteSource: stdinPasteSource,
32
+ };
33
+ }
13
34
  function buildSubject(args) {
14
35
  return {
15
36
  commonName: args.commonName,
@@ -30,6 +51,8 @@ export const ReqDeviceIdRegister = type({
30
51
  port: "string",
31
52
  timeout: "string",
32
53
  forceRenew: "boolean",
54
+ "cert?": "string",
55
+ "noBrowser?": "boolean",
33
56
  });
34
57
  export const ResDeviceIdRegister = type({
35
58
  type: "'core-cli.res-device-id-register'",
@@ -38,6 +61,36 @@ export const ResDeviceIdRegister = type({
38
61
  export function isResDeviceIdRegister(u) {
39
62
  return !(ResDeviceIdRegister(u) instanceof type.errors);
40
63
  }
64
+ function registrationComplete(fingerprint, keyBagLocation) {
65
+ return {
66
+ type: "core-cli.res-device-id-register",
67
+ output: [
68
+ "\n✓ Registration complete! Certificate successfully stored with Device ID.",
69
+ `Device ID Fingerprint: ${fingerprint}`,
70
+ `Keybag: ${keyBagLocation}`,
71
+ ].join("\n"),
72
+ };
73
+ }
74
+ async function completeWithManualCert(ctx, { keyBag, keyBagLocation, certInput }) {
75
+ const rCert = extractCertValue(certInput);
76
+ if (rCert.isErr()) {
77
+ return Result.Err(`Invalid --cert value: ${rCert.Err().message}`);
78
+ }
79
+ const existing = await keyBag.getDeviceId();
80
+ if (existing.deviceId.IsNone()) {
81
+ return Result.Err(`no pending device key; run vibes-diy login first (keybag: ${keyBagLocation})`);
82
+ }
83
+ const rKey = await DeviceIdKey.createFromJWK(existing.deviceId.Unwrap());
84
+ if (rKey.isErr()) {
85
+ return Result.Err(`Error loading existing device ID: ${rKey.Err()}`);
86
+ }
87
+ await sendProgress(ctx, "info", "Storing certificate...");
88
+ const rStored = await storeDeviceCert({ keyBag, deviceIdKey: rKey.Ok(), certJWT: rCert.Ok() });
89
+ if (rStored.isErr()) {
90
+ return Result.Err(rStored.Err());
91
+ }
92
+ return sendMsg(ctx, registrationComplete(rStored.Ok().fingerprint, keyBagLocation));
93
+ }
41
94
  export const deviceIdRegisterEvento = {
42
95
  hash: "core-cli.device-id-register",
43
96
  validate: (ctx) => {
@@ -49,13 +102,22 @@ export const deviceIdRegisterEvento = {
49
102
  handle: async (ctx) => {
50
103
  const cliCtx = ctx.ctx.getOrThrow("cliCtx");
51
104
  const sthis = cliCtx.sthis;
105
+ const deps = {
106
+ ...defaultDeps(sthis),
107
+ ...(ctx.ctx.get("deviceIdRegisterDeps") ?? {}),
108
+ };
52
109
  const args = ctx.validated;
53
110
  const keyBag = await getKeyBag(sthis);
111
+ const keyBagLocation = deviceIdKeybagFilePath(sthis);
112
+ if (args.cert !== undefined) {
113
+ return completeWithManualCert(ctx, { keyBag, keyBagLocation, certInput: args.cert });
114
+ }
54
115
  const existingDeviceIdResult = await keyBag.getDeviceId();
55
116
  if (isUnreadableDeviceIdKeybagError(existingDeviceIdResult.error)) {
56
117
  await sendProgress(ctx, "warn", "Existing device credential is unreadable or corrupt — re-enrolling with a fresh device ID key.");
57
118
  }
58
- if (existingDeviceIdResult.cert.IsSome() && !args.forceRenew) {
119
+ const hasCert = existingDeviceIdResult.cert.IsSome();
120
+ if (hasCert && !args.forceRenew) {
59
121
  const jwk = existingDeviceIdResult.deviceId.Unwrap();
60
122
  const deviceIdKey = (await DeviceIdKey.createFromJWK(jwk)).Ok();
61
123
  const fingerprint = await deviceIdKey.fingerPrint();
@@ -63,25 +125,30 @@ export const deviceIdRegisterEvento = {
63
125
  type: "core-cli.res-device-id-register",
64
126
  output: [
65
127
  "Device already has a certificate. Registration not needed.",
66
- "Use --force-renew to renew the certificate.",
128
+ "Use --force to renew the certificate.",
67
129
  `Existing Device ID Fingerprint: ${fingerprint}`,
130
+ `Keybag: ${keyBagLocation}`,
68
131
  ].join("\n"),
69
132
  });
70
133
  }
71
- if (args.forceRenew && existingDeviceIdResult.cert.IsSome()) {
134
+ if (args.forceRenew && hasCert) {
72
135
  await sendProgress(ctx, "info", "Force renewing certificate...");
73
136
  }
137
+ const discardPending = existingDeviceIdResult.deviceId.IsSome() && !hasCert && args.forceRenew;
74
138
  let deviceIdKey;
75
- if (existingDeviceIdResult.deviceId.IsNone()) {
139
+ if (existingDeviceIdResult.deviceId.IsNone() || discardPending) {
140
+ if (discardPending) {
141
+ await sendProgress(ctx, "info", "--force: discarding the unenrolled device key from a previous login attempt.");
142
+ }
76
143
  await sendProgress(ctx, "info", "Creating new device ID key pair...");
77
144
  deviceIdKey = await DeviceIdKey.create();
78
145
  const jwkPrivate = await deviceIdKey.exportPrivateJWK();
79
146
  await keyBag.setDeviceId(jwkPrivate);
80
147
  const fingerprint = await deviceIdKey.fingerPrint();
81
148
  await sendProgress(ctx, "info", `Created Device ID Fingerprint: ${fingerprint}`);
149
+ await sendProgress(ctx, "info", `Keybag: ${keyBagLocation}`);
82
150
  }
83
151
  else {
84
- await sendProgress(ctx, "info", "Using existing device ID key...");
85
152
  const jwkPrivate = existingDeviceIdResult.deviceId.Unwrap();
86
153
  const createResult = await DeviceIdKey.createFromJWK(jwkPrivate);
87
154
  if (createResult.isErr()) {
@@ -89,7 +156,14 @@ export const deviceIdRegisterEvento = {
89
156
  }
90
157
  deviceIdKey = createResult.Ok();
91
158
  const fingerprint = await deviceIdKey.fingerPrint();
92
- await sendProgress(ctx, "info", `Device ID Fingerprint: ${fingerprint}`);
159
+ if (hasCert) {
160
+ await sendProgress(ctx, "info", "Using existing device ID key...");
161
+ await sendProgress(ctx, "info", `Device ID Fingerprint: ${fingerprint}`);
162
+ await sendProgress(ctx, "info", `Keybag: ${keyBagLocation}`);
163
+ }
164
+ else {
165
+ await sendProgress(ctx, "info", `Reusing unenrolled device key from a previous login attempt (fingerprint ${fingerprint}, keybag ${keyBagLocation}). Use --force for a fresh key.`);
166
+ }
93
167
  }
94
168
  await sendProgress(ctx, "info", "Generating Certificate Signing Request (CSR)...");
95
169
  const deviceIdCSR = new DeviceIdCSR(sthis, deviceIdKey);
@@ -133,46 +207,62 @@ export const deviceIdRegisterEvento = {
133
207
  await sendProgress(ctx, "info", `Started local callback server on port ${port}...`);
134
208
  const caUri = BuildURI.from(args.caUrl).setParam("csr", csrJWS).setParam("returnUrl", callbackUrl);
135
209
  const caUrlWithParams = caUri.toString();
136
- await sendProgress(ctx, "info", "\nOpening browser to CA for certificate signing...");
137
- await sendProgress(ctx, "info", `URL: ${caUrlWithParams}\n`);
138
- try {
139
- await open(caUrlWithParams);
210
+ const paste = deps.pasteSource();
211
+ paste?.onLine((line) => {
212
+ if (line.trim() === "") {
213
+ return;
214
+ }
215
+ const rCert = extractCertValue(line);
216
+ if (rCert.isErr() || parseCertJWT(rCert.Ok()).isErr()) {
217
+ void sendProgress(ctx, "warn", "That doesn't look like a certificate — paste the cert= value or the whole URL.");
218
+ return;
219
+ }
220
+ void sendProgress(ctx, "info", "\nCertificate pasted.");
221
+ certFuture.resolve(rCert.Ok());
222
+ });
223
+ const headless = detectHeadlessBrowser({ env: deps.env, platform: deps.platform, noBrowser: args.noBrowser ?? false });
224
+ if (headless.headless) {
225
+ await sendProgress(ctx, "info", `\nNot opening a browser (${headless.reason}).`);
226
+ await sendProgress(ctx, "info", `URL: ${caUrlWithParams}\n`);
227
+ await sendProgress(ctx, "info", manualCompletionHint(paste !== undefined));
140
228
  }
141
- catch {
142
- await sendProgress(ctx, "warn", "Could not automatically open browser. Please open this URL manually:");
143
- await sendProgress(ctx, "warn", caUrlWithParams);
229
+ else {
230
+ await sendProgress(ctx, "info", "\nOpening browser to CA for certificate signing...");
231
+ await sendProgress(ctx, "info", `URL: ${caUrlWithParams}\n`);
232
+ try {
233
+ await deps.openBrowser(caUrlWithParams);
234
+ }
235
+ catch {
236
+ await sendProgress(ctx, "warn", "Could not automatically open browser. Please open this URL manually:");
237
+ await sendProgress(ctx, "warn", caUrlWithParams);
238
+ await sendProgress(ctx, "info", manualCompletionHint(paste !== undefined));
239
+ }
144
240
  }
145
241
  await sendProgress(ctx, "info", "Waiting for certificate from CA...");
146
242
  await sendProgress(ctx, "info", "(The browser should redirect back to this application after signing)\n");
147
- const timeoutMs = parseInt(args.timeout, 10) * 1000;
148
- const result = await timeouted(certFuture.asPromise(), { timeout: timeoutMs });
243
+ const timeoutSeconds = parseInt(args.timeout, 10);
244
+ const deadline = Date.now() + timeoutSeconds * 1000;
245
+ const heartbeat = setInterval(() => {
246
+ void sendProgress(ctx, "info", heartbeatMessage(callbackUrl, (deadline - Date.now()) / 1000));
247
+ }, deps.heartbeatMs);
248
+ const result = await timeouted(certFuture.asPromise(), { timeout: timeoutSeconds * 1000 });
249
+ clearInterval(heartbeat);
250
+ paste?.close();
149
251
  serverInstance.close();
150
252
  if (!isSuccess(result)) {
151
253
  if (isTimeout(result)) {
152
- return Result.Err(`Timeout waiting for certificate from CA (${args.timeout}s).`);
254
+ return Result.Err(timeoutMessage(args.timeout, keyBagLocation));
153
255
  }
154
256
  else {
155
257
  return Result.Err(`Failed to receive certificate: ${result.state === "error" ? result.error : result}`);
156
258
  }
157
259
  }
158
- const receivedCert = result.value;
159
260
  await sendProgress(ctx, "info", "Storing certificate...");
160
- const decoded = decodeJwt(receivedCert);
161
- const certPayload = CertificatePayloadSchema.parse(decoded);
162
- const jwkPrivate = await deviceIdKey.exportPrivateJWK();
163
- const certToStore = {
164
- certificateJWT: receivedCert,
165
- certificatePayload: certPayload,
166
- };
167
- await keyBag.setDeviceId(jwkPrivate, certToStore);
168
- const fingerprint = await deviceIdKey.fingerPrint();
169
- return sendMsg(ctx, {
170
- type: "core-cli.res-device-id-register",
171
- output: [
172
- "\n✓ Registration complete! Certificate successfully stored with Device ID.",
173
- `Device ID Fingerprint: ${fingerprint}`,
174
- ].join("\n"),
175
- });
261
+ const rStored = await storeDeviceCert({ keyBag, deviceIdKey, certJWT: result.value });
262
+ if (rStored.isErr()) {
263
+ return Result.Err(rStored.Err());
264
+ }
265
+ return sendMsg(ctx, registrationComplete(rStored.Ok().fingerprint, keyBagLocation));
176
266
  },
177
267
  };
178
268
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../jsr/device-id/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../jsr/device-id/register.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { URI } from "@adviser/cement";
2
2
  import type { SuperThis } from "../types/sthis.js";
3
+ export declare function keyBagFileName(id: string): string;
3
4
  export declare class KeyBagProviderFile {
4
5
  #private;
5
6
  readonly url: URI;
@@ -9,6 +9,9 @@ function isNotFoundError(e) {
9
9
  }
10
10
  return err?.code === "ENOENT";
11
11
  }
12
+ export function keyBagFileName(id) {
13
+ return `${id.replace(/[^a-zA-Z0-9]/g, "_")}.json`;
14
+ }
12
15
  export class KeyBagProviderFile {
13
16
  url;
14
17
  logger;
@@ -26,7 +29,7 @@ export class KeyBagProviderFile {
26
29
  return {
27
30
  dirName,
28
31
  sysFS,
29
- fName: this.sthis.pathOps.join(dirName, `${id.replace(/[^a-zA-Z0-9]/g, "_")}.json`),
32
+ fName: this.sthis.pathOps.join(dirName, keyBagFileName(id)),
30
33
  };
31
34
  }
32
35
  async del(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"key-bag-file.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-bag-file.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag-file.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface KeyBagRuntime {
17
17
  getBagProvider(): Promise<KeyBagProvider>;
18
18
  id(): string;
19
19
  }
20
+ export declare const deviceIdKey: string;
20
21
  export declare class KeyBag {
21
22
  #private;
22
23
  readonly rt: KeyBagRuntime;
package/keybag/key-bag.js CHANGED
@@ -31,7 +31,7 @@ function isProviderReadFailure(e) {
31
31
  const msg = e instanceof Error ? e.message : String(e);
32
32
  return msg.toLowerCase().includes(READ_BAG_FAILED_MARKER);
33
33
  }
34
- const deviceIdKey = hashStringSync("FIREProof:deviceId");
34
+ export const deviceIdKey = hashStringSync("FIREProof:deviceId");
35
35
  const namedKeyItemsPerUrl = new Map();
36
36
  export class KeyBag {
37
37
  rt;
@@ -1 +1 @@
1
- {"version":3,"file":"key-bag.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-bag.js","sourceRoot":"","sources":["../../jsr/keybag/key-bag.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,6BAA6B,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACtC,IAAI,EAAE,wBAAwB;CAC/B,CAAC;KACD,QAAQ,EAAE,CAAC;AAUd,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IACtD,YAAY,KAAc;QACxB,KAAK,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,GAAG,GAAY,KAAK,CAAC;IACzB,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAK,GAA0B,CAAC,IAAI,KAAK,+BAA+B;YAAE,OAAO,IAAI,CAAC;QACtF,GAAG,GAAI,GAA2B,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEjD,SAAS,qBAAqB,CAAC,CAAU;IACvC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAC5D,CAAC;AAeD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAChE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA2C,CAAC;AAE/E,MAAM,OAAO,MAAM;IACR,EAAE,CAAgB;IAClB,cAAc,CAAkC;IAEzD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAiB;QACnC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,eAAe,EAAkB,CAAC;QAChG,OAAO,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,YAAoB,EAAiB,EAAE,aAA8C;QACnF,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IAEhD,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,GAAG,WAAW,CAAC;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACjD,IAAI,GAAY,CAAC;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAG9B,MAAM,CAAC,CAAC;gBACV,CAAC;gBAKD,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAc;oBACnC,IAAI,EAAE,MAAM,CAAC,IAAI,EAA2C;oBAC5D,KAAK,EAAE,IAAI,6BAA6B,CAAC,CAAC,CAAC;iBAC5C,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,KAAK,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBACf,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBAChB,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAc;oBACnC,IAAI,EAAE,MAAM,CAAC,IAAI,EAA2C;oBAC5D,KAAK;iBACN,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAsB,CAAC;gBACzD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAkC,CAAC;gBACjE,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAqB,EAAE,KAAkC;QACzE,MAAM,EAAE,GAAG,WAAW,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACjD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;gBACR,EAAE;gBACF,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE;oBACJ,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,KAAK;iBACZ;aACF,CAAC,CACH,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -2,6 +2,7 @@ import { URI } from "@adviser/cement";
2
2
  import type { SuperThis } from "../types/sthis.js";
3
3
  import { KeyBag } from "./key-bag.js";
4
4
  export declare function defaultKeyBagUrl(sthis: SuperThis): URI;
5
+ export declare function deviceIdKeybagFilePath(sthis: SuperThis): string;
5
6
  export declare function getKeyBag(sthis: SuperThis, kbo?: {
6
7
  readonly url?: URI | string;
7
8
  }): Promise<KeyBag>;
package/keybag/keybag.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { URI, runtimeFn, KeyedResolvOnce } from "@adviser/cement";
2
- import { KeyBag } from "./key-bag.js";
3
- import { KeyBagProviderFile } from "./key-bag-file.js";
2
+ import { KeyBag, deviceIdKey } from "./key-bag.js";
3
+ import { KeyBagProviderFile, keyBagFileName } from "./key-bag-file.js";
4
4
  import { KeyBagProviderMemory } from "./key-bag-memory.js";
5
5
  const keyBagProviderFactories = new Map([
6
6
  {
@@ -30,6 +30,13 @@ export function defaultKeyBagUrl(sthis) {
30
30
  }
31
31
  return url;
32
32
  }
33
+ export function deviceIdKeybagFilePath(sthis) {
34
+ const url = defaultKeyBagUrl(sthis);
35
+ if (url.protocol !== "file:") {
36
+ return url.toString();
37
+ }
38
+ return sthis.pathOps.join(url.pathname, keyBagFileName(deviceIdKey));
39
+ }
33
40
  function defaultKeyBagOpts(sthis, kbo) {
34
41
  const url = kbo.url ? URI.from(kbo.url) : defaultKeyBagUrl(sthis);
35
42
  const kitem = keyBagProviderFactories.get(url.protocol);
@@ -1 +1 @@
1
- {"version":3,"file":"keybag.js","sourceRoot":"","sources":["../../jsr/keybag/keybag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keybag.js","sourceRoot":"","sources":["../../jsr/keybag/keybag.ts"],"names":[],"mappings":"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"}
package/node.d.ts CHANGED
@@ -4,7 +4,7 @@ import type { JWKPrivate } from "./types/wire.js";
4
4
  import type { DeviceIdKeyBagItem } from "./types/keybag-item.js";
5
5
  import type { CertificatePayload } from "./types/cert-payload.js";
6
6
  import type { DashAuthType } from "./dash-api/protocols-dashboard/index.js";
7
- export { getKeyBag } from "./keybag/keybag.js";
7
+ export { getKeyBag, deviceIdKeybagFilePath } from "./keybag/keybag.js";
8
8
  export { DeviceIdKeybagUnreadableError, isUnreadableDeviceIdKeybagError } from "./keybag/key-bag.js";
9
9
  export declare function deviceIdKeybagReEnrollMessage(opts?: {
10
10
  readonly headlessEnvVar?: string;
@@ -15,6 +15,7 @@ export { DeviceIdCSR } from "./device-id/csr.js";
15
15
  export { DeviceIdVerifyMsg } from "./device-id/verify.js";
16
16
  export { DeviceIdCA } from "./device-id/ca.js";
17
17
  export { deviceIdRegisterEvento, isResDeviceIdRegister } from "./device-id/register.js";
18
+ export { detectHeadlessBrowser, extractCertValue, storeDeviceCert } from "./device-id/register-support.js";
18
19
  export type { ReqDeviceIdRegister } from "./device-id/register.js";
19
20
  export type { CertificatePayload } from "./types/cert-payload.js";
20
21
  export declare function clerkUserIdFromCertPayload(payload: CertificatePayload | undefined): string | undefined;
package/node.js CHANGED
@@ -5,7 +5,7 @@ import { getKeyBag } from "./keybag/keybag.js";
5
5
  import { isUnreadableDeviceIdKeybagError } from "./keybag/key-bag.js";
6
6
  import { DeviceIdKey } from "./device-id/key.js";
7
7
  import { DeviceIdSignMsg } from "./device-id/sign.js";
8
- export { getKeyBag } from "./keybag/keybag.js";
8
+ export { getKeyBag, deviceIdKeybagFilePath } from "./keybag/keybag.js";
9
9
  export { DeviceIdKeybagUnreadableError, isUnreadableDeviceIdKeybagError } from "./keybag/key-bag.js";
10
10
  export function deviceIdKeybagReEnrollMessage(opts) {
11
11
  const headless = opts?.headlessEnvVar ? `, or set ${opts.headlessEnvVar} for headless auth` : "";
@@ -17,6 +17,7 @@ export { DeviceIdCSR } from "./device-id/csr.js";
17
17
  export { DeviceIdVerifyMsg } from "./device-id/verify.js";
18
18
  export { DeviceIdCA } from "./device-id/ca.js";
19
19
  export { deviceIdRegisterEvento, isResDeviceIdRegister } from "./device-id/register.js";
20
+ export { detectHeadlessBrowser, extractCertValue, storeDeviceCert } from "./device-id/register-support.js";
20
21
  export function clerkUserIdFromCertPayload(payload) {
21
22
  const creatingUser = payload?.creatingUser;
22
23
  if (creatingUser === undefined || creatingUser.type !== "clerk")
package/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../jsr/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../jsr/node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/identity",
3
- "version": "14.3.187",
3
+ "version": "14.3.189",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -19,7 +19,7 @@
19
19
  "@adviser/ts-xxhash": "~1.0.2",
20
20
  "@clerk/shared": "~4.40.0",
21
21
  "@hono/node-server": "~2.1.4",
22
- "@vibes.diy/cmd-tools": "14.3.187",
22
+ "@vibes.diy/cmd-tools": "14.3.189",
23
23
  "arktype": "~2.2.8",
24
24
  "hono": "~4.13.9",
25
25
  "jose": "~6.2.12",