@effect/platform 0.48.15 → 0.48.17

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 (134) hide show
  1. package/Http/Cookies/package.json +6 -0
  2. package/README.md +235 -46
  3. package/dist/cjs/Http/Client.js +6 -1
  4. package/dist/cjs/Http/Client.js.map +1 -1
  5. package/dist/cjs/Http/ClientRequest.js.map +1 -1
  6. package/dist/cjs/Http/ClientResponse.js.map +1 -1
  7. package/dist/cjs/Http/Cookies.js +566 -0
  8. package/dist/cjs/Http/Cookies.js.map +1 -0
  9. package/dist/cjs/Http/Headers.js +2 -2
  10. package/dist/cjs/Http/Headers.js.map +1 -1
  11. package/dist/cjs/Http/IncomingMessage.js +12 -16
  12. package/dist/cjs/Http/IncomingMessage.js.map +1 -1
  13. package/dist/cjs/Http/Multipart.js.map +1 -1
  14. package/dist/cjs/Http/Router.js +11 -1
  15. package/dist/cjs/Http/Router.js.map +1 -1
  16. package/dist/cjs/Http/ServerRequest.js +6 -1
  17. package/dist/cjs/Http/ServerRequest.js.map +1 -1
  18. package/dist/cjs/Http/ServerResponse.js +36 -1
  19. package/dist/cjs/Http/ServerResponse.js.map +1 -1
  20. package/dist/cjs/Http/UrlParams.js +2 -2
  21. package/dist/cjs/Http/UrlParams.js.map +1 -1
  22. package/dist/cjs/HttpClient.js +3 -1
  23. package/dist/cjs/HttpClient.js.map +1 -1
  24. package/dist/cjs/HttpServer.js +3 -1
  25. package/dist/cjs/HttpServer.js.map +1 -1
  26. package/dist/cjs/internal/http/body.js +2 -2
  27. package/dist/cjs/internal/http/body.js.map +1 -1
  28. package/dist/cjs/internal/http/client.js +9 -3
  29. package/dist/cjs/internal/http/client.js.map +1 -1
  30. package/dist/cjs/internal/http/clientRequest.js +2 -2
  31. package/dist/cjs/internal/http/clientRequest.js.map +1 -1
  32. package/dist/cjs/internal/http/clientResponse.js +16 -8
  33. package/dist/cjs/internal/http/clientResponse.js.map +1 -1
  34. package/dist/cjs/internal/http/multipart.js +4 -4
  35. package/dist/cjs/internal/http/multipart.js.map +1 -1
  36. package/dist/cjs/internal/http/router.js +34 -7
  37. package/dist/cjs/internal/http/router.js.map +1 -1
  38. package/dist/cjs/internal/http/serverRequest.js +30 -15
  39. package/dist/cjs/internal/http/serverRequest.js.map +1 -1
  40. package/dist/cjs/internal/http/serverResponse.js +48 -23
  41. package/dist/cjs/internal/http/serverResponse.js.map +1 -1
  42. package/dist/dts/Error.d.ts.map +1 -1
  43. package/dist/dts/Http/App.d.ts +1 -1
  44. package/dist/dts/Http/App.d.ts.map +1 -1
  45. package/dist/dts/Http/Client.d.ts +13 -2
  46. package/dist/dts/Http/Client.d.ts.map +1 -1
  47. package/dist/dts/Http/ClientRequest.d.ts +2 -1
  48. package/dist/dts/Http/ClientRequest.d.ts.map +1 -1
  49. package/dist/dts/Http/ClientResponse.d.ts +7 -4
  50. package/dist/dts/Http/ClientResponse.d.ts.map +1 -1
  51. package/dist/dts/Http/Cookies.d.ts +253 -0
  52. package/dist/dts/Http/Cookies.d.ts.map +1 -0
  53. package/dist/dts/Http/Headers.d.ts +2 -2
  54. package/dist/dts/Http/Headers.d.ts.map +1 -1
  55. package/dist/dts/Http/IncomingMessage.d.ts +7 -6
  56. package/dist/dts/Http/IncomingMessage.d.ts.map +1 -1
  57. package/dist/dts/Http/Multipart.d.ts +3 -2
  58. package/dist/dts/Http/Multipart.d.ts.map +1 -1
  59. package/dist/dts/Http/Router.d.ts +29 -3
  60. package/dist/dts/Http/Router.d.ts.map +1 -1
  61. package/dist/dts/Http/ServerRequest.d.ts +14 -6
  62. package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
  63. package/dist/dts/Http/ServerResponse.d.ts +89 -13
  64. package/dist/dts/Http/ServerResponse.d.ts.map +1 -1
  65. package/dist/dts/Http/UrlParams.d.ts +3 -2
  66. package/dist/dts/Http/UrlParams.d.ts.map +1 -1
  67. package/dist/dts/HttpClient.d.ts +8 -0
  68. package/dist/dts/HttpClient.d.ts.map +1 -1
  69. package/dist/dts/HttpServer.d.ts +8 -0
  70. package/dist/dts/HttpServer.d.ts.map +1 -1
  71. package/dist/dts/Socket.d.ts +3 -3
  72. package/dist/dts/Socket.d.ts.map +1 -1
  73. package/dist/dts/internal/http/router.d.ts.map +1 -1
  74. package/dist/esm/Http/Client.js +5 -0
  75. package/dist/esm/Http/Client.js.map +1 -1
  76. package/dist/esm/Http/ClientRequest.js.map +1 -1
  77. package/dist/esm/Http/ClientResponse.js.map +1 -1
  78. package/dist/esm/Http/Cookies.js +518 -0
  79. package/dist/esm/Http/Cookies.js.map +1 -0
  80. package/dist/esm/Http/Headers.js +2 -2
  81. package/dist/esm/Http/Headers.js.map +1 -1
  82. package/dist/esm/Http/IncomingMessage.js +12 -15
  83. package/dist/esm/Http/IncomingMessage.js.map +1 -1
  84. package/dist/esm/Http/Multipart.js.map +1 -1
  85. package/dist/esm/Http/Router.js +10 -0
  86. package/dist/esm/Http/Router.js.map +1 -1
  87. package/dist/esm/Http/ServerRequest.js +5 -0
  88. package/dist/esm/Http/ServerRequest.js.map +1 -1
  89. package/dist/esm/Http/ServerResponse.js +35 -0
  90. package/dist/esm/Http/ServerResponse.js.map +1 -1
  91. package/dist/esm/Http/UrlParams.js +2 -2
  92. package/dist/esm/Http/UrlParams.js.map +1 -1
  93. package/dist/esm/HttpClient.js +8 -0
  94. package/dist/esm/HttpClient.js.map +1 -1
  95. package/dist/esm/HttpServer.js +8 -0
  96. package/dist/esm/HttpServer.js.map +1 -1
  97. package/dist/esm/internal/http/body.js +2 -2
  98. package/dist/esm/internal/http/body.js.map +1 -1
  99. package/dist/esm/internal/http/client.js +8 -2
  100. package/dist/esm/internal/http/client.js.map +1 -1
  101. package/dist/esm/internal/http/clientRequest.js +2 -2
  102. package/dist/esm/internal/http/clientRequest.js.map +1 -1
  103. package/dist/esm/internal/http/clientResponse.js +16 -8
  104. package/dist/esm/internal/http/clientResponse.js.map +1 -1
  105. package/dist/esm/internal/http/multipart.js +4 -4
  106. package/dist/esm/internal/http/multipart.js.map +1 -1
  107. package/dist/esm/internal/http/router.js +31 -6
  108. package/dist/esm/internal/http/router.js.map +1 -1
  109. package/dist/esm/internal/http/serverRequest.js +28 -14
  110. package/dist/esm/internal/http/serverRequest.js.map +1 -1
  111. package/dist/esm/internal/http/serverResponse.js +47 -22
  112. package/dist/esm/internal/http/serverResponse.js.map +1 -1
  113. package/package.json +12 -4
  114. package/src/Http/Client.ts +16 -2
  115. package/src/Http/ClientRequest.ts +3 -1
  116. package/src/Http/ClientResponse.ts +18 -7
  117. package/src/Http/Cookies.ts +718 -0
  118. package/src/Http/Headers.ts +16 -8
  119. package/src/Http/IncomingMessage.ts +17 -12
  120. package/src/Http/Multipart.ts +5 -2
  121. package/src/Http/Router.ts +50 -3
  122. package/src/Http/ServerRequest.ts +25 -7
  123. package/src/Http/ServerResponse.ts +145 -13
  124. package/src/Http/UrlParams.ts +3 -2
  125. package/src/HttpClient.ts +8 -0
  126. package/src/HttpServer.ts +8 -0
  127. package/src/internal/http/body.ts +3 -2
  128. package/src/internal/http/client.ts +45 -5
  129. package/src/internal/http/clientRequest.ts +3 -2
  130. package/src/internal/http/clientResponse.ts +18 -8
  131. package/src/internal/http/multipart.ts +7 -4
  132. package/src/internal/http/router.ts +80 -6
  133. package/src/internal/http/serverRequest.ts +41 -15
  134. package/src/internal/http/serverResponse.ts +190 -18
