@effect/platform 0.50.2 → 0.50.4

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.
@@ -36,8 +36,8 @@ export const WorkerManager = /*#__PURE__*/Context.GenericTag("@effect/platform/W
36
36
  /** @internal */
37
37
  export const Spawner = /*#__PURE__*/Context.GenericTag("@effect/platform/Worker/Spawner");
38
38
  /** @internal */
39
- export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
40
- const platform = yield* _(PlatformWorker);
39
+ export const makeManager = /*#__PURE__*/Effect.gen(function* () {
40
+ const platform = yield* PlatformWorker;
41
41
  let idCounter = 0;
42
42
  return WorkerManager.of({
43
43
  [WorkerManagerTypeId]: WorkerManagerTypeId,
@@ -48,20 +48,20 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
48
48
  queue,
49
49
  transfers = _ => []
50
50
  }) {
51
- return Effect.gen(function* (_) {
52
- const spawn = yield* _(Spawner);
51
+ return Effect.gen(function* () {
52
+ const spawn = yield* Spawner;
53
53
  const id = idCounter++;
54
54
  let requestIdCounter = 0;
55
- const semaphore = yield* _(Effect.makeSemaphore(permits));
55
+ const semaphore = yield* Effect.makeSemaphore(permits);
56
56
  const requestMap = new Map();
57
- const sendQueue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
57
+ const sendQueue = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
58
58
  const collector = Transferable.unsafeMakeCollector();
59
59
  const wrappedEncode = encode ? message => Effect.zipRight(collector.clear, Effect.provideService(encode(message), Transferable.Collector, collector)) : Effect.succeed;
60
- const outbound = queue ?? (yield* _(defaultQueue()));
61
- yield* _(Effect.addFinalizer(() => outbound.shutdown));
62
- yield* _(Effect.gen(function* (_) {
63
- const readyLatch = yield* _(Deferred.make());
64
- const backing = yield* _(platform.spawn(spawn(id)));
60
+ const outbound = queue ?? (yield* defaultQueue());
61
+ yield Effect.addFinalizer(() => outbound.shutdown);
62
+ yield Effect.gen(function* () {
63
+ const readyLatch = yield* Deferred.make();
64
+ const backing = yield* platform.spawn(spawn(id));
65
65
  const send = pipe(sendQueue.take, Effect.flatMap(([message, transfers]) => backing.send(message, transfers)), Effect.forever);
66
66
  const take = pipe(Queue.take(backing.queue), Effect.flatMap(msg => {
67
67
  if (msg[0] === 0) {
@@ -69,16 +69,16 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
69
69
  }
70
70
  return handleMessage(msg[1]);
71
71
  }), Effect.forever);
72
- return yield* _(Effect.all([Fiber.join(backing.fiber), Effect.zipRight(Deferred.await(readyLatch), send), take], {
72
+ return yield* Effect.all([Fiber.join(backing.fiber), Effect.zipRight(Deferred.await(readyLatch), send), take], {
73
73
  concurrency: "unbounded"
74
- }));
75
- }), Effect.scoped, Effect.onError(cause => Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(cause)))), Effect.retry(Schedule.exponential("250 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.annotateLogs({
74
+ });
75
+ }).pipe(Effect.scoped, Effect.onError(cause => Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(cause)))), Effect.retry(Schedule.exponential("250 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.annotateLogs({
76
76
  package: "@effect/platform",
77
77
  module: "Worker"
78
78
  }), Effect.interruptible, Effect.forkScoped);
79
- yield* _(Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(Cause.empty)), {
79
+ yield Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(Cause.empty)), {
80
80
  discard: true
81
- }), Effect.sync(() => requestMap.clear()))));
81
+ }), Effect.sync(() => requestMap.clear())));
82
82
  const handleMessage = response => Effect.suspend(() => {
83
83
  const queue = requestMap.get(response[0]);
84
84
  if (!queue) return Effect.void;
@@ -117,7 +117,7 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
117
117
  return Stream.fromChannel(loop);
118
118
  });
