@vibes.diy/identity 2.6.8 → 2.6.10

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.
@@ -0,0 +1,31 @@
1
+ import { Result } from "@adviser/cement";
2
+ import type { ReqEnsureUser, ResEnsureUser, ReqFindUser, ResFindUser, ReqCreateTenant, ResCreateTenant, ReqUpdateTenant, ResUpdateTenant, ReqDeleteTenant, ResDeleteTenant, ReqRedeemInvite, ResRedeemInvite, ReqListTenantsByUser, ResListTenantsByUser, ReqInviteUser, ResInviteUser, ReqListInvites, ResListInvites, ReqDeleteInvite, ResDeleteInvite, ReqUpdateUserTenant, ResUpdateUserTenant, ReqCreateLedger, ResCreateLedger, ReqUpdateLedger, ResUpdateLedger, ReqDeleteLedger, ResDeleteLedger, ReqListLedgersByUser, ResListLedgersByUser, ReqCloudSessionToken, ResCloudSessionToken, ReqCertFromCsr, ResCertFromCsr, ReqExtendToken, ReqTokenByResultId, ResExtendToken, ResTokenByResultId, ReqEnsureCloudToken, ResEnsureCloudToken, ClerkDashboardApiConfig, DashboardApiConfigIntern, FPApiInterface, DashboardApiConfig, WithoutTypeAndAuth } from "@fireproof/core-types-protocols-dashboard";
3
+ import type { LoadedClerk, GetTokenOptions } from "@clerk/shared/types";
4
+ export declare class DashboardApiImpl<T> implements FPApiInterface {
5
+ #private;
6
+ readonly cfg: DashboardApiConfigIntern<T>;
7
+ constructor(cfg: DashboardApiConfig<T>);
8
+ private request;
9
+ ensureUser(req: WithoutTypeAndAuth<ReqEnsureUser>): Promise<Result<ResEnsureUser>>;
10
+ findUser(req: WithoutTypeAndAuth<ReqFindUser>): Promise<Result<ResFindUser>>;
11
+ createTenant(req: WithoutTypeAndAuth<ReqCreateTenant>): Promise<Result<ResCreateTenant>>;
12
+ updateTenant(req: WithoutTypeAndAuth<ReqUpdateTenant>): Promise<Result<ResUpdateTenant>>;
13
+ deleteTenant(req: WithoutTypeAndAuth<ReqDeleteTenant>): Promise<Result<ResDeleteTenant>>;
14
+ connectUserToTenant(req: WithoutTypeAndAuth<ReqRedeemInvite>): Promise<Result<ResRedeemInvite>>;
15
+ listTenantsByUser(req: WithoutTypeAndAuth<ReqListTenantsByUser>): Promise<Result<ResListTenantsByUser>>;
16
+ inviteUser(req: WithoutTypeAndAuth<ReqInviteUser>): Promise<Result<ResInviteUser>>;
17
+ listInvites(req: WithoutTypeAndAuth<ReqListInvites>): Promise<Result<ResListInvites>>;
18
+ deleteInvite(req: WithoutTypeAndAuth<ReqDeleteInvite>): Promise<Result<ResDeleteInvite>>;
19
+ updateUserTenant(req: WithoutTypeAndAuth<ReqUpdateUserTenant>): Promise<Result<ResUpdateUserTenant>>;
20
+ createLedger(req: WithoutTypeAndAuth<ReqCreateLedger>): Promise<Result<ResCreateLedger>>;
21
+ updateLedger(req: WithoutTypeAndAuth<ReqUpdateLedger>): Promise<Result<ResUpdateLedger>>;
22
+ deleteLedger(req: WithoutTypeAndAuth<ReqDeleteLedger>): Promise<Result<ResDeleteLedger>>;
23
+ listLedgersByUser(req: WithoutTypeAndAuth<ReqListLedgersByUser>): Promise<Result<ResListLedgersByUser>>;
24
+ getCloudSessionToken(req: WithoutTypeAndAuth<ReqCloudSessionToken>): Promise<Result<ResCloudSessionToken>>;
25
+ getCertFromCsr(req: WithoutTypeAndAuth<ReqCertFromCsr>): Promise<Result<ResCertFromCsr>>;
26
+ redeemInvite(req: ReqRedeemInvite): Promise<Result<ResRedeemInvite>>;
27
+ getTokenByResultId(req: ReqTokenByResultId): Promise<Result<ResTokenByResultId>>;
28
+ extendToken(req: ReqExtendToken): Promise<Result<ResExtendToken>>;
29
+ ensureCloudToken(req: WithoutTypeAndAuth<ReqEnsureCloudToken>): Promise<Result<ResEnsureCloudToken>>;
30
+ }
31
+ export declare function clerkDashApi<T extends GetTokenOptions = GetTokenOptions>(clerk: LoadedClerk, iopts: ClerkDashboardApiConfig<T>): DashboardApiImpl<T>;
@@ -0,0 +1,152 @@
1
+ import { Result, KeyedResolvOnce, WaitingForValue, Option, exception2Result } from "@adviser/cement";
2
+ export class DashboardApiImpl {
3
+ cfg;
4
+ constructor(cfg) {
5
+ this.cfg = {
6
+ gracePeriodMs: 5000,
7
+ ...cfg,
8
+ };
9
+ }
10
+ async request(req) {
11
+ let auth = req.auth;
12
+ if (!req.auth) {
13
+ const rAuth = await this.cfg.getToken(this.cfg.getTokenCtx);
14
+ if (rAuth.isErr()) {
15
+ return Result.Err(rAuth);
16
+ }
17
+ auth = rAuth.Ok();
18
+ }
19
+ const reqBody = JSON.stringify({
20
+ ...req,
21
+ auth,
22
+ });
23
+ const res = await this.cfg.fetch(this.cfg.apiUrl, {
24
+ method: "PUT",
25
+ headers: {
26
+ "Content-Type": "application/json",
27
+ Accept: "application/json",
28
+ },
29
+ body: reqBody,
30
+ });
31
+ if (res.ok) {
32
+ const jso = await res.json();
33
+ return Result.Ok(jso);
34
+ }
35
+ const body = await res.text();
36
+ return Result.Err(`HTTP: ${res.status} ${res.statusText}: ${body}`);
37
+ }
38
+ ensureUser(req) {
39
+ return this.request({ ...req, type: "reqEnsureUser" });
40
+ }
41
+ findUser(req) {
42
+ return this.request({ ...req, type: "reqFindUser" });
43
+ }
44
+ createTenant(req) {
45
+ return this.request({ ...req, type: "reqCreateTenant" });
46
+ }
47
+ updateTenant(req) {
48
+ return this.request({ ...req, type: "reqUpdateTenant" });
49
+ }
50
+ deleteTenant(req) {
51
+ return this.request({ ...req, type: "reqDeleteTenant" });
52
+ }
53
+ connectUserToTenant(req) {
54
+ return this.request({ ...req, type: "reqRedeemInvite" });
55
+ }
56
+ listTenantsByUser(req) {
57
+ return this.request({ ...req, type: "reqListTenantsByUser" });
58
+ }
59
+ inviteUser(req) {
60
+ return this.request({ ...req, type: "reqInviteUser" });
61
+ }
62
+ listInvites(req) {
63
+ return this.request({ ...req, type: "reqListInvites" });
64
+ }
65
+ deleteInvite(req) {
66
+ return this.request({ ...req, type: "reqDeleteInvite" });
67
+ }
68
+ updateUserTenant(req) {
69
+ return this.request({ ...req, type: "reqUpdateUserTenant" });
70
+ }
71
+ createLedger(req) {
72
+ return this.request({ ...req, type: "reqCreateLedger" });
73
+ }
74
+ updateLedger(req) {
75
+ return this.request({ ...req, type: "reqUpdateLedger" });
76
+ }
77
+ deleteLedger(req) {
78
+ return this.request({ ...req, type: "reqDeleteLedger" });
79
+ }
80
+ listLedgersByUser(req) {
81
+ return this.request({ ...req, type: "reqListLedgersByUser" });
82
+ }
83
+ getCloudSessionToken(req) {
84
+ return this.request({ ...req, type: "reqCloudSessionToken" });
85
+ }
86
+ getCertFromCsr(req) {
87
+ return this.request({ ...req, type: "reqCertFromCsr" });
88
+ }
89
+ redeemInvite(req) {
90
+ return this.request({ ...req, type: "reqRedeemInvite" });
91
+ }
92
+ getTokenByResultId(req) {
93
+ return this.request({ ...req, type: "reqTokenByResultId" });
94
+ }
95
+ extendToken(req) {
96
+ return this.request({ ...req, type: "reqExtendToken" });
97
+ }
98
+ #ensureCloudToken = new KeyedResolvOnce();
99
+ ensureCloudToken(req) {
100
+ return this.#ensureCloudToken
101
+ .get(JSON.stringify({
102
+ appId: req.appId,
103
+ env: req.env ?? "prod",
104
+ tenant: req.tenant ?? undefined,
105
+ ledger: req.ledger ?? undefined,
106
+ }))
107
+ .once(async (my) => {
108
+ const rRes = await this.request({ ...req, type: "reqEnsureCloudToken" });
109
+ if (rRes.isErr()) {
110
+ return Result.Err(rRes);
111
+ }
112
+ const res = rRes.Ok();
113
+ const resetAfter = res.expiresInSec * 1000 - this.cfg.gracePeriodMs;
114
+ my.self.setResetAfter(resetAfter < 0 ? 60000 : resetAfter);
115
+ return rRes;
116
+ });
117
+ }
118
+ }
119
+ const keyedDashApis = new KeyedResolvOnce();
120
+ export function clerkDashApi(clerk, iopts) {
121
+ return keyedDashApis.get(iopts.apiUrl).once(() => {
122
+ const waitForToken = new WaitingForValue();
123
+ const dashApi = new DashboardApiImpl({
124
+ ...iopts,
125
+ getTokenCtx: iopts.getTokenCtx ?? { template: iopts.template ?? "with-email" },
126
+ gracePeriodMs: iopts.gracePeriodMs && iopts.gracePeriodMs > 0 ? iopts.gracePeriodMs : 5000,
127
+ getToken: () => waitForToken
128
+ .waitValue()
129
+ .then((token) => Result.Ok({ type: "clerk", token }))
130
+ .catch((err) => Result.Err(err)),
131
+ fetch: iopts.fetch ?? fetch.bind(globalThis),
132
+ });
133
+ clerk.addListener(({ session }) => {
134
+ const preValue = waitForToken.value();
135
+ waitForToken.setValue(Option.None());
136
+ if (!(session && typeof session.getToken == "function")) {
137
+ return;
138
+ }
139
+ exception2Result(() => session.getToken(dashApi.cfg.getTokenCtx)).then((rGetToken) => {
140
+ if (rGetToken.isErr()) {
141
+ waitForToken.setError(rGetToken.Err());
142
+ waitForToken.setValue(preValue);
143
+ return;
144
+ }
145
+ const token = rGetToken.Ok();
146
+ waitForToken.setValue(Option.From(token));
147
+ });
148
+ });
149
+ return dashApi;
150
+ });
151
+ }
152
+ //# sourceMappingURL=dash-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dash-client.js","sourceRoot":"","sources":["../../jsr/dash-api/dash-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { clerkDashApi, DashboardApiImpl } from "./dash-client.js";
3
+ function fakeClerk(token) {
4
+ return {
5
+ addListener: (cb) => {
6
+ cb({ session: { getToken: async () => token } });
7
+ return () => undefined;
8
+ },
9
+ };
10
+ }
11
+ describe("dash-client (owned browser dashboard HTTP client)", () => {
12
+ it("clerkDashApi returns a DashboardApiImpl", () => {
13
+ const api = clerkDashApi(fakeClerk("t"), {
14
+ apiUrl: "https://dash.test/api/unique-1",
15
+ fetch: (async () => ({ ok: true, json: async () => ({}) })),
16
+ });
17
+ expect(api).toBeInstanceOf(DashboardApiImpl);
18
+ });
19
+ it("issues a single PUT with the Clerk token injected as auth, body is the request DTO", async () => {
20
+ let captured;
21
+ const api = clerkDashApi(fakeClerk("clerk-token-abc"), {
22
+ apiUrl: "https://dash.test/api/unique-2",
23
+ fetch: (async (url, init) => {
24
+ captured = { url, init };
25
+ return { ok: true, json: async () => ({ type: "resEnsureUser", userExisted: false }) };
26
+ }),
27
+ });
28
+ const res = await api.ensureUser({});
29
+ expect(res.isOk()).toBe(true);
30
+ expect(captured?.url).toBe("https://dash.test/api/unique-2");
31
+ expect(captured?.init.method).toBe("PUT");
32
+ const body = JSON.parse(captured?.init.body);
33
+ expect(body.type).toBe("reqEnsureUser");
34
+ expect(body.auth).toEqual({ type: "clerk", token: "clerk-token-abc" });
35
+ });
36
+ it("surfaces a non-ok HTTP response as a Result.Err", async () => {
37
+ const api = clerkDashApi(fakeClerk("t"), {
38
+ apiUrl: "https://dash.test/api/unique-3",
39
+ fetch: (async () => ({
40
+ ok: false,
41
+ status: 403,
42
+ statusText: "Forbidden",
43
+ text: async () => "nope",
44
+ })),
45
+ });
46
+ const res = await api.findUser({});
47
+ expect(res.isErr()).toBe(true);
48
+ });
49
+ });
50
+ //# sourceMappingURL=dash-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dash-client.test.js","sourceRoot":"","sources":["../../jsr/dash-api/dash-client.test.ts"],"names":[],"mappings":"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"}
package/dash-api/token.js CHANGED
@@ -2,8 +2,8 @@ import { Lazy, Result, param, exception2Result, isArrayBuffer, isUint8Array } fr
2
2
  import { sts, ensureSuperThis } from "@fireproof/core-runtime";
