@effect-auth/core 0.1.0-alpha.18 → 0.1.0-alpha.19

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.
Files changed (118) hide show
  1. package/README.md +4 -5
  2. package/dist/DevEmail.d.ts +44 -0
  3. package/dist/DevEmail.d.ts.map +1 -0
  4. package/dist/DevEmail.js +115 -0
  5. package/dist/DevEmail.js.map +1 -0
  6. package/dist/DevelopmentSeed.d.ts +47 -0
  7. package/dist/DevelopmentSeed.d.ts.map +1 -0
  8. package/dist/DevelopmentSeed.js +337 -0
  9. package/dist/DevelopmentSeed.js.map +1 -0
  10. package/dist/DrizzleBunSqliteStorage.d.ts +1 -1
  11. package/dist/DrizzleBunSqliteStorage.d.ts.map +1 -1
  12. package/dist/DrizzleD1SqliteStorage.d.ts +1 -1
  13. package/dist/DrizzleD1SqliteStorage.d.ts.map +1 -1
  14. package/dist/DrizzleEffectSqliteStorage.d.ts +1 -1
  15. package/dist/DrizzleEffectSqliteStorage.d.ts.map +1 -1
  16. package/dist/DrizzleNodeSqliteStorage.d.ts +1 -1
  17. package/dist/DrizzleNodeSqliteStorage.d.ts.map +1 -1
  18. package/dist/DrizzlePostgresStorage.d.ts +26 -0
  19. package/dist/DrizzlePostgresStorage.d.ts.map +1 -0
  20. package/dist/DrizzlePostgresStorage.js +14 -0
  21. package/dist/DrizzlePostgresStorage.js.map +1 -0
  22. package/dist/EffectQbPostgresStorage.d.ts +8 -1
  23. package/dist/EffectQbPostgresStorage.d.ts.map +1 -1
  24. package/dist/EffectQbPostgresStorage.js +359 -2
  25. package/dist/EffectQbPostgresStorage.js.map +1 -1
  26. package/dist/EffectQbSqliteStorage.d.ts +42 -2
  27. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  28. package/dist/EffectQbSqliteStorage.js +337 -1
  29. package/dist/EffectQbSqliteStorage.js.map +1 -1
  30. package/dist/HttpApi/Api.d.ts +151 -98
  31. package/dist/HttpApi/Api.d.ts.map +1 -1
  32. package/dist/HttpApi/Api.js +122 -72
  33. package/dist/HttpApi/Api.js.map +1 -1
  34. package/dist/HttpApi/ClientApi.d.ts +136 -136
  35. package/dist/HttpApi/Endpoints.d.ts +33 -1
  36. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  37. package/dist/HttpApi/Endpoints.js +31 -2
  38. package/dist/HttpApi/Endpoints.js.map +1 -1
  39. package/dist/HttpApi/Errors.d.ts +11 -3
  40. package/dist/HttpApi/Errors.d.ts.map +1 -1
  41. package/dist/HttpApi/Errors.js +16 -0
  42. package/dist/HttpApi/Errors.js.map +1 -1
  43. package/dist/HttpApi/Middleware.d.ts +12 -0
  44. package/dist/HttpApi/Middleware.d.ts.map +1 -1
  45. package/dist/HttpApi/Middleware.js +8 -0
  46. package/dist/HttpApi/Middleware.js.map +1 -1
  47. package/dist/HttpApi/OAuthDeviceAuthorization.d.ts +106 -0
  48. package/dist/HttpApi/OAuthDeviceAuthorization.d.ts.map +1 -0
  49. package/dist/HttpApi/OAuthDeviceAuthorization.js +415 -0
  50. package/dist/HttpApi/OAuthDeviceAuthorization.js.map +1 -0
  51. package/dist/HttpApi/OAuthToken.d.ts +1 -1
  52. package/dist/HttpApi/OAuthToken.d.ts.map +1 -1
  53. package/dist/HttpApi/OAuthToken.js +1 -1
  54. package/dist/HttpApi/OAuthToken.js.map +1 -1
  55. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.d.ts +23 -0
  56. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.d.ts.map +1 -0
  57. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.js +7 -0
  58. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.js.map +1 -0
  59. package/dist/HttpApi/Operations/OAuthToken.d.ts +10 -0
  60. package/dist/HttpApi/Operations/OAuthToken.d.ts.map +1 -1
  61. package/dist/HttpApi/Operations/OAuthToken.js +4 -0
  62. package/dist/HttpApi/Operations/OAuthToken.js.map +1 -1
  63. package/dist/HttpApi/Operations/index.d.ts +1 -0
  64. package/dist/HttpApi/Operations/index.d.ts.map +1 -1
  65. package/dist/HttpApi/Operations/index.js +1 -0
  66. package/dist/HttpApi/Operations/index.js.map +1 -1
  67. package/dist/HttpApi/PasswordContract.d.ts +9 -9
  68. package/dist/HttpApi/Schemas.d.ts +38 -0
  69. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  70. package/dist/HttpApi/Schemas.js +36 -1
  71. package/dist/HttpApi/Schemas.js.map +1 -1
  72. package/dist/HttpApi/index.d.ts +3 -1
  73. package/dist/HttpApi/index.d.ts.map +1 -1
  74. package/dist/HttpApi/index.js +3 -1
  75. package/dist/HttpApi/index.js.map +1 -1
  76. package/dist/OAuth.d.ts +46 -1
  77. package/dist/OAuth.d.ts.map +1 -1
  78. package/dist/OAuth.js +118 -4
  79. package/dist/OAuth.js.map +1 -1
  80. package/dist/OAuthDeviceAuthorization.d.ts +378 -0
  81. package/dist/OAuthDeviceAuthorization.d.ts.map +1 -0
  82. package/dist/OAuthDeviceAuthorization.js +860 -0
  83. package/dist/OAuthDeviceAuthorization.js.map +1 -0
  84. package/dist/OAuthDeviceClient.d.ts +76 -0
  85. package/dist/OAuthDeviceClient.d.ts.map +1 -0
  86. package/dist/OAuthDeviceClient.js +362 -0
  87. package/dist/OAuthDeviceClient.js.map +1 -0
  88. package/dist/PostgresStorageMigrations.d.ts +2 -1
  89. package/dist/PostgresStorageMigrations.d.ts.map +1 -1
  90. package/dist/PostgresStorageMigrations.js +54 -0
  91. package/dist/PostgresStorageMigrations.js.map +1 -1
  92. package/dist/Retention.d.ts +6 -1
  93. package/dist/Retention.d.ts.map +1 -1
  94. package/dist/Retention.js +49 -12
  95. package/dist/Retention.js.map +1 -1
  96. package/dist/SqliteStorageSchemaData.d.ts +2 -0
  97. package/dist/SqliteStorageSchemaData.d.ts.map +1 -0
  98. package/dist/SqliteStorageSchemaData.js +508 -0
  99. package/dist/SqliteStorageSchemaData.js.map +1 -0
  100. package/dist/StorageMigrations.d.ts +2 -1
  101. package/dist/StorageMigrations.d.ts.map +1 -1
  102. package/dist/StorageMigrations.js +32 -0
  103. package/dist/StorageMigrations.js.map +1 -1
  104. package/dist/StorageSchemaGenerator.d.ts +70 -12
  105. package/dist/StorageSchemaGenerator.d.ts.map +1 -1
  106. package/dist/StorageSchemaGenerator.js +478 -82
  107. package/dist/StorageSchemaGenerator.js.map +1 -1
  108. package/migrations/0029_auth_oauth_device_authorization.sql +28 -0
  109. package/migrations/postgres/0010_auth_oauth_device_authorization.sql +50 -0
  110. package/package.json +24 -16
  111. package/dist/DrizzleDurableObjectSqliteStorage.d.ts +0 -19
  112. package/dist/DrizzleDurableObjectSqliteStorage.d.ts.map +0 -1
  113. package/dist/DrizzleDurableObjectSqliteStorage.js +0 -14
  114. package/dist/DrizzleDurableObjectSqliteStorage.js.map +0 -1
  115. package/dist/DrizzleWasmSqliteStorage.d.ts +0 -23
  116. package/dist/DrizzleWasmSqliteStorage.d.ts.map +0 -1
  117. package/dist/DrizzleWasmSqliteStorage.js +0 -15
  118. package/dist/DrizzleWasmSqliteStorage.js.map +0 -1
