@effect/platform 0.13.7 → 0.13.9

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 (46) hide show
  1. package/Http/ClientRequest.d.ts +8 -0
  2. package/Http/ClientRequest.d.ts.map +1 -1
  3. package/Http/ClientRequest.js +7 -1
  4. package/Http/ClientRequest.js.map +1 -1
  5. package/Http/FormData.d.ts +39 -0
  6. package/Http/FormData.d.ts.map +1 -1
  7. package/Http/FormData.js +37 -1
  8. package/Http/FormData.js.map +1 -1
  9. package/HttpClient.d.ts +36 -7
  10. package/HttpClient.d.ts.map +1 -1
  11. package/HttpClient.js +14 -14
  12. package/HttpClient.js.map +1 -1
  13. package/HttpServer.d.ts +51 -10
  14. package/HttpServer.d.ts.map +1 -1
  15. package/HttpServer.js +20 -20
  16. package/HttpServer.js.map +1 -1
  17. package/internal/http/clientRequest.js +4 -1
  18. package/internal/http/clientRequest.js.map +1 -1
  19. package/internal/http/formData.d.ts +1 -7
  20. package/internal/http/formData.d.ts.map +1 -1
  21. package/internal/http/formData.js +21 -6
  22. package/internal/http/formData.js.map +1 -1
  23. package/internal/http/middleware.js +12 -9
  24. package/internal/http/middleware.js.map +1 -1
  25. package/mjs/Http/ClientRequest.mjs +5 -0
  26. package/mjs/Http/ClientRequest.mjs.map +1 -1
  27. package/mjs/Http/FormData.mjs +30 -0
  28. package/mjs/Http/FormData.mjs.map +1 -1
  29. package/mjs/HttpClient.mjs +57 -14
  30. package/mjs/HttpClient.mjs.map +1 -1
  31. package/mjs/HttpServer.mjs +81 -20
  32. package/mjs/HttpServer.mjs.map +1 -1
  33. package/mjs/internal/http/clientRequest.mjs +2 -0
  34. package/mjs/internal/http/clientRequest.mjs.map +1 -1
  35. package/mjs/internal/http/formData.mjs +14 -5
  36. package/mjs/internal/http/formData.mjs.map +1 -1
  37. package/mjs/internal/http/middleware.mjs +12 -9
  38. package/mjs/internal/http/middleware.mjs.map +1 -1
  39. package/package.json +1 -1
  40. package/src/Http/ClientRequest.ts +9 -0
  41. package/src/Http/FormData.ts +45 -0
  42. package/src/HttpClient.ts +58 -28
  43. package/src/HttpServer.ts +82 -40
  44. package/src/internal/http/clientRequest.ts +6 -0
  45. package/src/internal/http/formData.ts +38 -5
  46. package/src/internal/http/middleware.ts +10 -9
@@ -21,19 +21,28 @@ export const FormDataError = (reason, error) => Data.struct({
21
21
  error
22
22
  });
23
23
  /** @internal */
24
- export const maxFieldSize = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFieldSize", () => FiberRef.unsafeMake(FileSystem.Size(1024 * 1024)));
24
+ export const maxParts = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxParts", () => FiberRef.unsafeMake(Option.none()));
25
+ /** @internal */
26
+ export const withMaxParts = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxParts, count));
27
+ /** @internal */
28
+ export const maxFieldSize = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFieldSize", () => FiberRef.unsafeMake(FileSystem.Size(10 * 1024 * 1024)));
25
29
  /** @internal */
26
30
  export const withMaxFieldSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFieldSize, FileSystem.Size(size)));
27
31
  /** @internal */
32
+ export const maxFields = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFields", () => FiberRef.unsafeMake(Option.none()));
33
+ /** @internal */
34
+ export const withMaxFields = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxFields, count));
35
+ /** @internal */
36
+ export const maxFiles = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFiles", () => FiberRef.unsafeMake(Option.none()));
37
+ /** @internal */
38
+ export const withMaxFiles = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxFiles, count));
39
+ /** @internal */
28
40
  export const maxFileSize = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFileSize", () => FiberRef.unsafeMake(Option.none()));
