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.68 kB
import e from"../../../../constants/constants.mjs";import t from"../../../../utils/errors/lucid-api-error.mjs";import n from"../../utils/create-service-context.mjs";import r from"../../../../utils/services/service-wrapper.mjs";import i from"../../../../services/media-share-links/authorize-share.mjs";import a from"../../../../utils/helpers/is-request-secure.mjs";import o from"../../middleware/rate-limiter.mjs";import s from"../../middleware/validate.mjs";import c from"../../openapi/index.mjs";import{controllerSchemas as l}from"../../../../schemas/share.mjs";import u from"../../../../utils/share-link/auth-cookie.mjs";import{randomUUID as d}from"node:crypto";import{minutesToMilliseconds as f}from"date-fns";import{setCookie as p}from"hono/cookie";import{createFactory as m}from"hono/factory";import{describeRoute as h}from"hono-openapi";const g=m().createHandlers(h({description:`Validate share password and set a session cookie.`,tags:[`share`],summary:`Authorize Stream`,responses:c.responses(),parameters:c.parameters({params:l.authorizeShare.params}),requestBody:c.requestBody(l.authorizeShare.body)}),o({mode:`ip`,scope:e.rateLimit.scopes.low.scopeKey,limit:e.rateLimit.scopes.low.limit,windowMs:f(1)}),s(`param`,l.authorizeShare.params),s(`json`,l.authorizeShare.body),async o=>{let{token:s}=o.req.valid(`param`),{password:c}=o.req.valid(`json`),l=n(o),f=await r(i,{transaction:!1})(l,{token:s,providedPassword:c});if(f.error)throw new t(f.error);return p(o,u(s),d(),{maxAge:e.shareLinkExpiration,httpOnly:!0,secure:a(o),sameSite:`strict`,path:`/${e.directories.base}`}),o.json({success:!0},200)});export{g as default}; //# sourceMappingURL=authorize-stream.mjs.map