@readme/httpsnippet 3.1.1 → 4.0.0
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.
- package/README.md +63 -62
- package/package.json +26 -21
- package/src/fixtures/customTarget.ts +14 -0
- package/src/fixtures/files/hello.txt +1 -0
- package/src/fixtures/mimetypes.ts +84 -0
- package/src/fixtures/requests/application-form-encoded.js +68 -0
- package/src/fixtures/requests/application-json.js +71 -0
- package/src/fixtures/requests/cookies.js +50 -0
- package/src/fixtures/requests/custom-method.js +40 -0
- package/src/fixtures/requests/full.js +98 -0
- package/src/fixtures/requests/headers.js +55 -0
- package/src/fixtures/requests/http-insecure.js +44 -0
- package/src/fixtures/requests/jsonObj-multiline.js +58 -0
- package/src/fixtures/requests/jsonObj-null-value.js +65 -0
- package/src/fixtures/requests/multipart-data.js +71 -0
- package/src/fixtures/requests/multipart-file.js +64 -0
- package/src/fixtures/requests/multipart-form-data-no-params.js +55 -0
- package/src/fixtures/requests/multipart-form-data.js +63 -0
- package/src/fixtures/requests/nested.js +63 -0
- package/src/fixtures/requests/query-encoded.js +58 -0
- package/src/fixtures/requests/query.js +63 -0
- package/src/fixtures/requests/short.js +44 -0
- package/src/fixtures/requests/text-plain.js +56 -0
- package/src/fixtures/runCustomFixtures.ts +47 -0
- package/src/helpers/__snapshots__/utils.test.ts.snap +364 -0
- package/src/helpers/code-builder.test.ts +42 -0
- package/src/helpers/code-builder.ts +85 -0
- package/src/helpers/{form-data.js → form-data.ts} +13 -44
- package/src/helpers/har-validator.ts +35 -0
- package/src/helpers/headers.test.ts +35 -0
- package/src/helpers/headers.ts +31 -0
- package/src/helpers/reducer.test.ts +27 -0
- package/src/helpers/reducer.ts +19 -0
- package/src/helpers/shell.ts +18 -0
- package/src/helpers/utils.test.ts +19 -0
- package/src/helpers/utils.ts +16 -0
- package/src/index.test.ts +221 -0
- package/src/index.ts +361 -0
- package/src/integration.test.ts +270 -0
- package/src/targets/c/libcurl/client.ts +50 -0
- package/src/targets/c/libcurl/fixtures/application-form-encoded.c +12 -0
- package/src/targets/c/libcurl/fixtures/application-json.c +12 -0
- package/src/targets/c/libcurl/fixtures/cookies.c +8 -0
- package/src/targets/c/libcurl/fixtures/custom-method.c +6 -0
- package/src/targets/c/libcurl/fixtures/full.c +15 -0
- package/src/targets/c/libcurl/fixtures/headers.c +12 -0
- package/src/targets/c/libcurl/fixtures/http-insecure.c +6 -0
- package/src/targets/c/libcurl/fixtures/jsonObj-multiline.c +12 -0
- package/src/targets/c/libcurl/fixtures/jsonObj-null-value.c +12 -0
- package/src/targets/c/libcurl/fixtures/multipart-data.c +12 -0
- package/src/targets/c/libcurl/fixtures/multipart-file.c +12 -0
- package/src/targets/c/libcurl/fixtures/multipart-form-data-no-params.c +10 -0
- package/src/targets/c/libcurl/fixtures/multipart-form-data.c +12 -0
- package/src/targets/c/libcurl/fixtures/nested.c +6 -0
- package/src/targets/c/libcurl/fixtures/query-encoded.c +6 -0
- package/src/targets/c/libcurl/fixtures/query.c +6 -0
- package/src/targets/c/libcurl/fixtures/short.c +6 -0
- package/src/targets/c/libcurl/fixtures/text-plain.c +12 -0
- package/src/targets/c/target.ts +14 -0
- package/src/targets/clojure/clj_http/client.ts +210 -0
- package/src/targets/clojure/clj_http/fixtures/application-form-encoded.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/application-json.clj +9 -0
- package/src/targets/clojure/clj_http/fixtures/cookies.clj +3 -0
- package/src/targets/clojure/clj_http/fixtures/custom-method.clj +1 -0
- package/src/targets/clojure/clj_http/fixtures/full.clj +8 -0
- package/src/targets/clojure/clj_http/fixtures/headers.clj +5 -0
- package/src/targets/clojure/clj_http/fixtures/http-insecure.clj +3 -0
- package/src/targets/clojure/clj_http/fixtures/jsonObj-multiline.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/jsonObj-null-value.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/multipart-data.clj +5 -0
- package/src/targets/clojure/clj_http/fixtures/multipart-file.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/multipart-form-data-no-params.clj +3 -0
- package/src/targets/clojure/clj_http/fixtures/multipart-form-data.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/nested.clj +5 -0
- package/src/targets/clojure/clj_http/fixtures/query-encoded.clj +4 -0
- package/src/targets/clojure/clj_http/fixtures/query.clj +5 -0
- package/src/targets/clojure/clj_http/fixtures/short.clj +3 -0
- package/src/targets/clojure/clj_http/fixtures/text-plain.clj +3 -0
- package/src/targets/clojure/target.ts +14 -0
- package/src/targets/csharp/httpclient/client.ts +170 -0
- package/src/targets/csharp/httpclient/fixtures/application-form-encoded.cs +18 -0
- package/src/targets/csharp/httpclient/fixtures/application-json.cs +20 -0
- package/src/targets/csharp/httpclient/fixtures/cookies.cs +21 -0
- package/src/targets/csharp/httpclient/fixtures/custom-method.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/full.cs +26 -0
- package/src/targets/csharp/httpclient/fixtures/headers.cs +19 -0
- package/src/targets/csharp/httpclient/fixtures/http-insecure.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/jsonObj-multiline.cs +20 -0
- package/src/targets/csharp/httpclient/fixtures/jsonObj-null-value.cs +20 -0
- package/src/targets/csharp/httpclient/fixtures/multipart-data.cs +38 -0
- package/src/targets/csharp/httpclient/fixtures/multipart-file.cs +28 -0
- package/src/targets/csharp/httpclient/fixtures/multipart-form-data-no-params.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/multipart-form-data.cs +26 -0
- package/src/targets/csharp/httpclient/fixtures/nested.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/query-encoded.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/query.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/short.cs +13 -0
- package/src/targets/csharp/httpclient/fixtures/text-plain.cs +20 -0
- package/src/targets/csharp/restsharp/client.ts +44 -0
- package/src/targets/csharp/restsharp/fixtures/application-form-encoded.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/application-json.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/cookies.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/custom-method.cs +1 -0
- package/src/targets/csharp/restsharp/fixtures/full.cs +8 -0
- package/src/targets/csharp/restsharp/fixtures/headers.cs +6 -0
- package/src/targets/csharp/restsharp/fixtures/http-insecure.cs +3 -0
- package/src/targets/csharp/restsharp/fixtures/jsonObj-multiline.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/jsonObj-null-value.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/multipart-data.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/multipart-file.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/multipart-form-data-no-params.cs +4 -0
- package/src/targets/csharp/restsharp/fixtures/multipart-form-data.cs +5 -0
- package/src/targets/csharp/restsharp/fixtures/nested.cs +3 -0
- package/src/targets/csharp/restsharp/fixtures/query-encoded.cs +3 -0
- package/src/targets/csharp/restsharp/fixtures/query.cs +3 -0
- package/src/targets/csharp/restsharp/fixtures/short.cs +3 -0
- package/src/targets/csharp/restsharp/fixtures/text-plain.cs +5 -0
- package/src/targets/csharp/target.ts +17 -0
- package/src/targets/go/native/client.test.ts +42 -0
- package/src/targets/go/native/client.ts +143 -0
- package/src/targets/go/native/fixtures/application-form-encoded.go +28 -0
- package/src/targets/go/native/fixtures/application-json.go +28 -0
- package/src/targets/go/native/fixtures/boilerplate-option.go +17 -0
- package/src/targets/go/native/fixtures/check-errors-option.go +39 -0
- package/src/targets/go/native/fixtures/cookies.go +25 -0
- package/src/targets/go/native/fixtures/custom-method.go +23 -0
- package/src/targets/go/native/fixtures/full.go +30 -0
- package/src/targets/go/native/fixtures/headers.go +27 -0
- package/src/targets/go/native/fixtures/http-insecure.go +23 -0
- package/src/targets/go/native/fixtures/jsonObj-multiline.go +28 -0
- package/src/targets/go/native/fixtures/jsonObj-null-value.go +28 -0
- package/src/targets/go/native/fixtures/multipart-data.go +28 -0
- package/src/targets/go/native/fixtures/multipart-file.go +28 -0
- package/src/targets/go/native/fixtures/multipart-form-data-no-params.go +25 -0
- package/src/targets/go/native/fixtures/multipart-form-data.go +28 -0
- package/src/targets/go/native/fixtures/nested.go +23 -0
- package/src/targets/go/native/fixtures/print-body-option.go +25 -0
- package/src/targets/go/native/fixtures/query-encoded.go +23 -0
- package/src/targets/go/native/fixtures/query.go +23 -0
- package/src/targets/go/native/fixtures/short.go +23 -0
- package/src/targets/go/native/fixtures/text-plain.go +28 -0
- package/src/targets/go/native/fixtures/timeout-option.go +35 -0
- package/src/targets/go/target.ts +14 -0
- package/src/targets/har-schema.d.ts +4 -0
- package/src/targets/http/http1.1/client.ts +89 -0
- package/src/targets/http/http1.1/fixtures/application-form-encoded +6 -0
- package/src/targets/http/http1.1/fixtures/application-json +6 -0
- package/src/targets/http/http1.1/fixtures/cookies +4 -0
- package/src/targets/http/http1.1/fixtures/custom-method +3 -0
- package/src/targets/http/http1.1/fixtures/full +8 -0
- package/src/targets/http/http1.1/fixtures/headers +6 -0
- package/src/targets/http/http1.1/fixtures/http-insecure +3 -0
- package/src/targets/http/http1.1/fixtures/jsonObj-multiline +8 -0
- package/src/targets/http/http1.1/fixtures/jsonObj-null-value +6 -0
- package/src/targets/http/http1.1/fixtures/multipart-data +15 -0
- package/src/targets/http/http1.1/fixtures/multipart-file +11 -0
- package/src/targets/http/http1.1/fixtures/multipart-form-data +10 -0
- package/src/targets/http/http1.1/fixtures/multipart-form-data-no-params +4 -0
- package/src/targets/http/http1.1/fixtures/nested +3 -0
- package/src/targets/http/http1.1/fixtures/query +3 -0
- package/src/targets/http/http1.1/fixtures/query-encoded +3 -0
- package/src/targets/http/http1.1/fixtures/short +3 -0
- package/src/targets/http/http1.1/fixtures/text-plain +6 -0
- package/src/targets/http/target.ts +14 -0
- package/src/targets/java/asynchttp/client.ts +50 -0
- package/src/targets/java/asynchttp/fixtures/application-form-encoded.java +10 -0
- package/src/targets/java/asynchttp/fixtures/application-json.java +10 -0
- package/src/targets/java/asynchttp/fixtures/cookies.java +9 -0
- package/src/targets/java/asynchttp/fixtures/custom-method.java +8 -0
- package/src/targets/java/asynchttp/fixtures/full.java +12 -0
- package/src/targets/java/asynchttp/fixtures/headers.java +11 -0
- package/src/targets/java/asynchttp/fixtures/http-insecure.java +8 -0
- package/src/targets/java/asynchttp/fixtures/jsonObj-multiline.java +10 -0
- package/src/targets/java/asynchttp/fixtures/jsonObj-null-value.java +10 -0
- package/src/targets/java/asynchttp/fixtures/multipart-data.java +10 -0
- package/src/targets/java/asynchttp/fixtures/multipart-file.java +10 -0
- package/src/targets/java/asynchttp/fixtures/multipart-form-data-no-params.java +9 -0
- package/src/targets/java/asynchttp/fixtures/multipart-form-data.java +10 -0
- package/src/targets/java/asynchttp/fixtures/nested.java +8 -0
- package/src/targets/java/asynchttp/fixtures/query-encoded.java +8 -0
- package/src/targets/java/asynchttp/fixtures/query.java +8 -0
- package/src/targets/java/asynchttp/fixtures/short.java +8 -0
- package/src/targets/java/asynchttp/fixtures/text-plain.java +10 -0
- package/src/targets/java/nethttp/client.ts +58 -0
- package/src/targets/java/nethttp/fixtures/application-form-encoded.java +7 -0
- package/src/targets/java/nethttp/fixtures/application-json.java +7 -0
- package/src/targets/java/nethttp/fixtures/cookies.java +7 -0
- package/src/targets/java/nethttp/fixtures/custom-method.java +6 -0
- package/src/targets/java/nethttp/fixtures/full.java +9 -0
- package/src/targets/java/nethttp/fixtures/headers.java +9 -0
- package/src/targets/java/nethttp/fixtures/http-insecure.java +6 -0
- package/src/targets/java/nethttp/fixtures/jsonObj-multiline.java +7 -0
- package/src/targets/java/nethttp/fixtures/jsonObj-null-value.java +7 -0
- package/src/targets/java/nethttp/fixtures/multipart-data.java +7 -0
- package/src/targets/java/nethttp/fixtures/multipart-file.java +7 -0
- package/src/targets/java/nethttp/fixtures/multipart-form-data-no-params.java +7 -0
- package/src/targets/java/nethttp/fixtures/multipart-form-data.java +7 -0
- package/src/targets/java/nethttp/fixtures/nested.java +6 -0
- package/src/targets/java/nethttp/fixtures/query-encoded.java +6 -0
- package/src/targets/java/nethttp/fixtures/query.java +6 -0
- package/src/targets/java/nethttp/fixtures/short.java +6 -0
- package/src/targets/java/nethttp/fixtures/text-plain.java +7 -0
- package/src/targets/java/okhttp/client.ts +72 -0
- package/src/targets/java/okhttp/fixtures/application-form-encoded.java +11 -0
- package/src/targets/java/okhttp/fixtures/application-json.java +11 -0
- package/src/targets/java/okhttp/fixtures/cookies.java +9 -0
- package/src/targets/java/okhttp/fixtures/custom-method.java +8 -0
- package/src/targets/java/okhttp/fixtures/full.java +13 -0
- package/src/targets/java/okhttp/fixtures/headers.java +11 -0
- package/src/targets/java/okhttp/fixtures/http-insecure.java +8 -0
- package/src/targets/java/okhttp/fixtures/jsonObj-multiline.java +11 -0
- package/src/targets/java/okhttp/fixtures/jsonObj-null-value.java +11 -0
- package/src/targets/java/okhttp/fixtures/multipart-data.java +11 -0
- package/src/targets/java/okhttp/fixtures/multipart-file.java +11 -0
- package/src/targets/java/okhttp/fixtures/multipart-form-data-no-params.java +9 -0
- package/src/targets/java/okhttp/fixtures/multipart-form-data.java +11 -0
- package/src/targets/java/okhttp/fixtures/nested.java +8 -0
- package/src/targets/java/okhttp/fixtures/query-encoded.java +8 -0
- package/src/targets/java/okhttp/fixtures/query.java +8 -0
- package/src/targets/java/okhttp/fixtures/short.java +8 -0
- package/src/targets/java/okhttp/fixtures/text-plain.java +11 -0
- package/src/targets/java/target.ts +21 -0
- package/src/targets/java/unirest/client.ts +50 -0
- package/src/targets/java/unirest/fixtures/application-form-encoded.java +4 -0
- package/src/targets/java/unirest/fixtures/application-json.java +4 -0
- package/src/targets/java/unirest/fixtures/cookies.java +3 -0
- package/src/targets/java/unirest/fixtures/custom-method.java +2 -0
- package/src/targets/java/unirest/fixtures/full.java +6 -0
- package/src/targets/java/unirest/fixtures/headers.java +5 -0
- package/src/targets/java/unirest/fixtures/http-insecure.java +2 -0
- package/src/targets/java/unirest/fixtures/jsonObj-multiline.java +4 -0
- package/src/targets/java/unirest/fixtures/jsonObj-null-value.java +4 -0
- package/src/targets/java/unirest/fixtures/multipart-data.java +4 -0
- package/src/targets/java/unirest/fixtures/multipart-file.java +4 -0
- package/src/targets/java/unirest/fixtures/multipart-form-data-no-params.java +3 -0
- package/src/targets/java/unirest/fixtures/multipart-form-data.java +4 -0
- package/src/targets/java/unirest/fixtures/nested.java +2 -0
- package/src/targets/java/unirest/fixtures/query-encoded.java +2 -0
- package/src/targets/java/unirest/fixtures/query.java +2 -0
- package/src/targets/java/unirest/fixtures/short.java +2 -0
- package/src/targets/java/unirest/fixtures/text-plain.java +4 -0
- package/src/targets/javascript/axios/client.ts +109 -0
- package/src/targets/javascript/axios/fixtures/application-form-encoded.js +21 -0
- package/src/targets/javascript/axios/fixtures/application-json.js +24 -0
- package/src/targets/javascript/axios/fixtures/cookies.js +16 -0
- package/src/targets/javascript/axios/fixtures/custom-method.js +12 -0
- package/src/targets/javascript/axios/fixtures/full.js +25 -0
- package/src/targets/javascript/axios/fixtures/headers.js +16 -0
- package/src/targets/javascript/axios/fixtures/http-insecure.js +12 -0
- package/src/targets/javascript/axios/fixtures/jsonObj-multiline.js +17 -0
- package/src/targets/javascript/axios/fixtures/jsonObj-null-value.js +17 -0
- package/src/targets/javascript/axios/fixtures/multipart-data.js +21 -0
- package/src/targets/javascript/axios/fixtures/multipart-file.js +20 -0
- package/src/targets/javascript/axios/fixtures/multipart-form-data-no-params.js +16 -0
- package/src/targets/javascript/axios/fixtures/multipart-form-data.js +20 -0
- package/src/targets/javascript/axios/fixtures/nested.js +16 -0
- package/src/targets/javascript/axios/fixtures/query-encoded.js +19 -0
- package/src/targets/javascript/axios/fixtures/query.js +16 -0
- package/src/targets/javascript/axios/fixtures/short.js +12 -0
- package/src/targets/javascript/axios/fixtures/text-plain.js +17 -0
- package/src/targets/javascript/fetch/client.ts +129 -0
- package/src/targets/javascript/fetch/fixtures/application-form-encoded.js +10 -0
- package/src/targets/javascript/fetch/fixtures/application-json.js +17 -0
- package/src/targets/javascript/fetch/fixtures/cookies.js +6 -0
- package/src/targets/javascript/fetch/fixtures/custom-method.js +6 -0
- package/src/targets/javascript/fetch/fixtures/full.js +14 -0
- package/src/targets/javascript/fetch/fixtures/headers.js +9 -0
- package/src/targets/javascript/fetch/fixtures/http-insecure.js +6 -0
- package/src/targets/javascript/fetch/fixtures/jsonObj-multiline.js +10 -0
- package/src/targets/javascript/fetch/fixtures/jsonObj-null-value.js +10 -0
- package/src/targets/javascript/fetch/fixtures/multipart-data.js +12 -0
- package/src/targets/javascript/fetch/fixtures/multipart-file.js +11 -0
- package/src/targets/javascript/fetch/fixtures/multipart-form-data-no-params.js +6 -0
- package/src/targets/javascript/fetch/fixtures/multipart-form-data.js +11 -0
- package/src/targets/javascript/fetch/fixtures/nested.js +6 -0
- package/src/targets/javascript/fetch/fixtures/query-encoded.js +6 -0
- package/src/targets/javascript/fetch/fixtures/query.js +6 -0
- package/src/targets/javascript/fetch/fixtures/short.js +6 -0
- package/src/targets/javascript/fetch/fixtures/text-plain.js +6 -0
- package/src/targets/javascript/jquery/client.ts +95 -0
- package/src/targets/javascript/jquery/fixtures/application-form-encoded.js +17 -0
- package/src/targets/javascript/jquery/fixtures/application-json.js +15 -0
- package/src/targets/javascript/jquery/fixtures/cookies.js +13 -0
- package/src/targets/javascript/jquery/fixtures/custom-method.js +11 -0
- package/src/targets/javascript/jquery/fixtures/full.js +18 -0
- package/src/targets/javascript/jquery/fixtures/headers.js +15 -0
- package/src/targets/javascript/jquery/fixtures/http-insecure.js +11 -0
- package/src/targets/javascript/jquery/fixtures/jsonObj-multiline.js +15 -0
- package/src/targets/javascript/jquery/fixtures/jsonObj-null-value.js +15 -0
- package/src/targets/javascript/jquery/fixtures/multipart-data.js +19 -0
- package/src/targets/javascript/jquery/fixtures/multipart-file.js +18 -0
- package/src/targets/javascript/jquery/fixtures/multipart-form-data-no-params.js +13 -0
- package/src/targets/javascript/jquery/fixtures/multipart-form-data.js +18 -0
- package/src/targets/javascript/jquery/fixtures/nested.js +11 -0
- package/src/targets/javascript/jquery/fixtures/query-encoded.js +11 -0
- package/src/targets/javascript/jquery/fixtures/query.js +11 -0
- package/src/targets/javascript/jquery/fixtures/short.js +11 -0
- package/src/targets/javascript/jquery/fixtures/text-plain.js +14 -0
- package/src/targets/javascript/target.ts +21 -0
- package/src/targets/javascript/xhr/client.test.ts +18 -0
- package/src/targets/javascript/xhr/client.ts +100 -0
- package/src/targets/javascript/xhr/fixtures/application-form-encoded.js +15 -0
- package/src/targets/javascript/xhr/fixtures/application-json.js +34 -0
- package/src/targets/javascript/xhr/fixtures/cookies.js +15 -0
- package/src/targets/javascript/xhr/fixtures/cors.js +13 -0
- package/src/targets/javascript/xhr/fixtures/custom-method.js +14 -0
- package/src/targets/javascript/xhr/fixtures/full.js +17 -0
- package/src/targets/javascript/xhr/fixtures/headers.js +17 -0
- package/src/targets/javascript/xhr/fixtures/http-insecure.js +14 -0
- package/src/targets/javascript/xhr/fixtures/jsonObj-multiline.js +17 -0
- package/src/targets/javascript/xhr/fixtures/jsonObj-null-value.js +17 -0
- package/src/targets/javascript/xhr/fixtures/multipart-data.js +16 -0
- package/src/targets/javascript/xhr/fixtures/multipart-file.js +15 -0
- package/src/targets/javascript/xhr/fixtures/multipart-form-data-no-params.js +13 -0
- package/src/targets/javascript/xhr/fixtures/multipart-form-data.js +15 -0
- package/src/targets/javascript/xhr/fixtures/nested.js +14 -0
- package/src/targets/javascript/xhr/fixtures/query-encoded.js +14 -0
- package/src/targets/javascript/xhr/fixtures/query.js +14 -0
- package/src/targets/javascript/xhr/fixtures/short.js +14 -0
- package/src/targets/javascript/xhr/fixtures/text-plain.js +15 -0
- package/src/targets/kotlin/okhttp/client.ts +73 -0
- package/src/targets/kotlin/okhttp/fixtures/application-form-encoded.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/application-json.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/cookies.kt +9 -0
- package/src/targets/kotlin/okhttp/fixtures/custom-method.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/full.kt +13 -0
- package/src/targets/kotlin/okhttp/fixtures/headers.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/http-insecure.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/jsonObj-multiline.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/jsonObj-null-value.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/multipart-data.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/multipart-file.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/multipart-form-data-no-params.kt +9 -0
- package/src/targets/kotlin/okhttp/fixtures/multipart-form-data.kt +11 -0
- package/src/targets/kotlin/okhttp/fixtures/nested.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/query-encoded.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/query.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/short.kt +8 -0
- package/src/targets/kotlin/okhttp/fixtures/text-plain.kt +11 -0
- package/src/targets/kotlin/target.ts +14 -0
- package/src/targets/node/axios/client.ts +89 -0
- package/src/targets/node/axios/fixtures/application-form-encoded.js +22 -0
- package/src/targets/node/axios/fixtures/application-json.js +24 -0
- package/src/targets/node/axios/fixtures/cookies.js +16 -0
- package/src/targets/node/axios/fixtures/custom-method.js +12 -0
- package/src/targets/node/axios/fixtures/full.js +25 -0
- package/src/targets/node/axios/fixtures/headers.js +16 -0
- package/src/targets/node/axios/fixtures/http-insecure.js +12 -0
- package/src/targets/node/axios/fixtures/jsonObj-multiline.js +17 -0
- package/src/targets/node/axios/fixtures/jsonObj-null-value.js +17 -0
- package/src/targets/node/axios/fixtures/multipart-data.js +17 -0
- package/src/targets/node/axios/fixtures/multipart-file.js +17 -0
- package/src/targets/node/axios/fixtures/multipart-form-data-no-params.js +16 -0
- package/src/targets/node/axios/fixtures/multipart-form-data.js +17 -0
- package/src/targets/node/axios/fixtures/nested.js +15 -0
- package/src/targets/node/axios/fixtures/query-encoded.js +15 -0
- package/src/targets/node/axios/fixtures/query.js +15 -0
- package/src/targets/node/axios/fixtures/short.js +12 -0
- package/src/targets/node/axios/fixtures/text-plain.js +17 -0
- package/src/targets/node/fetch/client.ts +153 -0
- package/src/targets/node/fetch/fixtures/application-form-encoded.js +18 -0
- package/src/targets/node/fetch/fixtures/application-json.js +20 -0
- package/src/targets/node/fetch/fixtures/cookies.js +9 -0
- package/src/targets/node/fetch/fixtures/custom-method.js +9 -0
- package/src/targets/node/fetch/fixtures/full.js +21 -0
- package/src/targets/node/fetch/fixtures/headers.js +12 -0
- package/src/targets/node/fetch/fixtures/http-insecure.js +9 -0
- package/src/targets/node/fetch/fixtures/jsonObj-multiline.js +13 -0
- package/src/targets/node/fetch/fixtures/jsonObj-null-value.js +13 -0
- package/src/targets/node/fetch/fixtures/multipart-data.js +17 -0
- package/src/targets/node/fetch/fixtures/multipart-file.js +16 -0
- package/src/targets/node/fetch/fixtures/multipart-form-data-no-params.js +9 -0
- package/src/targets/node/fetch/fixtures/multipart-form-data.js +15 -0
- package/src/targets/node/fetch/fixtures/nested.js +9 -0
- package/src/targets/node/fetch/fixtures/query-encoded.js +9 -0
- package/src/targets/node/fetch/fixtures/query.js +9 -0
- package/src/targets/node/fetch/fixtures/short.js +9 -0
- package/src/targets/node/fetch/fixtures/text-plain.js +9 -0
- package/src/targets/node/native/client.ts +91 -0
- package/src/targets/node/native/fixtures/application-form-encoded.js +28 -0
- package/src/targets/node/native/fixtures/application-json.js +34 -0
- package/src/targets/node/native/fixtures/cookies.js +26 -0
- package/src/targets/node/native/fixtures/custom-method.js +24 -0
- package/src/targets/node/native/fixtures/full.js +30 -0
- package/src/targets/node/native/fixtures/headers.js +28 -0
- package/src/targets/node/native/fixtures/http-insecure.js +24 -0
- package/src/targets/node/native/fixtures/jsonObj-multiline.js +27 -0
- package/src/targets/node/native/fixtures/jsonObj-null-value.js +27 -0
- package/src/targets/node/native/fixtures/multipart-data.js +27 -0
- package/src/targets/node/native/fixtures/multipart-file.js +27 -0
- package/src/targets/node/native/fixtures/multipart-form-data-no-params.js +26 -0
- package/src/targets/node/native/fixtures/multipart-form-data.js +27 -0
- package/src/targets/node/native/fixtures/nested.js +24 -0
- package/src/targets/node/native/fixtures/query-encoded.js +24 -0
- package/src/targets/node/native/fixtures/query.js +24 -0
- package/src/targets/node/native/fixtures/short.js +24 -0
- package/src/targets/node/native/fixtures/text-plain.js +27 -0
- package/src/targets/node/request/client.ts +130 -0
- package/src/targets/node/request/fixtures/application-form-encoded.js +14 -0
- package/src/targets/node/request/fixtures/application-json.js +22 -0
- package/src/targets/node/request/fixtures/cookies.js +13 -0
- package/src/targets/node/request/fixtures/custom-method.js +9 -0
- package/src/targets/node/request/fixtures/full.js +22 -0
- package/src/targets/node/request/fixtures/headers.js +13 -0
- package/src/targets/node/request/fixtures/http-insecure.js +9 -0
- package/src/targets/node/request/fixtures/jsonObj-multiline.js +15 -0
- package/src/targets/node/request/fixtures/jsonObj-null-value.js +15 -0
- package/src/targets/node/request/fixtures/multipart-data.js +21 -0
- package/src/targets/node/request/fixtures/multipart-file.js +20 -0
- package/src/targets/node/request/fixtures/multipart-form-data-no-params.js +13 -0
- package/src/targets/node/request/fixtures/multipart-form-data.js +14 -0
- package/src/targets/node/request/fixtures/nested.js +12 -0
- package/src/targets/node/request/fixtures/query-encoded.js +12 -0
- package/src/targets/node/request/fixtures/query.js +12 -0
- package/src/targets/node/request/fixtures/short.js +9 -0
- package/src/targets/node/request/fixtures/text-plain.js +14 -0
- package/src/targets/node/target.ts +23 -0
- package/src/targets/node/unirest/client.ts +129 -0
- package/src/targets/node/unirest/fixtures/application-form-encoded.js +18 -0
- package/src/targets/node/unirest/fixtures/application-json.js +35 -0
- package/src/targets/node/unirest/fixtures/cookies.js +14 -0
- package/src/targets/node/unirest/fixtures/custom-method.js +9 -0
- package/src/targets/node/unirest/fixtures/full.js +32 -0
- package/src/targets/node/unirest/fixtures/headers.js +15 -0
- package/src/targets/node/unirest/fixtures/http-insecure.js +9 -0
- package/src/targets/node/unirest/fixtures/jsonObj-multiline.js +18 -0
- package/src/targets/node/unirest/fixtures/jsonObj-null-value.js +18 -0
- package/src/targets/node/unirest/fixtures/multipart-data.js +23 -0
- package/src/targets/node/unirest/fixtures/multipart-file.js +21 -0
- package/src/targets/node/unirest/fixtures/multipart-form-data-no-params.js +13 -0
- package/src/targets/node/unirest/fixtures/multipart-form-data.js +19 -0
- package/src/targets/node/unirest/fixtures/nested.js +15 -0
- package/src/targets/node/unirest/fixtures/query-encoded.js +14 -0
- package/src/targets/node/unirest/fixtures/query.js +18 -0
- package/src/targets/node/unirest/fixtures/short.js +9 -0
- package/src/targets/node/unirest/fixtures/text-plain.js +15 -0
- package/src/targets/objc/helpers.ts +60 -0
- package/src/targets/objc/nsurlsession/client.test.ts +36 -0
- package/src/targets/objc/nsurlsession/client.ts +164 -0
- package/src/targets/objc/nsurlsession/fixtures/application-form-encoded.m +25 -0
- package/src/targets/objc/nsurlsession/fixtures/application-json.m +30 -0
- package/src/targets/objc/nsurlsession/fixtures/cookies.m +21 -0
- package/src/targets/objc/nsurlsession/fixtures/custom-method.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/full.m +26 -0
- package/src/targets/objc/nsurlsession/fixtures/headers.m +23 -0
- package/src/targets/objc/nsurlsession/fixtures/http-insecure.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/indent-option.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/json-with-null-value.m +25 -0
- package/src/targets/objc/nsurlsession/fixtures/jsonObj-multiline.m +25 -0
- package/src/targets/objc/nsurlsession/fixtures/jsonObj-null-value.m +25 -0
- package/src/targets/objc/nsurlsession/fixtures/multipart-data.m +44 -0
- package/src/targets/objc/nsurlsession/fixtures/multipart-file.m +43 -0
- package/src/targets/objc/nsurlsession/fixtures/multipart-form-data-no-params.m +21 -0
- package/src/targets/objc/nsurlsession/fixtures/multipart-form-data.m +43 -0
- package/src/targets/objc/nsurlsession/fixtures/nested.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/pretty-option.m +24 -0
- package/src/targets/objc/nsurlsession/fixtures/query-encoded.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/query.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/short.m +18 -0
- package/src/targets/objc/nsurlsession/fixtures/text-plain.m +24 -0
- package/src/targets/objc/nsurlsession/fixtures/timeout-option.m +18 -0
- package/src/targets/objc/target.ts +14 -0
- package/src/targets/ocaml/cohttp/client.ts +72 -0
- package/src/targets/ocaml/cohttp/fixtures/application-form-encoded.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/application-json.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/cookies.ml +10 -0
- package/src/targets/ocaml/cohttp/fixtures/custom-method.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/full.ml +15 -0
- package/src/targets/ocaml/cohttp/fixtures/headers.ml +14 -0
- package/src/targets/ocaml/cohttp/fixtures/http-insecure.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/jsonObj-multiline.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/jsonObj-null-value.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/multipart-data.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/multipart-file.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/multipart-form-data-no-params.ml +10 -0
- package/src/targets/ocaml/cohttp/fixtures/multipart-form-data.ml +11 -0
- package/src/targets/ocaml/cohttp/fixtures/nested.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/query-encoded.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/query.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/short.ml +9 -0
- package/src/targets/ocaml/cohttp/fixtures/text-plain.ml +11 -0
- package/src/targets/ocaml/target.ts +14 -0
- package/src/targets/php/curl/client.ts +154 -0
- package/src/targets/php/curl/fixtures/application-form-encoded.php +28 -0
- package/src/targets/php/curl/fixtures/application-json.php +28 -0
- package/src/targets/php/curl/fixtures/cookies.php +25 -0
- package/src/targets/php/curl/fixtures/custom-method.php +24 -0
- package/src/targets/php/curl/fixtures/full.php +30 -0
- package/src/targets/php/curl/fixtures/headers.php +29 -0
- package/src/targets/php/curl/fixtures/http-insecure.php +24 -0
- package/src/targets/php/curl/fixtures/jsonObj-multiline.php +28 -0
- package/src/targets/php/curl/fixtures/jsonObj-null-value.php +28 -0
- package/src/targets/php/curl/fixtures/multipart-data.php +28 -0
- package/src/targets/php/curl/fixtures/multipart-file.php +28 -0
- package/src/targets/php/curl/fixtures/multipart-form-data-no-params.php +28 -0
- package/src/targets/php/curl/fixtures/multipart-form-data.php +28 -0
- package/src/targets/php/curl/fixtures/nested.php +24 -0
- package/src/targets/php/curl/fixtures/query-encoded.php +24 -0
- package/src/targets/php/curl/fixtures/query.php +24 -0
- package/src/targets/php/curl/fixtures/short.php +24 -0
- package/src/targets/php/curl/fixtures/text-plain.php +28 -0
- package/src/targets/php/guzzle/client.ts +151 -0
- package/src/targets/php/guzzle/fixtures/application-form-encoded.php +16 -0
- package/src/targets/php/guzzle/fixtures/application-json.php +13 -0
- package/src/targets/php/guzzle/fixtures/cookies.php +12 -0
- package/src/targets/php/guzzle/fixtures/custom-method.php +8 -0
- package/src/targets/php/guzzle/fixtures/full.php +17 -0
- package/src/targets/php/guzzle/fixtures/headers.php +14 -0
- package/src/targets/php/guzzle/fixtures/http-insecure.php +8 -0
- package/src/targets/php/guzzle/fixtures/jsonObj-multiline.php +15 -0
- package/src/targets/php/guzzle/fixtures/jsonObj-null-value.php +13 -0
- package/src/targets/php/guzzle/fixtures/multipart-data.php +23 -0
- package/src/targets/php/guzzle/fixtures/multipart-file.php +19 -0
- package/src/targets/php/guzzle/fixtures/multipart-form-data-no-params.php +12 -0
- package/src/targets/php/guzzle/fixtures/multipart-form-data.php +15 -0
- package/src/targets/php/guzzle/fixtures/nested.php +8 -0
- package/src/targets/php/guzzle/fixtures/query-encoded.php +8 -0
- package/src/targets/php/guzzle/fixtures/query.php +8 -0
- package/src/targets/php/guzzle/fixtures/short.php +8 -0
- package/src/targets/php/guzzle/fixtures/text-plain.php +13 -0
- package/src/targets/php/helpers.ts +67 -0
- package/src/targets/php/http1/client.ts +103 -0
- package/src/targets/php/http1/fixtures/application-form-encoded.php +23 -0
- package/src/targets/php/http1/fixtures/application-json.php +19 -0
- package/src/targets/php/http1/fixtures/cookies.php +18 -0
- package/src/targets/php/http1/fixtures/custom-method.php +13 -0
- package/src/targets/php/http1/fixtures/full.php +37 -0
- package/src/targets/php/http1/fixtures/headers.php +19 -0
- package/src/targets/php/http1/fixtures/http-insecure.php +13 -0
- package/src/targets/php/http1/fixtures/jsonObj-multiline.php +21 -0
- package/src/targets/php/http1/fixtures/jsonObj-null-value.php +19 -0
- package/src/targets/php/http1/fixtures/multipart-data.php +29 -0
- package/src/targets/php/http1/fixtures/multipart-file.php +25 -0
- package/src/targets/php/http1/fixtures/multipart-form-data-no-params.php +17 -0
- package/src/targets/php/http1/fixtures/multipart-form-data.php +24 -0
- package/src/targets/php/http1/fixtures/nested.php +19 -0
- package/src/targets/php/http1/fixtures/query-encoded.php +18 -0
- package/src/targets/php/http1/fixtures/query.php +22 -0
- package/src/targets/php/http1/fixtures/short.php +13 -0
- package/src/targets/php/http1/fixtures/text-plain.php +19 -0
- package/src/targets/php/http2/client.ts +153 -0
- package/src/targets/php/http2/fixtures/application-form-encoded.php +23 -0
- package/src/targets/php/http2/fixtures/application-json.php +20 -0
- package/src/targets/php/http2/fixtures/cookies.php +17 -0
- package/src/targets/php/http2/fixtures/custom-method.php +11 -0
- package/src/targets/php/http2/fixtures/full.php +38 -0
- package/src/targets/php/http2/fixtures/headers.php +17 -0
- package/src/targets/php/http2/fixtures/http-insecure.php +11 -0
- package/src/targets/php/http2/fixtures/jsonObj-multiline.php +22 -0
- package/src/targets/php/http2/fixtures/jsonObj-null-value.php +20 -0
- package/src/targets/php/http2/fixtures/multipart-data.php +25 -0
- package/src/targets/php/http2/fixtures/multipart-file.php +23 -0
- package/src/targets/php/http2/fixtures/multipart-form-data-no-params.php +15 -0
- package/src/targets/php/http2/fixtures/multipart-form-data.php +18 -0
- package/src/targets/php/http2/fixtures/nested.php +17 -0
- package/src/targets/php/http2/fixtures/query-encoded.php +16 -0
- package/src/targets/php/http2/fixtures/query.php +20 -0
- package/src/targets/php/http2/fixtures/short.php +11 -0
- package/src/targets/php/http2/fixtures/text-plain.php +20 -0
- package/src/targets/php/target.ts +21 -0
- package/src/targets/powershell/common.ts +58 -0
- package/src/targets/powershell/restmethod/client.ts +12 -0
- package/src/targets/powershell/restmethod/fixtures/application-form-encoded.ps1 +3 -0
- package/src/targets/powershell/restmethod/fixtures/application-json.ps1 +3 -0
- package/src/targets/powershell/restmethod/fixtures/cookies.ps1 +12 -0
- package/src/targets/powershell/restmethod/fixtures/custom-method.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/full.ps1 +15 -0
- package/src/targets/powershell/restmethod/fixtures/headers.ps1 +5 -0
- package/src/targets/powershell/restmethod/fixtures/http-insecure.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/jsonObj-multiline.ps1 +5 -0
- package/src/targets/powershell/restmethod/fixtures/jsonObj-null-value.ps1 +3 -0
- package/src/targets/powershell/restmethod/fixtures/multipart-data.ps1 +13 -0
- package/src/targets/powershell/restmethod/fixtures/multipart-file.ps1 +9 -0
- package/src/targets/powershell/restmethod/fixtures/multipart-form-data-no-params.ps1 +3 -0
- package/src/targets/powershell/restmethod/fixtures/multipart-form-data.ps1 +8 -0
- package/src/targets/powershell/restmethod/fixtures/nested.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/query-encoded.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/query.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/short.ps1 +1 -0
- package/src/targets/powershell/restmethod/fixtures/text-plain.ps1 +3 -0
- package/src/targets/powershell/target.ts +16 -0
- package/src/targets/powershell/webrequest/client.ts +12 -0
- package/src/targets/powershell/webrequest/fixtures/application-form-encoded.ps1 +3 -0
- package/src/targets/powershell/webrequest/fixtures/application-json.ps1 +3 -0
- package/src/targets/powershell/webrequest/fixtures/cookies.ps1 +12 -0
- package/src/targets/powershell/webrequest/fixtures/custom-method.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/full.ps1 +15 -0
- package/src/targets/powershell/webrequest/fixtures/headers.ps1 +5 -0
- package/src/targets/powershell/webrequest/fixtures/http-insecure.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/jsonObj-multiline.ps1 +5 -0
- package/src/targets/powershell/webrequest/fixtures/jsonObj-null-value.ps1 +3 -0
- package/src/targets/powershell/webrequest/fixtures/multipart-data.ps1 +13 -0
- package/src/targets/powershell/webrequest/fixtures/multipart-file.ps1 +9 -0
- package/src/targets/powershell/webrequest/fixtures/multipart-form-data-no-params.ps1 +3 -0
- package/src/targets/powershell/webrequest/fixtures/multipart-form-data.ps1 +8 -0
- package/src/targets/powershell/webrequest/fixtures/nested.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/query-encoded.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/query.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/short.ps1 +1 -0
- package/src/targets/powershell/webrequest/fixtures/text-plain.ps1 +3 -0
- package/src/targets/python/helpers.ts +81 -0
- package/src/targets/python/requests/client.ts +175 -0
- package/src/targets/python/requests/fixtures/application-form-encoded.py +10 -0
- package/src/targets/python/requests/fixtures/application-json.py +17 -0
- package/src/targets/python/requests/fixtures/cookies.py +9 -0
- package/src/targets/python/requests/fixtures/custom-method.py +7 -0
- package/src/targets/python/requests/fixtures/full.py +14 -0
- package/src/targets/python/requests/fixtures/headers.py +13 -0
- package/src/targets/python/requests/fixtures/http-insecure.py +7 -0
- package/src/targets/python/requests/fixtures/jsonObj-multiline.py +10 -0
- package/src/targets/python/requests/fixtures/jsonObj-null-value.py +10 -0
- package/src/targets/python/requests/fixtures/multipart-data.py +10 -0
- package/src/targets/python/requests/fixtures/multipart-file.py +9 -0
- package/src/targets/python/requests/fixtures/multipart-form-data-no-params.py +9 -0
- package/src/targets/python/requests/fixtures/multipart-form-data.py +10 -0
- package/src/targets/python/requests/fixtures/nested.py +7 -0
- package/src/targets/python/requests/fixtures/query-encoded.py +7 -0
- package/src/targets/python/requests/fixtures/query.py +7 -0
- package/src/targets/python/requests/fixtures/short.py +7 -0
- package/src/targets/python/requests/fixtures/text-plain.py +10 -0
- package/src/targets/python/target.ts +15 -0
- package/src/targets/r/httr/client.test.ts +29 -0
- package/src/targets/r/httr/client.ts +146 -0
- package/src/targets/r/httr/fixtures/application-form-encoded.r +11 -0
- package/src/targets/r/httr/fixtures/application-json.r +11 -0
- package/src/targets/r/httr/fixtures/cookies.r +7 -0
- package/src/targets/r/httr/fixtures/custom-method.r +7 -0
- package/src/targets/r/httr/fixtures/full.r +16 -0
- package/src/targets/r/httr/fixtures/headers.r +7 -0
- package/src/targets/r/httr/fixtures/http-insecure.r +7 -0
- package/src/targets/r/httr/fixtures/jsonObj-multiline.r +11 -0
- package/src/targets/r/httr/fixtures/jsonObj-null-value.r +11 -0
- package/src/targets/r/httr/fixtures/multipart-data.r +11 -0
- package/src/targets/r/httr/fixtures/multipart-file.r +11 -0
- package/src/targets/r/httr/fixtures/multipart-form-data-no-params.r +9 -0
- package/src/targets/r/httr/fixtures/multipart-form-data.r +11 -0
- package/src/targets/r/httr/fixtures/nested.r +12 -0
- package/src/targets/r/httr/fixtures/query-encoded.r +12 -0
- package/src/targets/r/httr/fixtures/query-two-params.r +12 -0
- package/src/targets/r/httr/fixtures/query.r +12 -0
- package/src/targets/r/httr/fixtures/short.r +7 -0
- package/src/targets/r/httr/fixtures/text-plain.r +11 -0
- package/src/targets/r/target.ts +14 -0
- package/src/targets/ruby/native/client.ts +78 -0
- package/src/targets/ruby/native/fixtures/application-form-encoded.rb +15 -0
- package/src/targets/ruby/native/fixtures/application-json.rb +15 -0
- package/src/targets/ruby/native/fixtures/cookies.rb +14 -0
- package/src/targets/ruby/native/fixtures/custom-method.rb +19 -0
- package/src/targets/ruby/native/fixtures/full.rb +17 -0
- package/src/targets/ruby/native/fixtures/headers.rb +16 -0
- package/src/targets/ruby/native/fixtures/http-insecure.rb +11 -0
- package/src/targets/ruby/native/fixtures/jsonObj-multiline.rb +15 -0
- package/src/targets/ruby/native/fixtures/jsonObj-null-value.rb +15 -0
- package/src/targets/ruby/native/fixtures/multipart-data.rb +15 -0
- package/src/targets/ruby/native/fixtures/multipart-file.rb +15 -0
- package/src/targets/ruby/native/fixtures/multipart-form-data-no-params.rb +14 -0
- package/src/targets/ruby/native/fixtures/multipart-form-data.rb +15 -0
- package/src/targets/ruby/native/fixtures/nested.rb +13 -0
- package/src/targets/ruby/native/fixtures/query-encoded.rb +13 -0
- package/src/targets/ruby/native/fixtures/query.rb +13 -0
- package/src/targets/ruby/native/fixtures/short.rb +13 -0
- package/src/targets/ruby/native/fixtures/text-plain.rb +15 -0
- package/src/targets/ruby/target.ts +14 -0
- package/src/targets/shell/curl/client.test.ts +157 -0
- package/src/targets/shell/curl/client.ts +193 -0
- package/src/targets/shell/curl/fixtures/application-form-encoded.sh +5 -0
- package/src/targets/shell/curl/fixtures/application-json.sh +25 -0
- package/src/targets/shell/curl/fixtures/binary-option.sh +1 -0
- package/src/targets/shell/curl/fixtures/cookies.sh +3 -0
- package/src/targets/shell/curl/fixtures/custom-indentation.sh +6 -0
- package/src/targets/shell/curl/fixtures/custom-method.sh +2 -0
- package/src/targets/shell/curl/fixtures/dont-deglob.sh +1 -0
- package/src/targets/shell/curl/fixtures/full.sh +6 -0
- package/src/targets/shell/curl/fixtures/globoff-option.sh +1 -0
- package/src/targets/shell/curl/fixtures/harIsAlreadyEncoded-option-already-encoded.sh +3 -0
- package/src/targets/shell/curl/fixtures/harIsAlreadyEncoded=option-escape-brackets.sh +2 -0
- package/src/targets/shell/curl/fixtures/headers.sh +5 -0
- package/src/targets/shell/curl/fixtures/heredoc-json-encoded-data.sh +9 -0
- package/src/targets/shell/curl/fixtures/http-insecure.sh +2 -0
- package/src/targets/shell/curl/fixtures/http1.sh +3 -0
- package/src/targets/shell/curl/fixtures/http10.sh +1 -0
- package/src/targets/shell/curl/fixtures/json-payloads-smaller-than-20-characters.sh +4 -0
- package/src/targets/shell/curl/fixtures/jsonObj-multiline.sh +6 -0
- package/src/targets/shell/curl/fixtures/jsonObj-null-value.sh +4 -0
- package/src/targets/shell/curl/fixtures/long-globoff-option.sh +1 -0
- package/src/targets/shell/curl/fixtures/multipart-data.sh +5 -0
- package/src/targets/shell/curl/fixtures/multipart-file.sh +4 -0
- package/src/targets/shell/curl/fixtures/multipart-form-data-no-params.sh +3 -0
- package/src/targets/shell/curl/fixtures/multipart-form-data.sh +4 -0
- package/src/targets/shell/curl/fixtures/nested.sh +2 -0
- package/src/targets/shell/curl/fixtures/query-encoded.sh +2 -0
- package/src/targets/shell/curl/fixtures/query.sh +2 -0
- package/src/targets/shell/curl/fixtures/short-options.sh +1 -0
- package/src/targets/shell/curl/fixtures/short.sh +2 -0
- package/src/targets/shell/curl/fixtures/text-plain.sh +4 -0
- package/src/targets/shell/curl/fixtures/urlencode.sh +5 -0
- package/src/targets/shell/httpie/client.test.ts +72 -0
- package/src/targets/shell/httpie/client.ts +144 -0
- package/src/targets/shell/httpie/fixtures/application-form-encoded.sh +4 -0
- package/src/targets/shell/httpie/fixtures/application-json.sh +3 -0
- package/src/targets/shell/httpie/fixtures/build-parameters.sh +1 -0
- package/src/targets/shell/httpie/fixtures/cookies.sh +2 -0
- package/src/targets/shell/httpie/fixtures/custom-indentation.sh +5 -0
- package/src/targets/shell/httpie/fixtures/custom-method.sh +1 -0
- package/src/targets/shell/httpie/fixtures/full.sh +5 -0
- package/src/targets/shell/httpie/fixtures/headers.sh +4 -0
- package/src/targets/shell/httpie/fixtures/http-insecure.sh +1 -0
- package/src/targets/shell/httpie/fixtures/jsonObj-multiline.sh +5 -0
- package/src/targets/shell/httpie/fixtures/jsonObj-null-value.sh +3 -0
- package/src/targets/shell/httpie/fixtures/long-flags.sh +1 -0
- package/src/targets/shell/httpie/fixtures/multipart-data.sh +13 -0
- package/src/targets/shell/httpie/fixtures/multipart-file.sh +9 -0
- package/src/targets/shell/httpie/fixtures/multipart-form-data-no-params.sh +2 -0
- package/src/targets/shell/httpie/fixtures/multipart-form-data.sh +8 -0
- package/src/targets/shell/httpie/fixtures/nested.sh +1 -0
- package/src/targets/shell/httpie/fixtures/query-encoded.sh +1 -0
- package/src/targets/shell/httpie/fixtures/query.sh +1 -0
- package/src/targets/shell/httpie/fixtures/querystring-parameters.sh +1 -0
- package/src/targets/shell/httpie/fixtures/short-flags.sh +1 -0
- package/src/targets/shell/httpie/fixtures/short.sh +1 -0
- package/src/targets/shell/httpie/fixtures/text-plain.sh +3 -0
- package/src/targets/shell/httpie/fixtures/verbose-output.sh +1 -0
- package/src/targets/shell/target.ts +19 -0
- package/src/targets/shell/wget/client.test.ts +35 -0
- package/src/targets/shell/wget/client.ts +63 -0
- package/src/targets/shell/wget/fixtures/application-form-encoded.sh +6 -0
- package/src/targets/shell/wget/fixtures/application-json.sh +6 -0
- package/src/targets/shell/wget/fixtures/cookies.sh +5 -0
- package/src/targets/shell/wget/fixtures/custom-indentation.sh +8 -0
- package/src/targets/shell/wget/fixtures/custom-method.sh +4 -0
- package/src/targets/shell/wget/fixtures/full.sh +8 -0
- package/src/targets/shell/wget/fixtures/headers.sh +7 -0
- package/src/targets/shell/wget/fixtures/http-insecure.sh +4 -0
- package/src/targets/shell/wget/fixtures/jsonObj-multiline.sh +6 -0
- package/src/targets/shell/wget/fixtures/jsonObj-null-value.sh +6 -0
- package/src/targets/shell/wget/fixtures/multipart-data.sh +6 -0
- package/src/targets/shell/wget/fixtures/multipart-file.sh +6 -0
- package/src/targets/shell/wget/fixtures/multipart-form-data-no-params.sh +5 -0
- package/src/targets/shell/wget/fixtures/multipart-form-data.sh +6 -0
- package/src/targets/shell/wget/fixtures/nested.sh +4 -0
- package/src/targets/shell/wget/fixtures/query-encoded.sh +4 -0
- package/src/targets/shell/wget/fixtures/query.sh +4 -0
- package/src/targets/shell/wget/fixtures/short-options.sh +1 -0
- package/src/targets/shell/wget/fixtures/short.sh +4 -0
- package/src/targets/shell/wget/fixtures/text-plain.sh +6 -0
- package/src/targets/shell/wget/fixtures/v-output.sh +1 -0
- package/src/targets/shell/wget/fixtures/verbose-output.sh +1 -0
- package/src/targets/swift/helpers.ts +86 -0
- package/src/targets/swift/nsurlsession/client.test.ts +44 -0
- package/src/targets/swift/nsurlsession/client.ts +157 -0
- package/src/targets/swift/nsurlsession/fixtures/application-form-encoded.swift +25 -0
- package/src/targets/swift/nsurlsession/fixtures/application-json.swift +32 -0
- package/src/targets/swift/nsurlsession/fixtures/cookies.swift +21 -0
- package/src/targets/swift/nsurlsession/fixtures/custom-method.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/full.swift +28 -0
- package/src/targets/swift/nsurlsession/fixtures/headers.swift +25 -0
- package/src/targets/swift/nsurlsession/fixtures/http-insecure.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/indent-option.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/json-null-value.swift +25 -0
- package/src/targets/swift/nsurlsession/fixtures/jsonObj-multiline.swift +25 -0
- package/src/targets/swift/nsurlsession/fixtures/jsonObj-null-value.swift +25 -0
- package/src/targets/swift/nsurlsession/fixtures/multipart-data.swift +56 -0
- package/src/targets/swift/nsurlsession/fixtures/multipart-file.swift +51 -0
- package/src/targets/swift/nsurlsession/fixtures/multipart-form-data-no-params.swift +21 -0
- package/src/targets/swift/nsurlsession/fixtures/multipart-form-data.swift +50 -0
- package/src/targets/swift/nsurlsession/fixtures/nested.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/pretty-option.swift +24 -0
- package/src/targets/swift/nsurlsession/fixtures/query-encoded.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/query.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/short.swift +18 -0
- package/src/targets/swift/nsurlsession/fixtures/text-plain.swift +24 -0
- package/src/targets/swift/nsurlsession/fixtures/timeout-option.swift +18 -0
- package/src/targets/swift/target.ts +14 -0
- package/src/targets/targets.test.ts +297 -0
- package/src/targets/targets.ts +203 -0
- package/src/helpers/code-builder.js +0 -108
- package/src/helpers/headers.js +0 -48
- package/src/helpers/reducer.js +0 -20
- package/src/index.js +0 -361
- package/src/targets/c/index.js +0 -10
- package/src/targets/c/libcurl.js +0 -45
- package/src/targets/clojure/clj_http.js +0 -176
- package/src/targets/clojure/index.js +0 -10
- package/src/targets/csharp/httpclient.js +0 -157
- package/src/targets/csharp/index.js +0 -11
- package/src/targets/csharp/restsharp.js +0 -49
- package/src/targets/go/index.js +0 -10
- package/src/targets/go/native.js +0 -130
- package/src/targets/http/http1.1.js +0 -89
- package/src/targets/http/index.js +0 -10
- package/src/targets/index.js +0 -20
- package/src/targets/java/asynchttp.js +0 -54
- package/src/targets/java/index.js +0 -13
- package/src/targets/java/nethttp.js +0 -59
- package/src/targets/java/okhttp.js +0 -78
- package/src/targets/java/unirest.js +0 -57
- package/src/targets/javascript/axios.js +0 -101
- package/src/targets/javascript/fetch.js +0 -113
- package/src/targets/javascript/index.js +0 -13
- package/src/targets/javascript/jquery.js +0 -89
- package/src/targets/javascript/xhr.js +0 -86
- package/src/targets/kotlin/index.js +0 -10
- package/src/targets/kotlin/okhttp.js +0 -78
- package/src/targets/node/axios.js +0 -76
- package/src/targets/node/fetch.js +0 -141
- package/src/targets/node/index.js +0 -15
- package/src/targets/node/native.js +0 -92
- package/src/targets/node/request.js +0 -126
- package/src/targets/node/unirest.js +0 -120
- package/src/targets/objc/helpers.js +0 -80
- package/src/targets/objc/index.js +0 -10
- package/src/targets/objc/nsurlsession.js +0 -164
- package/src/targets/ocaml/cohttp.js +0 -73
- package/src/targets/ocaml/index.js +0 -10
- package/src/targets/php/curl.js +0 -142
- package/src/targets/php/guzzle.js +0 -135
- package/src/targets/php/helpers.js +0 -87
- package/src/targets/php/http1.js +0 -85
- package/src/targets/php/http2.js +0 -131
- package/src/targets/php/index.js +0 -14
- package/src/targets/powershell/common.js +0 -60
- package/src/targets/powershell/index.js +0 -11
- package/src/targets/powershell/restmethod.js +0 -8
- package/src/targets/powershell/webrequest.js +0 -8
- package/src/targets/python/helpers.js +0 -85
- package/src/targets/python/index.js +0 -11
- package/src/targets/python/requests.js +0 -163
- package/src/targets/r/httr.js +0 -141
- package/src/targets/r/index.js +0 -10
- package/src/targets/ruby/index.js +0 -10
- package/src/targets/ruby/native.js +0 -71
- package/src/targets/shell/curl.js +0 -157
- package/src/targets/shell/helpers.js +0 -23
- package/src/targets/shell/httpie.js +0 -129
- package/src/targets/shell/index.js +0 -13
- package/src/targets/shell/wget.js +0 -52
- package/src/targets/swift/helpers.js +0 -93
- package/src/targets/swift/index.js +0 -10
- package/src/targets/swift/nsurlsession.js +0 -152
package/src/index.js
DELETED
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
const es = require('event-stream');
|
|
2
|
-
const MultiPartForm = require('form-data');
|
|
3
|
-
const qs = require('qs');
|
|
4
|
-
const reducer = require('./helpers/reducer');
|
|
5
|
-
const helpers = require('./helpers/headers');
|
|
6
|
-
const targets = require('./targets');
|
|
7
|
-
const url = require('url');
|
|
8
|
-
const validate = require('har-validator/lib/async');
|
|
9
|
-
|
|
10
|
-
const { formDataIterator, isBlob } = require('./helpers/form-data');
|
|
11
|
-
|
|
12
|
-
// constructor
|
|
13
|
-
const HTTPSnippet = function (data, opts = {}) {
|
|
14
|
-
let entries;
|
|
15
|
-
const self = this;
|
|
16
|
-
const input = { ...data };
|
|
17
|
-
|
|
18
|
-
const options = {
|
|
19
|
-
harIsAlreadyEncoded: false,
|
|
20
|
-
...opts,
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
// prep the main container
|
|
24
|
-
self.requests = [];
|
|
25
|
-
|
|
26
|
-
// is it har?
|
|
27
|
-
if (input.log && input.log.entries) {
|
|
28
|
-
entries = input.log.entries;
|
|
29
|
-
} else {
|
|
30
|
-
entries = [
|
|
31
|
-
{
|
|
32
|
-
request: input,
|
|
33
|
-
},
|
|
34
|
-
];
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
entries.forEach(function (entry) {
|
|
38
|
-
const request = { ...entry.request };
|
|
39
|
-
|
|
40
|
-
// add optional properties to make validation successful
|
|
41
|
-
request.httpVersion = request.httpVersion || 'HTTP/1.1';
|
|
42
|
-
request.queryString = request.queryString || [];
|
|
43
|
-
request.headers = request.headers || [];
|
|
44
|
-
request.cookies = request.cookies || [];
|
|
45
|
-
request.postData = request.postData || {};
|
|
46
|
-
request.postData.mimeType = request.postData.mimeType || 'application/octet-stream';
|
|
47
|
-
|
|
48
|
-
request.bodySize = 0;
|
|
49
|
-
request.headersSize = 0;
|
|
50
|
-
request.postData.size = 0;
|
|
51
|
-
|
|
52
|
-
validate.request(request, function (err, valid) {
|
|
53
|
-
if (!valid) {
|
|
54
|
-
throw err;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
self.requests.push(self.prepare(request, options));
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
HTTPSnippet.prototype.prepare = function (request, options) {
|
|
63
|
-
// construct utility properties
|
|
64
|
-
request.queryObj = {};
|
|
65
|
-
request.headersObj = {};
|
|
66
|
-
request.cookiesObj = {};
|
|
67
|
-
request.allHeaders = {};
|
|
68
|
-
request.postData.jsonObj = false;
|
|
69
|
-
request.postData.paramsObj = false;
|
|
70
|
-
|
|
71
|
-
// construct query objects
|
|
72
|
-
if (request.queryString && request.queryString.length) {
|
|
73
|
-
request.queryObj = request.queryString.reduce(reducer, {});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// construct headers objects
|
|
77
|
-
if (request.headers && request.headers.length) {
|
|
78
|
-
const http2VersionRegex = /^HTTP\/2/;
|
|
79
|
-
request.headersObj = request.headers.reduce(function (headers, header) {
|
|
80
|
-
let headerName = header.name;
|
|
81
|
-
if (request.httpVersion.match(http2VersionRegex)) {
|
|
82
|
-
headerName = headerName.toLowerCase();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// eslint-disable-next-line no-param-reassign
|
|
86
|
-
headers[headerName] = header.value;
|
|
87
|
-
return headers;
|
|
88
|
-
}, {});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// construct headers objects
|
|
92
|
-
if (request.cookies && request.cookies.length) {
|
|
93
|
-
request.cookiesObj = request.cookies.reduceRight(function (cookies, cookie) {
|
|
94
|
-
// eslint-disable-next-line no-param-reassign
|
|
95
|
-
cookies[cookie.name] = cookie.value;
|
|
96
|
-
return cookies;
|
|
97
|
-
}, {});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// construct Cookie header
|
|
101
|
-
const cookies = request.cookies.map(function (cookie) {
|
|
102
|
-
if (options.harIsAlreadyEncoded) {
|
|
103
|
-
return `${cookie.name}=${cookie.value}`;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return `${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}`;
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
if (cookies.length) {
|
|
110
|
-
request.allHeaders.cookie = cookies.join('; ');
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
switch (request.postData.mimeType) {
|
|
114
|
-
case 'multipart/mixed':
|
|
115
|
-
case 'multipart/related':
|
|
116
|
-
case 'multipart/form-data':
|
|
117
|
-
case 'multipart/alternative':
|
|
118
|
-
// reset values
|
|
119
|
-
request.postData.text = '';
|
|
120
|
-
request.postData.mimeType = 'multipart/form-data';
|
|
121
|
-
|
|
122
|
-
if (request.postData.params) {
|
|
123
|
-
const form = new MultiPartForm();
|
|
124
|
-
|
|
125
|
-
// The `form-data` module returns one of two things: a native FormData object, or its own polyfill. Since the
|
|
126
|
-
// polyfill does not support the full API of the native FormData object, when this library is running in a
|
|
127
|
-
// browser environment it'll fail on two things:
|
|
128
|
-
//
|
|
129
|
-
// - The API for `form.append()` has three arguments and the third should only be present when the second is a
|
|
130
|
-
// Blob or USVString.
|
|
131
|
-
// - `FormData.pipe()` isn't a function.
|
|
132
|
-
//
|
|
133
|
-
// Since the native FormData object is iterable, we easily detect what version of `form-data` we're working
|
|
134
|
-
// with here to allow `multipart/form-data` requests to be compiled under both browser and Node environments.
|
|
135
|
-
//
|
|
136
|
-
// This hack is pretty awful but it's the only way we can use this library in the browser as if we code this
|
|
137
|
-
// against just the native FormData object, we can't polyfill that back into Node because Blob and File objects,
|
|
138
|
-
// which something like `formdata-polyfill` requires, don't exist there.
|
|
139
|
-
const isNativeFormData = typeof form[Symbol.iterator] === 'function';
|
|
140
|
-
|
|
141
|
-
// easter egg
|
|
142
|
-
const boundary = '---011000010111000001101001';
|
|
143
|
-
if (!isNativeFormData) {
|
|
144
|
-
form._boundary = boundary;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
request.postData.params.forEach(function (param) {
|
|
148
|
-
const name = param.name;
|
|
149
|
-
const value = param.value || '';
|
|
150
|
-
const filename = param.fileName || null;
|
|
151
|
-
|
|
152
|
-
if (isNativeFormData) {
|
|
153
|
-
if (isBlob(value)) {
|
|
154
|
-
form.append(name, value, filename);
|
|
155
|
-
} else {
|
|
156
|
-
form.append(name, value);
|
|
157
|
-
}
|
|
158
|
-
} else {
|
|
159
|
-
form.append(name, value, {
|
|
160
|
-
filename: filename,
|
|
161
|
-
contentType: param.contentType || null,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
if (isNativeFormData) {
|
|
167
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
168
|
-
for (const data of formDataIterator(form, boundary)) {
|
|
169
|
-
request.postData.text += data;
|
|
170
|
-
}
|
|
171
|
-
} else {
|
|
172
|
-
form.pipe(
|
|
173
|
-
// eslint-disable-next-line array-callback-return
|
|
174
|
-
es.map(function (data) {
|
|
175
|
-
request.postData.text += data;
|
|
176
|
-
})
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
request.postData.boundary = boundary;
|
|
181
|
-
|
|
182
|
-
// Since headers are case-sensitive we need to see if there's an existing `Content-Type` header that we can
|
|
183
|
-
// override.
|
|
184
|
-
const contentTypeHeader = helpers.hasHeader(request.headersObj, 'content-type')
|
|
185
|
-
? helpers.getHeaderName(request.headersObj, 'content-type')
|
|
186
|
-
: 'content-type';
|
|
187
|
-
|
|
188
|
-
request.headersObj[contentTypeHeader] = `multipart/form-data; boundary=${boundary}`;
|
|
189
|
-
}
|
|
190
|
-
break;
|
|
191
|
-
|
|
192
|
-
case 'application/x-www-form-urlencoded':
|
|
193
|
-
if (!request.postData.params) {
|
|
194
|
-
request.postData.text = '';
|
|
195
|
-
} else {
|
|
196
|
-
request.postData.paramsObj = request.postData.params.reduce(reducer, {});
|
|
197
|
-
|
|
198
|
-
// always overwrite
|
|
199
|
-
request.postData.text = qs.stringify(request.postData.paramsObj);
|
|
200
|
-
}
|
|
201
|
-
break;
|
|
202
|
-
|
|
203
|
-
case 'text/json':
|
|
204
|
-
case 'text/x-json':
|
|
205
|
-
case 'application/json':
|
|
206
|
-
case 'application/x-json':
|
|
207
|
-
request.postData.mimeType = 'application/json';
|
|
208
|
-
|
|
209
|
-
if (request.postData.text) {
|
|
210
|
-
try {
|
|
211
|
-
request.postData.jsonObj = JSON.parse(request.postData.text);
|
|
212
|
-
} catch (e) {
|
|
213
|
-
// force back to text/plain
|
|
214
|
-
// if headers have proper content-type value, then this should also work
|
|
215
|
-
request.postData.mimeType = 'text/plain';
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
break;
|
|
219
|
-
|
|
220
|
-
default:
|
|
221
|
-
// no-op
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
// create allHeaders object
|
|
225
|
-
request.allHeaders = Object.assign(request.allHeaders, request.headersObj);
|
|
226
|
-
|
|
227
|
-
// deconstruct the uri
|
|
228
|
-
// eslint-disable-next-line node/no-deprecated-api
|
|
229
|
-
request.uriObj = url.parse(request.url, true, true);
|
|
230
|
-
|
|
231
|
-
// merge all possible queryString values
|
|
232
|
-
request.queryObj = Object.assign(request.queryObj, request.uriObj.query);
|
|
233
|
-
|
|
234
|
-
// reset uriObj values for a clean url
|
|
235
|
-
request.uriObj.query = null;
|
|
236
|
-
request.uriObj.search = null;
|
|
237
|
-
request.uriObj.path = request.uriObj.pathname;
|
|
238
|
-
|
|
239
|
-
// keep the base url clean of queryString
|
|
240
|
-
request.url = url.format(request.uriObj);
|
|
241
|
-
|
|
242
|
-
// update the uri object
|
|
243
|
-
request.uriObj.query = request.queryObj;
|
|
244
|
-
if (options.harIsAlreadyEncoded) {
|
|
245
|
-
request.uriObj.search = qs.stringify(request.queryObj, {
|
|
246
|
-
encode: false,
|
|
247
|
-
indices: false,
|
|
248
|
-
});
|
|
249
|
-
} else {
|
|
250
|
-
request.uriObj.search = qs.stringify(request.queryObj, {
|
|
251
|
-
indices: false,
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
if (request.uriObj.search) {
|
|
256
|
-
request.uriObj.path = `${request.uriObj.pathname}?${request.uriObj.search}`;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// construct a full url
|
|
260
|
-
request.fullUrl = url.format(request.uriObj);
|
|
261
|
-
|
|
262
|
-
return request;
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
HTTPSnippet.prototype.convert = function (target, client, opts) {
|
|
266
|
-
if (!opts && client) {
|
|
267
|
-
// eslint-disable-next-line no-param-reassign
|
|
268
|
-
opts = client;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
const func = this._matchTarget(target, client);
|
|
272
|
-
if (func) {
|
|
273
|
-
const results = this.requests.map(function (request) {
|
|
274
|
-
return func(request, opts);
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
return results.length === 1 ? results[0] : results;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return false;
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
HTTPSnippet.prototype._matchTarget = function (target, client) {
|
|
284
|
-
// does it exist?
|
|
285
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
286
|
-
if (!targets.hasOwnProperty(target)) {
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
// shorthand
|
|
291
|
-
if (typeof client === 'string' && typeof targets[target][client] === 'function') {
|
|
292
|
-
return targets[target][client];
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// default target
|
|
296
|
-
return targets[target][targets[target].info.default];
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
// exports
|
|
300
|
-
module.exports = HTTPSnippet;
|
|
301
|
-
|
|
302
|
-
module.exports.addTarget = function (target) {
|
|
303
|
-
if (!('info' in target)) {
|
|
304
|
-
throw new Error('The supplied custom target must contain an `info` object.');
|
|
305
|
-
} else if (
|
|
306
|
-
!('key' in target.info) ||
|
|
307
|
-
!('title' in target.info) ||
|
|
308
|
-
!('extname' in target.info) ||
|
|
309
|
-
!('default' in target.info)
|
|
310
|
-
) {
|
|
311
|
-
throw new Error(
|
|
312
|
-
'The supplied custom target must have an `info` object with a `key`, `title`, `extname`, and `default` property.'
|
|
313
|
-
);
|
|
314
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
315
|
-
} else if (targets.hasOwnProperty(target.info.key)) {
|
|
316
|
-
throw new Error('The supplied custom target already exists.');
|
|
317
|
-
} else if (Object.keys(target).length === 1) {
|
|
318
|
-
throw new Error('A custom target must have a client defined on it.');
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
targets[target.info.key] = target;
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
module.exports.addTargetClient = function (target, client) {
|
|
325
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
326
|
-
if (!targets.hasOwnProperty(target)) {
|
|
327
|
-
throw new Error(`Sorry, but no ${target} target exists to add clients to.`);
|
|
328
|
-
} else if (!('info' in client)) {
|
|
329
|
-
throw new Error('The supplied custom target client must contain an `info` object.');
|
|
330
|
-
} else if (!('key' in client.info) || !('title' in client.info)) {
|
|
331
|
-
throw new Error('The supplied custom target client must have an `info` object with a `key` and `title` property.');
|
|
332
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
333
|
-
} else if (targets[target].hasOwnProperty(client.info.key)) {
|
|
334
|
-
throw new Error('The supplied custom target client already exists, please use a different key');
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
targets[target][client.info.key] = client;
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
module.exports.availableTargets = function () {
|
|
341
|
-
return Object.keys(targets).map(function (key) {
|
|
342
|
-
const target = { ...targets[key].info };
|
|
343
|
-
const clients = Object.keys(targets[key])
|
|
344
|
-
.filter(function (prop) {
|
|
345
|
-
return !['info', 'index'].includes(prop);
|
|
346
|
-
})
|
|
347
|
-
.map(function (client) {
|
|
348
|
-
return targets[key][client].info;
|
|
349
|
-
});
|
|
350
|
-
|
|
351
|
-
if (clients.length) {
|
|
352
|
-
target.clients = clients;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
return target;
|
|
356
|
-
});
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
module.exports.extname = function (target) {
|
|
360
|
-
return targets[target] ? targets[target].info.extname : '';
|
|
361
|
-
};
|
package/src/targets/c/index.js
DELETED
package/src/targets/c/libcurl.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const CodeBuilder = require('../../helpers/code-builder');
|
|
2
|
-
|
|
3
|
-
module.exports = function (source) {
|
|
4
|
-
const code = new CodeBuilder();
|
|
5
|
-
|
|
6
|
-
code
|
|
7
|
-
.push('CURL *hnd = curl_easy_init();')
|
|
8
|
-
.blank()
|
|
9
|
-
.push('curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "%s");', source.method.toUpperCase())
|
|
10
|
-
.push('curl_easy_setopt(hnd, CURLOPT_URL, "%s");', source.fullUrl);
|
|
11
|
-
|
|
12
|
-
// Add headers, including the cookies
|
|
13
|
-
const headers = Object.keys(source.headersObj);
|
|
14
|
-
|
|
15
|
-
// construct headers
|
|
16
|
-
if (headers.length) {
|
|
17
|
-
code.blank().push('struct curl_slist *headers = NULL;');
|
|
18
|
-
|
|
19
|
-
headers.forEach(function (key) {
|
|
20
|
-
code.push('headers = curl_slist_append(headers, "%s: %s");', key, source.headersObj[key]);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
code.push('curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);');
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// construct cookies
|
|
27
|
-
if (source.allHeaders.cookie) {
|
|
28
|
-
code.blank().push('curl_easy_setopt(hnd, CURLOPT_COOKIE, "%s");', source.allHeaders.cookie);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (source.postData.text) {
|
|
32
|
-
code.blank().push('curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, %s);', JSON.stringify(source.postData.text));
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
code.blank().push('CURLcode ret = curl_easy_perform(hnd);');
|
|
36
|
-
|
|
37
|
-
return code.join();
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
module.exports.info = {
|
|
41
|
-
key: 'libcurl',
|
|
42
|
-
title: 'Libcurl',
|
|
43
|
-
link: 'http://curl.haxx.se/libcurl/',
|
|
44
|
-
description: 'Simple REST and HTTP API Client for C',
|
|
45
|
-
};
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description
|
|
3
|
-
* HTTP code snippet generator for Clojure using clj-http.
|
|
4
|
-
*
|
|
5
|
-
* @author
|
|
6
|
-
* @tggreene
|
|
7
|
-
*
|
|
8
|
-
* for any questions or issues regarding the generated code snippet, please open an issue mentioning the author.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const CodeBuilder = require('../../helpers/code-builder');
|
|
12
|
-
const helpers = require('../../helpers/headers');
|
|
13
|
-
|
|
14
|
-
const Keyword = function (name) {
|
|
15
|
-
this.name = name;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
Keyword.prototype.toString = function () {
|
|
19
|
-
return `:${this.name}`;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const File = function (path) {
|
|
23
|
-
this.path = path;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
File.prototype.toString = function () {
|
|
27
|
-
return `(clojure.java.io/file "${this.path}")`;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const jsType = function (x) {
|
|
31
|
-
return typeof x !== 'undefined' ? x.constructor.name.toLowerCase() : null;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const objEmpty = function (x) {
|
|
35
|
-
return jsType(x) === 'object' ? Object.keys(x).length === 0 : false;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const filterEmpty = function (m) {
|
|
39
|
-
Object.keys(m)
|
|
40
|
-
.filter(function (x) {
|
|
41
|
-
return objEmpty(m[x]);
|
|
42
|
-
})
|
|
43
|
-
.forEach(function (x) {
|
|
44
|
-
// eslint-disable-next-line no-param-reassign
|
|
45
|
-
delete m[x];
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
return m;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const padBlock = function (x, s) {
|
|
52
|
-
// eslint-disable-next-line prefer-spread
|
|
53
|
-
const padding = Array.apply(null, new Array(x))
|
|
54
|
-
.map(function () {
|
|
55
|
-
return ' ';
|
|
56
|
-
})
|
|
57
|
-
.join('');
|
|
58
|
-
|
|
59
|
-
return s.replace(/\n/g, `\n${padding}`);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const jsToEdn = function (js) {
|
|
63
|
-
switch (jsType(js)) {
|
|
64
|
-
case 'string':
|
|
65
|
-
return `"${js.replace(/"/g, '\\"')}"`;
|
|
66
|
-
case 'file':
|
|
67
|
-
return js.toString();
|
|
68
|
-
case 'keyword':
|
|
69
|
-
return js.toString();
|
|
70
|
-
case 'null':
|
|
71
|
-
return 'nil';
|
|
72
|
-
case 'regexp':
|
|
73
|
-
return `#"${js.source}"`;
|
|
74
|
-
|
|
75
|
-
// simple vertical format
|
|
76
|
-
case 'object': {
|
|
77
|
-
const obj = Object.keys(js)
|
|
78
|
-
.reduce(function (acc, key) {
|
|
79
|
-
const val = padBlock(key.length + 2, jsToEdn(js[key]));
|
|
80
|
-
return `${acc}:${key} ${val}\n `;
|
|
81
|
-
}, '')
|
|
82
|
-
.trim();
|
|
83
|
-
return `{${padBlock(1, obj)}}`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// simple horizontal format
|
|
87
|
-
case 'array': {
|
|
88
|
-
const arr = js
|
|
89
|
-
.reduce(function (acc, val) {
|
|
90
|
-
return `${acc} ${jsToEdn(val)}`;
|
|
91
|
-
}, '')
|
|
92
|
-
.trim();
|
|
93
|
-
return `[${padBlock(1, arr)}]`;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// 'number' 'boolean'
|
|
97
|
-
default:
|
|
98
|
-
return js.toString();
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
module.exports = function (source, options) {
|
|
103
|
-
const code = new CodeBuilder(options);
|
|
104
|
-
const methods = ['get', 'post', 'put', 'delete', 'patch', 'head', 'options'];
|
|
105
|
-
|
|
106
|
-
if (methods.indexOf(source.method.toLowerCase()) === -1) {
|
|
107
|
-
return code.push('Method not supported').join();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const params = {
|
|
111
|
-
headers: source.allHeaders,
|
|
112
|
-
'query-params': source.queryObj,
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
// eslint-disable-next-line default-case
|
|
116
|
-
switch (source.postData.mimeType) {
|
|
117
|
-
case 'application/json':
|
|
118
|
-
params['content-type'] = new Keyword('json');
|
|
119
|
-
params['form-params'] = source.postData.jsonObj;
|
|
120
|
-
delete params.headers[helpers.getHeaderName(params.headers, 'content-type')];
|
|
121
|
-
break;
|
|
122
|
-
case 'application/x-www-form-urlencoded':
|
|
123
|
-
params['form-params'] = source.postData.paramsObj;
|
|
124
|
-
delete params.headers[helpers.getHeaderName(params.headers, 'content-type')];
|
|
125
|
-
break;
|
|
126
|
-
case 'text/plain':
|
|
127
|
-
params.body = source.postData.text;
|
|
128
|
-
delete params.headers[helpers.getHeaderName(params.headers, 'content-type')];
|
|
129
|
-
break;
|
|
130
|
-
case 'multipart/form-data':
|
|
131
|
-
if (source.postData.params) {
|
|
132
|
-
params.multipart = source.postData.params.map(function (x) {
|
|
133
|
-
if (x.fileName && !x.value) {
|
|
134
|
-
return {
|
|
135
|
-
name: x.name,
|
|
136
|
-
content: new File(x.fileName),
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return {
|
|
141
|
-
name: x.name,
|
|
142
|
-
content: x.value,
|
|
143
|
-
};
|
|
144
|
-
});
|
|
145
|
-
delete params.headers[helpers.getHeaderName(params.headers, 'content-type')];
|
|
146
|
-
}
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (helpers.getHeader(params.headers, 'accept') === 'application/json') {
|
|
151
|
-
params.accept = new Keyword('json');
|
|
152
|
-
delete params.headers[helpers.getHeaderName(params.headers, 'accept')];
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
code.push("(require '[clj-http.client :as client])\n");
|
|
156
|
-
|
|
157
|
-
if (objEmpty(filterEmpty(params))) {
|
|
158
|
-
code.push('(client/%s "%s")', source.method.toLowerCase(), source.url);
|
|
159
|
-
} else {
|
|
160
|
-
code.push(
|
|
161
|
-
'(client/%s "%s" %s)',
|
|
162
|
-
source.method.toLowerCase(),
|
|
163
|
-
source.url,
|
|
164
|
-
padBlock(11 + source.method.length + source.url.length, jsToEdn(filterEmpty(params)))
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return code.join();
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
module.exports.info = {
|
|
172
|
-
key: 'clj_http',
|
|
173
|
-
title: 'clj-http',
|
|
174
|
-
link: 'https://github.com/dakrone/clj-http',
|
|
175
|
-
description: 'An idiomatic clojure http client wrapping the apache client.',
|
|
176
|
-
};
|