From 6d13a76f6804fd1e19782b6cbf87957b733e3ba1 Mon Sep 17 00:00:00 2001 From: Vinicius Brasil Date: Mon, 27 Apr 2020 16:06:45 -0300 Subject: [PATCH 01/39] Remove unnecessary Ruby semicolon --- codegens/ruby/lib/ruby.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/ruby/lib/ruby.js b/codegens/ruby/lib/ruby.js index e68a09626..eab3b68e2 100644 --- a/codegens/ruby/lib/ruby.js +++ b/codegens/ruby/lib/ruby.js @@ -121,7 +121,7 @@ self = module.exports = { } snippet += `url = URI("${sanitize(request.url.toString(), 'url')}")\n\n`; if (sanitize(request.url.toString(), 'url').startsWith('https')) { - snippet += 'https = Net::HTTP.new(url.host, url.port);\n'; + snippet += 'https = Net::HTTP.new(url.host, url.port)\n'; snippet += 'https.use_ssl = true\n\n'; if (options.requestTimeout) { snippet += `https.read_timeout = ${Math.ceil(options.requestTimeout / 1000)}\n`; From 0c5005ed2277f0366ebfd6973141add44e79ad66 Mon Sep 17 00:00:00 2001 From: someshkoli Date: Thu, 28 May 2020 02:33:04 +0530 Subject: [PATCH 02/39] Removes utf8 encoding from generated snippet (python-requests) - removes .encode(utf8) from print statement in generated snippet --- codegens/python-requests/lib/python-requests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/python-requests/lib/python-requests.js b/codegens/python-requests/lib/python-requests.js index 6427c6b4a..1f0476a39 100644 --- a/codegens/python-requests/lib/python-requests.js +++ b/codegens/python-requests/lib/python-requests.js @@ -170,7 +170,7 @@ self = module.exports = { snippet += !options.followRedirect ? ', allow_redirects = False' : ''; snippet += options.requestTimeout !== 0 ? `, timeout=${options.requestTimeout}` : ''; snippet += ')\n\n'; - snippet += 'print(response.text.encode(\'utf8\'))\n'; + snippet += 'print(response.text)\n'; callback(null, snippet); } From 998febe072b081bba7c0997e01bcf0ee86c2af78 Mon Sep 17 00:00:00 2001 From: someshkoli Date: Fri, 29 May 2020 06:09:34 +0530 Subject: [PATCH 03/39] Adds Content-Length header to HTTP snippets - Adds Content-Length header to HTTP snippets when body type is raw and length is nonzero - Modifies expected response and adds Content-Length header where required - adds test to check Content-length header for above case --- codegens/http/lib/code-http-converter.js | 9 +++++ .../resources/expected-http-messages.json | 30 ++++++++--------- codegens/http/test/unit/converter.test.js | 33 +++++++++++++++++++ 3 files changed, 57 insertions(+), 15 deletions(-) diff --git a/codegens/http/lib/code-http-converter.js b/codegens/http/lib/code-http-converter.js index 6dbf03372..c31bcb89b 100644 --- a/codegens/http/lib/code-http-converter.js +++ b/codegens/http/lib/code-http-converter.js @@ -46,6 +46,15 @@ function convert (request, options, callback) { }); } } + + if (request.body && !request.headers.has('Content-Length')) { + if (request.body.mode === 'raw' && request.body.raw.length !== 0) { + request.addHeader({ + key: 'Content-Length', + value: request.body.raw.length + }); + } + } // The following code handles multiple files in the same formdata param. // It removes the form data params where the src property is an array of filepath strings // Splits that array into different form data params with src set as a single filepath string diff --git a/codegens/http/test/resources/expected-http-messages.json b/codegens/http/test/resources/expected-http-messages.json index c66f82ab3..124cf0fbe 100644 --- a/codegens/http/test/resources/expected-http-messages.json +++ b/codegens/http/test/resources/expected-http-messages.json @@ -6,23 +6,23 @@ "GET /get?test=123&anotherone=232 HTTP/1.1\nHost: postman-echo.com\n\n\n", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~ \n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", "POST /post?a=!@$^*()_-`%26&b=,./';[]}{\":/?><|| HTTP/1.1\nHost: postman-echo.com\n\n\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;\n\n\n", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 284\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;\n\n\n", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~ &more=,./';[]}{\":?><|\\\\ ", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/json\n\n{\n \"json\": \"Test-Test!@#$%^&*()+POL:},'';,[;[;:>\"\n}", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/javascript\n\nvar val = 6;\nconsole.log(val);", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/xml\n\n\n\tTest Test!@#$%^&*()+POL:},'';,[;[;\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/html\n\n\n Test Test !@#$%^&*()+POL:},'';,[;[;\n", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/json\nContent-Length: 52\n\n{\n \"json\": \"Test-Test!@#$%^&*()+POL:},'';,[;[;:>\"\n}", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/javascript\nContent-Length: 30\n\nvar val = 6;\nconsole.log(val);", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/xml\nContent-Length: 48\n\n\n\tTest Test!@#$%^&*()+POL:},'';,[;[;\n", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/html\nContent-Length: 52\n\n\n Test Test !@#$%^&*()+POL:},'';,[;[;\n", "POST /post?a=''&b=\"\" HTTP/1.1\nHost: postman-echo.com\n\n\n", - "PUT /put HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\n\nEtiam mi lacus, cursus vitae felis et, blandit pellentesque neque. Vestibulum eget nisi a tortor commodo dignissim.\nQuisque ipsum ligula, faucibus a felis a, commodo elementum nisl. Mauris vulputate sapien et tincidunt viverra. Donec vitae velit nec metus.", - "PATCH /patch HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\n\nCurabitur auctor, elit nec pulvinar porttitor, ex augue condimentum enim, eget suscipit urna felis quis neque.\nSuspendisse sit amet luctus massa, nec venenatis mi. Suspendisse tincidunt massa at nibh efficitur fringilla. Nam quis congue mi. Etiam volutpat.", - "DELETE /delete HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\n\nDonec fermentum, nisi sed cursus eleifend, nulla tortor ultricies tellus, ut vehicula orci arcu ut velit. In volutpat egestas dapibus.\nMorbi condimentum vestibulum sapien. Etiam dignissim diam quis eros lobortis gravida vel lobortis est. Etiam gravida sed.", - "OPTIONS /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", - "LINK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", - "UNLINK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", - "LOCK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "PUT /put HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\nContent-Length: 256\n\nEtiam mi lacus, cursus vitae felis et, blandit pellentesque neque. Vestibulum eget nisi a tortor commodo dignissim.\nQuisque ipsum ligula, faucibus a felis a, commodo elementum nisl. Mauris vulputate sapien et tincidunt viverra. Donec vitae velit nec metus.", + "PATCH /patch HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\nContent-Length: 256\n\nCurabitur auctor, elit nec pulvinar porttitor, ex augue condimentum enim, eget suscipit urna felis quis neque.\nSuspendisse sit amet luctus massa, nec venenatis mi. Suspendisse tincidunt massa at nibh efficitur fringilla. Nam quis congue mi. Etiam volutpat.", + "DELETE /delete HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\nContent-Length: 256\n\nDonec fermentum, nisi sed cursus eleifend, nulla tortor ultricies tellus, ut vehicula orci arcu ut velit. In volutpat egestas dapibus.\nMorbi condimentum vestibulum sapien. Etiam dignissim diam quis eros lobortis gravida vel lobortis est. Etiam gravida sed.", + "OPTIONS /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "LINK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "UNLINK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "LOCK /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", "UNLOCK /request HTTP/1.1\nHost: mockbin.org\n\n\n", - "PROPFIND /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", - "VIEW /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "PROPFIND /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", + "VIEW /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", "PURGE / HTTP/1.1\nHost: 9c76407d-5b8d-4b22-99fb-8c47a85d9848.mock.pstmn.io\n\n\n", "COPY / HTTP/1.1\nHost: 9c76407d-5b8d-4b22-99fb-8c47a85d9848.mock.pstmn.io\n\n\n", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\n(data)\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", @@ -31,7 +31,7 @@ "GET /knockknock HTTP/1.1\nHost: localhost:5050\n\n\n" ], "trimmedResult": [ - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 284\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~&more=,./';[]}{\":?><|\\\\" ] diff --git a/codegens/http/test/unit/converter.test.js b/codegens/http/test/unit/converter.test.js index 376bff180..7b360349c 100644 --- a/codegens/http/test/unit/converter.test.js +++ b/codegens/http/test/unit/converter.test.js @@ -197,6 +197,39 @@ describe('Converter test', function () { expect(snippet).to.include(':action'); }); }); + + it('should generate valid snippet with Content-Length header if request body is of raw type ' + + 'and has non zero content length', function () { + var request = new Request({ + 'method': 'GET', + 'header': [ + { + 'key': ' key_containing_whitespaces ', + 'value': ' value_containing_whitespaces ' + } + ], + 'body': { + 'mode': 'raw', + 'raw': 'aaaaa' + }, + 'url': { + 'raw': 'https://google.com', + 'protocol': 'https', + 'host': [ + 'google', + 'com' + ] + } + }); + + convert(request, {}, function (error, snippet) { + if (error) { + expect.fail(null, null, error); + } + expect(snippet).to.be.a('string'); + expect(snippet).to.include('Content-Length: 5'); + }); + }); }); describe('Converter test using options.trimRequestBody', function () { From 7671c77997b7621ec7ed953ed0429b0b42ad1f9a Mon Sep 17 00:00:00 2001 From: Matt Mc <4984708+tooolbox@users.noreply.github.com> Date: Fri, 29 May 2020 11:16:06 -0700 Subject: [PATCH 04/39] Made raw bodies use multiline strings. --- codegens/golang/lib/index.js | 3 ++- codegens/golang/lib/util.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index e57457a12..f9a61c251 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -1,5 +1,6 @@ var _ = require('./lodash'), sanitize = require('./util').sanitize, + sanitizeMultiline = require('./util').sanitizeMultiline, sanitizeOptions = require('./util').sanitizeOptions, addFormParam = require('./util').addFormParam, isFile = false, @@ -13,7 +14,7 @@ var _ = require('./lodash'), */ function parseRawBody (body, trim) { var bodySnippet; - bodySnippet = `payload := strings.NewReader("${sanitize(body.toString(), trim)}")`; + bodySnippet = `payload := strings.NewReader(\`${sanitizeMultiline(body.toString(), trim)}\`)`; return bodySnippet; } diff --git a/codegens/golang/lib/util.js b/codegens/golang/lib/util.js index ad8614906..3416fe613 100644 --- a/codegens/golang/lib/util.js +++ b/codegens/golang/lib/util.js @@ -16,6 +16,23 @@ module.exports = { }, + /** + * sanitizes input string by handling escape characters eg: converts '''' to '\'\'' + * and trim input if required + * + * @param {String} inputString + * @param {Boolean} [trim] - indicates whether to trim string or not + * @returns {String} + */ + sanitizeMultiline: function (inputString, trim) { + if (typeof inputString !== 'string') { + return ''; + } + inputString = inputString.replace(/`/g, '`+"`"+`'); + return trim ? inputString.trim() : inputString; + + }, + /** * sanitizes input options * From 6fb68a1365fbc6e48e6c3fb65195b42c1e871ad6 Mon Sep 17 00:00:00 2001 From: someshkoli Date: Fri, 29 May 2020 23:55:28 +0530 Subject: [PATCH 05/39] Adds content length header to all requests having non zero body length - removes check for only raw body requests - calculates Content length for all type of body - appends adds content length header if body has nonzero length - adds newline character before form data header for proper formatting - modifies expected-http-message json and adds content length header where required - modifies name for unit test for content-length header --- codegens/http/lib/code-http-converter.js | 21 +++++++++---------- codegens/http/lib/util.js | 2 +- .../resources/expected-http-messages.json | 14 ++++++------- codegens/http/test/unit/converter.test.js | 3 +-- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/codegens/http/lib/code-http-converter.js b/codegens/http/lib/code-http-converter.js index c31bcb89b..d868430ca 100644 --- a/codegens/http/lib/code-http-converter.js +++ b/codegens/http/lib/code-http-converter.js @@ -27,7 +27,8 @@ function getOptions () { * @returns {Function} returns the snippet with the callback function. */ function convert (request, options, callback) { - let snippet = ''; + let snippet = '', + body; options = utils.sanitizeOptions(options, getOptions()); utils.parseURLVariable(request); snippet = `${request.method} ${utils.getEndPoint(request)} HTTP/1.1\n`; @@ -47,14 +48,6 @@ function convert (request, options, callback) { } } - if (request.body && !request.headers.has('Content-Length')) { - if (request.body.mode === 'raw' && request.body.raw.length !== 0) { - request.addHeader({ - key: 'Content-Length', - value: request.body.raw.length - }); - } - } // The following code handles multiple files in the same formdata param. // It removes the form data params where the src property is an array of filepath strings // Splits that array into different form data params with src set as a single filepath string @@ -96,9 +89,15 @@ function convert (request, options, callback) { formdata: formdataArray }); } + body = utils.getBody(request, options.trimRequestBody); + if (body && body.length !== 0 && !request.headers.has('Content-Length')) { + request.addHeader({ + key: 'Content-Length', + value: body.length + }); + } snippet += `${utils.getHeaders(request)}\n`; - snippet += `\n${utils.getBody(request, options.trimRequestBody)}`; - + snippet += `\n${body}`; return callback(null, snippet); } diff --git a/codegens/http/lib/util.js b/codegens/http/lib/util.js index ff27ec296..750f56e6a 100644 --- a/codegens/http/lib/util.js +++ b/codegens/http/lib/util.js @@ -203,7 +203,7 @@ function getHeaders (request) { }); headers = convertPropertyListToString(request.headers, '\n', false); if (request.body && request.body.mode === 'formdata' && contentTypeIndex < 0) { - headers += `Content-Type: ${formDataHeader}`; + headers += `\nContent-Type: ${formDataHeader}`; } return headers; } diff --git a/codegens/http/test/resources/expected-http-messages.json b/codegens/http/test/resources/expected-http-messages.json index 124cf0fbe..72e3cc5e7 100644 --- a/codegens/http/test/resources/expected-http-messages.json +++ b/codegens/http/test/resources/expected-http-messages.json @@ -4,10 +4,10 @@ "GET /headers HTTP/1.1\nHost: postman-echo.com\nmy-sample-header: Lorem ipsum dolor sit amet\nTEST: @#$%^&*()\nmore: ,./';[]}{\":?><|\\\\\n\n", "GET /headers HTTP/1.1\nHost: postman-echo.com\nmy-sample-header: Lorem ipsum dolor sit amet\nnot-disabled-header: ENABLED\n\n", "GET /get?test=123&anotherone=232 HTTP/1.1\nHost: postman-echo.com\n\n\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~ \n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Length: 586\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~ \n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", "POST /post?a=!@$^*()_-`%26&b=,./';[]}{\":/?><|| HTTP/1.1\nHost: postman-echo.com\n\n\n", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 284\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;\n\n\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~ &more=,./';[]}{\":?><|\\\\ ", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 77\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~ &more=,./';[]}{\":?><|\\\\ ", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/json\nContent-Length: 52\n\n{\n \"json\": \"Test-Test!@#$%^&*()+POL:},'';,[;[;:>\"\n}", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/javascript\nContent-Length: 30\n\nvar val = 6;\nconsole.log(val);", "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/xml\nContent-Length: 48\n\n\n\tTest Test!@#$%^&*()+POL:},'';,[;[;\n", @@ -25,15 +25,15 @@ "VIEW /request HTTP/1.1\nHost: mockbin.org\nContent-Type: text/plain\nContent-Length: 256\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.", "PURGE / HTTP/1.1\nHost: 9c76407d-5b8d-4b22-99fb-8c47a85d9848.mock.pstmn.io\n\n\n", "COPY / HTTP/1.1\nHost: 9c76407d-5b8d-4b22-99fb-8c47a85d9848.mock.pstmn.io\n\n\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\n(data)\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\n\n\"\"", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Length: 174\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"file\"; filename=\"file.txt\"\nContent-Type: text/plain\n\n(data)\n----WebKitFormBoundary7MA4YWxkTrZu0gW\n", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: text/plain\nContent-Length: 22\n\n\"\"", "GET / HTTP/1.1\nHost: localhost:5050\n\n\n", "GET /knockknock HTTP/1.1\nHost: localhost:5050\n\n\n" ], "trimmedResult": [ - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 284\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW", - "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~&more=,./';[]}{\":?><|\\\\" + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 281\n\nDuis posuere augue vel cursus pharetra. In luctus a ex nec pretium. Praesent neque quam, tincidunt nec leo eget, rutrum vehicula magna.\nMaecenas consequat elementum elit, id semper sem tristique et. Integer pulvinar enim quis consectetur interdum volutpat.!@#$%^&*()+POL:},'';,[;[;", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Length: 581\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"pl\"\n\n'a'\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"qu\"\n\n\"b\"\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"hdjkljh\"\n\nc\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"sa\"\n\nd\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"Special\"\n\n!@#$%&*()^_+=`~\n----WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=\"more\"\n\n,./';[]}{\":?><|\\\\\n----WebKitFormBoundary7MA4YWxkTrZu0gW", + "POST /post HTTP/1.1\nHost: postman-echo.com\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 69\n\n1='a'&2=\"b\"&'3'=c&\"4\"=d&Special=!@#$%&*()^_=`~&more=,./';[]}{\":?><|\\\\" ] } \ No newline at end of file diff --git a/codegens/http/test/unit/converter.test.js b/codegens/http/test/unit/converter.test.js index 7b360349c..c7858cd0f 100644 --- a/codegens/http/test/unit/converter.test.js +++ b/codegens/http/test/unit/converter.test.js @@ -198,8 +198,7 @@ describe('Converter test', function () { }); }); - it('should generate valid snippet with Content-Length header if request body is of raw type ' + - 'and has non zero content length', function () { + it('should generate valid snippet with Content-Length header if request has body', function () { var request = new Request({ 'method': 'GET', 'header': [ From b29981f82d5272073bfb9bbaac06829896657057 Mon Sep 17 00:00:00 2001 From: Somesh Date: Tue, 2 Jun 2020 01:57:27 +0530 Subject: [PATCH 06/39] Adds snippet to check err before using res in GoNative - adds err check after client.Do(req) - adds println and return statement inside err condition body --- codegens/golang/lib/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index e57457a12..8d344f793 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -280,10 +280,13 @@ self = module.exports = { codeSnippet += `${indent}req.Header.Set("Content-Type", writer.FormDataContentType())\n`; } responseSnippet = `${indent}res, err := client.Do(req)\n`; + responseSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; + responseSnippet += `${indent.repeat(2)}return\n${indent}}\n`; responseSnippet += `${indent}defer res.Body.Close()\n${indent}body, err := ioutil.ReadAll(res.Body)\n\n`; responseSnippet += `${indent}fmt.Println(string(body))\n}`; codeSnippet += responseSnippet; + console.log(codeSnippet); callback(null, codeSnippet); }, getOptions: function () { From dc92439189b68d9c1fb60387ccd4282faf25049e Mon Sep 17 00:00:00 2001 From: Somesh Date: Mon, 22 Jun 2020 22:21:38 +0530 Subject: [PATCH 07/39] Replaces double quote to single quote for body params - removes json.stringify where not necessary - sanitize raw body --- codegens/nodejs-request/lib/parseRequest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegens/nodejs-request/lib/parseRequest.js b/codegens/nodejs-request/lib/parseRequest.js index 75c99fd8f..3d7d6fac5 100644 --- a/codegens/nodejs-request/lib/parseRequest.js +++ b/codegens/nodejs-request/lib/parseRequest.js @@ -102,10 +102,10 @@ function parseBody (requestbody, indentString, trimBody, contentType) { return `body: JSON.stringify(${JSON.stringify(jsonBody)})\n`; } catch (error) { - return `body: ${JSON.stringify(requestbody[requestbody.mode])}\n`; + return `body: '${sanitize(requestbody[requestbody.mode])}'\n`; } } - return `body: ${JSON.stringify(requestbody[requestbody.mode])}\n`; + return `body: '${sanitize(requestbody[requestbody.mode])}'\n`; // eslint-disable-next-line no-case-declarations case 'graphql': let query = requestbody[requestbody.mode].query, From ff8de81c274e241a5d41646719ea1e1d92f93d93 Mon Sep 17 00:00:00 2001 From: Derad6709 Date: Sat, 27 Jun 2020 04:44:47 +0300 Subject: [PATCH 08/39] Fixed PEP8 --- codegens/python-requests/lib/python-requests.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegens/python-requests/lib/python-requests.js b/codegens/python-requests/lib/python-requests.js index 6427c6b4a..cae9d0a91 100644 --- a/codegens/python-requests/lib/python-requests.js +++ b/codegens/python-requests/lib/python-requests.js @@ -166,8 +166,8 @@ self = module.exports = { snippet += `response = requests.request("${request.method}", url, headers=headers`; snippet += request.body && request.body.mode && request.body.mode === 'formdata' ? - ', data = payload, files = files' : ', data = payload'; - snippet += !options.followRedirect ? ', allow_redirects = False' : ''; + ', data=payload, files=files' : ', data=payload'; + snippet += !options.followRedirect ? ', allow_redirects=False' : ''; snippet += options.requestTimeout !== 0 ? `, timeout=${options.requestTimeout}` : ''; snippet += ')\n\n'; snippet += 'print(response.text.encode(\'utf8\'))\n'; From 2d795d5d3d36635c5508e94ae72f7f682bfb5b8a Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 30 Jun 2020 02:01:15 +0000 Subject: [PATCH 09/39] fix: upgrade eslint-plugin-jsdoc from 3.1.3 to 3.15.1 Snyk has created this PR to upgrade eslint-plugin-jsdoc from 3.1.3 to 3.15.1. See this package in NPM: https://www.npmjs.com/package/eslint-plugin-jsdoc See this project in Snyk: https://app.snyk.io/org/postman/project/8519ba8e-6a7d-469a-88b3-7891b4c1c14e?utm_source=github&utm_medium=upgrade-pr --- package-lock.json | 28 ++++++++++++++++------------ package.json | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..d015643de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1155,13 +1155,10 @@ "dev": true }, "comment-parser": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.4.2.tgz", - "integrity": "sha1-+lo/eAEwcBFIZtx7jpzzF6ljX3Q=", - "dev": true, - "requires": { - "readable-stream": "^2.0.4" - } + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.5.5.tgz", + "integrity": "sha512-oB3TinFT+PV3p8UwDQt71+HkG03+zwPwikDlKU6ZDmql6QX2zFlQ+G0GGSDqyJhdZi4PSlzFBm+YJ+ebOX3Vgw==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -1798,13 +1795,14 @@ } }, "eslint-plugin-jsdoc": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-3.1.3.tgz", - "integrity": "sha512-ujXBhNQz57tLP0bs99QTDPiCX54EypczVhgg9CMJVD9iwfDeFZk5LkQHk+iPfKlV5tk8+dMm+Soxq8QmQK99ZA==", + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-3.15.1.tgz", + "integrity": "sha512-xIQ+ajO6M6zsu5XEn5+1QyE1/P1w/l3yAXPCToZjRcrsKsg5yLTsYnrkdoJZJegE70dTZZwQ5bYPCjEbPey6cw==", "dev": true, "requires": { - "comment-parser": "^0.4.0", - "lodash": "^4.5.1" + "comment-parser": "^0.5.1", + "jsdoctypeparser": "^2.0.0-alpha-8", + "lodash": "^4.17.11" } }, "eslint-plugin-lodash": { @@ -3835,6 +3833,12 @@ } } }, + "jsdoctypeparser": { + "version": "2.0.0-alpha-8", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-2.0.0-alpha-8.tgz", + "integrity": "sha1-uvE3+44qVYgQrc8Z0tKi9oDpCl8=", + "dev": true + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", diff --git a/package.json b/package.json index 8c6359d13..d451bf85f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "dependency-check": "2.9.1", "editorconfig": "0.14.2", "eslint": "4.18.2", - "eslint-plugin-jsdoc": "3.1.3", + "eslint-plugin-jsdoc": "3.15.1", "eslint-plugin-lodash": "2.4.5", "eslint-plugin-mocha": "4.11.0", "eslint-plugin-security": "1.4.0", From 28bcf99f175ba89d2820f4428de5dd006a7c72b1 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 30 Jun 2020 02:01:28 +0000 Subject: [PATCH 10/39] fix: upgrade chalk from 2.1.0 to 2.4.2 Snyk has created this PR to upgrade chalk from 2.1.0 to 2.4.2. See this package in NPM: https://www.npmjs.com/package/chalk See this project in Snyk: https://app.snyk.io/org/postman/project/8519ba8e-6a7d-469a-88b3-7891b4c1c14e?utm_source=github&utm_medium=upgrade-pr --- package-lock.json | 26 +++++++++++++++++--------- package.json | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..59253a1de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -923,14 +923,14 @@ } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.1.0", + "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", - "supports-color": "^4.0.0" + "supports-color": "^5.3.0" } }, "chardet": { @@ -6393,12 +6393,20 @@ } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^2.0.0" + "has-flag": "^3.0.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + } } }, "symbol": { diff --git a/package.json b/package.json index 8c6359d13..e7fa1b8ff 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "devDependencies": { "browserify": "14.4.0", "chai": "4.1.2", - "chalk": "2.1.0", + "chalk": "2.4.2", "dependency-check": "2.9.1", "editorconfig": "0.14.2", "eslint": "4.18.2", From 2a092e3321a0b4c83b50749753bcfc7e45b1d338 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 30 Jun 2020 02:01:34 +0000 Subject: [PATCH 11/39] fix: upgrade eslint-plugin-lodash from 2.4.5 to 2.7.0 Snyk has created this PR to upgrade eslint-plugin-lodash from 2.4.5 to 2.7.0. See this package in NPM: https://www.npmjs.com/package/eslint-plugin-lodash See this project in Snyk: https://app.snyk.io/org/postman/project/8519ba8e-6a7d-469a-88b3-7891b4c1c14e?utm_source=github&utm_medium=upgrade-pr --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..5268f581c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1808,9 +1808,9 @@ } }, "eslint-plugin-lodash": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-2.4.5.tgz", - "integrity": "sha1-+drGSds6CNEjGOY1Ih68ROOE3F8=", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-2.7.0.tgz", + "integrity": "sha512-sIEzx85Sy+Higf4W+oLCIyh7ym0OEcmJCzY8ukptlGfkcyVagzYBjhUt1JfkcpT4qZC68+7TzceJSqLu+qwYMg==", "dev": true, "requires": { "lodash": "~4.17.0" diff --git a/package.json b/package.json index 8c6359d13..d5d226cd7 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "editorconfig": "0.14.2", "eslint": "4.18.2", "eslint-plugin-jsdoc": "3.1.3", - "eslint-plugin-lodash": "2.4.5", + "eslint-plugin-lodash": "2.7.0", "eslint-plugin-mocha": "4.11.0", "eslint-plugin-security": "1.4.0", "istanbul": "0.4.5", From a0e7b167419609cff4104a338b82ddc60625cf58 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 30 Jun 2020 02:01:41 +0000 Subject: [PATCH 12/39] fix: upgrade shelljs from 0.7.8 to 0.8.4 Snyk has created this PR to upgrade shelljs from 0.7.8 to 0.8.4. See this package in NPM: https://www.npmjs.com/package/shelljs See this project in Snyk: https://app.snyk.io/org/postman/project/8519ba8e-6a7d-469a-88b3-7891b4c1c14e?utm_source=github&utm_medium=upgrade-pr --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..a4f0ff36a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3345,9 +3345,9 @@ } }, "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "invert-kv": { "version": "2.0.0", @@ -5975,9 +5975,9 @@ } }, "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", diff --git a/package.json b/package.json index 8c6359d13..5c2347ce4 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "async": "2.5.0", "path": "0.12.7", "postman-collection": "3.5.1", - "shelljs": "0.7.8" + "shelljs": "0.8.4" }, "devDependencies": { "browserify": "14.4.0", From af23205632dfddf06fa4a126a049852d1cc798c4 Mon Sep 17 00:00:00 2001 From: Somesh Date: Wed, 1 Jul 2020 02:42:24 +0530 Subject: [PATCH 13/39] Adds additional err check snippet for read response - adds err check for ioutils.ReadAll method - removes unwanted console.log statements --- codegens/golang/lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index 8d344f793..61b747784 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -283,10 +283,11 @@ self = module.exports = { responseSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; responseSnippet += `${indent.repeat(2)}return\n${indent}}\n`; responseSnippet += `${indent}defer res.Body.Close()\n${indent}body, err := ioutil.ReadAll(res.Body)\n\n`; + responseSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; + responseSnippet += `${indent.repeat(2)}return\n${indent}}\n`; responseSnippet += `${indent}fmt.Println(string(body))\n}`; codeSnippet += responseSnippet; - console.log(codeSnippet); callback(null, codeSnippet); }, getOptions: function () { From 208634c1a3828834ed1b5069127f08dccc95d81d Mon Sep 17 00:00:00 2001 From: Somesh Date: Wed, 1 Jul 2020 02:52:38 +0530 Subject: [PATCH 14/39] fixes newline formatting for generated snippets --- codegens/golang/lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index 61b747784..20a91f335 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -282,12 +282,13 @@ self = module.exports = { responseSnippet = `${indent}res, err := client.Do(req)\n`; responseSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; responseSnippet += `${indent.repeat(2)}return\n${indent}}\n`; - responseSnippet += `${indent}defer res.Body.Close()\n${indent}body, err := ioutil.ReadAll(res.Body)\n\n`; + responseSnippet += `${indent}defer res.Body.Close()\n\n${indent}body, err := ioutil.ReadAll(res.Body)\n`; responseSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; responseSnippet += `${indent.repeat(2)}return\n${indent}}\n`; responseSnippet += `${indent}fmt.Println(string(body))\n}`; codeSnippet += responseSnippet; + console.log(codeSnippet); callback(null, codeSnippet); }, getOptions: function () { From 5ddec7257c38c4c16286d351f56b55522a979d14 Mon Sep 17 00:00:00 2001 From: Somesh Date: Wed, 1 Jul 2020 03:15:35 +0530 Subject: [PATCH 15/39] Removes unwanted console logs --- codegens/golang/lib/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index 20a91f335..e1b3fff97 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -288,7 +288,6 @@ self = module.exports = { responseSnippet += `${indent}fmt.Println(string(body))\n}`; codeSnippet += responseSnippet; - console.log(codeSnippet); callback(null, codeSnippet); }, getOptions: function () { From d34b151b06aced51b961a77f0b0f4f288a4c861a Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 1 Jul 2020 02:01:20 +0000 Subject: [PATCH 16/39] fix: upgrade mocha from 5.0.3 to 5.2.0 Snyk has created this PR to upgrade mocha from 5.0.3 to 5.2.0. See this package in NPM: https://www.npmjs.com/package/mocha See this project in Snyk: https://app.snyk.io/org/postman/project/8519ba8e-6a7d-469a-88b3-7891b4c1c14e?utm_source=github&utm_medium=upgrade-pr --- package-lock.json | 39 +++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..e98af09ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2932,9 +2932,9 @@ "dev": true }, "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "handlebars": { @@ -4287,27 +4287,28 @@ } }, "mocha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.3.tgz", - "integrity": "sha512-oi0ylWkmIR+IG8OcQkLGPMWhxu/Gfz9EBW7Mztr6FY4JbrPDDi5y9rb2ncNnajZtr2XHfBP+G5pzS6gEzdAcVQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", - "commander": "2.11.0", + "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", - "growl": "1.10.3", + "growl": "1.10.5", "he": "1.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "4.4.0" + "supports-color": "5.4.0" }, "dependencies": { "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "debug": { @@ -4333,13 +4334,19 @@ "path-is-absolute": "^1.0.0" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^2.0.0" + "has-flag": "^3.0.0" } } } diff --git a/package.json b/package.json index 8c6359d13..09071ed0a 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "js-yaml": "3.13.1", "jsdoc": "3.6.3", "lodash": "4.17.15", - "mocha": "5.0.3", + "mocha": "5.2.0", "newman": "4.5.7", "nyc": "14.1.1", "parse-gitignore": "1.0.1", From f5c6fa2242b1fc5023ca41a364c4d2c5901fdeea Mon Sep 17 00:00:00 2001 From: Richard Groves Date: Thu, 2 Jul 2020 15:41:01 +0100 Subject: [PATCH 17/39] Signal the semaphore on a fail case as well In the guarded fail case the semaphore wasn't being signaled and thus the 'program' would lock up. Added a `semaphore.signal()` to the guard body --- codegens/swift/lib/swift.js | 1 + 1 file changed, 1 insertion(+) diff --git a/codegens/swift/lib/swift.js b/codegens/swift/lib/swift.js index b47d20304..96e0929af 100644 --- a/codegens/swift/lib/swift.js +++ b/codegens/swift/lib/swift.js @@ -367,6 +367,7 @@ self = module.exports = { codeSnippet += '\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n'; codeSnippet += `${indent}guard let data = data else {\n`; codeSnippet += `${indent.repeat(2)}print(String(describing: error))\n`; + codeSnippet += `${indent.repeat(2)}semaphore.signal()`; codeSnippet += `${indent.repeat(2)}return\n`; codeSnippet += `${indent}}\n`; codeSnippet += `${indent}print(String(data: data, encoding: .utf8)!)\n`; From 58eb67bd794b40a34999848c85ebc9ce3119804d Mon Sep 17 00:00:00 2001 From: Richard Groves Date: Thu, 2 Jul 2020 15:47:39 +0100 Subject: [PATCH 18/39] Update swift.js Add missing \n to line --- codegens/swift/lib/swift.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/swift/lib/swift.js b/codegens/swift/lib/swift.js index 96e0929af..355934d6f 100644 --- a/codegens/swift/lib/swift.js +++ b/codegens/swift/lib/swift.js @@ -367,7 +367,7 @@ self = module.exports = { codeSnippet += '\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n'; codeSnippet += `${indent}guard let data = data else {\n`; codeSnippet += `${indent.repeat(2)}print(String(describing: error))\n`; - codeSnippet += `${indent.repeat(2)}semaphore.signal()`; + codeSnippet += `${indent.repeat(2)}semaphore.signal()\n`; codeSnippet += `${indent.repeat(2)}return\n`; codeSnippet += `${indent}}\n`; codeSnippet += `${indent}print(String(data: data, encoding: .utf8)!)\n`; From bee8f4b4e8ec5b3e96f2c96d7f16db2fc1b48dbe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2020 01:13:15 +0000 Subject: [PATCH 19/39] Bump lodash from 4.17.15 to 4.17.19 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] --- package-lock.json | 41 ++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..41118f584 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4002,9 +4002,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -4478,6 +4478,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "mime-db": { "version": "1.42.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", @@ -5142,6 +5148,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, "marked": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", @@ -5180,6 +5191,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5295,6 +5312,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "mime-db": { "version": "1.42.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", @@ -5401,6 +5424,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -6808,6 +6837,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true } } }, diff --git a/package.json b/package.json index 8c6359d13..d78151b1a 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "istanbul": "0.4.5", "js-yaml": "3.13.1", "jsdoc": "3.6.3", - "lodash": "4.17.15", + "lodash": "4.17.19", "mocha": "5.0.3", "newman": "4.5.7", "nyc": "14.1.1", From 7cbb64f52bafa0b9c83912c70cdf98c99b3f5393 Mon Sep 17 00:00:00 2001 From: amymariaparker2401 <45701468+amymariaparker2401@users.noreply.github.com> Date: Tue, 28 Jul 2020 01:19:40 +0100 Subject: [PATCH 20/39] Revert "Added PR template (#183)" This reverts commit 80ec51b624eb7c3d0ddd788883c9d2572e839d99. --- .github/ISSUE_TEMPLATE/Pull_request.md | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/Pull_request.md diff --git a/.github/ISSUE_TEMPLATE/Pull_request.md b/.github/ISSUE_TEMPLATE/Pull_request.md deleted file mode 100644 index 44d73c1e6..000000000 --- a/.github/ISSUE_TEMPLATE/Pull_request.md +++ /dev/null @@ -1,18 +0,0 @@ - **What this PR does** -<< Please describe briefly what this PR is trying to solve >> - -**Changes you made** -<< List all the changes you made >> - -**Screenshot/ CodeSnippet** -<< Attach relevant screenshots or code snippets related to this PR >> - -**Test Configuration**: -<< Please describe the tests that you ran to verify your changes >> - -**Follow up** -<< Anything you want to share >> - - - -*Thanks for contributing!* ❤️ \ No newline at end of file From 48bec3294769de1b0699f3fa9ae00350547b25ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2020 15:10:35 +0000 Subject: [PATCH 21/39] Bump elliptic from 6.4.1 to 6.5.3 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.1 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.4.1...v6.5.3) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..9aa93ee36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1627,9 +1627,9 @@ } }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", From d25b3dc3af0cb1769eea819dc770a704de26b8b4 Mon Sep 17 00:00:00 2001 From: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Date: Fri, 7 Aug 2020 18:13:26 +0100 Subject: [PATCH 22/39] remove spaces around equals sign, as by PEP 8 style guide --- codegens/python-requests/lib/python-requests.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegens/python-requests/lib/python-requests.js b/codegens/python-requests/lib/python-requests.js index 6427c6b4a..cae9d0a91 100644 --- a/codegens/python-requests/lib/python-requests.js +++ b/codegens/python-requests/lib/python-requests.js @@ -166,8 +166,8 @@ self = module.exports = { snippet += `response = requests.request("${request.method}", url, headers=headers`; snippet += request.body && request.body.mode && request.body.mode === 'formdata' ? - ', data = payload, files = files' : ', data = payload'; - snippet += !options.followRedirect ? ', allow_redirects = False' : ''; + ', data=payload, files=files' : ', data=payload'; + snippet += !options.followRedirect ? ', allow_redirects=False' : ''; snippet += options.requestTimeout !== 0 ? `, timeout=${options.requestTimeout}` : ''; snippet += ')\n\n'; snippet += 'print(response.text.encode(\'utf8\'))\n'; From ca86c611c1d0bf2d1e45014d33e038d111e4ccaf Mon Sep 17 00:00:00 2001 From: Max Cobb Date: Mon, 10 Aug 2020 10:25:41 +0100 Subject: [PATCH 23/39] update tests to check for params without spaces --- .../python-requests/lib/util/parseBody.js | 22 +++++++++---------- .../test/unit/converter.test.js | 6 ++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/codegens/python-requests/lib/util/parseBody.js b/codegens/python-requests/lib/util/parseBody.js index 0ba1bee18..e23a3abe9 100644 --- a/codegens/python-requests/lib/util/parseBody.js +++ b/codegens/python-requests/lib/util/parseBody.js @@ -20,11 +20,11 @@ module.exports = function (request, indentation, bodyTrim) { switch (request.body.mode) { case 'raw': if (!_.isEmpty(request.body[request.body.mode])) { - requestBody += `payload = ${sanitize(request.body[request.body.mode], + requestBody += `payload=${sanitize(request.body[request.body.mode], request.body.mode, bodyTrim)}\n`; } else { - requestBody = 'payload = {}\n'; + requestBody = 'payload={}\n'; } return requestBody; // eslint-disable-next-line no-case-declarations @@ -37,7 +37,7 @@ module.exports = function (request, indentation, bodyTrim) { catch (e) { graphqlVariables = {}; } - requestBody += `payload = ${sanitize(JSON.stringify({ + requestBody += `payload=${sanitize(JSON.stringify({ query: query, variables: graphqlVariables }), @@ -50,10 +50,10 @@ module.exports = function (request, indentation, bodyTrim) { return `${sanitize(value.key, request.body.mode, bodyTrim)}=` + `${sanitize(value.value, request.body.mode, bodyTrim)}`; }); - requestBody += `payload = '${bodyDataMap.join('&')}'\n`; + requestBody += `payload='${bodyDataMap.join('&')}'\n`; } else { - requestBody = 'payload = {}\n'; + requestBody = 'payload={}\n'; } return requestBody; case 'formdata': @@ -66,19 +66,19 @@ module.exports = function (request, indentation, bodyTrim) { bodyFileMap = _.map(_.filter(enabledBodyList, {'type': 'file'}), function (value) { return `${indentation}('${value.key}', open('${sanitize(value.src, request.body.mode, bodyTrim)}','rb'))`; }); - requestBody = `payload = {${bodyDataMap.join(',\n')}}\nfiles = [\n${bodyFileMap.join(',\n')}\n]\n`; + requestBody = `payload={${bodyDataMap.join(',\n')}}\nfiles=[\n${bodyFileMap.join(',\n')}\n]\n`; } else { - requestBody = 'payload = {}\nfiles = {}\n'; + requestBody = 'payload={}\nfiles={}\n'; } return requestBody; case 'file': - // return `payload = {open('${request.body[request.body.mode].src}', 'rb').read()\n}`; - return 'payload = ""\n'; + // return `payload={open('${request.body[request.body.mode].src}', 'rb').read()\n}`; + return 'payload=""\n'; default: - return 'payload = {}\n'; + return 'payload={}\n'; } } - return 'payload = {}\n'; + return 'payload={}\n'; } ; diff --git a/codegens/python-requests/test/unit/converter.test.js b/codegens/python-requests/test/unit/converter.test.js index 4792ded39..fa636b67b 100644 --- a/codegens/python-requests/test/unit/converter.test.js +++ b/codegens/python-requests/test/unit/converter.test.js @@ -18,7 +18,7 @@ describe('Python- Requests converter', function () { expect.fail(null, null, err); } expect(snippet).to.be.a('string'); - expect(snippet).to.not.include('allow_redirects = False, allow_redirects = false'); + expect(snippet).to.not.include('allow_redirects=False, allow_redirects=false'); }); }); @@ -31,8 +31,8 @@ describe('Python- Requests converter', function () { expect.fail(null, null, err); } expect(snippet).to.be.a('string'); - expect(snippet).to.include('allow_redirects = False'); - expect(snippet).to.not.include('allow_redirects = false'); + expect(snippet).to.include('allow_redirects=False'); + expect(snippet).to.not.include('allow_redirects=false'); }); }); From a7afb8265e15774950b810129f3d29635bd80c20 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Mon, 17 Aug 2020 02:00:05 +0000 Subject: [PATCH 24/39] fix: package.json & package-lock.json to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-LODASH-590103 --- package-lock.json | 41 ++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..40a938ca8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4002,9 +4002,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -4478,6 +4478,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "mime-db": { "version": "1.42.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", @@ -5142,6 +5148,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, "marked": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", @@ -5180,6 +5191,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -5295,6 +5312,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "mime-db": { "version": "1.42.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", @@ -5401,6 +5424,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -6808,6 +6837,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true } } }, diff --git a/package.json b/package.json index 8c6359d13..04c1f55b5 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "istanbul": "0.4.5", "js-yaml": "3.13.1", "jsdoc": "3.6.3", - "lodash": "4.17.15", + "lodash": "4.17.20", "mocha": "5.0.3", "newman": "4.5.7", "nyc": "14.1.1", From 377d69ba1d0c1939798a7f8276e28edb06357326 Mon Sep 17 00:00:00 2001 From: Charan_Sai <31367352+CSALS@users.noreply.github.com> Date: Thu, 27 Aug 2020 16:22:27 +0530 Subject: [PATCH 25/39] Fix the type of output for http codegen docs --- codegens/http/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/http/README.md b/codegens/http/README.md index 16e6b4546..5b1fb2915 100644 --- a/codegens/http/README.md +++ b/codegens/http/README.md @@ -1,6 +1,6 @@ # codegen-http -> Converts Postman-SDK Request into code snippet for cURL. +> Converts Postman-SDK Request into code snippet for RAW HTTP request. #### Prerequisites To run Code-Gen, ensure that you have NodeJS >= v8. A copy of the NodeJS installable can be downloaded from From d697ec441dcd247629573b32673bf1f958c706d0 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 1 Sep 2020 00:15:45 +0000 Subject: [PATCH 26/39] fix: upgrade follow-redirects from 1.4.1 to 1.13.0 Snyk has created this PR to upgrade follow-redirects from 1.4.1 to 1.13.0. See this package in npm: https://www.npmjs.com/package/follow-redirects See this project in Snyk: https://app.snyk.io/org/postman/project/dc8fae2b-098b-4b49-b9ba-8027ea2c9804?utm_source=github&utm_medium=upgrade-pr --- codegens/nodejs-native/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/nodejs-native/package.json b/codegens/nodejs-native/package.json index 0b68ec9bf..dca4c3f12 100644 --- a/codegens/nodejs-native/package.json +++ b/codegens/nodejs-native/package.json @@ -28,7 +28,7 @@ "homepage": "https://github.com/postmanlabs/code-generators/tree/master/codegens/nodejs-native", "dependencies": {}, "devDependencies": { - "follow-redirects": "1.4.1" + "follow-redirects": "1.13.0" }, "engines": { "node": ">=8" From c692ab7768eb46b21e928647271e860caff5d515 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Sep 2020 19:54:55 +0000 Subject: [PATCH 27/39] Bump yargs-parser from 13.1.0 to 13.1.2 Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 13.1.0 to 13.1.2. - [Release notes](https://github.com/yargs/yargs-parser/releases) - [Changelog](https://github.com/yargs/yargs-parser/blob/master/docs/CHANGELOG-full.md) - [Commits](https://github.com/yargs/yargs-parser/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5d6b0519..64164ce33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7176,9 +7176,9 @@ } }, "yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", From a11a1330a2f151559be89bebb4f585f102429c32 Mon Sep 17 00:00:00 2001 From: HuyNVuong Date: Mon, 14 Sep 2020 21:12:30 -0500 Subject: [PATCH 28/39] Update NodeJs GraphQL query to support multiline string --- codegens/nodejs-axios/lib/parseRequest.js | 2 +- codegens/nodejs-native/lib/parseRequest.js | 2 +- codegens/nodejs-request/lib/parseRequest.js | 2 +- codegens/nodejs-unirest/lib/parseRequest.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/codegens/nodejs-axios/lib/parseRequest.js b/codegens/nodejs-axios/lib/parseRequest.js index 1640939ed..4e5e96f35 100644 --- a/codegens/nodejs-axios/lib/parseRequest.js +++ b/codegens/nodejs-axios/lib/parseRequest.js @@ -111,7 +111,7 @@ function parseGraphQL (body, trim, indentString, ES6_enabled) { graphqlVariables = {}; } bodySnippet = varDeclare + ' data = JSON.stringify({\n'; - bodySnippet += `${indentString}query: '${sanitize(query, trim)}',\n`; + bodySnippet += `${indentString}query: \`${sanitize(query, trim)}\`,\n`; bodySnippet += `${indentString}variables: ${JSON.stringify(graphqlVariables)}\n});\n`; return bodySnippet; } diff --git a/codegens/nodejs-native/lib/parseRequest.js b/codegens/nodejs-native/lib/parseRequest.js index a174ee57e..304953fd9 100644 --- a/codegens/nodejs-native/lib/parseRequest.js +++ b/codegens/nodejs-native/lib/parseRequest.js @@ -101,7 +101,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return 'JSON.stringify({\n' + - `${indentString}query: "${sanitize(query, trimBody)}",\n` + + `${indentString}query: \`${sanitize(query, trimBody)}\`,\n` + `${indentString}variables: ${JSON.stringify(graphqlVariables)}\n})`; case 'formdata': return generateMultipartFormData(requestbody); diff --git a/codegens/nodejs-request/lib/parseRequest.js b/codegens/nodejs-request/lib/parseRequest.js index 75c99fd8f..fdd7be7b2 100644 --- a/codegens/nodejs-request/lib/parseRequest.js +++ b/codegens/nodejs-request/lib/parseRequest.js @@ -117,7 +117,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return 'body: JSON.stringify({\n' + - `${indentString.repeat(2)}query: '${sanitize(query, trimBody)}',\n` + + `${indentString.repeat(2)}query: \`${sanitize(query, trimBody)}\`,\n` + `${indentString.repeat(2)}variables: ${JSON.stringify(graphqlVariables)}\n` + `${indentString}})`; case 'formdata': diff --git a/codegens/nodejs-unirest/lib/parseRequest.js b/codegens/nodejs-unirest/lib/parseRequest.js index 0501889f2..8853396f3 100644 --- a/codegens/nodejs-unirest/lib/parseRequest.js +++ b/codegens/nodejs-unirest/lib/parseRequest.js @@ -81,7 +81,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return indentString + '.send(JSON.stringify({\n' + - `${indentString.repeat(2)}query: '${sanitize(query, trimBody)}',\n` + + `${indentString.repeat(2)}query: \`${sanitize(query, trimBody)}\`,\n` + `${indentString.repeat(2)}variables: ${JSON.stringify(graphqlVariables)}\n` + `${indentString}}))\n`; case 'urlencoded': From 964438350f46c203f073bbcff391526997f65a9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2020 12:16:51 +0000 Subject: [PATCH 29/39] Bump node-fetch from 2.1.1 to 2.6.1 in /codegens/js-fetch Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.1.1 to 2.6.1. - [Release notes](https://github.com/bitinn/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md) - [Commits](https://github.com/bitinn/node-fetch/compare/v2.1.1...v2.6.1) Signed-off-by: dependabot[bot] --- codegens/js-fetch/npm-shrinkwrap.json | 34 +++++++++++++-------------- codegens/js-fetch/package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/codegens/js-fetch/npm-shrinkwrap.json b/codegens/js-fetch/npm-shrinkwrap.json index fe8069104..42b5ce82c 100644 --- a/codegens/js-fetch/npm-shrinkwrap.json +++ b/codegens/js-fetch/npm-shrinkwrap.json @@ -11,9 +11,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -26,35 +26,35 @@ "dev": true }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "node-fetch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.1.tgz", - "integrity": "sha1-NpynC4L1DIZJYQSmx3bSdPTkotQ=", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true } } diff --git a/codegens/js-fetch/package.json b/codegens/js-fetch/package.json index f68ffd0e3..3a8c31983 100644 --- a/codegens/js-fetch/package.json +++ b/codegens/js-fetch/package.json @@ -29,7 +29,7 @@ "dependencies": {}, "devDependencies": { "form-data": "2.5.1", - "node-fetch": "2.1.1" + "node-fetch": "2.6.1" }, "engines": { "node": ">=8" From ac221ca06fc7ebfbecceb3c9fe2f78d6f954db19 Mon Sep 17 00:00:00 2001 From: Ankit Saini Date: Mon, 28 Sep 2020 12:20:14 +0530 Subject: [PATCH 30/39] Add return statement if err produced in NewRequest We should return from the function if an err is produced in all cases. --- codegens/golang/lib/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index e1b3fff97..f5a373963 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -257,7 +257,8 @@ self = module.exports = { else { codeSnippet += `${indent}req, err := http.NewRequest(method, url, nil)\n\n`; } - codeSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n${indent}}\n`; + codeSnippet += `${indent}if err != nil {\n${indent.repeat(2)}fmt.Println(err)\n`; + codeSnippet += `${indent.repeat(2)}return\n${indent}}\n`; if (request.body && !request.headers.has('Content-Type')) { if (request.body.mode === 'file') { request.addHeader({ From f6b64a873d91a4046de123443bca8a708765e62e Mon Sep 17 00:00:00 2001 From: Ankit Date: Mon, 28 Sep 2020 13:52:50 +0530 Subject: [PATCH 31/39] Add return statement in error handling code --- codegens/golang/lib/index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index f5a373963..48d7095ac 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -78,8 +78,9 @@ function parseFormData (body, trim, indent) { errFile${index + 1} := writer.CreateFormFile("${sanitize(data.key, trim)}",` + `filepath.Base("${data.src}"))\n`; bodySnippet += `${indent}_, errFile${index + 1} = io.Copy(part${index + 1}, file)\n`; - bodySnippet += `${indent}if errFile${index + 1} !=nil { - \n${indent.repeat(2)}fmt.Println(errFile${index + 1})\n${indent}}\n`; + bodySnippet += `${indent}if errFile${index + 1} != nil {` + + `\n${indent.repeat(2)}fmt.Println(errFile${index + 1})\n` + + `${indent.repeat(2)}return\n${indent}}\n`; } else { bodySnippet += `${indent}_ = writer.WriteField("${sanitize(data.key, trim)}",`; @@ -88,7 +89,8 @@ function parseFormData (body, trim, indent) { } }); bodySnippet += `${indent}err := writer.Close()\n${indent}if err != nil ` + - `{\n${indent.repeat(2)}fmt.Println(err)\n${indent}}\n`; + `{\n${indent.repeat(2)}fmt.Println(err)\n` + + `${indent.repeat(2)}return\n${indent}}\n`; return bodySnippet; } From 238f9e16bea6991c9407bfafe80b691a58aa1945 Mon Sep 17 00:00:00 2001 From: Ankit Date: Mon, 28 Sep 2020 14:13:32 +0530 Subject: [PATCH 32/39] Remove space from end of lines --- codegens/golang/lib/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegens/golang/lib/index.js b/codegens/golang/lib/index.js index 48d7095ac..53fa5026c 100644 --- a/codegens/golang/lib/index.js +++ b/codegens/golang/lib/index.js @@ -78,8 +78,8 @@ function parseFormData (body, trim, indent) { errFile${index + 1} := writer.CreateFormFile("${sanitize(data.key, trim)}",` + `filepath.Base("${data.src}"))\n`; bodySnippet += `${indent}_, errFile${index + 1} = io.Copy(part${index + 1}, file)\n`; - bodySnippet += `${indent}if errFile${index + 1} != nil {` + - `\n${indent.repeat(2)}fmt.Println(errFile${index + 1})\n` + + bodySnippet += `${indent}if errFile${index + 1} != nil {` + + `\n${indent.repeat(2)}fmt.Println(errFile${index + 1})\n` + `${indent.repeat(2)}return\n${indent}}\n`; } else { From e543f8b6d969d290dac98a9fd4ce985c3ffd5873 Mon Sep 17 00:00:00 2001 From: Ankit Date: Tue, 29 Sep 2020 10:37:54 +0530 Subject: [PATCH 33/39] Add test to verify error handling in go codegen --- codegens/golang/test/unit/convert.test.js | 49 +++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/codegens/golang/test/unit/convert.test.js b/codegens/golang/test/unit/convert.test.js index d8c982e1a..4e300f53f 100644 --- a/codegens/golang/test/unit/convert.test.js +++ b/codegens/golang/test/unit/convert.test.js @@ -165,5 +165,54 @@ describe('Golang convert function', function () { expect(snippet).to.include('writer.CreateFormFile("invalid src",filepath.Base("/path/to/file"))'); }); }); + + it('should add error handling code everytime an error is possible', function () { + var requests = []; + requests.push(new sdk.Request({ + 'method': 'GET', + 'header': [ + { + 'key': 'foo', + 'value': 'bar' + } + ], + 'url': { + 'raw': 'https://example.com', + 'protocol': 'http', + 'host': [ + 'example', + 'com' + ] + } + })); + requests.push(new sdk.Request({ + 'method': 'POST', + 'header': [], + 'body': { + 'mode': 'raw', + 'raw': 'hello world' + }, + 'url': { + 'raw': 'https://postman-echo.com/post', + 'protocol': 'https', + 'host': [ + 'postman-echo', + 'com' + ], + 'path': [ + 'post' + ] + } + })); + requests.forEach(function (request) { + convert(request, {}, function (error, snippet) { + if (error) { + expect.fail(null, null, error); + } + expect(snippet).to.be.a('string'); + expect(snippet.match('err := ').length).to.be.equal(snippet.match('if err != nil {').length); + }); + }); + }); }); }); From df5dcc8ef37270cc87bf529a34e2dad1c115feb3 Mon Sep 17 00:00:00 2001 From: Ankit Date: Wed, 30 Sep 2020 21:21:47 +0530 Subject: [PATCH 34/39] Add space before '=' to comply with PEP8 --- codegens/python-requests/lib/python-requests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/python-requests/lib/python-requests.js b/codegens/python-requests/lib/python-requests.js index cae9d0a91..b189aa663 100644 --- a/codegens/python-requests/lib/python-requests.js +++ b/codegens/python-requests/lib/python-requests.js @@ -24,7 +24,7 @@ function getheaders (request, indentation) { }); return `headers = {\n${headerMap.join(',\n')}\n}\n`; } - return 'headers= {}\n'; + return 'headers = {}\n'; } self = module.exports = { From 7db2f94efae0cd6e03095f0e61e6dc89668513e7 Mon Sep 17 00:00:00 2001 From: Ankit Date: Mon, 5 Oct 2020 22:12:00 +0530 Subject: [PATCH 35/39] Fix unit test, GET requests should not have a body --- codegens/http/test/unit/converter.test.js | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/codegens/http/test/unit/converter.test.js b/codegens/http/test/unit/converter.test.js index c7858cd0f..79056868f 100644 --- a/codegens/http/test/unit/converter.test.js +++ b/codegens/http/test/unit/converter.test.js @@ -200,22 +200,16 @@ describe('Converter test', function () { it('should generate valid snippet with Content-Length header if request has body', function () { var request = new Request({ - 'method': 'GET', - 'header': [ - { - 'key': ' key_containing_whitespaces ', - 'value': ' value_containing_whitespaces ' - } - ], + 'method': 'POST', 'body': { 'mode': 'raw', 'raw': 'aaaaa' }, 'url': { - 'raw': 'https://google.com', + 'raw': 'https://example.com', 'protocol': 'https', 'host': [ - 'google', + 'example', 'com' ] } From f037bcf5f62255504fc8e5079b12c5d3d6e54a18 Mon Sep 17 00:00:00 2001 From: Ankit Date: Fri, 9 Oct 2020 13:35:44 +0530 Subject: [PATCH 36/39] Do not sanitize inside backticks --- codegens/nodejs-axios/lib/parseRequest.js | 2 +- codegens/nodejs-native/lib/parseRequest.js | 2 +- codegens/nodejs-request/lib/parseRequest.js | 2 +- codegens/nodejs-unirest/lib/parseRequest.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/codegens/nodejs-axios/lib/parseRequest.js b/codegens/nodejs-axios/lib/parseRequest.js index 4e5e96f35..521f398bb 100644 --- a/codegens/nodejs-axios/lib/parseRequest.js +++ b/codegens/nodejs-axios/lib/parseRequest.js @@ -111,7 +111,7 @@ function parseGraphQL (body, trim, indentString, ES6_enabled) { graphqlVariables = {}; } bodySnippet = varDeclare + ' data = JSON.stringify({\n'; - bodySnippet += `${indentString}query: \`${sanitize(query, trim)}\`,\n`; + bodySnippet += `${indentString}query: \`${query.trim()}\`,\n`; bodySnippet += `${indentString}variables: ${JSON.stringify(graphqlVariables)}\n});\n`; return bodySnippet; } diff --git a/codegens/nodejs-native/lib/parseRequest.js b/codegens/nodejs-native/lib/parseRequest.js index 304953fd9..631aa32d9 100644 --- a/codegens/nodejs-native/lib/parseRequest.js +++ b/codegens/nodejs-native/lib/parseRequest.js @@ -101,7 +101,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return 'JSON.stringify({\n' + - `${indentString}query: \`${sanitize(query, trimBody)}\`,\n` + + `${indentString}query: \`${query.trim()}\`,\n` + `${indentString}variables: ${JSON.stringify(graphqlVariables)}\n})`; case 'formdata': return generateMultipartFormData(requestbody); diff --git a/codegens/nodejs-request/lib/parseRequest.js b/codegens/nodejs-request/lib/parseRequest.js index fdd7be7b2..386c2e5e1 100644 --- a/codegens/nodejs-request/lib/parseRequest.js +++ b/codegens/nodejs-request/lib/parseRequest.js @@ -117,7 +117,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return 'body: JSON.stringify({\n' + - `${indentString.repeat(2)}query: \`${sanitize(query, trimBody)}\`,\n` + + `${indentString.repeat(2)}query: \`${query.trim()}\`,\n` + `${indentString.repeat(2)}variables: ${JSON.stringify(graphqlVariables)}\n` + `${indentString}})`; case 'formdata': diff --git a/codegens/nodejs-unirest/lib/parseRequest.js b/codegens/nodejs-unirest/lib/parseRequest.js index 8853396f3..715e5ee09 100644 --- a/codegens/nodejs-unirest/lib/parseRequest.js +++ b/codegens/nodejs-unirest/lib/parseRequest.js @@ -81,7 +81,7 @@ function parseBody (requestbody, indentString, trimBody, contentType) { graphqlVariables = {}; } return indentString + '.send(JSON.stringify({\n' + - `${indentString.repeat(2)}query: \`${sanitize(query, trimBody)}\`,\n` + + `${indentString.repeat(2)}query: \`${query.trim()}\`,\n` + `${indentString.repeat(2)}variables: ${JSON.stringify(graphqlVariables)}\n` + `${indentString}}))\n`; case 'urlencoded': From a65009f1c35bc4cdf45fe2f8abd44148d057c46b Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 9 Oct 2020 23:59:47 +0000 Subject: [PATCH 37/39] fix: upgrade form-data from 2.3.2 to 2.5.1 Snyk has created this PR to upgrade form-data from 2.3.2 to 2.5.1. See this package in npm: https://www.npmjs.com/package/form-data See this project in Snyk: https://app.snyk.io/org/postman/project/85789e56-32d6-4d40-990b-88041419cb97?utm_source=github&utm_medium=upgrade-pr --- codegens/powershell-restmethod/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegens/powershell-restmethod/package.json b/codegens/powershell-restmethod/package.json index cd728de5d..866e06758 100644 --- a/codegens/powershell-restmethod/package.json +++ b/codegens/powershell-restmethod/package.json @@ -27,7 +27,7 @@ "homepage": "https://github.com/postmanlabs/code-generators/tree/master/codegens/powershell-restmethod", "dependencies": {}, "devDependencies": { - "form-data": "2.3.2", + "form-data": "2.5.1", "node-powershell": "4.0.0" }, "engines": { From 9236197b256957ba4a42f7e30b138c47ec24d013 Mon Sep 17 00:00:00 2001 From: umeshp7 <31915995+umeshp7@users.noreply.github.com> Date: Thu, 15 Oct 2020 06:40:10 +0530 Subject: [PATCH 38/39] 1.0.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc168f05c..c9634a606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "postman-code-generators", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 6220f9752..19c461ded 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "postman-code-generators", - "version": "1.0.1", + "version": "1.0.2", "description": "Generates code snippets for a postman collection", "main": "index.js", "directories": { From 29f3f690219e59f617bf5e3e14c1e8f12a3b6978 Mon Sep 17 00:00:00 2001 From: umeshp7 <31915995+umeshp7@users.noreply.github.com> Date: Thu, 15 Oct 2020 06:42:25 +0530 Subject: [PATCH 39/39] Changelog for 1.0.2 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 599d7f5ff..666bbee9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +v1.0.2 (Oct 15, 2020) +* Fixed spaces around variables and arguments in Python codgen to comply with PEP 8. +* Added Content-Length header to generated HTTP snippets. +* Switched to multiline strings for Raw bodies in Go. +* Stopped manually encoding response bodes in `utf8` for Python-requests. +* Removed unnecessary semicolons at the end of statements in Ruby. +* Fixed wrong name of HTTP codegen in README + v1.0.1 (Jun 29, 2020) - Fix for - [8674](https://github.com/postmanlabs/postman-app-support/issues/8674): Add URL sanitization for quotes in cURL, Java Unirest, NodeJS Native, Python http.client, and Swift.