@readme/httpsnippet 3.1.3 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +63 -62
  2. package/dist/package.json +86 -0
  3. package/dist/src/fixtures/customTarget.js +15 -0
  4. package/dist/src/fixtures/mimetypes.js +77 -0
  5. package/dist/src/fixtures/requests/application-form-encoded.js +69 -0
  6. package/dist/src/fixtures/requests/application-json.js +72 -0
  7. package/dist/src/fixtures/requests/cookies.js +51 -0
  8. package/dist/src/fixtures/requests/custom-method.js +41 -0
  9. package/dist/src/fixtures/requests/full.js +99 -0
  10. package/dist/src/fixtures/requests/headers.js +56 -0
  11. package/dist/src/fixtures/requests/http-insecure.js +45 -0
  12. package/dist/src/fixtures/requests/jsonObj-multiline.js +59 -0
  13. package/dist/src/fixtures/requests/jsonObj-null-value.js +61 -0
  14. package/dist/src/fixtures/requests/multipart-data.js +72 -0
  15. package/dist/src/fixtures/requests/multipart-file.js +65 -0
  16. package/dist/src/fixtures/requests/multipart-form-data-no-params.js +56 -0
  17. package/dist/src/fixtures/requests/multipart-form-data.js +64 -0
  18. package/dist/src/fixtures/requests/nested.js +64 -0
  19. package/dist/src/fixtures/requests/query-encoded.js +59 -0
  20. package/dist/src/fixtures/requests/query.js +64 -0
  21. package/dist/src/fixtures/requests/short.js +45 -0
  22. package/dist/src/fixtures/requests/text-plain.js +57 -0
  23. package/dist/src/fixtures/runCustomFixtures.js +77 -0
  24. package/dist/src/helpers/code-builder.js +91 -0
  25. package/dist/src/helpers/form-data.js +157 -0
  26. package/dist/src/helpers/har-validator.js +76 -0
  27. package/dist/src/helpers/headers.js +33 -0
  28. package/dist/src/helpers/reducer.js +19 -0
  29. package/dist/src/helpers/shell.js +20 -0
  30. package/dist/src/helpers/utils.js +21 -0
  31. package/dist/src/index.js +285 -0
  32. package/dist/src/targets/c/libcurl/client.js +43 -0
  33. package/dist/src/targets/c/target.js +15 -0
  34. package/dist/src/targets/clojure/clj_http/client.js +184 -0
  35. package/dist/src/targets/clojure/target.js +15 -0
  36. package/dist/src/targets/csharp/httpclient/client.js +162 -0
  37. package/dist/src/targets/csharp/restsharp/client.js +38 -0
  38. package/dist/src/targets/csharp/target.js +17 -0
  39. package/dist/src/targets/go/native/client.js +122 -0
  40. package/dist/src/targets/go/target.js +15 -0
  41. package/dist/src/targets/http/http1.1/client.js +79 -0
  42. package/dist/src/targets/http/target.js +15 -0
  43. package/dist/src/targets/java/asynchttp/client.js +53 -0
  44. package/dist/src/targets/java/nethttp/client.js +52 -0
  45. package/dist/src/targets/java/okhttp/client.js +79 -0
  46. package/dist/src/targets/java/target.js +21 -0
  47. package/dist/src/targets/java/unirest/client.js +53 -0
  48. package/dist/src/targets/javascript/axios/client.js +101 -0
  49. package/dist/src/targets/javascript/axios/fixtures/application-form-encoded.js +22 -0
  50. package/dist/src/targets/javascript/axios/fixtures/application-json.js +26 -0
  51. package/dist/src/targets/javascript/axios/fixtures/cookies.js +18 -0
  52. package/dist/src/targets/javascript/axios/fixtures/custom-method.js +14 -0
  53. package/dist/src/targets/javascript/axios/fixtures/full.js +26 -0
  54. package/dist/src/targets/javascript/axios/fixtures/headers.js +18 -0
  55. package/dist/src/targets/javascript/axios/fixtures/http-insecure.js +14 -0
  56. package/dist/src/targets/javascript/axios/fixtures/jsonObj-multiline.js +19 -0
  57. package/dist/src/targets/javascript/axios/fixtures/jsonObj-null-value.js +19 -0
  58. package/dist/src/targets/javascript/axios/fixtures/multipart-data.js +22 -0
  59. package/dist/src/targets/javascript/axios/fixtures/multipart-file.js +21 -0
  60. package/dist/src/targets/javascript/axios/fixtures/multipart-form-data-no-params.js +18 -0
  61. package/dist/src/targets/javascript/axios/fixtures/multipart-form-data.js +21 -0
  62. package/dist/src/targets/javascript/axios/fixtures/nested.js +18 -0
  63. package/dist/src/targets/javascript/axios/fixtures/query-encoded.js +21 -0
  64. package/dist/src/targets/javascript/axios/fixtures/query.js +18 -0
  65. package/dist/src/targets/javascript/axios/fixtures/short.js +14 -0
  66. package/dist/src/targets/javascript/axios/fixtures/text-plain.js +19 -0
  67. package/dist/src/targets/javascript/fetch/client.js +115 -0
  68. package/dist/src/targets/javascript/fetch/fixtures/application-form-encoded.js +9 -0
  69. package/dist/src/targets/javascript/fetch/fixtures/application-json.js +16 -0
  70. package/dist/src/targets/javascript/fetch/fixtures/cookies.js +5 -0
  71. package/dist/src/targets/javascript/fetch/fixtures/custom-method.js +5 -0
  72. package/dist/src/targets/javascript/fetch/fixtures/full.js +13 -0
  73. package/dist/src/targets/javascript/fetch/fixtures/headers.js +8 -0
  74. package/dist/src/targets/javascript/fetch/fixtures/http-insecure.js +5 -0
  75. package/dist/src/targets/javascript/fetch/fixtures/jsonObj-multiline.js +9 -0
  76. package/dist/src/targets/javascript/fetch/fixtures/jsonObj-null-value.js +9 -0
  77. package/dist/src/targets/javascript/fetch/fixtures/multipart-data.js +9 -0
  78. package/dist/src/targets/javascript/fetch/fixtures/multipart-file.js +8 -0
  79. package/dist/src/targets/javascript/fetch/fixtures/multipart-form-data-no-params.js +5 -0
  80. package/dist/src/targets/javascript/fetch/fixtures/multipart-form-data.js +8 -0
  81. package/dist/src/targets/javascript/fetch/fixtures/nested.js +5 -0
  82. package/dist/src/targets/javascript/fetch/fixtures/query-encoded.js +5 -0
  83. package/dist/src/targets/javascript/fetch/fixtures/query.js +5 -0
  84. package/dist/src/targets/javascript/fetch/fixtures/short.js +5 -0
  85. package/dist/src/targets/javascript/fetch/fixtures/text-plain.js +5 -0
  86. package/dist/src/targets/javascript/jquery/client.js +93 -0
  87. package/dist/src/targets/javascript/jquery/fixtures/application-form-encoded.js +17 -0
  88. package/dist/src/targets/javascript/jquery/fixtures/application-json.js +15 -0
  89. package/dist/src/targets/javascript/jquery/fixtures/cookies.js +13 -0
  90. package/dist/src/targets/javascript/jquery/fixtures/custom-method.js +11 -0
  91. package/dist/src/targets/javascript/jquery/fixtures/full.js +18 -0
  92. package/dist/src/targets/javascript/jquery/fixtures/headers.js +15 -0
  93. package/dist/src/targets/javascript/jquery/fixtures/http-insecure.js +11 -0
  94. package/dist/src/targets/javascript/jquery/fixtures/jsonObj-multiline.js +15 -0
  95. package/dist/src/targets/javascript/jquery/fixtures/jsonObj-null-value.js +15 -0
  96. package/dist/src/targets/javascript/jquery/fixtures/multipart-data.js +18 -0
  97. package/dist/src/targets/javascript/jquery/fixtures/multipart-file.js +17 -0
  98. package/dist/src/targets/javascript/jquery/fixtures/multipart-form-data-no-params.js +13 -0
  99. package/dist/src/targets/javascript/jquery/fixtures/multipart-form-data.js +17 -0
  100. package/dist/src/targets/javascript/jquery/fixtures/nested.js +11 -0
  101. package/dist/src/targets/javascript/jquery/fixtures/query-encoded.js +11 -0
  102. package/dist/src/targets/javascript/jquery/fixtures/query.js +11 -0
  103. package/dist/src/targets/javascript/jquery/fixtures/short.js +11 -0
  104. package/dist/src/targets/javascript/jquery/fixtures/text-plain.js +14 -0
  105. package/dist/src/targets/javascript/target.js +21 -0
  106. package/dist/src/targets/javascript/xhr/client.js +90 -0
  107. package/dist/src/targets/javascript/xhr/fixtures/application-form-encoded.js +12 -0
  108. package/dist/src/targets/javascript/xhr/fixtures/application-json.js +31 -0
  109. package/dist/src/targets/javascript/xhr/fixtures/cookies.js +12 -0
  110. package/dist/src/targets/javascript/xhr/fixtures/cors.js +10 -0
  111. package/dist/src/targets/javascript/xhr/fixtures/custom-method.js +11 -0
  112. package/dist/src/targets/javascript/xhr/fixtures/full.js +14 -0
  113. package/dist/src/targets/javascript/xhr/fixtures/headers.js +14 -0
  114. package/dist/src/targets/javascript/xhr/fixtures/http-insecure.js +11 -0
  115. package/dist/src/targets/javascript/xhr/fixtures/jsonObj-multiline.js +14 -0
  116. package/dist/src/targets/javascript/xhr/fixtures/jsonObj-null-value.js +14 -0
  117. package/dist/src/targets/javascript/xhr/fixtures/multipart-data.js +13 -0
  118. package/dist/src/targets/javascript/xhr/fixtures/multipart-file.js +12 -0
  119. package/dist/src/targets/javascript/xhr/fixtures/multipart-form-data-no-params.js +11 -0
  120. package/dist/src/targets/javascript/xhr/fixtures/multipart-form-data.js +12 -0
  121. package/dist/src/targets/javascript/xhr/fixtures/nested.js +11 -0
  122. package/dist/src/targets/javascript/xhr/fixtures/query-encoded.js +11 -0
  123. package/dist/src/targets/javascript/xhr/fixtures/query.js +11 -0
  124. package/dist/src/targets/javascript/xhr/fixtures/short.js +11 -0
  125. package/dist/src/targets/javascript/xhr/fixtures/text-plain.js +12 -0
  126. package/dist/src/targets/kotlin/okhttp/client.js +79 -0
  127. package/dist/src/targets/kotlin/target.js +15 -0
  128. package/dist/src/targets/node/axios/client.js +87 -0
  129. package/dist/src/targets/node/axios/fixtures/application-form-encoded.js +19 -0
  130. package/dist/src/targets/node/axios/fixtures/application-json.js +22 -0
  131. package/dist/src/targets/node/axios/fixtures/cookies.js +14 -0
  132. package/dist/src/targets/node/axios/fixtures/custom-method.js +10 -0
  133. package/dist/src/targets/node/axios/fixtures/full.js +22 -0
  134. package/dist/src/targets/node/axios/fixtures/headers.js +14 -0
  135. package/dist/src/targets/node/axios/fixtures/http-insecure.js +10 -0
  136. package/dist/src/targets/node/axios/fixtures/jsonObj-multiline.js +15 -0
  137. package/dist/src/targets/node/axios/fixtures/jsonObj-null-value.js +15 -0
  138. package/dist/src/targets/node/axios/fixtures/multipart-data.js +15 -0
  139. package/dist/src/targets/node/axios/fixtures/multipart-file.js +15 -0
  140. package/dist/src/targets/node/axios/fixtures/multipart-form-data-no-params.js +14 -0
  141. package/dist/src/targets/node/axios/fixtures/multipart-form-data.js +15 -0
  142. package/dist/src/targets/node/axios/fixtures/nested.js +13 -0
  143. package/dist/src/targets/node/axios/fixtures/query-encoded.js +13 -0
  144. package/dist/src/targets/node/axios/fixtures/query.js +13 -0
  145. package/dist/src/targets/node/axios/fixtures/short.js +10 -0
  146. package/dist/src/targets/node/axios/fixtures/text-plain.js +15 -0
  147. package/dist/src/targets/node/fetch/client.js +149 -0
  148. package/dist/src/targets/node/fetch/fixtures/application-form-encoded.js +15 -0
  149. package/dist/src/targets/node/fetch/fixtures/application-json.js +18 -0
  150. package/dist/src/targets/node/fetch/fixtures/cookies.js +7 -0
  151. package/dist/src/targets/node/fetch/fixtures/custom-method.js +7 -0
  152. package/dist/src/targets/node/fetch/fixtures/full.js +18 -0
  153. package/dist/src/targets/node/fetch/fixtures/headers.js +10 -0
  154. package/dist/src/targets/node/fetch/fixtures/http-insecure.js +7 -0
  155. package/dist/src/targets/node/fetch/fixtures/jsonObj-multiline.js +11 -0
  156. package/dist/src/targets/node/fetch/fixtures/jsonObj-null-value.js +11 -0
  157. package/dist/src/targets/node/fetch/fixtures/multipart-data.js +13 -0
  158. package/dist/src/targets/node/fetch/fixtures/multipart-file.js +12 -0
  159. package/dist/src/targets/node/fetch/fixtures/multipart-form-data-no-params.js +7 -0
  160. package/dist/src/targets/node/fetch/fixtures/multipart-form-data.js +11 -0
  161. package/dist/src/targets/node/fetch/fixtures/nested.js +7 -0
  162. package/dist/src/targets/node/fetch/fixtures/query-encoded.js +7 -0
  163. package/dist/src/targets/node/fetch/fixtures/query.js +7 -0
  164. package/dist/src/targets/node/fetch/fixtures/short.js +7 -0
  165. package/dist/src/targets/node/fetch/fixtures/text-plain.js +7 -0
  166. package/dist/src/targets/node/native/client.js +91 -0
  167. package/dist/src/targets/node/native/fixtures/application-form-encoded.js +24 -0
  168. package/dist/src/targets/node/native/fixtures/application-json.js +30 -0
  169. package/dist/src/targets/node/native/fixtures/cookies.js +22 -0
  170. package/dist/src/targets/node/native/fixtures/custom-method.js +20 -0
  171. package/dist/src/targets/node/native/fixtures/full.js +26 -0
  172. package/dist/src/targets/node/native/fixtures/headers.js +24 -0
  173. package/dist/src/targets/node/native/fixtures/http-insecure.js +20 -0
  174. package/dist/src/targets/node/native/fixtures/jsonObj-multiline.js +23 -0
  175. package/dist/src/targets/node/native/fixtures/jsonObj-null-value.js +23 -0
  176. package/dist/src/targets/node/native/fixtures/multipart-data.js +23 -0
  177. package/dist/src/targets/node/native/fixtures/multipart-file.js +23 -0
  178. package/dist/src/targets/node/native/fixtures/multipart-form-data-no-params.js +22 -0
  179. package/dist/src/targets/node/native/fixtures/multipart-form-data.js +23 -0
  180. package/dist/src/targets/node/native/fixtures/nested.js +20 -0
  181. package/dist/src/targets/node/native/fixtures/query-encoded.js +20 -0
  182. package/dist/src/targets/node/native/fixtures/query.js +20 -0
  183. package/dist/src/targets/node/native/fixtures/short.js +20 -0
  184. package/dist/src/targets/node/native/fixtures/text-plain.js +23 -0
  185. package/dist/src/targets/node/request/client.js +116 -0
  186. package/dist/src/targets/node/request/fixtures/application-form-encoded.js +13 -0
  187. package/dist/src/targets/node/request/fixtures/application-json.js +21 -0
  188. package/dist/src/targets/node/request/fixtures/cookies.js +11 -0
  189. package/dist/src/targets/node/request/fixtures/custom-method.js +8 -0
  190. package/dist/src/targets/node/request/fixtures/full.js +20 -0
  191. package/dist/src/targets/node/request/fixtures/headers.js +12 -0
  192. package/dist/src/targets/node/request/fixtures/http-insecure.js +8 -0
  193. package/dist/src/targets/node/request/fixtures/jsonObj-multiline.js +14 -0
  194. package/dist/src/targets/node/request/fixtures/jsonObj-null-value.js +14 -0
  195. package/dist/src/targets/node/request/fixtures/multipart-data.js +20 -0
  196. package/dist/src/targets/node/request/fixtures/multipart-file.js +19 -0
  197. package/dist/src/targets/node/request/fixtures/multipart-form-data-no-params.js +12 -0
  198. package/dist/src/targets/node/request/fixtures/multipart-form-data.js +13 -0
  199. package/dist/src/targets/node/request/fixtures/nested.js +11 -0
  200. package/dist/src/targets/node/request/fixtures/query-encoded.js +11 -0
  201. package/dist/src/targets/node/request/fixtures/query.js +11 -0
  202. package/dist/src/targets/node/request/fixtures/short.js +8 -0
  203. package/dist/src/targets/node/request/fixtures/text-plain.js +13 -0
  204. package/dist/src/targets/node/target.js +24 -0
  205. package/dist/src/targets/node/unirest/client.js +119 -0
  206. package/dist/src/targets/node/unirest/fixtures/application-form-encoded.js +15 -0
  207. package/dist/src/targets/node/unirest/fixtures/application-json.js +32 -0
  208. package/dist/src/targets/node/unirest/fixtures/cookies.js +12 -0
  209. package/dist/src/targets/node/unirest/fixtures/custom-method.js +8 -0
  210. package/dist/src/targets/node/unirest/fixtures/full.js +27 -0
  211. package/dist/src/targets/node/unirest/fixtures/headers.js +13 -0
  212. package/dist/src/targets/node/unirest/fixtures/http-insecure.js +8 -0
  213. package/dist/src/targets/node/unirest/fixtures/jsonObj-multiline.js +15 -0
  214. package/dist/src/targets/node/unirest/fixtures/jsonObj-null-value.js +15 -0
  215. package/dist/src/targets/node/unirest/fixtures/multipart-data.js +20 -0
  216. package/dist/src/targets/node/unirest/fixtures/multipart-file.js +18 -0
  217. package/dist/src/targets/node/unirest/fixtures/multipart-form-data-no-params.js +11 -0
  218. package/dist/src/targets/node/unirest/fixtures/multipart-form-data.js +16 -0
  219. package/dist/src/targets/node/unirest/fixtures/nested.js +13 -0
  220. package/dist/src/targets/node/unirest/fixtures/query-encoded.js +12 -0
  221. package/dist/src/targets/node/unirest/fixtures/query.js +16 -0
  222. package/dist/src/targets/node/unirest/fixtures/short.js +8 -0
  223. package/dist/src/targets/node/unirest/fixtures/text-plain.js +12 -0
  224. package/dist/src/targets/objc/helpers.js +59 -0
  225. package/dist/src/targets/objc/nsurlsession/client.js +151 -0
  226. package/dist/src/targets/objc/target.js +15 -0
  227. package/dist/src/targets/ocaml/cohttp/client.js +72 -0
  228. package/dist/src/targets/ocaml/target.js +15 -0
  229. package/dist/src/targets/php/curl/client.js +135 -0
  230. package/dist/src/targets/php/guzzle/client.js +126 -0
  231. package/dist/src/targets/php/helpers.js +63 -0
  232. package/dist/src/targets/php/http1/client.js +90 -0
  233. package/dist/src/targets/php/http2/client.js +128 -0
  234. package/dist/src/targets/php/target.js +22 -0
  235. package/dist/src/targets/powershell/common.js +49 -0
  236. package/dist/src/targets/powershell/restmethod/client.js +13 -0
  237. package/dist/src/targets/powershell/target.js +17 -0
  238. package/dist/src/targets/powershell/webrequest/client.js +13 -0
  239. package/dist/src/targets/python/helpers.js +70 -0
  240. package/dist/src/targets/python/requests/client.js +161 -0
  241. package/dist/src/targets/python/target.js +16 -0
  242. package/dist/src/targets/r/httr/client.js +125 -0
  243. package/dist/src/targets/r/target.js +15 -0
  244. package/dist/src/targets/ruby/native/client.js +69 -0
  245. package/dist/src/targets/ruby/target.js +15 -0
  246. package/dist/src/targets/shell/curl/client.js +171 -0
  247. package/dist/src/targets/shell/httpie/client.js +111 -0
  248. package/dist/src/targets/shell/target.js +20 -0
  249. package/dist/src/targets/shell/wget/client.js +55 -0
  250. package/dist/src/targets/swift/helpers.js +80 -0
  251. package/dist/src/targets/swift/nsurlsession/client.js +156 -0
  252. package/dist/src/targets/swift/target.js +15 -0
  253. package/dist/src/targets/targets.js +130 -0
  254. package/package.json +26 -21
  255. package/src/helpers/code-builder.js +0 -108
  256. package/src/helpers/form-data.js +0 -107
  257. package/src/helpers/headers.js +0 -48
  258. package/src/helpers/reducer.js +0 -20
  259. package/src/index.js +0 -361
  260. package/src/targets/c/index.js +0 -10
  261. package/src/targets/c/libcurl.js +0 -45
  262. package/src/targets/clojure/clj_http.js +0 -176
  263. package/src/targets/clojure/index.js +0 -10
  264. package/src/targets/csharp/httpclient.js +0 -157
  265. package/src/targets/csharp/index.js +0 -11
  266. package/src/targets/csharp/restsharp.js +0 -49
  267. package/src/targets/go/index.js +0 -10
  268. package/src/targets/go/native.js +0 -130
  269. package/src/targets/http/http1.1.js +0 -89
  270. package/src/targets/http/index.js +0 -10
  271. package/src/targets/index.js +0 -20
  272. package/src/targets/java/asynchttp.js +0 -54
  273. package/src/targets/java/index.js +0 -13
  274. package/src/targets/java/nethttp.js +0 -59
  275. package/src/targets/java/okhttp.js +0 -78
  276. package/src/targets/java/unirest.js +0 -57
  277. package/src/targets/javascript/axios.js +0 -101
  278. package/src/targets/javascript/fetch.js +0 -129
  279. package/src/targets/javascript/index.js +0 -13
  280. package/src/targets/javascript/jquery.js +0 -89
  281. package/src/targets/javascript/xhr.js +0 -86
  282. package/src/targets/kotlin/index.js +0 -10
  283. package/src/targets/kotlin/okhttp.js +0 -78
  284. package/src/targets/node/axios.js +0 -76
  285. package/src/targets/node/fetch.js +0 -145
  286. package/src/targets/node/index.js +0 -15
  287. package/src/targets/node/native.js +0 -92
  288. package/src/targets/node/request.js +0 -126
  289. package/src/targets/node/unirest.js +0 -120
  290. package/src/targets/objc/helpers.js +0 -80
  291. package/src/targets/objc/index.js +0 -10
  292. package/src/targets/objc/nsurlsession.js +0 -164
  293. package/src/targets/ocaml/cohttp.js +0 -73
  294. package/src/targets/ocaml/index.js +0 -10
  295. package/src/targets/php/curl.js +0 -142
  296. package/src/targets/php/guzzle.js +0 -135
  297. package/src/targets/php/helpers.js +0 -87
  298. package/src/targets/php/http1.js +0 -85
  299. package/src/targets/php/http2.js +0 -131
  300. package/src/targets/php/index.js +0 -14
  301. package/src/targets/powershell/common.js +0 -60
  302. package/src/targets/powershell/index.js +0 -11
  303. package/src/targets/powershell/restmethod.js +0 -8
  304. package/src/targets/powershell/webrequest.js +0 -8
  305. package/src/targets/python/helpers.js +0 -85
  306. package/src/targets/python/index.js +0 -11
  307. package/src/targets/python/requests.js +0 -163
  308. package/src/targets/r/httr.js +0 -134
  309. package/src/targets/r/index.js +0 -10
  310. package/src/targets/ruby/index.js +0 -10
  311. package/src/targets/ruby/native.js +0 -71
  312. package/src/targets/shell/curl.js +0 -157
  313. package/src/targets/shell/helpers.js +0 -23
  314. package/src/targets/shell/httpie.js +0 -129
  315. package/src/targets/shell/index.js +0 -13
  316. package/src/targets/shell/wget.js +0 -52
  317. package/src/targets/swift/helpers.js +0 -93
  318. package/src/targets/swift/index.js +0 -10
  319. package/src/targets/swift/nsurlsession.js +0 -152
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ module.exports = {
3
+ log: {
4
+ version: '1.2',
5
+ creator: {
6
+ name: 'HTTPSnippet',
7
+ version: '1.0.0'
8
+ },
9
+ entries: [
10
+ {
11
+ request: {
12
+ method: 'GET',
13
+ url: 'https://httpbin.org/anything',
14
+ httpVersion: 'HTTP/1.1',
15
+ queryString: [
16
+ {
17
+ name: 'startTime',
18
+ value: '2019-06-13T19%3A08%3A25.455Z'
19
+ },
20
+ {
21
+ name: 'endTime',
22
+ value: '2015-09-15T14%3A00%3A12-04%3A00'
23
+ },
24
+ ]
25
+ },
26
+ response: {
27
+ status: 200,
28
+ statusText: 'OK',
29
+ httpVersion: 'HTTP/1.1',
30
+ headers: [
31
+ {
32
+ name: 'Content-Type',
33
+ value: 'application/json'
34
+ },
35
+ ],
36
+ content: {
37
+ size: -1,
38
+ mimeType: 'application/json',
39
+ text: JSON.stringify({
40
+ args: {
41
+ endTime: '2015-09-15T14:00:12-04:00',
42
+ startTime: '2019-06-13T19:08:25.455Z'
43
+ },
44
+ data: '',
45
+ files: {},
46
+ form: {},
47
+ headers: {},
48
+ json: null,
49
+ method: 'GET',
50
+ url: 'https://httpbin.org/anything?startTime=2019-06-13T19%3A08%3A25.455Z&endTime=2015-09-15T14%3A00%3A12-04%3A00'
51
+ })
52
+ },
53
+ headersSize: -1,
54
+ bodySize: -1
55
+ }
56
+ },
57
+ ]
58
+ }
59
+ };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ module.exports = {
3
+ log: {
4
+ version: '1.2',
5
+ creator: {
6
+ name: 'HTTPSnippet',
7
+ version: '1.0.0'
8
+ },
9
+ entries: [
10
+ {
11
+ request: {
12
+ method: 'GET',
13
+ url: 'https://httpbin.org/anything?key=value',
14
+ httpVersion: 'HTTP/1.1',
15
+ queryString: [
16
+ {
17
+ name: 'foo',
18
+ value: 'bar'
19
+ },
20
+ {
21
+ name: 'foo',
22
+ value: 'baz'
23
+ },
24
+ {
25
+ name: 'baz',
26
+ value: 'abc'
27
+ },
28
+ ]
29
+ },
30
+ response: {
31
+ status: 200,
32
+ statusText: 'OK',
33
+ httpVersion: 'HTTP/1.1',
34
+ headers: [
35
+ {
36
+ name: 'Content-Type',
37
+ value: 'application/json'
38
+ },
39
+ ],
40
+ content: {
41
+ size: -1,
42
+ mimeType: 'application/json',
43
+ text: JSON.stringify({
44
+ args: {
45
+ baz: 'abc',
46
+ foo: ['bar', 'baz'],
47
+ key: 'value'
48
+ },
49
+ data: '',
50
+ files: {},
51
+ form: {},
52
+ headers: {},
53
+ json: null,
54
+ method: 'GET',
55
+ url: 'https://httpbin.org/anything?foo=bar&foo=baz&baz=abc&key=value'
56
+ })
57
+ },
58
+ headersSize: -1,
59
+ bodySize: -1
60
+ }
61
+ },
62
+ ]
63
+ }
64
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ module.exports = {
3
+ log: {
4
+ version: '1.2',
5
+ creator: {
6
+ name: 'HTTPSnippet',
7
+ version: '1.0.0'
8
+ },
9
+ entries: [
10
+ {
11
+ request: {
12
+ method: 'GET',
13
+ url: 'https://httpbin.org/anything'
14
+ },
15
+ response: {
16
+ status: 200,
17
+ statusText: 'OK',
18
+ httpVersion: 'HTTP/1.1',
19
+ headers: [
20
+ {
21
+ name: 'Content-Type',
22
+ value: 'application/json'
23
+ },
24
+ ],
25
+ content: {
26
+ size: -1,
27
+ mimeType: 'application/json',
28
+ text: JSON.stringify({
29
+ args: {},
30
+ data: '',
31
+ files: {},
32
+ form: {},
33
+ headers: {},
34
+ json: null,
35
+ method: 'GET',
36
+ url: 'https://httpbin.org/anything'
37
+ })
38
+ },
39
+ headersSize: -1,
40
+ bodySize: -1
41
+ }
42
+ },
43
+ ]
44
+ }
45
+ };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ module.exports = {
3
+ log: {
4
+ version: '1.2',
5
+ creator: {
6
+ name: 'HTTPSnippet',
7
+ version: '1.0.0'
8
+ },
9
+ entries: [
10
+ {
11
+ request: {
12
+ method: 'POST',
13
+ url: 'https://httpbin.org/anything',
14
+ headers: [
15
+ {
16
+ name: 'content-type',
17
+ value: 'text/plain'
18
+ },
19
+ ],
20
+ postData: {
21
+ mimeType: 'text/plain',
22
+ text: 'Hello World'
23
+ }
24
+ },
25
+ response: {
26
+ status: 200,
27
+ statusText: 'OK',
28
+ httpVersion: 'HTTP/1.1',
29
+ headers: [
30
+ {
31
+ name: 'Content-Type',
32
+ value: 'application/json'
33
+ },
34
+ ],
35
+ content: {
36
+ size: -1,
37
+ mimeType: 'application/json',
38
+ text: JSON.stringify({
39
+ args: {},
40
+ data: 'Hello World',
41
+ files: {},
42
+ form: {},
43
+ headers: {
44
+ 'Content-Type': 'text/plain'
45
+ },
46
+ json: null,
47
+ method: 'POST',
48
+ url: 'https://httpbin.org/anything'
49
+ })
50
+ },
51
+ headersSize: -1,
52
+ bodySize: -1
53
+ }
54
+ },
55
+ ]
56
+ }
57
+ };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ exports.__esModule = true;
42
+ exports.runCustomFixtures = void 0;
43
+ var fs_1 = require("fs");
44
+ var promises_1 = require("fs/promises");
45
+ var path_1 = __importDefault(require("path"));
46
+ var __1 = require("..");
47
+ var runCustomFixtures = function (_a) {
48
+ var targetId = _a.targetId, clientId = _a.clientId, tests = _a.tests;
49
+ describe("custom fixtures for ".concat(targetId, ":").concat(clientId), function () {
50
+ tests.forEach(function (_a) {
51
+ var title = _a.it, fixtureFile = _a.expected, options = _a.options, request = _a.input;
52
+ var opts = {};
53
+ if (options.harIsAlreadyEncoded) {
54
+ opts.harIsAlreadyEncoded = options.harIsAlreadyEncoded;
55
+ }
56
+ var result = new __1.HTTPSnippet(request, opts).convert(targetId, clientId, options);
57
+ var filePath = path_1["default"].join(__dirname, '..', 'targets', targetId, clientId, 'fixtures', fixtureFile);
58
+ if (process.env.OVERWRITE_EVERYTHING) {
59
+ (0, fs_1.writeFileSync)(filePath, String(result));
60
+ }
61
+ it(title, function () { return __awaiter(void 0, void 0, void 0, function () {
62
+ var buffer, fixture;
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
65
+ case 0: return [4 /*yield*/, (0, promises_1.readFile)(filePath)];
66
+ case 1:
67
+ buffer = _a.sent();
68
+ fixture = String(buffer);
69
+ expect(result).toStrictEqual(fixture);
70
+ return [2 /*return*/];
71
+ }
72
+ });
73
+ }); });
74
+ });
75
+ });
76
+ };
77
+ exports.runCustomFixtures = runCustomFixtures;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ exports.__esModule = true;
28
+ exports.CodeBuilder = void 0;
29
+ var DEFAULT_INDENTATION_CHARACTER = '';
30
+ var DEFAULT_LINE_JOIN = '\n';
31
+ var CodeBuilder = /** @class */ (function () {
32
+ /**
33
+ * Helper object to format and aggragate lines of code.
34
+ * Lines are aggregated in a `code` array, and need to be joined to obtain a proper code snippet.
35
+ */
36
+ function CodeBuilder(_a) {
37
+ var _b = _a === void 0 ? {} : _a, indent = _b.indent, join = _b.join;
38
+ var _this = this;
39
+ this.postProcessors = [];
40
+ this.code = [];
41
+ this.indentationCharacter = DEFAULT_INDENTATION_CHARACTER;
42
+ this.lineJoin = DEFAULT_LINE_JOIN;
43
+ /**
44
+ * Add given indentation level to given line of code
45
+ */
46
+ this.indentLine = function (line, indentationLevel) {
47
+ if (indentationLevel === void 0) { indentationLevel = 0; }
48
+ var indent = _this.indentationCharacter.repeat(indentationLevel);
49
+ return "".concat(indent).concat(line);
50
+ };
51
+ /**
52
+ * Add the line at the beginning of the current lines
53
+ */
54
+ this.unshift = function (line, indentationLevel) {
55
+ var newLine = _this.indentLine(line, indentationLevel);
56
+ _this.code.unshift(newLine);
57
+ };
58
+ /**
59
+ * Add the line at the end of the current lines
60
+ */
61
+ this.push = function (line, indentationLevel) {
62
+ var newLine = _this.indentLine(line, indentationLevel);
63
+ _this.code.push(newLine);
64
+ };
65
+ /**
66
+ * Add an empty line at the end of current lines
67
+ */
68
+ this.blank = function () {
69
+ _this.code.push('');
70
+ };
71
+ /**
72
+ * Concatenate all current lines using the given lineJoin, then apply any replacers that may have been added
73
+ */
74
+ this.join = function () {
75
+ var unreplacedCode = _this.code.join(_this.lineJoin);
76
+ var replacedOutput = _this.postProcessors.reduce(function (accumulator, replacer) { return replacer(accumulator); }, unreplacedCode);
77
+ return replacedOutput;
78
+ };
79
+ /**
80
+ * Often when writing modules you may wish to add a literal tag or bit of metadata that you wish to transform after other processing as a final step.
81
+ * To do so, you can provide a PostProcessor function and it will be run automatically for you when you call `join()` later on.
82
+ */
83
+ this.addPostProcessor = function (postProcessor) {
84
+ _this.postProcessors = __spreadArray(__spreadArray([], __read(_this.postProcessors), false), [postProcessor], false);
85
+ };
86
+ this.indentationCharacter = indent || DEFAULT_INDENTATION_CHARACTER;
87
+ this.lineJoin = join !== null && join !== void 0 ? join : DEFAULT_LINE_JOIN;
88
+ }
89
+ return CodeBuilder;
90
+ }());
91
+ exports.CodeBuilder = CodeBuilder;
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ /**
3
+ * @license https://raw.githubusercontent.com/node-fetch/node-fetch/master/LICENSE.md
4
+ *
5
+ * The MIT License (MIT)
6
+ *
7
+ * Copyright (c) 2016 - 2020 Node Fetch Team
8
+ *
9
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ * of this software and associated documentation files (the "Software"), to deal
11
+ * in the Software without restriction, including without limitation the rights
12
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all
17
+ * copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ * SOFTWARE.
26
+ *
27
+ * Extracted from https://github.com/node-fetch/node-fetch/blob/64c5c296a0250b852010746c76144cb9e14698d9/src/utils/form-data.js
28
+ */
29
+ var __generator = (this && this.__generator) || function (thisArg, body) {
30
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
31
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
32
+ function verb(n) { return function (v) { return step([n, v]); }; }
33
+ function step(op) {
34
+ if (f) throw new TypeError("Generator is already executing.");
35
+ while (_) try {
36
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
37
+ if (y = 0, t) op = [op[0] & 2, t.value];
38
+ switch (op[0]) {
39
+ case 0: case 1: t = op; break;
40
+ case 4: _.label++; return { value: op[1], done: false };
41
+ case 5: _.label++; y = op[1]; op = [0]; continue;
42
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
43
+ default:
44
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
45
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
46
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
47
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
48
+ if (t[2]) _.ops.pop();
49
+ _.trys.pop(); continue;
50
+ }
51
+ op = body.call(thisArg, _);
52
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
53
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
54
+ }
55
+ };
56
+ var __values = (this && this.__values) || function(o) {
57
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
58
+ if (m) return m.call(o);
59
+ if (o && typeof o.length === "number") return {
60
+ next: function () {
61
+ if (o && i >= o.length) o = void 0;
62
+ return { value: o && o[i++], done: !o };
63
+ }
64
+ };
65
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
66
+ };
67
+ var __read = (this && this.__read) || function (o, n) {
68
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
69
+ if (!m) return o;
70
+ var i = m.call(o), r, ar = [], e;
71
+ try {
72
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
73
+ }
74
+ catch (error) { e = { error: error }; }
75
+ finally {
76
+ try {
77
+ if (r && !r.done && (m = i["return"])) m.call(i);
78
+ }
79
+ finally { if (e) throw e.error; }
80
+ }
81
+ return ar;
82
+ };
83
+ exports.__esModule = true;
84
+ exports.formDataIterator = exports.isBlob = void 0;
85
+ var carriage = '\r\n';
86
+ var dashes = '-'.repeat(2);
87
+ var NAME = Symbol.toStringTag;
88
+ var isBlob = function (object) {
89
+ return typeof object === 'object' &&
90
+ typeof object.arrayBuffer === 'function' &&
91
+ typeof object.type === 'string' &&
92
+ typeof object.stream === 'function' &&
93
+ typeof object.constructor === 'function' &&
94
+ /^(Blob|File)$/.test(object[NAME]);
95
+ };
96
+ exports.isBlob = isBlob;
97
+ var getFooter = function (boundary) { return "".concat(dashes).concat(boundary).concat(dashes).concat(carriage.repeat(2)); };
98
+ var getHeader = function (boundary, name, field) {
99
+ var header = '';
100
+ header += "".concat(dashes).concat(boundary).concat(carriage);
101
+ header += "Content-Disposition: form-data; name=\"".concat(name, "\"");
102
+ if ((0, exports.isBlob)(field)) {
103
+ header += "; filename=\"".concat(field.name, "\"").concat(carriage);
104
+ header += "Content-Type: ".concat(field.type || 'application/octet-stream');
105
+ }
106
+ return "".concat(header).concat(carriage.repeat(2));
107
+ };
108
+ var formDataIterator = function (form, boundary) {
109
+ var form_1, form_1_1, _a, name, value, e_1_1;
110
+ var e_1, _b;
111
+ return __generator(this, function (_c) {
112
+ switch (_c.label) {
113
+ case 0:
114
+ _c.trys.push([0, 10, 11, 12]);
115
+ form_1 = __values(form), form_1_1 = form_1.next();
116
+ _c.label = 1;
117
+ case 1:
118
+ if (!!form_1_1.done) return [3 /*break*/, 9];
119
+ _a = __read(form_1_1.value, 2), name = _a[0], value = _a[1];
120
+ return [4 /*yield*/, getHeader(boundary, name, value)];
121
+ case 2:
122
+ _c.sent();
123
+ if (!(0, exports.isBlob)(value)) return [3 /*break*/, 4];
124
+ return [5 /*yield**/, __values(value.stream())];
125
+ case 3:
126
+ _c.sent();
127
+ return [3 /*break*/, 6];
128
+ case 4: return [4 /*yield*/, value];
129
+ case 5:
130
+ _c.sent();
131
+ _c.label = 6;
132
+ case 6: return [4 /*yield*/, carriage];
133
+ case 7:
134
+ _c.sent();
135
+ _c.label = 8;
136
+ case 8:
137
+ form_1_1 = form_1.next();
138
+ return [3 /*break*/, 1];
139
+ case 9: return [3 /*break*/, 12];
140
+ case 10:
141
+ e_1_1 = _c.sent();
142
+ e_1 = { error: e_1_1 };
143
+ return [3 /*break*/, 12];
144
+ case 11:
145
+ try {
146
+ if (form_1_1 && !form_1_1.done && (_b = form_1["return"])) _b.call(form_1);
147
+ }
148
+ finally { if (e_1) throw e_1.error; }
149
+ return [7 /*endfinally*/];
150
+ case 12: return [4 /*yield*/, getFooter(boundary)];
151
+ case 13:
152
+ _c.sent();
153
+ return [2 /*return*/];
154
+ }
155
+ });
156
+ };
157
+ exports.formDataIterator = formDataIterator;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ exports.__esModule = true;
44
+ exports.validateHarRequest = exports.HARError = void 0;
45
+ var ajv_1 = __importDefault(require("ajv"));
46
+ var schema = __importStar(require("har-schema"));
47
+ var HARError = /** @class */ (function (_super) {
48
+ __extends(HARError, _super);
49
+ function HARError(errors) {
50
+ var _this = _super.call(this) || this;
51
+ _this.name = 'HARError';
52
+ _this.message = 'validation failed';
53
+ _this.errors = [];
54
+ _this.errors = errors;
55
+ Error.captureStackTrace(_this, _this.constructor);
56
+ return _this;
57
+ }
58
+ return HARError;
59
+ }(Error));
60
+ exports.HARError = HARError;
61
+ var ajv = new ajv_1["default"]({
62
+ allErrors: true
63
+ });
64
+ ajv.addSchema(schema);
65
+ var validateHarRequest = function (request) {
66
+ var validate = ajv.getSchema('request.json');
67
+ if (!validate) {
68
+ throw new Error('failed to find HAR request schema');
69
+ }
70
+ var valid = validate(request);
71
+ if (!valid && validate.errors) {
72
+ throw new HARError(validate.errors);
73
+ }
74
+ return true;
75
+ };
76
+ exports.validateHarRequest = validateHarRequest;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.isMimeTypeJSON = exports.hasHeader = exports.getHeader = exports.getHeaderName = void 0;
4
+ /**
5
+ * Given a headers object retrieve a specific header out of it via a case-insensitive key.
6
+ */
7
+ var getHeaderName = function (headers, name) {
8
+ return Object.keys(headers).find(function (header) { return header.toLowerCase() === name.toLowerCase(); });
9
+ };
10
+ exports.getHeaderName = getHeaderName;
11
+ /**
12
+ * Given a headers object retrieve the contents of a header out of it via a case-insensitive key.
13
+ */
14
+ var getHeader = function (headers, name) {
15
+ var headerName = (0, exports.getHeaderName)(headers, name);
16
+ if (!headerName) {
17
+ return undefined;
18
+ }
19
+ return headers[headerName];
20
+ };
21
+ exports.getHeader = getHeader;
22
+ /**
23
+ * Determine if a given case-insensitive header exists within a header object.
24
+ */
25
+ var hasHeader = function (headers, name) { return Boolean((0, exports.getHeaderName)(headers, name)); };
26
+ exports.hasHeader = hasHeader;
27
+ /**
28
+ * Determines if a given MIME type is JSON, or a variant of such.
29
+ */
30
+ var isMimeTypeJSON = function (mimeType) {
31
+ return ['application/json', 'application/x-json', 'text/json', 'text/x-json', '+json'].some(function (type) { return mimeType.indexOf(type) > -1; });
32
+ };
33
+ exports.isMimeTypeJSON = isMimeTypeJSON;