@samebase/identity-broker 0.6.1 → 0.8.0
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/README.md +17 -19
- package/dist/client/index.d.ts +14 -21
- package/dist/client/index.js +43 -138
- package/dist/client/index.js.map +1 -1
- package/dist/client/protocol.d.ts +1 -18
- package/dist/client/protocol.js +0 -83
- package/dist/client/protocol.js.map +1 -1
- package/dist/component/_generated/api.d.ts +0 -2
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +0 -39
- package/dist/component/apps.d.ts +4 -13
- package/dist/component/apps.js +5 -34
- package/dist/component/apps.js.map +1 -1
- package/dist/component/clients.d.ts +0 -9
- package/dist/component/clients.js +1 -21
- package/dist/component/clients.js.map +1 -1
- package/dist/component/lifecycle.d.ts +0 -1
- package/dist/component/lifecycle.js +0 -9
- package/dist/component/lifecycle.js.map +1 -1
- package/dist/component/schema.d.ts +3 -18
- package/dist/component/schema.js +2 -11
- package/dist/component/schema.js.map +1 -1
- package/package.json +1 -1
- package/dist/component/registration.d.ts +0 -29
- package/dist/component/registration.js +0 -90
- package/dist/component/registration.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** Stores the hash of an initial access token (RFC 7591 section 3) that registers clients of one app. */
|
|
2
|
-
export declare const mintToken: import("convex/server").RegisteredMutation<"public", {
|
|
3
|
-
appId: string;
|
|
4
|
-
createdAt: number;
|
|
5
|
-
expiresAt: number;
|
|
6
|
-
tokenHash: string;
|
|
7
|
-
}, Promise<null>>;
|
|
8
|
-
/** The app a live registration token belongs to, or null for an unknown or expired token. */
|
|
9
|
-
export declare const readToken: import("convex/server").RegisteredQuery<"public", {
|
|
10
|
-
now: number;
|
|
11
|
-
tokenHash: string;
|
|
12
|
-
}, Promise<{
|
|
13
|
-
appId: string;
|
|
14
|
-
name: string;
|
|
15
|
-
firstParty: boolean;
|
|
16
|
-
allowedCallbackHosts: string[];
|
|
17
|
-
} | null>>;
|
|
18
|
-
/** The tokens of one app, as hashes: the plaintext is never stored. Oldest first. */
|
|
19
|
-
export declare const listTokens: import("convex/server").RegisteredQuery<"public", {
|
|
20
|
-
appId: string;
|
|
21
|
-
}, Promise<{
|
|
22
|
-
tokenHash: string;
|
|
23
|
-
expiresAt: number;
|
|
24
|
-
createdAt: number;
|
|
25
|
-
}[]>>;
|
|
26
|
-
/** Deletes a registration token before it expires. Clients it registered stay. */
|
|
27
|
-
export declare const revokeToken: import("convex/server").RegisteredMutation<"public", {
|
|
28
|
-
tokenHash: string;
|
|
29
|
-
}, Promise<null>>;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { v } from "convex/values";
|
|
2
|
-
import { mutation, query } from "./_generated/server";
|
|
3
|
-
const { array, boolean, number, object, string } = v;
|
|
4
|
-
/** Stores the hash of an initial access token (RFC 7591 section 3) that registers clients of one app. */
|
|
5
|
-
export const mintToken = mutation({
|
|
6
|
-
args: { tokenHash: string(), appId: string(), expiresAt: number(), createdAt: number() },
|
|
7
|
-
returns: v.null(),
|
|
8
|
-
handler: async (ctx, args) => {
|
|
9
|
-
const app = await ctx.db
|
|
10
|
-
.query("apps")
|
|
11
|
-
.withIndex("by_app_id", (q) => q.eq("appId", args.appId))
|
|
12
|
-
.unique();
|
|
13
|
-
if (app === null) {
|
|
14
|
-
throw new Error(`Unknown app "${args.appId}"`);
|
|
15
|
-
}
|
|
16
|
-
await ctx.db.insert("registrationTokens", {
|
|
17
|
-
tokenHash: args.tokenHash,
|
|
18
|
-
appId: args.appId,
|
|
19
|
-
expiresAt: args.expiresAt,
|
|
20
|
-
createdAt: args.createdAt,
|
|
21
|
-
});
|
|
22
|
-
return null;
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
/** The app a live registration token belongs to, or null for an unknown or expired token. */
|
|
26
|
-
export const readToken = query({
|
|
27
|
-
args: { tokenHash: string(), now: number() },
|
|
28
|
-
returns: v.union(object({
|
|
29
|
-
appId: string(),
|
|
30
|
-
name: string(),
|
|
31
|
-
firstParty: boolean(),
|
|
32
|
-
allowedCallbackHosts: array(string()),
|
|
33
|
-
}), v.null()),
|
|
34
|
-
handler: async (ctx, args) => {
|
|
35
|
-
const token = await ctx.db
|
|
36
|
-
.query("registrationTokens")
|
|
37
|
-
.withIndex("by_token_hash", (q) => q.eq("tokenHash", args.tokenHash))
|
|
38
|
-
.unique();
|
|
39
|
-
if (token === null || token.expiresAt <= args.now) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const app = await ctx.db
|
|
43
|
-
.query("apps")
|
|
44
|
-
.withIndex("by_app_id", (q) => q.eq("appId", token.appId))
|
|
45
|
-
.unique();
|
|
46
|
-
if (app === null) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
appId: app.appId,
|
|
51
|
-
name: app.name,
|
|
52
|
-
firstParty: app.firstParty,
|
|
53
|
-
allowedCallbackHosts: app.allowedCallbackHosts,
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
/** The tokens of one app, as hashes: the plaintext is never stored. Oldest first. */
|
|
58
|
-
export const listTokens = query({
|
|
59
|
-
args: { appId: string() },
|
|
60
|
-
returns: array(object({ tokenHash: string(), expiresAt: number(), createdAt: number() })),
|
|
61
|
-
handler: async (ctx, args) => {
|
|
62
|
-
const tokens = await ctx.db
|
|
63
|
-
.query("registrationTokens")
|
|
64
|
-
.withIndex("by_app_id", (q) => q.eq("appId", args.appId))
|
|
65
|
-
.collect();
|
|
66
|
-
return tokens
|
|
67
|
-
.map((token) => ({
|
|
68
|
-
tokenHash: token.tokenHash,
|
|
69
|
-
expiresAt: token.expiresAt,
|
|
70
|
-
createdAt: token.createdAt,
|
|
71
|
-
}))
|
|
72
|
-
.sort((a, b) => a.createdAt - b.createdAt || a.tokenHash.localeCompare(b.tokenHash));
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
/** Deletes a registration token before it expires. Clients it registered stay. */
|
|
76
|
-
export const revokeToken = mutation({
|
|
77
|
-
args: { tokenHash: string() },
|
|
78
|
-
returns: v.null(),
|
|
79
|
-
handler: async (ctx, args) => {
|
|
80
|
-
const token = await ctx.db
|
|
81
|
-
.query("registrationTokens")
|
|
82
|
-
.withIndex("by_token_hash", (q) => q.eq("tokenHash", args.tokenHash))
|
|
83
|
-
.unique();
|
|
84
|
-
if (token !== null) {
|
|
85
|
-
await ctx.db.delete("registrationTokens", token._id);
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
88
|
-
},
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=registration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/component/registration.ts"],"names":[],"mappings":"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"}
|