@scalar/snippetz 0.3.0 → 0.3.1

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 (70) hide show
  1. package/dist/clients.d.ts.map +1 -1
  2. package/dist/clients.js +2 -1
  3. package/dist/clients.js.map +2 -2
  4. package/dist/plugins/python/httpx/async.d.ts +6 -0
  5. package/dist/plugins/python/httpx/async.d.ts.map +1 -0
  6. package/dist/plugins/python/httpx/async.js +16 -0
  7. package/dist/plugins/python/httpx/async.js.map +7 -0
  8. package/dist/plugins/python/httpx/index.d.ts +3 -0
  9. package/dist/plugins/python/httpx/index.d.ts.map +1 -0
  10. package/dist/plugins/python/httpx/index.js +3 -0
  11. package/dist/plugins/python/httpx/index.js.map +7 -0
  12. package/dist/plugins/python/httpx/sync.d.ts +6 -0
  13. package/dist/plugins/python/httpx/sync.d.ts.map +1 -0
  14. package/dist/plugins/python/httpx/sync.js +13 -0
  15. package/dist/plugins/python/httpx/sync.js.map +7 -0
  16. package/dist/plugins/python/requests/requests.d.ts.map +1 -1
  17. package/dist/plugins/python/requests/requests.js +2 -93
  18. package/dist/plugins/python/requests/requests.js.map +3 -3
  19. package/dist/plugins/python/requestsLike.d.ts +3 -0
  20. package/dist/plugins/python/requestsLike.d.ts.map +1 -0
  21. package/dist/plugins/python/requestsLike.js +120 -0
  22. package/dist/plugins/python/requestsLike.js.map +7 -0
  23. package/dist/snippetz.d.ts +1 -1
  24. package/package.json +8 -3
  25. package/dist/plugins/c/libcurl/libcurl.test.js +0 -208
  26. package/dist/plugins/c/libcurl/libcurl.test.js.map +0 -7
  27. package/dist/plugins/clojure/clj_http/clj_http.test.js +0 -151
  28. package/dist/plugins/clojure/clj_http/clj_http.test.js.map +0 -7
  29. package/dist/plugins/dart/http/http.test.js +0 -550
  30. package/dist/plugins/dart/http/http.test.js.map +0 -7
  31. package/dist/plugins/go/native/native.test.js +0 -366
  32. package/dist/plugins/go/native/native.test.js.map +0 -7
  33. package/dist/plugins/http/http11/http11.test.js +0 -175
  34. package/dist/plugins/http/http11/http11.test.js.map +0 -7
  35. package/dist/plugins/java/okhttp/okhttp.test.js +0 -164
  36. package/dist/plugins/java/okhttp/okhttp.test.js.map +0 -7
  37. package/dist/plugins/js/fetch/fetch.test.js +0 -214
  38. package/dist/plugins/js/fetch/fetch.test.js.map +0 -7
  39. package/dist/plugins/js/ofetch/ofetch.test.js +0 -126
  40. package/dist/plugins/js/ofetch/ofetch.test.js.map +0 -7
  41. package/dist/plugins/kotlin/okhttp/okhttp.test.js +0 -164
  42. package/dist/plugins/kotlin/okhttp/okhttp.test.js.map +0 -7
  43. package/dist/plugins/node/fetch/fetch.test.js +0 -200
  44. package/dist/plugins/node/fetch/fetch.test.js.map +0 -7
  45. package/dist/plugins/node/ofetch/ofetch.test.js +0 -126
  46. package/dist/plugins/node/ofetch/ofetch.test.js.map +0 -7
  47. package/dist/plugins/node/undici/undici.test.js +0 -133
  48. package/dist/plugins/node/undici/undici.test.js.map +0 -7
  49. package/dist/plugins/php/curl/curl.test.js +0 -564
  50. package/dist/plugins/php/curl/curl.test.js.map +0 -7
  51. package/dist/plugins/php/guzzle/guzzle.test.js +0 -546
  52. package/dist/plugins/php/guzzle/guzzle.test.js.map +0 -7
  53. package/dist/plugins/python/requests/requests.test.js +0 -419
  54. package/dist/plugins/python/requests/requests.test.js.map +0 -7
  55. package/dist/plugins/ruby/native/native.test.js +0 -240
  56. package/dist/plugins/ruby/native/native.test.js.map +0 -7
  57. package/dist/plugins/shell/curl/curl.test.js +0 -427
  58. package/dist/plugins/shell/curl/curl.test.js.map +0 -7
  59. package/dist/plugins/shell/httpie/httpie.test.js +0 -113
  60. package/dist/plugins/shell/httpie/httpie.test.js.map +0 -7
  61. package/dist/plugins/shell/wget/wget.test.js +0 -143
  62. package/dist/plugins/shell/wget/wget.test.js.map +0 -7
  63. package/dist/plugins/swift/nsurlsession/nsurlsession.test.js +0 -344
  64. package/dist/plugins/swift/nsurlsession/nsurlsession.test.js.map +0 -7
  65. package/dist/snippetz.test.js +0 -79
  66. package/dist/snippetz.test.js.map +0 -7
  67. package/dist/utils/convertWithHttpSnippetLite.test.js +0 -106
  68. package/dist/utils/convertWithHttpSnippetLite.test.js.map +0 -7
  69. package/dist/utils/create-search-params.test.js +0 -49
  70. package/dist/utils/create-search-params.test.js.map +0 -7
