UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 2.01 kB
import{copy as e}from"../../../../i18n/copy.mjs";import t from"../../../../../constants/constants.mjs";import n from"../../../../../utils/errors/lucid-api-error.mjs";import r from"../../../../../services/auth/providers/initiate.mjs";import i from"../../../utils/create-service-context.mjs";import a from"../../../../../utils/services/service-wrapper.mjs";import o from"../../../middleware/rate-limiter.mjs";import s from"../../../middleware/validate.mjs";import c from"../../../middleware/validate-csrf.mjs";import l from"../../../openapi/index.mjs";import u from"../../../utils/build-response.mjs";import{controllerSchemas as d}from"../../../../../schemas/auth.mjs";import f from"../../../middleware/soft-authenticate.mjs";import{z as p}from"zod";import{minutesToMilliseconds as m}from"date-fns";import{createFactory as h}from"hono/factory";import{describeRoute as g}from"hono-openapi";const _=h().createHandlers(g({description:`Handle oidc auth initiation. Creates auth state and redirects to provider login page`,tags:[`auth`],summary:`Initiate Provider Authentication`,responses:l.responses({schema:p.toJSONSchema(d.providerInitiate.response)}),parameters:l.parameters({params:d.providerInitiate.params,headers:{csrf:!0}}),requestBody:l.requestBody(d.providerInitiate.body)}),c,f,o({mode:`ip`,limit:t.rateLimit.scopes.sensitive.limit,scope:t.rateLimit.scopes.sensitive.scopeKey,windowMs:m(1)}),s(`param`,d.providerInitiate.params),s(`json`,d.providerInitiate.body),async t=>{let{providerKey:o}=t.req.valid(`param`),{invitationToken:s,redirectPath:c,actionType:l}=t.req.valid(`json`),d=i(t),f=await a(r,{transaction:!0,defaultError:{type:`basic`,name:e(`server:core.routes.initiate.auth.error.name`),message:e(`server:core.routes.initiate.auth.error.message`)}})(d,{providerKey:o,invitationToken:s,redirectPath:c,actionType:l,authenticatedUserId:t.get(`auth`)?.id});if(f.error)throw new n(f.error);return t.status(200),t.json(u(t,{data:f.data}))});export{_ as default}; //# sourceMappingURL=initiate.mjs.map