@effect/platform 0.15.2 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/Http/Client.d.ts +6 -0
  2. package/Http/Client.d.ts.map +1 -1
  3. package/Http/Client.js +8 -2
  4. package/Http/Client.js.map +1 -1
  5. package/Http/IncomingMessage.d.ts +7 -1
  6. package/Http/IncomingMessage.d.ts.map +1 -1
  7. package/Http/IncomingMessage.js +44 -2
  8. package/Http/IncomingMessage.js.map +1 -1
  9. package/Http/Middleware.d.ts +5 -0
  10. package/Http/Middleware.d.ts.map +1 -1
  11. package/Http/Middleware.js +7 -1
  12. package/Http/Middleware.js.map +1 -1
  13. package/internal/http/client.d.ts.map +1 -1
  14. package/internal/http/client.js +12 -1
  15. package/internal/http/client.js.map +1 -1
  16. package/internal/http/middleware.js +10 -4
  17. package/internal/http/middleware.js.map +1 -1
  18. package/internal/http/router.d.ts.map +1 -1
  19. package/internal/http/router.js +14 -0
  20. package/internal/http/router.js.map +1 -1
  21. package/mjs/Http/Client.mjs +5 -0
  22. package/mjs/Http/Client.mjs.map +1 -1
  23. package/mjs/Http/IncomingMessage.mjs +42 -1
  24. package/mjs/Http/IncomingMessage.mjs.map +1 -1
  25. package/mjs/Http/Middleware.mjs +5 -0
  26. package/mjs/Http/Middleware.mjs.map +1 -1
  27. package/mjs/internal/http/client.mjs +10 -0
  28. package/mjs/internal/http/client.mjs.map +1 -1
  29. package/mjs/internal/http/middleware.mjs +8 -3
  30. package/mjs/internal/http/middleware.mjs.map +1 -1
  31. package/mjs/internal/http/router.mjs +14 -0
  32. package/mjs/internal/http/router.mjs.map +1 -1
  33. package/package.json +4 -4
  34. package/src/Http/Client.ts +8 -0
  35. package/src/Http/IncomingMessage.ts +61 -2
  36. package/src/Http/Middleware.ts +6 -0
  37. package/src/internal/http/client.ts +33 -1
  38. package/src/internal/http/middleware.ts +31 -7
  39. package/src/internal/http/router.ts +14 -0
@@ -94,6 +94,11 @@ export const retry = internal.retry;
94
94
  * @category schema
95
95
  */
96
96
  export const schemaFunction = internal.schemaFunction;
