@effect-app/infra 0.94.8 → 0.94.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.
- package/CHANGELOG.md +6 -0
- package/_cjs/services/RequestContextContainer.cjs +16 -2
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_src/services/RequestContextContainer.ts +23 -1
- package/dist/services/Repository.d.ts +14 -14
- package/dist/services/RequestContextContainer.d.ts +12 -0
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +23 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.live = exports.RequestContextContainerImpl = exports.RequestContextContainer = exports.RCTag = void 0;
|
|
6
|
+
exports.spanAttributes = exports.live = exports.RequestContextContainerImpl = exports.RequestContextContainer = exports.RCTag = void 0;
|
|
7
7
|
var tsplus_module_1 = _interopRequireWildcard(require("@effect-app/prelude/service"));
|
|
8
8
|
var tsplus_module_2 = _interopRequireWildcard(require("effect/Option"));
|
|
9
9
|
var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
|
|
@@ -46,7 +46,7 @@ class RequestContextContainerImpl extends RequestContextContainer {
|
|
|
46
46
|
constructor() {
|
|
47
47
|
super();
|
|
48
48
|
_RequestContextContainerImpl_ref.set(this, void 0);
|
|
49
|
-
this.update = f => tsplus_module_7.getAndUpdate(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), f);
|
|
49
|
+
this.update = f => tsplus_module_3.tap(tsplus_module_7.getAndUpdate(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), f), rc => tsplus_module_3.annotateCurrentSpan(spanAttributes_1(rc)));
|
|
50
50
|
this.start = a => tsplus_module_3.zipRight(tsplus_module_8.restoreFromRequestContext(a))(tsplus_module_7.set(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), a));
|
|
51
51
|
__classPrivateFieldSet(this, _RequestContextContainerImpl_ref, tsplus_module_7.unsafeMake(new _RequestContext.RequestContext({
|
|
52
52
|
name: tsplus_module_6.ReasonableString("_root_"),
|
|
@@ -66,4 +66,18 @@ _RequestContextContainerImpl_ref = new WeakMap();
|
|
|
66
66
|
const live = exports.live = tsplus_module_9.effect(RequestContextContainer)(tsplus_module_3.sync(() => new RequestContextContainerImpl()));
|
|
67
67
|
/** @tsplus static RequestContext.Ops Tag */
|
|
68
68
|
const RCTag = exports.RCTag = tsplus_module_5.Tag();
|
|
69
|
+
/**
|
|
70
|
+
* @tsplus getter RequestContext spanAttributes
|
|
71
|
+
*/
|
|
72
|
+
const spanAttributes_1 = ctx => ({
|
|
73
|
+
"request.id": ctx.id,
|
|
74
|
+
"request.name": ctx.name,
|
|
75
|
+
"request.locale": ctx.locale,
|
|
76
|
+
"request.namespace": ctx.namespace,
|
|
77
|
+
...(ctx.userProfile?.sub ? {
|
|
78
|
+
"request.user.sub": ctx.userProfile.sub,
|
|
79
|
+
"request.user.roles": "roles" in ctx.userProfile ? ctx.userProfile.roles : undefined
|
|
80
|
+
} : {})
|
|
81
|
+
});
|
|
82
|
+
const spanAttributes = exports.spanAttributes = spanAttributes_1;
|
|
69
83
|
//# sourceMappingURL=RequestContextContainer.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.cjs","names":["_ids","require","_RequestContext","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RequestContextContainer","tsplus_module_1","TagClass","flatMap","_","requestContext","getOption","tsplus_module_3","contextWith","tsplus_module_5","tsplus_module_2","isSome","map","value","some","sync","tsplus_module_4","none","exports","RequestContextContainerImpl","constructor","_RequestContextContainerImpl_ref","update","f","tsplus_module_7","getAndUpdate","__classPrivateFieldGet","start","zipRight","tsplus_module_8","restoreFromRequestContext","__classPrivateFieldSet","unsafeMake","RequestContext","name","tsplus_module_6","ReasonableString","rootId","RequestId","locale","live","tsplus_module_9","effect","RCTag","Tag"],"sources":["../../_src/services/RequestContextContainer.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAAqD,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAe,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;;;;;;;;;;;;;AAErD;;;;AAIM,MAAgBY,uBAAwB,SAAQC,eAAA,CAAAC,QAAQ,EAA2B;EAIvF,WAAWf,GAAGA,CAAA;IACZ,OAAOa,uBAAuB,CAACG,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;EACjE;EACA,WAAWC,SAASA,CAAA;IAClB,OAAOC,eAAA,CAAAJ,OAAA,CAAAI,eAAA,CAAAC,WAAA,CACSJ,CAAiB,IAAKK,eAAA,CAAAH,SAAA,CAAkBF,CAAC,EAAEJ,uBAAuB,CAAC,CAAC,EACxEK,cAAc,IACtBK,eAAA,CAAAC,MAAA,CAAAN,cAAc,CAAS,GACnBE,eAAA,CAAAK,GAAA,CAAAP,cAAc,CAACQ,KAAK,CAACR,cAAc,EAAAK,eAAA,CAAAI,IAAA,CAAiB,GACpDP,eAAA,CAAAQ,IAAA,OAAAC,eAAA,CAAAC,IAAA,CAAmB,CACxB;EACL;;AACDC,OAAA,CAAAlB,uBAAA,GAAAA,uBAAA;AAEK,MAAOmB,2BAA4B,SAAQnB,uBAAuB;EAEtEoB,YAAA;IACE,KAAK,EAAE;IAFTC,gCAAA,CAAAtB,GAAA;IAYS,KAAAuB,MAAM,GAAIC,CAAwC,
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.cjs","names":["_ids","require","_RequestContext","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RequestContextContainer","tsplus_module_1","TagClass","flatMap","_","requestContext","getOption","tsplus_module_3","contextWith","tsplus_module_5","tsplus_module_2","isSome","map","value","some","sync","tsplus_module_4","none","exports","RequestContextContainerImpl","constructor","_RequestContextContainerImpl_ref","update","f","tap","tsplus_module_7","getAndUpdate","__classPrivateFieldGet","rc","annotateCurrentSpan","spanAttributes_1","start","zipRight","tsplus_module_8","restoreFromRequestContext","__classPrivateFieldSet","unsafeMake","RequestContext","name","tsplus_module_6","ReasonableString","rootId","RequestId","locale","live","tsplus_module_9","effect","RCTag","Tag","ctx","id","namespace","userProfile","sub","roles","undefined","spanAttributes"],"sources":["../../_src/services/RequestContextContainer.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -36,7 +36,8 @@ export class RequestContextContainerImpl extends RequestContextContainer {
|
|
|
36
36
|
return this.#ref.get
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
override update = (f: (a: RequestContext) => RequestContext) =>
|
|
39
|
+
override update = (f: (a: RequestContext) => RequestContext) =>
|
|
40
|
+
this.#ref.getAndUpdate(f).tap((rc) => Effect.annotateCurrentSpan(rc.spanAttributes))
|
|
40
41
|
override start = (a: RequestContext) => this.#ref.set(a) > a.restoreStoreId
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -47,3 +48,24 @@ export const live = Effect.sync(() => new RequestContextContainerImpl()).toLayer
|
|
|
47
48
|
|
|
48
49
|
/** @tsplus static RequestContext.Ops Tag */
|
|
49
50
|
export const RCTag = Tag<RequestContext>()
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @tsplus getter RequestContext spanAttributes
|
|
54
|
+
*/
|
|
55
|
+
export const spanAttributes = (ctx: RequestContext) => ({
|
|
56
|
+
"request.id": ctx.id,
|
|
57
|
+
"request.name": ctx.name,
|
|
58
|
+
"request.locale": ctx.locale,
|
|
59
|
+
"request.namespace": ctx.namespace,
|
|
60
|
+
...ctx.userProfile?.sub
|
|
61
|
+
? {
|
|
62
|
+
"request.user.sub": ctx
|
|
63
|
+
.userProfile
|
|
64
|
+
.sub,
|
|
65
|
+
"request.user.roles": "roles" in ctx
|
|
66
|
+
.userProfile
|
|
67
|
+
? ctx.userProfile.roles
|
|
68
|
+
: undefined
|
|
69
|
+
}
|
|
70
|
+
: {}
|
|
71
|
+
})
|
|
@@ -181,7 +181,7 @@ export declare function queryAndSavePureEffect<T extends {
|
|
|
181
181
|
skip?: number;
|
|
182
182
|
}>): <R2, A, E2, S2 extends T>(pure: Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("effect/Effect").Effect<R | Exclude<R2, {
|
|
183
183
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
184
|
-
}>,
|
|
184
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E | E2, A>;
|
|
185
185
|
/**
|
|
186
186
|
* @tsplus fluent Repository queryAndSavePure
|
|
187
187
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -197,7 +197,7 @@ export declare function queryAndSavePure<T extends {
|
|
|
197
197
|
skip?: number;
|
|
198
198
|
}): <R2, A, E2, S2 extends T>(pure: import("effect/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("effect/Effect").Effect<Exclude<R2, {
|
|
199
199
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
200
|
-
}>,
|
|
200
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E2, A>;
|
|
201
201
|
/**
|
|
202
202
|
* @tsplus getter Repository saveManyWithPure
|
|
203
203
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -208,7 +208,7 @@ export declare function saveManyWithPure<T extends {
|
|
|
208
208
|
id: string;
|
|
209
209
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("effect/Effect").Effect<Exclude<R, {
|
|
210
210
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
211
|
-
}>,
|
|
211
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
212
212
|
/**
|
|
213
213
|
* @tsplus fluent Repository byIdAndSaveWithPure
|
|
214
214
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -219,7 +219,7 @@ export declare function byIdAndSaveWithPure<T extends {
|
|
|
219
219
|
id: string;
|
|
220
220
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, id: T["id"]): <R, A, E, S2 extends T>(pure: Effect<FixEnv<R, Evt, T, S2>, E, A>) => import("effect/Effect").Effect<Exclude<R, {
|
|
221
221
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
222
|
-
}>,
|
|
222
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, A>;
|
|
223
223
|
/**
|
|
224
224
|
* NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
|
|
225
225
|
* @tsplus getter Repository handleByIdAndSaveWithPure
|
|
@@ -233,7 +233,7 @@ export declare function handleByIdAndSaveWithPure<T extends {
|
|
|
233
233
|
id: T["id"];
|
|
234
234
|
}, Context, R, A, E, S2 extends T>(pure: (req: Req, ctx: Context) => Effect<FixEnv<R, Evt, T, S2>, E, A>) => (req: Req, ctx: Context) => import("effect/Effect").Effect<Exclude<R, {
|
|
235
235
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, T, S2>;
|
|
236
|
-
}>,
|
|
236
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E | NotFoundError<ItemType>, A>;
|
|
237
237
|
/**
|
|
238
238
|
* @tsplus fluent Repository saveManyWithPure_
|
|
239
239
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -244,7 +244,7 @@ export declare function saveManyWithPure_<Id extends string, R, T extends {
|
|
|
244
244
|
id: string;
|
|
245
245
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>): import("effect/Effect").Effect<Exclude<R, {
|
|
246
246
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
247
|
-
}>,
|
|
247
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
248
248
|
/**
|
|
249
249
|
* @tsplus fluent Repository saveWithPure_
|
|
250
250
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -255,12 +255,12 @@ export declare function saveWithPure_<Id extends string, R, T extends {
|
|
|
255
255
|
id: string;
|
|
256
256
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, item: S1, pure: Effect<FixEnv<R, Evt, S1, S2>, E, A>): import("effect/Effect").Effect<Exclude<R, {
|
|
257
257
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1, S2>;
|
|
258
|
-
}>,
|
|
258
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
259
259
|
export declare function saveAllWithEffectInt<T extends {
|
|
260
260
|
id: string;
|
|
261
261
|
}, PM extends {
|
|
262
262
|
id: string;
|
|
263
|
-
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("effect/Effect").Effect<R,
|
|
263
|
+
}, P extends T, Evt, ItemType extends string, R, E, A>(self: Repository<T, PM, Evt, ItemType>, gen: Effect<R, E, readonly [Iterable<P>, Iterable<Evt>, A]>): import("effect/Effect").Effect<R, InvalidStateError | OptimisticConcurrencyException | E, A>;
|
|
264
264
|
/**
|
|
265
265
|
* @tsplus fluent Repository queryAndSavePureEffectBatched
|
|
266
266
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -276,7 +276,7 @@ export declare function queryAndSavePureEffectBatched<T extends {
|
|
|
276
276
|
skip?: number;
|
|
277
277
|
}>, batchSize?: number): <R2, A, E2, S2 extends T>(pure: Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("effect/Effect").Effect<R | Exclude<R2, {
|
|
278
278
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
279
|
-
}>,
|
|
279
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E | E2, A[]>;
|
|
280
280
|
/**
|
|
281
281
|
* @tsplus fluent Repository queryAndSavePureBatched
|
|
282
282
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -292,7 +292,7 @@ export declare function queryAndSavePureBatched<T extends {
|
|
|
292
292
|
skip?: number;
|
|
293
293
|
}, batchSize?: number): <R2, A, E2, S2 extends T>(pure: import("effect/Effect").Effect<FixEnv<R2, Evt, S[], S2[]>, E2, A>) => import("effect/Effect").Effect<Exclude<R2, {
|
|
294
294
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S[], S2[]>;
|
|
295
|
-
}>,
|
|
295
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E2, A[]>;
|
|
296
296
|
/**
|
|
297
297
|
* @tsplus fluent Repository saveManyWithPureBatched
|
|
298
298
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -303,7 +303,7 @@ export declare function saveManyWithPureBatched<T extends {
|
|
|
303
303
|
id: string;
|
|
304
304
|
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, batchSize?: number): <R, A, E, S1 extends T, S2 extends T>(pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) => (items: Iterable<S1>) => import("effect/Effect").Effect<Exclude<R, {
|
|
305
305
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
306
|
-
}>,
|
|
306
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E, A[]>;
|
|
307
307
|
/**
|
|
308
308
|
* @tsplus fluent Repository saveManyWithPureBatched_
|
|
309
309
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -314,7 +314,7 @@ export declare function saveManyWithPureBatched_<Id extends string, R, T extends
|
|
|
314
314
|
id: string;
|
|
315
315
|
}, A, E, Evt, S1 extends T, S2 extends T, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>, items: Iterable<S1>, pure: Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>, batchSize?: number): import("effect/Effect").Effect<Exclude<R, {
|
|
316
316
|
env: import("@effect-app/prelude/Pure").PureEnv<Evt, S1[], S2[]>;
|
|
317
|
-
}>,
|
|
317
|
+
}>, InvalidStateError | OptimisticConcurrencyException | E, A[]>;
|
|
318
318
|
export type AllDSL<T, Evt> = (<R, A, E, S1 extends T, S2 extends T>(pure: (dsl: PureDSL<S1[], S2[], Evt>) => Effect<R, E, A>) => Effect<FixEnv<R, Evt, S1[], S2[]>, E, A>) & AllDSLExt<T, Evt>;
|
|
319
319
|
/**
|
|
320
320
|
* @tsplus type DSLExt
|
|
@@ -363,7 +363,7 @@ export declare function save<T extends {
|
|
|
363
363
|
id: string;
|
|
364
364
|
}, PM extends {
|
|
365
365
|
id: string;
|
|
366
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => import("effect/Effect").Effect<never,
|
|
366
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (items_0: T, ...items_1: T[]) => import("effect/Effect").Effect<never, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
367
367
|
/**
|
|
368
368
|
* @tsplus getter Repository saveWithEvents
|
|
369
369
|
* @tsplus location "@effect-app/infra/services/Repository"
|
|
@@ -372,5 +372,5 @@ export declare function saveWithEvents<T extends {
|
|
|
372
372
|
id: string;
|
|
373
373
|
}, PM extends {
|
|
374
374
|
id: string;
|
|
375
|
-
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("effect/Effect").Effect<never,
|
|
375
|
+
}, Evt, ItemType extends string>(self: Repository<T, PM, Evt, ItemType>): (events: Iterable<Evt>) => (items_0: T, ...items_1: T[]) => import("effect/Effect").Effect<never, InvalidStateError | OptimisticConcurrencyException, void>;
|
|
376
376
|
//# sourceMappingURL=Repository.d.ts.map
|
|
@@ -38,5 +38,17 @@ export declare const live: import("effect/Layer").Layer<never, never, RequestCon
|
|
|
38
38
|
* @tsplus location "@effect-app/infra/services/RequestContextContainer"
|
|
39
39
|
*/
|
|
40
40
|
export declare const RCTag: import("effect/Context").Tag<RequestContext, RequestContext>;
|
|
41
|
+
/**
|
|
42
|
+
* @tsplus getter RequestContext spanAttributes
|
|
43
|
+
* @tsplus location "@effect-app/infra/services/RequestContextContainer"
|
|
44
|
+
*/
|
|
45
|
+
export declare const spanAttributes: (ctx: RequestContext) => {
|
|
46
|
+
"request.user.sub"?: import("@effect-app/prelude/ids").UserProfileId | undefined;
|
|
47
|
+
"request.user.roles"?: unknown;
|
|
48
|
+
"request.id": import("@effect-app/schema").ReasonableString;
|
|
49
|
+
"request.name": import("@effect-app/schema").ReasonableString;
|
|
50
|
+
"request.locale": "en" | "de";
|
|
51
|
+
"request.namespace": import("@effect-app/schema").ReasonableString | undefined;
|
|
52
|
+
};
|
|
41
53
|
export {};
|
|
42
54
|
//# sourceMappingURL=RequestContextContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;;;;;AAErD;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAmC;IACvF,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IACtE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IAC7G,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,uBAAuB,EAAE,KAAK,EAAE,cAAc,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;CACF;AAED,qBAAa,2BAA4B,SAAQ,uBAAuB;;;IAStE,IAAa,cAAc,iEAE1B;IAEQ,MAAM,UAAW,cAAc,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../_src/services/RequestContextContainer.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;;;;;AAErD;;;GAGG;AACH,8BAAsB,uBAAwB,SAAQ,4BAAmC;IACvF,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IACtE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAA;IAC7G,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,uBAAuB,EAAE,KAAK,EAAE,cAAc,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,iGAQnB;CACF;AAED,qBAAa,2BAA4B,SAAQ,uBAAuB;;;IAStE,IAAa,cAAc,iEAE1B;IAEQ,MAAM,UAAW,cAAc,KAAK,cAAc,kEAC2B;IAC7E,KAAK,MAAO,cAAc,wDAAwC;CAC5E;;;;;AAKD,eAAO,MAAM,IAAI,qEAAwF,CAAA;;;;;AAGzG,eAAO,MAAM,KAAK,8DAAwB,CAAA;;;;;AAK1C,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;CAgBhD,CAAA"}
|
|
@@ -39,7 +39,7 @@ export class RequestContextContainerImpl extends RequestContextContainer {
|
|
|
39
39
|
constructor() {
|
|
40
40
|
super();
|
|
41
41
|
_RequestContextContainerImpl_ref.set(this, void 0);
|
|
42
|
-
this.update = (f) => tsplus_module_7.getAndUpdate(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), f);
|
|
42
|
+
this.update = (f) => tsplus_module_3.tap(tsplus_module_7.getAndUpdate(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), f), (rc) => tsplus_module_3.annotateCurrentSpan(spanAttributes_1(rc)));
|
|
43
43
|
this.start = (a) => tsplus_module_3.zipRight(tsplus_module_8.restoreFromRequestContext(a))(tsplus_module_7.set(__classPrivateFieldGet(this, _RequestContextContainerImpl_ref, "f"), a));
|
|
44
44
|
__classPrivateFieldSet(this, _RequestContextContainerImpl_ref, tsplus_module_7.unsafeMake(new RequestContext({ name: tsplus_module_6.ReasonableString("_root_"), rootId: RequestId("_root_"), locale: "en" })), "f");
|
|
45
45
|
}
|
|
@@ -54,4 +54,25 @@ _RequestContextContainerImpl_ref = new WeakMap();
|
|
|
54
54
|
export const live = tsplus_module_9.effect(RequestContextContainer)(tsplus_module_3.sync(() => new RequestContextContainerImpl()));
|
|
55
55
|
/** @tsplus static RequestContext.Ops Tag */
|
|
56
56
|
export const RCTag = tsplus_module_5.Tag();
|
|
57
|
-
|
|
57
|
+
/**
|
|
58
|
+
* @tsplus getter RequestContext spanAttributes
|
|
59
|
+
*/
|
|
60
|
+
const spanAttributes_1 = (ctx) => ({
|
|
61
|
+
"request.id": ctx.id,
|
|
62
|
+
"request.name": ctx.name,
|
|
63
|
+
"request.locale": ctx.locale,
|
|
64
|
+
"request.namespace": ctx.namespace,
|
|
65
|
+
...ctx.userProfile?.sub
|
|
66
|
+
? {
|
|
67
|
+
"request.user.sub": ctx
|
|
68
|
+
.userProfile
|
|
69
|
+
.sub,
|
|
70
|
+
"request.user.roles": "roles" in ctx
|
|
71
|
+
.userProfile
|
|
72
|
+
? ctx.userProfile.roles
|
|
73
|
+
: undefined
|
|
74
|
+
}
|
|
75
|
+
: {}
|
|
76
|
+
});
|
|
77
|
+
export const spanAttributes = spanAttributes_1;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL3NlcnZpY2VzL1JlcXVlc3RDb250ZXh0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFBd0IsU0FBUSxnQkFBQSxRQUFRLEVBQTJCO0lBSXZGLE1BQU0sS0FBSyxHQUFHO1FBQ1osT0FBTyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNqRSxDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDbEIsT0FBTyx3QkFBQSw0QkFDUSxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLDBCQUFrQixDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxFQUN6RSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQzFCLHVCQUFBLGNBQWMsQ0FBUztZQUNyQixDQUFDLENBQUMsb0JBQUEsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLHVCQUFpQjtZQUN0RCxDQUFDLENBQUMsZ0RBQW1CLENBQ3hCLENBQUE7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsdUJBQXVCO0lBRXRFO1FBQ0UsS0FBSyxFQUFFLENBQUE7UUFGVCxtREFBOEI7UUFZckIsV0FBTSxHQUFHLENBQUMsQ0FBd0MsRUFBRSxFQUFFLENBQzdELG9CQUFBLDZCQUFBLHVCQUFBLElBQUksd0NBQUssRUFBYyxDQUFDLENBQUMsRUFBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMscURBQTJCLEVBQUUsRUFBZ0IsQ0FBQyxDQUFBO1FBQzdFLFVBQUssR0FBRyxDQUFDLENBQWlCLEVBQUUsRUFBRSxvRUFBb0IsQ0FBQyxHQUFwQixvQkFBQSx1QkFBQSxJQUFJLHdDQUFLLEVBQUssQ0FBQyxDQUFDLENBQW1CLENBQUE7UUFYekUsdUJBQUEsSUFBSSxvQ0FBUSwyQkFDVixJQUFJLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBQSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNwRyxNQUFBLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBYSxjQUFjO1FBQ3pCLDJCQUFPLHVCQUFBLElBQUksd0NBQUssRUFBSTtJQUN0QixDQUFDO0NBS0Y7O0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsdUJBQTZELHVCQUF1QixFQUFwRixxQkFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDJCQUEyQixFQUFFLENBQUMsQ0FBaUMsQ0FBQTtBQUV6Ryw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGdCQUFBLEdBQUcsRUFBa0IsQ0FBQTtBQUUxQzs7R0FFRztBQUNJLE1BQU0sbUJBQWlCLENBQUMsR0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUU7SUFDcEIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzVCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxTQUFTO0lBQ2xDLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHO1FBQ3JCLENBQUMsQ0FBQztZQUNBLGtCQUFrQixFQUFFLEdBQUc7aUJBQ3BCLFdBQVc7aUJBQ1gsR0FBRztZQUNOLG9CQUFvQixFQUFFLE9BQU8sSUFBSSxHQUFHO2lCQUMvQixXQUFXO2dCQUNkLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTO1NBQ2Q7UUFDRCxDQUFDLENBQUMsRUFBRTtDQUNQLENBQUMsQ0FBQTthQWhCVyxjQUFjIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.94.
|
|
3
|
+
"version": "0.94.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"pure-rand": "6.0.4",
|
|
20
20
|
"redlock": "^4.2.0",
|
|
21
21
|
"@effect-app/core": "0.70.1",
|
|
22
|
-
"@effect-app/prelude": "0.72.5",
|
|
23
22
|
"@effect-app/infra-adapters": "0.60.7",
|
|
23
|
+
"@effect-app/prelude": "0.72.5",
|
|
24
24
|
"@effect-app/schema": "0.63.1"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|