119
119
  const executeEffect = request => Effect.acquireUseRelease(executeAcquire(request), ([, queue]) => Effect.flatMap(Queue.take(queue), Exit.map(Arr.unsafeGet(0))), executeRelease);
120
- yield* _(semaphore.take(1), Effect.zipRight(outbound.take), Effect.flatMap(([id, request, span]) => pipe(Effect.suspend(() => {
120
+ yield semaphore.take(1).pipe(Effect.zipRight(outbound.take), Effect.flatMap(([id, request, span]) => pipe(Effect.suspend(() => {
121
121
  const result = requestMap.get(id);
122
122
  if (!result) return Effect.void;
123
123
  const transferables = transfers(request);
@@ -125,7 +125,7 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
125
125
  return pipe(Effect.flatMap(wrappedEncode(request), payload => sendQueue.offer([[id, 0, payload, spanTuple], [...transferables, ...collector.unsafeRead()]])), Effect.catchAllCause(cause => Queue.offer(result[0], Exit.failCause(cause))), Effect.zipRight(Deferred.await(result[1])));
126
126
  }), Effect.ensuring(semaphore.release(1)), Effect.fork)), Effect.forever, Effect.interruptible, Effect.forkScoped);
127
127
  if (initialMessage) {
128
- yield* _(Effect.sync(initialMessage), Effect.flatMap(executeEffect), Effect.mapError(error => new WorkerError({
128
+ yield Effect.sync(initialMessage).pipe(Effect.flatMap(executeEffect), Effect.mapError(error => new WorkerError({
129
129
  reason: "spawn",
130
130
  error
131
131
  })));
@@ -142,11 +142,11 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
142
142
  /** @internal */
143
143
  export const layerManager = /*#__PURE__*/Layer.effect(WorkerManager, makeManager);
144
144
  /** @internal */
145
- export const makePool = options => Effect.gen(function* (_) {
146
- const manager = yield* _(WorkerManager);
145
+ export const makePool = options => Effect.gen(function* () {
146
+ const manager = yield* WorkerManager;
147
147
  const workers = new Set();
148
148
  const acquire = pipe(manager.spawn(options), Effect.tap(worker => Effect.sync(() => workers.add(worker))), Effect.tap(worker => Effect.addFinalizer(() => Effect.sync(() => workers.delete(worker)))), options.onCreate ? Effect.tap(options.onCreate) : identity);
149
- const backing = yield* _("timeToLive" in options ? Pool.makeWithTTL({
149
+ const backing = yield* "timeToLive" in options ? Pool.makeWithTTL({
150
150
  acquire,
151
151
  min: options.minSize,
152
152
  max: options.maxSize,
@@ -154,7 +154,7 @@ export const makePool = options => Effect.gen(function* (_) {
154
154
  }) : Pool.make({
155
155
  acquire,
156
156
  size: options.size
157
- }));
157
+ });
158
158
  const pool = {
159
159
  backing,
160
160
  broadcast: message => Effect.forEach(workers, worker => worker.executeEffect(message), {
@@ -169,9 +169,9 @@ export const makePool = options => Effect.gen(function* (_) {
169
169
  /** @internal */
170
170
  export const makePoolLayer = (tag, options) => Layer.scoped(tag, makePool(options));
171
171
  /** @internal */
172
- export const makeSerialized = options => Effect.gen(function* (_) {
173
- const manager = yield* _(WorkerManager);
174
- const backing = yield* _(manager.spawn({
172
+ export const makeSerialized = options => Effect.gen(function* () {
173
+ const manager = yield* WorkerManager;
174
+ const backing = yield* manager.spawn({
175
175
  ...options,
176
176
  encode(message) {
177
177
  return Effect.mapError(Serializable.serialize(message), error => new WorkerError({
@@ -179,7 +179,7 @@ export const makeSerialized = options => Effect.gen(function* (_) {
179
179
  error
180
180
  }));
181
181
  }
182
- }));
182
+ });
183
183
  const execute = message => {
184
184
  const parseSuccess = Schema.decode(Serializable.successSchema(message));
185
185
  const parseFailure = Schema.decode(Serializable.failureSchema(message));
@@ -200,11 +200,11 @@ export const makeSerialized = options => Effect.gen(function* (_) {
200
200
  });
201
201
  });
202
202
  /** @internal */
203
- export const makePoolSerialized = options => Effect.gen(function* (_) {
204
- const manager = yield* _(WorkerManager);
203
+ export const makePoolSerialized = options => Effect.gen(function* () {
204
+ const manager = yield* WorkerManager;
205
205
  const workers = new Set();
206
206
  const acquire = pipe(makeSerialized(options), Effect.tap(worker => Effect.sync(() => workers.add(worker))), Effect.tap(worker => Effect.addFinalizer(() => Effect.sync(() => workers.delete(worker)))), options.onCreate ? Effect.tap(options.onCreate) : identity, Effect.provideService(WorkerManager, manager));
207
- const backing = yield* _("timeToLive" in options ? Pool.makeWithTTL({
207
+ const backing = yield* "timeToLive" in options ? Pool.makeWithTTL({
208
208
  acquire,
209
209
  min: options.minSize,
210
210
  max: options.maxSize,
@@ -212,7 +212,7 @@ export const makePoolSerialized = options => Effect.gen(function* (_) {
212
212
  }) : Pool.make({
213
213
  acquire,
214
214
  size: options.size
215
- }));
215
+ });
216
216
  const pool = {
217
217
  backing,
218
218
  broadcast: message => Effect.forEach(workers, worker => worker.executeEffect(message), {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["Schema","Serializable","Arr","Cause","Channel","Chunk","Context","Deferred","Effect","Exit","Fiber","identity","pipe","Layer","Option","Pool","Queue","Schedule","Stream","Tracer","Transferable","WorkerError","defaultQueue","map","unbounded","queue","offer","id","item","span","take","shutdown","PlatformWorkerTypeId","Symbol","for","PlatformWorker","GenericTag","WorkerManagerTypeId","WorkerManager","Spawner","makeManager","gen","_","platform","idCounter","of","spawn","encode","initialMessage","permits","transfers","requestIdCounter","semaphore","makeSemaphore","requestMap","Map","sendQueue","acquireRelease","collector","unsafeMakeCollector","wrappedEncode","message","zipRight","clear","provideService","Collector","succeed","outbound","addFinalizer","readyLatch","make","backing","send","flatMap","forever","msg","complete","void","handleMessage","all","join","fiber","await","concurrency","scoped","onError","cause","forEach","values","failCause","retry","exponential","union","spaced","annotateLogs","package","module","interruptible","forkScoped","empty","discard","sync","response","suspend","get","length","fail","decodeCause","executeAcquire","request","tap","serviceOption","ParentSpan","filter","_tag","deferred","set","executeRelease","exit","release","delete","isFailure","execute","loop","match","onFailure","isEmpty","onSuccess","value","write","unsafeFromArray","fromChannel","executeEffect","acquireUseRelease","unsafeGet","result","transferables","spanTuple","getOrUndefined","traceId","spanId","sampled","payload","unsafeRead","catchAllCause","ensuring","fork","mapError","error","reason","parallelFinalizers","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","add","onCreate","makeWithTTL","min","minSize","max","maxSize","timeToLive","size","pool","broadcast","unwrap","makePoolLayer","tag","makeSerialized","serialize","parseSuccess","decode","successSchema","parseFailure","failureSchema","catchAll","mapEffect","matchEffect","makePoolSerialized","makePoolSerializedLayer","layerSpawner","spawner"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"worker.js","names":["Schema","Serializable","Arr","Cause","Channel","Chunk","Context","Deferred","Effect","Exit","Fiber","identity","pipe","Layer","Option","Pool","Queue","Schedule","Stream","Tracer","Transferable","WorkerError","defaultQueue","map","unbounded","queue","offer","id","item","span","take","shutdown","PlatformWorkerTypeId","Symbol","for","PlatformWorker","GenericTag","WorkerManagerTypeId","WorkerManager","Spawner","makeManager","gen","platform","idCounter","of","spawn","encode","initialMessage","permits","transfers","_","requestIdCounter","semaphore","makeSemaphore","requestMap","Map","sendQueue","acquireRelease","collector","unsafeMakeCollector","wrappedEncode","message","zipRight","clear","provideService","Collector","succeed","outbound","addFinalizer","readyLatch","make","backing","send","flatMap","forever","msg","complete","void","handleMessage","all","join","fiber","await","concurrency","scoped","onError","cause","forEach","values","failCause","retry","exponential","union","spaced","annotateLogs","package","module","interruptible","forkScoped","empty","discard","sync","response","suspend","get","length","fail","decodeCause","executeAcquire","request","tap","serviceOption","ParentSpan","filter","_tag","deferred","set","executeRelease","exit","release","delete","isFailure","execute","loop","match","onFailure","isEmpty","onSuccess","value","write","unsafeFromArray","fromChannel","executeEffect","acquireUseRelease","unsafeGet","result","transferables","spanTuple","getOrUndefined","traceId","spanId","sampled","payload","unsafeRead","catchAllCause","ensuring","fork","mapError","error","reason","parallelFinalizers","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","add","onCreate","makeWithTTL","min","minSize","max","maxSize","timeToLive","size","pool","broadcast","unwrap","makePoolLayer","tag","makeSerialized","serialize","parseSuccess","decode","successSchema","parseFailure","failureSchema","catchAll","mapEffect","matchEffect","makePoolSerialized","makePoolSerializedLayer","layerSpawner","spawner"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.50.2",
3
+ "version": "0.50.4",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,8 +16,8 @@
16
16
  "path-browserify": "^1.0.1"
17
17
  },
18
18
  "peerDependencies": {
19
- "@effect/schema": "^0.66.5",
20
- "effect": "^3.0.3"
19
+ "@effect/schema": "^0.66.7",
20
+ "effect": "^3.0.4"
21
21
  },
22
22
  "publishConfig": {
23
23
  "provenance": true
@@ -2,13 +2,15 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import * as Schema from "@effect/schema/Schema"
5
- import * as Arr from "effect/Array"
5
+ import * as FiberRef from "effect/FiberRef"
6
6
  import { dual, identity } from "effect/Function"
7
+ import { globalValue } from "effect/GlobalValue"
7
8
  import type * as Option from "effect/Option"
8
9
  import * as Predicate from "effect/Predicate"
9
10
  import * as Record from "effect/Record"
10
11
  import * as Secret from "effect/Secret"
11
12
  import * as String from "effect/String"
13
+ import type { Mutable } from "effect/Types"
12
14
 
13
15
  /**
14
16
  * @since 1.0.0
@@ -37,6 +39,13 @@ export interface Headers {
37
39
  readonly [key: string]: string
38
40
  }
39
41
 
42
+ const Proto = Object.assign(Object.create(null), {
43
+ [HeadersTypeId]: HeadersTypeId
44
+ })
45
+
46
+ const make = (input: Record.ReadonlyRecord<string, string>): Mutable<Headers> =>
47
+ Object.assign(Object.create(Proto), input) as Headers
48
+
40
49
  /**
41
50
  * @since 1.0.0
42
51
  * @category schemas
@@ -69,7 +78,7 @@ export type Input =
69
78
  * @since 1.0.0
70
79
  * @category constructors
71
80
  */
72
- export const empty: Headers = Object.create(null) as Headers
81
+ export const empty: Headers = Object.create(Proto)
73
82
 
74
83
  /**
75
84
  * @since 1.0.0
@@ -79,26 +88,29 @@ export const fromInput: (input?: Input) => Headers = (input) => {
79
88
  if (input === undefined) {
80
89
  return empty
81
90
  } else if (Symbol.iterator in input) {
82
- return Record.fromEntries(Arr.map(
83
- Arr.fromIterable(input),
84
- ([k, v]) => [k.toLowerCase(), v] as const
85
- )) as Headers
91
+ const out: Record<string, string> = Object.create(Proto)
92
+ for (const [k, v] of input) {
93
+ out[k.toLowerCase()] = v
94
+ }
95
+ return out as Headers
86
96
  }
87
- return Record.fromEntries(
88
- Object.entries(input).map(([k, v]) =>
89
- [
90
- k.toLowerCase(),
91
- Arr.isArray(v) ? v.join(", ") : v
92
- ] as const
93
- )
94
- ) as Headers
97
+ const out: Record<string, string> = Object.create(Proto)
98
+ for (const [k, v] of Object.entries(input)) {
99
+ if (Array.isArray(v)) {
100
+ out[k.toLowerCase()] = v.join(", ")
101
+ } else if (v !== undefined) {
102
+ out[k.toLowerCase()] = v as string
103
+ }
104
+ }
105
+ return out as Headers
95
106
  }
96
107
 
97
108
  /**
98
109
  * @since 1.0.0
99
110
  * @category constructors
100
111
  */
101
- export const unsafeFromRecord = (input: Record.ReadonlyRecord<string, string>): Headers => input as Headers
112
+ export const unsafeFromRecord = (input: Record.ReadonlyRecord<string, string>): Headers =>
113
+ Object.setPrototypeOf(input, Proto) as Headers
102
114
 
103
115
  /**
104
116
  * @since 1.0.0
@@ -110,7 +122,7 @@ export const has: {
110
122
  } = dual<
111
123
  (key: string) => (self: Headers) => boolean,
112
124
  (self: Headers, key: string) => boolean
113
- >(2, (self, key) => Record.has(self as Record<string, string>, key.toLowerCase()))
125
+ >(2, (self, key) => key.toLowerCase() in self)
114
126
 
115
127
  /**
116
128
  * @since 1.0.0
@@ -134,10 +146,11 @@ export const set: {
134
146
  } = dual<
135
147
  (key: string, value: string) => (self: Headers) => Headers,
136
148
  (self: Headers, key: string, value: string) => Headers
137
- >(3, (self, key, value) => ({
138
- ...self,
139
- [key.toLowerCase()]: value
140
- }))
149
+ >(3, (self, key, value) => {
150
+ const out = make(self)
151
+ out[key.toLowerCase()] = value
152
+ return out
153
+ })
141
154
 
142
155
  /**
143
156
  * @since 1.0.0
@@ -149,10 +162,11 @@ export const setAll: {
149
162
  } = dual<
150
163
  (headers: Input) => (self: Headers) => Headers,
151
164
  (self: Headers, headers: Input) => Headers
152
- >(2, (self, headers) => ({
153
- ...self,
154
- ...fromInput(headers)
155
- }))
165
+ >(2, (self, headers) =>
166
+ make({
167
+ ...self,
168
+ ...fromInput(headers)
169
+ }))
156
170
 
157
171
  /**
158
172
  * @since 1.0.0
@@ -164,10 +178,11 @@ export const merge: {
164
178
  } = dual<
165
179
  (headers: Headers) => (self: Headers) => Headers,
166
180
  (self: Headers, headers: Headers) => Headers
167
- >(2, (self, headers) => ({
168
- ...self,
169
- ...headers
170
- }))
181
+ >(2, (self, headers) => {
182
+ const out = make(self)
183
+ Object.assign(out, headers)
184
+ return out
185
+ })
171
186
 
172
187
  /**
173
188
  * @since 1.0.0
@@ -180,35 +195,58 @@ export const remove: {
180
195
  (key: string) => (self: Headers) => Headers,
181
196
  (self: Headers, key: string) => Headers
182
197
  >(2, (self, key) => {
183
- const out = { ...self }
198
+ const out = make(self)
184
199
  delete out[key.toLowerCase()]
185
200
  return out
186
201
  })
187
202
 
188
203
  /**
189
204
  * @since 1.0.0
205
+ * @category combinators
190
206
  */
191
207
  export const redact: {
192
- (key: string | ReadonlyArray<string>): (self: Headers) => Record<string, string | Secret.Secret>
193
- (self: Headers, key: string | ReadonlyArray<string>): Record<string, string | Secret.Secret>
194
- } = dual<
195
- (key: string | ReadonlyArray<string>) => (self: Headers) => Record<string, string | Secret.Secret>,
196
- (self: Headers, key: string | ReadonlyArray<string>) => Record<string, string | Secret.Secret>
197
- >(
208
+ (key: string | RegExp | ReadonlyArray<string | RegExp>): (self: Headers) => Record<string, string | Secret.Secret>
209
+ (self: Headers, key: string | RegExp | ReadonlyArray<string | RegExp>): Record<string, string | Secret.Secret>
210
+ } = dual(
198
211
  2,
199
- (self, key) => {
212
+ (self: Headers, key: string | RegExp | ReadonlyArray<string | RegExp>): Record<string, string | Secret.Secret> => {
200
213
  const out: Record<string, string | Secret.Secret> = { ...self }
201
- const modify = (key: string) => {
202
- const k = key.toLowerCase()
203
- if (has(self, k)) {
204
- out[k] = Secret.fromString(self[k])
214
+ const modify = (key: string | RegExp) => {
215
+ if (typeof key === "string") {
216
+ const k = key.toLowerCase()
217
+ if (k in self) {
218
+ out[k] = Secret.fromString(self[k])
219
+ }
220
+ } else {
221
+ for (const name in self) {
222
+ if (key.test(name)) {
223
+ out[name] = Secret.fromString(self[name])
224
+ }
225
+ }
205
226
  }
206
227
  }
207
- if (Predicate.isString(key)) {
208
- modify(key)
228
+ if (Array.isArray(key)) {
229
+ for (let i = 0; i < key.length; i++) {
230
+ modify(key[i])
231
+ }
209
232
  } else {
210
- key.forEach(modify)
233
+ modify(key as string | RegExp)
211
234
  }
212
235
  return out
213
236
  }
214
237
  )
238
+
239
+ /**
240
+ * @since 1.0.0
241
+ * @category fiber refs
242
+ */
243
+ export const currentRedactedNames = globalValue(
244
+ "@effect/platform/Http/Headers/currentRedactedNames",
245
+ () =>
246
+ FiberRef.unsafeMake<ReadonlyArray<string | RegExp>>([
247
+ "authorization",
248
+ "cookie",
249
+ "set-cookie",
250
+ "x-api-key"
251
+ ])
252
+ )
@@ -203,6 +203,7 @@ export const makeUrl = (url: string, params: UrlParams): Either.Either<URL, Erro
203
203
  urlInstance.searchParams.append(key, value)
204
204
  }
205
205
  }
206
+
206
207
  return Either.right(urlInstance)
207
208
  } catch (e) {
208
209
  return Either.left(e as Error)
@@ -20,6 +20,7 @@ import * as Error from "../../Http/ClientError.js"
20
20
  import type * as ClientRequest from "../../Http/ClientRequest.js"
21
21
  import type * as ClientResponse from "../../Http/ClientResponse.js"
22
22
  import * as Cookies from "../../Http/Cookies.js"
23
+ import * as Headers from "../../Http/Headers.js"
23
24
  import * as Method from "../../Http/Method.js"
24
25
  import * as TraceContext from "../../Http/TraceContext.js"
25
26
  import * as UrlParams from "../../Http/UrlParams.js"
@@ -137,9 +138,11 @@ export const makeDefault = (
137
138
  if (query !== "") {
138
139
  span.attribute("url.query", query)
139
140
  }
140
- Object.entries(request.headers).forEach(([key, value]) => {
141
- span.attribute(`http.request.header.${key}`, value)
142
- })
141
+ const redactedHeaderNames = fiber.getFiberRef(Headers.currentRedactedNames)
142
+ const redactedHeaders = Headers.redact(request.headers, redactedHeaderNames)
143
+ for (const name in redactedHeaders) {
144
+ span.attribute(`http.request.header.${name}`, String(redactedHeaders[name]))
145
+ }
143
146
  return Effect.tap(
144
147
  Effect.withParentSpan(
145
148
  f(
@@ -152,9 +155,10 @@ export const makeDefault = (
152
155
  ),
153
156
  (response) => {
154
157
  span.attribute("http.response.status_code", response.status)
155
- Object.entries(response.headers).forEach(([key, value]) => {
156
- span.attribute(`http.response.header.${key}`, value)
157
- })
158
+ const redactedHeaders = Headers.redact(response.headers, redactedHeaderNames)
159
+ for (const name in redactedHeaders) {
160
+ span.attribute(`http.response.header.${name}`, String(redactedHeaders[name]))
161
+ }
158
162
  }
159
163
  )
160
164
  }
@@ -172,7 +176,7 @@ export const fetch: Client.Client.Default = makeDefault((request, url, signal, f
172
176
  const context = fiber.getFiberRef(FiberRef.currentContext)
173
177
  const fetch: typeof globalThis.fetch = context.unsafeMap.get(Fetch.key) ?? globalThis.fetch
174
178
  const options = fiber.getFiberRef(currentFetchOptions)
175
- const headers = new Headers(request.headers)
179
+ const headers = new globalThis.Headers(request.headers)
176
180
  const send = (body: BodyInit | undefined) =>
177
181
  Effect.map(
178
182
  Effect.tryPromise({
@@ -112,9 +112,15 @@ export const tracer = make((httpApp) =>
112
112
  let url: URL | undefined = undefined
113
113
  try {
114
114
  url = new URL(request.url, `${protocol}://${host}`)
115
+ if (url.username !== "" || url.password !== "") {
116
+ url.username = "REDACTED"
117
+ url.password = "REDACTED"
118
+ }
115
119
  } catch (_) {
116
120
  //
117
121
  }
122
+ const redactedHeaderNames = fiber.getFiberRef(Headers.currentRedactedNames)
123
+ const redactedHeaders = Headers.redact(request.headers, redactedHeaderNames)
118
124
  return Effect.useSpan(
119
125
  `http.server ${request.method}`,
120
126
  { parent: Option.getOrUndefined(TraceContext.fromHeaders(request.headers)) },
@@ -132,9 +138,9 @@ export const tracer = make((httpApp) =>
132
138
  if (request.headers["user-agent"] !== undefined) {
133
139
  span.attribute("user_agent.original", request.headers["user-agent"])
134
140
  }
135
- Object.entries(request.headers).forEach(([key, value]) => {
136
- span.attribute(`http.request.header.${key}`, value)
137
- })
141
+ for (const name in redactedHeaders) {
142
+ span.attribute(`http.request.header.${name}`, String(redactedHeaders[name]))
143
+ }
138
144
  if (request.remoteAddress._tag === "Some") {
139
145
  span.attribute("client.address", request.remoteAddress.value)
140
146
  }
@@ -146,9 +152,10 @@ export const tracer = make((httpApp) =>
146
152
  } else {
147
153
  const response = exit.value
148
154
  span.attribute("http.response.status_code", response.status)
149
- Object.entries(response.headers).forEach(([key, value]) => {
150
- span.attribute(`http.response.header.${key}`, value)
151
- })
155
+ const redactedHeaders = Headers.redact(response.headers, redactedHeaderNames)
156
+ for (const name in redactedHeaders) {
157
+ span.attribute(`http.response.header.${name}`, String(redactedHeaders[name]))
158
+ }
152
159
  }
153
160
  return exit
154
161
  }