/**
 * Minified by jsDelivr using Terser v5.19.2.
 * Original file: /npm/fastify-raw-body@5.0.0/plugin.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";const fp=require("fastify-plugin"),getRawBody=require("raw-body"),secureJson=require("secure-json-parse"),kRawBodyHook=Symbol("fastify-raw-body:rawBodyHook");function rawBody(o,n,t){if(!0===o[kRawBodyHook])return void t(new Error("Cannot register fastify-raw-body twice"));const{field:r,encoding:e,global:i,runFirst:s,routes:a,jsonContentTypes:u}=Object.assign({field:"rawBody",encoding:"utf8",global:!0,runFirst:!1,routes:[],jsonContentTypes:["application/json"]},n);function d(o,n,t,i){const a=o.routeOptions.bodyLimit;getRawBody(s?o.raw:t,{length:null,limit:a,encoding:e},(function(n,t){n||(o[r]=t)})),i(null,t)}!1===e&&o.addContentTypeParser(u,{parseAs:"buffer"},(function(n,t,r){if(0===t.length||null==t){const o=new Error("Body cannot be empty when content-type is set to 'application/json'");return o.statusCode=400,r(o)}try{r(null,secureJson.parse(t.toString("utf8"),{protoAction:o.initialConfig.onProtoPoisoning,constructorAction:o.initialConfig.onConstructorPoisoning}))}catch(o){return o.statusCode=400,r(o)}})),o.addHook("onRoute",(o=>{const n="GET"===o.method||o.config&&!1===o.config.rawBody;(i&&!n&&!a.length||o.config&&!0===o.config.rawBody||a.includes(o.path))&&(o.preParsing?Array.isArray(o.preParsing)?s?o.preParsing.unshift(d):o.preParsing.push(d):o.preParsing=s?[d,o.preParsing]:[o.preParsing,d]:o.preParsing=[d])})),o[kRawBodyHook]=!0,t()}const plugin=fp(rawBody,{fastify:"^5.x",name:"fastify-raw-body"});module.exports=plugin,module.exports.default=plugin,module.exports.fastifyRawBody=plugin;
//# sourceMappingURL=/sm/c54f89e9c9d97ce5d0c003ebc2e86d4d6c610059156258bd94d5cfd4c4c9e443.map