@@ -0,0 +1,415 @@
1
+ import { Context, Effect, Encoding, Layer, Option, Redacted, Result, } from "effect";
2
+ import { HttpClient, HttpServerRequest, HttpServerResponse, } from "effect/unstable/http";
3
+ import { HttpApi, HttpApiBuilder, HttpApiClient, HttpApiGroup, } from "effect/unstable/httpapi";
4
+ import { OAuthClientId as makeOAuthClientId } from "../Identifiers.js";
5
+ import { OAuthClientRegistry, OAuthClientSecretVerification, } from "../OAuth.js";
6
+ import { normalizeOAuthDeviceUserCode, OAuthDeviceAuthorization, OAuthDeviceAuthorizationId, OAuthDeviceAuthorizationStore, } from "../OAuthDeviceAuthorization.js";
7
+ import { SessionCookie, Sessions } from "../Sessions.js";
8
+ import { oauthDeviceAuthorizationApproveEndpoint, oauthDeviceAuthorizationDenyEndpoint, oauthDeviceAuthorizationEndpoint, oauthDeviceAuthorizationInspectEndpoint, } from "./Endpoints.js";
9
+ import { AuthBadRequestError, AuthConflictError, AuthInternalError, AuthPolicyDeniedError, AuthRateLimitedError, AuthRequestRejectedError, AuthSchemaErrorMiddleware, AuthSchemaErrorMiddlewareLive, AuthStepUpRequiredError, OAuthDeviceAuthorizationEndpointError, } from "./Errors.js";
10
+ import { AuthOriginCheckMiddleware, OAuthNoStoreMiddleware, OAuthNoStoreMiddlewareLive, } from "./Middleware.js";
11
+ import { OAuthDeviceApprovalHttpOperations, OAuthDeviceAuthorizationHttpOperations, } from "./Operations/OAuthDeviceAuthorization.js";
12
+ import { OAuthDeviceAuthorizationApproveBody, OAuthDeviceAuthorizationDenyBody, OAuthDeviceAuthorizationInspectBody, OAuthDeviceAuthorizationResponseBody, OAuthDeviceAuthorizationSafeHttpBody, } from "./Schemas.js";
13
+ import { readRequiredSession } from "./SessionGuards.js";
14
+ export { oauthDeviceAuthorizationApproveEndpoint, oauthDeviceAuthorizationDenyEndpoint, oauthDeviceAuthorizationEndpoint, oauthDeviceAuthorizationInspectEndpoint, } from "./Endpoints.js";
15
+ export * from "./Operations/OAuthDeviceAuthorization.js";
16
+ export class OAuthDeviceApprovalPolicy extends Context.Service()("auth/http/policy/OAuthDeviceApproval") {
17
+ }
18
+ export const OAuthDeviceApprovalPolicyAllowLive = Layer.succeed(OAuthDeviceApprovalPolicy)(OAuthDeviceApprovalPolicy.of({
19
+ authorize: () => Effect.void,
20
+ inspectAttempt: () => Effect.void,
21
+ }));
22
+ export class OAuthDeviceAuthorizationHttpConfig extends Context.Service()("auth/http/config/OAuthDeviceAuthorization", {
23
+ make: (config) => parseVerificationUri(config.verificationUri, config.allowInsecureHttp === true).pipe(Effect.map((verificationUri) => ({
24
+ ...config,
25
+ verificationUri: verificationUri.toString(),
26
+ }))),
27
+ }) {
28
+ }
29
+ export const OAuthDeviceAuthorizationHttpConfigLive = (config) => Layer.effect(OAuthDeviceAuthorizationHttpConfig, OAuthDeviceAuthorizationHttpConfig.make(config));
30
+ const deviceAuthorizationError = (error, errorDescription) => new OAuthDeviceAuthorizationEndpointError({
31
+ error,
32
+ ...(errorDescription === undefined ? {} : { errorDescription }),
33
+ });
34
+ const deviceAuthorizationInternalError = () => deviceAuthorizationError("server_error", "Device authorization failed");
35
+ const nonEmpty = (value) => {
36
+ const trimmed = value?.trim();
37
+ return trimmed === undefined || trimmed === "" ? undefined : trimmed;
38
+ };
39
+ const decodeFormComponent = (value) => {
40
+ try {
41
+ return new URLSearchParams(`value=${value}`).get("value") ?? value;
42
+ }
43
+ catch {
44
+ return value;
45
+ }
46
+ };
47
+ const decodeBasicAuthentication = (request) => {
48
+ const { authorization } = request.headers;
49
+ if (authorization === undefined || authorization.trim() === "") {
50
+ return Effect.succeed(Option.none());
51
+ }
52
+ if (!authorization.toLowerCase().startsWith("basic ")) {
53
+ return Effect.fail(deviceAuthorizationError("invalid_client"));
54
+ }
55
+ const encoded = authorization.slice("Basic ".length).trim();
56
+ if (encoded === "") {
57
+ return Effect.fail(deviceAuthorizationError("invalid_client"));
58
+ }
59
+ return Result.match(Encoding.decodeBase64(encoded), {
60
+ onFailure: () => Effect.fail(deviceAuthorizationError("invalid_client")),
61
+ onSuccess: (bytes) => {
62
+ const decoded = new TextDecoder().decode(bytes);
63
+ const separator = decoded.indexOf(":");
64
+ const clientId = nonEmpty(separator === -1
65
+ ? undefined
66
+ : decodeFormComponent(decoded.slice(0, separator)));
67
+ const clientSecret = separator === -1
68
+ ? ""
69
+ : decodeFormComponent(decoded.slice(separator + 1));
70
+ return separator <= 0 || clientId === undefined || clientSecret === ""
71
+ ? Effect.fail(deviceAuthorizationError("invalid_client"))
72
+ : Effect.succeed(Option.some({
73
+ clientId: makeOAuthClientId(clientId),
74
+ method: "client_secret_basic",
75
+ clientSecret: Redacted.make(clientSecret),
76
+ }));
77
+ },
78
+ });
79
+ };
80
+ const parseDeviceAuthorizationBody = (request) => Effect.gen(function* () {
81
+ const contentType = request.headers["content-type"]?.toLowerCase() ?? "";
82
+ const [mediaType, ...parameters] = contentType
83
+ .split(";")
84
+ .map((part) => part.trim());
85
+ const charset = parameters
86
+ .map((parameter) => parameter.split("=", 2))
87
+ .find(([name]) => name === "charset")?.[1]
88
+ ?.replaceAll('"', "");
89
+ if (mediaType !== "application/x-www-form-urlencoded" ||
90
+ (charset !== undefined && charset !== "utf-8")) {
91
+ return yield* deviceAuthorizationError("invalid_request");
92
+ }
93
+ const text = yield* request.text.pipe(Effect.mapError(() => deviceAuthorizationError("invalid_request")));
94
+ const params = new URLSearchParams(text);
95
+ const recognized = ["client_id", "client_secret", "scope"];
96
+ for (const name of recognized) {
97
+ if (params.getAll(name).length > 1) {
98
+ return yield* deviceAuthorizationError("invalid_request");
99
+ }
100
+ }
101
+ const clientId = nonEmpty(params.get("client_id") ?? undefined);
102
+ const clientSecret = nonEmpty(params.get("client_secret") ?? undefined);
103
+ const scope = nonEmpty(params.get("scope") ?? undefined);
104
+ return {
105
+ ...(clientId === undefined ? {} : { client_id: clientId }),
106
+ ...(clientSecret === undefined ? {} : { client_secret: clientSecret }),
107
+ ...(scope === undefined ? {} : { scope }),
108
+ };
109
+ });
110
+ const authenticateDeviceClient = (input) => Effect.gen(function* () {
111
+ const basic = yield* decodeBasicAuthentication(input.request);
112
+ const post = input.payload.client_secret === undefined ||
113
+ input.payload.client_id === undefined
114
+ ? undefined
115
+ : {
116
+ clientId: makeOAuthClientId(input.payload.client_id),
117
+ method: "client_secret_post",
118
+ clientSecret: Redacted.make(input.payload.client_secret),
119
+ };
120
+ if (Option.isSome(basic) && input.payload.client_secret !== undefined) {
121
+ return yield* deviceAuthorizationError("invalid_request");
122
+ }
123
+ if (input.payload.client_secret !== undefined && post === undefined) {
124
+ return yield* deviceAuthorizationError("invalid_request");
125
+ }
126
+ const authentication = Option.isSome(basic) ? basic.value : post;
127
+ if (authentication !== undefined &&
128
+ input.payload.client_id !== undefined &&
129
+ authentication.clientId !== input.payload.client_id) {
130
+ return yield* deviceAuthorizationError("invalid_request");
131
+ }
132
+ if (authentication === undefined) {
133
+ return {
134
+ ...(input.payload.client_id === undefined
135
+ ? {}
136
+ : { clientId: makeOAuthClientId(input.payload.client_id) }),
137
+ clientAuthenticated: false,
138
+ };
139
+ }
140
+ if (Option.isNone(input.clientSecretVerification)) {
141
+ return yield* deviceAuthorizationError("invalid_client");
142
+ }
143
+ const authenticated = yield* input.clientSecretVerification.value
144
+ .authenticateClient(authentication)
145
+ .pipe(Effect.mapError(deviceAuthorizationInternalError));
146
+ if (!authenticated) {
147
+ return yield* deviceAuthorizationError("invalid_client");
148
+ }
149
+ return { clientId: authentication.clientId, clientAuthenticated: true };
150
+ });
151
+ const loadClient = (clients, clientId) => clients.find({ clientId }).pipe(Effect.mapError(() => new AuthInternalError({
152
+ code: "internal_error",
153
+ message: "Failed to load OAuth client",
154
+ })), Effect.flatMap((client) => Option.isSome(client)
155
+ ? Effect.succeed(client.value)
156
+ : Effect.fail(new AuthInternalError({
157
+ code: "internal_error",
158
+ message: "Failed to load OAuth client",
159
+ }))));
160
+ const safeAuthorization = (authorization, client) => ({
161
+ authorizationId: authorization.id,
162
+ client: {
163
+ id: client.id,
164
+ ...(client.name === undefined ? {} : { name: client.name }),
165
+ },
166
+ requestedScopes: [...authorization.requestedScopes],
167
+ expiresAt: authorization.expiresAt,
168
+ });
169
+ const safeAuthorizationFromRecord = (authorization, client) => ({
170
+ authorizationId: authorization.id,
171
+ client: {
172
+ id: client.id,
173
+ ...(client.name === undefined ? {} : { name: client.name }),
174
+ },
175
+ requestedScopes: [...authorization.requestedScopes],
176
+ expiresAt: authorization.expiresAt,
177
+ });
178
+ const browserInternalError = (message) => new AuthInternalError({ code: "internal_error", message });
179
+ const browserBadRequest = (message) => new AuthBadRequestError({ code: "bad_request", message });
180
+ const parseVerificationUri = (value, allowInsecureHttp) => Effect.try({
181
+ try: () => {
182
+ const url = new URL(value);
183
+ const isLoopback = url.hostname === "localhost" ||
184
+ url.hostname === "127.0.0.1" ||
185
+ url.hostname === "[::1]";
186
+ if ((url.protocol !== "https:" &&
187
+ !(allowInsecureHttp && url.protocol === "http:" && isLoopback)) ||
188
+ url.username !== "" ||
189
+ url.password !== "" ||
190
+ url.hash !== "") {
191
+ throw new Error("Unsafe OAuth device verification URI");
192
+ }
193
+ return url;
194
+ },
195
+ catch: deviceAuthorizationInternalError,
196
+ });
197
+ const loadDecisionAuthorization = (dependencies) => Effect.gen(function* () {
198
+ const record = yield* dependencies.store
199
+ .findById(OAuthDeviceAuthorizationId(dependencies.authorizationId))
200
+ .pipe(Effect.mapError(() => browserInternalError("Failed to load device authorization")));
201
+ if (Option.isNone(record)) {
202
+ return yield* browserBadRequest("Invalid device authorization");
203
+ }
204
+ if (record.value.status !== "pending") {
205
+ return yield* new AuthConflictError({
206
+ code: "conflict",
207
+ message: "Device authorization was already decided",
208
+ });
209
+ }
210
+ const client = yield* loadClient(dependencies.clients, record.value.clientId);
211
+ return safeAuthorizationFromRecord(record.value, client);
212
+ });
213
+ const decisionError = (reason) => {
214
+ switch (reason) {
215
+ case "already_decided": {
216
+ return new AuthConflictError({
217
+ code: "conflict",
218
+ message: "Device authorization was already decided",
219
+ });
220
+ }
221
+ case "invalid_scope": {
222
+ return browserBadRequest("Invalid device authorization scope");
223
+ }
224
+ case "expired_token": {
225
+ return browserBadRequest("Device authorization expired");
226
+ }
227
+ default: {
228
+ return browserBadRequest("Invalid device authorization");
229
+ }
230
+ }
231
+ };
232
+ const OAuthDeviceAuthorizationStartOperation = Effect.gen(function* () {
233
+ const authorization = yield* OAuthDeviceAuthorization;
234
+ const clients = yield* OAuthClientRegistry;
235
+ const clientSecretVerification = yield* Effect.serviceOption(OAuthClientSecretVerification);
236
+ const config = yield* OAuthDeviceAuthorizationHttpConfig;
237
+ return Effect.fn("auth.http.oauth.device_authorization.start")(function* ({ request, }) {
238
+ yield* Effect.annotateCurrentSpan("auth.http.endpoint", "oauth.device_authorization.start");
239
+ const payload = yield* parseDeviceAuthorizationBody(request);
240
+ const authenticated = yield* authenticateDeviceClient({
241
+ request,
242
+ payload,
243
+ clientSecretVerification,
244
+ });
245
+ if (authenticated.clientId === undefined) {
246
+ return yield* deviceAuthorizationError("invalid_request");
247
+ }
248
+ const clientOption = yield* clients
249
+ .find({ clientId: authenticated.clientId })
250
+ .pipe(Effect.mapError(deviceAuthorizationInternalError));
251
+ if (Option.isNone(clientOption) || clientOption.value.status !== "active") {
252
+ return yield* deviceAuthorizationError("invalid_client");
253
+ }
254
+ if (clientOption.value.type === "confidential" &&
255
+ !authenticated.clientAuthenticated) {
256
+ return yield* deviceAuthorizationError("invalid_client");
257
+ }
258
+ const result = yield* authorization
259
+ .start({
260
+ clientId: authenticated.clientId,
261
+ ...(payload.scope === undefined ? {} : { scopes: payload.scope }),
262
+ })
263
+ .pipe(Effect.mapError(deviceAuthorizationInternalError));
264
+ if (!result.valid) {
265
+ return yield* deviceAuthorizationError(result.reason);
266
+ }
267
+ const verificationUriComplete = new URL(config.verificationUri);
268
+ verificationUriComplete.searchParams.set("user_code", result.userCode);
269
+ return {
270
+ device_code: Redacted.value(result.deviceCode),
271
+ user_code: result.userCode,
272
+ verification_uri: config.verificationUri,
273
+ verification_uri_complete: verificationUriComplete.toString(),
274
+ expires_in: result.expiresIn,
275
+ interval: result.interval,
276
+ };
277
+ });
278
+ });
279
+ const OAuthDeviceAuthorizationInspectOperation = Effect.gen(function* () {
280
+ const authorizationService = yield* OAuthDeviceAuthorization;
281
+ const clients = yield* OAuthClientRegistry;
282
+ const sessions = yield* Sessions;
283
+ const sessionCookie = yield* SessionCookie;
284
+ const policy = yield* OAuthDeviceApprovalPolicy;
285
+ return Effect.fn("auth.http.oauth.device_authorization.inspect")(function* ({ payload, request, }) {
286
+ const current = yield* readRequiredSession({ sessions, sessionCookie }, request);
287
+ yield* policy.inspectAttempt({ current, request });
288
+ const result = yield* authorizationService
289
+ .inspect({ userCode: payload.userCode })
290
+ .pipe(Effect.mapError(() => browserInternalError("Failed to inspect device authorization")));
291
+ if (!result.valid) {
292
+ return yield* browserBadRequest(result.reason === "expired_token"
293
+ ? "Device authorization expired"
294
+ : "Invalid device user code");
295
+ }
296
+ const client = yield* loadClient(clients, result.authorization.clientId);
297
+ const authorization = safeAuthorization(result.authorization, client);
298
+ yield* policy.authorize({
299
+ action: "inspect",
300
+ current,
301
+ authorization,
302
+ request,
303
+ });
304
+ const userCode = normalizeOAuthDeviceUserCode(payload.userCode);
305
+ if (userCode === undefined) {
306
+ return yield* browserBadRequest("Invalid device user code");
307
+ }
308
+ return {
309
+ ...authorization,
310
+ userCode,
311
+ };
312
+ });
313
+ });
314
+ const OAuthDeviceAuthorizationApproveOperation = Effect.gen(function* () {
315
+ const authorizationService = yield* OAuthDeviceAuthorization;
316
+ const store = yield* OAuthDeviceAuthorizationStore;
317
+ const clients = yield* OAuthClientRegistry;
318
+ const sessions = yield* Sessions;
319
+ const sessionCookie = yield* SessionCookie;
320
+ const policy = yield* OAuthDeviceApprovalPolicy;
321
+ return Effect.fn("auth.http.oauth.device_authorization.approve")(function* ({ payload, request, }) {
322
+ const current = yield* readRequiredSession({ sessions, sessionCookie }, request);
323
+ const authorization = yield* loadDecisionAuthorization({
324
+ store,
325
+ clients,
326
+ authorizationId: payload.authorizationId,
327
+ });
328
+ yield* policy.authorize({
329
+ action: "approve",
330
+ current,
331
+ authorization,
332
+ request,
333
+ });
334
+ const result = yield* authorizationService
335
+ .approve({
336
+ authorizationId: OAuthDeviceAuthorizationId(payload.authorizationId),
337
+ subject: current.currentSession.userId,
338
+ ...(payload.scopes === undefined ? {} : { scopes: payload.scopes }),
339
+ })
340
+ .pipe(Effect.mapError(() => browserInternalError("Failed to approve device authorization")));
341
+ if (!result.valid) {
342
+ return yield* decisionError(result.reason);
343
+ }
344
+ return HttpServerResponse.empty({ status: 204 });
345
+ });
346
+ });
347
+ const OAuthDeviceAuthorizationDenyOperation = Effect.gen(function* () {
348
+ const authorizationService = yield* OAuthDeviceAuthorization;
349
+ const store = yield* OAuthDeviceAuthorizationStore;
350
+ const clients = yield* OAuthClientRegistry;
351
+ const sessions = yield* Sessions;
352
+ const sessionCookie = yield* SessionCookie;
353
+ const policy = yield* OAuthDeviceApprovalPolicy;
354
+ return Effect.fn("auth.http.oauth.device_authorization.deny")(function* ({ payload, request, }) {
355
+ const current = yield* readRequiredSession({ sessions, sessionCookie }, request);
356
+ const authorization = yield* loadDecisionAuthorization({
357
+ store,
358
+ clients,
359
+ authorizationId: payload.authorizationId,
360
+ });
361
+ yield* policy.authorize({
362
+ action: "deny",
363
+ current,
364
+ authorization,
365
+ request,
366
+ });
367
+ const result = yield* authorizationService
368
+ .deny({
369
+ authorizationId: OAuthDeviceAuthorizationId(payload.authorizationId),
370
+ })
371
+ .pipe(Effect.mapError(() => browserInternalError("Failed to deny device authorization")));
372
+ if (!result.valid) {
373
+ return yield* decisionError(result.reason);
374
+ }
375
+ return HttpServerResponse.empty({ status: 204 });
376
+ });
377
+ });
378
+ export const OAuthDeviceAuthorizationHttpOperationsLive = Layer.effect(OAuthDeviceAuthorizationHttpOperations, Effect.map(OAuthDeviceAuthorizationStartOperation, (start) => OAuthDeviceAuthorizationHttpOperations.of({ start })));
379
+ export const OAuthDeviceApprovalHttpOperationsLive = Layer.effect(OAuthDeviceApprovalHttpOperations, Effect.all({
380
+ inspect: OAuthDeviceAuthorizationInspectOperation,
381
+ approve: OAuthDeviceAuthorizationApproveOperation,
382
+ deny: OAuthDeviceAuthorizationDenyOperation,
383
+ }).pipe(Effect.map(OAuthDeviceApprovalHttpOperations.of)));
384
+ export class OAuthDeviceAuthorizationHttpApiGroup extends HttpApiGroup.make("oauthDeviceAuthorization")
385
+ .add(oauthDeviceAuthorizationEndpoint.middleware(OAuthNoStoreMiddleware))
386
+ .prefix("/auth/oauth")
387
+ .middleware(AuthSchemaErrorMiddleware) {
388
+ }
389
+ export class OAuthDeviceApprovalHttpApiGroup extends HttpApiGroup.make("oauthDeviceApproval")
390
+ .add(oauthDeviceAuthorizationInspectEndpoint, oauthDeviceAuthorizationApproveEndpoint, oauthDeviceAuthorizationDenyEndpoint)
391
+ .prefix("/auth/oauth/device")
392
+ .middleware(OAuthNoStoreMiddleware)
393
+ .middleware(AuthSchemaErrorMiddleware)
394
+ .middleware(AuthOriginCheckMiddleware) {
395
+ }
396
+ export class OAuthDeviceAuthorizationHttpApi extends HttpApi.make("OAuthDeviceAuthorizationHttpApi")
397
+ .add(OAuthDeviceAuthorizationHttpApiGroup)
398
+ .add(OAuthDeviceApprovalHttpApiGroup) {
399
+ }
400
+ export const makeOAuthDeviceAuthorizationHttpClient = (options = {}) => HttpApiClient.make(OAuthDeviceAuthorizationHttpApi, {
401
+ baseUrl: options.baseUrl,
402
+ });
403
+ export const OAuthDeviceAuthorizationHttpApiGroupLive = HttpApiBuilder.group(OAuthDeviceAuthorizationHttpApi, "oauthDeviceAuthorization", Effect.fn("auth.http.oauth.device_authorization.group")(function* (handlers) {
404
+ const operations = yield* OAuthDeviceAuthorizationHttpOperations;
405
+ return handlers.handle("authorizeDevice", operations.start);
406
+ }));
407
+ export const OAuthDeviceApprovalHttpApiGroupLive = HttpApiBuilder.group(OAuthDeviceAuthorizationHttpApi, "oauthDeviceApproval", Effect.fn("auth.http.oauth.device_approval.group")(function* (handlers) {
408
+ const operations = yield* OAuthDeviceApprovalHttpOperations;
409
+ return handlers
410
+ .handle("inspect", operations.inspect)
411
+ .handle("approve", operations.approve)
412
+ .handle("deny", operations.deny);
413
+ }));
414
+ export const OAuthDeviceAuthorizationHttpApiLive = HttpApiBuilder.layer(OAuthDeviceAuthorizationHttpApi).pipe(Layer.provide(OAuthDeviceAuthorizationHttpApiGroupLive), Layer.provide(OAuthDeviceApprovalHttpApiGroupLive), Layer.provide(OAuthDeviceAuthorizationHttpOperationsLive), Layer.provide(OAuthDeviceApprovalHttpOperationsLive), Layer.provide(OAuthNoStoreMiddlewareLive), Layer.provide(AuthSchemaErrorMiddlewareLive));
415
+ //# sourceMappingURL=OAuthDeviceAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthDeviceAuthorization.js","sourceRoot":"","sources":["../../src/HttpApi/OAuthDeviceAuthorization.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { type OAuthAuthorizationCodeTokenHttpOptions, OAuthTokenHttpApi, OAuthTokenHttpApiGroup, OAuthTokenHttpApiGroupLive, OAuthTokenHttpApiLive, OAuthTokenHttpConfig, OAuthTokenHttpConfigLive, type OAuthTokenClientAuthenticationHttpOptions, type OAuthTokenClientAuthenticationInput, OAuthTokenHttpOperationsLive, type OAuthTokenIntrospectionHttpOptions, type OAuthTokenRevocationHttpOptions, } from "./Api.js";
1
+ export { type OAuthTokenHttpOptions, type OAuthTokenGrantHandler, type OAuthTokenGrantHandlerInput, type OAuthTokenGrantRegistration, OAuthTokenGrantRegistry, type OAuthTokenGrantRegistryService, OAuthTokenGrantRegistryDuplicateError, OAuthTokenGrantRegistryLive, oauthAuthorizationCodeTokenGrantRegistration, oauthRefreshTokenGrantRegistration, oauthClientCredentialsGrantRegistration, oauthDeviceCodeTokenGrantRegistration, makeOAuthTokenHandler, OAuthTokenHttpApi, OAuthTokenHttpApiGroup, OAuthTokenHttpApiGroupLive, OAuthTokenHttpApiLive, OAuthTokenHttpConfig, OAuthTokenHttpConfigLive, type OAuthTokenClientAuthenticationHttpOptions, type OAuthTokenClientAuthenticationInput, OAuthTokenHttpOperationsLive, OAuthTokenIntrospectionHttpApi, OAuthTokenIntrospectionHttpApiGroup, OAuthTokenIntrospectionHttpApiGroupLive, OAuthTokenIntrospectionHttpApiLive, OAuthTokenIntrospectionHttpOperationsLive, type OAuthTokenIntrospectionHttpOptions, OAuthTokenRevocationHttpApi, OAuthTokenRevocationHttpApiGroup, OAuthTokenRevocationHttpApiGroupLive, OAuthTokenRevocationHttpApiLive, OAuthTokenRevocationHttpOperationsLive, type OAuthTokenRevocationHttpOptions, } from "./Api.js";
2
2
  export { oauthTokenEndpoint, oauthTokenIntrospectionEndpoint, oauthTokenRevocationEndpoint, } from "./Endpoints.js";
