@fireproof/core-protocols-dashboard 0.24.10 → 0.24.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fireproof/core-protocols-dashboard",
3
- "version": "0.24.10",
3
+ "version": "0.24.11",
4
4
  "description": "Live ledger for the web.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -34,15 +34,15 @@
34
34
  "url": "https://github.com/fireproof-storage/fireproof/issues"
35
35
  },
36
36
  "dependencies": {
37
- "@adviser/cement": "~0.5.21",
37
+ "@adviser/cement": "~0.5.22",
38
38
  "@clerk/shared": "~3.44.0",
39
- "@fireproof/core-device-id": "0.24.10",
40
- "@fireproof/core-runtime": "0.24.10",
41
- "@fireproof/core-types-base": "0.24.10",
42
- "@fireproof/core-types-device-id": "0.24.10",
43
- "@fireproof/core-types-protocols-cloud": "0.24.10",
44
- "@fireproof/core-types-protocols-dashboard": "0.24.10",
45
- "@fireproof/vendor": "0.24.10",
39
+ "@fireproof/core-device-id": "0.24.11",
40
+ "@fireproof/core-runtime": "0.24.11",
41
+ "@fireproof/core-types-base": "0.24.11",
42
+ "@fireproof/core-types-device-id": "0.24.11",
43
+ "@fireproof/core-types-protocols-cloud": "0.24.11",
44
+ "@fireproof/core-types-protocols-dashboard": "0.24.11",
45
+ "@fireproof/vendor": "0.24.11",
46
46
  "jose": "~6.1.3",
47
47
  "zod": "~4.3.6"
48
48
  }
package/token.d.ts CHANGED
@@ -10,12 +10,14 @@ export declare class ClerkApiToken implements FPApiToken {
10
10
  keys: string[];
11
11
  urls: string[];
12
12
  }, Error>;
13
+ decode(token: string): Promise<Result<VerifiedClaimsResult>>;
13
14
  verify(token: string): Promise<Result<VerifiedClaimsResult>>;
14
15
  }
15
16
  export declare class DeviceIdApiToken implements FPApiToken {
16
17
  readonly sthis: SuperThis;
17
18
  readonly opts: VerifyWithCertificateOptions;
18
19
  constructor(sthis: SuperThis, opts: VerifyWithCertificateOptions);
20
+ decode(token: string): Promise<Result<VerifiedClaimsResult>>;
19
21
  verify(token: string): Promise<Result<VerifiedClaimsResult>>;
20
22
  }
21
23
  export declare const deviceIdCAFromEnv: (sthis: SuperThis) => Promise<Result<DeviceIdCA, Error>>;
package/token.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Lazy, Result, param, exception2Result } from "@adviser/cement";
2
2
  import { DeviceIdCA, DeviceIdVerifyMsg } from "@fireproof/core-device-id";
3
3
  import { sts } from "@fireproof/core-runtime";
4
- import { FPClerkClaimSchema, FPDeviceIDSessionSchema } from "@fireproof/core-types-base";
5
- import { jwtVerify } from "jose";
4
+ import { FPClerkClaimSchema, FPDeviceIDSessionSchema, ClerkClaimSchema } from "@fireproof/core-types-base";
5
+ import { decodeJwt, decodeProtectedHeader, jwtVerify } from "jose";
6
6
  export class ClerkApiToken {
7
7
  sthis;
8
8
  constructor(sthis) {
@@ -38,6 +38,21 @@ export class ClerkApiToken {
38
38
  }
39
39
  return Result.Ok({ keys, urls });
40
40
  });
41
+ async decode(token) {
42
+ const claims = await exception2Result(() => decodeJwt(token));
43
+ if (claims.isErr()) {
44
+ return Result.Err(claims);
45
+ }
46
+ const r = ClerkClaimSchema.safeParse(claims.Ok());
47
+ if (!r.success) {
48
+ return Result.Err(r.error);
49
+ }
50
+ return Result.Ok({
51
+ type: "clerk",
52
+ token,
53
+ claims: r.data,
54
+ });
55
+ }
41
56
  async verify(token) {
42
57
  const rKaUs = this.keysAndUrls();
43
58
  if (rKaUs.isErr()) {
@@ -90,6 +105,29 @@ export class DeviceIdApiToken {
90
105
  this.sthis = sthis;
91
106
  this.opts = opts;
92
107
  }
108
+ async decode(token) {
109
+ const rHeader = await exception2Result(() => decodeProtectedHeader(token));
110
+ if (rHeader.isErr()) {
111
+ return Result.Err(rHeader);
112
+ }
113
+ if (!rHeader.Ok().x5c || !rHeader.Ok().x5c?.[0]) {
114
+ return Result.Err("DeviceIdApiToken-decode: missing x5c in header");
115
+ }
116
+ const jsStr = this.sthis.txt.base64.decode(rHeader.Ok().x5c?.[0] ?? "");
117
+ const rJs = await exception2Result(() => JSON.parse(jsStr));
118
+ if (rJs.isErr()) {
119
+ return Result.Err(rJs);
120
+ }
121
+ const rClaims = ClerkClaimSchema.safeParse(rJs.Ok().creatingUser?.claims);
122
+ if (!rClaims.success) {
123
+ return Result.Err(rClaims.error);
124
+ }
125
+ return Result.Ok({
126
+ type: "device-id",
127
+ token,
128
+ claims: rClaims.data,
129
+ });
130
+ }
93
131
  async verify(token) {
94
132
  const rCa = await this.opts.deviceIdCA.caCertificate();
95
133
  if (rCa.isErr()) {
package/token.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../jsr/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../jsr/token.ts"],"names":[],"mappings":"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"}