UNPKG

17.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/content-type/index.js","webpack:///./src/Plugins/BodyParser/Constants/ContentType.ts","webpack:///./src/Plugins/BodyParser/Constants/ErrorTypes.ts","webpack:///./src/Plugins/BodyParser/Constants/ParsingOption.ts","webpack:///./src/Plugins/BodyParser/Constants/RequestHeaders.ts","webpack:///./src/Plugins/BodyParser/Utils/toLowerCaseShallow.ts","webpack:///./src/Plugins/BodyParser/bodyParser.ts","webpack:///./src/Plugins/BodyParser/json.ts","webpack:///./src/Plugins/BodyParser/main.ts","webpack:///./src/Utils/createError.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7Na;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;;;;;;;;;;;;;ACNa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;;;;;;;;;;;;;ACVa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;;;;;;;;;;;;;ACTa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;;;;;;;;;;;;;ACNa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;;;;;;;;;;;;;ACZa;AACb,8CAA8C,cAAc;AAC5D;AACA,sBAAsB,mBAAO,CAAC,sFAA2B;AACzD,aAAa,mBAAO,CAAC,gDAAQ;AAC7B,yBAAyB;AACzB;AACA;AACA;;;;;;;;;;;;;ACRa;AACb,8CAA8C,cAAc;AAC5D,kBAAkB,mBAAO,CAAC,0DAAc;AACxC,oBAAoB,mBAAO,CAAC,2DAAyB;AACrD,oBAAoB,mBAAO,CAAC,kFAAyB;AACrD,mBAAmB,mBAAO,CAAC,gFAAwB;AACnD,uBAAuB,mBAAO,CAAC,wFAA4B;AAC3D,2BAA2B,mBAAO,CAAC,wFAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;AC3Ca;AACb,8CAA8C,cAAc;AAC5D,oBAAoB,mBAAO,CAAC,2DAAyB;AACrD,mBAAmB,mBAAO,CAAC,4DAAc;AACzC,mBAAmB,mBAAO,CAAC,gFAAwB;AACnD,sBAAsB,mBAAO,CAAC,sFAA2B;AACzD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7Ba;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA","file":"plugin-body-parser.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(global, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/Plugins/BodyParser/main.ts\");\n","/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.substr(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value[0] === '\"') {\n // remove quotes and escapes\n value = value\n .substr(1, value.length - 2)\n .replace(QESC_REGEXP, '$1')\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ContentType;\n(function (ContentType) {\n ContentType[\"APPLICATION_JSON\"] = \"application/json\";\n})(ContentType || (ContentType = {}));\nexports.default = ContentType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ErrorTypes;\n(function (ErrorTypes) {\n ErrorTypes[\"BODY_PARSER_OPTION_TYPE_INVALID\"] = \"BODY_PARSER_OPTION_TYPE_INVALID\";\n ErrorTypes[\"BODY_PARSER_REQUEST_HEADERS_MISSING\"] = \"BODY_PARSER_REQUEST_HEADERS_MISSING\";\n ErrorTypes[\"BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_KEY_INVALID\"] = \"BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_KEY_INVALID\";\n ErrorTypes[\"BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_VALUE_INVALID\"] = \"BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_VALUE_INVALID\";\n ErrorTypes[\"BODY_PARSER_JSON_PARSE_FAILED\"] = \"BODY_PARSER_JSON_PARSE_FAILED\";\n})(ErrorTypes || (ErrorTypes = {}));\nexports.default = ErrorTypes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParsingOption;\n(function (ParsingOption) {\n ParsingOption[\"JSON\"] = \"json\";\n ParsingOption[\"RAW\"] = \"raw\";\n ParsingOption[\"TEXT\"] = \"text\";\n ParsingOption[\"URL_ENCODED\"] = \"urlencoded\";\n})(ParsingOption || (ParsingOption = {}));\nexports.default = ParsingOption;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RequestHeaders;\n(function (RequestHeaders) {\n RequestHeaders[\"CONTENT_TYPE\"] = \"content-type\";\n})(RequestHeaders || (RequestHeaders = {}));\nexports.default = RequestHeaders;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar toLowerCaseShallow = function (obj) {\n return Object.keys(obj).reduce(function (output, currentKey) {\n var key = currentKey.toLowerCase();\n var value = obj[currentKey];\n if (typeof value === 'string')\n value = value.toLowerCase();\n output[key] = value;\n return output;\n }, {});\n};\nexports.default = toLowerCaseShallow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _a;\nvar ParsingOption_1 = require(\"./Constants/ParsingOption\");\nvar json_1 = require(\"./json\");\nvar bodyParser = (_a = {},\n _a[ParsingOption_1.default.JSON] = json_1.default,\n _a);\nexports.default = bodyParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar contentType = require(\"content-type\");\nvar createError_1 = require(\"../../Utils/createError\");\nvar ContentType_1 = require(\"./Constants/ContentType\");\nvar ErrorTypes_1 = require(\"./Constants/ErrorTypes\");\nvar RequestHeaders_1 = require(\"./Constants/RequestHeaders\");\nvar toLowerCaseShallow_1 = require(\"./Utils/toLowerCaseShallow\");\nvar jsonParser = function (handler) {\n var request = handler.event;\n if (!request.headers) {\n throw createError_1.default({\n type: ErrorTypes_1.default.BODY_PARSER_REQUEST_HEADERS_MISSING\n });\n }\n var content;\n request.headers = toLowerCaseShallow_1.default(request.headers);\n try {\n content = contentType.parse(handler.event);\n }\n catch (e) {\n throw createError_1.default({\n type: ErrorTypes_1.default.BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_KEY_INVALID,\n details: RequestHeaders_1.default.CONTENT_TYPE,\n source: e\n });\n }\n if (content.type !== ContentType_1.default.APPLICATION_JSON) {\n throw createError_1.default({\n type: ErrorTypes_1.default.BODY_PARSER_REQUEST_HEADERS_CONTENT_TYPE_VALUE_INVALID,\n details: content.type\n });\n }\n try {\n request.body = JSON.parse(request.body);\n }\n catch (e) {\n throw createError_1.default({\n type: ErrorTypes_1.default.BODY_PARSER_JSON_PARSE_FAILED,\n details: e\n });\n }\n};\nexports.default = jsonParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar createError_1 = require(\"../../Utils/createError\");\nvar bodyParser_1 = require(\"./bodyParser\");\nvar ErrorTypes_1 = require(\"./Constants/ErrorTypes\");\nvar ParsingOption_1 = require(\"./Constants/ParsingOption\");\nvar validate = function (config) {\n if (!Object['values'](ParsingOption_1.default).includes(config.type)) {\n return createError_1.default({\n type: ErrorTypes_1.default.BODY_PARSER_OPTION_TYPE_INVALID,\n details: 'one of json|raw|text|urlencoded'\n });\n }\n};\nvar bodyParserPlugin = function (config) {\n var pluginManifest = {\n plugin: {\n onRequest: function (handler) {\n var error = validate(config);\n if (error) {\n throw error;\n }\n var parser = bodyParser_1.default[config.type];\n parser(handler);\n }\n }\n };\n return pluginManifest;\n};\nexports.default = bodyParserPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar createError = function (errorEvent) {\n return errorEvent;\n};\nexports.default = createError;\n"],"sourceRoot":""}
\No newline at end of file