@@ -1,366 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { goNative } from "./native.js";
3
- describe("goNative", () => {
4
- it("returns a basic request", () => {
5
- const result = goNative.generate({
6
- url: "https://example.com"
7
- });
8
- expect(result).toBe(
9
- `package main
10
-
11
- import (
12
- "fmt"
13
- "io"
14
- "net/http"
15
- )
16
-
17
- func main() {
18
- url := "https://example.com"
19
-
20
- req, _ := http.NewRequest("GET", url, nil)
21
-
22
- res, _ := http.DefaultClient.Do(req)
23
-
24
- defer res.Body.Close()
25
- body, _ := io.ReadAll(res.Body)
26
-
27
- fmt.Println(res)
28
- fmt.Println(string(body))
29
-
30
- }`
31
- );
32
- });
33
- it("returns a POST request", () => {
34
- const result = goNative.generate({
35
- url: "https://example.com",
36
- method: "post"
37
- });
38
- expect(result).toBe(
39
- `package main
40
-
41
- import (
42
- "fmt"
43
- "io"
44
- "net/http"
45
- )
46
-
47
- func main() {
48
- url := "https://example.com"
49
-
50
- req, _ := http.NewRequest("POST", url, nil)
51
-
52
- res, _ := http.DefaultClient.Do(req)
53
-
54
- defer res.Body.Close()
55
- body, _ := io.ReadAll(res.Body)
56
-
57
- fmt.Println(res)
58
- fmt.Println(string(body))
59
-
60
- }`
61
- );
62
- });
63
- it("has headers", () => {
64
- const result = goNative.generate({
65
- url: "https://example.com",
66
- headers: [
67
- {
68
- name: "Content-Type",
69
- value: "application/json"
70
- }
71
- ]
72
- });
73
- expect(result).toBe(
74
- `package main
75
-
76
- import (
77
- "fmt"
78
- "io"
79
- "net/http"
80
- )
81
-
82
- func main() {
83
- url := "https://example.com"
84
-
85
- req, _ := http.NewRequest("GET", url, nil)
86
-
87
- req.Header.Add("Content-Type", "application/json")
88
-
89
- res, _ := http.DefaultClient.Do(req)
90
-
91
- defer res.Body.Close()
92
- body, _ := io.ReadAll(res.Body)
93
-
94
- fmt.Println(res)
95
- fmt.Println(string(body))
96
-
97
- }`
98
- );
99
- });
100
- it("handles multipart form data with files", () => {
101
- const result = goNative.generate({
102
- url: "https://example.com",
103
- method: "POST",
104
- postData: {
105
- mimeType: "multipart/form-data",
106
- params: [
107
- {
108
- name: "file",
109
- fileName: "test.txt"
110
- },
111
- {
112
- name: "field",
113
- value: "value"
114
- }
115
- ]
116
- }
117
- });
118
- expect(result).toBe(
119
- `package main
120
-
121
- import (
122
- "bytes"
123
- "fmt"
124
- "io"
125
- "mime/multipart"
126
- "net/http"
127
- )
128
-
129
- func main() {
130
- url := "https://example.com"
131
-
132
- payload := &bytes.Buffer{}
133
- writer := multipart.NewWriter(payload)
134
-
135
- part, _ := writer.CreateFormFile("file", "test.txt")
136
-
137
- f, _ := os.Open("test.txt")
138
- defer f.Close()
139
-
140
- _, _ = io.Copy(part, f)
141
-
142
- _ = writer.WriteField("field", "value")
143
- writer.Close()
144
-
145
- req, _ := http.NewRequest("POST", url, payload)
146
-
147
- req.Header.Set("Content-Type", writer.FormDataContentType())
148
- res, _ := http.DefaultClient.Do(req)
149
-
150
- defer res.Body.Close()
151
- body, _ := io.ReadAll(res.Body)
152
-
153
- fmt.Println(res)
154
- fmt.Println(string(body))
155
-
156
- }`
157
- );
158
- });
159
- it("handles url-encoded form data with special characters", () => {
160
- const result = goNative.generate({
161
- url: "https://example.com",
162
- method: "POST",
163
- postData: {
164
- mimeType: "application/x-www-form-urlencoded",
165
- params: [
166
- {
167
- name: "special chars!@#",
168
- value: "value"
169
- }
170
- ]
171
- }
172
- });
173
- expect(result).toBe(
174
- `package main
175
-
176
- import (
177
- "fmt"
178
- "io"
179
- "net/http"
180
- "net/url"
181
- "strings"
182
- )
183
-
184
- func main() {
185
- url := "https://example.com"
186
-
187
- postData := url.Values{}
188
- postData.Set("special chars!@#", "value")
189
-
190
- req, _ := http.NewRequest("POST", url, strings.NewReader(postData.Encode()))
191
-
192
- res, _ := http.DefaultClient.Do(req)
193
-
194
- defer res.Body.Close()
195
- body, _ := io.ReadAll(res.Body)
196
-
197
- fmt.Println(res)
198
- fmt.Println(string(body))
199
-
200
- }`
201
- );
202
- });
203
- it("handles binary data", () => {
204
- const result = goNative.generate({
205
- url: "https://example.com",
206
- method: "POST",
207
- postData: {
208
- mimeType: "application/octet-stream",
209
- text: "binary content"
210
- }
211
- });
212
- expect(result).toBe(
213
- `package main
214
-
215
- import (
216
- "fmt"
217
- "io"
218
- "net/http"
219
- "strings"
220
- )
221
-
222
- func main() {
223
- url := "https://example.com"
224
-
225
- payload := strings.NewReader("binary content")
226
-
227
- req, _ := http.NewRequest("POST", url, payload)
228
-
229
- res, _ := http.DefaultClient.Do(req)
230
-
231
- defer res.Body.Close()
232
- body, _ := io.ReadAll(res.Body)
233
-
234
- fmt.Println(res)
235
- fmt.Println(string(body))
236
-
237
- }`
238
- );
239
- });
240
- it("handles special characters in URL", () => {
241
- const result = goNative.generate({
242
- url: "https://example.com/path with spaces/[brackets]"
243
- });
244
- expect(result).toBe(
245
- `package main
246
-
247
- import (
248
- "fmt"
249
- "io"
250
- "net/http"
251
- )
252
-
253
- func main() {
254
- url := "https://example.com/path%20with%20spaces/[brackets]"
255
-
256
- req, _ := http.NewRequest("GET", url, nil)
257
-
258
- res, _ := http.DefaultClient.Do(req)
259
-
260
- defer res.Body.Close()
261
- body, _ := io.ReadAll(res.Body)
262
-
263
- fmt.Println(res)
264
- fmt.Println(string(body))
265
-
266
- }`
267
- );
268
- });
269
- it("handles multiple headers with same name", () => {
270
- const result = goNative.generate({
271
- url: "https://example.com",
272
- headers: [
273
- { name: "X-Custom", value: "value1" },
274
- { name: "X-Custom", value: "value2" }
275
- ]
276
- });
277
- expect(result).toBe(
278
- `package main
279
-
280
- import (
281
- "fmt"
282
- "io"
283
- "net/http"
284
- )
285
-
286
- func main() {
287
- url := "https://example.com"
288
-
289
- req, _ := http.NewRequest("GET", url, nil)
290
-
291
- req.Header.Add("X-Custom", "value2")
292
-
293
- res, _ := http.DefaultClient.Do(req)
294
-
295
- defer res.Body.Close()
296
- body, _ := io.ReadAll(res.Body)
297
-
298
- fmt.Println(res)
299
- fmt.Println(string(body))
300
-
301
- }`
302
- );
303
- });
304
- it("handles headers with empty values", () => {
305
- const result = goNative.generate({
306
- url: "https://example.com",
307
- headers: [{ name: "X-Empty", value: "" }]
308
- });
309
- expect(result).toBe(
310
- `package main
311
-
312
- import (
313
- "fmt"
314
- "io"
315
- "net/http"
316
- )
317
-
318
- func main() {
319
- url := "https://example.com"
320
-
321
- req, _ := http.NewRequest("GET", url, nil)
322
-
323
- req.Header.Add("X-Empty", "")
324
-
325
- res, _ := http.DefaultClient.Do(req)
326
-
327
- defer res.Body.Close()
328
- body, _ := io.ReadAll(res.Body)
329
-
330
- fmt.Println(res)
331
- fmt.Println(string(body))
332
-
333
- }`
334
- );
335
- });
336
- it("handles query string parameters", () => {
337
- const result = goNative.generate({
338
- url: "https://example.com/api?param1=value1&param2=special value&param3=123"
339
- });
340
- expect(result).toBe(
341
- `package main
342
-
343
- import (
344
- "fmt"
345
- "io"
346
- "net/http"
347
- )
348
-
349
- func main() {
350
- url := "https://example.com/api?param1=value1&param2=special%20value&param3=123"
351
-
352
- req, _ := http.NewRequest("GET", url, nil)
353
-
354
- res, _ := http.DefaultClient.Do(req)
355
-
356
- defer res.Body.Close()
357
- body, _ := io.ReadAll(res.Body)
358
-
359
- fmt.Println(res)
360
- fmt.Println(string(body))
361
-
362
- }`
363
- );
364
- });
365
- });
366
- //# sourceMappingURL=native.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/plugins/go/native/native.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { goNative } from './native'\n\ndescribe('goNative', () => {\n it('returns a basic request', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('returns a POST request', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n method: 'post',\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\treq, _ := http.NewRequest(\"POST\", url, nil)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('has headers', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n })\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"Content-Type\", \"application/json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles multipart form data with files', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: 'test.txt',\n },\n {\n name: 'field',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime/multipart\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\tpayload := &bytes.Buffer{}\n\twriter := multipart.NewWriter(payload)\n\n\tpart, _ := writer.CreateFormFile(\"file\", \"test.txt\")\n\n\tf, _ := os.Open(\"test.txt\")\n\tdefer f.Close()\n\n\t_, _ = io.Copy(part, f)\n\n\t_ = writer.WriteField(\"field\", \"value\")\n\twriter.Close()\n\n\treq, _ := http.NewRequest(\"POST\", url, payload)\n\n\treq.Header.Set(\"Content-Type\", writer.FormDataContentType())\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles url-encoded form data with special characters', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'special chars!@#',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\tpostData := url.Values{}\n\tpostData.Set(\"special chars!@#\", \"value\")\n\n\treq, _ := http.NewRequest(\"POST\", url, strings.NewReader(postData.Encode()))\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles binary data', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/octet-stream',\n text: 'binary content',\n },\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\tpayload := strings.NewReader(\"binary content\")\n\n\treq, _ := http.NewRequest(\"POST\", url, payload)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles special characters in URL', () => {\n const result = goNative.generate({\n url: 'https://example.com/path with spaces/[brackets]',\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com/path%20with%20spaces/[brackets]\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles multiple headers with same name', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n headers: [\n { name: 'X-Custom', value: 'value1' },\n { name: 'X-Custom', value: 'value2' },\n ],\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"X-Custom\", \"value2\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles headers with empty values', () => {\n const result = goNative.generate({\n url: 'https://example.com',\n headers: [{ name: 'X-Empty', value: '' }],\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"X-Empty\", \"\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n\n it('handles query string parameters', () => {\n const result = goNative.generate({\n url: 'https://example.com/api?param1=value1&param2=special value&param3=123',\n })\n\n expect(result).toBe(\n `package main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n)\n\nfunc main() {\n\turl := \"https://example.com/api?param1=value1&param2=special%20value&param3=123\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}`,\n )\n })\n})\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,175 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { httpHttp11 } from "./http11.js";
3
- describe("httpHttp11", () => {
4
- it("returns a basic request", () => {
5
- const result = httpHttp11.generate({
6
- url: "https://example.com"
7
- });
8
- expect(result).toBe("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n");
9
- });
10
- it("returns a POST request", () => {
11
- const result = httpHttp11.generate({
12
- url: "https://example.com",
13
- method: "post"
14
- });
15
- expect(result).toBe("POST / HTTP/1.1\r\nHost: example.com\r\n\r\n");
16
- });
17
- it("has headers", () => {
18
- const result = httpHttp11.generate({
19
- url: "https://example.com",
20
- headers: [
21
- {
22
- name: "Content-Type",
23
- value: "application/json"
24
- }
25
- ]
26
- });
27
- expect(result).toBe("GET / HTTP/1.1\r\nHost: example.com\r\nContent-Type: application/json\r\n\r\n");
28
- });
29
- it("it doesn\u2019t add the JSON header twice", () => {
30
- const result = httpHttp11.generate({
31
- url: "https://example.com",
32
- method: "post",
33
- headers: [
34
- {
35
- name: "Content-Type",
36
- value: "application/json"
37
- }
38
- ],
39
- postData: {
40
- mimeType: "application/json",
41
- text: '{"foo": "bar"}'
42
- }
43
- });
44
- expect(result).toBe(
45
- 'POST / HTTP/1.1\r\nHost: example.com\r\nContent-Type: application/json\r\n\r\n{"foo": "bar"}'
46
- );
47
- });
48
- it("handles multipart form data with files", () => {
49
- const result = httpHttp11.generate({
50
- url: "https://example.com",
51
- method: "POST",
52
- postData: {
53
- mimeType: "multipart/form-data",
54
- params: [
55
- {
56
- name: "file",
57
- fileName: "test.txt"
58
- },
59
- {
60
- name: "field",
61
- value: "value"
62
- }
63
- ]
64
- }
65
- });
66
- expect(result).toMatch(
67
- 'POST / HTTP/1.1\r\nHost: example.com\r\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="file"; filename="test.txt"\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="field"\r\n\r\nvalue\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--\r\n'
68
- );
69
- });
70
- it("handles url-encoded form data with special characters", () => {
71
- const result = httpHttp11.generate({
72
- url: "https://example.com",
73
- method: "POST",
74
- postData: {
75
- mimeType: "application/x-www-form-urlencoded",
76
- params: [
77
- {
78
- name: "special chars!@#",
79
- value: "value"
80
- }
81
- ]
82
- }
83
- });
84
- expect(result).toBe(
85
- "POST / HTTP/1.1\r\nHost: example.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nspecial%20chars!%40%23=value"
86
- );
87
- });
88
- it("handles binary data", () => {
89
- const result = httpHttp11.generate({
90
- url: "https://example.com",
91
- method: "POST",
92
- postData: {
93
- mimeType: "application/octet-stream",
94
- text: "binary content"
95
- }
96
- });
97
- expect(result).toBe(
98
- "POST / HTTP/1.1\r\nHost: example.com\r\nContent-Type: application/octet-stream\r\n\r\nbinary content"
99
- );
100
- });
101
- it("handles special characters in URL", () => {
102
- const result = httpHttp11.generate({
103
- url: "https://example.com/path with spaces/[brackets]"
104
- });
105
- expect(result).toBe("GET /path%20with%20spaces/[brackets] HTTP/1.1\r\nHost: example.com\r\n\r\n");
106
- });
107
- it("handles multiple headers with same name", () => {
108
- const result = httpHttp11.generate({
109
- url: "https://example.com",
110
- headers: [
111
- { name: "X-Custom", value: "value1" },
112
- { name: "X-Custom", value: "value2" }
113
- ]
114
- });
115
- expect(result).toBe(
116
- "GET / HTTP/1.1\r\nHost: example.com\r\nX-Custom: value1, value2\r\n\r\n"
117
- );
118
- });
119
- it("handles headers with empty values", () => {
120
- const result = httpHttp11.generate({
121
- url: "https://example.com",
122
- headers: [{ name: "X-Empty", value: "" }]
123
- });
124
- expect(result).toBe("GET / HTTP/1.1\r\nHost: example.com\r\nX-Empty: \r\n\r\n");
125
- });
126
- it("handles query string parameters", () => {
127
- const result = httpHttp11.generate({
128
- url: "https://example.com/api?param1=value1&param2=special value&param3=123"
129
- });
130
- expect(result).toBe(
131
- "GET /api?param1=value1&param2=special%20value&param3=123 HTTP/1.1\r\nHost: example.com\r\n\r\n"
132
- );
133
- });
134
- it("handles invalid URL", () => {
135
- const result = httpHttp11.generate({
136
- url: "/foo"
137
- });
138
- expect(result).toBe("GET /foo HTTP/1.1\r\nHost: UNKNOWN_HOSTNAME\r\n\r\n");
139
- });
140
- it("handles empty URL", () => {
141
- const result = httpHttp11.generate({
142
- url: ""
143
- });
144
- expect(result).toBe("GET / HTTP/1.1\r\nHost: UNKNOWN_HOSTNAME\r\n\r\n");
145
- });
146
- it("handles extremely long URLs", () => {
147
- const longUrl = "https://example.com/" + "a".repeat(2e3);
148
- const result = httpHttp11.generate({
149
- url: longUrl
150
- });
151
- expect(result).toBe(`GET /${"a".repeat(2e3)} HTTP/1.1\r
152
- Host: example.com\r
153
- \r
154
- `);
155
- });
156
- it("handles special characters in query parameters", () => {
157
- const result = httpHttp11.generate({
158
- url: "https://example.com",
159
- queryString: [
160
- {
161
- name: "q",
162
- value: "hello world & more"
163
- },
164
- {
165
- name: "special",
166
- value: "!@#$%^&*()"
167
- }
168
- ]
169
- });
170
- expect(result).toBe(
171
- "GET /?q=hello%20world%20%26%20more&special=!%40%23%24%25%5E%26*() HTTP/1.1\r\nHost: example.com\r\n\r\n"
172
- );
173
- });
174
- });
175
- //# sourceMappingURL=http11.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/plugins/http/http11/http11.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { httpHttp11 } from './http11'\n\ndescribe('httpHttp11', () => {\n it('returns a basic request', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n })\n\n expect(result).toBe('GET / HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + '\\r\\n')\n })\n\n it('returns a POST request', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n method: 'post',\n })\n\n expect(result).toBe('POST / HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + '\\r\\n')\n })\n\n it('has headers', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n })\n expect(result).toBe('GET / HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + 'Content-Type: application/json\\r\\n' + '\\r\\n')\n })\n\n it('it doesn\u2019t add the JSON header twice', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n method: 'post',\n headers: [\n {\n name: 'Content-Type',\n value: 'application/json',\n },\n ],\n postData: {\n mimeType: 'application/json',\n text: '{\"foo\": \"bar\"}',\n },\n })\n\n expect(result).toBe(\n 'POST / HTTP/1.1\\r\\n' +\n 'Host: example.com\\r\\n' +\n 'Content-Type: application/json\\r\\n' +\n '\\r\\n' +\n '{\"foo\": \"bar\"}',\n )\n })\n\n it('handles multipart form data with files', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'multipart/form-data',\n params: [\n {\n name: 'file',\n fileName: 'test.txt',\n },\n {\n name: 'field',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toMatch(\n 'POST / HTTP/1.1\\r\\n' +\n 'Host: example.com\\r\\n' +\n 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\\r\\n' +\n '\\r\\n' +\n '------WebKitFormBoundary7MA4YWxkTrZu0gW\\r\\n' +\n 'Content-Disposition: form-data; name=\"file\"; filename=\"test.txt\"\\r\\n' +\n '\\r\\n' +\n '------WebKitFormBoundary7MA4YWxkTrZu0gW\\r\\n' +\n 'Content-Disposition: form-data; name=\"field\"\\r\\n' +\n '\\r\\n' +\n 'value\\r\\n' +\n '------WebKitFormBoundary7MA4YWxkTrZu0gW--\\r\\n',\n )\n })\n\n it('handles url-encoded form data with special characters', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/x-www-form-urlencoded',\n params: [\n {\n name: 'special chars!@#',\n value: 'value',\n },\n ],\n },\n })\n\n expect(result).toBe(\n 'POST / HTTP/1.1\\r\\n' +\n 'Host: example.com\\r\\n' +\n 'Content-Type: application/x-www-form-urlencoded\\r\\n' +\n '\\r\\n' +\n 'special%20chars!%40%23=value',\n )\n })\n\n it('handles binary data', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n method: 'POST',\n postData: {\n mimeType: 'application/octet-stream',\n text: 'binary content',\n },\n })\n\n expect(result).toBe(\n 'POST / HTTP/1.1\\r\\n' +\n 'Host: example.com\\r\\n' +\n 'Content-Type: application/octet-stream\\r\\n' +\n '\\r\\n' +\n 'binary content',\n )\n })\n\n it('handles special characters in URL', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com/path with spaces/[brackets]',\n })\n\n expect(result).toBe('GET /path%20with%20spaces/[brackets] HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + '\\r\\n')\n })\n\n it('handles multiple headers with same name', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n headers: [\n { name: 'X-Custom', value: 'value1' },\n { name: 'X-Custom', value: 'value2' },\n ],\n })\n\n expect(result).toBe(\n 'GET / HTTP/1.1\\r\\n' +\n 'Host: example.com\\r\\n' +\n // RFC 7230 states a server must not generate multiple header fields with the same field name unless either the entire field value for that header field is defined as a comma-separated list, or the header field is a well-known exception.\n 'X-Custom: value1, value2\\r\\n' +\n '\\r\\n',\n )\n })\n\n it('handles headers with empty values', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n headers: [{ name: 'X-Empty', value: '' }],\n })\n\n expect(result).toBe('GET / HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + 'X-Empty: \\r\\n' + '\\r\\n')\n })\n\n it('handles query string parameters', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com/api?param1=value1&param2=special value&param3=123',\n })\n\n expect(result).toBe(\n 'GET /api?param1=value1&param2=special%20value&param3=123 HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n' + '\\r\\n',\n )\n })\n\n it('handles invalid URL', () => {\n const result = httpHttp11.generate({\n url: '/foo',\n })\n\n expect(result).toBe('GET /foo HTTP/1.1\\r\\n' + 'Host: UNKNOWN_HOSTNAME\\r\\n' + '\\r\\n')\n })\n\n it('handles empty URL', () => {\n const result = httpHttp11.generate({\n url: '',\n })\n\n expect(result).toBe('GET / HTTP/1.1\\r\\n' + 'Host: UNKNOWN_HOSTNAME\\r\\n' + '\\r\\n')\n })\n\n it('handles extremely long URLs', () => {\n const longUrl = 'https://example.com/' + 'a'.repeat(2000)\n const result = httpHttp11.generate({\n url: longUrl,\n })\n\n expect(result).toBe(`GET /${'a'.repeat(2000)} HTTP/1.1\\r\\n` + 'Host: example.com\\r\\n' + '\\r\\n')\n })\n\n it('handles special characters in query parameters', () => {\n const result = httpHttp11.generate({\n url: 'https://example.com',\n queryString: [\n {\n name: 'q',\n value: 'hello world & more',\n },\n {\n name: 'special',\n value: '!@#$%^&*()',\n },\n ],\n })\n\n expect(result).toBe(\n 'GET /?q=hello%20world%20%26%20more&special=!%40%23%24%25%5E%26*() HTTP/1.1\\r\\n' + 'Host: example.com\\r\\n\\r\\n',\n )\n })\n})\n"],
5
- "mappings": "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",
6
- "names": []
7
- }