@@ -0,0 +1,518 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Duration from "effect/Duration";
5
+ import * as Either from "effect/Either";
6
+ import { dual } from "effect/Function";
7
+ import * as Inspectable from "effect/Inspectable";
8
+ import * as Option from "effect/Option";
9
+ import { pipeArguments } from "effect/Pipeable";
10
+ import * as Predicate from "effect/Predicate";
11
+ import * as ReadonlyRecord from "effect/ReadonlyRecord";
12
+ import { TypeIdError } from "../Error.js";
13
+ /**
14
+ * @since 1.0.0
15
+ * @category type ids
16
+ */
17
+ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Cookies");
18
+ /**
19
+ * @since 1.0.0
20
+ * @category refinements
21
+ */
22
+ export const isCookies = u => Predicate.hasProperty(u, TypeId);
23
+ /**
24
+ * @since 1.0.0
25
+ * @category type ids
26
+ */
27
+ export const CookieTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Cookies/Cookie");
28
+ /**
29
+ * @since 1.0.0
30
+ * @category type ids
31
+ */
32
+ export const ErrorTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/Cookies/CookieError");
33
+ /**
34
+ * @since 1.0.0
35
+ * @category errors
36
+ */
37
+ export class CookiesError extends TypeIdError(ErrorTypeId, "CookieError") {
38
+ get message() {
39
+ return this.reason;
40
+ }
41
+ }
42
+ const Proto = {
43
+ [TypeId]: TypeId,
44
+ ...Inspectable.BaseProto,
45
+ toJSON() {
46
+ return {
47
+ _id: "@effect/platform/Http/Cookies",
48
+ cookies: ReadonlyRecord.map(this.cookies, cookie => cookie.toJSON())
49
+ };
50
+ },
51
+ pipe() {
52
+ return pipeArguments(this, arguments);
53
+ }
54
+ };
55
+ /**
56
+ * Create a Cookies object from an Iterable
57
+ *
58
+ * @since 1.0.0
59
+ * @category constructors
60
+ */
61
+ export const fromReadonlyRecord = cookies => {
62
+ const self = Object.create(Proto);
63
+ self.cookies = cookies;
64
+ return self;
65
+ };
66
+ /**
67
+ * Create a Cookies object from an Iterable
68
+ *
69
+ * @since 1.0.0
70
+ * @category constructors
71
+ */
72
+ export const fromIterable = cookies => {
73
+ const record = {};
74
+ for (const cookie of cookies) {
75
+ record[cookie.name] = cookie;
76
+ }
77
+ return fromReadonlyRecord(record);
78
+ };
79
+ /**
80
+ * Create a Cookies object from a set of Set-Cookie headers
81
+ *
82
+ * @since 1.0.0
83
+ * @category constructors
84
+ */
85
+ export const fromSetCookie = headers => {
86
+ const arrayHeaders = typeof headers === "string" ? [headers] : headers;
87
+ const cookies = [];
88
+ for (const header of arrayHeaders) {
89
+ const cookie = parseSetCookie(header.trim());
90
+ if (Option.isSome(cookie)) {
91
+ cookies.push(cookie.value);
92
+ }
93
+ }
94
+ return fromIterable(cookies);
95
+ };
96
+ function parseSetCookie(header) {
97
+ const parts = header.split(";").map(_ => _.trim()).filter(_ => _ !== "");
98
+ if (parts.length === 0) {
99
+ return Option.none();
100
+ }
101
+ const firstEqual = parts[0].indexOf("=");
102
+ if (firstEqual === -1) {
103
+ return Option.none();
104
+ }
105
+ const name = parts[0].slice(0, firstEqual);
106
+ if (!fieldContentRegExp.test(name)) {
107
+ return Option.none();
108
+ }
109
+ const valueEncoded = parts[0].slice(firstEqual + 1);
110
+ const value = tryDecodeURIComponent(valueEncoded);
111
+ if (parts.length === 1) {
112
+ return Option.some(Object.assign(Object.create(CookieProto), {
113
+ name,
114
+ value,
115
+ valueEncoded
116
+ }));
117
+ }
118
+ const options = {};
119
+ for (let i = 1; i < parts.length; i++) {
120
+ const part = parts[i];
121
+ const equalIndex = part.indexOf("=");
122
+ const key = equalIndex === -1 ? part : part.slice(0, equalIndex).trim();
123
+ const value = equalIndex === -1 ? undefined : part.slice(equalIndex + 1).trim();
124
+ switch (key.toLowerCase()) {
125
+ case "domain":
126
+ {
127
+ if (value === undefined) {
128
+ break;
129
+ }
130
+ const domain = value.trim().replace(/^\./, "");
131
+ if (domain) {
132
+ options.domain = domain;
133
+ }
134
+ break;
135
+ }
136
+ case "expires":
137
+ {
138
+ if (value === undefined) {
139
+ break;
140
+ }
141
+ const date = new Date(value);
142
+ if (!isNaN(date.getTime())) {
143
+ options.expires = date;
144
+ }
145
+ break;
146
+ }
147
+ case "max-age":
148
+ {
149
+ if (value === undefined) {
150
+ break;
151
+ }
152
+ const maxAge = parseInt(value, 10);
153
+ if (!isNaN(maxAge)) {
154
+ options.maxAge = Duration.seconds(maxAge);
155
+ }
156
+ break;
157
+ }
158
+ case "path":
159
+ {
160
+ if (value === undefined) {
161
+ break;
162
+ }
163
+ if (value[0] === "/") {
164
+ options.path = value;
165
+ }
166
+ break;
167
+ }
168
+ case "priority":
169
+ {
170
+ if (value === undefined) {
171
+ break;
172
+ }
173
+ switch (value.toLowerCase()) {
174
+ case "low":
175
+ options.priority = "low";
176
+ break;
177
+ case "medium":
178
+ options.priority = "medium";
179
+ break;
180
+ case "high":
181
+ options.priority = "high";
182
+ break;
183
+ }
184
+ break;
185
+ }
186
+ case "httponly":
187
+ {
188
+ options.httpOnly = true;
189
+ break;
190
+ }
191
+ case "secure":
192
+ {
193
+ options.secure = true;
194
+ break;
195
+ }
196
+ case "partitioned":
197
+ {
198
+ options.partitioned = true;
199
+ break;
200
+ }
201
+ case "samesite":
202
+ {
203
+ if (value === undefined) {
204
+ break;
205
+ }
206
+ switch (value.toLowerCase()) {
207
+ case "lax":
208
+ options.sameSite = "lax";
209
+ break;
210
+ case "strict":
211
+ options.sameSite = "strict";
212
+ break;
213
+ case "none":
214
+ options.sameSite = "none";
215
+ break;
216
+ }
217
+ break;
218
+ }
219
+ }
220
+ }
221
+ return Option.some(Object.assign(Object.create(CookieProto), {
222
+ name,
223
+ value,
224
+ valueEncoded,
225
+ options: Object.keys(options).length > 0 ? options : undefined
226
+ }));
227
+ }
228
+ /**
229
+ * An empty Cookies object
230
+ *
231
+ * @since 1.0.0
232
+ * @category constructors
233
+ */
234
+ export const empty = /*#__PURE__*/fromIterable([]);
235
+ /**
236
+ * @since 1.0.0
237
+ * @category refinements
238
+ */
239
+ export const isEmpty = self => ReadonlyRecord.isEmptyRecord(self.cookies);
240
+ // eslint-disable-next-line no-control-regex
241
+ const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
242
+ const CookieProto = {
243
+ [CookieTypeId]: CookieTypeId,
244
+ ...Inspectable.BaseProto,
245
+ toJSON() {
246
+ return {
247
+ _id: "@effect/platform/Http/Cookies/Cookie",
248
+ name: this.name,
249
+ value: this.value,
250
+ options: this.options
251
+ };
252
+ }
253
+ };
254
+ /**
255
+ * Create a new cookie
256
+ *
257
+ * @since 1.0.0
258
+ * @category constructors
259
+ */
260
+ export function makeCookie(name, value, options) {
261
+ if (!fieldContentRegExp.test(name)) {
262
+ return Either.left(new CookiesError({
263
+ reason: "InvalidName"
264
+ }));
265
+ }
266
+ const encodedValue = encodeURIComponent(value);
267
+ if (encodedValue && !fieldContentRegExp.test(encodedValue)) {
268
+ return Either.left(new CookiesError({
269
+ reason: "InvalidValue"
270
+ }));
271
+ }
272
+ if (options !== undefined) {
273
+ if (options.domain !== undefined && !fieldContentRegExp.test(options.domain)) {
274
+ return Either.left(new CookiesError({
275
+ reason: "InvalidDomain"
276
+ }));
277
+ }
278
+ if (options.path !== undefined && !fieldContentRegExp.test(options.path)) {
279
+ return Either.left(new CookiesError({
280
+ reason: "InvalidPath"
281
+ }));
282
+ }
283
+ if (options.maxAge !== undefined && !Duration.isFinite(Duration.decode(options.maxAge))) {
284
+ return Either.left(new CookiesError({
285
+ reason: "InfinityMaxAge"
286
+ }));
287
+ }
288
+ }
289
+ return Either.right(Object.assign(Object.create(CookieProto), {
290
+ name,
291
+ value,
292
+ valueEncoded: encodedValue,
293
+ options
294
+ }));
295
+ }
296
+ /**
297
+ * Create a new cookie, throwing an error if invalid
298
+ *
299
+ * @since 1.0.0
300
+ * @category constructors
301
+ */
302
+ export const unsafeMakeCookie = (name, value, options) => Either.getOrThrow(makeCookie(name, value, options));
303
+ /**
304
+ * Add a cookie to a Cookies object
305
+ *
306
+ * @since 1.0.0
307
+ * @category combinators
308
+ */
309
+ export const setCookie = /*#__PURE__*/dual(2, (self, cookie) => fromReadonlyRecord(ReadonlyRecord.set(self.cookies, cookie.name, cookie)));
310
+ /**
311
+ * Add multiple cookies to a Cookies object
312
+ *
313
+ * @since 1.0.0
314
+ * @category combinators
315
+ */
316
+ export const setAllCookie = /*#__PURE__*/dual(2, (self, cookies) => {
317
+ const record = {
318
+ ...self.cookies
319
+ };
320
+ for (const cookie of cookies) {
321
+ record[cookie.name] = cookie;
322
+ }
323
+ return fromReadonlyRecord(record);
324
+ });
325
+ /**
326
+ * Combine two Cookies objects, removing duplicates from the first
327
+ *
328
+ * @since 1.0.0
329
+ * @category combinators
330
+ */
331
+ export const merge = /*#__PURE__*/dual(2, (self, that) => fromReadonlyRecord({
332
+ ...self.cookies,
333
+ ...that.cookies
334
+ }));
335
+ /**
336
+ * Remove a cookie by name
337
+ *
338
+ * @since 1.0.0
339
+ * @category combinators
340
+ */
341
+ export const remove = /*#__PURE__*/dual(2, (self, name) => fromReadonlyRecord(ReadonlyRecord.remove(self.cookies, name)));
342
+ /**
343
+ * Add a cookie to a Cookies object
344
+ *
345
+ * @since 1.0.0
346
+ * @category combinators
347
+ */
348
+ export const set = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, value, options) => Either.map(makeCookie(name, value, options), cookie => fromReadonlyRecord(ReadonlyRecord.set(self.cookies, name, cookie))));
349
+ /**
350
+ * Add a cookie to a Cookies object
351
+ *
352
+ * @since 1.0.0
353
+ * @category combinators
354
+ */
355
+ export const unsafeSet = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, value, options) => fromReadonlyRecord(ReadonlyRecord.set(self.cookies, name, unsafeMakeCookie(name, value, options))));
356
+ /**
357
+ * Add multiple cookies to a Cookies object
358
+ *
359
+ * @since 1.0.0
360
+ * @category combinators
361
+ */
362
+ export const setAll = /*#__PURE__*/dual(2, (self, cookies) => {
363
+ const record = {
364
+ ...self.cookies
365
+ };
366
+ for (const [name, value, options] of cookies) {
367
+ const either = makeCookie(name, value, options);
368
+ if (Either.isLeft(either)) {
369
+ return either;
370
+ }
371
+ record[name] = either.right;
372
+ }
373
+ return Either.right(fromReadonlyRecord(record));
374
+ });
375
+ /**
376
+ * Add multiple cookies to a Cookies object, throwing an error if invalid
377
+ *
378
+ * @since 1.0.0
379
+ * @category combinators
380
+ */
381
+ export const unsafeSetAll = /*#__PURE__*/dual(2, (self, cookies) => Either.getOrThrow(setAll(self, cookies)));
382
+ /**
383
+ * Serialize a cookie into a string
384
+ *
385
+ * Adapted from https://github.com/fastify/fastify-cookie under MIT License
386
+ *
387
+ * @since 1.0.0
388
+ * @category encoding
389
+ */
390
+ export function serializeCookie(self) {
391
+ let str = self.name + "=" + self.valueEncoded;
392
+ if (self.options === undefined) {
393
+ return str;
394
+ }
395
+ const options = self.options;
396
+ if (options.maxAge !== undefined) {
397
+ const maxAge = Duration.toSeconds(options.maxAge);
398
+ str += "; Max-Age=" + Math.trunc(maxAge);
399
+ }
400
+ if (options.domain !== undefined) {
401
+ str += "; Domain=" + options.domain;
402
+ }
403
+ if (options.path !== undefined) {
404
+ str += "; Path=" + options.path;
405
+ }
406
+ if (options.priority !== undefined) {
407
+ switch (options.priority) {
408
+ case "low":
409
+ str += "; Priority=Low";
410
+ break;
411
+ case "medium":
412
+ str += "; Priority=Medium";
413
+ break;
414
+ case "high":
415
+ str += "; Priority=High";
416
+ break;
417
+ }
418
+ }
419
+ if (options.expires !== undefined) {
420
+ str += "; Expires=" + options.expires.toUTCString();
421
+ }
422
+ if (options.httpOnly) {
423
+ str += "; HttpOnly";
424
+ }
425
+ if (options.secure) {
426
+ str += "; Secure";
427
+ }
428
+ // Draft implementation to support Chrome from 2024-Q1 forward.
429
+ // See https://datatracker.ietf.org/doc/html/draft-cutler-httpbis-partitioned-cookies#section-2.1
430
+ if (options.partitioned) {
431
+ str += "; Partitioned";
432
+ }
433
+ if (options.sameSite !== undefined) {
434
+ switch (options.sameSite) {
435
+ case "lax":
436
+ str += "; SameSite=Lax";
437
+ break;
438
+ case "strict":
439
+ str += "; SameSite=Strict";
440
+ break;
441
+ case "none":
442
+ str += "; SameSite=None";
443
+ break;
444
+ }
445
+ }
446
+ return str;
447
+ }
448
+ /**
449
+ * Serialize a Cookies object into a Cookie header
450
+ *
451
+ * @since 1.0.0
452
+ * @category encoding
453
+ */
454
+ export const toCookieHeader = self => Object.values(self.cookies).map(cookie => `${cookie.name}=${cookie.valueEncoded}`).join("; ");
455
+ /**
456
+ * To record
457
+ *
458
+ * @since 1.0.0
459
+ * @category encoding
460
+ */
461
+ export const toRecord = self => {
462
+ const record = {};
463
+ const cookies = Object.values(self.cookies);
464
+ for (let index = 0; index < cookies.length; index++) {
465
+ const cookie = cookies[index];
466
+ record[cookie.name] = cookie.value;
467
+ }
468
+ return record;
469
+ };
470
+ /**
471
+ * Serialize a Cookies object into Headers object containing one or more Set-Cookie headers
472
+ *
473
+ * @since 1.0.0
474
+ * @category encoding
475
+ */
476
+ export const toSetCookieHeaders = self => Object.values(self.cookies).map(serializeCookie);
477
+ /**
478
+ * Parse a cookie header into a record of key-value pairs
479
+ *
480
+ * Adapted from https://github.com/fastify/fastify-cookie under MIT License
481
+ *
482
+ * @since 1.0.0
483
+ * @category decoding
484
+ */
485
+ export function parseHeader(header) {
486
+ const result = {};
487
+ const strLen = header.length;
488
+ let pos = 0;
489
+ let terminatorPos = 0;
490
+ // eslint-disable-next-line no-constant-condition
491
+ while (true) {
492
+ if (terminatorPos === strLen) break;
493
+ terminatorPos = header.indexOf(";", pos);
494
+ if (terminatorPos === -1) terminatorPos = strLen; // This is the last pair
495
+ let eqIdx = header.indexOf("=", pos);
496
+ if (eqIdx === -1) break; // No key-value pairs left
497
+ if (eqIdx > terminatorPos) {
498
+ // Malformed key-value pair
499
+ pos = terminatorPos + 1;
500
+ continue;
501
+ }
502
+ const key = header.substring(pos, eqIdx++).trim();
503
+ if (result[key] === undefined) {
504
+ const val = header.charCodeAt(eqIdx) === 0x22 ? header.substring(eqIdx + 1, terminatorPos - 1).trim() : header.substring(eqIdx, terminatorPos).trim();
505
+ result[key] = !(val.indexOf("%") === -1) ? tryDecodeURIComponent(val) : val;
506
+ }
507
+ pos = terminatorPos + 1;
508
+ }
509
+ return result;
510
+ }
511
+ const tryDecodeURIComponent = str => {
512
+ try {
513
+ return decodeURIComponent(str);
514
+ } catch (_) {
515
+ return str;
516
+ }
517
+ };
518
+ //# sourceMappingURL=Cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cookies.js","names":["Duration","Either","dual","Inspectable","Option","pipeArguments","Predicate","ReadonlyRecord","TypeIdError","TypeId","Symbol","for","isCookies","u","hasProperty","CookieTypeId","ErrorTypeId","CookiesError","message","reason","Proto","BaseProto","toJSON","_id","cookies","map","cookie","pipe","arguments","fromReadonlyRecord","self","Object","create","fromIterable","record","name","fromSetCookie","headers","arrayHeaders","header","parseSetCookie","trim","isSome","push","value","parts","split","_","filter","length","none","firstEqual","indexOf","slice","fieldContentRegExp","test","valueEncoded","tryDecodeURIComponent","some","assign","CookieProto","options","i","part","equalIndex","key","undefined","toLowerCase","domain","replace","date","Date","isNaN","getTime","expires","maxAge","parseInt","seconds","path","priority","httpOnly","secure","partitioned","sameSite","keys","empty","isEmpty","isEmptyRecord","makeCookie","left","encodedValue","encodeURIComponent","isFinite","decode","right","unsafeMakeCookie","getOrThrow","setCookie","set","setAllCookie","merge","that","remove","args","unsafeSet","setAll","either","isLeft","unsafeSetAll","serializeCookie","str","toSeconds","Math","trunc","toUTCString","toCookieHeader","values","join","toRecord","index","toSetCookieHeaders","parseHeader","result","strLen","pos","terminatorPos","eqIdx","substring","val","charCodeAt","decodeURIComponent"],"sources":["../../../src/Http/Cookies.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,7 @@ export const schemaFromSelf = /*#__PURE__*/Schema.declare(isHeaders, {
30
30
  * @since 1.0.0
