@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
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { Cookies } from "@effect/platform/Http/Cookies"
5
+ import type { ParseOptions } from "@effect/schema/AST"
4
6
  import type * as ParseResult from "@effect/schema/ParseResult"
5
7
  import type * as Schema from "@effect/schema/Schema"
6
8
  import type * as Context from "effect/Context"
@@ -9,6 +11,7 @@ import type { Inspectable } from "effect/Inspectable"
9
11
  import type * as Layer from "effect/Layer"
10
12
  import type { Pipeable } from "effect/Pipeable"
11
13
  import type * as Predicate from "effect/Predicate"
14
+ import type { Ref } from "effect/Ref"
12
15
  import type * as Schedule from "effect/Schedule"
13
16
  import type * as Scope from "effect/Scope"
14
17
  import * as internal from "../internal/http/client.js"
@@ -382,7 +385,8 @@ export const scoped: <R, E, A>(self: Client<R, E, A>) => Client<Exclude<R, Scope
382
385
  */
383
386
  export const schemaFunction: {
384
387
  <SA, SI, SR>(
385
- schema: Schema.Schema<SA, SI, SR>
388
+ schema: Schema.Schema<SA, SI, SR>,
389
+ options?: ParseOptions | undefined
386
390
  ): <R, E, A>(
387
391
  self: Client<R, E, A>
388
392
  ) => (
@@ -390,7 +394,8 @@ export const schemaFunction: {
390
394
  ) => (a: SA) => Effect.Effect<A, E | ParseResult.ParseError | Error.RequestError, SR | R>
391
395
  <R, E, A, SA, SI, SR>(
392
396
  self: Client<R, E, A>,
393
- schema: Schema.Schema<SA, SI, SR>
397
+ schema: Schema.Schema<SA, SI, SR>,
398
+ options?: ParseOptions | undefined
394
399
  ): (
395
400
  request: ClientRequest.ClientRequest
396
401
  ) => (a: SA) => Effect.Effect<A, ParseResult.ParseError | Error.RequestError | E, R | SR>
@@ -418,3 +423,12 @@ export const tapRequest: {
418
423
  f: (a: ClientRequest.ClientRequest) => Effect.Effect<_, E2, R2>
419
424
  ): Client<R | R2, E | E2, A>
420
425
  } = internal.tapRequest
426
+
427
+ /**
428
+ * @since 1.0.0
429
+ * @category cookies
430
+ */
431
+ export const withCookiesRef: {
432
+ (ref: Ref<Cookies>): <R, E>(self: Client.WithResponse<R, E>) => Client.WithResponse<R, E>
433
+ <R, E>(self: Client.WithResponse<R, E>, ref: Ref<Cookies>): Client.WithResponse<R, E>
434
+ } = internal.withCookiesRef
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import type * as Schema from "@effect/schema/Schema"
5
6
  import type * as Effect from "effect/Effect"
6
7
  import type { Inspectable } from "effect/Inspectable"
@@ -302,7 +303,8 @@ export const unsafeJsonBody: {
302
303
  * @category combinators
303
304
  */
304
305
  export const schemaBody: <A, I, R>(
305
- schema: Schema.Schema<A, I, R>
306
+ schema: Schema.Schema<A, I, R>,
307
+ options?: ParseOptions | undefined
306
308
  ) => {
307
309
  (body: A): (self: ClientRequest) => Effect.Effect<ClientRequest, Body.BodyError, R>
308
310
  (self: ClientRequest, body: A): Effect.Effect<ClientRequest, Body.BodyError, R>
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type { ParseOptions } from "@effect/schema/AST"
4
5
  import type * as ParseResult from "@effect/schema/ParseResult"
5
6
  import type * as Schema from "@effect/schema/Schema"
6
7
  import type * as Effect from "effect/Effect"
@@ -9,6 +10,7 @@ import type * as Stream from "effect/Stream"
9
10
  import * as internal from "../internal/http/clientResponse.js"
10
11
  import type * as Error from "./ClientError.js"
11
12
  import type * as ClientRequest from "./ClientRequest.js"
13
+ import type * as Cookies from "./Cookies.js"
12
14
  import type * as IncomingMessage from "./IncomingMessage.js"
13
15
  import type * as UrlParams from "./UrlParams.js"
14
16
 
@@ -64,6 +66,7 @@ export type TypeId = typeof TypeId
64
66
  export interface ClientResponse extends IncomingMessage.IncomingMessage<Error.ResponseError> {
65
67
  readonly [TypeId]: TypeId
66
68
  readonly status: number
69
+ readonly cookies: Cookies.Cookies
67
70
  readonly formData: Effect.Effect<FormData, Error.ResponseError>
68
71
  }
69
72
 
@@ -86,7 +89,8 @@ export const schemaJson: <
86
89
  },
87
90
  A
88
91
  >(
89
- schema: Schema.Schema<A, I, R>
92
+ schema: Schema.Schema<A, I, R>,
93
+ options?: ParseOptions | undefined
90
94
  ) => (self: ClientResponse) => Effect.Effect<A, Error.ResponseError | ParseResult.ParseError, R> = internal.schemaJson
91
95
 
92
96
  /**
@@ -100,8 +104,10 @@ export const schemaNoBody: <
100
104
  readonly headers?: Readonly<Record<string, string>> | undefined
101
105
  },
102
106
  A
103
- >(schema: Schema.Schema<A, I, R>) => (self: ClientResponse) => Effect.Effect<A, ParseResult.ParseError, R> =
104
- internal.schemaNoBody
107
+ >(
108
+ schema: Schema.Schema<A, I, R>,
109
+ options?: ParseOptions | undefined
110
+ ) => (self: ClientResponse) => Effect.Effect<A, ParseResult.ParseError, R> = internal.schemaNoBody
105
111
 
106
112
  /**
107
113
  * @since 1.0.0
@@ -164,12 +170,13 @@ export const schemaJsonEffect: <
164
170
  },
165
171
  A
166
172
  >(
167
- schema: Schema.Schema<A, I, R>
173
+ schema: Schema.Schema<A, I, R>,
174
+ options?: ParseOptions | undefined
168
175
  ) => <E, R2>(
169
176
  effect: Effect.Effect<ClientResponse, E, R2>
170
177
  ) => Effect.Effect<
171
178
  A,
172
- Error.ResponseError | E | ParseResult.ParseError,
179
+ E | Error.ResponseError | ParseResult.ParseError,
173
180
  Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>
174
181
  > = internal.schemaJsonEffect
175
182
 
@@ -179,10 +186,14 @@ export const schemaJsonEffect: <
179
186
  */
180
187
  export const schemaNoBodyEffect: <
181
188
  R,
182
- I extends { readonly status?: number | undefined; readonly headers?: Readonly<Record<string, string>> | undefined },
189
+ I extends {
190
+ readonly status?: number | undefined
191
+ readonly headers?: Readonly<Record<string, string>> | undefined
192
+ },
183
193
  A
184
194
  >(
185
- schema: Schema.Schema<A, I, R>
195
+ schema: Schema.Schema<A, I, R>,
196
+ options?: ParseOptions | undefined
186
197
  ) => <E, R2>(
187
198
  effect: Effect.Effect<ClientResponse, E, R2>
188
199
  ) => Effect.Effect<A, E | ParseResult.ParseError, Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>> =