{"version":3,"file":"commonjs.cjs","mappings":"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","sources":["webpack://@x82-softworks/aws-api/webpack/bootstrap","webpack://@x82-softworks/aws-api/webpack/runtime/compat get default export","webpack://@x82-softworks/aws-api/webpack/runtime/define property getters","webpack://@x82-softworks/aws-api/webpack/runtime/hasOwnProperty shorthand","webpack://@x82-softworks/aws-api/webpack/runtime/make namespace object","webpack://@x82-softworks/aws-api/./src/types.ts","webpack://@x82-softworks/aws-api/./src/constants.ts","webpack://@x82-softworks/aws-api/./src/urlPattern.ts","webpack://@x82-softworks/aws-api/./src/utils.ts","webpack://@x82-softworks/aws-api/external commonjs \"serialize-error\"","webpack://@x82-softworks/aws-api/external commonjs \"@x82-softworks/clone-merge\"","webpack://@x82-softworks/aws-api/external commonjs \"cookie\"","webpack://@x82-softworks/aws-api/external commonjs \"ajv\"","webpack://@x82-softworks/aws-api/external commonjs \"is-integer\"","webpack://@x82-softworks/aws-api/./src/jsonSchemaValidator.ts","webpack://@x82-softworks/aws-api/./src/params.ts","webpack://@x82-softworks/aws-api/external commonjs \"@x82-softworks/aws-api-multipart\"","webpack://@x82-softworks/aws-api/external commonjs \"query-string\"","webpack://@x82-softworks/aws-api/./src/requestBody.ts","webpack://@x82-softworks/aws-api/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { URLPattern } from './urlPattern';\n\nexport interface Response {\n  body: any\n  headers: object\n  statusCode: number\n}\n\nexport type Path = {\n  regex: URLPattern\n  original: string\n}\n\nexport interface Headers {\n  cookie?: string\n}\n\nexport interface Request {\n  path: string\n  rawPath: string\n  /**\n   * The lowercase version of the http method\n   */\n  httpMethod: string\n\n  pathParams: Nullable<object>\n  headers: Headers\n  rawHeaders: Headers\n  queryStringParameters: object \n  params: object\n  stageVariables: object\n  requestContext: object\n  body: any\n  rawBody: any\n  isBase64Encoded: boolean\n}\n\nexport type ExtendedError = Error & {\n  additional: any\n  code: any\n}\n\nexport type Reference = {\n  $ref: string\n}\nexport enum Method {\n  GET = 'get',\n  POST = 'post',\n  PUT = 'put',\n  DELETE = 'delete',\n  PATCH = 'patch',\n  OPTIONS = 'options',\n}\n\nexport interface RootDefinitionInfo {\n  version: string\n  description: string\n  termsOfService: string\n  title: string\n  contact: object\n  license: object\n}\n\nexport interface RootDefinition {\n  components: Nullable<object>\n  openapi: string\n  paths: object\n  info: RootDefinitionInfo\n  host: string\n  basePath: string\n}\n\nexport interface RootDefinitionOverride {\n  components?: RootDefinition['components']\n  openapi?: RootDefinition['openapi']\n  paths?: RootDefinition['paths']\n  info?: RootDefinition['info']\n  host?: RootDefinition['host']\n  basePath?: RootDefinition['basePath']\n}\n","export const NUMBER = \"number\"\nexport const BOOLEAN = \"boolean\"\nexport const INTEGER = \"integer\"\nexport const INT32 = \"int32\"\nexport const INT64 = \"int64\"\nexport const STRING = \"string\"\nexport const FLOAT = \"float\"\nexport const DOUBLE = \"double\"\nexport const OBJECT = \"object\"\nexport const BYTE = \"byte\"\nexport const BINARY = \"binary\"\nexport const DATE = \"date\"\nexport const DATETIME = \"dateTime\"\nexport const ARRAY = \"array\"\nexport const HEADER = \"header\"\nexport const PASSWORD = \"password\"\nexport const APIKEY = \"apikey\"\nexport const EMAIL = \"email\"\n","const keyPattern = /({[^}]*})/g\n\nexport class URLPattern {\n  regex: RegExp\n  keys: Array<string>\n  constructor(pattern: string) {\n    const keys: Array<string> = []\n    let key\n\n    while ((key = keyPattern.exec(pattern))) {\n      key = key[0].slice(1, -1)\n      keys.push(key)\n    }\n    //We need the inorder value of the keys\n    this.keys = keys\n    pattern = pattern.replace(/({[^}]*})/g, \"([a-zA-Z0-9-\\\\._~ %]+)\")\n    this.regex = new RegExp(pattern)\n  }\n\n  match(test: string): Nullable<object> {\n    let ret: Nullable<object> = null,\n      match\n    if ((match = this.regex.exec(test))) {\n      ret = {}\n      for (let i = 0; i < this.keys.length; i++) {\n        ret[this.keys[i]] = match[i + 1]\n      }\n      //We need to check for the param keys and return it as an object\n    }\n    return ret\n  }\n}\n","import { BOOLEAN, INTEGER, NUMBER, OBJECT } from \"./constants\"\nimport { Response } from \"./types\"\nimport { URLPattern } from \"./urlPattern\"\n\n/**\n * The default generic error code\n * @public\n */\nexport const GENERIC_ERROR = \"GenericError\"\n\nexport const isError = (err): boolean => {\n  return typeof err === \"object\" && err.name && err.stack && err.message\n}\n/**\n * Performs the final toStringing of data  in the res body\n * @internal\n * @param res - The response\n * @returns The same response with the stringified version of its body\n */\nexport const returnFinal = (res: Response): Response => {\n  if (res.body && typeof res.body !== \"string\") {\n    res.body = JSON.stringify(res.body)\n  }\n  return res\n}\n\n/**\n * Checks to see if the object contains a reference to another in the api doc\n * @param obj\n */\nexport const isRef = (obj: any): boolean => {\n  return typeof obj === \"object\" && typeof obj?.$ref === \"string\"\n}\n\nexport const coerce = (schema, val) => {\n  switch (schema.type) {\n    case OBJECT:\n      if (typeof val === \"string\") {\n        val = JSON.parse(val)\n      }\n      break\n    case INTEGER:\n    case NUMBER:\n      val = Number(val)\n      break\n    case BOOLEAN:\n      val = Boolean(val)\n      break\n    default:\n      break\n  }\n  return val\n}\n\nexport const returnNotFound = async function (res: Response) {\n  return returnFinal({\n    ...res,\n    statusCode: 404,\n  })\n}\n\n/**\n * Convert a string like /{test}/{param} to a url pattern matching object\n * @internal\n * @param        path\n * @returns A URLPattern matcher\n */\nexport const convertToRegex = (path: string): URLPattern => {\n  return new URLPattern(path)\n}\n\nexport const returnInvalid = async function (res: Response, reason) {\n  if (typeof reason === \"string\") {\n    reason = {\n      code: GENERIC_ERROR,\n      message: reason,\n    }\n  }\n  if (isError(reason)) {\n    reason = {\n      code: reason.code || GENERIC_ERROR,\n      message: reason.message,\n    }\n  }\n  return returnFinal({\n    ...res,\n    statusCode: 400,\n    body: reason,\n  })\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"serialize-error\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@x82-softworks/clone-merge\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"cookie\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"ajv\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"is-integer\");","import { INT32, INT64, NUMBER } from \"./constants\"\nimport Ajv from \"ajv\"\nimport isInteger from \"is-integer\"\n\nconst MAX_INT_32 = 2147483647\nconst ajv = new Ajv({\n  useDefaults: true,\n  coerceTypes: true,\n})\najv.addFormat(INT32, {\n  validate: function (a) {\n    return isInteger(a) && a <= MAX_INT_32 && a >= -MAX_INT_32\n  },\n  type: NUMBER,\n})\najv.addFormat(INT64, {\n  validate: function (a) {\n    return isInteger(a)\n  },\n  type: NUMBER,\n})\n/**\n * Checks to see if the value matches to the given schema\n * @method exports\n * @param   schema\n * @param  val\n * @internal\n * @throws {Error}\n */\nexport default (schema: object, val: any) => {\n  let validate = ajv.compile(schema),\n    err\n  if (!validate(val)) {\n    err = new Error(\"Validation error\")\n    err.additional = validate.errors\n    throw err\n  }\n}\n","import { coerce, isRef } from './utils';\nimport isNotValid from './jsonSchemaValidator';\nexport default async (req, controller, api) => {\n   (controller.parameters || []).forEach(param => {\n    let val;\n    switch (param.in) {\n      case 'query':\n        val = (req.queryStringParameters || {})[param.name];\n        break;\n      case 'header':\n        val = req.headers[param.name];\n        break;\n      case 'path':\n        val = decodeURIComponent(req.pathParams[param.name]);\n        break;\n      case 'cookie':\n        val = req.headers.cookie[param.name];\n        break;\n      default:\n        throw new Error('Unknown param type : ' + param.in);\n    }\n    if (val === undefined) {\n      if (param.required) {\n        throw new Error(`Required parameter \"${param.name}\" not found`);\n      }\n    } else if (param.schema) {\n      let schema = param.schema;\n      if (isRef(schema)) {\n        schema = api.getRef(schema);\n      }\n      val = coerce(schema, val);\n      isNotValid(schema, val);\n    }\n    req.params[param.name] = val;\n  });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@x82-softworks/aws-api-multipart\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"query-string\");","/* eslint-disable no-case-declarations */\nimport { coerce, isRef } from \"./utils\"\nimport { parse } from \"@x82-softworks/aws-api-multipart\"\nimport isNotValid from \"./jsonSchemaValidator\"\nimport qs from \"query-string\"\n\nfunction validateSchema(req, schema, api) {\n  if (!schema) {\n    return\n  }\n  if (isRef(schema)) {\n    schema = api.getRef(schema)\n  }\n  const val = (req.body = coerce(schema, req.body))\n  isNotValid(schema, val)\n}\n/**\n * Handles the request body portion of a request\n * @param {Object} req\n * @param  {?Object} controllerRequestBody\n * @param {Object} api\n */\nexport default async function (req, controllerRequestBody, api) {\n  let contentSelector,\n    hasNoBody = req.body === null || req.body === undefined,\n    schema,\n    contentType\n  if (!controllerRequestBody) {\n    return\n  }\n  //Check if its a request body reference\n  if (isRef(controllerRequestBody)) {\n    controllerRequestBody = api.getRef(controllerRequestBody)\n  }\n  //Check to see if required\n  if (controllerRequestBody.required && hasNoBody) {\n    throw new Error(\"Request body must be supplied\")\n  }\n  //If there is no body to parse and its not required then we're done\n  if (hasNoBody) {\n    return\n  }\n  contentType = req.headers[\"content-type\"]\n  if (!contentType) {\n    return\n    // throw new Error('Request headers do not contain \"content-type\"');\n  }\n  //In the case of multipart/form-data having a boundary\n  contentType = contentType.split(\";\")[0]\n  //Check to see if that controller accepts the content type\n  if (!(contentSelector = controllerRequestBody.content[contentType])) {\n    throw new Error(`Content Type \"${contentType}\" is not supported`)\n  }\n  schema = contentSelector.schema\n  switch (contentType) {\n    case \"application/json\":\n      try {\n        req.body = JSON.parse(req.body)\n      } catch (err) {\n        throw new Error(\"Cannot parse request body\")\n      }\n      break\n    case \"application/x-www-form-urlencoded\":\n      req.body = qs.parse(req.body)\n      break\n    case \"multipart/form-data\":\n      const ret = await parse(req)\n      const { val, multiparts } = ret.files.reduce(\n        (acc, file) => {\n          acc.val[file.fieldName] = file.data.toString(\"utf-8\")\n          acc.multiparts[file.fieldName] = file\n          return acc\n        },\n        {\n          val: {},\n          multiparts: {},\n        }\n      )\n\n      //The coercion from the validate schea should handle converting application json,etc for us\n      req.body = val\n      req.multiparts = multiparts\n      break\n    //Passthrough\n    default:\n      break\n  }\n  validateSchema(req, schema, api)\n}\n","import {\n  ExtendedError,\n  Method,\n  Path,\n  Reference,\n  Request,\n  Response,\n  RootDefinition,\n  RootDefinitionOverride\n} from './types';\nimport {\n  GENERIC_ERROR,\n  convertToRegex,\n  isRef,\n  returnFinal,\n  returnNotFound\n} from './utils';\nimport { STRING } from './constants';\nimport { serializeError } from 'serialize-error';\nimport cloneMerge from '@x82-softworks/clone-merge';\nimport cookie from 'cookie';\nimport params from './params';\nimport requestBodyHandler from './requestBody';\n\nexport const FORM_ENCODED = 'application/x-www-form-urlencoded';\nexport const DEFAULT_CORS = {\n  'Access-Control-Allow-Methods': 'GET,OPTIONS,HEAD',\n  'Access-Control-Allow-headers':\n    'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'\n};\nexport * from './constants';\nexport { GENERIC_ERROR } from './utils';\n\nconst APP_JSON = 'application/json',\n  REQUEST_BODY = 'requestBodies',\n  SCHEMA = 'schemas',\n  CALLBACK = 'callbacks',\n  HEADER = 'headers',\n  SECURITY = 'securitySchemes',\n  PARAMETER = 'parameters',\n  RESPONSE = 'responses',\n  EXAMPLE = 'examples',\n  LINK = 'links',\n  OBJECT = 'object',\n  CONTENT_TYPE = 'content-type';\n\nexport type Handler = (Request, Response, API) => void\n\nconst paramRegex = /\\{([^}]*)\\}/;\n/**\n * Generates a reference object\n * @public\n * @param type\n * @param name\n * @returns A reference object\n */\nfunction ref(type: string, name: string): Reference {\n  return {\n    $ref: '#/components/' + type + '/' + name\n  };\n}\n\nclass API {\n  devMode: boolean;\n  rootDef: RootDefinition;\n  corsConfig: Function;\n  /**\n   * @internal\n   */\n  paths: Array<Path>;\n  _suppressValidationErrors: boolean;\n\n  constructor(opts: RootDefinitionOverride, devMode: boolean) {\n    this.devMode = !!devMode;\n    this.rootDef = cloneMerge(\n      {\n        openapi: '3.0.0',\n        info: {\n          version: '0.0.0',\n          description: 'Default API',\n          termsOfService: 'http://swagger.io/terms/',\n          title: '',\n          contact: {\n            email: 'no-reply@example.com'\n          },\n          license: {\n            name: 'Proprietary'\n            // url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\n          }\n        },\n        host: 'localhost',\n        basePath: '/',\n        paths: {}\n      },\n      opts\n    );\n    this.corsConfig = function (req, res) {\n      const origin = req.headers.Origin ? req.headers.Origin : '*';\n      res.headers = cloneMerge(\n        res.headers,\n        {\n          'Access-Control-Allow-Origin': origin\n        },\n        DEFAULT_CORS\n      );\n    };\n    this.paths = [];\n    this.defSchema('genericError', {\n      type: OBJECT,\n      properties: {\n        code: {\n          description: 'Error code',\n          type: STRING\n        },\n        message: {\n          description: 'Human readable message',\n          type: STRING\n        }\n      },\n      required: ['code', 'message']\n    });\n    this.defResponse('genericError', {\n      description: 'An unexpected error occurred',\n      content: {\n        'application/json': {\n          schema: this.refSchema('genericError')\n        }\n      }\n    });\n\n    this._suppressValidationErrors = false;\n  }\n  /**\n   * Sets the validation error suppression\n   * @param val\n   */\n  suppressValidationErrors(val: boolean) {\n    this._suppressValidationErrors = val;\n  }\n  /**\n   * @public\n   * @returns The Root API defintion\n   */\n  getRoot(): object {\n    return cloneMerge(true, this.rootDef);\n  }\n  defRoot(def: object) {\n    this.rootDef = cloneMerge(true, this.rootDef, def);\n  }\n  /**\n   * Define the Cors function\n   */\n  cors(configFunc: Function) {\n    this.corsConfig = configFunc;\n  }\n  defComponent(type, name, val): API {\n    if (!this.rootDef.components) {\n      this.rootDef.components = {};\n    }\n    if (!this.rootDef.components[type]) {\n      this.rootDef.components[type] = {};\n    }\n    if (this.rootDef.components[type][name]) {\n      throw new Error(\n        'Component of type : \"' +\n          type +\n          '\" and name : \"' +\n          name +\n          '\" is already defined'\n      );\n    }\n    this.rootDef.components[type][name] = val;\n    return this;\n  }\n  defSecurity(name, props) {\n    return this.defComponent(SECURITY, name, props);\n  }\n  defResponse(name, props) {\n    return this.defComponent(RESPONSE, name, props);\n  }\n  ref(type: string, name: string): Reference {\n    return ref(type, name);\n  }\n  defSchema(name, props) {\n    if (!props.title) {\n      props.title = name;\n    }\n    return this.defComponent(SCHEMA, name, props);\n  }\n  getHost(): string {\n    return this.rootDef.host;\n  }\n  /**\n   * Gets the value from the reference object\n   * @public\n   * @param   refObj\n   * @returns The referenced object\n   */\n  getRef(refObj: Reference): object {\n    if (!isRef(refObj)) {\n      throw new Error('Not a valid reference object');\n    }\n    //\"$ref\": \"#/components/schemas/Pet\"\n    return refObj.$ref\n      .split('/')\n      .slice(1)\n      .reduce(function (acc, piece) {\n        return acc[piece];\n      }, this.rootDef);\n  }\n\n  /**\n   * Ref requests\n   */\n\n  refResponse(name: string): Reference {\n    return ref(RESPONSE, name);\n  }\n  refSchema(name: string): Reference {\n    return ref(SCHEMA, name);\n  }\n  refRequestBody(name: string): Reference {\n    return ref(REQUEST_BODY, name);\n  }\n  refSecurity(name: string): Reference {\n    return ref(SECURITY, name);\n  }\n  refExample(name: string): Reference {\n    return ref(EXAMPLE, name);\n  }\n  refParameter(name: string): Reference {\n    return ref(PARAMETER, name);\n  }\n  refHeader(name: string): Reference {\n    return ref(HEADER, name);\n  }\n  refCallback(name: string): Reference {\n    return ref(CALLBACK, name);\n  }\n  refLink(name: string): Reference {\n    return ref(LINK, name);\n  }\n  /**\n   * Adds a route to the router\n   * @public\n   * @param   path\n   * @param   method\n   * @param   [def]\n   * @param   handler\n   */\n  path(path: string, method: Method, def, handler: Handler): API {\n    if (!handler) {\n      handler = def;\n      def = null;\n    }\n    def = cloneMerge(\n      true,\n      {\n        summary: '',\n        description: '',\n        tags: [],\n        parameters: [],\n        requestBody: null,\n        responses: {\n          200: {\n            description: 'Success' // schema: null\n          },\n          default: this.refResponse('genericError')\n        }\n      },\n      def\n    );\n    if (!def.requestBody) {\n      delete def.requestBody;\n    }\n    const methodString = method.toLowerCase();\n    def.handler = handler;\n    if (!this.rootDef.paths) {\n      this.rootDef.paths = {};\n    }\n    if (!this.rootDef.paths[path]) {\n      this.rootDef.paths[path] = {};\n    }\n    if (this.rootDef.paths[path][methodString]) {\n      throw new Error(\n        'Redefinition of path : ' + path + ' method : ' + methodString\n      );\n    }\n    this.rootDef.paths[path][methodString] = def;\n    //If it has path params\n    if (paramRegex.test(path)) {\n      this.paths.push({\n        regex: convertToRegex(path),\n        original: path\n      });\n    }\n    return this;\n  }\n  /**\n   * Adds a GET route\n   * @public\n   * @param   path\n   * @param   [def]\n   * @param   handler\n   */\n  get(path: string, def, handler: Handler): API {\n    return this.path(path, Method.GET, def, handler);\n  }\n  /**\n   * Adds a POST route\n   * @public\n   * @param   path\n   * @param   [def]\n   * @param   handler\n   */\n  post(path: string, def, handler: Handler): API {\n    return this.path(path, Method.POST, def, handler);\n  }\n\n  /**\n   * Adds a PUT route\n   * @public\n   * @param   path\n   * @param   [def]\n   * @param   handler\n   */\n  put(path: string, def, handler: Handler): API {\n    return this.path(path, Method.PUT, def, handler);\n  }\n\n  /**\n   * Adds a PATCH route\n   * @public\n   * @param   path\n   * @param   [def]\n   * @param   handler\n   */\n  patch(path: string, def, handler: Handler): API {\n    return this.path(path, Method.PATCH, def, handler);\n  }\n\n  /**\n   * Adds a DELETE route\n   * @public\n   * @param   path\n   * @param   [def]\n   * @param   handler\n   */\n  delete(path: string, def, handler: Handler): API {\n    return this.path(path, Method.DELETE, def, handler);\n  }\n  defParameter(name, props) {\n    return this.defComponent(PARAMETER, name, props);\n  }\n  defExample(name, props) {\n    return this.defComponent(EXAMPLE, name, props);\n  }\n  defRequestBody(name, props) {\n    return this.defComponent(REQUEST_BODY, name, props);\n  }\n  defHeader(name, props) {\n    return this.defComponent(HEADER, name, props);\n  }\n  defLink(name, props) {\n    return this.defComponent(LINK, name, props);\n  }\n  defCallback(name, props) {\n    return this.defComponent(CALLBACK, name, props);\n  }\n  lambda() {\n    const self = this;\n\n    return async function (event) {\n      //Automatically set the correct host\n      if (event.headers && event.headers.Host) {\n        let more = '';\n        if (event.requestContext) {\n          if (\n            event.requestContext.path.indexOf(\n              '/' + event.requestContext.stage\n            ) === 0\n          ) {\n            //Then we have some kind of basepath added on\n            more = '/' + event.requestContext.stage;\n          }\n        }\n        self.defRoot({\n          host: 'https://' + event.headers.Host + more\n        });\n      }\n      return await self.dispatch(event);\n    };\n  }\n\n  /**\n   * @public\n   * @param event\n   */\n  async dispatch(event: object) {\n    const req: Request = {\n      path: '/',\n      rawPath: '/',\n      httpMethod: Method.GET, //'Incoming request's method name,\n      headers: {\n        //Incoming request headers\n      },\n      rawHeaders: {},\n      queryStringParameters: {\n        //query string parameters\n      },\n      params: {\n        //Will be added by the dispatcher\n      },\n      stageVariables: {\n        //Applicable stage variables\n      },\n      requestContext: {\n        //Request context,including authorizer - returned key - value pairs\n      },\n      pathParams: {},\n      body: null, //A JSON string of the request payload.\n      isBase64Encoded: false, // \"A boolean flag to indicate if the applicable request payload is Base64-encode\",\n      rawBody: null,\n      ...event\n    };\n    const self = this;\n    req.rawPath = req.path;\n    req.httpMethod = req.httpMethod.toLowerCase();\n    //Make sure all headers are lower case as according to RFCs it doesn't matter but it does simplify lookup\n\n    req.headers = Object.keys(req.headers || {}).reduce((acc, key) => {\n      acc[key.toLowerCase()] = req.headers[key];\n      return acc;\n    }, {});\n    //In case middleware attempts to overwrite it\n    req.rawBody = req.body;\n    req.rawHeaders = req.headers;\n    if (req.headers?.cookie) {\n      req.headers.cookie = cookie.parse(req.headers.cookie);\n    }\n    if (req.path[0] !== '/') {\n      //Normalise\n      req.path = '/' + req.path;\n    }\n    if (!req.httpMethod || !req.path) {\n      throw new Error('Event is not wellformed');\n    }\n\n    const res: Response = {\n      body: undefined,\n      headers: {},\n      statusCode: 200\n    };\n\n    //check this against the base path\n    if (req.path.indexOf(self.rootDef.basePath) !== 0) {\n      return returnNotFound(res);\n    }\n    self.corsConfig(req, res);\n    req.path = req.path.slice(self.rootDef.basePath.length);\n    if (req.path[0] !== '/') {\n      req.path = '/' + req.path;\n    }\n\n    //Lookup the path directly if possible otherwise use pattern matching\n    let methods = self.rootDef.paths[req.path],\n      pathParams: Nullable<object> = null,\n      controller;\n\n    if (!methods) {\n      //Try lookup via path matching\n      for (let i = 0, c = self.paths.length; i < c; i++) {\n        if ((pathParams = self.paths[i].regex.match(req.path))) {\n          methods = self.rootDef.paths[self.paths[i].original];\n          break;\n        }\n      }\n    }\n    req.pathParams = pathParams;\n    if (!methods || !(controller = methods[req.httpMethod])) {\n      //This allows added options to override the base support\n      if (req.httpMethod === 'options') {\n        //Automagic option support\n        return res;\n      }\n      return returnNotFound(res);\n    }\n    return (\n      requestBodyHandler(req, controller.requestBody, self)\n        .catch(err => {\n          //Assume user fuckup\n          res.statusCode = 400;\n          throw err;\n        })\n        .then(async () => {\n          await params(req, controller, self);\n          return new Promise((resolve, reject) => {\n            try {\n              resolve(controller.handler(req, res));\n            } catch (err) {\n              reject(err);\n            }\n          }).catch(err => {\n            if (!res.body) {\n              if (self.devMode) {\n                res.body = err;\n              } else {\n                // eslint-disable-next-line no-console\n                console.error(err);\n                res.body = new Error('An internal server error has occurred');\n              }\n              res.statusCode = res.body.statusCode ? res.body.statusCode : 500;\n            }\n          });\n        })\n        //Errors from params and requestbody should fall through to here\n        .catch(err => {\n          res.body = err;\n        })\n        .then(() => {\n          //Check if the body is an error in which case we extract only the message to prevent leaking the specifics of the server\n          if (res.body instanceof Error) {\n            if (self.devMode) {\n              res.body = serializeError(res.body);\n            } else {\n              res.body = {\n                code: (res.body as ExtendedError)?.code || GENERIC_ERROR,\n                message: res.body.message,\n                additional: self._suppressValidationErrors\n                  ? null\n                  : (res.body as ExtendedError)?.additional\n              };\n            }\n            if (!res.statusCode) {\n              res.statusCode = res.body.statusCode || 500;\n            }\n          }\n          if (typeof res.body === 'object' && !res.headers[CONTENT_TYPE]) {\n            //All other types must be\n            res.headers[CONTENT_TYPE] = APP_JSON;\n          }\n          //Convert the body to a string\n          return returnFinal(res);\n        })\n    );\n  }\n}\n\nexport default API;\n//Auto generate all the ref functions\n// [\n//   SECURITY,\n//   EXAMPLE,\n//   PARAMETER,\n//   RESPONSE,\n//   HEADER,\n//   CALLBACK,\n//   LINK,\n//   SCHEMA,\n//   REQUEST_BODY\n// ].forEach(type => {\n//   let name = type;\n//   if (name === REQUEST_BODY) {\n//     //Tiny hack because request body does not have a simple pluralization\n//     name = 'RequestBodys';\n//   }\n//   //We use the -1 to remove the pluralization\n//   API.prototype['ref' + capitalize(name).slice(0, -1)] = (name) => ref(type, name);\n// });\n/**\n * Factory function to create an API\n * @public\n * @param init\n * @param debug\n * @returns The created api\n */\nexport const create = function (\n  init: RootDefinitionOverride,\n  debug: boolean\n): API {\n  return new API(init, debug);\n};\n\n/**\n * An easy shorthand to create a required JSON requestBody with provided inner schema\n * @public\n * @param             schema\n */\nexport const requiredJsonRequest = (schema: object): object => ({\n  required: true,\n  content: {\n    'application/json': {\n      schema: schema\n    }\n  }\n});\n\n/**\n * An easy shorhand to create a json response with the provided schema\n * @param schema\n * @public\n * @returns\n */\nexport const jsonResponseContent = (schema: object): object => ({\n  'application/json': {\n    schema: schema\n  }\n});\n"],"names":[],"sourceRoot":""}