31
31
  * @category schemas
32
32
  */
33
- export const schema = /*#__PURE__*/Schema.transform( /*#__PURE__*/Schema.record(Schema.string, Schema.string), schemaFromSelf, record => fromInput(record), identity);
33
+ export const schema = /*#__PURE__*/Schema.transform( /*#__PURE__*/Schema.record(Schema.string, /*#__PURE__*/Schema.union(Schema.string, /*#__PURE__*/Schema.array(Schema.string))), schemaFromSelf, record => fromInput(record), identity);
34
34
  /**
35
35
  * @since 1.0.0
36
36
  * @category constructors
@@ -46,7 +46,7 @@ export const fromInput = input => {
46
46
  } else if (Symbol.iterator in input) {
47
47
  return ReadonlyRecord.fromEntries(ReadonlyArray.map(ReadonlyArray.fromIterable(input), ([k, v]) => [k.toLowerCase(), v]));
48
48
  }
49
- return ReadonlyRecord.fromEntries(Object.entries(input).map(([k, v]) => [k.toLowerCase(), v]));
49
+ return ReadonlyRecord.fromEntries(Object.entries(input).map(([k, v]) => [k.toLowerCase(), Array.isArray(v) ? v.join(", ") : v]));
50
50
  };
51
51
  /**
52
52
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"Headers.js","names":["Schema","dual","identity","Predicate","ReadonlyArray","ReadonlyRecord","Secret","String","HeadersTypeId","Symbol","for","isHeaders","u","hasProperty","schemaFromSelf","declare","identifier","equivalence","getEquivalence","Equivalence","schema","transform","record","string","fromInput","empty","Object","create","input","undefined","iterator","fromEntries","map","fromIterable","k","v","toLowerCase","entries","unsafeFromRecord","has","self","key","get","set","value","setAll","headers","merge","remove","out","redact","modify","fromString","isString","forEach"],"sources":["../../../src/Http/Headers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Headers.js","names":["Schema","dual","identity","Predicate","ReadonlyArray","ReadonlyRecord","Secret","String","HeadersTypeId","Symbol","for","isHeaders","u","hasProperty","schemaFromSelf","declare","identifier","equivalence","getEquivalence","Equivalence","schema","transform","record","string","union","array","fromInput","empty","Object","create","input","undefined","iterator","fromEntries","map","fromIterable","k","v","toLowerCase","entries","Array","isArray","join","unsafeFromRecord","has","self","key","get","set","value","setAll","headers","merge","remove","out","redact","modify","fromString","isString","forEach"],"sources":["../../../src/Http/Headers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,3 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
1
  import * as ParseResult from "@effect/schema/ParseResult";
5
2
  import * as Schema from "@effect/schema/Schema";
6
3
  import * as Effect from "effect/Effect";
@@ -19,48 +16,48 @@ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/IncomingMes
19
16
  * @since 1.0.0
20
17
  * @category schema
21
18
  */
