@fireproof/core-protocols-dashboard 0.24.2-dev-cloud-api → 0.24.2-dev-clerk

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.
@@ -1,16 +1,26 @@
1
1
  import { Result } from "@adviser/cement";
2
- import { DashAuthType, 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 } from "./msg-types.js";
3
- import { Falsy } from "@fireproof/core-types-base";
2
+ import { 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, DashAuthType } from "./msg-types.js";
3
+ import { FPApiInterface } from "./fp-api-interface.js";
4
+ import type { Clerk } from "@clerk/clerk-js";
4
5
  export type WithoutTypeAndAuth<T> = Omit<T, "type" | "auth">;
5
- export interface DashboardApiConfig {
6
+ export interface ClerkDashboardApiConfig<T> {
6
7
  readonly apiUrl: string;
7
- getToken(): Promise<DashAuthType | Falsy>;
8
- fetch: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
8
+ readonly getTokenCtx?: T;
9
+ readonly template?: string;
10
+ readonly gracePeriodMs?: number;
11
+ fetch?(input: RequestInfo, init?: RequestInit): Promise<Response>;
9
12
  }
10
- export declare class DashboardApi {
11
- private readonly cfg;
12
- constructor(cfg: DashboardApiConfig);
13
- private getAuth;
13
+ export interface DashboardApiConfig<T> {
14
+ readonly apiUrl: string;
15
+ readonly getTokenCtx?: T;
16
+ readonly gracePeriodMs: number;
17
+ fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
18
+ getToken: (ctx: never) => Promise<Result<DashAuthType>>;
19
+ }
20
+ export declare class DashboardApiImpl<T> implements FPApiInterface {
21
+ #private;
22
+ readonly cfg: DashboardApiConfig<T>;
23
+ constructor(cfg: DashboardApiConfig<T>);
14
24
  private request;
15
25
  ensureUser(req: WithoutTypeAndAuth<ReqEnsureUser>): Promise<Result<ResEnsureUser>>;
16
26
  findUser(req: WithoutTypeAndAuth<ReqFindUser>): Promise<Result<ResFindUser>>;
@@ -29,4 +39,9 @@ export declare class DashboardApi {
29
39
  listLedgersByUser(req: WithoutTypeAndAuth<ReqListLedgersByUser>): Promise<Result<ResListLedgersByUser>>;
30
40
  getCloudSessionToken(req: WithoutTypeAndAuth<ReqCloudSessionToken>): Promise<Result<ResCloudSessionToken>>;
31
41
  getCertFromCsr(req: WithoutTypeAndAuth<ReqCertFromCsr>): Promise<Result<ResCertFromCsr>>;
42
+ redeemInvite(req: ReqRedeemInvite): Promise<Result<ResRedeemInvite>>;
43
+ getTokenByResultId(req: ReqTokenByResultId): Promise<Result<ResTokenByResultId>>;
44
+ extendToken(req: ReqExtendToken): Promise<Result<ResExtendToken>>;
45
+ ensureCloudToken(req: WithoutTypeAndAuth<ReqEnsureCloudToken>): Promise<Result<ResEnsureCloudToken>>;
32
46
  }
47
+ export declare function clerkDashApi<T>(clerk: Clerk, iopts: ClerkDashboardApiConfig<T>): DashboardApiImpl<T>;
package/dashboard-api.js CHANGED
@@ -1,20 +1,13 @@
1
- import { exception2Result, Result } from "@adviser/cement";
2
- export class DashboardApi {
1
+ import { Result, KeyedResolvOnce, WaitingForValue, Option, exception2Result } from "@adviser/cement";
2
+ export class DashboardApiImpl {
3
3
  cfg;
4
4
  constructor(cfg) {
5
- this.cfg = cfg;
6
- }
7
- async getAuth() {
8
- return exception2Result(() => {
9
- return this.cfg.getToken()?.then((token) => {
10
- if (!token)
11
- throw new Error("No token available");
12
- return token;
13
- });
14
- });
5
+ this.cfg = {
6
+ ...cfg,
7
+ };
15
8
  }
16
9
  async request(req) {
17
- const rAuth = await this.getAuth();
10
+ const rAuth = await this.cfg.getToken(this.cfg.getTokenCtx);
18
11
  if (rAuth.isErr()) {
19
12
  return Result.Err(rAuth.Err());
20
13
  }
@@ -88,5 +81,67 @@ export class DashboardApi {
88
81
  getCertFromCsr(req) {
89
82
  return this.request({ ...req, type: "reqCertFromCsr" });
90
83
  }
84
+ redeemInvite(req) {
85
+ return this.request({ ...req, type: "reqRedeemInvite" });
86
+ }
87
+ getTokenByResultId(req) {
88
+ return this.request({ ...req, type: "reqTokenByResultId" });
89
+ }
90
+ extendToken(req) {
91
+ return this.request({ ...req, type: "reqExtendToken" });
92
+ }
93
+ #ensureCloudToken = new KeyedResolvOnce();
94
+ ensureCloudToken(req) {
95
+ return this.#ensureCloudToken
96
+ .get(JSON.stringify({
97
+ appId: req.appId,
98
+ env: req.env ?? "prod",
99
+ tenant: req.tenant ?? undefined,
100
+ ledger: req.ledger ?? undefined,
101
+ }))
102
+ .once(async (my) => {
103
+ const rRes = await this.request({ ...req, type: "reqEnsureCloudToken" });
104
+ if (rRes.isErr()) {
105
+ return Result.Err(rRes);
106
+ }
107
+ const res = rRes.Ok();
108
+ const resetAfter = res.expiresInSec * 1000 - this.cfg.gracePeriodMs;
109
+ my.self.setResetAfter(resetAfter < 0 ? 60000 : resetAfter);
110
+ return rRes;
111
+ });
112
+ }
113
+ }
114
+ const keyedDashApis = new KeyedResolvOnce();
115
+ export function clerkDashApi(clerk, iopts) {
116
+ return keyedDashApis.get(iopts.apiUrl).once(() => {
117
+ const waitForToken = new WaitingForValue();
118
+ const dashApi = new DashboardApiImpl({
119
+ ...iopts,
120
+ getTokenCtx: iopts.getTokenCtx ?? { template: iopts.template ?? "with-email" },
121
+ gracePeriodMs: iopts.gracePeriodMs && iopts.gracePeriodMs > 0 ? iopts.gracePeriodMs : 5000,
122
+ getToken: () => waitForToken
123
+ .waitValue()
124
+ .then((token) => Result.Ok({ type: "clerk", token }))
125
+ .catch((err) => Result.Err(err)),
126
+ fetch: iopts.fetch ?? fetch.bind(globalThis),
127
+ });
128
+ clerk.addListener(({ session }) => {
129
+ const preValue = waitForToken.value();
130
+ waitForToken.setValue(Option.None());
131
+ if (!(session && typeof session.getToken == "function")) {
132
+ return;
133
+ }
134
+ exception2Result(() => session.getToken(dashApi.cfg.getTokenCtx)).then((rGetToken) => {
135
+ if (rGetToken.isErr()) {
136
+ waitForToken.setError(rGetToken.Err());
137
+ waitForToken.setValue(preValue);
138
+ return;
139
+ }
140
+ const token = rGetToken.Ok();
141
+ waitForToken.setValue(Option.From(token));
142
+ });
143
+ });
144
+ return dashApi;
145
+ });
91
146
  }
92
147
  //# sourceMappingURL=dashboard-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-api.js","sourceRoot":"","sources":["../jsr/dashboard-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-api.js","sourceRoot":"","sources":["../jsr/dashboard-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { ReqEnsureUser, ResEnsureUser, ReqFindUser, ResFindUser, ReqCreateTenant, ResCreateTenant, ReqUpdateTenant, ResUpdateTenant, ReqDeleteTenant, ResDeleteTenant, ReqRedeemInvite, ResRedeemInvite, ReqListTenantsByUser, ResListTenantsByUser, ReqUpdateUserTenant, ResUpdateUserTenant, ReqInviteUser, ResInviteUser, ReqListInvites, ResListInvites, ReqDeleteInvite, ResDeleteInvite, ReqCreateLedger, ResCreateLedger, ReqListLedgersByUser, ResListLedgersByUser, ReqUpdateLedger, ResUpdateLedger, ReqDeleteLedger, ResDeleteLedger, ReqCloudSessionToken, ResCloudSessionToken, ReqTokenByResultId, ResTokenByResultId, ReqExtendToken, ResExtendToken, ReqCertFromCsr, ResCertFromCsr, ReqEnsureCloudToken, ResEnsureCloudToken } from "./msg-types.js";
3
+ export interface FPApiInterface {
4
+ ensureUser(req: ReqEnsureUser): Promise<Result<ResEnsureUser>>;
5
+ findUser(req: ReqFindUser): Promise<Result<ResFindUser>>;
6
+ createTenant(req: ReqCreateTenant): Promise<Result<ResCreateTenant>>;
7
+ updateTenant(req: ReqUpdateTenant): Promise<Result<ResUpdateTenant>>;
8
+ deleteTenant(req: ReqDeleteTenant): Promise<Result<ResDeleteTenant>>;
9
+ redeemInvite(req: ReqRedeemInvite): Promise<Result<ResRedeemInvite>>;
10
+ listTenantsByUser(req: ReqListTenantsByUser): Promise<Result<ResListTenantsByUser>>;
11
+ updateUserTenant(req: ReqUpdateUserTenant): Promise<Result<ResUpdateUserTenant>>;
12
+ inviteUser(req: ReqInviteUser): Promise<Result<ResInviteUser>>;
13
+ listInvites(req: ReqListInvites): Promise<Result<ResListInvites>>;
14
+ deleteInvite(req: ReqDeleteInvite): Promise<Result<ResDeleteInvite>>;
15
+ createLedger(req: ReqCreateLedger): Promise<Result<ResCreateLedger>>;
16
+ listLedgersByUser(req: ReqListLedgersByUser): Promise<Result<ResListLedgersByUser>>;
17
+ updateLedger(req: ReqUpdateLedger): Promise<Result<ResUpdateLedger>>;
18
+ deleteLedger(req: ReqDeleteLedger): Promise<Result<ResDeleteLedger>>;
19
+ getCloudSessionToken(req: ReqCloudSessionToken): Promise<Result<ResCloudSessionToken>>;
20
+ getTokenByResultId(req: ReqTokenByResultId): Promise<Result<ResTokenByResultId>>;
21
+ extendToken(req: ReqExtendToken): Promise<Result<ResExtendToken>>;
22
+ getCertFromCsr(req: ReqCertFromCsr): Promise<Result<ResCertFromCsr>>;
23
+ ensureCloudToken(req: ReqEnsureCloudToken): Promise<Result<ResEnsureCloudToken>>;
24
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fp-api-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fp-api-interface.js","sourceRoot":"","sources":["../jsr/fp-api-interface.ts"],"names":[],"mappings":""}
package/index.d.ts CHANGED
@@ -1,29 +1,37 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v4";
2
2
  export * from "./msg-types.js";
3
3
  export * from "./msg-is.js";
4
4
  export * from "./msg-api.js";
5
+ export * from "./fp-api-interface.js";
5
6
  export * from "./dashboard-api.js";
6
- export declare const FPClerkClaimSchema: z.ZodReadonly<z.ZodObject<{
7
- azp: z.ZodOptional<z.ZodString>;
8
- iss: z.ZodOptional<z.ZodString>;
9
- aud: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
10
- exp: z.ZodOptional<z.ZodNumber>;
11
- nbf: z.ZodOptional<z.ZodNumber>;
12
- iat: z.ZodOptional<z.ZodNumber>;
13
- jti: z.ZodOptional<z.ZodString>;
14
- app_metadata: z.ZodUnknown;
15
- role: z.ZodString;
16
- userId: z.ZodString;
17
- sub: z.ZodString;
18
- params: z.ZodObject<{
19
- last: z.ZodOptional<z.ZodString>;
20
- name: z.ZodOptional<z.ZodString>;
21
- email: z.ZodOptional<z.ZodString>;
22
- first: z.ZodOptional<z.ZodString>;
23
- image_url: z.ZodOptional<z.ZodString>;
24
- external_id: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
25
- public_meta: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
26
- email_verified: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
7
+ export declare const FPClerkClaimSchema: z.ZodObject<{
8
+ payload: z.ZodObject<{
9
+ azp: z.ZodOptional<z.ZodString>;
10
+ exp: z.ZodOptional<z.ZodNumber>;
11
+ iat: z.ZodOptional<z.ZodNumber>;
12
+ iss: z.ZodOptional<z.ZodString>;
13
+ jti: z.ZodOptional<z.ZodString>;
14
+ nbf: z.ZodOptional<z.ZodNumber>;
15
+ params: z.ZodObject<{
16
+ email: z.ZodOptional<z.ZodString>;
17
+ email_verified: z.ZodOptional<z.ZodBoolean>;
18
+ first: z.ZodOptional<z.ZodString>;
19
+ image_url: z.ZodOptional<z.ZodString>;
20
+ last: z.ZodOptional<z.ZodString>;
21
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
+ public_meta: z.ZodOptional<z.ZodUnknown>;
23
+ }, z.core.$strip>;
24
+ role: z.ZodString;
25
+ sub: z.ZodString;
26
+ userId: z.ZodString;
27
+ aud: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
28
+ app_metadata: z.ZodOptional<z.ZodUnknown>;
27
29
  }, z.core.$strip>;
28
- }, z.core.$strip>>;
30
+ protectedHeader: z.ZodObject<{
31
+ alg: z.ZodOptional<z.ZodString>;
32
+ cat: z.ZodOptional<z.ZodString>;
33
+ kid: z.ZodOptional<z.ZodString>;
34
+ typ: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>;
36
+ }, z.core.$strip>;
29
37
  export type FPClerkClaim = z.infer<typeof FPClerkClaimSchema>;
package/index.js CHANGED
@@ -1,25 +1,41 @@
1
- import { JWTPayloadSchema } from "@fireproof/core-types-base";
2
- import { z } from "zod";
1
+ import { z } from "zod/v4";
3
2
  export * from "./msg-types.js";
4
3
  export * from "./msg-is.js";
5
4
  export * from "./msg-api.js";
5
+ export * from "./fp-api-interface.js";
6
6
  export * from "./dashboard-api.js";
7
- export const FPClerkClaimSchema = JWTPayloadSchema.extend({
8
- app_metadata: z.unknown(),
9
- role: z.string(),
10
- userId: z.string(),
11
- sub: z.string(),
12
- params: z
7
+ export const FPClerkClaimSchema = z.object({
8
+ payload: z.object({
9
+ azp: z.string().optional(), // authorized party
10
+ exp: z.number().int().optional(), // expiration time
11
+ iat: z.number().int().optional(), // issued at
12
+ iss: z.string().optional(), // issuer
13
+ jti: z.string().optional(), // JWT ID
14
+ nbf: z.number().int().optional(), // not before
15
+ params: z
16
+ .object({
17
+ email: z.string(),
18
+ email_verified: z.boolean(),
19
+ first: z.string(),
20
+ image_url: z.string(),
21
+ last: z.string(),
22
+ name: z.string().nullable(),
23
+ public_meta: z.unknown(),
24
+ })
25
+ .partial(),
26
+ role: z.string(),
27
+ sub: z.string(),
28
+ userId: z.string(),
29
+ aud: z.union([z.string(), z.array(z.string())]).optional(), // audience
30
+ app_metadata: z.unknown().optional(),
31
+ }),
32
+ protectedHeader: z
13
33
  .object({
14
- last: z.string(),
15
- name: z.string(),
16
- email: z.string(),
17
- first: z.string(),
18
- image_url: z.string(),
19
- external_id: z.string().nullable().optional(),
20
- public_meta: z.any().optional(),
21
- email_verified: z.boolean().optional(),
34
+ alg: z.string(),
35
+ cat: z.string(),
36
+ kid: z.string(),
37
+ typ: z.string(),
22
38
  })
23
39
  .partial(),
24
- }).readonly();
40
+ });
25
41
  //# 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,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACxD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC7C,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACvC,CAAC;SACD,OAAO,EAAE;CACb,CAAC,CAAC,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AAmBnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAGhB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,mBAAmB;QAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,kBAAkB;QACpD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY;QAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS;QACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS;QACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa;QAE/C,MAAM,EAAE,CAAC;aACN,MAAM,CAAC;YACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;YAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;SACzB,CAAC;aACD,OAAO,EAAE;QAEZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAElB,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,EAAE,WAAW;QACvE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;IACF,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"}
package/msg-types.d.ts CHANGED
@@ -113,6 +113,7 @@ export interface FPApiParameters {
113
113
  readonly maxMemberUsers: number;
114
114
  readonly maxInvites: number;
115
115
  readonly maxLedgers: number;
116
+ readonly maxAppIdBindings: number;
116
117
  readonly deviceCA: DeviceIdCA;
117
118
  }
118
119
  export interface InCreateTenantParams {
@@ -424,4 +425,22 @@ export interface ResCertFromCsr {
424
425
  readonly type: "resCertFromCsr";
425
426
  readonly certificate: string;
426
427
  }
428
+ export interface ReqEnsureCloudToken {
429
+ readonly type: "reqEnsureCloudToken";
430
+ readonly auth: DashAuthType;
431
+ readonly appId: string;
432
+ readonly env?: string;
433
+ readonly tenant?: string;
434
+ readonly ledger?: string;
435
+ readonly prevCloudToken?: string;
436
+ }
437
+ export interface ResEnsureCloudToken {
438
+ readonly type: "resEnsureCloudToken";
439
+ readonly cloudToken: string;
440
+ readonly appId: string;
441
+ readonly tenant: string;
442
+ readonly ledger: string;
443
+ readonly expiresInSec: number;
444
+ readonly expiresDate: string;
445
+ }
427
446
  export {};
package/msg-types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"msg-types.js","sourceRoot":"","sources":["../jsr/msg-types.ts"],"names":[],"mappings":"AAuPA,MAAM,UAAU,OAAO,CAAC,EAAc,EAAE;IACtC,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AAAA,CAC5B"}
1
+ {"version":3,"file":"msg-types.js","sourceRoot":"","sources":["../jsr/msg-types.ts"],"names":[],"mappings":"AAwPA,MAAM,UAAU,OAAO,CAAC,EAAc,EAAE;IACtC,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;AAAA,CAC5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fireproof/core-protocols-dashboard",
3
- "version": "0.24.2-dev-cloud-api",
3
+ "version": "0.24.2-dev-clerk",
4
4
  "description": "Live ledger for the web.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -31,13 +31,14 @@
31
31
  "url": "https://github.com/fireproof-storage/fireproof/issues"
32
32
  },
33
33
  "dependencies": {
34
- "@adviser/cement": "^0.4.72",
35
- "@fireproof/core-device-id": "0.24.2-dev-cloud-api",
36
- "@fireproof/core-runtime": "0.24.2-dev-cloud-api",
37
- "@fireproof/core-types-base": "0.24.2-dev-cloud-api",
38
- "@fireproof/core-types-protocols-cloud": "0.24.2-dev-cloud-api",
39
- "@fireproof/vendor": "0.24.2-dev-cloud-api",
40
- "zod": "^4.1.12"
34
+ "@adviser/cement": "0.5.5",
35
+ "@clerk/clerk-js": "5.111.0",
36
+ "@fireproof/core-device-id": "0.24.2-dev-clerk",
37
+ "@fireproof/core-runtime": "0.24.2-dev-clerk",
38
+ "@fireproof/core-types-base": "0.24.2-dev-clerk",
39
+ "@fireproof/core-types-protocols-cloud": "0.24.2-dev-clerk",
40
+ "@fireproof/vendor": "0.24.2-dev-clerk",
41
+ "zod": "4.1.13"
41
42
  },
42
43
  "scripts": {
43
44
  "build": "core-cli tsc"