@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.
- package/dashboard-api.d.ts +24 -9
- package/dashboard-api.js +68 -13
- package/dashboard-api.js.map +1 -1
- package/fp-api-interface.d.ts +24 -0
- package/fp-api-interface.js +2 -0
- package/fp-api-interface.js.map +1 -0
- package/index.d.ts +31 -23
- package/index.js +33 -17
- package/index.js.map +1 -1
- package/msg-types.d.ts +19 -0
- package/msg-types.js.map +1 -1
- package/package.json +9 -8
package/dashboard-api.d.ts
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import { Result } from "@adviser/cement";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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
|
|
6
|
+
export interface ClerkDashboardApiConfig<T> {
|
|
6
7
|
readonly apiUrl: string;
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
readonly getTokenCtx?: T;
|
|
9
|
+
readonly template?: string;
|
|
10
|
+
readonly gracePeriodMs?: number;
|
|
11
|
+
fetch?(input: RequestInfo, init?: RequestInit): Promise<Response>;
|
|
9
12
|
}
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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 {
|
|
2
|
-
export class
|
|
1
|
+
import { Result, KeyedResolvOnce, WaitingForValue, Option, exception2Result } from "@adviser/cement";
|
|
2
|
+
export class DashboardApiImpl {
|
|
3
3
|
cfg;
|
|
4
4
|
constructor(cfg) {
|
|
5
|
-
this.cfg =
|
|
6
|
-
|
|
7
|
-
|
|
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.
|
|
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
|
package/dashboard-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-api.js","sourceRoot":"","sources":["../jsr/dashboard-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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 @@
|
|
|
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.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
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 {
|
|
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 =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
})
|
|
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":"
|
|
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":"
|
|
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-
|
|
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": "
|
|
35
|
-
"@
|
|
36
|
-
"@fireproof/core-
|
|
37
|
-
"@fireproof/core-
|
|
38
|
-
"@fireproof/core-types-
|
|
39
|
-
"@fireproof/
|
|
40
|
-
"
|
|
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"
|