22
- export const schemaBodyJson = schema => {
23
- const parse = Schema.decodeUnknown(schema);
19
+ export const schemaBodyJson = (schema, options) => {
20
+ const parse = Schema.decodeUnknown(schema, options);
24
21
  return self => Effect.flatMap(self.json, parse);
25
22
  };
26
23
  /**
27
24
  * @since 1.0.0
28
25
  * @category schema
29
26
  */
30
- export const schemaBodyJsonEffect = schema => {
31
- const decode = schemaBodyJson(schema);
27
+ export const schemaBodyJsonEffect = (schema, options) => {
28
+ const decode = schemaBodyJson(schema, options);
32
29
  return effect => Effect.scoped(Effect.flatMap(effect, decode));
33
30
  };
34
31
  /**
35
32
  * @since 1.0.0
36
33
  * @category schema
37
34
  */
38
- export const schemaBodyUrlParams = schema => {
39
- const parse = Schema.decodeUnknown(schema);
35
+ export const schemaBodyUrlParams = (schema, options) => {
36
+ const parse = Schema.decodeUnknown(schema, options);
40
37
  return self => Effect.flatMap(self.urlParamsBody, _ => parse(Object.fromEntries(_)));
41
38
  };
42
39
  /**
43
40
  * @since 1.0.0
44
41
  * @category schema
45
42
  */
46
- export const schemaBodyUrlParamsEffect = schema => {
47
- const decode = schemaBodyUrlParams(schema);
43
+ export const schemaBodyUrlParamsEffect = (schema, options) => {
44
+ const decode = schemaBodyUrlParams(schema, options);
48
45
  return effect => Effect.scoped(Effect.flatMap(effect, decode));
49
46
  };
50
47
  /**
51
48
  * @since 1.0.0
52
49
  * @category schema
53
50
  */
54
- export const schemaHeaders = schema => {
55
- const parse = Schema.decodeUnknown(schema);
51
+ export const schemaHeaders = (schema, options) => {
52
+ const parse = Schema.decodeUnknown(schema, options);
56
53
  return self => parse(self.headers);
57
54
  };
58
55
  /**
59
56
  * @since 1.0.0
60
57
  * @category schema
61
58
  */
62
- export const schemaHeadersEffect = schema => {
63
- const decode = schemaHeaders(schema);
59
+ export const schemaHeadersEffect = (schema, options) => {
60
+ const decode = schemaHeaders(schema, options);
64
61
  return effect => Effect.scoped(Effect.flatMap(effect, decode));
65
62
  };
66
63
  const SpanSchema = /*#__PURE__*/Schema.struct({