97
+ /**
98
+ * @since 1.0.0
99
+ * @category tracing
100
+ */
101
+ export const withB3Propagation = internal.withB3Propagation;
97
102
  /**
98
103
  * @since 1.0.0
99
104
  * @category mapping & sequencing
@@ -1 +1 @@
1
- {"version":3,"file":"Client.mjs","names":["internal","TypeId","Client","tag","layer","fetch","fetchOk","catchAll","catchTag","catchTags","filterOrElse","filterOrFail","filterStatus","filterStatusOk","make","map","mapEffect","mapRequest","mapRequestEffect","retry","schemaFunction","tap","tapRequest"],"sources":["../../src/Http/Client.ts"],"sourcesContent":[null],"mappings":"AAYA,OAAO,KAAKA,QAAQ,MAAM,uCAAuC;AAIjE;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAkCpD;;;;AAIA,OAAO,MAAMC,MAAM,GAAgDF,QAAQ,CAACG,GAAG;AAE/E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CJ,QAAQ,CAACI,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CL,QAAQ,CAACK,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,OAAO,GAA8CN,QAAQ,CAACM,OAAO;AAElF;;;;AAIA,OAAO,MAAMC,QAAQ,GAGjBP,QAAQ,CAACO,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,QAAQ,GAUjBR,QAAQ,CAACQ,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,SAAS,GA4ClBT,QAAQ,CAACS,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,YAAY,GAUrBV,QAAQ,CAACU,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAGrBX,QAAQ,CAACW,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAQrBZ,QAAQ,CAACY,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,cAAc,GAE4Bb,QAAQ,CAACa,cAAc;AAE9E;;;;AAIA,OAAO,MAAMC,IAAI,GAIKd,QAAQ,CAACc,IAAI;AAEnC;;;;AAIA,OAAO,MAAMC,GAAG,GAGZf,QAAQ,CAACe,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,SAAS,GAGlBhB,QAAQ,CAACgB,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,UAAU,GAKnBjB,QAAQ,CAACiB,UAAU;AAEvB;;;;AAIA,OAAO,MAAMC,gBAAgB,GAQzBlB,QAAQ,CAACkB,gBAAgB;AAE7B;;;;AAIA,OAAO,MAAMC,KAAK,GAGdnB,QAAQ,CAACmB,KAAK;AAElB;;;;AAIA,OAAO,MAAMC,cAAc,GAcvBpB,QAAQ,CAACoB,cAAc;AAE3B;;;;AAIA,OAAO,MAAMC,GAAG,GAGZrB,QAAQ,CAACqB,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,UAAU,GAQnBtB,QAAQ,CAACsB,UAAU"}
1
+ {"version":3,"file":"Client.mjs","names":["internal","TypeId","Client","tag","layer","fetch","fetchOk","catchAll","catchTag","catchTags","filterOrElse","filterOrFail","filterStatus","filterStatusOk","make","map","mapEffect","mapRequest","mapRequestEffect","retry","schemaFunction","withB3Propagation","tap","tapRequest"],"sources":["../../src/Http/Client.ts"],"sourcesContent":[null],"mappings":"AAaA,OAAO,KAAKA,QAAQ,MAAM,uCAAuC;AAIjE;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAkCpD;;;;AAIA,OAAO,MAAMC,MAAM,GAAgDF,QAAQ,CAACG,GAAG;AAE/E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CJ,QAAQ,CAACI,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,KAAK,GAA8CL,QAAQ,CAACK,KAAK;AAE9E;;;;AAIA,OAAO,MAAMC,OAAO,GAA8CN,QAAQ,CAACM,OAAO;AAElF;;;;AAIA,OAAO,MAAMC,QAAQ,GAGjBP,QAAQ,CAACO,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,QAAQ,GAUjBR,QAAQ,CAACQ,QAAQ;AAErB;;;;AAIA,OAAO,MAAMC,SAAS,GA4ClBT,QAAQ,CAACS,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,YAAY,GAUrBV,QAAQ,CAACU,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAGrBX,QAAQ,CAACW,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,YAAY,GAQrBZ,QAAQ,CAACY,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,cAAc,GAE4Bb,QAAQ,CAACa,cAAc;AAE9E;;;;AAIA,OAAO,MAAMC,IAAI,GAIKd,QAAQ,CAACc,IAAI;AAEnC;;;;AAIA,OAAO,MAAMC,GAAG,GAGZf,QAAQ,CAACe,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,SAAS,GAGlBhB,QAAQ,CAACgB,SAAS;AAEtB;;;;AAIA,OAAO,MAAMC,UAAU,GAKnBjB,QAAQ,CAACiB,UAAU;AAEvB;;;;AAIA,OAAO,MAAMC,gBAAgB,GAQzBlB,QAAQ,CAACkB,gBAAgB;AAE7B;;;;AAIA,OAAO,MAAMC,KAAK,GAGdnB,QAAQ,CAACmB,KAAK;AAElB;;;;AAIA,OAAO,MAAMC,cAAc,GAcvBpB,QAAQ,CAACoB,cAAc;AAE3B;;;;AAIA,OAAO,MAAMC,iBAAiB,GAC5BrB,QAAQ,CAACqB,iBAAiB;AAE5B;;;;AAIA,OAAO,MAAMC,GAAG,GAGZtB,QAAQ,CAACsB,GAAG;AAEhB;;;;AAIA,OAAO,MAAMC,UAAU,GAQnBvB,QAAQ,CAACuB,UAAU"}
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { dual } from "@effect/data/Function";
4
+ import * as Context from "@effect/data/Context";
5
+ import { dual, flow } from "@effect/data/Function";
5
6
  import * as Global from "@effect/data/GlobalValue";
6
7
  import * as Option from "@effect/data/Option";
7
8
  import * as Effect from "@effect/io/Effect";
8
9
  import * as FiberRef from "@effect/io/FiberRef";
9
10
  import * as FileSystem from "@effect/platform/FileSystem";
11
+ import * as ParseResult from "@effect/schema/ParseResult";
10
12
  import * as Schema from "@effect/schema/Schema";
11
13
  /**
12
14
  * @since 1.0.0
@@ -37,6 +39,45 @@ export const schemaHeaders = schema => {
37
39
  const parse = Schema.parse(schema);
38
40
  return self => parse(self.headers);
39
41
  };
42
+ const SpanSchema = /*#__PURE__*/Schema.struct({
43
+ traceId: Schema.string,
44
+ spanId: Schema.string,
45
+ parentSpanId: /*#__PURE__*/Schema.union(Schema.string, Schema.undefined)
46
+ });
47
+ /**
48
+ * @since 1.0.0
49
+ * @category schema
50
+ */
51
+ export const schemaExternalSpan = /*#__PURE__*/flow( /*#__PURE__*/schemaHeaders( /*#__PURE__*/Schema.union( /*#__PURE__*/Schema.transformOrFail( /*#__PURE__*/Schema.struct({
52
+ b3: Schema.NonEmpty
53
+ }), SpanSchema, _ => {
54
+ const parts = _.b3.split("-");
55
+ if (parts.length >= 2) {
56
+ return ParseResult.success({
57
+ traceId: parts[0],
58
+ spanId: parts[1],
59
+ parentSpanId: parts[3]
60
+ });
61
+ }
62
+ return ParseResult.failure(ParseResult.missing);
63
+ }, _ => ParseResult.success("")), /*#__PURE__*/Schema.transform( /*#__PURE__*/Schema.struct({
64
+ "x-b3-traceid": Schema.NonEmpty,
65
+ "x-b3-spanid": Schema.NonEmpty,
66
+ "x-b3-parentspanid": /*#__PURE__*/Schema.optional(Schema.NonEmpty)
67
+ }), SpanSchema, _ => ({
68
+ traceId: _["x-b3-traceid"],
69
+ spanId: _["x-b3-spanid"],
70
+ parentSpanId: _["x-b3-parentspanid"]
71
+ }), _ => ({
72
+ "x-b3-traceid": _.traceId,
73
+ "x-b3-spanid": _.spanId,
74
+ "x-b3-parentspanid": _.parentSpanId
75
+ })))), /*#__PURE__*/Effect.map(_ => ({
76
+ _tag: "ExternalSpan",
77
+ traceId: _.traceId,
78
+ spanId: _.spanId,
79
+ context: Context.empty()
80
+ })));
40
81
  /**
41
82
  * @since 1.0.0
42
83
  * @category fiber refs
@@ -1 +1 @@
1
- {"version":3,"file":"IncomingMessage.mjs","names":["dual","Global","Option","Effect","FiberRef","FileSystem","Schema","TypeId","Symbol","for","schemaBodyJson","schema","parse","self","flatMap","json","schemaBodyUrlParams","urlParamsBody","_","Object","fromEntries","schemaHeaders","headers","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","map","Size"],"sources":["../../src/Http/IncomingMessage.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,0BAA0B;AAClD,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,UAAU,MAAM,6BAA6B;AAIzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAG/C;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,uCAAuC,CAAC;AAsBzE;;;;AAIA,OAAO,MAAMC,cAAc,GAAUC,MAA2B,IAAI;EAClE,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACE,IAAI,EAAEH,KAAK,CAAC;AACpC,CAAC;AAED;;;;AAIA,OAAO,MAAMI,mBAAmB,GAAmDL,MAA2B,IAAI;EAChH,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IACjCV,MAAM,CAACW,OAAO,CAACD,IAAI,CAACI,aAAa,EAAGC,CAAC,IAAKN,KAAK,CAACO,MAAM,CAACC,WAAW,CAACF,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;AAIA,OAAO,MAAMG,aAAa,GAAmDV,MAA2B,IAAI;EAC1G,MAAMC,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACD,MAAM,CAAC;EAClC,OAAWE,IAAwB,IAAsDD,KAAK,CAACC,IAAI,CAACS,OAAO,CAAC;AAC9G,CAAC;AAED;;;;AAIA,OAAO,MAAMC,WAAW,gBAAsDtB,MAAM,CAACuB,WAAW,CAC9F,mDAAmD,EACnD,MAAMpB,QAAQ,CAACqB,UAAU,CAACvB,MAAM,CAACwB,IAAI,EAAmB,CAAC,CAC1D;AAED;;;;AAIA,OAAO,MAAMC,eAAe,gBAAG3B,IAAI,CAGjC,CAAC,EAAE,CAAC4B,MAAM,EAAEC,IAAI,KAAK1B,MAAM,CAAC2B,OAAO,CAACF,MAAM,EAAEL,WAAW,EAAErB,MAAM,CAAC6B,GAAG,CAACF,IAAI,EAAExB,UAAU,CAAC2B,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"IncomingMessage.mjs","names":["Context","dual","flow","Global","Option","Effect","FiberRef","FileSystem","ParseResult","Schema","TypeId","Symbol","for","schemaBodyJson","schema","parse","self","flatMap","json","schemaBodyUrlParams","urlParamsBody","_","Object","fromEntries","schemaHeaders","headers","SpanSchema","struct","traceId","string","spanId","parentSpanId","union","undefined","schemaExternalSpan","transformOrFail","b3","NonEmpty","parts","split","length","success","failure","missing","transform","optional","map","_tag","context","empty","maxBodySize","globalValue","unsafeMake","none","withMaxBodySize","effect","size","locally","Size"],"sources":["../../src/Http/IncomingMessage.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -4,6 +4,11 @@ import * as internal from "@effect/platform/internal/http/middleware";
4
4
  * @category constructors
5
5
  */