29
41
  /** @internal */
30
42
  export const withMaxFileSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFileSize, Option.map(size, FileSystem.Size)));
31
43
  /** @internal */
32
44
  export const fieldMimeTypes = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/fieldMimeTypes", () => FiberRef.unsafeMake(Chunk.make("application/json")));
33
- /**
34
- * @since 1.0.0
35
- * @category fiber refs
36
- */
45
+ /** @internal */
37
46
  export const withFieldMimeTypes = /*#__PURE__*/dual(2, (effect, mimeTypes) => Effect.locally(effect, fieldMimeTypes, Chunk.fromIterable(mimeTypes)));
38
47
  /** @internal */
39
48
  export const toRecord = formData => ReadonlyArray.reduce(formData.entries(), {}, (acc, [key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"formData.mjs","names":["Chunk","Data","dual","globalValue","Option","Predicate","ReadonlyArray","Effect","FiberRef","FileSystem","Schema","TypeId","Symbol","for","ErrorTypeId","FormDataError","reason","error","struct","_tag","maxFieldSize","unsafeMake","Size","withMaxFieldSize","effect","size","locally","maxFileSize","none","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","toRecord","formData","reduce","entries","acc","key","value","isString","existing","Array","isArray","push","filesSchema","array","filter","blob","instanceOf","Blob","schemaRecord","schema","parse","schemaJson","field","flatMap","tryMap","try","JSON","catch","filterOrFail","succeed","get"],"sources":["../../../src/internal/http/formData.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"formData.mjs","names":["Chunk","Data","dual","globalValue","Option","Predicate","ReadonlyArray","Effect","FiberRef","FileSystem","Schema","TypeId","Symbol","for","ErrorTypeId","FormDataError","reason","error","struct","_tag","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFields","withMaxFields","maxFiles","withMaxFiles","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","toRecord","formData","reduce","entries","acc","key","value","isString","existing","Array","isArray","push","filesSchema","array","filter","blob","instanceOf","Blob","schemaRecord","schema","parse","schemaJson","field","flatMap","tryMap","try","JSON","catch","filterOrFail","succeed","get"],"sources":["../../../src/internal/http/formData.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -5,15 +5,18 @@ import * as ServerRequest from "@effect/platform/Http/ServerRequest";
5
5
  /** @internal */
6
6
  export const make = middleware => middleware;
7
7
  /** @internal */
8
- export const logger = /*#__PURE__*/make(httpApp => Effect.withLogSpan(Effect.flatMap(ServerRequest.ServerRequest, request => Effect.tap(Effect.tapErrorCause(httpApp, cause => Effect.annotateLogs(Effect.log(cause), {
9
- "http.method": request.method,
10
- "http.url": request.url,
11
- "http.status": 500
12
- })), response => Effect.annotateLogs(Effect.log(""), {
13
- "http.method": request.method,
14
- "http.url": request.url,
15
- "http.status": response.status
16
- }))), "http.span"));
8
+ export const logger = /*#__PURE__*/make(httpApp => {
9
+ let counter = 0;
10
+ return Effect.flatMap(ServerRequest.ServerRequest, request => Effect.withLogSpan(Effect.tap(Effect.tapErrorCause(httpApp, cause => Effect.annotateLogs(Effect.log(cause), {
11
+ "http.method": request.method,
12
+ "http.url": request.url,
13
+ "http.status": 500
14
+ })), response => Effect.annotateLogs(Effect.log(""), {
15
+ "http.method": request.method,
16
+ "http.url": request.url,
17
+ "http.status": response.status
18
+ })), `http.span.${++counter}`));
19
+ });
17
20
  /** @internal */
18
21
  export const tracer = /*#__PURE__*/make(httpApp => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.withSpan(Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status)), `http ${request.method}`, {
19
22
  attributes: {
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","withLogSpan","flatMap","request","tap","tapErrorCause","cause","annotateLogs","log","method","url","response","status","tracer","withSpan","annotateCurrentSpan","attributes","xForwardedHeaders","updateService","headers","replaceHeaders","set","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AAExD,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AAEpE;AACA,OAAO,MAAMC,IAAI,GAAqCC,UAAa,IAAQA,UAAU;AAErF;AACA,OAAO,MAAMC,MAAM,gBAAGF,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACO,WAAW,CAChBP,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACU,GAAG,CACRV,MAAM,CAACW,aAAa,CAACL,OAAO,EAAGM,KAAK,IAClCZ,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,GAAG,CAACF,KAAK,CAAC,EAAE;EACrC,aAAa,EAAEH,OAAO,CAACM,MAAM;EAC7B,UAAU,EAAEN,OAAO,CAACO,GAAG;EACvB,aAAa,EAAE;CAChB,CAAC,CAAC,EACJC,QAAQ,IACPjB,MAAM,CAACa,YAAY,CAACb,MAAM,CAACc,GAAG,CAAC,EAAE,CAAC,EAAE;EAClC,aAAa,EAAEL,OAAO,CAACM,MAAM;EAC7B,UAAU,EAAEN,OAAO,CAACO,GAAG;EACvB,aAAa,EAAEC,QAAQ,CAACC;CACzB,CAAC,CACL,CACJ,EACD,WAAW,CACZ,CACF;AAED;AACA,OAAO,MAAMC,MAAM,gBAAGhB,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACoB,QAAQ,CACbpB,MAAM,CAACU,GAAG,CACRJ,OAAO,EACNW,QAAQ,IAAKjB,MAAM,CAACqB,mBAAmB,CAAC,aAAa,EAAEJ,QAAQ,CAACC,MAAM,CAAC,CACzE,EACD,QAAQT,OAAO,CAACM,MAAM,EAAE,EACxB;EAAEO,UAAU,EAAE;IAAE,aAAa,EAAEb,OAAO,CAACM,MAAM;IAAE,UAAU,EAAEN,OAAO,CAACO;EAAG;AAAE,CAAE,CAC3E,CACJ,CACF;AAED;AACA,OAAO,MAAMO,iBAAiB,gBAAGpB,IAAI,CAAEG,OAAO,IAC5CN,MAAM,CAACwB,aAAa,CAAClB,OAAO,EAAEJ,aAAa,CAACA,aAAa,EAAGO,OAAO,IACjEA,OAAO,CAACgB,OAAO,CAAC,kBAAkB,CAAC,GAC/BhB,OAAO,CAACiB,cAAc,CAACzB,OAAO,CAAC0B,GAAG,CAClClB,OAAO,CAACgB,OAAO,EACf,MAAM,EACNhB,OAAO,CAACgB,OAAO,CAAC,kBAAkB,CAAC,CACpC,CAAC,GACAhB,OAAO,CAAC,CACf;AAED;AACA,OAAO,MAAMmB,YAAY,gBAAG7B,IAAI,CAACoB,MAAM,EAAEd,MAAM,CAAC"}
1
+ {"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","counter","flatMap","request","withLogSpan","tap","tapErrorCause","cause","annotateLogs","log","method","url","response","status","tracer","withSpan","annotateCurrentSpan","attributes","xForwardedHeaders","updateService","headers","replaceHeaders","set","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AAExD,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AAEpE;AACA,OAAO,MAAMC,IAAI,GAAqCC,UAAa,IAAQA,UAAU;AAErF;AACA,OAAO,MAAMC,MAAM,gBAAGF,IAAI,CAAEG,OAAO,IAAI;EACrC,IAAIC,OAAO,GAAG,CAAC;EACf,OAAOP,MAAM,CAACQ,OAAO,CACnBN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACU,WAAW,CAChBV,MAAM,CAACW,GAAG,CACRX,MAAM,CAACY,aAAa,CAACN,OAAO,EAAGO,KAAK,IAClCb,MAAM,CAACc,YAAY,CAACd,MAAM,CAACe,GAAG,CAACF,KAAK,CAAC,EAAE;IACrC,aAAa,EAAEJ,OAAO,CAACO,MAAM;IAC7B,UAAU,EAAEP,OAAO,CAACQ,GAAG;IACvB,aAAa,EAAE;GAChB,CAAC,CAAC,EACJC,QAAQ,IACPlB,MAAM,CAACc,YAAY,CAACd,MAAM,CAACe,GAAG,CAAC,EAAE,CAAC,EAAE;IAClC,aAAa,EAAEN,OAAO,CAACO,MAAM;IAC7B,UAAU,EAAEP,OAAO,CAACQ,GAAG;IACvB,aAAa,EAAEC,QAAQ,CAACC;GACzB,CAAC,CACL,EACD,aAAa,EAAEZ,OAAO,EAAE,CACzB,CACJ;AACH,CAAC,CAAC;AAEF;AACA,OAAO,MAAMa,MAAM,gBAAGjB,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACqB,QAAQ,CACbrB,MAAM,CAACW,GAAG,CACRL,OAAO,EACNY,QAAQ,IAAKlB,MAAM,CAACsB,mBAAmB,CAAC,aAAa,EAAEJ,QAAQ,CAACC,MAAM,CAAC,CACzE,EACD,QAAQV,OAAO,CAACO,MAAM,EAAE,EACxB;EAAEO,UAAU,EAAE;IAAE,aAAa,EAAEd,OAAO,CAACO,MAAM;IAAE,UAAU,EAAEP,OAAO,CAACQ;EAAG;AAAE,CAAE,CAC3E,CACJ,CACF;AAED;AACA,OAAO,MAAMO,iBAAiB,gBAAGrB,IAAI,CAAEG,OAAO,IAC5CN,MAAM,CAACyB,aAAa,CAACnB,OAAO,EAAEJ,aAAa,CAACA,aAAa,EAAGO,OAAO,IACjEA,OAAO,CAACiB,OAAO,CAAC,kBAAkB,CAAC,GAC/BjB,OAAO,CAACkB,cAAc,CAAC1B,OAAO,CAAC2B,GAAG,CAClCnB,OAAO,CAACiB,OAAO,EACf,MAAM,EACNjB,OAAO,CAACiB,OAAO,CAAC,kBAAkB,CAAC,CACpC,CAAC,GACAjB,OAAO,CAAC,CACf;AAED;AACA,OAAO,MAAMoB,YAAY,gBAAG9B,IAAI,CAACqB,MAAM,EAAEf,MAAM,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.13.7",
3
+ "version": "0.13.9",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -181,6 +181,15 @@ export const basicAuth: {
181
181
  (self: ClientRequest, username: string, password: string): ClientRequest
182
182
  } = internal.basicAuth
183
183
 
184
+ /**
185
+ * @since 1.0.0
186
+ * @category combinators
187
+ */
188
+ export const bearerToken: {
189
+ (token: string): (self: ClientRequest) => ClientRequest
190
+ (self: ClientRequest, token: string): ClientRequest
191
+ } = internal.bearerToken
192
+
184
193
  /**
185
194
  * @since 1.0.0
186
195
  * @category combinators
@@ -99,6 +99,36 @@ export const FormDataError: (
99
99
  error: unknown
100
100
  ) => FormDataError = internal.FormDataError
101
101
 
102
+ /**
103
+ * @since 1.0.0
104
+ * @category fiber refs
105
+ */
106
+ export const maxParts: FiberRef.FiberRef<Option.Option<number>> = internal.maxParts
107
+
108
+ /**
109
+ * @since 1.0.0
110
+ * @category fiber refs
111
+ */
112
+ export const withMaxParts: {
113
+ (count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
114
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
115
+ } = internal.withMaxParts
116
+
117
+ /**
118
+ * @since 1.0.0
119
+ * @category fiber refs
120
+ */
121
+ export const maxFields: FiberRef.FiberRef<Option.Option<number>> = internal.maxFields
122
+
123
+ /**
124
+ * @since 1.0.0
125
+ * @category fiber refs
126
+ */
127
+ export const withMaxFields: {
128
+ (count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
129
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
130
+ } = internal.withMaxFields
131
+
102
132
  /**
103
133
  * @since 1.0.0
104
134
  * @category fiber refs
@@ -114,6 +144,21 @@ export const withMaxFieldSize: {
114
144
  <R, E, A>(effect: Effect.Effect<R, E, A>, size: FileSystem.SizeInput): Effect.Effect<R, E, A>
115
145
  } = internal.withMaxFieldSize
116
146
 
147
+ /**
148
+ * @since 1.0.0
149
+ * @category fiber refs
150
+ */
151
+ export const maxFiles: FiberRef.FiberRef<Option.Option<number>> = internal.maxFiles
152
+
153
+ /**
154
+ * @since 1.0.0
155
+ * @category fiber refs
156
+ */
157
+ export const withMaxFiles: {
158
+ (count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
159
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
160
+ } = internal.withMaxFiles
161
+
117
162
  /**
118
163
  * @since 1.0.0
119
164
  * @category fiber refs
package/src/HttpClient.ts CHANGED
@@ -1,32 +1,62 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as body from "@effect/platform/Http/Body"
5
+ import * as client from "@effect/platform/Http/Client"
6
+ import * as error from "@effect/platform/Http/ClientError"
7
+ import * as request from "@effect/platform/Http/ClientRequest"
8
+ import * as response from "@effect/platform/Http/ClientResponse"
9
+ import * as headers from "@effect/platform/Http/Headers"
10
+ import * as urlParams from "@effect/platform/Http/UrlParams"
4
11
 
5
- /**
6
- * @since 1.0.0
7
- */
8
- export * as body from "@effect/platform/Http/Body"
9
- /**
10
- * @since 1.0.0
11
- */
12
- export * as client from "@effect/platform/Http/Client"
13
- /**
14
- * @since 1.0.0
15
- */
16
- export * as request from "@effect/platform/Http/ClientRequest"
17
- /**
18
- * @since 1.0.0
19
- */
20
- export * as response from "@effect/platform/Http/ClientResponse"
21
- /**
22
- * @since 1.0.0
23
- */
24
- export * as error from "@effect/platform/Http/ClientError"
25
- /**
26
- * @since 1.0.0
27
- */
28
- export * as headers from "@effect/platform/Http/Headers"
29
- /**
30
- * @since 1.0.0
31
- */
32
- export * as urlParams from "@effect/platform/Http/UrlParams"
12
+ export {
13
+ /**
14
+ * @since 1.0.0
15
+ *
16
+ * - Docs: [Http/Body](https://effect-ts.github.io/platform/platform/Http/Body.ts.html)
17
+ * - Module: `@effect/platform/Http/Body`
18
+ */
19
+ body,
20
+ /**
21
+ * @since 1.0.0
22
+ *
23
+ * - Docs: [Http/Client](https://effect-ts.github.io/platform/platform/Http/Client.ts.html)
24
+ * - Module: `@effect/platform/Http/Client`
25
+ */
26
+ client,
27
+ /**
28
+ * @since 1.0.0
29
+ *
30
+ * - Docs: [Http/ClientError](https://effect-ts.github.io/platform/platform/Http/ClientError.ts.html)
31
+ * - Module: `@effect/platform/Http/ClientError`
32
+ */
33
+ error,
34
+ /**
35
+ * @since 1.0.0
36
+ *
37
+ * - Docs: [Http/Headers](https://effect-ts.github.io/platform/platform/Http/Headers.ts.html)
38
+ * - Module: `@effect/platform/Http/Headers`
39
+ */
40
+ headers,
41
+ /**
42
+ * @since 1.0.0
43
+ *
44
+ * - Docs: [Http/ClientRequest](https://effect-ts.github.io/platform/platform/Http/ClientRequest.ts.html)
45
+ * - Module: `@effect/platform/Http/ClientRequest`
46
+ */
47
+ request,
48
+ /**
49
+ * @since 1.0.0
50
+ *
51
+ * - Docs: [Http/ClientResponse](https://effect-ts.github.io/platform/platform/Http/ClientResponse.ts.html)
52
+ * - Module: `@effect/platform/Http/ClientResponse`
53
+ */
54
+ response,
55
+ /**
56
+ * @since 1.0.0
57
+ *
58
+ * - Docs: [Http/UrlParams](https://effect-ts.github.io/platform/platform/Http/UrlParams.ts.html)
59
+ * - Module: `@effect/platform/Http/UrlParams`
60
+ */
61
+ urlParams
62
+ }
package/src/HttpServer.ts CHANGED
@@ -1,44 +1,86 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as app from "@effect/platform/Http/App"
5
+ import * as body from "@effect/platform/Http/Body"
6
+ import * as formData from "@effect/platform/Http/FormData"
7
+ import * as headers from "@effect/platform/Http/Headers"
8
+ import * as middleware from "@effect/platform/Http/Middleware"
9
+ import * as router from "@effect/platform/Http/Router"
10
+ import * as error from "@effect/platform/Http/ServerError"
11
+ import * as request from "@effect/platform/Http/ServerRequest"
12
+ import * as response from "@effect/platform/Http/ServerResponse"
13
+ import * as urlParams from "@effect/platform/Http/UrlParams"
4
14
 
5
- /**
6
- * @since 1.0.0
7
- */
8
- export * as app from "@effect/platform/Http/App"
9
- /**
10
- * @since 1.0.0
11
- */
12
- export * as middleware from "@effect/platform/Http/Middleware"
13
- /**
14
- * @since 1.0.0
15
- */
16
- export * as request from "@effect/platform/Http/ServerRequest"
17
- /**
18
- * @since 1.0.0
19
- */
20
- export * as response from "@effect/platform/Http/ServerResponse"
21
- /**
22
- * @since 1.0.0
23
- */
24
- export * as error from "@effect/platform/Http/ServerError"
25
- /**
26
- * @since 1.0.0
27
- */
28
- export * as body from "@effect/platform/Http/Body"
29
- /**
30
- * @since 1.0.0
31
- */
32
- export * as formData from "@effect/platform/Http/FormData"
33
- /**
34
- * @since 1.0.0
35
- */
36
- export * as headers from "@effect/platform/Http/Headers"
37
- /**
38
- * @since 1.0.0
39
- */
40
- export * as router from "@effect/platform/Http/Router"
41
- /**
42
- * @since 1.0.0
43
- */
44
- export * as urlParams from "@effect/platform/Http/UrlParams"
15
+ export {
16
+ /**
17
+ * @since 1.0.0
18
+ *
19
+ * - Docs: [Http/App](https://effect-ts.github.io/platform/platform/Http/App.html)
20
+ * - Module: `@effect/platform/Http/App`
21
+ */
22
+ app,
23
+ /**
24
+ * @since 1.0.0
25
+ *
26
+ * - Docs: [Http/Body](https://effect-ts.github.io/platform/platform/Http/Body.html)
27
+ * - Module: `@effect/platform/Http/Body`
28
+ */
29
+ body,
30
+ /**
31
+ * @since 1.0.0
32
+ *
33
+ * - Docs: [Http/ServerError](https://effect-ts.github.io/platform/platform/Http/ServerError.html)
34
+ * - Module: `@effect/platform/Http/ServerError`
35
+ */
36
+ error,
37
+ /**
38
+ * @since 1.0.0
39
+ *
40
+ * - Docs: [Http/FormData](https://effect-ts.github.io/platform/platform/Http/FormData.html)
41
+ * - Module: `@effect/platform/Http/FormData`
42
+ */
43
+ formData,
44
+ /**
45
+ * @since 1.0.0
46
+ *
47
+ * - Docs: [Http/Headers](https://effect-ts.github.io/platform/platform/Http/Headers.html)
48
+ * - Module: `@effect/platform/Http/Headers`
49
+ */
50
+ headers,
51
+ /**
52
+ * @since 1.0.0
53
+ *
54
+ * - Docs: [Http/Middleware](https://effect-ts.github.io/platform/platform/Http/Middleware.html)
55
+ * - Module: `@effect/platform/Http/Middleware`
56
+ */
57
+ middleware,
58
+ /**
59
+ * @since 1.0.0
60
+ *
61
+ * - Docs: [Http/ServerRequest](https://effect-ts.github.io/platform/platform/Http/ServerRequest.html)
62
+ * - Module: `@effect/platform/Http/ServerRequest`
63
+ */
64
+ request,
65
+ /**
66
+ * @since 1.0.0
67
+ *
68
+ * - Docs: [Http/ServerResponse](https://effect-ts.github.io/platform/platform/Http/ServerResponse.html)
69
+ * - Module: `@effect/platform/Http/ServerResponse`
70
+ */
71
+ response,
72
+ /**
73
+ * @since 1.0.0
74
+ *
75
+ * - Docs: [Http/Router](https://effect-ts.github.io/platform/platform/Http/Router.html)
76
+ * - Module: `@effect/platform/Http/Router`
77
+ */
78
+ router,
79
+ /**
80
+ * @since 1.0.0
81
+ *
82
+ * - Docs: [Http/UrlParams](https://effect-ts.github.io/platform/platform/Http/UrlParams.html)
83
+ * - Module: `@effect/platform/Http/UrlParams`
84
+ */
85
+ urlParams
86
+ }
@@ -144,6 +144,12 @@ export const basicAuth = dual<
144
144
  (self: ClientRequest.ClientRequest, username: string, password: string) => ClientRequest.ClientRequest
145
145
  >(3, (self, username, password) => setHeader(self, "Authorization", `Basic ${btoa(`${username}:${password}`)}`))
146
146
 
147
+ /** @internal */
148
+ export const bearerToken = dual<
149
+ (token: string) => (self: ClientRequest.ClientRequest) => ClientRequest.ClientRequest,
150
+ (self: ClientRequest.ClientRequest, token: string) => ClientRequest.ClientRequest
151
+ >(2, (self, token) => setHeader(self, "Authorization", `Bearer ${token}`))
152
+
147
153
  /** @internal */
148
154
  export const accept = dual<
149
155
  (mediaType: string) => (self: ClientRequest.ClientRequest) => ClientRequest.ClientRequest,
@@ -29,10 +29,22 @@ export const FormDataError = (reason: FormData.FormDataError["reason"], error: u
29
29
  error
30
30
  })
31
31
 
32
+ /** @internal */
33
+ export const maxParts: FiberRef.FiberRef<Option.Option<number>> = globalValue(
34
+ "@effect/platform/Http/FormData/maxParts",
35
+ () => FiberRef.unsafeMake(Option.none<number>())
36
+ )
37
+
38
+ /** @internal */
39
+ export const withMaxParts = dual<
40
+ (count: Option.Option<number>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
41
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>) => Effect.Effect<R, E, A>
42
+ >(2, (effect, count) => Effect.locally(effect, maxParts, count))
43
+
32
44
  /** @internal */
33
45
  export const maxFieldSize: FiberRef.FiberRef<FileSystem.Size> = globalValue(
34
46
  "@effect/platform/Http/FormData/maxFieldSize",
35
- () => FiberRef.unsafeMake(FileSystem.Size(1024 * 1024))
47
+ () => FiberRef.unsafeMake(FileSystem.Size(10 * 1024 * 1024))
36
48
  )
37
49
 
38
50
  /** @internal */
@@ -41,6 +53,30 @@ export const withMaxFieldSize = dual<
41
53
  <R, E, A>(effect: Effect.Effect<R, E, A>, size: FileSystem.SizeInput) => Effect.Effect<R, E, A>
42
54
  >(2, (effect, size) => Effect.locally(effect, maxFieldSize, FileSystem.Size(size)))
43
55
 
56
+ /** @internal */
57
+ export const maxFields: FiberRef.FiberRef<Option.Option<number>> = globalValue(
58
+ "@effect/platform/Http/FormData/maxFields",
59
+ () => FiberRef.unsafeMake(Option.none<number>())
60
+ )
61
+
62
+ /** @internal */
63
+ export const withMaxFields = dual<
64
+ (count: Option.Option<number>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
65
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>) => Effect.Effect<R, E, A>
66
+ >(2, (effect, count) => Effect.locally(effect, maxFields, count))
67
+
68
+ /** @internal */
69
+ export const maxFiles: FiberRef.FiberRef<Option.Option<number>> = globalValue(
70
+ "@effect/platform/Http/FormData/maxFiles",
71
+ () => FiberRef.unsafeMake(Option.none<number>())
72
+ )
73
+
74
+ /** @internal */
75
+ export const withMaxFiles = dual<
76
+ (count: Option.Option<number>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
77
+ <R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>) => Effect.Effect<R, E, A>
78
+ >(2, (effect, count) => Effect.locally(effect, maxFiles, count))
79
+
44
80
  /** @internal */
45
81
  export const maxFileSize: FiberRef.FiberRef<Option.Option<FileSystem.Size>> = globalValue(
46
82
  "@effect/platform/Http/FormData/maxFileSize",
@@ -59,10 +95,7 @@ export const fieldMimeTypes: FiberRef.FiberRef<Chunk.Chunk<string>> = globalValu
59
95
  () => FiberRef.unsafeMake(Chunk.make("application/json"))
60
96
  )
61
97
 
62
- /**
63
- * @since 1.0.0
64
- * @category fiber refs
65
- */
98
+ /** @internal */
66
99
  export const withFieldMimeTypes = dual<
67
100
  (mimeTypes: ReadonlyArray<string>) => <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>,
68
101
  <R, E, A>(effect: Effect.Effect<R, E, A>, mimeTypes: ReadonlyArray<string>) => Effect.Effect<R, E, A>
@@ -8,11 +8,12 @@ import * as ServerRequest from "@effect/platform/Http/ServerRequest"
8
8
  export const make = <M extends Middleware.Middleware>(middleware: M): M => middleware
9
9
 
10
10
  /** @internal */
11
- export const logger = make((httpApp) =>
12
- Effect.withLogSpan(
13
- Effect.flatMap(
14
- ServerRequest.ServerRequest,
15
- (request) =>
11
+ export const logger = make((httpApp) => {
12
+ let counter = 0
13
+ return Effect.flatMap(
14
+ ServerRequest.ServerRequest,
15
+ (request) =>
16
+ Effect.withLogSpan(
16
17
  Effect.tap(
17
18
  Effect.tapErrorCause(httpApp, (cause) =>
18
19
  Effect.annotateLogs(Effect.log(cause), {
@@ -26,11 +27,11 @@ export const logger = make((httpApp) =>
26
27
  "http.url": request.url,
27
28
  "http.status": response.status
28
29
  })
29
- )
30
- ),
31
- "http.span"
30
+ ),
31
+ `http.span.${++counter}`
32
+ )
32
33
  )
33
- )
34
+ })
34
35
 
35
36
  /** @internal */
36
37
  export const tracer = make((httpApp) =>