{"version":3,"sources":["../../../src/server/pipes.ts"],"sourcesContent":["import { type PipeOutput, v } from 'valleyed'\n\nimport { EventBus } from '../events'\nimport type { AuthUser } from '../types'\nimport { BaseRequestAuthMethod } from './requests-auth-methods'\nimport { Methods } from './types'\n\nconst serverBasePipe = () =>\n\tv.object({\n\t\tport: v.number(),\n\t\tcors: v.optional(\n\t\t\tv.object({\n\t\t\t\torigin: v.optional(v.or([v.array(v.string()), v.is(true as const)])),\n\t\t\t\tmethods: v.optional(v.array(v.in(Object.values(Methods)))),\n\t\t\t\tcredentials: v.optional(v.boolean()),\n\t\t\t}),\n\t\t),\n\t\teventBus: v.optional(v.instanceOf(EventBus)),\n\t\tpublicPath: v.optional(v.string()),\n\t\thealthPath: v.optional(v.string()),\n\t\topenapi: v.defaults(\n\t\t\tv.object({\n\t\t\t\tdocsVersion: v.defaults(v.string(), '1.0.0'),\n\t\t\t\tdocsBaseUrl: v.defaults(v.array(v.string()), ['/']),\n\t\t\t\tdocsPath: v.defaults(v.string(), '/__docs'),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\trequests: v.defaults(\n\t\t\tv.object({\n\t\t\t\tlog: v.defaults(v.boolean(), true),\n\t\t\t\trateLimit: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 60 * 60 * 1000),\n\t\t\t\t\t\tlimit: v.defaults(v.number(), 5000),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\tslowdown: v.defaults(\n\t\t\t\t\tv.object({\n\t\t\t\t\t\tenabled: v.defaults(v.boolean(), false),\n\t\t\t\t\t\tperiodInMs: v.defaults(v.number(), 10 * 60 * 1000),\n\t\t\t\t\t\tdelayAfter: v.defaults(v.number(), 2000),\n\t\t\t\t\t\tdelayInMs: v.defaults(v.number(), 500),\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t}),\n\t\t\t{},\n\t\t),\n\t\tsocketsAuthMethods: v.defaults(v.array(v.instanceOf(BaseRequestAuthMethod<AuthUser>)), []),\n\t})\n\nexport const serverConfigPipe = () =>\n\tv.discriminate((d: any) => d.type, {\n\t\tfastify: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('fastify' as const),\n\t\t\t}),\n\t\t),\n\t\texpress: v.merge(\n\t\t\tserverBasePipe(),\n\t\t\tv.object({\n\t\t\t\ttype: v.is('express' as const),\n\t\t\t}),\n\t\t),\n\t})\n\nexport type ServerConfig = PipeOutput<ReturnType<typeof serverConfigPipe>>\n"],"mappings":"AAAA,OAA0B,KAAAA,MAAS,WAEnC,OAAS,YAAAC,MAAgB,YAEzB,OAAS,yBAAAC,MAA6B,0BACtC,OAAS,WAAAC,MAAe,UAExB,MAAMC,EAAiB,IACtBJ,EAAE,OAAO,CACR,KAAMA,EAAE,OAAO,EACf,KAAMA,EAAE,SACPA,EAAE,OAAO,CACR,OAAQA,EAAE,SAASA,EAAE,GAAG,CAACA,EAAE,MAAMA,EAAE,OAAO,CAAC,EAAGA,EAAE,GAAG,EAAa,CAAC,CAAC,CAAC,EACnE,QAASA,EAAE,SAASA,EAAE,MAAMA,EAAE,GAAG,OAAO,OAAOG,CAAO,CAAC,CAAC,CAAC,EACzD,YAAaH,EAAE,SAASA,EAAE,QAAQ,CAAC,CACpC,CAAC,CACF,EACA,SAAUA,EAAE,SAASA,EAAE,WAAWC,CAAQ,CAAC,EAC3C,WAAYD,EAAE,SAASA,EAAE,OAAO,CAAC,EACjC,WAAYA,EAAE,SAASA,EAAE,OAAO,CAAC,EACjC,QAASA,EAAE,SACVA,EAAE,OAAO,CACR,YAAaA,EAAE,SAASA,EAAE,OAAO,EAAG,OAAO,EAC3C,YAAaA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAO,CAAC,EAAG,CAAC,GAAG,CAAC,EAClD,SAAUA,EAAE,SAASA,EAAE,OAAO,EAAG,SAAS,CAC3C,CAAC,EACD,CAAC,CACF,EACA,SAAUA,EAAE,SACXA,EAAE,OAAO,CACR,IAAKA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAI,EACjC,UAAWA,EAAE,SACZA,EAAE,OAAO,CACR,QAASA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAK,EACtC,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,KAAU,GAAI,EACjD,MAAOA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAI,CACnC,CAAC,EACD,CAAC,CACF,EACA,SAAUA,EAAE,SACXA,EAAE,OAAO,CACR,QAASA,EAAE,SAASA,EAAE,QAAQ,EAAG,EAAK,EACtC,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,IAAU,GAAI,EACjD,WAAYA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAI,EACvC,UAAWA,EAAE,SAASA,EAAE,OAAO,EAAG,GAAG,CACtC,CAAC,EACD,CAAC,CACF,CACD,CAAC,EACD,CAAC,CACF,EACA,mBAAoBA,EAAE,SAASA,EAAE,MAAMA,EAAE,WAAWE,CAA+B,CAAC,EAAG,CAAC,CAAC,CAC1F,CAAC,EAEWG,EAAmB,IAC/BL,EAAE,aAAcM,GAAWA,EAAE,KAAM,CAClC,QAASN,EAAE,MACVI,EAAe,EACfJ,EAAE,OAAO,CACR,KAAMA,EAAE,GAAG,SAAkB,CAC9B,CAAC,CACF,EACA,QAASA,EAAE,MACVI,EAAe,EACfJ,EAAE,OAAO,CACR,KAAMA,EAAE,GAAG,SAAkB,CAC9B,CAAC,CACF,CACD,CAAC","names":["v","EventBus","BaseRequestAuthMethod","Methods","serverBasePipe","serverConfigPipe","d"]}