3
3
  export * from "./Operations/OAuthToken.js";
4
4
  //# sourceMappingURL=OAuthToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthToken.d.ts","sourceRoot":"","sources":["../../src/HttpApi/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sCAAsC,EAC3C,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,yCAAyC,EAC9C,KAAK,mCAAmC,EACxC,4BAA4B,EAC5B,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,GACrC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"OAuthToken.d.ts","sourceRoot":"","sources":["../../src/HttpApi/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,uBAAuB,EACvB,KAAK,8BAA8B,EACnC,qCAAqC,EACrC,2BAA2B,EAC3B,4CAA4C,EAC5C,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,yCAAyC,EAC9C,KAAK,mCAAmC,EACxC,4BAA4B,EAC5B,8BAA8B,EAC9B,mCAAmC,EACnC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EACzC,KAAK,kCAAkC,EACvC,2BAA2B,EAC3B,gCAAgC,EAChC,oCAAoC,EACpC,+BAA+B,EAC/B,sCAAsC,EACtC,KAAK,+BAA+B,GACrC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
@@ -1,4 +1,4 @@
1
- export { OAuthTokenHttpApi, OAuthTokenHttpApiGroup, OAuthTokenHttpApiGroupLive, OAuthTokenHttpApiLive, OAuthTokenHttpConfig, OAuthTokenHttpConfigLive, OAuthTokenHttpOperationsLive, } from "./Api.js";
1
+ export { OAuthTokenGrantRegistry, OAuthTokenGrantRegistryDuplicateError, OAuthTokenGrantRegistryLive, oauthAuthorizationCodeTokenGrantRegistration, oauthRefreshTokenGrantRegistration, oauthClientCredentialsGrantRegistration, oauthDeviceCodeTokenGrantRegistration, makeOAuthTokenHandler, OAuthTokenHttpApi, OAuthTokenHttpApiGroup, OAuthTokenHttpApiGroupLive, OAuthTokenHttpApiLive, OAuthTokenHttpConfig, OAuthTokenHttpConfigLive, OAuthTokenHttpOperationsLive, OAuthTokenIntrospectionHttpApi, OAuthTokenIntrospectionHttpApiGroup, OAuthTokenIntrospectionHttpApiGroupLive, OAuthTokenIntrospectionHttpApiLive, OAuthTokenIntrospectionHttpOperationsLive, OAuthTokenRevocationHttpApi, OAuthTokenRevocationHttpApiGroup, OAuthTokenRevocationHttpApiGroupLive, OAuthTokenRevocationHttpApiLive, OAuthTokenRevocationHttpOperationsLive, } from "./Api.js";
2
2
  export { oauthTokenEndpoint, oauthTokenIntrospectionEndpoint, oauthTokenRevocationEndpoint, } from "./Endpoints.js";