6
6
  export const make = internal.make;
7
+ /**
8
+ * @since 1.0.0
9
+ * @category constructors
10
+ */
11
+ export const b3Response = internal.b3Response;
7
12
  /**
8
13
  * @since 1.0.0
9
14
  * @category constructors
@@ -1 +1 @@
1
- {"version":3,"file":"Middleware.mjs","names":["internal","make","logger","tracer","loggerTracer","xForwardedHeaders"],"sources":["../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,QAAQ,MAAM,2CAA2C;AAsBrE;;;;AAIA,OAAO,MAAMC,IAAI,GAA+CD,QAAQ,CAACC,IAAI;AAE7E;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DF,QAAQ,CAACE,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DH,QAAQ,CAACG,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,YAAY,GAA4DJ,QAAQ,CAACI,YAAY;AAE1G;;;;AAIA,OAAO,MAAMC,iBAAiB,GAA4DL,QAAQ,CAACK,iBAAiB"}
1
+ {"version":3,"file":"Middleware.mjs","names":["internal","make","b3Response","logger","tracer","loggerTracer","xForwardedHeaders"],"sources":["../../src/Http/Middleware.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,QAAQ,MAAM,2CAA2C;AAsBrE;;;;AAIA,OAAO,MAAMC,IAAI,GAA+CD,QAAQ,CAACC,IAAI;AAE7E;;;;AAIA,OAAO,MAAMC,UAAU,GAA4DF,QAAQ,CAACE,UAAU;AAEtG;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DH,QAAQ,CAACG,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,MAAM,GAA4DJ,QAAQ,CAACI,MAAM;AAE9F;;;;AAIA,OAAO,MAAMC,YAAY,GAA4DL,QAAQ,CAACK,YAAY;AAE1G;;;;AAIA,OAAO,MAAMC,iBAAiB,GAA4DN,QAAQ,CAACM,iBAAiB"}
@@ -1,8 +1,10 @@
1
1
  import * as Context from "@effect/data/Context";
2
2
  import { dual } from "@effect/data/Function";
3
+ import * as Option from "@effect/data/Option";
3
4
  import { pipeArguments } from "@effect/data/Pipeable";
4
5
  import * as Effect from "@effect/io/Effect";
5
6
  import * as Layer from "@effect/io/Layer";
7
+ import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
6
8
  import * as Method from "@effect/platform/Http/Method";
7
9
  import * as UrlParams from "@effect/platform/Http/UrlParams";
8
10
  import * as internalBody from "@effect/platform/internal/http/body";
@@ -98,6 +100,14 @@ export const mapRequest = /*#__PURE__*/dual(2, (self, f) => setProto(request =>
98
100
  /** @internal */
99
101
  export const mapRequestEffect = /*#__PURE__*/dual(2, (self, f) => setProto(request => Effect.flatMap(f(request), self)));
100
102
  /** @internal */
103
+ export const withB3Propagation = self => setProto(req => Effect.tap(res => Effect.ignore(Effect.flatMap(IncomingMessage.schemaExternalSpan(res), Effect.withParentSpanScoped)))(Effect.flatMap(self)(Effect.map(Effect.currentSpan, Option.match({
104
+ onNone: () => req,
105
+ onSome: span => {
106
+ const parentId = span.parent._tag === "Some" ? `-${span.parent.value.spanId}` : "";
107
+ return internalRequest.setHeader(req, "b3", `${span.traceId}-${span.spanId}-1${parentId}`);
108
+ }
109
+ })))));
110
+ /** @internal */
101
111
  export const retry = /*#__PURE__*/dual(2, (self, policy) => setProto(request => Effect.retry(self(request), policy)));
102
112
  /** @internal */
103
113
  export const schemaFunction = /*#__PURE__*/dual(2, (self, schema) => {
@@ -1 +1 @@
1
- {"version":3,"file":"client.mjs","names":["Context","dual","pipeArguments","Effect","Layer","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","TypeId","Symbol","for","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","fetch","options","request","flatMap","makeUrl","url","urlParams","_","requestError","reason","error","suspend","headers","Headers","send","body","map","tryPromise","try","signal","globalThis","method","catch","fromWeb","hasBody","convertBody","undefined","_tag","formData","toReadableStream","stream","fetchOk","filterStatusOk","layer","succeed","catchTag","self","catchTags","cases","catchAll","filterOrElse","orElse","filterOrFail","orFailWith","filterStatus","response","status","responseError","mapEffect","mapRequest","mapRequestEffect","retry","policy","schemaFunction","schema","encode","a","tryMap","TextEncoder","JSON","stringify","setBody","uint8Array","tap","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"client.mjs","names":["Context","dual","Option","pipeArguments","Effect","Layer","IncomingMessage","Method","UrlParams","internalBody","internalError","internalRequest","internalResponse","Schema","Stream","TypeId","Symbol","for","tag","Tag","clientProto","pipe","arguments","setProto","f","Object","setPrototypeOf","make","fetch","options","request","flatMap","makeUrl","url","urlParams","_","requestError","reason","error","suspend","headers","Headers","send","body","map","tryPromise","try","signal","globalThis","method","catch","fromWeb","hasBody","convertBody","undefined","_tag","formData","toReadableStream","stream","fetchOk","filterStatusOk","layer","succeed","catchTag","self","catchTags","cases","catchAll","filterOrElse","orElse","filterOrFail","orFailWith","filterStatus","response","status","responseError","mapEffect","mapRequest","mapRequestEffect","withB3Propagation","req","tap","res","ignore","schemaExternalSpan","withParentSpanScoped","currentSpan","match","onNone","onSome","span","parentId","parent","value","spanId","setHeader","traceId","retry","policy","schemaFunction","schema","encode","a","tryMap","TextEncoder","JSON","stringify","setBody","uint8Array","tapRequest","zipRight"],"sources":["../../../src/internal/http/client.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { flow } from "@effect/data/Function";
2
2
  import * as Effect from "@effect/io/Effect";
3
3
  import * as Headers from "@effect/platform/Http/Headers";
4
+ import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
4
5
  import * as ServerRequest from "@effect/platform/Http/ServerRequest";
6
+ import * as ServerResponse from "@effect/platform/Http/ServerResponse";
5
7
  /** @internal */
6
8
  export const make = middleware => middleware;
7
9
  /** @internal */
@@ -18,12 +20,15 @@ export const logger = /*#__PURE__*/make(httpApp => {
18
20
  })), `http.span.${++counter}`));
19
21
  });
20
22
  /** @internal */
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}`, {
23
+ export const tracer = /*#__PURE__*/make(httpApp => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.flatMap(Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined), parent => Effect.withSpan(Effect.tap(httpApp, response => Effect.annotateCurrentSpan("http.status", response.status)), `http ${request.method}`, {
22
24
  attributes: {
23
25
  "http.method": request.method,
24
26
  "http.url": request.url
25
- }
26
- })));
27
+ },
28
+ parent
29
+ }))));
30
+ /** @internal */
31
+ export const b3Response = /*#__PURE__*/make(httpApp => Effect.flatMap(Effect.currentSpan, span => span._tag === "Some" ? Effect.map(httpApp, res => ServerResponse.setHeader(res, "b3", `${span.value.traceId}-${span.value.spanId}-1${span.value.parent._tag === "Some" ? `-${span.value.parent.value.spanId}` : ""}`)) : httpApp));
27
32
  /** @internal */
28
33
  export const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect.updateService(httpApp, ServerRequest.ServerRequest, request => request.headers["x-forwarded-host"] ? request.replaceHeaders(Headers.set(request.headers, "host", request.headers["x-forwarded-host"])) : request));
29
34
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","ServerRequest","make","middleware","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","withSpan","tap","response","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,MAAM,CAACL,OAAO,EAAGM,IAAI,IAC1BA,IAAI,CAACC,IAAI,KAAK,SAAS,GACrBb,MAAM,CAACc,YAAY,CAACd,MAAM,CAACe,GAAG,CAACH,IAAI,CAACI,KAAK,CAAC,EAAE;IAC1C,aAAa,EAAEP,OAAO,CAACQ,MAAM;IAC7B,UAAU,EAAER,OAAO,CAACS,GAAG;IACvB,aAAa,EAAE;GAChB,CAAC,GACFlB,MAAM,CAACc,YAAY,CAACd,MAAM,CAACe,GAAG,CAAC,EAAE,CAAC,EAAE;IAClC,aAAa,EAAEN,OAAO,CAACQ,MAAM;IAC7B,UAAU,EAAER,OAAO,CAACS,GAAG;IACvB,aAAa,EAAEN,IAAI,CAACO,KAAK,CAACC;GAC3B,CAAC,CAAC,EACP,aAAa,EAAEb,OAAO,EAAE,CACzB,CACJ;AACH,CAAC,CAAC;AAEF;AACA,OAAO,MAAMc,MAAM,gBAAGlB,IAAI,CAAEG,OAAO,IACjCN,MAAM,CAACQ,OAAO,CACZN,aAAa,CAACA,aAAa,EAC1BO,OAAO,IACNT,MAAM,CAACsB,QAAQ,CACbtB,MAAM,CAACuB,GAAG,CACRjB,OAAO,EACNkB,QAAQ,IAAKxB,MAAM,CAACyB,mBAAmB,CAAC,aAAa,EAAED,QAAQ,CAACJ,MAAM,CAAC,CACzE,EACD,QAAQX,OAAO,CAACQ,MAAM,EAAE,EACxB;EAAES,UAAU,EAAE;IAAE,aAAa,EAAEjB,OAAO,CAACQ,MAAM;IAAE,UAAU,EAAER,OAAO,CAACS;EAAG;AAAE,CAAE,CAC3E,CACJ,CACF;AAED;AACA,OAAO,MAAMS,iBAAiB,gBAAGxB,IAAI,CAAEG,OAAO,IAC5CN,MAAM,CAAC4B,aAAa,CAACtB,OAAO,EAAEJ,aAAa,CAACA,aAAa,EAAGO,OAAO,IACjEA,OAAO,CAACoB,OAAO,CAAC,kBAAkB,CAAC,GAC/BpB,OAAO,CAACqB,cAAc,CAAC7B,OAAO,CAAC8B,GAAG,CAClCtB,OAAO,CAACoB,OAAO,EACf,MAAM,EACNpB,OAAO,CAACoB,OAAO,CAAC,kBAAkB,CAAC,CACpC,CAAC,GACApB,OAAO,CAAC,CACf;AAED;AACA,OAAO,MAAMuB,YAAY,gBAAGjC,IAAI,CAACsB,MAAM,EAAEhB,MAAM,CAAC"}
1
+ {"version":3,"file":"middleware.mjs","names":["flow","Effect","Headers","IncomingMessage","ServerRequest","ServerResponse","make","middleware","logger","httpApp","counter","flatMap","request","withLogSpan","onExit","exit","_tag","annotateLogs","log","cause","method","url","value","status","tracer","orElseSucceed","schemaExternalSpan","undefined","parent","withSpan","tap","response","annotateCurrentSpan","attributes","b3Response","currentSpan","span","map","res","setHeader","traceId","spanId","xForwardedHeaders","updateService","headers","replaceHeaders","set","loggerTracer"],"sources":["../../../src/internal/http/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -3,6 +3,7 @@ import * as Context from "@effect/data/Context";
3
3
  import * as Equal from "@effect/data/Equal";
4
4
  import { dual } from "@effect/data/Function";
5
5
  import * as Hash from "@effect/data/Hash";
6
+ import * as Inspectable from "@effect/data/Inspectable";
6
7
  import * as Option from "@effect/data/Option";
7
8
  import { pipeArguments } from "@effect/data/Pipeable";
8
9
  import * as Effect from "@effect/io/Effect";
@@ -60,6 +61,19 @@ class RouterImpl {
60
61
  [Hash.symbol]() {
61
62
  return Hash.random(this);
62
63
  }
64
+ toJSON() {
65
+ return {
66
+ _id: "Router",
67
+ routes: this.routes.toJSON(),
68
+ mounts: this.mounts.toJSON()
69
+ };
70
+ }
71
+ toString() {
72
+ return Inspectable.toString(this);
73
+ }
74
+ [Inspectable.NodeInspectSymbol]() {
75
+ return this.toJSON();
76
+ }
63
77
  }
64
78
  const toHttpApp = self => {
65
79
  const router = FindMyWay();
@@ -1 +1 @@
1
- {"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"router.mjs","names":["Chunk","Context","Equal","dual","Hash","Inspectable","Option","pipeArguments","Effect","Error","ServerRequest","Schema","Channel","Sink","Stream","FindMyWay","TypeId","Symbol","for","RouteTypeId","RouteContextTypeId","RouteContext","Tag","params","map","_","searchParams","schemaParams","schema","parse","flatMap","RouterImpl","constructor","routes","mounts","_tag","EffectTypeId","undefined","StreamTypeId","SinkTypeId","ChannelTypeId","pipe","arguments","commit","httpApp","toHttpApp","symbol","that","random","toJSON","_id","toString","NodeInspectSymbol","self","router","toReadonlyArray","mountsLen","length","forEach","route","fn","method","all","path","on","request","i","app","url","startsWith","provideService","sliceRequestUrl","result","find","fail","RouteNotFound","handler","prefix","value","mapInputContext","context","add","RouteContextImpl","prefexLen","setUrl","slice","RouteImpl","none","empty","fromIterable","makeRoute","concat","appendAll","removeTrailingSlash","endsWith","prefixAll","orElse","some","mount","mountApp","append","get","post","put","patch","del","head","options","use","f","catchAll","catchAllCause","catchTag","k","catchTags","cases","tag","service","provideServiceEffect","effect"],"sources":["../../../src/internal/http/router.ts"],"sourcesContent":[null],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.15.2",
3
+ "version": "0.16.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,9 +29,9 @@
29
29
  "path-browserify": "^1.0.1"
30
30
  },
31
31
  "peerDependencies": {
32
- "@effect/data": "^0.18.4",
33
- "@effect/io": "^0.40.0",
34
- "@effect/schema": "^0.35.0",
32
+ "@effect/data": "^0.18.5",
33
+ "@effect/io": "^0.40.1",
34
+ "@effect/schema": "^0.36.1",
35
35
  "@effect/stream": "^0.36.0"
36
36
  }
37
37
  }
@@ -7,6 +7,7 @@ import type * as Predicate from "@effect/data/Predicate"
7
7
  import type * as Effect from "@effect/io/Effect"
8
8
  import type * as Layer from "@effect/io/Layer"
9
9
  import type * as Schedule from "@effect/io/Schedule"
10
+ import type * as Scope from "@effect/io/Scope"
10
11
  import type * as Error from "@effect/platform/Http/ClientError"
11
12
  import type * as ClientRequest from "@effect/platform/Http/ClientRequest"
12
13
  import type * as ClientResponse from "@effect/platform/Http/ClientResponse"
@@ -280,6 +281,13 @@ export const schemaFunction: {
280
281
  ) => (a: SA) => Effect.Effect<R, Error.RequestError | ParseResult.ParseError | E, A>
281
282
  } = internal.schemaFunction
282
283
 
284
+ /**
285
+ * @since 1.0.0
286
+ * @category tracing
287
+ */
288
+ export const withB3Propagation: <R, E>(self: Client.WithResponse<R, E>) => Client.WithResponse<R | Scope.Scope, E> =
289
+ internal.withB3Propagation
290
+
283
291
  /**
284
292
  * @since 1.0.0
285
293
  * @category mapping & sequencing
@@ -1,15 +1,17 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { dual } from "@effect/data/Function"
4
+ import * as Context from "@effect/data/Context"
5
+ import { dual, flow } from "@effect/data/Function"
5
6
  import * as Global from "@effect/data/GlobalValue"
6
7
  import * as Option from "@effect/data/Option"
7
8
  import * as Effect from "@effect/io/Effect"
8
9
  import * as FiberRef from "@effect/io/FiberRef"
10
+ import type { ExternalSpan } from "@effect/io/Tracer"
9
11
  import * as FileSystem from "@effect/platform/FileSystem"
10
12
  import type * as Headers from "@effect/platform/Http/Headers"
11
13
  import type * as UrlParams from "@effect/platform/Http/UrlParams"
12
- import type * as ParseResult from "@effect/schema/ParseResult"
14
+ import * as ParseResult from "@effect/schema/ParseResult"
13
15
  import * as Schema from "@effect/schema/Schema"
14
16
  import type * as Stream from "@effect/stream/Stream"
15
17
 
@@ -68,6 +70,63 @@ export const schemaHeaders = <I extends Readonly<Record<string, string>>, A>(sch
68
70
  return <E>(self: IncomingMessage<E>): Effect.Effect<never, ParseResult.ParseError, A> => parse(self.headers)
69
71
  }
70
72
 
73
+ const SpanSchema = Schema.struct({
74
+ traceId: Schema.string,
75
+ spanId: Schema.string,
76
+ parentSpanId: Schema.union(Schema.string, Schema.undefined)
77
+ })
78
+
79
+ /**
80
+ * @since 1.0.0
81
+ * @category schema
82
+ */
83
+ export const schemaExternalSpan = flow(
84
+ schemaHeaders(Schema.union(
85
+ Schema.transformOrFail(
86
+ Schema.struct({
87
+ b3: Schema.NonEmpty
88
+ }),
89
+ SpanSchema,
90
+ (_) => {
91
+ const parts = _.b3.split("-")
92
+ if (parts.length >= 2) {
93
+ return ParseResult.success({
94
+ traceId: parts[0],
95
+ spanId: parts[1],
96
+ parentSpanId: parts[3]
97
+ })
98
+ }
99
+ return ParseResult.failure(ParseResult.missing)
100
+ },
101
+ (_) => ParseResult.success("")
102
+ ),
103
+ Schema.transform(
104
+ Schema.struct({
105
+ "x-b3-traceid": Schema.NonEmpty,
106
+ "x-b3-spanid": Schema.NonEmpty,
107
+ "x-b3-parentspanid": Schema.optional(Schema.NonEmpty)
108
+ }),
109
+ SpanSchema,
110
+ (_) => ({
111
+ traceId: _["x-b3-traceid"],
112
+ spanId: _["x-b3-spanid"],
113
+ parentSpanId: _["x-b3-parentspanid"]
114
+ }),
115
+ (_) => ({
116
+ "x-b3-traceid": _.traceId,
117
+ "x-b3-spanid": _.spanId,
118
+ "x-b3-parentspanid": _.parentSpanId
119
+ })
120
+ )
121
+ )),
122
+ Effect.map((_): ExternalSpan => ({
123
+ _tag: "ExternalSpan",
124
+ traceId: _.traceId,
125
+ spanId: _.spanId,
126
+ context: Context.empty()
127
+ }))
128
+ )
129
+
71
130
  /**
72
131
  * @since 1.0.0
73
132
  * @category fiber refs
@@ -30,6 +30,12 @@ export declare namespace Middleware {
30
30
  */
31
31
  export const make: <M extends Middleware>(middleware: M) => M = internal.make
32
32
 
33
+ /**
34
+ * @since 1.0.0
35
+ * @category constructors
36
+ */
37
+ export const b3Response: <R, E>(httpApp: App.Default<R, E>) => App.Default<R, E> = internal.b3Response
38
+
33
39
  /**
34
40
  * @since 1.0.0
35
41
  * @category constructors
@@ -1,15 +1,18 @@
1
1
  import * as Context from "@effect/data/Context"
2
- import { dual } from "@effect/data/Function"
2
+ import { dual, pipe } from "@effect/data/Function"
3
+ import * as Option from "@effect/data/Option"
3
4
  import { pipeArguments } from "@effect/data/Pipeable"
4
5
  import type * as Predicate from "@effect/data/Predicate"
5
6
  import * as Effect from "@effect/io/Effect"
6
7
  import * as Layer from "@effect/io/Layer"
7
8
  import type * as Schedule from "@effect/io/Schedule"
9
+ import type * as Scope from "@effect/io/Scope"
8
10
  import type * as Body from "@effect/platform/Http/Body"
9
11
  import type * as Client from "@effect/platform/Http/Client"
10
12
  import type * as Error from "@effect/platform/Http/ClientError"
11
13
  import type * as ClientRequest from "@effect/platform/Http/ClientRequest"
12
14
  import type * as ClientResponse from "@effect/platform/Http/ClientResponse"
15
+ import * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
13
16
  import * as Method from "@effect/platform/Http/Method"
14
17
  import * as UrlParams from "@effect/platform/Http/UrlParams"
15
18
  import * as internalBody from "@effect/platform/internal/http/body"
@@ -359,6 +362,35 @@ export const mapRequestEffect = dual<
359
362
  ) => Client.Client<R | R2, E | E2, A>
360
363
  >(2, (self, f) => setProto((request) => Effect.flatMap(f(request), self)))
361
364
 
365
+ /** @internal */
366
+ export const withB3Propagation = <R, E>(
367
+ self: Client.Client.WithResponse<R, E>
368
+ ): Client.Client.WithResponse<R | Scope.Scope, E> =>
369
+ setProto((req) =>
370
+ pipe(
371
+ Effect.map(
372
+ Effect.currentSpan,
373
+ Option.match({
374
+ onNone: () => req,
375
+ onSome: (span) => {
376
+ const parentId = span.parent._tag === "Some" ? `-${span.parent.value.spanId}` : ""
377
+ return internalRequest.setHeader(
378
+ req,
379
+ "b3",
380
+ `${span.traceId}-${span.spanId}-1${parentId}`
381
+ )
382
+ }
383
+ })
384
+ ),
385
+ Effect.flatMap(self),
386
+ Effect.tap((res) =>
387
+ Effect.ignore(
388
+ Effect.flatMap(IncomingMessage.schemaExternalSpan(res), Effect.withParentSpanScoped)
389
+ )
390
+ )
391
+ )
392
+ )
393
+
362
394
  /** @internal */
363
395
  export const retry: {
364
396
  <R1, E extends E0, E0, B>(policy: Schedule.Schedule<R1, E0, B>): <R, A>(
@@ -1,8 +1,10 @@
1
1
  import { flow } from "@effect/data/Function"
2
2
  import * as Effect from "@effect/io/Effect"
3
3
  import * as Headers from "@effect/platform/Http/Headers"
4
+ import * as IncomingMessage from "@effect/platform/Http/IncomingMessage"
4
5
  import type * as Middleware from "@effect/platform/Http/Middleware"
5
6
  import * as ServerRequest from "@effect/platform/Http/ServerRequest"
7
+ import * as ServerResponse from "@effect/platform/Http/ServerResponse"
6
8
 
7
9
  /** @internal */
8
10
  export const make = <M extends Middleware.Middleware>(middleware: M): M => middleware
@@ -36,17 +38,39 @@ export const tracer = make((httpApp) =>
36
38
  Effect.flatMap(
37
39
  ServerRequest.ServerRequest,
38
40
  (request) =>
39
- Effect.withSpan(
40
- Effect.tap(
41
- httpApp,
42
- (response) => Effect.annotateCurrentSpan("http.status", response.status)
43
- ),
44
- `http ${request.method}`,
45
- { attributes: { "http.method": request.method, "http.url": request.url } }
41
+ Effect.flatMap(
42
+ Effect.orElseSucceed(IncomingMessage.schemaExternalSpan(request), () => undefined),
43
+ (parent) =>
44
+ Effect.withSpan(
45
+ Effect.tap(
46
+ httpApp,
47
+ (response) => Effect.annotateCurrentSpan("http.status", response.status)
48
+ ),
49
+ `http ${request.method}`,
50
+ { attributes: { "http.method": request.method, "http.url": request.url }, parent }
51
+ )
46
52
  )
47
53
  )
48
54
  )
49
55
 
56
+ /** @internal */
57
+ export const b3Response = make((httpApp) =>
58
+ Effect.flatMap(
59
+ Effect.currentSpan,
60
+ (span) =>
61
+ span._tag === "Some"
62
+ ? Effect.map(httpApp, (res) =>
63
+ ServerResponse.setHeader(
64
+ res,
65
+ "b3",
66
+ `${span.value.traceId}-${span.value.spanId}-1${
67
+ span.value.parent._tag === "Some" ? `-${span.value.parent.value.spanId}` : ""
68
+ }`
69
+ ))
70
+ : httpApp
71
+ )
72
+ )
73
+
50
74
  /** @internal */
51
75
  export const xForwardedHeaders = make((httpApp) =>
52
76
  Effect.updateService(httpApp, ServerRequest.ServerRequest, (request) =>
@@ -3,6 +3,7 @@ import * as Context from "@effect/data/Context"
3
3
  import * as Equal from "@effect/data/Equal"
4
4
  import { dual } from "@effect/data/Function"
5
5
  import * as Hash from "@effect/data/Hash"
6
+ import * as Inspectable from "@effect/data/Inspectable"
6
7
  import * as Option from "@effect/data/Option"
7
8
  import { pipeArguments } from "@effect/data/Pipeable"
8
9
  import type * as Cause from "@effect/io/Cause"
@@ -91,6 +92,19 @@ class RouterImpl<R, E> implements Router.Router<R, E> {
91
92
  [Hash.symbol](this: RouterImpl<R, E>): number {
92
93
  return Hash.random(this)
93
94
  }
95
+ toJSON() {
96
+ return {
97
+ _id: "Router",
98
+ routes: this.routes.toJSON(),
99
+ mounts: this.mounts.toJSON()
100
+ }
101
+ }
102
+ toString() {
103
+ return Inspectable.toString(this)
104
+ }
105
+ [Inspectable.NodeInspectSymbol]() {
106
+ return this.toJSON()
107
+ }
94
108
  }
95
109
 
96
110
  const toHttpApp = <R, E>(