@yielded/auth 0.1.0-beta.2 → 0.1.0-beta.4
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/dist/DrizzleD1.d.mts +12 -12
- package/dist/DrizzleLibsql.d.mts +11 -11
- package/dist/DrizzleMysql2.d.mts +2 -2
- package/dist/DrizzlePglite.d.mts +2 -2
- package/dist/DrizzlePostgres.d.mts +14 -14
- package/dist/DrizzleSqliteBun.d.mts +6 -6
- package/dist/DrizzleSqliteDo.d.mts +11 -11
- package/dist/DrizzleSqliteNode.d.mts +2 -2
- package/dist/DrizzleSqliteWasm.d.mts +14 -14
- package/dist/GitHub.d.mts +2 -2
- package/dist/GitHub.mjs +2 -2
- package/dist/OpenIdClientConnected.d.mts +1 -1
- package/dist/drizzle/d1-oauth.d.mts +2 -2
- package/dist/oauth/github/protocol.d.mts +7 -3
- package/dist/oauth/github/protocol.mjs +24 -11
- package/dist/oauth/github/protocol.mjs.map +1 -1
- package/dist/oauth/openid-client/compatibility.d.mts +22 -1
- package/dist/oauth/openid-client/compatibility.mjs +6 -1
- package/dist/oauth/openid-client/compatibility.mjs.map +1 -1
- package/dist/oauth/openid-client/configuration.mjs +2 -0
- package/dist/oauth/openid-client/configuration.mjs.map +1 -1
- package/dist/oauth/openid-client/connected/protocol.d.mts +1 -1
- package/dist/oauth/openid-client/models.d.mts +3 -0
- package/dist/oauth/openid-client/models.mjs.map +1 -1
- package/dist/oauth/openid-client/protocol.d.mts +0 -1
- package/dist/oauth/openid-client/protocol.mjs +7 -7
- package/dist/oauth/openid-client/protocol.mjs.map +1 -1
- package/package.json +1 -1
- package/src/GitHub.ts +1 -0
- package/src/oauth/github/protocol.ts +30 -10
- package/src/oauth/openid-client/compatibility.ts +13 -0
- package/src/oauth/openid-client/configuration.ts +2 -0
- package/src/oauth/openid-client/models.ts +3 -0
- package/src/oauth/openid-client/protocol.ts +6 -22
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@yielded/auth","version":"0.1.0-beta.
|
|
1
|
+
{"name":"@yielded/auth","version":"0.1.0-beta.4","dependencies":{"@noble/ciphers":"2.1.1","@noble/hashes":"2.3.0"},"devDependencies":{"@cloudflare/workers-types":"5.20260825.1","@effect/platform-bun":"4.0.0-rc.112","@effect/platform-node":"4.0.0-rc.112","@effect/sql-d1":"4.0.0-rc.112","@effect/sql-libsql":"4.0.0-rc.112","@effect/sql-mysql2":"4.0.0-rc.112","@effect/sql-pg":"4.0.0-rc.112","@effect/sql-pglite":"4.0.0-rc.112","@effect/sql-sqlite-bun":"4.0.0-rc.112","@effect/sql-sqlite-do":"4.0.0-rc.112","@effect/sql-sqlite-node":"4.0.0-rc.112","@effect/sql-sqlite-wasm":"4.0.0-rc.112","@effect/vitest":"4.0.0-rc.112","@simplewebauthn/browser":"14.0.0","@simplewebauthn/server":"14.0.1","drizzle-orm":"1.0.0-rc.5-ab785fc","effect":"4.0.0-rc.112","effect-cf":"0.40.0","openid-client":"6.8.8","tldts":"7.4.11","typescript":"7.0.2","vite-plus":"0.3.0"},"peerDependencies":{"@effect/sql-d1":">=4.0.0-rc.112","@effect/sql-libsql":">=4.0.0-rc.112","@effect/sql-mysql2":">=4.0.0-rc.112","@effect/sql-pg":">=4.0.0-rc.112","@effect/sql-pglite":">=4.0.0-rc.112","@effect/sql-sqlite-bun":">=4.0.0-rc.112","@effect/sql-sqlite-do":">=4.0.0-rc.112","@effect/sql-sqlite-node":">=4.0.0-rc.112","@effect/sql-sqlite-wasm":">=4.0.0-rc.112","@simplewebauthn/browser":">=14.0.0 <15","@simplewebauthn/server":">=14.0.1 <15","drizzle-orm":">=1.0.0-rc.5-ab785fc","effect":"^4.0.0-rc.112","effect-cf":"^0.40.0","openid-client":">=6.8.8 <7","tldts":">=7.4.11 <8"},"exports":{".":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"./Auth":{"types":"./dist/Auth.d.mts","default":"./dist/Auth.mjs"},"./Drizzle":{"types":"./dist/Drizzle.d.mts","default":"./dist/Drizzle.mjs"},"./DrizzleD1":{"types":"./dist/DrizzleD1.d.mts","default":"./dist/DrizzleD1.mjs"},"./DrizzleLibsql":{"types":"./dist/DrizzleLibsql.d.mts","default":"./dist/DrizzleLibsql.mjs"},"./DrizzleMysql2":{"types":"./dist/DrizzleMysql2.d.mts","default":"./dist/DrizzleMysql2.mjs"},"./DrizzlePglite":{"types":"./dist/DrizzlePglite.d.mts","default":"./dist/DrizzlePglite.mjs"},"./DrizzlePostgres":{"types":"./dist/DrizzlePostgres.d.mts","default":"./dist/DrizzlePostgres.mjs"},"./DrizzleSqliteBun":{"types":"./dist/DrizzleSqliteBun.d.mts","default":"./dist/DrizzleSqliteBun.mjs"},"./DrizzleSqliteDo":{"types":"./dist/DrizzleSqliteDo.d.mts","default":"./dist/DrizzleSqliteDo.mjs"},"./DrizzleSqliteNode":{"types":"./dist/DrizzleSqliteNode.d.mts","default":"./dist/DrizzleSqliteNode.mjs"},"./DrizzleSqliteWasm":{"types":"./dist/DrizzleSqliteWasm.d.mts","default":"./dist/DrizzleSqliteWasm.mjs"},"./Cloudflare":{"types":"./dist/Cloudflare.d.mts","default":"./dist/Cloudflare.mjs"},"./Http":{"types":"./dist/Http.d.mts","default":"./dist/Http.mjs"},"./HttpServer":{"types":"./dist/HttpServer.d.mts","default":"./dist/HttpServer.mjs"},"./OperationHttp":{"types":"./dist/OperationHttp.d.mts","default":"./dist/OperationHttp.mjs"},"./OperationHttpClient":{"types":"./dist/OperationHttpClient.d.mts","default":"./dist/OperationHttpClient.mjs"},"./OperationHttpServer":{"types":"./dist/OperationHttpServer.d.mts","default":"./dist/OperationHttpServer.mjs"},"./Atom":{"types":"./dist/Atom.d.mts","default":"./dist/Atom.mjs"},"./Hooks":{"types":"./dist/Hooks.d.mts","default":"./dist/Hooks.mjs"},"./Identity":{"types":"./dist/Identity.d.mts","default":"./dist/Identity.mjs"},"./OAuth":{"types":"./dist/OAuth.d.mts","default":"./dist/OAuth.mjs"},"./Operations":{"types":"./dist/Operations.d.mts","default":"./dist/Operations.mjs"},"./Rpc":{"types":"./dist/Rpc.d.mts","default":"./dist/Rpc.mjs"},"./Schema":{"types":"./dist/Schema.d.mts","default":"./dist/Schema.mjs"},"./Testing":{"types":"./dist/Testing.d.mts","default":"./dist/Testing.mjs"},"./WebCrypto":{"types":"./dist/WebCrypto.d.mts","default":"./dist/WebCrypto.mjs"},"./Sessions":{"types":"./dist/Sessions.d.mts","default":"./dist/Sessions.mjs"},"./SessionContract":{"types":"./dist/SessionContract.d.mts","default":"./dist/SessionContract.mjs"},"./Proofs":{"types":"./dist/Proofs.d.mts","default":"./dist/Proofs.mjs"},"./Password":{"types":"./dist/Password.d.mts","default":"./dist/Password.mjs"},"./Email":{"types":"./dist/Email.d.mts","default":"./dist/Email.mjs"},"./OpenIdClient":{"types":"./dist/OpenIdClient.d.mts","default":"./dist/OpenIdClient.mjs"},"./OpenIdClientConnected":{"types":"./dist/OpenIdClientConnected.d.mts","default":"./dist/OpenIdClientConnected.mjs"},"./Passkey":{"types":"./dist/Passkey.d.mts","default":"./dist/Passkey.mjs"},"./PasskeyPassword":{"types":"./dist/PasskeyPassword.d.mts","default":"./dist/PasskeyPassword.mjs"},"./PasskeySimpleWebAuthn":{"types":"./dist/PasskeySimpleWebAuthn.d.mts","default":"./dist/PasskeySimpleWebAuthn.mjs"},"./PasskeyBrowser":{"types":"./dist/PasskeyBrowser.d.mts","default":"./dist/PasskeyBrowser.mjs"},"./GitHub":{"types":"./dist/GitHub.d.mts","default":"./dist/GitHub.mjs"},"./AuthSession":{"types":"./dist/AuthSession.d.mts","default":"./dist/AuthSession.mjs"},"./Errors":{"types":"./dist/Errors.d.mts","default":"./dist/Errors.mjs"},"./Workflows":{"types":"./dist/Workflows.d.mts","default":"./dist/Workflows.mjs"},"./PasswordHasher":{"types":"./dist/PasswordHasher.d.mts","default":"./dist/PasswordHasher.mjs"},"./EmailOtp":{"types":"./dist/EmailOtp.d.mts","default":"./dist/EmailOtp.mjs"},"./AuthStore":{"types":"./dist/AuthStore.d.mts","default":"./dist/AuthStore.mjs"},"./PasswordAuth":{"types":"./dist/PasswordAuth.d.mts","default":"./dist/PasswordAuth.mjs"},"./Policy":{"types":"./dist/Policy.d.mts","default":"./dist/Policy.mjs"},"./EmailOtpSender":{"types":"./dist/EmailOtpSender.d.mts","default":"./dist/EmailOtpSender.mjs"},"./AuthTokenCodec":{"types":"./dist/AuthTokenCodec.d.mts","default":"./dist/AuthTokenCodec.mjs"},"./IdentityResolver":{"types":"./dist/IdentityResolver.d.mts","default":"./dist/IdentityResolver.mjs"},"./PasswordCredentialStore":{"types":"./dist/PasswordCredentialStore.d.mts","default":"./dist/PasswordCredentialStore.mjs"},"./PhoneOtp":{"types":"./dist/PhoneOtp.d.mts","default":"./dist/PhoneOtp.mjs"},"./Totp":{"types":"./dist/Totp.d.mts","default":"./dist/Totp.mjs"},"./PasskeyContract":{"types":"./dist/PasskeyContract.d.mts","default":"./dist/PasskeyContract.mjs"},"./TotpContract":{"types":"./dist/TotpContract.d.mts","default":"./dist/TotpContract.mjs"},"./AuthContract":{"types":"./dist/AuthContract.d.mts","default":"./dist/AuthContract.mjs"},"./Client":{"types":"./dist/Client.d.mts","default":"./dist/Client.mjs"}},"description":"Composable authentication, sessions, and identity workflows for Effect.","keywords":["authentication","effect","oauth","passkeys","sessions","typescript"],"homepage":"https://yielded.dev/auth/","bugs":{"url":"https://github.com/yielded-dev/auth/issues"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/yielded-dev/auth.git","directory":"packages/effect-auth"},"files":["dist","src"],"type":"module","sideEffects":[],"publishConfig":{"access":"public"},"scripts":{"build":"vp pack","check":"tsc --noEmit -p tsconfig.json","test":"vp test --passWithNoTests","e2e":"bun test/e2e/harness.ts","example:totp":"bun test/fixtures/totp-sqlite-bun.ts"},"peerDependenciesMeta":{"@effect/sql-d1":{"optional":true},"@effect/sql-libsql":{"optional":true},"@effect/sql-mysql2":{"optional":true},"@effect/sql-pg":{"optional":true},"@effect/sql-pglite":{"optional":true},"@effect/sql-sqlite-bun":{"optional":true},"@effect/sql-sqlite-do":{"optional":true},"@effect/sql-sqlite-node":{"optional":true},"@effect/sql-sqlite-wasm":{"optional":true},"@simplewebauthn/browser":{"optional":true},"@simplewebauthn/server":{"optional":true},"drizzle-orm":{"optional":true},"effect-cf":{"optional":true},"openid-client":{"optional":true},"tldts":{"optional":true}}}
|
package/src/GitHub.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { OpenIdClientConfigurationError } from "./oauth/openid-client/models";
|
|
|
9
9
|
export {
|
|
10
10
|
gitHubOAuthAppConnectedProtocolLayer,
|
|
11
11
|
gitHubOAuthAppProtocolLayer,
|
|
12
|
+
gitHubOAuthAppProvider,
|
|
12
13
|
makeGitHubOAuthAppConnectedProtocol,
|
|
13
14
|
makeGitHubOAuthAppProtocol,
|
|
14
15
|
} from "./oauth/github/protocol";
|
|
@@ -6,6 +6,7 @@ import { OAuthConnectedProtocol } from "../OAuthConnectedProtocol";
|
|
|
6
6
|
import { OAuthProtocol } from "../OAuthProtocol";
|
|
7
7
|
import {
|
|
8
8
|
DefiniteTokenRejection,
|
|
9
|
+
tokenCompatibility,
|
|
9
10
|
type ConnectedCompatibility,
|
|
10
11
|
} from "../openid-client/compatibility";
|
|
11
12
|
import { makeConnectedProtocolWithCompatibility } from "../openid-client/connected/protocol";
|
|
@@ -13,7 +14,7 @@ import {
|
|
|
13
14
|
OpenIdClientConfigurationError,
|
|
14
15
|
type OpenIdClientOAuthProvider,
|
|
15
16
|
} from "../openid-client/models";
|
|
16
|
-
import {
|
|
17
|
+
import { makeOpenIdClientOAuthProtocol } from "../openid-client/protocol";
|
|
17
18
|
import { ProviderRevocation } from "../openid-client/ProviderRevocation";
|
|
18
19
|
import { boundedFetch } from "../openid-client/transport";
|
|
19
20
|
import { OAuthUnavailable } from "../signInErrors";
|
|
@@ -28,7 +29,8 @@ import type {
|
|
|
28
29
|
|
|
29
30
|
const unavailable = () => OAuthUnavailable.make({});
|
|
30
31
|
const invalid = () => OpenIdClientConfigurationError.make({ reason: "provider" });
|
|
31
|
-
|
|
32
|
+
// GitHub's OAuth authorization server issuer, including its RFC 9207 callback value.
|
|
33
|
+
const issuer = OAuthIssuer.make("https://github.com/login/oauth");
|
|
32
34
|
|
|
33
35
|
const headers = Object.freeze({
|
|
34
36
|
Accept: "application/vnd.github+json",
|
|
@@ -91,7 +93,7 @@ const provider = (
|
|
|
91
93
|
issuance: registration.issuance,
|
|
92
94
|
issuer,
|
|
93
95
|
protocol: "oauth",
|
|
94
|
-
responseIssuerMode: "
|
|
96
|
+
responseIssuerMode: "required",
|
|
95
97
|
clientId: registration.clientId,
|
|
96
98
|
authentication: { method: "client_secret_post", secret: registration.clientSecret },
|
|
97
99
|
callbacks: registration.callbacks,
|
|
@@ -265,6 +267,27 @@ const revocationLayer = (
|
|
|
265
267
|
);
|
|
266
268
|
};
|
|
267
269
|
|
|
270
|
+
/** A GitHub.com OAuth App generation for the same provider list as generic OIDC.
|
|
271
|
+
* Retains GitHub receipt/error rules and requests read:user, with no repository access.
|
|
272
|
+
* Construction performs no I/O; invalid configuration throws the typed configuration error. */
|
|
273
|
+
export const gitHubOAuthAppProvider = (
|
|
274
|
+
registration: GitHubOAuthAppGeneration,
|
|
275
|
+
): OpenIdClientOAuthProvider => {
|
|
276
|
+
let saved: GitHubOAuthAppGeneration;
|
|
277
|
+
|
|
278
|
+
try {
|
|
279
|
+
saved = snapshotOAuthSync(generation, registration);
|
|
280
|
+
} catch {
|
|
281
|
+
throw invalid();
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return {
|
|
285
|
+
...provider(saved),
|
|
286
|
+
scopes: ["read:user"],
|
|
287
|
+
[tokenCompatibility]: compatibility,
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
|
|
268
291
|
export const makeGitHubOAuthAppProtocol = Effect.fn("makeGitHubOAuthAppProtocol")(function* (
|
|
269
292
|
options: GitHubOAuthAppProtocolOptions,
|
|
270
293
|
) {
|
|
@@ -273,13 +296,10 @@ export const makeGitHubOAuthAppProtocol = Effect.fn("makeGitHubOAuthAppProtocol"
|
|
|
273
296
|
if (saved.registrations.filter((item) => item.issuance === "active").length !== 1)
|
|
274
297
|
return yield* invalid();
|
|
275
298
|
|
|
276
|
-
return yield*
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
},
|
|
281
|
-
compatibility,
|
|
282
|
-
);
|
|
299
|
+
return yield* makeOpenIdClientOAuthProtocol({
|
|
300
|
+
...saved,
|
|
301
|
+
providers: saved.registrations.map(gitHubOAuthAppProvider),
|
|
302
|
+
});
|
|
283
303
|
});
|
|
284
304
|
|
|
285
305
|
export const makeGitHubOAuthAppConnectedProtocol = Effect.fn("makeGitHubOAuthAppConnectedProtocol")(
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Predicate, Schema } from "effect";
|
|
2
|
+
|
|
1
3
|
import type {
|
|
2
4
|
OpenIdClientConnectedOAuthProvider,
|
|
3
5
|
OpenIdClientConnectedProtocolOptions,
|
|
@@ -19,6 +21,17 @@ export interface TokenCompatibility {
|
|
|
19
21
|
) => void;
|
|
20
22
|
}
|
|
21
23
|
|
|
24
|
+
/** First-party rules travel with the exact provider generation. The symbol stays
|
|
25
|
+
* private so generic provider options do not expose grant-bearing hooks. */
|
|
26
|
+
export const tokenCompatibility = Symbol("effect-auth/OpenIdClient/tokenCompatibility");
|
|
27
|
+
|
|
28
|
+
export const TokenCompatibility = Schema.declare<TokenCompatibility>(
|
|
29
|
+
(input): input is TokenCompatibility =>
|
|
30
|
+
Predicate.isObject(input) &&
|
|
31
|
+
"inspectReceipt" in input &&
|
|
32
|
+
Predicate.isFunction(input.inspectReceipt),
|
|
33
|
+
);
|
|
34
|
+
|
|
22
35
|
export class DefiniteTokenRejection extends Error {}
|
|
23
36
|
|
|
24
37
|
export interface ConnectedCompatibility extends TokenCompatibility {
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
OAuthRedirectUri,
|
|
12
12
|
} from "../signInModels";
|
|
13
13
|
import { freezeOAuth } from "../signInSnapshot";
|
|
14
|
+
import { TokenCompatibility, tokenCompatibility } from "./compatibility";
|
|
14
15
|
import {
|
|
15
16
|
OpenIdClientConfigurationError,
|
|
16
17
|
type OpenIdClientAuthentication,
|
|
@@ -70,6 +71,7 @@ const optionsSchema = <R>() =>
|
|
|
70
71
|
Schema.Struct({
|
|
71
72
|
...common,
|
|
72
73
|
protocol: Schema.Literal("oauth"),
|
|
74
|
+
[tokenCompatibility]: Schema.optionalKey(TokenCompatibility),
|
|
73
75
|
authorizationEndpoint: boundedString(2048),
|
|
74
76
|
tokenEndpoint: boundedString(2048),
|
|
75
77
|
pkceS256: Schema.Literal(true),
|
|
@@ -3,6 +3,7 @@ import type { CustomFetch } from "openid-client";
|
|
|
3
3
|
|
|
4
4
|
import type { OAuthProtocolRejected } from "../signInErrors";
|
|
5
5
|
import type { OAuthProtocolConfiguration, OAuthVerifiedExternalIdentity } from "../signInModels";
|
|
6
|
+
import type { TokenCompatibility, tokenCompatibility } from "./compatibility";
|
|
6
7
|
|
|
7
8
|
export class OpenIdClientConfigurationError extends Schema.TaggedError<OpenIdClientConfigurationError>()(
|
|
8
9
|
"OpenIdClientConfigurationError",
|
|
@@ -55,6 +56,8 @@ export interface OpenIdClientOidcProvider extends ProviderGeneration {
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
export interface OpenIdClientOAuthProvider<R = never> extends ProviderGeneration {
|
|
59
|
+
/** @internal First-party provider behavior, retained by the configuration codec. */
|
|
60
|
+
readonly [tokenCompatibility]?: TokenCompatibility;
|
|
58
61
|
readonly protocol: "oauth";
|
|
59
62
|
readonly authorizationEndpoint: string;
|
|
60
63
|
readonly tokenEndpoint: string;
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
OAuthVerifiedExternalIdentity,
|
|
17
17
|
} from "../signInModels";
|
|
18
18
|
import { snapshotOAuth } from "../signInSnapshot";
|
|
19
|
-
import { DefiniteTokenRejection,
|
|
19
|
+
import { DefiniteTokenRejection, tokenCompatibility } from "./compatibility";
|
|
20
20
|
import {
|
|
21
21
|
clientAuthentication,
|
|
22
22
|
installConfigurations,
|
|
@@ -110,9 +110,9 @@ const privateConfiguration = <R>(
|
|
|
110
110
|
timeout: number,
|
|
111
111
|
fetch: client.CustomFetch,
|
|
112
112
|
signal: AbortSignal,
|
|
113
|
-
compatibility?: TokenCompatibility,
|
|
114
113
|
) => {
|
|
115
114
|
const provider = entry.provider;
|
|
115
|
+
const compatibility = provider.protocol === "oauth" ? provider[tokenCompatibility] : undefined;
|
|
116
116
|
|
|
117
117
|
const configuration = new client.Configuration(
|
|
118
118
|
entry.metadata,
|
|
@@ -158,10 +158,10 @@ const privateConfiguration = <R>(
|
|
|
158
158
|
return configuration;
|
|
159
159
|
};
|
|
160
160
|
|
|
161
|
-
export const
|
|
161
|
+
export const makeOpenIdClientOAuthProtocol = Effect.fn("makeOpenIdClientOAuthProtocol")(
|
|
162
|
+
// Capture one provider table; each generation retains its own receipt rules.
|
|
162
163
|
function* <R = never>(
|
|
163
164
|
options: OpenIdClientOAuthProtocolOptions<R>,
|
|
164
|
-
compatibility?: TokenCompatibility,
|
|
165
165
|
): Effect.fn.Return<
|
|
166
166
|
OAuthProtocol["Service"],
|
|
167
167
|
OpenIdClientConfigurationError | OAuthUnavailable,
|
|
@@ -192,13 +192,7 @@ export const makeOAuthProtocolWithCompatibility = Effect.fn("makeOpenIdClientOAu
|
|
|
192
192
|
|
|
193
193
|
const result = yield* Effect.tryPromise({
|
|
194
194
|
try: async (signal) => {
|
|
195
|
-
const configuration = privateConfiguration(
|
|
196
|
-
entry,
|
|
197
|
-
timeoutSeconds,
|
|
198
|
-
fetch,
|
|
199
|
-
signal,
|
|
200
|
-
compatibility,
|
|
201
|
-
);
|
|
195
|
+
const configuration = privateConfiguration(entry, timeoutSeconds, fetch, signal);
|
|
202
196
|
|
|
203
197
|
const state = client.randomState();
|
|
204
198
|
const verifier = client.randomPKCECodeVerifier();
|
|
@@ -281,13 +275,7 @@ export const makeOAuthProtocolWithCompatibility = Effect.fn("makeOpenIdClientOAu
|
|
|
281
275
|
|
|
282
276
|
const exchanged = yield* Effect.tryPromise({
|
|
283
277
|
try: async (signal) => {
|
|
284
|
-
const configuration = privateConfiguration(
|
|
285
|
-
entry,
|
|
286
|
-
timeoutSeconds,
|
|
287
|
-
fetch,
|
|
288
|
-
signal,
|
|
289
|
-
compatibility,
|
|
290
|
-
);
|
|
278
|
+
const configuration = privateConfiguration(entry, timeoutSeconds, fetch, signal);
|
|
291
279
|
|
|
292
280
|
const currentUrl = new URL(saved.redirectUri);
|
|
293
281
|
|
|
@@ -428,10 +416,6 @@ export const makeOAuthProtocolWithCompatibility = Effect.fn("makeOpenIdClientOAu
|
|
|
428
416
|
unavailableOnDefect,
|
|
429
417
|
);
|
|
430
418
|
|
|
431
|
-
export const makeOpenIdClientOAuthProtocol = <R = never>(
|
|
432
|
-
options: OpenIdClientOAuthProtocolOptions<R>,
|
|
433
|
-
) => makeOAuthProtocolWithCompatibility(options);
|
|
434
|
-
|
|
435
419
|
export const openIdClientOAuthProtocolLayer = <R = never>(
|
|
436
420
|
options: OpenIdClientOAuthProtocolOptions<R>,
|
|
437
421
|
) => Layer.effect(OAuthProtocol, makeOpenIdClientOAuthProtocol(options));
|