3
3
  export * from "./Operations/OAuthToken.js";
4
4
  //# sourceMappingURL=OAuthToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthToken.js","sourceRoot":"","sources":["../../src/HttpApi/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EAGxB,4BAA4B,GAG7B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"OAuthToken.js","sourceRoot":"","sources":["../../src/HttpApi/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EAEvB,qCAAqC,EACrC,2BAA2B,EAC3B,4CAA4C,EAC5C,kCAAkC,EAClC,uCAAuC,EACvC,qCAAqC,EACrC,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EAGxB,4BAA4B,EAC5B,8BAA8B,EAC9B,mCAAmC,EACnC,uCAAuC,EACvC,kCAAkC,EAClC,yCAAyC,EAEzC,2BAA2B,EAC3B,gCAAgC,EAChC,oCAAoC,EACpC,+BAA+B,EAC/B,sCAAsC,GAEvC,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Context } from "effect";
2
+ import { oauthDeviceAuthorizationApproveEndpoint, oauthDeviceAuthorizationDenyEndpoint, oauthDeviceAuthorizationEndpoint, oauthDeviceAuthorizationInspectEndpoint } from "../Endpoints.js";
3
+ import type { HttpOperation } from "./HttpOperation.js";
4
+ export type OAuthDeviceAuthorizationStartOperation = HttpOperation<typeof oauthDeviceAuthorizationEndpoint>;
5
+ export type OAuthDeviceAuthorizationInspectOperation = HttpOperation<typeof oauthDeviceAuthorizationInspectEndpoint>;
6
+ export type OAuthDeviceAuthorizationApproveOperation = HttpOperation<typeof oauthDeviceAuthorizationApproveEndpoint>;
7
+ export type OAuthDeviceAuthorizationDenyOperation = HttpOperation<typeof oauthDeviceAuthorizationDenyEndpoint>;
8
+ export interface OAuthDeviceAuthorizationHttpOperationsService {
9
+ readonly start: OAuthDeviceAuthorizationStartOperation;
10
+ }
11
+ export interface OAuthDeviceApprovalHttpOperationsService {
12
+ readonly inspect: OAuthDeviceAuthorizationInspectOperation;
13
+ readonly approve: OAuthDeviceAuthorizationApproveOperation;
14
+ readonly deny: OAuthDeviceAuthorizationDenyOperation;
15
+ }
16
+ declare const OAuthDeviceAuthorizationHttpOperations_base: Context.ServiceClass<OAuthDeviceAuthorizationHttpOperations, "auth/HttpApi/Operations/OAuthDeviceAuthorization", OAuthDeviceAuthorizationHttpOperationsService>;
17
+ export declare class OAuthDeviceAuthorizationHttpOperations extends OAuthDeviceAuthorizationHttpOperations_base {
18
+ }
19
+ declare const OAuthDeviceApprovalHttpOperations_base: Context.ServiceClass<OAuthDeviceApprovalHttpOperations, "auth/HttpApi/Operations/OAuthDeviceApproval", OAuthDeviceApprovalHttpOperationsService>;
20
+ export declare class OAuthDeviceApprovalHttpOperations extends OAuthDeviceApprovalHttpOperations_base {
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=OAuthDeviceAuthorization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthDeviceAuthorization.d.ts","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthDeviceAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,uCAAuC,EACvC,oCAAoC,EACpC,gCAAgC,EAChC,uCAAuC,EACxC,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,sCAAsC,GAAG,aAAa,CAChE,OAAO,gCAAgC,CACxC,CAAC;AACF,MAAM,MAAM,wCAAwC,GAAG,aAAa,CAClE,OAAO,uCAAuC,CAC/C,CAAC;AACF,MAAM,MAAM,wCAAwC,GAAG,aAAa,CAClE,OAAO,uCAAuC,CAC/C,CAAC;AACF,MAAM,MAAM,qCAAqC,GAAG,aAAa,CAC/D,OAAO,oCAAoC,CAC5C,CAAC;AAEF,MAAM,WAAW,6CAA6C;IAC5D,QAAQ,CAAC,KAAK,EAAE,sCAAsC,CAAC;CACxD;AAED,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,OAAO,EAAE,wCAAwC,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,wCAAwC,CAAC;IAC3D,QAAQ,CAAC,IAAI,EAAE,qCAAqC,CAAC;CACtD;;AAED,qBAAa,sCAAuC,SAAQ,2CAGL;CAAG;;AAE1D,qBAAa,iCAAkC,SAAQ,sCAGL;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { Context } from "effect";
2
+ import { oauthDeviceAuthorizationApproveEndpoint, oauthDeviceAuthorizationDenyEndpoint, oauthDeviceAuthorizationEndpoint, oauthDeviceAuthorizationInspectEndpoint, } from "../Endpoints.js";
3
+ export class OAuthDeviceAuthorizationHttpOperations extends Context.Service()("auth/HttpApi/Operations/OAuthDeviceAuthorization") {
4
+ }
5
+ export class OAuthDeviceApprovalHttpOperations extends Context.Service()("auth/HttpApi/Operations/OAuthDeviceApproval") {
6
+ }
7
+ //# sourceMappingURL=OAuthDeviceAuthorization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthDeviceAuthorization.js","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthDeviceAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,uCAAuC,EACvC,oCAAoC,EACpC,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,iBAAiB,CAAC;AA0BzB,MAAM,OAAO,sCAAuC,SAAQ,OAAO,CAAC,OAAO,EAGxE,CAAC,kDAAkD,CAAC;CAAG;AAE1D,MAAM,OAAO,iCAAkC,SAAQ,OAAO,CAAC,OAAO,EAGnE,CAAC,6CAA6C,CAAC;CAAG"}
@@ -6,11 +6,21 @@ export type OAuthTokenIntrospectionOperation = HttpOperation<typeof oauthTokenIn
6
6
  export type OAuthTokenRevocationOperation = HttpOperation<typeof oauthTokenRevocationEndpoint>;
7
7
  export interface OAuthTokenHttpOperationsService {
8
8
  readonly token: OAuthTokenGrantOperation;
9
+ }
10
+ export interface OAuthTokenIntrospectionHttpOperationsService {
9
11
  readonly introspect: OAuthTokenIntrospectionOperation;
12
+ }
13
+ export interface OAuthTokenRevocationHttpOperationsService {
10
14
  readonly revoke: OAuthTokenRevocationOperation;
11
15
  }
12
16
  declare const OAuthTokenHttpOperations_base: Context.ServiceClass<OAuthTokenHttpOperations, "auth/HttpApi/Operations/OAuthToken", OAuthTokenHttpOperationsService>;
13
17
  export declare class OAuthTokenHttpOperations extends OAuthTokenHttpOperations_base {
14
18
  }
19
+ declare const OAuthTokenIntrospectionHttpOperations_base: Context.ServiceClass<OAuthTokenIntrospectionHttpOperations, "auth/HttpApi/Operations/OAuthTokenIntrospection", OAuthTokenIntrospectionHttpOperationsService>;
20
+ export declare class OAuthTokenIntrospectionHttpOperations extends OAuthTokenIntrospectionHttpOperations_base {
21
+ }
22
+ declare const OAuthTokenRevocationHttpOperations_base: Context.ServiceClass<OAuthTokenRevocationHttpOperations, "auth/HttpApi/Operations/OAuthTokenRevocation", OAuthTokenRevocationHttpOperationsService>;
23
+ export declare class OAuthTokenRevocationHttpOperations extends OAuthTokenRevocationHttpOperations_base {
24
+ }
15
25
  export {};
16
26
  //# sourceMappingURL=OAuthToken.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthToken.d.ts","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChF,MAAM,MAAM,gCAAgC,GAAG,aAAa,CAC1D,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,aAAa,CACvD,OAAO,4BAA4B,CACpC,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;CAChD;;AAED,qBAAa,wBAAyB,SAAQ,6BAGL;CAAG"}
1
+ {"version":3,"file":"OAuthToken.d.ts","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChF,MAAM,MAAM,gCAAgC,GAAG,aAAa,CAC1D,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,aAAa,CACvD,OAAO,4BAA4B,CACpC,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;CAC1C;AAED,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC;CACvD;AAED,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;CAChD;;AAED,qBAAa,wBAAyB,SAAQ,6BAGL;CAAG;;AAE5C,qBAAa,qCAAsC,SAAQ,0CAGL;CAAG;;AAEzD,qBAAa,kCAAmC,SAAQ,uCAGL;CAAG"}
@@ -2,4 +2,8 @@ import { Context } from "effect";
2
2
  import { oauthTokenEndpoint, oauthTokenIntrospectionEndpoint, oauthTokenRevocationEndpoint, } from "../Endpoints.js";
3
3
  export class OAuthTokenHttpOperations extends Context.Service()("auth/HttpApi/Operations/OAuthToken") {
4
4
  }
5
+ export class OAuthTokenIntrospectionHttpOperations extends Context.Service()("auth/HttpApi/Operations/OAuthTokenIntrospection") {
6
+ }
7
+ export class OAuthTokenRevocationHttpOperations extends Context.Service()("auth/HttpApi/Operations/OAuthTokenRevocation") {
8
+ }
5
9
  //# sourceMappingURL=OAuthToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthToken.js","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAiBzB,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,OAAO,EAG1D,CAAC,oCAAoC,CAAC;CAAG"}
1
+ {"version":3,"file":"OAuthToken.js","sourceRoot":"","sources":["../../../src/HttpApi/Operations/OAuthToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAuBzB,MAAM,OAAO,wBAAyB,SAAQ,OAAO,CAAC,OAAO,EAG1D,CAAC,oCAAoC,CAAC;CAAG;AAE5C,MAAM,OAAO,qCAAsC,SAAQ,OAAO,CAAC,OAAO,EAGvE,CAAC,iDAAiD,CAAC;CAAG;AAEzD,MAAM,OAAO,kCAAmC,SAAQ,OAAO,CAAC,OAAO,EAGpE,CAAC,8CAA8C,CAAC;CAAG"}
@@ -18,6 +18,7 @@ export * from "./Discovery.js";
18
18
  export * from "./Jwt.js";
19
19
  export * from "./LoginApproval.js";
20
20
  export * from "./OAuth.js";
21
+ export * from "./OAuthDeviceAuthorization.js";
21
22
  export * from "./OAuthProviderAuthorization.js";
22
23
  export * from "./OAuthToken.js";
23
24
  export * from "./RefreshToken.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/HttpApi/Operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/HttpApi/Operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
@@ -18,6 +18,7 @@ export * from "./Discovery.js";
18
18
  export * from "./Jwt.js";
19
19
  export * from "./LoginApproval.js";
20
20
  export * from "./OAuth.js";
21
+ export * from "./OAuthDeviceAuthorization.js";
21
22
  export * from "./OAuthProviderAuthorization.js";
22
23
  export * from "./OAuthToken.js";
23
24
  export * from "./RefreshToken.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/HttpApi/Operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/HttpApi/Operations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}