@vibes.diy/identity 2.6.5 → 2.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/clerk-claim-parity.test.d.ts +1 -0
- package/clerk-claim-parity.test.js +63 -0
- package/clerk-claim-parity.test.js.map +1 -0
- package/clerk-claim.d.ts +32 -0
- package/clerk-claim.js +11 -0
- package/clerk-claim.js.map +1 -1
- package/dash-api/clerk-token.d.ts +13 -0
- package/dash-api/clerk-token.js +87 -0
- package/dash-api/clerk-token.js.map +1 -0
- package/dash-api/token.d.ts +22 -0
- package/dash-api/token.js +101 -0
- package/dash-api/token.js.map +1 -0
- package/device-id/ca.js +1 -1
- package/device-id/ca.js.map +1 -1
- package/device-id/certor.js +1 -1
- package/device-id/certor.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/server.d.ts +1 -1
- package/server.js +1 -1
- package/server.js.map +1 -1
- package/types/cert-payload.d.ts +3 -0
- package/types/cert-payload.js +59 -0
- package/types/cert-payload.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { ClerkClaimSchema as Owned } from "./clerk-claim.js";
|
|
3
|
+
const baseClaim = (params) => ({
|
|
4
|
+
role: "member",
|
|
5
|
+
sub: "user_123",
|
|
6
|
+
userId: "user_123",
|
|
7
|
+
params,
|
|
8
|
+
});
|
|
9
|
+
const fullParams = {
|
|
10
|
+
nick: "nick",
|
|
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: { role: "tester" },
|
|
18
|
+
};
|
|
19
|
+
const matrix = [
|
|
20
|
+
[
|
|
21
|
+
"fully-populated params",
|
|
22
|
+
baseClaim(fullParams),
|
|
23
|
+
{ success: true, first: "First", image_url: "http://x/y.png", last: "Last", name: "Full Name" },
|
|
24
|
+
],
|
|
25
|
+
[
|
|
26
|
+
"params omitting first/image_url/last/name",
|
|
27
|
+
baseClaim({ email: "a@b.c", email_verified: true, public_meta: {} }),
|
|
28
|
+
{ success: true, first: "", image_url: "", last: "", name: null },
|
|
29
|
+
],
|
|
30
|
+
[
|
|
31
|
+
"name explicitly null",
|
|
32
|
+
baseClaim({ ...fullParams, name: null }),
|
|
33
|
+
{ success: true, first: "First", image_url: "http://x/y.png", last: "Last", name: null },
|
|
34
|
+
],
|
|
35
|
+
[
|
|
36
|
+
"first/last wrong type — .catch coerces to defaults",
|
|
37
|
+
baseClaim({ ...fullParams, first: 123, last: true }),
|
|
38
|
+
{ success: true, first: "", image_url: "http://x/y.png", last: "", name: "Full Name" },
|
|
39
|
+
],
|
|
40
|
+
[
|
|
41
|
+
"image_url missing only",
|
|
42
|
+
baseClaim({ ...fullParams, image_url: undefined }),
|
|
43
|
+
{ success: true, first: "First", image_url: "", last: "Last", name: "Full Name" },
|
|
44
|
+
],
|
|
45
|
+
["params missing required email", baseClaim({ email_verified: true, public_meta: {} }), { success: false }],
|
|
46
|
+
["top-level missing userId", { role: "member", sub: "user_123", params: fullParams }, { success: false }],
|
|
47
|
+
];
|
|
48
|
+
describe("Clerk claim schema parity (owned, frozen patched-behavior oracle) — patch-removal gate", () => {
|
|
49
|
+
for (const [label, payload, want] of matrix) {
|
|
50
|
+
it(`owned schema matches frozen patched behavior: ${label}`, () => {
|
|
51
|
+
const got = Owned.safeParse(payload);
|
|
52
|
+
expect(got.success).toBe(want.success);
|
|
53
|
+
if (want.success && got.success) {
|
|
54
|
+
const p = got.data.params;
|
|
55
|
+
expect(p.first).toBe(want.first);
|
|
56
|
+
expect(p.image_url).toBe(want.image_url);
|
|
57
|
+
expect(p.last).toBe(want.last);
|
|
58
|
+
expect(p.name).toBe(want.name);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=clerk-claim-parity.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk-claim-parity.test.js","sourceRoot":"","sources":["../jsr/clerk-claim-parity.test.ts"],"names":[],"mappings":"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"}
|
package/clerk-claim.d.ts
CHANGED
|
@@ -35,3 +35,35 @@ export declare const ClerkClaimSchema: z.ZodObject<{
|
|
|
35
35
|
app_metadata: z.ZodOptional<z.ZodUnknown>;
|
|
36
36
|
}, z.core.$strip>;
|
|
37
37
|
export type ClerkClaim = z.infer<typeof ClerkClaimSchema>;
|
|
38
|
+
export declare const FPClerkClaimSchema: z.ZodObject<{
|
|
39
|
+
payload: z.ZodObject<{
|
|
40
|
+
azp: z.ZodOptional<z.ZodString>;
|
|
41
|
+
exp: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
iat: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
iss: z.ZodOptional<z.ZodString>;
|
|
44
|
+
jti: z.ZodOptional<z.ZodString>;
|
|
45
|
+
nbf: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
params: z.ZodObject<{
|
|
47
|
+
nick: z.ZodOptional<z.ZodString>;
|
|
48
|
+
email: z.ZodString;
|
|
49
|
+
email_verified: z.ZodBoolean;
|
|
50
|
+
external_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
51
|
+
first: z.ZodCatch<z.ZodString>;
|
|
52
|
+
image_url: z.ZodCatch<z.ZodString>;
|
|
53
|
+
last: z.ZodCatch<z.ZodString>;
|
|
54
|
+
name: z.ZodCatch<z.ZodNullable<z.ZodString>>;
|
|
55
|
+
public_meta: z.ZodUnknown;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
role: z.ZodString;
|
|
58
|
+
sub: z.ZodString;
|
|
59
|
+
userId: z.ZodString;
|
|
60
|
+
aud: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
61
|
+
app_metadata: z.ZodOptional<z.ZodUnknown>;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
protectedHeader: z.ZodObject<{
|
|
64
|
+
alg: z.ZodOptional<z.ZodString>;
|
|
65
|
+
cat: z.ZodOptional<z.ZodString>;
|
|
66
|
+
kid: z.ZodOptional<z.ZodString>;
|
|
67
|
+
typ: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
}, z.core.$strip>;
|
package/clerk-claim.js
CHANGED
|
@@ -24,4 +24,15 @@ export const ClerkClaimSchema = z.object({
|
|
|
24
24
|
aud: z.union([z.string(), z.array(z.string())]).optional(),
|
|
25
25
|
app_metadata: z.unknown().optional(),
|
|
26
26
|
});
|
|
27
|
+
export const FPClerkClaimSchema = z.object({
|
|
28
|
+
payload: ClerkClaimSchema,
|
|
29
|
+
protectedHeader: z
|
|
30
|
+
.object({
|
|
31
|
+
alg: z.string(),
|
|
32
|
+
cat: z.string(),
|
|
33
|
+
kid: z.string(),
|
|
34
|
+
typ: z.string(),
|
|
35
|
+
})
|
|
36
|
+
.partial(),
|
|
37
|
+
});
|
|
27
38
|
//# sourceMappingURL=clerk-claim.js.map
|
package/clerk-claim.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clerk-claim.js","sourceRoot":"","sources":["../jsr/clerk-claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"clerk-claim.js","sourceRoot":"","sources":["../jsr/clerk-claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,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,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,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,MAAM,EAAE,6BAA6B;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAUH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,gBAAgB;IACzB,eAAe,EAAE,CAAC;SACf,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;KAChB,CAAC;SACD,OAAO,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Result } from "@adviser/cement";
|
|
2
|
+
import type { SuperThis } from "@fireproof/core-types-base";
|
|
3
|
+
import type { FPApiToken, VerifiedClaimsResult } from "../types/wire.js";
|
|
4
|
+
export declare class ClerkApiToken implements FPApiToken {
|
|
5
|
+
readonly sthis: SuperThis;
|
|
6
|
+
constructor(sthis: SuperThis);
|
|
7
|
+
readonly keysAndUrls: () => Result<{
|
|
8
|
+
keys: string[];
|
|
9
|
+
urls: string[];
|
|
10
|
+
}, Error>;
|
|
11
|
+
decode(token: string): Promise<Result<VerifiedClaimsResult>>;
|
|
12
|
+
verify(token: string): Promise<Result<VerifiedClaimsResult>>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Lazy, Result, param, exception2Result } from "@adviser/cement";
|
|
2
|
+
import { sts } from "@fireproof/core-runtime";
|
|
3
|
+
import { decodeJwt, jwtVerify } from "jose";
|
|
4
|
+
import { ClerkClaimSchema, FPClerkClaimSchema } from "../clerk-claim.js";
|
|
5
|
+
export class ClerkApiToken {
|
|
6
|
+
sthis;
|
|
7
|
+
constructor(sthis) {
|
|
8
|
+
this.sthis = sthis;
|
|
9
|
+
}
|
|
10
|
+
keysAndUrls = Lazy(() => {
|
|
11
|
+
const keys = [];
|
|
12
|
+
const urls = [];
|
|
13
|
+
for (let idx = 0;; idx++) {
|
|
14
|
+
const suffix = !idx ? "" : `_${idx}`;
|
|
15
|
+
const key = `CLERK_PUB_JWT_KEY${suffix}`;
|
|
16
|
+
const url = `CLERK_PUB_JWT_URL${suffix}`;
|
|
17
|
+
const rEnvVal = this.sthis.env.gets({ [key]: param.OPTIONAL, [url]: param.OPTIONAL });
|
|
18
|
+
if (rEnvVal.isErr()) {
|
|
19
|
+
return Result.Err(rEnvVal.Err());
|
|
20
|
+
}
|
|
21
|
+
const { [key]: keyVal, [url]: urlVal } = rEnvVal.Ok();
|
|
22
|
+
if (!keyVal && !urlVal) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
if (keyVal) {
|
|
26
|
+
keys.push(keyVal);
|
|
27
|
+
}
|
|
28
|
+
if (urlVal) {
|
|
29
|
+
urls.push(...urlVal
|
|
30
|
+
.split(",")
|
|
31
|
+
.map((u) => u.trim())
|
|
32
|
+
.filter((u) => u));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return Result.Ok({ keys, urls });
|
|
36
|
+
});
|
|
37
|
+
async decode(token) {
|
|
38
|
+
const claims = await exception2Result(() => decodeJwt(token));
|
|
39
|
+
if (claims.isErr()) {
|
|
40
|
+
return Result.Err(claims);
|
|
41
|
+
}
|
|
42
|
+
const r = ClerkClaimSchema.safeParse(claims.Ok());
|
|
43
|
+
if (!r.success) {
|
|
44
|
+
return Result.Err(r.error);
|
|
45
|
+
}
|
|
46
|
+
return Result.Ok({ type: "clerk", token, claims: r.data });
|
|
47
|
+
}
|
|
48
|
+
async verify(token) {
|
|
49
|
+
const rKaUs = this.keysAndUrls();
|
|
50
|
+
if (rKaUs.isErr()) {
|
|
51
|
+
return Result.Err(rKaUs);
|
|
52
|
+
}
|
|
53
|
+
const { keys, urls } = rKaUs.Ok();
|
|
54
|
+
const rt = await sts.verifyToken(token, keys, urls, {
|
|
55
|
+
parseSchema: (payload) => {
|
|
56
|
+
const r = FPClerkClaimSchema.safeParse(payload);
|
|
57
|
+
if (r.success) {
|
|
58
|
+
return Result.Ok(r.data);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.log("FPClerkClaimSchema parse error", payload, r.error);
|
|
62
|
+
return Result.Err(r.error);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
verifyToken: async (tok, key) => {
|
|
66
|
+
const rPublicKey = await sts.importJWK(key, "RS256");
|
|
67
|
+
if (rPublicKey.isErr()) {
|
|
68
|
+
return Result.Err(rPublicKey);
|
|
69
|
+
}
|
|
70
|
+
const r = await exception2Result(() => jwtVerify(tok, rPublicKey.Ok().key));
|
|
71
|
+
if (r.isErr()) {
|
|
72
|
+
return Result.Err(r);
|
|
73
|
+
}
|
|
74
|
+
if (!r.Ok()) {
|
|
75
|
+
return Result.Err("ClerkVerifyToken: failed");
|
|
76
|
+
}
|
|
77
|
+
return Result.Ok({ payload: r.Ok() });
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
if (rt.isErr()) {
|
|
81
|
+
return Result.Err(rt.Err());
|
|
82
|
+
}
|
|
83
|
+
const t = rt.Ok();
|
|
84
|
+
return Result.Ok({ type: "clerk", token, claims: t.payload });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=clerk-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk-token.js","sourceRoot":"","sources":["../../jsr/dash-api/clerk-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Result } from "@adviser/cement";
|
|
2
|
+
import type { SuperThis, JWKPublic } from "@fireproof/core-types-base";
|
|
3
|
+
import type { VerifyWithCertificateOptions } from "@fireproof/core-types-device-id";
|
|
4
|
+
import { DeviceIdCA } from "../device-id/ca.js";
|
|
5
|
+
import { ClerkApiToken } from "./clerk-token.js";
|
|
6
|
+
import type { FPApiToken, VerifiedClaimsResult } from "../types/wire.js";
|
|
7
|
+
export { ClerkApiToken } from "./clerk-token.js";
|
|
8
|
+
export declare class DeviceIdApiToken implements FPApiToken {
|
|
9
|
+
readonly sthis: SuperThis;
|
|
10
|
+
readonly opts: VerifyWithCertificateOptions;
|
|
11
|
+
constructor(sthis: SuperThis, opts: VerifyWithCertificateOptions);
|
|
12
|
+
decode(token: string): Promise<Result<VerifiedClaimsResult>>;
|
|
13
|
+
verify(token: string): Promise<Result<VerifiedClaimsResult>>;
|
|
14
|
+
}
|
|
15
|
+
export declare const deviceIdCAFromEnv: (sthis: SuperThis) => Promise<Result<DeviceIdCA, Error>>;
|
|
16
|
+
export declare function getCloudPubkeyFromEnv(cloudToken?: string, sthis?: SuperThis): Promise<Result<{
|
|
17
|
+
keys: JWKPublic[];
|
|
18
|
+
}>>;
|
|
19
|
+
export declare const tokenApi: (sthis: SuperThis, opts: VerifyWithCertificateOptions) => Promise<{
|
|
20
|
+
"device-id": DeviceIdApiToken;
|
|
21
|
+
clerk: ClerkApiToken;
|
|
22
|
+
}>;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Lazy, Result, param, exception2Result, isArrayBuffer, isUint8Array } from "@adviser/cement";
|
|
2
|
+
import { sts, ensureSuperThis } from "@fireproof/core-runtime";
|
|
3
|
+
import { decodeProtectedHeader, exportJWK } from "jose";
|
|
4
|
+
import { ClerkClaimSchema } from "../clerk-claim.js";
|
|
5
|
+
import { JWKPublicSchema } from "../types/wire.js";
|
|
6
|
+
import { FPDeviceIDSessionSchema, toJwksAlg } from "@fireproof/core-types-base";
|
|
7
|
+
import { DeviceIdCA } from "../device-id/ca.js";
|
|
8
|
+
import { DeviceIdVerifyMsg } from "../device-id/verify.js";
|
|
9
|
+
import { ClerkApiToken } from "./clerk-token.js";
|
|
10
|
+
export { ClerkApiToken } from "./clerk-token.js";
|
|
11
|
+
export class DeviceIdApiToken {
|
|
12
|
+
sthis;
|
|
13
|
+
opts;
|
|
14
|
+
constructor(sthis, opts) {
|
|
15
|
+
this.sthis = sthis;
|
|
16
|
+
this.opts = opts;
|
|
17
|
+
}
|
|
18
|
+
async decode(token) {
|
|
19
|
+
const rHeader = await exception2Result(() => decodeProtectedHeader(token));
|
|
20
|
+
if (rHeader.isErr()) {
|
|
21
|
+
return Result.Err(rHeader);
|
|
22
|
+
}
|
|
23
|
+
const x5c = rHeader.Ok().x5c;
|
|
24
|
+
if (!x5c || !x5c[0]) {
|
|
25
|
+
return Result.Err("DeviceIdApiToken-decode: missing x5c in header");
|
|
26
|
+
}
|
|
27
|
+
const jsStr = this.sthis.txt.base64.decode(x5c[0] ?? "");
|
|
28
|
+
const rJs = await exception2Result(() => JSON.parse(jsStr));
|
|
29
|
+
if (rJs.isErr()) {
|
|
30
|
+
return Result.Err(rJs);
|
|
31
|
+
}
|
|
32
|
+
const rClaims = ClerkClaimSchema.safeParse(rJs.Ok().creatingUser?.claims);
|
|
33
|
+
if (!rClaims.success) {
|
|
34
|
+
return Result.Err(rClaims.error);
|
|
35
|
+
}
|
|
36
|
+
return Result.Ok({ type: "device-id", token, claims: rClaims.data });
|
|
37
|
+
}
|
|
38
|
+
async verify(token) {
|
|
39
|
+
const rCa = await this.opts.deviceIdCA.caCertificate();
|
|
40
|
+
if (rCa.isErr()) {
|
|
41
|
+
return Result.Err(rCa);
|
|
42
|
+
}
|
|
43
|
+
const verify = new DeviceIdVerifyMsg(this.sthis.txt.base64, [rCa.Ok()], { maxAge: 3600, ...this.opts });
|
|
44
|
+
const res = await verify.verifyWithCertificate(token, FPDeviceIDSessionSchema);
|
|
45
|
+
if (res.valid) {
|
|
46
|
+
const creatingUser = res.certificate.certificate.asCert()
|
|
47
|
+
.creatingUser;
|
|
48
|
+
if (!creatingUser || creatingUser.type !== "clerk") {
|
|
49
|
+
return Result.Err(`DeviceIdApiToken-verify: unsupported creatingUser type: ${creatingUser}`);
|
|
50
|
+
}
|
|
51
|
+
return Result.Ok({ type: "device-id", token, claims: creatingUser.claims });
|
|
52
|
+
}
|
|
53
|
+
return Result.Err(res.error);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export const deviceIdCAFromEnv = Lazy((sthis) => {
|
|
57
|
+
const rEnv = sthis.env.gets({ DEVICE_ID_CA_PRIV_KEY: param.REQUIRED, DEVICE_ID_CA_CERT: param.REQUIRED });
|
|
58
|
+
if (rEnv.isErr()) {
|
|
59
|
+
throw rEnv.Err();
|
|
60
|
+
}
|
|
61
|
+
const envVals = rEnv.Ok();
|
|
62
|
+
return DeviceIdCA.from(sthis, { privateKey: envVals.DEVICE_ID_CA_PRIV_KEY, signedCert: envVals.DEVICE_ID_CA_CERT }, { generateSerialNumber: async () => sthis.nextId(32).str });
|
|
63
|
+
});
|
|
64
|
+
export async function getCloudPubkeyFromEnv(cloudToken, sthis = ensureSuperThis()) {
|
|
65
|
+
const cstPub = cloudToken ?? sthis.env.get("CLOUD_SESSION_TOKEN_PUBLIC");
|
|
66
|
+
if (!cstPub) {
|
|
67
|
+
return Result.Err("no public key: env:CLOUD_SESSION_TOKEN_PUBLIC");
|
|
68
|
+
}
|
|
69
|
+
const cryptoKeys = await sts.env2jwk(cstPub, undefined, sthis);
|
|
70
|
+
const keys = [];
|
|
71
|
+
for (const key of cryptoKeys) {
|
|
72
|
+
const jwKey = await exportJWK(key);
|
|
73
|
+
if (isUint8Array(jwKey) || isArrayBuffer(jwKey)) {
|
|
74
|
+
return Result.Err("invalid key: jwk is ArrayBuffer or Uint8Array");
|
|
75
|
+
}
|
|
76
|
+
const rAlg = toJwksAlg(jwKey);
|
|
77
|
+
if (rAlg.isErr()) {
|
|
78
|
+
return Result.Err(rAlg);
|
|
79
|
+
}
|
|
80
|
+
const rJwtPublicKey = JWKPublicSchema.safeParse({
|
|
81
|
+
use: "sig",
|
|
82
|
+
...jwKey,
|
|
83
|
+
alg: rAlg.Ok(),
|
|
84
|
+
ext: undefined,
|
|
85
|
+
key_ops: undefined,
|
|
86
|
+
kid: undefined,
|
|
87
|
+
});
|
|
88
|
+
if (!rJwtPublicKey.success) {
|
|
89
|
+
return Result.Err(rJwtPublicKey.error);
|
|
90
|
+
}
|
|
91
|
+
keys.push(rJwtPublicKey.data);
|
|
92
|
+
}
|
|
93
|
+
return Result.Ok({ keys });
|
|
94
|
+
}
|
|
95
|
+
export const tokenApi = Lazy(async (sthis, opts) => {
|
|
96
|
+
return {
|
|
97
|
+
"device-id": new DeviceIdApiToken(sthis, opts),
|
|
98
|
+
clerk: new ClerkApiToken(sthis),
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../jsr/dash-api/token.ts"],"names":[],"mappings":"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"}
|
package/device-id/ca.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CertificatePayloadSchema } from "@fireproof/core-types-base";
|
|
2
1
|
import { JWKPrivateSchema } from "../types/wire.js";
|
|
2
|
+
import { CertificatePayloadSchema } from "../types/cert-payload.js";
|
|
3
3
|
import { SignJWT, jwtVerify } from "jose";
|
|
4
4
|
import { DeviceIdKey } from "./key.js";
|
|
5
5
|
import { DeviceIdValidator } from "./validator.js";
|
package/device-id/ca.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ca.js","sourceRoot":"","sources":["../../jsr/device-id/ca.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ca.js","sourceRoot":"","sources":["../../jsr/device-id/ca.ts"],"names":[],"mappings":"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"}
|
package/device-id/certor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toSortedObject } from "@adviser/cement";
|
|
2
|
-
import { CertificatePayloadSchema } from "
|
|
2
|
+
import { CertificatePayloadSchema } from "../types/cert-payload.js";
|
|
3
3
|
import { decodeJwt } from "jose";
|
|
4
4
|
import { base58btc } from "multiformats/bases/base58";
|
|
5
5
|
import { sha1 } from "multiformats/hashes/sha1";
|
package/device-id/certor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certor.js","sourceRoot":"","sources":["../../jsr/device-id/certor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"certor.js","sourceRoot":"","sources":["../../jsr/device-id/certor.ts"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export type { VerifiedResult } from "@fireproof/core-types-protocols-dashboard";
|
|
|
6
6
|
export type { SuperThis, FPDeviceIDSession, DocTypes, JWKPrivate, JWKPublic, DeviceIdKeyBagItem, DeviceIdResult, } from "@fireproof/core-types-base";
|
|
7
7
|
export type { DeviceIdCAIf } from "@fireproof/core-types-device-id";
|
|
8
8
|
export { JWKPrivateSchema, JWKPublicSchema } from "./types/wire.js";
|
|
9
|
-
export { ClerkApiToken
|
|
9
|
+
export { ClerkApiToken } from "./dash-api/clerk-token.js";
|
|
10
|
+
export { clerkDashApi, DashboardApiImpl } from "@fireproof/core-protocols-dashboard";
|
package/index.js
CHANGED
|
@@ -2,5 +2,6 @@ export { ensureRuntimeContext } from "./runtime-context.js";
|
|
|
2
2
|
export { ClerkClaimSchema, ClerkEmailTemplateClaimSchema } from "./clerk-claim.js";
|
|
3
3
|
export { ensureSuperThis, ensureLogger, runtimeFn, hashObjectSync, sts } from "@fireproof/core-runtime";
|
|
4
4
|
export { JWKPrivateSchema, JWKPublicSchema } from "./types/wire.js";
|
|
5
|
-
export { ClerkApiToken
|
|
5
|
+
export { ClerkApiToken } from "./dash-api/clerk-token.js";
|
|
6
|
+
export { clerkDashApi, DashboardApiImpl } from "@fireproof/core-protocols-dashboard";
|
|
6
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;
|
|
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"}
|
package/package.json
CHANGED
package/server.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { deviceIdCAFromEnv, getCloudPubkeyFromEnv, tokenApi } from "
|
|
1
|
+
export { deviceIdCAFromEnv, getCloudPubkeyFromEnv, tokenApi } from "./dash-api/token.js";
|
package/server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { deviceIdCAFromEnv, getCloudPubkeyFromEnv, tokenApi } from "
|
|
1
|
+
export { deviceIdCAFromEnv, getCloudPubkeyFromEnv, tokenApi } from "./dash-api/token.js";
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
package/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../jsr/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../jsr/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { SubjectSchema, ExtensionsSchema } from "@fireproof/core-types-base";
|
|
3
|
+
import { JWKPublicSchema } from "./wire.js";
|
|
4
|
+
import { ClerkClaimSchema } from "../clerk-claim.js";
|
|
5
|
+
const CreatingUserSchema = z.object({
|
|
6
|
+
type: z.literal("clerk"),
|
|
7
|
+
claims: ClerkClaimSchema,
|
|
8
|
+
});
|
|
9
|
+
const CertificateSchema = z.object({
|
|
10
|
+
version: z.literal("3"),
|
|
11
|
+
serialNumber: z.string(),
|
|
12
|
+
subject: SubjectSchema,
|
|
13
|
+
issuer: SubjectSchema,
|
|
14
|
+
validity: z.object({
|
|
15
|
+
notBefore: z.string().datetime(),
|
|
16
|
+
notAfter: z.string().datetime(),
|
|
17
|
+
}),
|
|
18
|
+
subjectPublicKeyInfo: JWKPublicSchema,
|
|
19
|
+
signatureAlgorithm: z.literal("ES256"),
|
|
20
|
+
keyUsage: z.array(z.enum([
|
|
21
|
+
"digitalSignature",
|
|
22
|
+
"nonRepudiation",
|
|
23
|
+
"keyEncipherment",
|
|
24
|
+
"dataEncipherment",
|
|
25
|
+
"keyAgreement",
|
|
26
|
+
"keyCertSign",
|
|
27
|
+
"cRLSign",
|
|
28
|
+
"encipherOnly",
|
|
29
|
+
"decipherOnly",
|
|
30
|
+
])),
|
|
31
|
+
extendedKeyUsage: z.array(z.enum([
|
|
32
|
+
"serverAuth",
|
|
33
|
+
"clientAuth",
|
|
34
|
+
"codeSigning",
|
|
35
|
+
"emailProtection",
|
|
36
|
+
"timeStamping",
|
|
37
|
+
"OCSPSigning",
|
|
38
|
+
"ipsecIKE",
|
|
39
|
+
"msCodeInd",
|
|
40
|
+
"msCodeCom",
|
|
41
|
+
"msCTLSign",
|
|
42
|
+
"msEFS",
|
|
43
|
+
])),
|
|
44
|
+
extensions: ExtensionsSchema.optional(),
|
|
45
|
+
});
|
|
46
|
+
export const CertificatePayloadSchema = z
|
|
47
|
+
.object({
|
|
48
|
+
iss: z.string(),
|
|
49
|
+
sub: z.string(),
|
|
50
|
+
aud: z.string().or(z.array(z.string())),
|
|
51
|
+
iat: z.number().int(),
|
|
52
|
+
nbf: z.number().int(),
|
|
53
|
+
exp: z.number().int(),
|
|
54
|
+
jti: z.string(),
|
|
55
|
+
certificate: CertificateSchema,
|
|
56
|
+
creatingUser: CreatingUserSchema.optional(),
|
|
57
|
+
})
|
|
58
|
+
.readonly();
|
|
59
|
+
//# sourceMappingURL=cert-payload.js.map
|
|
@@ -0,0 +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"}
|