"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(module, "exports", { enumerable: true, get: function() { return _default; } }); const _jsonmask = /*#__PURE__*/ _interop_require_default(require("json-mask")); const _util = require("@middy/util"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const defaults = { filteringKeyName: 'fields' }; const httpPartialResponseMiddleware = (opts = {})=>{ const options = { ...defaults, ...opts }; const { filteringKeyName } = options; const httpPartialResponseMiddlewareAfter = async (request)=>{ const fields = request.event?.queryStringParameters?.[filteringKeyName]; if (!fields) return; (0, _util.normalizeHttpResponse)(request); const body = request.response.body; const bodyIsString = typeof body === 'string'; const parsedBody = (0, _util.jsonSafeParse)(body); if (typeof parsedBody !== 'object') return; const filteredBody = (0, _jsonmask.default)(parsedBody, fields); request.response.body = bodyIsString ? JSON.stringify(filteredBody) : filteredBody; }; return { after: httpPartialResponseMiddlewareAfter }; }; const _default = httpPartialResponseMiddleware;