@samebase/identity-broker 0.7.0 → 0.9.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 +8 -8
- package/dist/client/index.d.ts +0 -24
- package/dist/client/index.js +22 -163
- package/dist/client/index.js.map +1 -1
- package/dist/client/keys.js +2 -9
- package/dist/client/keys.js.map +1 -1
- package/dist/client/protocol.d.ts +5 -20
- package/dist/client/protocol.js +14 -95
- package/dist/client/protocol.js.map +1 -1
- package/dist/client/responses.d.ts +4 -1
- package/dist/client/responses.js +9 -6
- package/dist/client/responses.js.map +1 -1
- package/dist/client/subject.js +3 -8
- package/dist/client/subject.js.map +1 -1
- package/dist/component/_generated/api.d.ts +0 -4
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +6 -45
- package/dist/component/apps.d.ts +8 -17
- package/dist/component/apps.js +24 -36
- package/dist/component/apps.js.map +1 -1
- package/dist/component/authRequests.d.ts +8 -8
- package/dist/component/authRequests.js +9 -10
- package/dist/component/authRequests.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 +5 -6
- package/dist/component/lifecycle.js +5 -14
- package/dist/component/lifecycle.js.map +1 -1
- package/dist/component/schema.d.ts +61 -79
- package/dist/component/schema.js +5 -17
- package/dist/component/schema.js.map +1 -1
- package/package.json +1 -1
- package/dist/component/crypto.d.ts +0 -2
- package/dist/component/crypto.js +0 -9
- package/dist/component/crypto.js.map +0 -1
- package/dist/component/registration.d.ts +0 -29
- package/dist/component/registration.js +0 -90
- package/dist/component/registration.js.map +0 -1
|
@@ -11,28 +11,13 @@ export type Validation<T> = {
|
|
|
11
11
|
error: string;
|
|
12
12
|
description: string;
|
|
13
13
|
};
|
|
14
|
-
export
|
|
15
|
-
export type TokenEndpointAuthMethod = (typeof TOKEN_ENDPOINT_AUTH_METHODS)[number];
|
|
16
|
-
export declare const DEPLOYMENT_TYPES: readonly ["production", "development", "preview"];
|
|
17
|
-
export type DeploymentType = (typeof DEPLOYMENT_TYPES)[number];
|
|
14
|
+
export type TokenEndpointAuthMethod = "client_secret_post" | "client_secret_basic";
|
|
18
15
|
/** The own enumerable entries of a JSON value, or an empty record for anything but an object. */
|
|
19
16
|
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
20
|
-
/**
|
|
17
|
+
/** https, or http on a loopback host for local development. */
|
|
18
|
+
export declare function isSecureUrl(url: URL): boolean;
|
|
19
|
+
/** A redirect URI: absolute, no fragment, and secure. */
|
|
21
20
|
export declare function parseRedirectUri(value: string): URL | null;
|
|
22
|
-
/**
|
|
23
|
-
* Whether `hostname` is covered by one of an app's allowed callback hosts: an exact host, or a
|
|
24
|
-
* `*.suffix` pattern whose wildcard stands for exactly one leading label.
|
|
25
|
-
*/
|
|
26
|
-
export declare function hostAllowed(hostname: string, allowedHosts: readonly string[]): boolean;
|
|
27
|
-
export type RegistrationInput = {
|
|
28
|
-
redirectUri: string;
|
|
29
|
-
clientName: string;
|
|
30
|
-
softwareVersion: string;
|
|
31
|
-
deploymentType: DeploymentType;
|
|
32
|
-
tokenEndpointAuthMethod: TokenEndpointAuthMethod;
|
|
33
|
-
};
|
|
34
|
-
/** RFC 7591 registration metadata as this provider accepts it: one redirect URI per client. */
|
|
35
|
-
export declare function validateRegistration(payload: unknown): Validation<RegistrationInput>;
|
|
36
21
|
export type AuthorizeInput = {
|
|
37
22
|
clientId: string;
|
|
38
23
|
redirectUri: string;
|
|
@@ -71,7 +56,7 @@ export type TokenInput = {
|
|
|
71
56
|
/**
|
|
72
57
|
* Client credentials from HTTP Basic (RFC 6749 section 2.3.1) or the form body. The first look at a
|
|
73
58
|
* token request, so it also refuses a repeated parameter (RFC 6749 section 3.2) and a request that
|
|
74
|
-
* uses both methods (section 2.3
|
|
59
|
+
* uses both methods (section 2.3): an Authorization header and a `client_secret` in the body. A
|
|
75
60
|
* `client_id` in the body names the client and is not a method; an empty `client_secret` counts as
|
|
76
61
|
* omitted (section 3.2).
|
|
77
62
|
*/
|
package/dist/client/protocol.js
CHANGED
|
@@ -4,10 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
const MAX_STATE_LENGTH = 4096;
|
|
6
6
|
const MAX_REDIRECT_URI_LENGTH = 2048;
|
|
7
|
-
const MAX_CLIENT_NAME_LENGTH = 120;
|
|
8
7
|
const pkceValuePattern = /^[A-Za-z0-9\-._~]{43,128}$/;
|
|
9
|
-
export const TOKEN_ENDPOINT_AUTH_METHODS = ["client_secret_post", "client_secret_basic"];
|
|
10
|
-
export const DEPLOYMENT_TYPES = ["production", "development", "preview"];
|
|
11
8
|
/** The own enumerable entries of a JSON value, or an empty record for anything but an object. */
|
|
12
9
|
export function asRecord(value) {
|
|
13
10
|
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
@@ -26,7 +23,11 @@ function hasRepeatedParameter(params) {
|
|
|
26
23
|
function isLoopbackHost(hostname) {
|
|
27
24
|
return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
|
|
28
25
|
}
|
|
29
|
-
/**
|
|
26
|
+
/** https, or http on a loopback host for local development. */
|
|
27
|
+
export function isSecureUrl(url) {
|
|
28
|
+
return url.protocol === "https:" || (url.protocol === "http:" && isLoopbackHost(url.hostname));
|
|
29
|
+
}
|
|
30
|
+
/** A redirect URI: absolute, no fragment, and secure. */
|
|
30
31
|
export function parseRedirectUri(value) {
|
|
31
32
|
if (value.length === 0 || value.length > MAX_REDIRECT_URI_LENGTH) {
|
|
32
33
|
return null;
|
|
@@ -38,96 +39,7 @@ export function parseRedirectUri(value) {
|
|
|
38
39
|
catch {
|
|
39
40
|
return null;
|
|
40
41
|
}
|
|
41
|
-
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
if (url.protocol === "https:") {
|
|
45
|
-
return url;
|
|
46
|
-
}
|
|
47
|
-
if (url.protocol === "http:" && isLoopbackHost(url.hostname)) {
|
|
48
|
-
return url;
|
|
49
|
-
}
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Whether `hostname` is covered by one of an app's allowed callback hosts: an exact host, or a
|
|
54
|
-
* `*.suffix` pattern whose wildcard stands for exactly one leading label.
|
|
55
|
-
*/
|
|
56
|
-
export function hostAllowed(hostname, allowedHosts) {
|
|
57
|
-
const host = hostname.toLowerCase();
|
|
58
|
-
return allowedHosts.some((allowed) => {
|
|
59
|
-
const pattern = allowed.toLowerCase();
|
|
60
|
-
if (!pattern.startsWith("*.")) {
|
|
61
|
-
return host === pattern;
|
|
62
|
-
}
|
|
63
|
-
const suffix = pattern.slice(1);
|
|
64
|
-
if (!host.endsWith(suffix)) {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
const label = host.slice(0, host.length - suffix.length);
|
|
68
|
-
return label.length > 0 && !label.includes(".");
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
function readString(value, maxLength) {
|
|
72
|
-
if (typeof value !== "string") {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
const trimmed = value.trim();
|
|
76
|
-
return trimmed.length === 0 || trimmed.length > maxLength ? null : trimmed;
|
|
77
|
-
}
|
|
78
|
-
/** RFC 7591 registration metadata as this provider accepts it: one redirect URI per client. */
|
|
79
|
-
export function validateRegistration(payload) {
|
|
80
|
-
if (typeof payload !== "object" || payload === null || Array.isArray(payload)) {
|
|
81
|
-
return invalid(400, "invalid_client_metadata", "The request body must be a JSON object.");
|
|
82
|
-
}
|
|
83
|
-
const record = asRecord(payload);
|
|
84
|
-
const redirectUris = record["redirect_uris"];
|
|
85
|
-
if (!Array.isArray(redirectUris) || redirectUris.length !== 1) {
|
|
86
|
-
return invalid(400, "invalid_redirect_uri", "redirect_uris must hold exactly one URI: a client is one deployment.");
|
|
87
|
-
}
|
|
88
|
-
const redirectUri = typeof redirectUris[0] === "string" ? redirectUris[0] : "";
|
|
89
|
-
if (parseRedirectUri(redirectUri) === null) {
|
|
90
|
-
return invalid(400, "invalid_redirect_uri", "The redirect URI must be an absolute https URL without a fragment, or http on a loopback host.");
|
|
91
|
-
}
|
|
92
|
-
const clientName = readString(record["client_name"], MAX_CLIENT_NAME_LENGTH);
|
|
93
|
-
if (clientName === null) {
|
|
94
|
-
return invalid(400, "invalid_client_metadata", "client_name is required.");
|
|
95
|
-
}
|
|
96
|
-
const softwareVersion = readString(record["software_version"] ?? "unknown", 200);
|
|
97
|
-
if (softwareVersion === null) {
|
|
98
|
-
return invalid(400, "invalid_client_metadata", "software_version must be a non-empty string.");
|
|
99
|
-
}
|
|
100
|
-
const deploymentType = DEPLOYMENT_TYPES.find((type) => type === record["deployment_type"]);
|
|
101
|
-
if (deploymentType === undefined) {
|
|
102
|
-
return invalid(400, "invalid_client_metadata", `deployment_type must be one of ${DEPLOYMENT_TYPES.join(", ")}.`);
|
|
103
|
-
}
|
|
104
|
-
// RFC 7591 section 2: the default is client_secret_basic.
|
|
105
|
-
const authMethod = TOKEN_ENDPOINT_AUTH_METHODS.find((method) => method === (record["token_endpoint_auth_method"] ?? "client_secret_basic"));
|
|
106
|
-
if (authMethod === undefined) {
|
|
107
|
-
return invalid(400, "invalid_client_metadata", `token_endpoint_auth_method must be one of ${TOKEN_ENDPOINT_AUTH_METHODS.join(", ")}.`);
|
|
108
|
-
}
|
|
109
|
-
const grantTypes = record["grant_types"];
|
|
110
|
-
if (grantTypes !== undefined &&
|
|
111
|
-
(!Array.isArray(grantTypes) ||
|
|
112
|
-
grantTypes.length !== 1 ||
|
|
113
|
-
grantTypes[0] !== "authorization_code")) {
|
|
114
|
-
return invalid(400, "invalid_client_metadata", 'grant_types must be ["authorization_code"].');
|
|
115
|
-
}
|
|
116
|
-
const responseTypes = record["response_types"];
|
|
117
|
-
if (responseTypes !== undefined &&
|
|
118
|
-
(!Array.isArray(responseTypes) || responseTypes.length !== 1 || responseTypes[0] !== "code")) {
|
|
119
|
-
return invalid(400, "invalid_client_metadata", 'response_types must be ["code"].');
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
ok: true,
|
|
123
|
-
value: {
|
|
124
|
-
redirectUri,
|
|
125
|
-
clientName,
|
|
126
|
-
softwareVersion,
|
|
127
|
-
deploymentType,
|
|
128
|
-
tokenEndpointAuthMethod: authMethod,
|
|
129
|
-
},
|
|
130
|
-
};
|
|
42
|
+
return url.hash.length === 0 && isSecureUrl(url) ? url : null;
|
|
131
43
|
}
|
|
132
44
|
/**
|
|
133
45
|
* The first half of /authorize validation: the parameters that identify the client and where to
|
|
@@ -150,6 +62,13 @@ export function validateAuthorizeTarget(params) {
|
|
|
150
62
|
return { ok: true, value: { clientId, redirectUri } };
|
|
151
63
|
}
|
|
152
64
|
export function validateAuthorizeRest(params, target) {
|
|
65
|
+
// Discovery says neither is supported, and OIDC Core sections 6.1 and 6.2 name these errors.
|
|
66
|
+
if (params.has("request")) {
|
|
67
|
+
return invalid(400, "request_not_supported", "Request Objects are not supported.");
|
|
68
|
+
}
|
|
69
|
+
if (params.has("request_uri")) {
|
|
70
|
+
return invalid(400, "request_uri_not_supported", "request_uri is not supported.");
|
|
71
|
+
}
|
|
153
72
|
if (params.get("response_type") !== "code") {
|
|
154
73
|
return invalid(400, "unsupported_response_type", 'response_type must be "code".');
|
|
155
74
|
}
|
|
@@ -206,7 +125,7 @@ export function validateAuthorizeRest(params, target) {
|
|
|
206
125
|
/**
|
|
207
126
|
* Client credentials from HTTP Basic (RFC 6749 section 2.3.1) or the form body. The first look at a
|
|
208
127
|
* token request, so it also refuses a repeated parameter (RFC 6749 section 3.2) and a request that
|
|
209
|
-
* uses both methods (section 2.3
|
|
128
|
+
* uses both methods (section 2.3): an Authorization header and a `client_secret` in the body. A
|
|
210
129
|
* `client_id` in the body names the client and is not a method; an empty `client_secret` counts as
|
|
211
130
|
* omitted (section 3.2).
|
|
212
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client/protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/client/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAItD,iGAAiG;AACjG,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,OAAO,CAAI,MAAc,EAAE,KAAa,EAAE,WAAmB;IACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,8FAA8F;AAC9F,SAAS,oBAAoB,CAAC,MAAuB;IACnD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,CAAC;AACtF,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,GAAQ;IAClC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAuB;IAEvB,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,gBAAgB,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,qCAAqC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,MAAiD;IAEjD,6FAA6F;IAC7F,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,EAAE,uBAAuB,EAAE,oCAAoC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,2BAA2B,EAAE,+BAA+B,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,GAAG,EAAE,2BAA2B,EAAE,+BAA+B,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,yBAAyB,gBAAgB,cAAc,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,yBAAyB,gBAAgB,cAAc,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1C,OAAO,OAAO,CACZ,GAAG,EACH,iBAAiB,EACjB,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,MAAM,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,mDAAmD,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,MAA0B,CAAC;IAC/B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,yCAAyC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC/D,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM;YACN,KAAK;YACL,KAAK;YACL,aAAa;YACb,MAAM;YACN,MAAM;YACN,SAAS;SACV;KACF,CAAC;AACJ,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAA4B,EAC5B,MAAuB;IAEvB,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,gDAAgD,CAAC,CAAC;QAC3F,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,qDAAqD,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,+CAA+C,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,OAAO,CACZ,GAAG,EACH,gBAAgB,EAChB,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE;oBACL,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACzD,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;oBAC9D,MAAM,EAAE,qBAAqB;iBAC9B;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,2CAA2C,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAuB,EACvB,MAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,GAAG,EAAE,wBAAwB,EAAE,0CAA0C,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;IAC5D,IAAI,WAAW,KAAK,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,CACZ,GAAG,EACH,iBAAiB,EACjB,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,aAA4B;IAC1D,MAAM,KAAK,GAAG,aAAa,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -26,5 +26,8 @@ export declare function authorizationError(args: {
|
|
|
26
26
|
error: string;
|
|
27
27
|
description: string;
|
|
28
28
|
}): Response;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* The parameters of a GET query or a form POST, which the authorization endpoint accepts alike. A
|
|
31
|
+
* parameter sent without a value counts as omitted (RFC 6749 section 3.1).
|
|
32
|
+
*/
|
|
30
33
|
export declare function readParameters(request: Request): Promise<URLSearchParams | null>;
|
package/dist/client/responses.js
CHANGED
|
@@ -48,15 +48,18 @@ export function authorizationError(args) {
|
|
|
48
48
|
params: { error: args.error, error_description: args.description },
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* The parameters of a GET query or a form POST, which the authorization endpoint accepts alike. A
|
|
53
|
+
* parameter sent without a value counts as omitted (RFC 6749 section 3.1).
|
|
54
|
+
*/
|
|
52
55
|
export async function readParameters(request) {
|
|
53
|
-
if (request.method === "GET") {
|
|
54
|
-
return new URL(request.url).searchParams;
|
|
55
|
-
}
|
|
56
56
|
const contentType = request.headers.get("content-type")?.toLowerCase() ?? "";
|
|
57
|
-
if (!contentType.startsWith("application/x-www-form-urlencoded")) {
|
|
57
|
+
if (request.method !== "GET" && !contentType.startsWith("application/x-www-form-urlencoded")) {
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
const params = request.method === "GET"
|
|
61
|
+
? new URL(request.url).searchParams
|
|
62
|
+
: new URLSearchParams(await request.text());
|
|
63
|
+
return new URLSearchParams([...params].filter(([, value]) => value !== ""));
|
|
61
64
|
}
|
|
62
65
|
//# sourceMappingURL=responses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/client/responses.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,MAAM,UAAU,IAAI,CAAC,IAAa,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAA2B,EAAE;IACpF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACxC,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,iCAAiC;YACjD,eAAe,EAAE,UAAU;YAC3B,MAAM,EAAE,UAAU;YAClB,GAAG,OAAO;SACX;KACF,CAAC,CAAC;AACL,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,KAAa,EACb,WAAmB,EACnB,OAAO,GAA2B,EAAE;IAEpC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAUrC;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAOlC;IACC,OAAO,qBAAqB,CAAC;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE;KACnE,CAAC,CAAC;AACL,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/client/responses.ts"],"names":[],"mappings":"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"}
|
package/dist/client/subject.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { base64url } from "jose";
|
|
1
2
|
/**
|
|
2
3
|
* The pairwise subject of OIDC Core 8.1 with the app as the sector: deterministic, not reversible,
|
|
3
4
|
* and the same for every deployment of an app.
|
|
@@ -5,10 +6,7 @@
|
|
|
5
6
|
export async function pairwiseSubject(args) {
|
|
6
7
|
const input = `${args.appId}\u0000${args.connector}\u0000${args.upstreamId}\u0000${args.salt}`;
|
|
7
8
|
const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
8
|
-
return
|
|
9
|
-
.replace(/\+/g, "-")
|
|
10
|
-
.replace(/\//g, "_")
|
|
11
|
-
.replace(/=+$/, "");
|
|
9
|
+
return base64url.encode(new Uint8Array(digest));
|
|
12
10
|
}
|
|
13
11
|
export async function sha256Hex(input) {
|
|
14
12
|
const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(input));
|
|
@@ -18,10 +16,7 @@ export async function sha256Hex(input) {
|
|
|
18
16
|
export function randomToken(bytes = 32) {
|
|
19
17
|
const buffer = new Uint8Array(bytes);
|
|
20
18
|
crypto.getRandomValues(buffer);
|
|
21
|
-
return
|
|
22
|
-
.replace(/\+/g, "-")
|
|
23
|
-
.replace(/\//g, "_")
|
|
24
|
-
.replace(/=+$/, "");
|
|
19
|
+
return base64url.encode(buffer);
|
|
25
20
|
}
|
|
26
21
|
/** A six-digit code for the email connector, uniform over 000000 to 999999. */
|
|
27
22
|
export function randomDigits(count = 6) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/client/subject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAKrC;IACC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,
|
|
1
|
+
{"version":3,"file":"subject.js","sourceRoot":"","sources":["../../src/client/subject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAKrC;IACC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,KAAK,GAAG,EAAE;IACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,KAAK,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -9,18 +9,14 @@
|
|
|
9
9
|
import type * as apps from "../apps.js";
|
|
10
10
|
import type * as authRequests from "../authRequests.js";
|
|
11
11
|
import type * as clients from "../clients.js";
|
|
12
|
-
import type * as crypto from "../crypto.js";
|
|
13
12
|
import type * as lifecycle from "../lifecycle.js";
|
|
14
|
-
import type * as registration from "../registration.js";
|
|
15
13
|
import type * as signIns from "../signIns.js";
|
|
16
14
|
import type { ApiFromModules, FilterApi, FunctionReference } from "convex/server";
|
|
17
15
|
declare const fullApi: ApiFromModules<{
|
|
18
16
|
apps: typeof apps;
|
|
19
17
|
authRequests: typeof authRequests;
|
|
20
18
|
clients: typeof clients;
|
|
21
|
-
crypto: typeof crypto;
|
|
22
19
|
lifecycle: typeof lifecycle;
|
|
23
|
-
registration: typeof registration;
|
|
24
20
|
signIns: typeof signIns;
|
|
25
21
|
}>;
|
|
26
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/component/_generated/api.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;;;;GAOG;AAaH,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,OAAO,GAMR,MAAa,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,MAAa,CAAC;AAElB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,MAAa,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,EAAmB,CAAC"}
|
|
@@ -21,7 +21,6 @@ import type { FunctionReference } from "convex/server";
|
|
|
21
21
|
export type ComponentApi<Name extends string | undefined = string | undefined> = {
|
|
22
22
|
apps: {
|
|
23
23
|
create: FunctionReference<"mutation", "internal", {
|
|
24
|
-
allowedCallbackHosts?: Array<string>;
|
|
25
24
|
appId: string;
|
|
26
25
|
createdAt: number;
|
|
27
26
|
firstParty: boolean;
|
|
@@ -30,14 +29,12 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
30
29
|
get: FunctionReference<"query", "internal", {
|
|
31
30
|
appId: string;
|
|
32
31
|
}, {
|
|
33
|
-
allowedCallbackHosts?: Array<string>;
|
|
34
32
|
appId: string;
|
|
35
33
|
createdAt: number;
|
|
36
34
|
firstParty: boolean;
|
|
37
35
|
name: string;
|
|
38
36
|
} | null, Name>;
|
|
39
37
|
list: FunctionReference<"query", "internal", {}, Array<{
|
|
40
|
-
allowedCallbackHosts?: Array<string>;
|
|
41
38
|
appId: string;
|
|
42
39
|
createdAt: number;
|
|
43
40
|
firstParty: boolean;
|
|
@@ -46,10 +43,6 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
46
43
|
remove: FunctionReference<"mutation", "internal", {
|
|
47
44
|
appId: string;
|
|
48
45
|
}, null, Name>;
|
|
49
|
-
setAllowedCallbackHosts: FunctionReference<"mutation", "internal", {
|
|
50
|
-
allowedCallbackHosts: Array<string>;
|
|
51
|
-
appId: string;
|
|
52
|
-
}, null, Name>;
|
|
53
46
|
};
|
|
54
47
|
authRequests: {
|
|
55
48
|
abandon: FunctionReference<"mutation", "internal", {
|
|
@@ -122,7 +115,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
122
115
|
requestId: string;
|
|
123
116
|
scope: string;
|
|
124
117
|
state?: string;
|
|
125
|
-
txnCookieHash
|
|
118
|
+
txnCookieHash: string;
|
|
126
119
|
}, null, Name>;
|
|
127
120
|
exchangeCode: FunctionReference<"mutation", "internal", {
|
|
128
121
|
clientId: string;
|
|
@@ -168,7 +161,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
168
161
|
scope: string;
|
|
169
162
|
state?: string;
|
|
170
163
|
status: "pending";
|
|
171
|
-
txnCookieHash
|
|
164
|
+
txnCookieHash: string;
|
|
172
165
|
} | {
|
|
173
166
|
appId: string;
|
|
174
167
|
clientId: string;
|
|
@@ -183,7 +176,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
183
176
|
scope: string;
|
|
184
177
|
state?: string;
|
|
185
178
|
status: "upstream";
|
|
186
|
-
txnCookieHash
|
|
179
|
+
txnCookieHash: string;
|
|
187
180
|
upstreamCodeVerifier: string;
|
|
188
181
|
upstreamNonce?: string;
|
|
189
182
|
upstreamStateHash: string;
|
|
@@ -201,7 +194,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
201
194
|
scope: string;
|
|
202
195
|
state?: string;
|
|
203
196
|
status: "claimed";
|
|
204
|
-
txnCookieHash
|
|
197
|
+
txnCookieHash: string;
|
|
205
198
|
} | {
|
|
206
199
|
appId: string;
|
|
207
200
|
clientId: string;
|
|
@@ -222,7 +215,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
222
215
|
scope: string;
|
|
223
216
|
state?: string;
|
|
224
217
|
status: "emailSent";
|
|
225
|
-
txnCookieHash
|
|
218
|
+
txnCookieHash: string;
|
|
226
219
|
} | {
|
|
227
220
|
appId: string;
|
|
228
221
|
authTime: number;
|
|
@@ -245,7 +238,7 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
245
238
|
scope: string;
|
|
246
239
|
state?: string;
|
|
247
240
|
status: "completed";
|
|
248
|
-
txnCookieHash
|
|
241
|
+
txnCookieHash: string;
|
|
249
242
|
} | null, Name>;
|
|
250
243
|
startEmail: FunctionReference<"mutation", "internal", {
|
|
251
244
|
connector: string;
|
|
@@ -353,10 +346,6 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
353
346
|
remove: FunctionReference<"mutation", "internal", {
|
|
354
347
|
clientId: string;
|
|
355
348
|
}, null, Name>;
|
|
356
|
-
unregister: FunctionReference<"mutation", "internal", {
|
|
357
|
-
appId: string;
|
|
358
|
-
clientId: string;
|
|
359
|
-
}, boolean, Name>;
|
|
360
349
|
};
|
|
361
350
|
lifecycle: {
|
|
362
351
|
cleanup: FunctionReference<"mutation", "internal", {
|
|
@@ -368,37 +357,9 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
|
|
|
368
357
|
authorizationCodes: number;
|
|
369
358
|
emailSends: number;
|
|
370
359
|
previewClients: number;
|
|
371
|
-
registrationTokens: number;
|
|
372
360
|
signIns: number;
|
|
373
361
|
}, Name>;
|
|
374
362
|
};
|
|
375
|
-
registration: {
|
|
376
|
-
listTokens: FunctionReference<"query", "internal", {
|
|
377
|
-
appId: string;
|
|
378
|
-
}, Array<{
|
|
379
|
-
createdAt: number;
|
|
380
|
-
expiresAt: number;
|
|
381
|
-
tokenHash: string;
|
|
382
|
-
}>, Name>;
|
|
383
|
-
mintToken: FunctionReference<"mutation", "internal", {
|
|
384
|
-
appId: string;
|
|
385
|
-
createdAt: number;
|
|
386
|
-
expiresAt: number;
|
|
387
|
-
tokenHash: string;
|
|
388
|
-
}, null, Name>;
|
|
389
|
-
readToken: FunctionReference<"query", "internal", {
|
|
390
|
-
now: number;
|
|
391
|
-
tokenHash: string;
|
|
392
|
-
}, {
|
|
393
|
-
allowedCallbackHosts: Array<string>;
|
|
394
|
-
appId: string;
|
|
395
|
-
firstParty: boolean;
|
|
396
|
-
name: string;
|
|
397
|
-
} | null, Name>;
|
|
398
|
-
revokeToken: FunctionReference<"mutation", "internal", {
|
|
399
|
-
tokenHash: string;
|
|
400
|
-
}, null, Name>;
|
|
401
|
-
};
|
|
402
363
|
signIns: {
|
|
403
364
|
record: FunctionReference<"mutation", "internal", {
|
|
404
365
|
appId: string;
|
package/dist/component/apps.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/** Registers an app. Its clients come later, one per deployment
|
|
1
|
+
/** Registers an app. Its clients come later, one per deployment. */
|
|
2
2
|
export declare const create: import("convex/server").RegisteredMutation<"public", {
|
|
3
|
-
allowedCallbackHosts?: string[];
|
|
4
3
|
appId: string;
|
|
5
4
|
createdAt: number;
|
|
6
5
|
firstParty: boolean;
|
|
@@ -9,29 +8,21 @@ export declare const create: import("convex/server").RegisteredMutation<"public"
|
|
|
9
8
|
export declare const get: import("convex/server").RegisteredQuery<"public", {
|
|
10
9
|
appId: string;
|
|
11
10
|
}, Promise<{
|
|
12
|
-
allowedCallbackHosts?: string[];
|
|
13
11
|
appId: string;
|
|
14
|
-
createdAt: number;
|
|
15
|
-
firstParty: boolean;
|
|
16
12
|
name: string;
|
|
13
|
+
firstParty: boolean;
|
|
14
|
+
createdAt: number;
|
|
17
15
|
} | null>>;
|
|
18
16
|
export declare const list: import("convex/server").RegisteredQuery<"public", {}, Promise<{
|
|
19
|
-
allowedCallbackHosts?: string[];
|
|
20
17
|
appId: string;
|
|
21
|
-
createdAt: number;
|
|
22
|
-
firstParty: boolean;
|
|
23
18
|
name: string;
|
|
19
|
+
firstParty: boolean;
|
|
20
|
+
createdAt: number;
|
|
24
21
|
}[]>>;
|
|
25
|
-
/** Replaces the hosts a client callback may use, for example when an app gets a custom domain. */
|
|
26
|
-
export declare const setAllowedCallbackHosts: import("convex/server").RegisteredMutation<"public", {
|
|
27
|
-
allowedCallbackHosts: string[];
|
|
28
|
-
appId: string;
|
|
29
|
-
}, Promise<null>>;
|
|
30
22
|
/**
|
|
31
|
-
* Deletes an app with its
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* rows take to delete.
|
|
23
|
+
* Deletes an app with its clients. This is the emergency revocation. The app row goes first:
|
|
24
|
+
* /authorize and /token refuse a client whose app is gone, so this transaction revokes every client
|
|
25
|
+
* of the app, however many batches their rows take to delete.
|
|
35
26
|
*/
|
|
36
27
|
export declare const remove: import("convex/server").RegisteredMutation<"public", {
|
|
37
28
|
appId: string;
|
package/dist/component/apps.js
CHANGED
|
@@ -2,21 +2,19 @@ import { v } from "convex/values";
|
|
|
2
2
|
import { internal } from "./_generated/api";
|
|
3
3
|
import { internalMutation, mutation, query } from "./_generated/server";
|
|
4
4
|
import { BATCH } from "./lifecycle";
|
|
5
|
-
const { array, boolean, number, object,
|
|
5
|
+
const { array, boolean, number, object, string } = v;
|
|
6
6
|
const vApp = object({
|
|
7
7
|
appId: string(),
|
|
8
8
|
name: string(),
|
|
9
9
|
firstParty: boolean(),
|
|
10
|
-
allowedCallbackHosts: optional(array(string())),
|
|
11
10
|
createdAt: number(),
|
|
12
11
|
});
|
|
13
|
-
/** Registers an app. Its clients come later, one per deployment
|
|
12
|
+
/** Registers an app. Its clients come later, one per deployment. */
|
|
14
13
|
export const create = mutation({
|
|
15
14
|
args: {
|
|
16
15
|
appId: string(),
|
|
17
16
|
name: string(),
|
|
18
17
|
firstParty: boolean(),
|
|
19
|
-
allowedCallbackHosts: optional(array(string())),
|
|
20
18
|
createdAt: number(),
|
|
21
19
|
},
|
|
22
20
|
returns: v.null(),
|
|
@@ -28,7 +26,12 @@ export const create = mutation({
|
|
|
28
26
|
if (existing !== null) {
|
|
29
27
|
throw new Error(`An app with id "${args.appId}" already exists`);
|
|
30
28
|
}
|
|
31
|
-
await ctx.db.insert("apps",
|
|
29
|
+
await ctx.db.insert("apps", {
|
|
30
|
+
appId: args.appId,
|
|
31
|
+
name: args.name,
|
|
32
|
+
firstParty: args.firstParty,
|
|
33
|
+
createdAt: args.createdAt,
|
|
34
|
+
});
|
|
32
35
|
return null;
|
|
33
36
|
},
|
|
34
37
|
});
|
|
@@ -43,8 +46,12 @@ export const get = query({
|
|
|
43
46
|
if (app === null) {
|
|
44
47
|
return null;
|
|
45
48
|
}
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
return {
|
|
50
|
+
appId: app.appId,
|
|
51
|
+
name: app.name,
|
|
52
|
+
firstParty: app.firstParty,
|
|
53
|
+
createdAt: app.createdAt,
|
|
54
|
+
};
|
|
48
55
|
},
|
|
49
56
|
});
|
|
50
57
|
export const list = query({
|
|
@@ -53,34 +60,16 @@ export const list = query({
|
|
|
53
60
|
handler: async (ctx) => {
|
|
54
61
|
const apps = await ctx.db.query("apps").collect();
|
|
55
62
|
return apps
|
|
56
|
-
.map((
|
|
63
|
+
.map((app) => ({
|
|
64
|
+
appId: app.appId,
|
|
65
|
+
name: app.name,
|
|
66
|
+
firstParty: app.firstParty,
|
|
67
|
+
createdAt: app.createdAt,
|
|
68
|
+
}))
|
|
57
69
|
.sort((a, b) => a.createdAt - b.createdAt || a.appId.localeCompare(b.appId));
|
|
58
70
|
},
|
|
59
71
|
});
|
|
60
|
-
/** Replaces the hosts a client callback may use, for example when an app gets a custom domain. */
|
|
61
|
-
export const setAllowedCallbackHosts = mutation({
|
|
62
|
-
args: { appId: string(), allowedCallbackHosts: array(string()) },
|
|
63
|
-
returns: v.null(),
|
|
64
|
-
handler: async (ctx, args) => {
|
|
65
|
-
const app = await ctx.db
|
|
66
|
-
.query("apps")
|
|
67
|
-
.withIndex("by_app_id", (q) => q.eq("appId", args.appId))
|
|
68
|
-
.unique();
|
|
69
|
-
if (app === null) {
|
|
70
|
-
throw new Error(`Unknown app "${args.appId}"`);
|
|
71
|
-
}
|
|
72
|
-
await ctx.db.patch("apps", app._id, { allowedCallbackHosts: args.allowedCallbackHosts });
|
|
73
|
-
return null;
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
72
|
async function removeRows(ctx, appId) {
|
|
77
|
-
const tokens = await ctx.db
|
|
78
|
-
.query("registrationTokens")
|
|
79
|
-
.withIndex("by_app_id", (q) => q.eq("appId", appId))
|
|
80
|
-
.take(BATCH);
|
|
81
|
-
for (const token of tokens) {
|
|
82
|
-
await ctx.db.delete("registrationTokens", token._id);
|
|
83
|
-
}
|
|
84
73
|
const clients = await ctx.db
|
|
85
74
|
.query("clients")
|
|
86
75
|
.withIndex("by_app_id", (q) => q.eq("appId", appId))
|
|
@@ -88,15 +77,14 @@ async function removeRows(ctx, appId) {
|
|
|
88
77
|
for (const client of clients) {
|
|
89
78
|
await ctx.db.delete("clients", client._id);
|
|
90
79
|
}
|
|
91
|
-
if (
|
|
80
|
+
if (clients.length === BATCH) {
|
|
92
81
|
await ctx.scheduler.runAfter(0, internal.apps.continueRemove, { appId });
|
|
93
82
|
}
|
|
94
83
|
}
|
|
95
84
|
/**
|
|
96
|
-
* Deletes an app with its
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* rows take to delete.
|
|
85
|
+
* Deletes an app with its clients. This is the emergency revocation. The app row goes first:
|
|
86
|
+
* /authorize and /token refuse a client whose app is gone, so this transaction revokes every client
|
|
87
|
+
* of the app, however many batches their rows take to delete.
|
|
100
88
|
*/
|
|
101
89
|
export const remove = mutation({
|
|
102
90
|
args: { appId: string() },
|