3
3
  import { decodeProtectedHeader, exportJWK } from "jose";
4
4
  import { ClerkClaimSchema } from "../clerk-claim.js";
5
- import { JWKPublicSchema } from "../types/wire.js";
6
- import { FPDeviceIDSessionSchema, toJwksAlg } from "@fireproof/core-types-base";
5
+ import { JWKPublicSchema, toJwksAlg } from "../types/wire.js";
6
+ import { FPDeviceIDSessionSchema } from "../types/device-id-payload.js";
7
7
  import { DeviceIdCA } from "../device-id/ca.js";
8
8
  import { DeviceIdVerifyMsg } from "../device-id/verify.js";
9
9
  import { ClerkApiToken } from "./clerk-token.js";
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../jsr/dash-api/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../jsr/dash-api/token.ts"],"names":[],"mappings":"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"}
package/device-id/csr.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { calculateJwkThumbprint, SignJWT } from "jose";
2
- import { FPDeviceIDCSRPayloadSchema } from "@fireproof/core-types-base";
2
+ import { FPDeviceIDCSRPayloadSchema } from "../types/device-id-payload.js";
3
3
  import { exception2Result } from "@adviser/cement";
4
4
  export class DeviceIdCSR {
5
5
  #key;
@@ -1 +1 @@
1
- {"version":3,"file":"csr.js","sourceRoot":"","sources":["../../jsr/device-id/csr.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAqC,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAU,MAAM,iBAAiB,CAAC;AAG3D,MAAM,OAAO,WAAW;IACb,IAAI,CAAc;IAClB,MAAM,CAAY;IAE3B,YAAY,KAAgB,EAAE,GAAgB;QAC5C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgB,EAAE,UAAU,GAAwB,EAAE;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,0BAA0B,CAAC,KAAK,CAAC;YACtC,GAAG,EAAE,OAAO,CAAC,UAAU;YACvB,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,uBAAuB;YAC5B,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG;YAC/B,GAAG,EAAE;gBACH,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACtC,UAAU,EAAE;oBACV,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,EAAE;oBAC/C,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;oBACxE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC;iBAChE;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA6B;QACzC,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,OAAyB,CAAC;iBACrD,kBAAkB,CAAC;gBAClB,GAAG,EAAE,OAAO;gBACZ,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,MAAM,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;aACvD,CAAC;iBACD,WAAW,EAAE;iBACb,iBAAiB,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5C,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,UAAU,GAAwB,EAAE;QACpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"csr.js","sourceRoot":"","sources":["../../jsr/device-id/csr.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAqC,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAU,MAAM,iBAAiB,CAAC;AAG3D,MAAM,OAAO,WAAW;IACb,IAAI,CAAc;IAClB,MAAM,CAAY;IAE3B,YAAY,KAAgB,EAAE,GAAgB;QAC5C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgB,EAAE,UAAU,GAAwB,EAAE;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,OAAO,0BAA0B,CAAC,KAAK,CAAC;YACtC,GAAG,EAAE,OAAO,CAAC,UAAU;YACvB,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,uBAAuB;YAC5B,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG;YAC/B,GAAG,EAAE;gBACH,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACtC,UAAU,EAAE;oBACV,cAAc,EAAE,UAAU,CAAC,cAAc,IAAI,EAAE;oBAC/C,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;oBACxE,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC;iBAChE;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA6B;QACzC,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,OAAyB,CAAC;iBACrD,kBAAkB,CAAC;gBAClB,GAAG,EAAE,OAAO;gBACZ,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,MAAM,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC;aACvD,CAAC;iBACD,WAAW,EAAE;iBACb,iBAAiB,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5C,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,UAAU,GAAwB,EAAE;QACpE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { FPDeviceIDCSRPayloadSchema } from "@fireproof/core-types-base";
1
+ import { FPDeviceIDCSRPayloadSchema } from "../types/device-id-payload.js";
2
2
  import { JWKPublicSchema } from "../types/wire.js";
3
3
  import { jwtVerify, decodeProtectedHeader, calculateJwkThumbprint } from "jose";
4
4
  import { sts } from "@fireproof/core-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../jsr/device-id/validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,sBAAsB,EAAY,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAa9C,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvF,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;YACrE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;YACnF,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjD,sBAAsB,CAAC,SAAgB,CAAC;gBACxC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAgB,CAAC;aACrD,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;YACvF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../jsr/device-id/validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,sBAAsB,EAAY,MAAM,MAAM,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAa9C,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvF,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;YACrE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;YACnF,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACjD,sBAAsB,CAAC,SAAgB,CAAC;gBACxC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAgB,CAAC;aACrD,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;YACvF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
package/index.d.ts CHANGED
@@ -7,4 +7,4 @@ export type { SuperThis, FPDeviceIDSession, DocTypes, JWKPrivate, JWKPublic, Dev
7
7
  export type { DeviceIdCAIf } from "@fireproof/core-types-device-id";
8
8
  export { JWKPrivateSchema, JWKPublicSchema } from "./types/wire.js";
9
9
  export { ClerkApiToken } from "./dash-api/clerk-token.js";
10
- export { clerkDashApi, DashboardApiImpl } from "@fireproof/core-protocols-dashboard";
10
+ export { clerkDashApi, DashboardApiImpl } from "./dash-api/dash-client.js";
package/index.js CHANGED
@@ -3,5 +3,5 @@ export { ClerkClaimSchema, ClerkEmailTemplateClaimSchema } from "./clerk-claim.j
3
3
  export { ensureSuperThis, ensureLogger, runtimeFn, hashObjectSync, sts } from "@fireproof/core-runtime";
4
4
  export { JWKPrivateSchema, JWKPublicSchema } from "./types/wire.js";
5
5
  export { ClerkApiToken } from "./dash-api/clerk-token.js";
6
- export { clerkDashApi, DashboardApiImpl } from "@fireproof/core-protocols-dashboard";
6
+ export { clerkDashApi, DashboardApiImpl } from "./dash-api/dash-client.js";
7
7
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAmB,MAAM,kBAAkB,CAAC;AAGpG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAgCxG,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAYpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAmB,MAAM,kBAAkB,CAAC;AAGpG,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAgCxG,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAcpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,77 @@
1
+ {
2
+ "id": "z3QkefAC57rcrs",
3
+ "clazz": "DeviceIdKeyBagItem",
4
+ "item": {
5
+ "deviceId": {
6
+ "kty": "EC",
7
+ "crv": "P-256",
8
+ "x": "Lg_s0u4Z4I2YLvwe7C_0mlJ9wZSZ-O7HZ-5OmLHT_Hc",
9
+ "y": "DMFTlfuSWnL6PKo_yAOtlw4T-z3bFrniHYhrHzw7rRg",
10
+ "d": "oNaLQAKo7fbIHFNi1t6LG9v6IZvWNJYfYQ8KLCs5w1Y"
11
+ },
12
+ "cert": {
13
+ "certificateJWT": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkNFUlQrSldUIiwia2lkIjoiWUxkd1RWZk5sOVVUUUczMno2ek5FNVI3QTh4NjBiaXlreXJfa2ljektSTSIsIng1YyI6W119.eyJpc3MiOiJUZXN0IERldmljZSBDQSIsInN1YiI6ImdvbGRlbi1kZXZpY2UiLCJhdWQiOiJjZXJ0aWZpY2F0ZS1hdXRob3JpdHkiLCJpYXQiOjE3ODI2MjM2ODUsIm5iZiI6MTc4MjYyMzY4NSwiZXhwIjoxODE0MTU5Njg1LCJqdGkiOiJ6NzQxcUx1R1J6Vm5EYlliaXdyZUtjQkRKTlN1Q3d5TGRHRkVwbnBvMjNFemIiLCJjcmVhdGluZ1VzZXIiOnsidHlwZSI6ImNsZXJrIiwiY2xhaW1zIjp7ImF6cCI6ImdvbGRlbi1hcHAiLCJleHAiOjE3MDAwMDM2MDAsImlhdCI6MTcwMDAwMDAwMCwiaXNzIjoiZ29sZGVuLWlzc3VlciIsImp0aSI6ImdvbGRlbi1qdGkiLCJuYmYiOjE3MDAwMDAwMDAsInBhcmFtcyI6eyJuaWNrIjoiZ29sZGVuIiwiZW1haWwiOiJnb2xkZW5AZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyc3QiOiJGaXJzdCIsImltYWdlX3VybCI6Imh0dHA6Ly9leGFtcGxlLmNvbS9pLnBuZyIsImxhc3QiOiJMYXN0IiwibmFtZSI6IkdvbGRlbiBEZXZpY2UiLCJwdWJsaWNfbWV0YSI6e319LCJyb2xlIjoiZGV2aWNlLWlkIiwic3ViIjoiZ29sZGVuLXN1YmplY3QiLCJ1c2VySWQiOiJnb2xkZW4tdXNlciIsImF1ZCI6WyJodHRwOi8vdGVzdC1hdWRpZW5jZS5sb2NhbGhvc3QvIl19fSwiY2VydGlmaWNhdGUiOnsidmVyc2lvbiI6IjMiLCJzZXJpYWxOdW1iZXIiOiJ6NzQxcUx1R1J6Vm5EYlliaXdyZUtjQkRKTlN1Q3d5TGRHRkVwbnBvMjNFemIiLCJzdWJqZWN0Ijp7ImNvbW1vbk5hbWUiOiJnb2xkZW4tZGV2aWNlIn0sImlzc3VlciI6eyJjb21tb25OYW1lIjoiVGVzdCBEZXZpY2UgQ0EiLCJvcmdhbml6YXRpb24iOiJUZXN0IE9yZ2FuaXphdGlvbiIsImxvY2FsaXR5IjoiVGVzdCBDaXR5Iiwic3RhdGVPclByb3ZpbmNlTmFtZSI6IlRlc3QgU3RhdGUiLCJjb3VudHJ5TmFtZSI6IlVTIn0sInZhbGlkaXR5Ijp7Im5vdEJlZm9yZSI6IjIwMjYtMDYtMjhUMDU6MTQ6NDUuMDAwWiIsIm5vdEFmdGVyIjoiMjAyNy0wNi0yOFQwNToxNDo0NS4wMDBaIn0sInN1YmplY3RQdWJsaWNLZXlJbmZvIjp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoiTGdfczB1NFo0STJZTHZ3ZTdDXzBtbEo5d1pTWi1PN0haLTVPbUxIVF9IYyIsInkiOiJETUZUbGZ1U1duTDZQS29feUFPdGx3NFQtejNiRnJuaUhZaHJIenc3clJnIn0sInNpZ25hdHVyZUFsZ29yaXRobSI6IkVTMjU2Iiwia2V5VXNhZ2UiOlsiZGlnaXRhbFNpZ25hdHVyZSIsImtleUVuY2lwaGVybWVudCJdLCJleHRlbmRlZEtleVVzYWdlIjpbInNlcnZlckF1dGgiXX19.F_A_U8TMoRmIZWuMM5kIf9ujrt3Bgt2imgcBkzDTfVU9CJTfPMJ5F4NIsOfFWjwj6szTbSGnVk3B9k0tAleJgA",
14
+ "certificatePayload": {
15
+ "iss": "Test Device CA",
16
+ "sub": "golden-device",
17
+ "aud": "certificate-authority",
18
+ "iat": 1782623685,
19
+ "nbf": 1782623685,
20
+ "exp": 1814159685,
21
+ "jti": "z741qLuGRzVnDbYbiwreKcBDJNSuCwyLdGFEpnpo23Ezb",
22
+ "creatingUser": {
23
+ "type": "clerk",
24
+ "claims": {
25
+ "azp": "golden-app",
26
+ "exp": 1700003600,
27
+ "iat": 1700000000,
28
+ "iss": "golden-issuer",
29
+ "jti": "golden-jti",
30
+ "nbf": 1700000000,
31
+ "params": {
32
+ "nick": "golden",
33
+ "email": "golden@example.com",
34
+ "email_verified": true,
35
+ "first": "First",
36
+ "image_url": "http://example.com/i.png",
37
+ "last": "Last",
38
+ "name": "Golden Device",
39
+ "public_meta": {}
40
+ },
41
+ "role": "device-id",
42
+ "sub": "golden-subject",
43
+ "userId": "golden-user",
44
+ "aud": ["http://test-audience.localhost/"]
45
+ }
46
+ },
47
+ "certificate": {
48
+ "version": "3",
49
+ "serialNumber": "z741qLuGRzVnDbYbiwreKcBDJNSuCwyLdGFEpnpo23Ezb",
50
+ "subject": {
51
+ "commonName": "golden-device"
52
+ },
53
+ "issuer": {
54
+ "commonName": "Test Device CA",
55
+ "organization": "Test Organization",
56
+ "locality": "Test City",
57
+ "stateOrProvinceName": "Test State",
58
+ "countryName": "US"
59
+ },
60
+ "validity": {
61
+ "notBefore": "2026-06-28T05:14:45.000Z",
62
+ "notAfter": "2027-06-28T05:14:45.000Z"
63
+ },
64
+ "subjectPublicKeyInfo": {
65
+ "kty": "EC",
66
+ "crv": "P-256",
67
+ "x": "Lg_s0u4Z4I2YLvwe7C_0mlJ9wZSZ-O7HZ-5OmLHT_Hc",
68
+ "y": "DMFTlfuSWnL6PKo_yAOtlw4T-z3bFrniHYhrHzw7rRg"
69
+ },
70
+ "signatureAlgorithm": "ES256",
71
+ "keyUsage": ["digitalSignature", "keyEncipherment"],
72
+ "extendedKeyUsage": ["serverAuth"]
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,131 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { mkdtempSync, readdirSync, readFileSync, writeFileSync, existsSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { hashStringSync } from "@fireproof/core-runtime";
6
+ import { ensureSuperThis } from "../index.js";
7
+ import { getKeyBag } from "../node.js";
8
+ const DEVICE_ID_FILENAME = "z3QkefAC57rcrs.json";
9
+ const DEVICE_ID = "z3QkefAC57rcrs";
10
+ const FIXTURE = JSON.parse(readFileSync(new URL("./keybag-golden.fixture.json", import.meta.url), "utf8"));
11
+ const deviceId = FIXTURE.item.deviceId;
12
+ const cert = FIXTURE.item.cert;
13
+ function tmpKeybag() {
14
+ const dir = mkdtempSync(join(tmpdir(), "kb-golden-"));
15
+ const sthis = ensureSuperThis();
16
+ sthis.env.set("FP_KEYBAG_URL", `file://${dir}`);
17
+ return { dir, sthis };
18
+ }
19
+ describe("keybag golden — on-disk WRITE contract (two-phase enroll)", () => {
20
+ it("setDeviceId(jwk) persists a key-only envelope (no cert key)", async () => {
21
+ const { dir, sthis } = tmpKeybag();
22
+ await (await getKeyBag(sthis)).setDeviceId(deviceId);
23
+ expect(readdirSync(dir)).toEqual([DEVICE_ID_FILENAME]);
24
+ const onDisk = JSON.parse(readFileSync(join(dir, DEVICE_ID_FILENAME), "utf8"));
25
+ expect(onDisk).toEqual({ id: DEVICE_ID, clazz: "DeviceIdKeyBagItem", item: { deviceId } });
26
+ expect("cert" in onDisk.item).toBe(false);
27
+ });
28
+ it("setDeviceId(jwk, cert) writes the full envelope (structurally equal to the golden file)", async () => {
29
+ const { dir, sthis } = tmpKeybag();
30
+ const kb = await getKeyBag(sthis);
31
+ await kb.setDeviceId(deviceId);
32
+ await kb.setDeviceId(deviceId, cert);
33
+ const onDisk = JSON.parse(readFileSync(join(dir, DEVICE_ID_FILENAME), "utf8"));
34
+ expect(onDisk).toEqual({ id: DEVICE_ID, clazz: "DeviceIdKeyBagItem", item: { deviceId, cert } });
35
+ expect(onDisk).toEqual(FIXTURE);
36
+ });
37
+ });
38
+ describe("keybag golden — on-disk READ contract (pre-existing file parses)", () => {
39
+ it("a pre-existing key+cert file reads back to the same key and cert", async () => {
40
+ const { dir, sthis } = tmpKeybag();
41
+ writeFileSync(join(dir, DEVICE_ID_FILENAME), JSON.stringify(FIXTURE));
42
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
43
+ expect(devid.error).toBeUndefined();
44
+ expect(devid.deviceId.IsSome()).toBe(true);
45
+ expect(devid.deviceId.Unwrap()).toEqual(deviceId);
46
+ expect(devid.cert.IsSome()).toBe(true);
47
+ expect(devid.cert.Unwrap()).toEqual(cert);
48
+ });
49
+ it("a pre-existing key-only file yields deviceId present, cert absent", async () => {
50
+ const { dir, sthis } = tmpKeybag();
51
+ const keyOnly = { id: DEVICE_ID, clazz: "DeviceIdKeyBagItem", item: { deviceId } };
52
+ writeFileSync(join(dir, DEVICE_ID_FILENAME), JSON.stringify(keyOnly));
53
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
54
+ expect(devid.deviceId.IsSome()).toBe(true);
55
+ expect(devid.cert.IsNone()).toBe(true);
56
+ });
57
+ it("rejects a file with a malformed cert (strict cert-payload parse, not silent accept)", async () => {
58
+ const { dir, sthis } = tmpKeybag();
59
+ const malformed = {
60
+ id: DEVICE_ID,
61
+ clazz: "DeviceIdKeyBagItem",
62
+ item: { deviceId, cert: { certificateJWT: "a.b.c", certificatePayload: { sub: "x", certificate: { commonName: "x" } } } },
63
+ };
64
+ writeFileSync(join(dir, DEVICE_ID_FILENAME), JSON.stringify(malformed));
65
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
66
+ expect(devid.error).toBeDefined();
67
+ expect(devid.deviceId.IsNone()).toBe(true);
68
+ expect(devid.cert.IsNone()).toBe(true);
69
+ });
70
+ });
71
+ describe("keybag golden — contract locks", () => {
72
+ it("default node keybag path is $HOME/.fireproof/keybag/<id>.json", async () => {
73
+ const home = mkdtempSync(join(tmpdir(), "kb-home-"));
74
+ const sthis = ensureSuperThis();
75
+ sthis.env.delete("FP_KEYBAG_URL");
76
+ sthis.env.set("HOME", home);
77
+ await (await getKeyBag(sthis)).setDeviceId(deviceId);
78
+ expect(existsSync(join(home, ".fireproof", "keybag", DEVICE_ID_FILENAME))).toBe(true);
79
+ });
80
+ it("the filename derives from a frozen hash of the device-id key string", () => {
81
+ expect(hashStringSync("FIREProof:deviceId")).toBe(DEVICE_ID);
82
+ expect(`${DEVICE_ID}.json`).toBe(DEVICE_ID_FILENAME);
83
+ });
84
+ });
85
+ describe("keybag golden — memory provider parity (lift must keep memory:// working)", () => {
86
+ function memSthis() {
87
+ const sthis = ensureSuperThis();
88
+ sthis.env.set("FP_KEYBAG_URL", `memory://kb-golden-${sthis.nextId().str}`);
89
+ return sthis;
90
+ }
91
+ it("memory:// round-trips key-only then key+cert", async () => {
92
+ const sthis = memSthis();
93
+ const kb = await getKeyBag(sthis);
94
+ await kb.setDeviceId(deviceId);
95
+ let devid = await kb.getDeviceId();
96
+ expect(devid.deviceId.IsSome()).toBe(true);
97
+ expect(devid.deviceId.Unwrap()).toEqual(deviceId);
98
+ expect(devid.cert.IsNone()).toBe(true);
99
+ await kb.setDeviceId(deviceId, cert);
100
+ devid = await kb.getDeviceId();
101
+ expect(devid.deviceId.Unwrap()).toEqual(deviceId);
102
+ expect(devid.cert.IsSome()).toBe(true);
103
+ expect(devid.cert.Unwrap()).toEqual(cert);
104
+ });
105
+ });
106
+ describe("keybag golden — node-only boundary (keybag must not reach the browser bundle)", () => {
107
+ it("the browser surface (index.js) does not expose the keybag", async () => {
108
+ const browser = await import("../index.js");
109
+ expect("getKeyBag" in browser).toBe(false);
110
+ expect("createDeviceIdGetToken" in browser).toBe(false);
111
+ });
112
+ });
113
+ describe("keybag golden — corruption / partial-write failure mode (characterization)", () => {
114
+ it("unparseable files throw (empty / non-JSON / truncated)", async () => {
115
+ for (const contents of ["", "%%% not json %%%", '{"id":"z3QkefAC57rcrs","clazz":"DeviceIdK']) {
116
+ const { dir, sthis } = tmpKeybag();
117
+ writeFileSync(join(dir, DEVICE_ID_FILENAME), contents);
118
+ const kb = await getKeyBag(sthis);
119
+ await expect(kb.getDeviceId()).rejects.toThrow();
120
+ }
121
+ });
122
+ it("parseable JSON of the wrong shape returns a structured error, not a throw", async () => {
123
+ const { dir, sthis } = tmpKeybag();
124
+ writeFileSync(join(dir, DEVICE_ID_FILENAME), JSON.stringify({ hello: "world" }));
125
+ const devid = await (await getKeyBag(sthis)).getDeviceId();
126
+ expect(devid.error).toBeDefined();
127
+ expect(devid.deviceId.IsNone()).toBe(true);
128
+ expect(devid.cert.IsNone()).toBe(true);
129
+ });
130
+ });
131
+ //# sourceMappingURL=keybag-golden.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keybag-golden.test.js","sourceRoot":"","sources":["../../jsr/keybag/keybag-golden.test.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": "2.6.8",
3
+ "version": "2.6.10",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "exports": {
@@ -14,10 +14,9 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@adviser/cement": "~0.5.34",
17
+ "@clerk/shared": "~4.6.0",
17
18
  "@fireproof/core-cli": "~0.24.19",
18
- "@fireproof/core-device-id": "~0.24.19",
19
19
  "@fireproof/core-keybag": "~0.24.19",
20
- "@fireproof/core-protocols-dashboard": "~0.24.19",
21
20
  "@fireproof/core-runtime": "~0.24.19",
22
21
  "@fireproof/core-types-base": "~0.24.19",
23
22
  "@fireproof/core-types-device-id": "~0.24.19",
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { SubjectSchema, ExtensionsSchema } from "@fireproof/core-types-base";
2
+ import { SubjectSchema, ExtensionsSchema } from "./device-id-payload.js";
3
3
  import { JWKPublicSchema } from "./wire.js";
4
4
  import { ClerkClaimSchema } from "../clerk-claim.js";
5
5
  const CreatingUserSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"cert-payload.js","sourceRoot":"","sources":["../../jsr/types/cert-payload.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;IACF,oBAAoB,EAAE,eAAe;IACrC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,IAAI,CAAC;QACL,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,aAAa;QACb,SAAS;QACT,cAAc;QACd,cAAc;KACf,CAAC,CACH;IACD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CACvB,CAAC,CAAC,IAAI,CAAC;QACL,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,OAAO;KACR,CAAC,CACH;IACD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC;KACrE,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,WAAW,EAAE,iBAAiB;IAC9B,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,QAAQ,EAAmC,CAAC"}
1
+ {"version":3,"file":"cert-payload.js","sourceRoot":"","sources":["../../jsr/types/cert-payload.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;IACF,oBAAoB,EAAE,eAAe;IACrC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,IAAI,CAAC;QACL,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,cAAc;QACd,aAAa;QACb,SAAS;QACT,cAAc;QACd,cAAc;KACf,CAAC,CACH;IACD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CACvB,CAAC,CAAC,IAAI,CAAC;QACL,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,OAAO;KACR,CAAC,CACH;IACD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,wBAAwB,GAAkC,CAAC;KACrE,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,WAAW,EAAE,iBAAiB;IAC9B,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,QAAQ,EAAmC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ import type { Subject, Extensions, FPDeviceIDCSRPayload, FPDeviceIDSession } from "@fireproof/core-types-base";
3
+ export declare const SubjectSchema: z.ZodType<Subject>;
4
+ export declare const ExtensionsSchema: z.ZodType<Extensions>;
5
+ export declare const FPDeviceIDCSRPayloadSchema: z.ZodType<FPDeviceIDCSRPayload>;
6
+ export declare const FPDeviceIDSessionSchema: z.ZodType<FPDeviceIDSession>;
@@ -0,0 +1,111 @@
1
+ import { z } from "zod";
2
+ import { JWKPublicSchema } from "./wire.js";
3
+ import { ClerkClaimSchema } from "../clerk-claim.js";
4
+ const JWTPayloadSchema = z.object({
5
+ azp: z.string().optional(),
6
+ iss: z.string().optional(),
7
+ sub: z.string().optional(),
8
+ aud: z.union([z.string(), z.array(z.string())]).optional(),
9
+ exp: z.number().int().optional(),
10
+ nbf: z.number().int().optional(),
11
+ iat: z.number().int().optional(),
12
+ jti: z.string().optional(),
13
+ });
14
+ const CreatingUserSchema = z.object({
15
+ type: z.literal("clerk"),
16
+ claims: ClerkClaimSchema,
17
+ });
18
+ export const SubjectSchema = z.object({
19
+ commonName: z.string(),
20
+ countryName: z.string().length(2).optional(),
21
+ stateOrProvinceName: z.string().optional(),
22
+ locality: z.string().optional(),
23
+ organization: z.string().optional(),
24
+ organizationalUnitName: z.string().optional(),
25
+ emailAddress: z.string().email().optional(),
26
+ serialNumber: z.string().optional(),
27
+ streetAddress: z.string().optional(),
28
+ postalCode: z.string().optional(),
29
+ businessCategory: z.string().optional(),
30
+ jurisdictionCountryName: z.string().length(2).optional(),
31
+ jurisdictionStateOrProvinceName: z.string().optional(),
32
+ jurisdictionLocalityName: z.string().optional(),
33
+ });
34
+ export const ExtensionsSchema = z.object({
35
+ subjectAltName: z.array(z.string()).optional(),
36
+ keyUsage: z
37
+ .array(z.enum([
38
+ "digitalSignature",
39
+ "nonRepudiation",
40
+ "keyEncipherment",
41
+ "dataEncipherment",
42
+ "keyAgreement",
43
+ "keyCertSign",
44
+ "cRLSign",
45
+ "encipherOnly",
46
+ "decipherOnly",
47
+ ]))
48
+ .optional(),
49
+ extendedKeyUsage: z
50
+ .array(z.enum([
51
+ "serverAuth",
52
+ "clientAuth",
53
+ "codeSigning",
54
+ "emailProtection",
55
+ "timeStamping",
56
+ "OCSPSigning",
57
+ "ipsecIKE",
58
+ "msCodeInd",
59
+ "msCodeCom",
60
+ "msCTLSign",
61
+ "msEFS",
62
+ ]))
63
+ .optional(),
64
+ basicConstraints: z
65
+ .object({
66
+ cA: z.boolean().optional(),
67
+ pathLenConstraint: z.number().int().min(0).optional(),
68
+ })
69
+ .optional(),
70
+ authorityKeyIdentifier: z.string().optional(),
71
+ subjectKeyIdentifier: z.string().optional(),
72
+ certificatePolicies: z
73
+ .array(z.object({
74
+ policyIdentifier: z.string(),
75
+ policyQualifiers: z.array(z.string()).optional(),
76
+ }))
77
+ .optional(),
78
+ crlDistributionPoints: z.array(z.string().url()).optional(),
79
+ authorityInfoAccess: z
80
+ .object({
81
+ ocsp: z.array(z.string().url()).optional(),
82
+ caIssuers: z.array(z.string().url()).optional(),
83
+ })
84
+ .optional(),
85
+ nameConstraints: z
86
+ .object({
87
+ permitted: z.array(z.string()).optional(),
88
+ excluded: z.array(z.string()).optional(),
89
+ })
90
+ .optional(),
91
+ });
92
+ export const FPDeviceIDCSRPayloadSchema = JWTPayloadSchema.extend({
93
+ creatingUser: CreatingUserSchema.optional(),
94
+ csr: z
95
+ .object({
96
+ subject: SubjectSchema,
97
+ publicKey: JWKPublicSchema,
98
+ extensions: ExtensionsSchema.optional(),
99
+ })
100
+ .strict()
101
+ .readonly(),
102
+ })
103
+ .strict()
104
+ .readonly();
105
+ export const FPDeviceIDSessionSchema = JWTPayloadSchema.extend({
106
+ deviceId: z.string(),
107
+ seq: z.number().int().min(0),
108
+ })
109
+ .strict()
110
+ .readonly();
111
+ //# sourceMappingURL=device-id-payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-id-payload.js","sourceRoot":"","sources":["../../jsr/types/device-id-payload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { SubjectSchema, ExtensionsSchema, FPDeviceIDSessionSchema, FPDeviceIDCSRPayloadSchema } from "./device-id-payload.js";
3
+ import { SubjectSchema as UpstreamSubject, ExtensionsSchema as UpstreamExtensions, FPDeviceIDSessionSchema as UpstreamSession, FPDeviceIDCSRPayloadSchema as UpstreamCSR, } from "@fireproof/core-types-base";
4
+ const publicKey = { kty: "EC", crv: "P-256", x: "abc", y: "def" };
5
+ const subject = { commonName: "device-1" };
6
+ const fullClerkClaim = {
7
+ role: "member",
8
+ sub: "u_1",
9
+ userId: "u_1",
10
+ params: {
11
+ email: "a@b.c",
12
+ email_verified: true,
13
+ first: "First",
14
+ image_url: "http://x/y.png",
15
+ last: "Last",
16
+ name: "Full Name",
17
+ public_meta: {},
18
+ },
19
+ };
20
+ const leanClerkClaim = {
21
+ role: "member",
22
+ sub: "u_1",
23
+ userId: "u_1",
24
+ params: { email: "a@b.c", email_verified: true, public_meta: {} },
25
+ };
26
+ const now = 1_700_000_000;
27
+ const validSession = { iss: "x", sub: "device-id", deviceId: "dev", seq: 1, exp: now + 120, nbf: now - 2, iat: now, jti: "j" };
28
+ const csrPayload = (creatingUser) => ({
29
+ sub: "device-1",
30
+ iss: "csr-client",
31
+ aud: "certificate-authority",
32
+ iat: now,
33
+ exp: now + 3600,
34
+ jti: "j",
35
+ ...(creatingUser ? { creatingUser } : {}),
36
+ csr: {
37
+ subject,
38
+ publicKey,
39
+ extensions: { subjectAltName: [], keyUsage: ["digitalSignature"], extendedKeyUsage: ["serverAuth"] },
40
+ },
41
+ });
42
+ describe("device-id payload schemas — owned vs upstream parity (non-Clerk parts)", () => {
43
+ it("Subject: owned and upstream agree on accept/reject", () => {
44
+ expect(SubjectSchema.safeParse(subject).success).toBe(true);
45
+ expect(SubjectSchema.safeParse(subject).success).toBe(UpstreamSubject.safeParse(subject).success);
46
+ expect(SubjectSchema.safeParse({}).success).toBe(false);
47
+ expect(SubjectSchema.safeParse({}).success).toBe(UpstreamSubject.safeParse({}).success);
48
+ const badCountry = { commonName: "d", countryName: "USA" };
49
+ expect(SubjectSchema.safeParse(badCountry).success).toBe(false);
50
+ expect(SubjectSchema.safeParse(badCountry).success).toBe(UpstreamSubject.safeParse(badCountry).success);
51
+ });
52
+ it("Extensions: owned and upstream agree", () => {
53
+ const ext = { keyUsage: ["digitalSignature"], extendedKeyUsage: ["serverAuth"] };
54
+ expect(ExtensionsSchema.safeParse(ext).success).toBe(true);
55
+ expect(ExtensionsSchema.safeParse(ext).success).toBe(UpstreamExtensions.safeParse(ext).success);
56
+ const badEnum = { keyUsage: ["notAUsage"] };
57
+ expect(ExtensionsSchema.safeParse(badEnum).success).toBe(false);
58
+ expect(ExtensionsSchema.safeParse(badEnum).success).toBe(UpstreamExtensions.safeParse(badEnum).success);
59
+ });
60
+ it("FPDeviceIDSession: owned and upstream agree (valid + strict + seq bounds)", () => {
61
+ expect(FPDeviceIDSessionSchema.safeParse(validSession).success).toBe(true);
62
+ expect(UpstreamSession.safeParse(validSession).success).toBe(true);
63
+ const extra = { ...validSession, bogus: 1 };
64
+ expect(FPDeviceIDSessionSchema.safeParse(extra).success).toBe(false);
65
+ expect(FPDeviceIDSessionSchema.safeParse(extra).success).toBe(UpstreamSession.safeParse(extra).success);
66
+ const negSeq = { ...validSession, seq: -1 };
67
+ expect(FPDeviceIDSessionSchema.safeParse(negSeq).success).toBe(false);
68
+ expect(FPDeviceIDSessionSchema.safeParse(negSeq).success).toBe(UpstreamSession.safeParse(negSeq).success);
69
+ });
70
+ it("FPDeviceIDCSRPayload: owned and upstream agree on a CSR with no clerk claim", () => {
71
+ expect(FPDeviceIDCSRPayloadSchema.safeParse(csrPayload()).success).toBe(true);
72
+ expect(UpstreamCSR.safeParse(csrPayload()).success).toBe(true);
73
+ const extra = { ...csrPayload(), csr: { ...csrPayload().csr, bogus: 1 } };
74
+ expect(FPDeviceIDCSRPayloadSchema.safeParse(extra).success).toBe(false);
75
+ expect(FPDeviceIDCSRPayloadSchema.safeParse(extra).success).toBe(UpstreamCSR.safeParse(extra).success);
76
+ });
77
+ });
78
+ describe("device-id CSR payload — owned Clerk-claim leniency (patch-removal gate)", () => {
79
+ it("accepts a CSR whose creatingUser clerk claim omits first/image_url/last/name", () => {
80
+ expect(FPDeviceIDCSRPayloadSchema.safeParse(csrPayload({ type: "clerk", claims: leanClerkClaim })).success).toBe(true);
81
+ expect(UpstreamCSR.safeParse(csrPayload({ type: "clerk", claims: leanClerkClaim })).success).toBe(false);
82
+ });
83
+ it("accepts a CSR whose creatingUser carries a fully-populated clerk claim", () => {
84
+ expect(FPDeviceIDCSRPayloadSchema.safeParse(csrPayload({ type: "clerk", claims: fullClerkClaim })).success).toBe(true);
85
+ });
86
+ });
87
+ //# sourceMappingURL=device-id-payload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-id-payload.test.js","sourceRoot":"","sources":["../../jsr/types/device-id-payload.test.ts"],"names":[],"mappings":"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"}
package/types/wire.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Result } from "@adviser/cement";
1
2
  import { z } from "zod";
2
3
  import type { ClerkClaim } from "../clerk-claim.js";
3
4
  import type { JWKPublic } from "@fireproof/core-types-base";
@@ -117,6 +118,11 @@ export declare const JWKPublicSchema: z.ZodIntersection<z.ZodObject<{
117
118
  }>;
118
119
  x: z.ZodString;
119
120
  }, z.core.$strip>], "kty">>;
121
+ export declare function toJwksAlg(jwk: {
122
+ kty?: string;
123
+ crv?: string;
124
+ alg?: string;
125
+ }): Result<string>;
120
126
  export interface DashAuthType {
121
127
  readonly type: "ucan" | "clerk" | "device-id";
122
128
  readonly token: string;
package/types/wire.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { Result } from "@adviser/cement";
1
2
  import { z } from "zod";
2
3
  const JWKCommon = z.object({
3
4
  kty: z.enum(["RSA", "EC", "oct", "OKP"]),
@@ -38,4 +39,43 @@ export const JWKPublicSchema = JWKCommon.and(z.discriminatedUnion("kty", [
38
39
  z.object({ kty: z.literal("oct"), k: z.string() }),
39
40
  z.object({ kty: z.literal("OKP"), crv: z.enum(["Ed25519", "Ed448", "X25519", "X448"]), x: z.string() }),
40
41
  ]));
42
+ export function toJwksAlg(jwk) {
43
+ if (jwk.alg) {
44
+ return Result.Ok(jwk.alg);
45
+ }
46
+ switch (jwk.kty) {
47
+ case "EC": {
48
+ switch (jwk.crv) {
49
+ case "P-256":
50
+ return Result.Ok("ES256");
51
+ case "P-384":
52
+ return Result.Ok("ES384");
53
+ case "P-521":
54
+ return Result.Ok("ES512");
55
+ case "secp256k1":
56
+ return Result.Ok("ES256K");
57
+ default:
58
+ return Result.Err(`Unsupported EC curve: ${jwk.crv}`);
59
+ }
60
+ }
61
+ case "RSA": {
62
+ return Result.Ok("RS256");
63
+ }
64
+ case "OKP": {
65
+ switch (jwk.crv) {
66
+ case "Ed25519":
67
+ return Result.Ok("EdDSA");
68
+ case "Ed448":
69
+ return Result.Ok("EdDSA");
70
+ default:
71
+ return Result.Err(`Unsupported OKP curve: ${jwk.crv}`);
72
+ }
73
+ }
74
+ case "oct": {
75
+ return Result.Ok("HS256");
76
+ }
77
+ default:
78
+ return Result.Err(`Unsupported key type: ${jwk.kty}`);
79
+ }
80
+ }
41
81
  //# sourceMappingURL=wire.js.map
package/types/wire.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../jsr/types/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../jsr/types/wire.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChI,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAC3C,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE;IAC1B,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACpB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;KACd,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACvH,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAC1C,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE;IAC1B,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACjE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IACvH,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAClD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;CACxG,CAAC,CACH,CAAC;AAKF,MAAM,UAAU,SAAS,CAAC,GAAiD;IACzE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,EAAE,CAAC;YACV,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,WAAW;oBACd,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC7B;oBACE,OAAO,MAAM,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;gBAChB,KAAK,SAAS;oBACZ,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5B;oBACE,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD;YACE,OAAO,MAAM,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}