UNPKG

@lucidcms/core

Version:

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

2 lines 1.69 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"../../utils/create-service-context.mjs";import i from"../../../../utils/services/service-wrapper.mjs";import a from"../../../../services/users/create-initial-admin.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{controllerSchemas as u}from"../../../../schemas/auth.mjs";import{minutesToMilliseconds as d}from"date-fns";import{createFactory as f}from"hono/factory";import{describeRoute as p}from"hono-openapi";const m=f().createHandlers(p({description:`Creates the initial admin user. This endpoint can only be used when no users exist in the system. Even if password auth is disabled, you will still be required to set one here.`,tags:[`auth`],summary:`Initial Admin Setup`,responses:l.responses(),parameters:l.parameters({headers:{csrf:!0}}),requestBody:l.requestBody(u.setup.body)}),c,o({mode:`ip`,limit:t.rateLimit.scopes.sensitive.limit,scope:t.rateLimit.scopes.sensitive.scopeKey,windowMs:d(1)}),s(`json`,u.setup.body),async t=>{let{email:o,username:s,firstName:c,lastName:l,password:u}=t.req.valid(`json`),d=r(t),f=await i(a,{transaction:!0,defaultError:{type:`basic`,name:e(`server:core.routes.user.create.error.name`),message:e(`server:core.routes.user.create.error.message`)}})(d,{email:o,username:s,firstName:c,lastName:l,password:u});if(f.error)throw new n(f.error);return t.status(204),t.body(null)});export{m as default}; //# sourceMappingURL=setup.mjs.map