@effect-app/infra 0.233.4 → 0.233.5
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/RequestContext.cjs +16 -7
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +1 -1
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +2 -2
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +2 -17
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/dist/RequestContext.d.ts +20 -42
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +22 -7
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +3 -3
- package/dist/logger/logFmtLogger.js +2 -2
- package/dist/services/Operations.d.ts +1 -1
- package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
- package/dist/services/RequestContextContainer.d.ts +1 -14
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +2 -23
- package/package.json +2 -2
- package/src/RequestContext.ts +32 -5
- package/src/api/setupRequest.ts +2 -2
- package/src/logger/logFmtLogger.ts +1 -1
- package/src/services/RequestContextContainer.ts +1 -23
package/CHANGELOG.md
CHANGED
package/_cjs/RequestContext.cjs
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.RequestContextParent = exports.RequestContext = void 0;
|
|
6
|
+
exports.spanAttributes = exports.RequestContextParent = exports.RequestContext = void 0;
|
|
7
7
|
var _schema = require("@effect-app/schema");
|
|
8
8
|
var _effectApp = require("effect-app");
|
|
9
9
|
var _ids = require("effect-app/ids");
|
|
10
|
-
class RequestContextParent extends (0, _schema.
|
|
10
|
+
class RequestContextParent extends (0, _schema.ExtendedTaggedClass)()("RequestContext", {
|
|
11
11
|
id: _ids.RequestId,
|
|
12
12
|
name: _schema.NonEmptyString255,
|
|
13
13
|
userProfile: _effectApp.S.optional((0, _schema.struct)({
|
|
@@ -21,7 +21,7 @@ class RequestContextParent extends (0, _schema.TaggedClass)()("RequestContext",
|
|
|
21
21
|
* @tsplus companion RequestContext.Ops
|
|
22
22
|
*/
|
|
23
23
|
exports.RequestContextParent = RequestContextParent;
|
|
24
|
-
class RequestContext extends (0, _schema.
|
|
24
|
+
class RequestContext extends (0, _schema.ExtendedTaggedClass)()("RequestContext", {
|
|
25
25
|
...RequestContextParent.omit("_tag", "id"),
|
|
26
26
|
id: _ids.RequestId.withDefault,
|
|
27
27
|
rootId: _ids.RequestId,
|
|
@@ -54,12 +54,21 @@ class RequestContext extends (0, _schema.TaggedClass)()("RequestContext", {
|
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
exports.RequestContext = RequestContext;
|
|
58
|
+
const spanAttributes = ctx => ({
|
|
59
|
+
"request.id": ctx.id,
|
|
60
|
+
"request.root.id": ctx.rootId,
|
|
61
|
+
"request.name": ctx.name,
|
|
62
|
+
"request.locale": ctx.locale,
|
|
63
|
+
"request.namespace": ctx.namespace,
|
|
64
|
+
...(ctx.userProfile?.sub ? {
|
|
65
|
+
"request.user.sub": ctx.userProfile.sub,
|
|
66
|
+
"request.user.roles": "roles" in ctx.userProfile ? ctx.userProfile.roles : undefined
|
|
67
|
+
} : {})
|
|
68
|
+
});
|
|
60
69
|
/* eslint-enable */
|
|
61
70
|
//
|
|
62
71
|
// codegen:end
|
|
63
72
|
//
|
|
64
|
-
exports.
|
|
73
|
+
exports.spanAttributes = spanAttributes;
|
|
65
74
|
//# sourceMappingURL=RequestContext.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.cjs","names":["_schema","require","_effectApp","_ids","RequestContextParent","
|
|
1
|
+
{"version":3,"file":"RequestContext.cjs","names":["_schema","require","_effectApp","_ids","RequestContextParent","ExtendedTaggedClass","id","RequestId","name","NonEmptyString255","userProfile","S","optional","struct","sub","UserProfileId","locale","literal","createdAt","Date","withDefault","exports","RequestContext","omit","rootId","parent","namespace","inherit","newSelf","toMonitoring","self","operationName","parentOperationName","parentLocale","spanAttributes","ctx","roles","undefined"],"sources":["../src/RequestContext.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEM,MAAOG,oBAAqB,SAAQ,IAAAC,2BAAmB,GAG1D,CAAC,gBAAgB,EAAE;EACpBC,EAAE,EAAEC,cAAS;EACbC,IAAI,EAAEC,yBAAiB;EACvBC,WAAW,EAAEC,YAAC,CAACC,QAAQ,CAAC,IAAAC,cAAM,EAAC;IAAEC,GAAG,EAAEC;EAAa,CAAE,CAAC,CAAC;EACvDC,MAAM,EAAE,IAAAC,eAAO,EAAC,IAAI,EAAE,IAAI,CAAC;EAC3BC,SAAS,EAAEP,YAAC,CAACQ,IAAI,CAACC;CACnB,CAAC;AAEF;;;;AAAAC,OAAA,CAAAjB,oBAAA,GAAAA,oBAAA;AAIM,MAAOkB,cAAe,SAAQ,IAAAjB,2BAAmB,GAGpD,CAAC,gBAAgB,EAAE;EACpB,GAAGD,oBAAoB,CAACmB,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;EAC1CjB,EAAE,EAAEC,cAAS,CAACa,WAAW;EACzBI,MAAM,EAAEjB,cAAS;EACjBkB,MAAM,EAAEd,YAAC,CAACC,QAAQ,CAACR,oBAAoB,CAAC;EACxCsB,SAAS,EAAEf,YAAC,CAACC,QAAQ,CAACH,yBAAiB;EACvC;EACA;EACA;EACA;EACA;EACA;CACD,CAAC;EACA;EACA,OAAOkB,OAAOA,CAEZF,MAAsB,EACtBG,OAA8D;IAE9D,OAAO,IAAIN,cAAc,CAAC;MACxBI,SAAS,EAAED,MAAM,EAAEC,SAAS;MAC5B,GAAGE,OAAO;MACVJ,MAAM,EAAEC,MAAM,CAACD,MAAM;MACrBC;KACD,CAAC;EACJ;EAEA,OAAOI,YAAYA,CAAaC,IAAoB;IAClD,OAAO;MACLC,aAAa,EAAED,IAAI,CAACtB,IAAI;MACxBQ,MAAM,EAAEc,IAAI,CAACd,MAAM;MACnB,IAAIc,IAAI,CAACL,MAAM,GACX;QAAEO,mBAAmB,EAAEF,IAAI,CAACL,MAAM,CAACjB,IAAI;QAAEyB,YAAY,EAAEH,IAAI,CAACL,MAAM,CAACT;MAAM,CAAE,GAC3E,EAAE;KACP;EACH;;AACDK,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEM,MAAMY,cAAc,GAAIC,GAAmB,KAAM;EACtD,YAAY,EAAEA,GAAG,CAAC7B,EAAE;EACpB,iBAAiB,EAAE6B,GAAG,CAACX,MAAM;EAC7B,cAAc,EAAEW,GAAG,CAAC3B,IAAI;EACxB,gBAAgB,EAAE2B,GAAG,CAACnB,MAAM;EAC5B,mBAAmB,EAAEmB,GAAG,CAACT,SAAS;EAClC,IAAIS,GAAG,CAACzB,WAAW,EAAEI,GAAG,GACpB;IACA,kBAAkB,EAAEqB,GAAG,CACpBzB,WAAW,CACXI,GAAG;IACN,oBAAoB,EAAE,OAAO,IAAIqB,GAAG,CAC/BzB,WAAW,GACZyB,GAAG,CAACzB,WAAW,CAAC0B,KAAK,GACrBC;GACL,GACC,EAAE;CACP,CAAC;AAWF;AACA;AACA;AACA;AAAAhB,OAAA,CAAAa,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ function makeInternalRequestContext(name) {
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
const withRequestSpan = f => _effectApp.Effect.andThen(_RequestContextContainer.RequestContextContainer.get, ctx => f.pipe(_effectApp.Effect.withSpan("request " + ctx.name, {
|
|
26
|
-
attributes: (0,
|
|
26
|
+
attributes: (0, _RequestContext.spanAttributes)(ctx)
|
|
27
27
|
}),
|
|
28
28
|
// request context info is picked up directly in the logger for annotations.
|
|
29
29
|
_effectApp.Effect.withLogSpan("request")));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_RequestContextContainer","_ContextMapContainer","makeInternalRequestContext","name","Effect","sync","id","RequestId","make","RequestContext","rootId","locale","NonEmptyString255","withRequestSpan","f","andThen","RequestContextContainer","get","ctx","pipe","withSpan","attributes","spanAttributes","withLogSpan","setupContextMap","ContextMapContainer","_","start","Layer","effectDiscard","RequestContextStartLiveFromRequestContext","requestContext","provideMerge","RequestContextStartLive","unwrapEffect","setupRequestContext","self","provide","UpdateRequestContextLive","rcc","update","updateRequestContext"],"sources":["../../src/api/setupRequest.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AAEA,SAASM,0BAA0BA,CAACC,IAAY;EAC9C,OAAOC,iBAAM,CAACC,IAAI,CAAC,MAAK;IACtB,MAAMC,EAAE,GAAGC,cAAS,CAACC,IAAI,EAAE;IAC3B,OAAO,IAAIC,8BAAc,CAAC;MACxBH,EAAE;MACFI,MAAM,EAAEJ,EAAE;MACVK,MAAM,EAAE,IAAI;MACZR,IAAI,EAAE,IAAAS,yBAAiB,EAACT,IAAI;KAC7B,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,MAAMU,eAAe,GAAaC,CAAkB,IAClDV,iBAAM,CAACW,OAAO,CACZC,gDAAuB,CACpBC,GAAG,EACLC,GAAG,IACFJ,CAAC,CAACK,IAAI,CACJf,iBAAM,CAACgB,QAAQ,CAAC,UAAU,GAAGF,GAAG,CAACf,IAAI,EAAE;EAAEkB,UAAU,EAAE,IAAAC,
|
|
1
|
+
{"version":3,"file":"setupRequest.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_RequestContextContainer","_ContextMapContainer","makeInternalRequestContext","name","Effect","sync","id","RequestId","make","RequestContext","rootId","locale","NonEmptyString255","withRequestSpan","f","andThen","RequestContextContainer","get","ctx","pipe","withSpan","attributes","spanAttributes","withLogSpan","setupContextMap","ContextMapContainer","_","start","Layer","effectDiscard","RequestContextStartLiveFromRequestContext","requestContext","provideMerge","RequestContextStartLive","unwrapEffect","setupRequestContext","self","provide","UpdateRequestContextLive","rcc","update","updateRequestContext"],"sources":["../../src/api/setupRequest.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,wBAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AAEA,SAASM,0BAA0BA,CAACC,IAAY;EAC9C,OAAOC,iBAAM,CAACC,IAAI,CAAC,MAAK;IACtB,MAAMC,EAAE,GAAGC,cAAS,CAACC,IAAI,EAAE;IAC3B,OAAO,IAAIC,8BAAc,CAAC;MACxBH,EAAE;MACFI,MAAM,EAAEJ,EAAE;MACVK,MAAM,EAAE,IAAI;MACZR,IAAI,EAAE,IAAAS,yBAAiB,EAACT,IAAI;KAC7B,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,MAAMU,eAAe,GAAaC,CAAkB,IAClDV,iBAAM,CAACW,OAAO,CACZC,gDAAuB,CACpBC,GAAG,EACLC,GAAG,IACFJ,CAAC,CAACK,IAAI,CACJf,iBAAM,CAACgB,QAAQ,CAAC,UAAU,GAAGF,GAAG,CAACf,IAAI,EAAE;EAAEkB,UAAU,EAAE,IAAAC,8BAAc,EAACJ,GAAG;AAAC,CAAE,CAAC;AAC3E;AACAd,iBAAM,CAACmB,WAAW,CAAC,SAAS,CAAC,CAC9B,CACJ;AAEH,MAAMC,eAAe,GAAGpB,iBAAM,CAACW,OAAO,CAACU,wCAAmB,EAAGC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAAC,CAACR,IAAI,CAACS,gBAAK,CAACC,aAAa,CAAC;AAErG;AACA;AACA;AACA;AACA,MAAMC,yCAAyC,GAAIC,cAA8B,IAC/EH,gBAAK,CAACI,YAAY,CAChBR,eAAe;AACf;AACApB,iBAAM,CACHW,OAAO,CAACC,gDAAuB,EAAGU,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACI,cAAc,CAAC,CAAC,CAChEZ,IAAI,CAACS,gBAAK,CAACC,aAAa,CAAC,CAC7B;AAEH,MAAMI,uBAAuB,GAAIF,cAAuC,IACtE,OAAOA,cAAc,KAAK,QAAQ,GAC9B,IAAAZ,eAAI,EACJjB,0BAA0B,CAAC6B,cAAc,CAAC,EAC1C3B,iBAAM,CAACW,OAAO,CAACe,yCAAyC,CAAC,EACzDF,gBAAK,CAACM,YAAY,CACnB,GACCJ,yCAAyC,CAACC,cAAc,CAAC;AAE/D;;;AAGM,SAAUI,mBAAmBA,CAAUC,IAAqB,EAAEL,cAAuC;EACzG,OAAOK,IAAI,CACRjB,IAAI,CACHN,eAAe,EACfT,iBAAM,CAACiC,OAAO,CAACJ,uBAAuB,CAACF,cAAc,CAAC,CAAC,CACxD;AACL;AAEA,MAAMO,wBAAwB,GAAIxB,CAAyC,IACzEV,iBAAM,CAACW,OAAO,CAACC,gDAAuB,EAAGuB,GAAG,IAAKA,GAAG,CAACC,MAAM,CAAC1B,CAAC,CAAC,CAAC,CAACK,IAAI,CAACS,gBAAK,CAACC,aAAa,CAAC;AAE3F;;;AAGM,SAAUY,oBAAoBA,CAAUL,IAAqB,EAAEtB,CAAyC;EAC5G,OAAOV,iBAAM,CAACiC,OAAO,CAACD,IAAI,EAAEE,wBAAwB,CAACxB,CAAC,CAAC,CAAC;AAC1D","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.logfmtLogger = exports.logFmt = void 0;
|
|
7
7
|
var _effectApp = require("effect-app");
|
|
8
|
-
var
|
|
8
|
+
var _RequestContext = require("../RequestContext.cjs");
|
|
9
9
|
var _shared = require("./shared.cjs");
|
|
10
10
|
const logfmtLogger = exports.logfmtLogger = _effectApp.Logger.make(_ => {
|
|
11
11
|
let {
|
|
@@ -14,7 +14,7 @@ const logfmtLogger = exports.logfmtLogger = _effectApp.Logger.make(_ => {
|
|
|
14
14
|
const c = (0, _shared.getRequestContext)(_.context);
|
|
15
15
|
const requestContext = _effectApp.Option.getOrUndefined(c);
|
|
16
16
|
if (requestContext && requestContext.name !== "_root_") {
|
|
17
|
-
annotations = _effectApp.HashMap.make(...[...annotations, ...Object.entries((0,
|
|
17
|
+
annotations = _effectApp.HashMap.make(...[...annotations, ...Object.entries((0, _RequestContext.spanAttributes)(requestContext))]);
|
|
18
18
|
}
|
|
19
19
|
const formatted = _effectApp.Logger.logfmtLogger.log({
|
|
20
20
|
..._,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","
|
|
1
|
+
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","_RequestContext","_shared","logfmtLogger","exports","Logger","make","_","annotations","c","getRequestContext","context","requestContext","Option","getOrUndefined","name","HashMap","Object","entries","spanAttributes","formatted","log","globalThis","console","logFmt","replace","defaultLogger"],"sources":["../../src/logger/logFmtLogger.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEO,MAAMG,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,iBAAM,CAACC,IAAI,CACpCC,CAAC,IAAI;EACJ,IAAI;IAAEC;EAAW,CAAE,GAAGD,CAAC;EACvB,MAAME,CAAC,GAAG,IAAAC,yBAAiB,EAACH,CAAC,CAACI,OAAO,CAAC;EACtC,MAAMC,cAAc,GAAGC,iBAAM,CAACC,cAAc,CAACL,CAAC,CAAC;EAC/C,IAAIG,cAAc,IAAIA,cAAc,CAACG,IAAI,KAAK,QAAQ,EAAE;IACtDP,WAAW,GAAGQ,kBAAO,CAACV,IAAI,CAAC,GAAG,CAC5B,GAAGE,WAAW,EACd,GAAGS,MAAM,CAACC,OAAO,CAAC,IAAAC,8BAAc,EAACP,cAAc,CAAC,CAAC,CAClD,CAAC;EACJ;EACA,MAAMQ,SAAS,GAAGf,iBAAM,CAACF,YAAY,CAACkB,GAAG,CAAC;IAAE,GAAGd,CAAC;IAAEC;EAAW,CAAE,CAAC;EAChEc,UAAU,CAACC,OAAO,CAACF,GAAG,CAACD,SAAS,CAAC;AACnC,CAAC,CACF;AAEM,MAAMI,MAAM,GAAApB,OAAA,CAAAoB,MAAA,GAAGnB,iBAAM,CAACoB,OAAO,CAACpB,iBAAM,CAACqB,aAAa,EAAEvB,YAAY,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.RequestContextContainer = exports.RCTag = void 0;
|
|
7
7
|
var _schema = require("@effect-app/schema");
|
|
8
8
|
var _effectApp = require("effect-app");
|
|
9
9
|
var _ids = require("effect-app/ids");
|
|
@@ -26,26 +26,11 @@ class RequestContextContainer extends _effectApp.Context.TagId("effect-app/Reque
|
|
|
26
26
|
locale: "en"
|
|
27
27
|
})), _effectApp.FiberRef.make).pipe(_effectApp.Effect.map(ref => RequestContextContainer.of({
|
|
28
28
|
requestContext: _effectApp.FiberRef.get(ref),
|
|
29
|
-
update: f => _effectApp.Effect.tap(_effectApp.FiberRef.updateAndGet(ref, f), rc => _effectApp.Effect.annotateCurrentSpan(spanAttributes(rc))),
|
|
29
|
+
update: f => _effectApp.Effect.tap(_effectApp.FiberRef.updateAndGet(ref, f), rc => _effectApp.Effect.annotateCurrentSpan((0, _RequestContext.spanAttributes)(rc))),
|
|
30
30
|
start: a => _effectApp.Effect.zipRight(_effectApp.FiberRef.set(ref, a), (0, _Memory.restoreFromRequestContext)(a))
|
|
31
31
|
})), _effectApp.Layer.scoped(this));
|
|
32
32
|
}
|
|
33
33
|
/** @tsplus static RequestContext.Ops Tag */
|
|
34
34
|
exports.RequestContextContainer = RequestContextContainer;
|
|
35
35
|
const RCTag = exports.RCTag = _effectApp.Context.GenericTag("@services/RCTag");
|
|
36
|
-
/**
|
|
37
|
-
* @tsplus getter RequestContext spanAttributes
|
|
38
|
-
*/
|
|
39
|
-
const spanAttributes = ctx => ({
|
|
40
|
-
"request.id": ctx.id,
|
|
41
|
-
"request.root.id": ctx.rootId,
|
|
42
|
-
"request.name": ctx.name,
|
|
43
|
-
"request.locale": ctx.locale,
|
|
44
|
-
"request.namespace": ctx.namespace,
|
|
45
|
-
...(ctx.userProfile?.sub ? {
|
|
46
|
-
"request.user.sub": ctx.userProfile.sub,
|
|
47
|
-
"request.user.roles": "roles" in ctx.userProfile ? ctx.userProfile.roles : undefined
|
|
48
|
-
} : {})
|
|
49
|
-
});
|
|
50
|
-
exports.spanAttributes = spanAttributes;
|
|
51
36
|
//# sourceMappingURL=RequestContextContainer.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_Memory","RequestContextContainer","Context","TagId","get","Effect","flatMap","_","requestContext","getOption","contextWith","Option","isSome","map","value","some","sync","none","live","andThen","RequestContext","name","NonEmptyString255","rootId","RequestId","locale","FiberRef","make","pipe","ref","of","update","f","tap","updateAndGet","rc","annotateCurrentSpan","spanAttributes","start","a","zipRight","set","restoreFromRequestContext","Layer","scoped","exports","RCTag","GenericTag"
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.cjs","names":["_schema","require","_effectApp","_ids","_RequestContext","_Memory","RequestContextContainer","Context","TagId","get","Effect","flatMap","_","requestContext","getOption","contextWith","Option","isSome","map","value","some","sync","none","live","andThen","RequestContext","name","NonEmptyString255","rootId","RequestId","locale","FiberRef","make","pipe","ref","of","update","f","tap","updateAndGet","rc","annotateCurrentSpan","spanAttributes","start","a","zipRight","set","restoreFromRequestContext","Layer","scoped","exports","RCTag","GenericTag"],"sources":["../../src/services/RequestContextContainer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEA;;;;AAIM,MAAgBK,uBACpB,SAAQC,kBAAO,CAACC,KAAK,CAAC,oCAAoC,CAAC,EAIvD;EAEJ,WAAWC,GAAGA,CAAA;IACZ,OAAOC,iBAAM,CAACC,OAAO,CAACL,uBAAuB,EAAGM,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;EACzE;EACA,WAAWC,SAASA,CAAA;IAClB,OAAOJ,iBAAM,CAACC,OAAO,CACnBD,iBAAM,CACHK,WAAW,CAAEH,CAAiB,IAAKL,kBAAO,CAACO,SAAS,CAACF,CAAC,EAAEN,uBAAuB,CAAC,CAAC,EACnFO,cAAc,IACbG,iBAAM,CAACC,MAAM,CAACJ,cAAc,CAAC,GACzBH,iBAAM,CAACQ,GAAG,CAACL,cAAc,CAACM,KAAK,CAACN,cAAc,EAAEG,iBAAM,CAACI,IAAI,CAAC,GAC5DV,iBAAM,CAACW,IAAI,CAAC,MAAML,iBAAM,CAACM,IAAI,EAAE,CAAC,CACvC;EACH;EACA,OAAgBC,IAAI,GAAGb,iBAAM,CAC1Bc,OAAO,CACNd,iBAAM,CACHW,IAAI,CAAC,MACJ,IAAII,8BAAc,CAAC;IAAEC,IAAI,EAAE,IAAAC,yBAAiB,EAAC,QAAQ,CAAC;IAAEC,MAAM,EAAE,IAAAC,cAAS,EAAC,QAAQ,CAAC;IAAEC,MAAM,EAAE;EAAI,CAAE,CAAC,CACrG,EACHC,mBAAQ,CAACC,IAAoB,CAC9B,CACAC,IAAI,CACHvB,iBAAM,CAACQ,GAAG,CAAEgB,GAAG,IACb5B,uBAAuB,CAAC6B,EAAE,CAAC;IACzBtB,cAAc,EAAEkB,mBAAQ,CAACtB,GAAG,CAACyB,GAAG,CAAC;IACjCE,MAAM,EAAGC,CAAwC,IAC/C3B,iBAAM,CAAC4B,GAAG,CAACP,mBAAQ,CAACQ,YAAY,CAACL,GAAG,EAAEG,CAAC,CAAC,EAAGG,EAAE,IAAK9B,iBAAM,CAAC+B,mBAAmB,CAAC,IAAAC,8BAAc,EAACF,EAAE,CAAC,CAAC,CAAC;IACnGG,KAAK,EAAGC,CAAiB,IAAKlC,iBAAM,CAACmC,QAAQ,CAACd,mBAAQ,CAACe,GAAG,CAACZ,GAAG,EAAEU,CAAC,CAAC,EAAE,IAAAG,iCAAyB,EAACH,CAAC,CAAC;GACjG,CAAC,CACH,EACDI,gBAAK,CAACC,MAAM,CAAC,IAAI,CAAC,CACnB;;AAGL;AAAAC,OAAA,CAAA5C,uBAAA,GAAAA,uBAAA;AACO,MAAM6C,KAAK,GAAAD,OAAA,CAAAC,KAAA,GAAG5C,kBAAO,CAAC6C,UAAU,CAAiB,iBAAiB,CAAC","ignoreList":[]}
|
package/dist/RequestContext.d.ts
CHANGED
|
@@ -29,16 +29,7 @@ declare const RequestContextParent_base: S.EnhancedClass<RequestContextParent, {
|
|
|
29
29
|
} | undefined;
|
|
30
30
|
readonly locale: "en" | "de";
|
|
31
31
|
readonly createdAt: Date;
|
|
32
|
-
}, {
|
|
33
|
-
readonly _tag: "RequestContext";
|
|
34
|
-
readonly id: string;
|
|
35
|
-
readonly name: string;
|
|
36
|
-
readonly locale: "en" | "de";
|
|
37
|
-
readonly createdAt: string;
|
|
38
|
-
readonly userProfile?: {
|
|
39
|
-
readonly sub: string;
|
|
40
|
-
} | undefined;
|
|
41
|
-
}, never, {
|
|
32
|
+
}, RequestContextParent.From, never, {
|
|
42
33
|
readonly id: NonEmptyString255;
|
|
43
34
|
readonly name: string & S.NonEmptyString255Brand;
|
|
44
35
|
readonly locale: "en" | "de";
|
|
@@ -60,16 +51,7 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
60
51
|
make: () => NonEmptyString255;
|
|
61
52
|
withDefault: S.PropertySignature<":", NonEmptyString255, never, ":", string, true, never>;
|
|
62
53
|
};
|
|
63
|
-
parent: S.PropertySignature<"?:", RequestContextParent | undefined, never, "?:",
|
|
64
|
-
readonly _tag: "RequestContext";
|
|
65
|
-
readonly id: string;
|
|
66
|
-
readonly name: string;
|
|
67
|
-
readonly locale: "en" | "de";
|
|
68
|
-
readonly createdAt: string;
|
|
69
|
-
readonly userProfile?: {
|
|
70
|
-
readonly sub: string;
|
|
71
|
-
} | undefined;
|
|
72
|
-
} | undefined, false, never>;
|
|
54
|
+
parent: S.PropertySignature<"?:", RequestContextParent | undefined, never, "?:", RequestContextParent.From | undefined, false, never>;
|
|
73
55
|
namespace: S.PropertySignature<"?:", (string & S.NonEmptyString255Brand) | undefined, never, "?:", string | undefined, false, never>;
|
|
74
56
|
name: S.WithDefaults<S.Schema<string & S.NonEmptyString255Brand, string, never>> & S.Schema<string & S.NonEmptyString255Brand, string, never>;
|
|
75
57
|
userProfile: S.PropertySignature<"?:", {
|
|
@@ -93,28 +75,7 @@ declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
|
93
75
|
readonly rootId: NonEmptyString255;
|
|
94
76
|
readonly parent?: RequestContextParent | undefined;
|
|
95
77
|
readonly namespace?: (string & S.NonEmptyString255Brand) | undefined;
|
|
96
|
-
}, {
|
|
97
|
-
readonly _tag: "RequestContext";
|
|
98
|
-
readonly id: string;
|
|
99
|
-
readonly name: string;
|
|
100
|
-
readonly locale: "en" | "de";
|
|
101
|
-
readonly createdAt: string;
|
|
102
|
-
readonly rootId: string;
|
|
103
|
-
readonly userProfile?: {
|
|
104
|
-
readonly sub: string;
|
|
105
|
-
} | undefined;
|
|
106
|
-
readonly parent?: {
|
|
107
|
-
readonly _tag: "RequestContext";
|
|
108
|
-
readonly id: string;
|
|
109
|
-
readonly name: string;
|
|
110
|
-
readonly locale: "en" | "de";
|
|
111
|
-
readonly createdAt: string;
|
|
112
|
-
readonly userProfile?: {
|
|
113
|
-
readonly sub: string;
|
|
114
|
-
} | undefined;
|
|
115
|
-
} | undefined;
|
|
116
|
-
readonly namespace?: string | undefined;
|
|
117
|
-
}, never, {
|
|
78
|
+
}, RequestContext.From, never, {
|
|
118
79
|
readonly name: string & S.NonEmptyString255Brand;
|
|
119
80
|
readonly locale: "en" | "de";
|
|
120
81
|
readonly rootId: NonEmptyString255;
|
|
@@ -139,5 +100,22 @@ export declare class RequestContext extends RequestContext_base {
|
|
|
139
100
|
locale: "en" | "de";
|
|
140
101
|
};
|
|
141
102
|
}
|
|
103
|
+
export declare const spanAttributes: (ctx: RequestContext) => {
|
|
104
|
+
"request.user.sub"?: string & import("effect-app/ids").UserProfileIdBrand;
|
|
105
|
+
"request.user.roles"?: unknown;
|
|
106
|
+
"request.id": NonEmptyString255;
|
|
107
|
+
"request.root.id": NonEmptyString255;
|
|
108
|
+
"request.name": string & S.NonEmptyString255Brand;
|
|
109
|
+
"request.locale": "en" | "de";
|
|
110
|
+
"request.namespace": (string & S.NonEmptyString255Brand) | undefined;
|
|
111
|
+
};
|
|
112
|
+
export declare namespace RequestContextParent {
|
|
113
|
+
interface From extends S.Struct.Encoded<typeof RequestContextParent["fields"]> {
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export declare namespace RequestContext {
|
|
117
|
+
interface From extends S.Struct.Encoded<typeof RequestContext["fields"]> {
|
|
118
|
+
}
|
|
119
|
+
}
|
|
142
120
|
export {};
|
|
143
121
|
//# sourceMappingURL=RequestContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,iBAAiB,EAAU,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG9B,qBAAa,oBAAqB,SAAQ,yBASxC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAelC;IAEA,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAUhE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;;;CASrD;AAED,eAAO,MAAM,cAAc,QAAS,cAAc;;;;;;;;CAiBhD,CAAA;AAKF,yBAAiB,oBAAoB,CAAC;IACpC,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;KAAG;CACzF;AACD,yBAAiB,cAAc,CAAC;IAC9B,UAAiB,IAAK,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;KAAG;CACnF"}
|
package/dist/RequestContext.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { literal, NonEmptyString255, struct
|
|
1
|
+
import { ExtendedTaggedClass, literal, NonEmptyString255, struct } from "@effect-app/schema";
|
|
2
2
|
import { S } from "effect-app";
|
|
3
3
|
import { RequestId, UserProfileId } from "effect-app/ids";
|
|
4
|
-
export class RequestContextParent extends
|
|
4
|
+
export class RequestContextParent extends ExtendedTaggedClass()("RequestContext", {
|
|
5
5
|
id: RequestId,
|
|
6
6
|
name: NonEmptyString255,
|
|
7
7
|
userProfile: S.optional(struct({ sub: UserProfileId })),
|
|
@@ -13,7 +13,7 @@ export class RequestContextParent extends TaggedClass()("RequestContext", {
|
|
|
13
13
|
* @tsplus type RequestContext
|
|
14
14
|
* @tsplus companion RequestContext.Ops
|
|
15
15
|
*/
|
|
16
|
-
export class RequestContext extends
|
|
16
|
+
export class RequestContext extends ExtendedTaggedClass()("RequestContext", {
|
|
17
17
|
...RequestContextParent.omit("_tag", "id"),
|
|
18
18
|
id: RequestId.withDefault,
|
|
19
19
|
rootId: RequestId,
|
|
@@ -45,11 +45,26 @@ export class RequestContext extends TaggedClass()("RequestContext", {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
export const spanAttributes = (ctx) => ({
|
|
49
|
+
"request.id": ctx.id,
|
|
50
|
+
"request.root.id": ctx.rootId,
|
|
51
|
+
"request.name": ctx.name,
|
|
52
|
+
"request.locale": ctx.locale,
|
|
53
|
+
"request.namespace": ctx.namespace,
|
|
54
|
+
...(ctx.userProfile?.sub
|
|
55
|
+
? {
|
|
56
|
+
"request.user.sub": ctx
|
|
57
|
+
.userProfile
|
|
58
|
+
.sub,
|
|
59
|
+
"request.user.roles": "roles" in ctx
|
|
60
|
+
.userProfile
|
|
61
|
+
? ctx.userProfile.roles
|
|
62
|
+
: undefined
|
|
63
|
+
}
|
|
64
|
+
: {})
|
|
65
|
+
});
|
|
51
66
|
/* eslint-enable */
|
|
52
67
|
//
|
|
53
68
|
// codegen:end
|
|
54
69
|
//
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM1RixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFekQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQixFQUcxRCxDQUFDLGdCQUFnQixFQUFFO0lBQ3BCLEVBQUUsRUFBRSxTQUFTO0lBQ2IsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixXQUFXLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN2RCxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVztDQUM5QixDQUFDO0NBQUc7QUFFTDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQixFQUdwRCxDQUFDLGdCQUFnQixFQUFFO0lBQ3BCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7SUFDMUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxXQUFXO0lBQ3pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO0lBQ3hDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLDhDQUE4QztJQUM5QywrQkFBK0I7SUFDL0IsdUJBQXVCO0lBQ3ZCLDZDQUE2QztJQUM3Qyw0Q0FBNEM7SUFDNUMsS0FBSztDQUNOLENBQUM7SUFDQSw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FFWixNQUFzQixFQUN0QixPQUE4RDtRQUU5RCxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztZQUM1QixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsTUFBTTtTQUNQLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFhLElBQW9CO1FBQ2xELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDYixDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQzdFLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUU7SUFDcEIsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU07SUFDN0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzVCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxTQUFTO0lBQ2xDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUc7UUFDdEIsQ0FBQyxDQUFDO1lBQ0Esa0JBQWtCLEVBQUUsR0FBRztpQkFDcEIsV0FBVztpQkFDWCxHQUFHO1lBQ04sb0JBQW9CLEVBQUUsT0FBTyxJQUFJLEdBQUc7aUJBQy9CLFdBQVc7Z0JBQ2QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSztnQkFDdkIsQ0FBQyxDQUFDLFNBQVM7U0FDZDtRQUNELENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDUixDQUFDLENBQUE7QUFXRixtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLGNBQWM7QUFDZCxFQUFFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,YAAY,CAAA;AAEhD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,YAAY,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAkD9E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,GAAG,MAAM,uIAM1G;AAKD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,oEAE7G"}
|
package/dist/api/setupRequest.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
2
|
import { Effect, Layer, pipe } from "effect-app";
|
|
3
3
|
import { RequestId } from "effect-app/ids";
|
|
4
|
-
import { RequestContext } from "../RequestContext.js";
|
|
5
|
-
import { RequestContextContainer
|
|
4
|
+
import { RequestContext, spanAttributes } from "../RequestContext.js";
|
|
5
|
+
import { RequestContextContainer } from "../services/RequestContextContainer.js";
|
|
6
6
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
|
|
7
7
|
function makeInternalRequestContext(name) {
|
|
8
8
|
return Effect.sync(() => {
|
|
@@ -46,4 +46,4 @@ const UpdateRequestContextLive = (f) => Effect.andThen(RequestContextContainer,
|
|
|
46
46
|
export function updateRequestContext(self, f) {
|
|
47
47
|
return Effect.provide(self, UpdateRequestContextLive(f));
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBRTlFLFNBQVMsMEJBQTBCLENBQUMsSUFBWTtJQUM5QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMzQixPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3hCLEVBQUU7WUFDRixNQUFNLEVBQUUsRUFBRTtZQUNWLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQztTQUM5QixDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFVLENBQWtCLEVBQUUsRUFBRSxDQUN0RCxNQUFNLENBQUMsT0FBTyxDQUNaLHVCQUF1QjtLQUNwQixHQUFHLEVBQ04sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNOLENBQUMsQ0FBQyxJQUFJLENBQ0osTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUMzRSw0RUFBNEU7QUFDNUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FDOUIsQ0FDSixDQUFBO0FBRUgsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7QUFFckcsbUZBQW1GO0FBQ25GLGlEQUFpRDtBQUNqRCxzQkFBc0I7QUFDdEIscUZBQXFGO0FBQ3JGLE1BQU0seUNBQXlDLEdBQUcsQ0FBQyxjQUE4QixFQUFFLEVBQUUsQ0FDbkYsS0FBSyxDQUFDLFlBQVksQ0FDaEIsZUFBZTtBQUNmLHNFQUFzRTtBQUN0RSxNQUFNO0tBQ0gsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQzdCLENBQUE7QUFFSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsY0FBdUMsRUFBRSxFQUFFLENBQzFFLE9BQU8sY0FBYyxLQUFLLFFBQVE7SUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FDSiwwQkFBMEIsQ0FBQyxjQUFjLENBQUMsRUFDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQyxFQUN6RCxLQUFLLENBQUMsWUFBWSxDQUNuQjtJQUNELENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQUUvRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBVSxJQUFxQixFQUFFLGNBQXVDO0lBQ3pHLE9BQU8sSUFBSTtTQUNSLElBQUksQ0FDSCxlQUFlLEVBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUN4RCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxDQUF5QyxFQUFFLEVBQUUsQ0FDN0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7QUFFM0Y7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQVUsSUFBcUIsRUFBRSxDQUF5QztJQUM1RyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDMUQsQ0FBQyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HashMap, Logger, Option } from "effect-app";
|
|
2
|
-
import { spanAttributes } from "
|
|
2
|
+
import { spanAttributes } from "../RequestContext.js";
|
|
3
3
|
import { getRequestContext } from "./shared.js";
|
|
4
4
|
export const logfmtLogger = Logger.make((_) => {
|
|
5
5
|
let { annotations } = _;
|
|
@@ -15,4 +15,4 @@ export const logfmtLogger = Logger.make((_) => {
|
|
|
15
15
|
globalThis.console.log(formatted);
|
|
16
16
|
});
|
|
17
17
|
export const logFmt = Logger.replace(Logger.defaultLogger, logfmtLogger);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nRm10TG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9sb2dGbXRMb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFL0MsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDSixJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUM1QixHQUFHLFdBQVc7WUFDZCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFBIn0=
|
|
@@ -46,7 +46,7 @@ declare const Operations_base: (abstract new (service: {
|
|
|
46
46
|
all: Effect.Effect<Operation[], never, never>;
|
|
47
47
|
find: (id: StringId) => Effect.Effect<Option.Option<Operation>, never, never>;
|
|
48
48
|
update: (id: StringId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
49
|
-
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5,
|
|
49
|
+
}) => X) => X extends Effect<infer A_3, infer E_5, infer R_5> ? Effect<A_3, E_5, R_5 | Operations> : Effect<X, never, Operations>;
|
|
50
50
|
};
|
|
51
51
|
export declare class Operations extends Operations_base {
|
|
52
52
|
private static readonly CleanupLive;
|
|
@@ -12,7 +12,7 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
12
12
|
id: StringId;
|
|
13
13
|
_tag: string;
|
|
14
14
|
}, EvtE, DrainEvtE>(_queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
|
-
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never,
|
|
15
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, {
|
|
16
16
|
make: Effect<import("@azure/service-bus").ServiceBusReceiver, never, import("effect/Scope").Scope>;
|
|
17
17
|
makeSession: (sessionId: string) => Effect<import("@azure/service-bus").ServiceBusReceiver, never, import("effect/Scope").Scope>;
|
|
18
18
|
}>>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
1
|
import { Context, Effect, Layer, Option } from "effect-app";
|
|
3
2
|
import { RequestContext } from "../RequestContext.js";
|
|
4
3
|
declare const RequestContextContainer_base: (abstract new (service: {
|
|
@@ -26,7 +25,7 @@ declare const RequestContextContainer_base: (abstract new (service: {
|
|
|
26
25
|
requestContext: Effect<RequestContext>;
|
|
27
26
|
update: (f: (rc: RequestContext) => RequestContext) => Effect<RequestContext>;
|
|
28
27
|
start: (f: RequestContext) => Effect<void>;
|
|
29
|
-
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4,
|
|
28
|
+
}) => X) => X extends Effect<infer A_3, infer E_4, infer R_4> ? Effect<A_3, E_4, R_4 | RequestContextContainer> : Effect<X, never, RequestContextContainer>;
|
|
30
29
|
};
|
|
31
30
|
/**
|
|
32
31
|
* @tsplus type RequestContextContainer
|
|
@@ -39,17 +38,5 @@ export declare abstract class RequestContextContainer extends RequestContextCont
|
|
|
39
38
|
}
|
|
40
39
|
/** @tsplus static RequestContext.Ops Tag */
|
|
41
40
|
export declare const RCTag: Context.Tag<RequestContext, RequestContext>;
|
|
42
|
-
/**
|
|
43
|
-
* @tsplus getter RequestContext spanAttributes
|
|
44
|
-
*/
|
|
45
|
-
export declare const spanAttributes: (ctx: RequestContext) => {
|
|
46
|
-
"request.user.sub"?: string & import("effect-app/ids").UserProfileIdBrand;
|
|
47
|
-
"request.user.roles"?: unknown;
|
|
48
|
-
"request.id": NonEmptyString255;
|
|
49
|
-
"request.root.id": NonEmptyString255;
|
|
50
|
-
"request.name": string & import("@effect-app/schema").NonEmptyString255Brand;
|
|
51
|
-
"request.locale": "en" | "de";
|
|
52
|
-
"request.namespace": (string & import("@effect-app/schema").NonEmptyString255Brand) | undefined;
|
|
53
|
-
};
|
|
54
41
|
export {};
|
|
55
42
|
//# sourceMappingURL=RequestContextContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../src/services/RequestContextContainer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestContextContainer.d.ts","sourceRoot":"","sources":["../../src/services/RequestContextContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAErE,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAA;;oBASjD,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;oBAF1B,OAAO,cAAc,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;WACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;;;;;qBADzB,cAAc,KAAK,cAAc;;;;wBADlC,OAAO,cAAc,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC;eACtE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,IAAI,CAAC;;;AAR9C;;;GAGG;AACH,8BAAsB,uBACpB,SAAQ,4BAIJ;IAEJ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAEvE;IACD,MAAM,KAAK,SAAS,+DASnB;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,qDAkBjB;CACJ;AAED,4CAA4C;AAC5C,eAAO,MAAM,KAAK,6CAAwD,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
2
|
import { Context, Effect, FiberRef, Layer, Option } from "effect-app";
|
|
3
3
|
import { RequestId } from "effect-app/ids";
|
|
4
|
-
import { RequestContext } from "../RequestContext.js";
|
|
4
|
+
import { RequestContext, spanAttributes } from "../RequestContext.js";
|
|
5
5
|
import { restoreFromRequestContext } from "./Store/Memory.js";
|
|
6
6
|
/**
|
|
7
7
|
* @tsplus type RequestContextContainer
|
|
@@ -28,25 +28,4 @@ export class RequestContextContainer extends Context.TagId("effect-app/RequestCo
|
|
|
28
28
|
}
|
|
29
29
|
/** @tsplus static RequestContext.Ops Tag */
|
|
30
30
|
export const RCTag = Context.GenericTag("@services/RCTag");
|
|
31
|
-
|
|
32
|
-
* @tsplus getter RequestContext spanAttributes
|
|
33
|
-
*/
|
|
34
|
-
export const spanAttributes = (ctx) => ({
|
|
35
|
-
"request.id": ctx.id,
|
|
36
|
-
"request.root.id": ctx.rootId,
|
|
37
|
-
"request.name": ctx.name,
|
|
38
|
-
"request.locale": ctx.locale,
|
|
39
|
-
"request.namespace": ctx.namespace,
|
|
40
|
-
...(ctx.userProfile?.sub
|
|
41
|
-
? {
|
|
42
|
-
"request.user.sub": ctx
|
|
43
|
-
.userProfile
|
|
44
|
-
.sub,
|
|
45
|
-
"request.user.roles": "roles" in ctx
|
|
46
|
-
.userProfile
|
|
47
|
-
? ctx.userProfile.roles
|
|
48
|
-
: undefined
|
|
49
|
-
}
|
|
50
|
-
: {})
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVxdWVzdENvbnRleHRDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUU3RDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUNwQixTQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsRUFJdkQ7SUFFSixNQUFNLEtBQUssR0FBRztRQUNaLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxNQUFNLEtBQUssU0FBUztRQUNsQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQ25CLE1BQU07YUFDSCxXQUFXLENBQUMsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEVBQ3BGLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDM0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDdkMsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLENBQVUsSUFBSSxHQUFHLE1BQU07U0FDMUIsT0FBTyxDQUNOLE1BQU07U0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ1QsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDckcsRUFDSCxDQUFBLFFBQVEsQ0FBQyxJQUFvQixDQUFBLENBQzlCO1NBQ0EsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQix1QkFBdUIsQ0FBQyxFQUFFLENBQUM7UUFDekIsY0FBYyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxDQUFDLENBQXdDLEVBQUUsRUFBRSxDQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkcsS0FBSyxFQUFFLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNsRyxDQUFDLENBQ0gsRUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNuQixDQUFBOztBQUdMLDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBaUIsaUJBQWlCLENBQUMsQ0FBQTtBQUUxRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUFFO0lBQ3BCLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzdCLGNBQWMsRUFBRSxHQUFHLENBQUMsSUFBSTtJQUN4QixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTTtJQUM1QixtQkFBbUIsRUFBRSxHQUFHLENBQUMsU0FBUztJQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHO1FBQ3RCLENBQUMsQ0FBQztZQUNBLGtCQUFrQixFQUFFLEdBQUc7aUJBQ3BCLFdBQVc7aUJBQ1gsR0FBRztZQUNOLG9CQUFvQixFQUFFLE9BQU8sSUFBSSxHQUFHO2lCQUMvQixXQUFXO2dCQUNkLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTO1NBQ2Q7UUFDRCxDQUFDLENBQUMsRUFBRSxDQUFDO0NBQ1IsQ0FBQyxDQUFBIn0=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvUmVxdWVzdENvbnRleHRDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQix1QkFDcEIsU0FBUSxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLEVBSXZEO0lBRUosTUFBTSxLQUFLLEdBQUc7UUFDWixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDbEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUNuQixNQUFNO2FBQ0gsV0FBVyxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxFQUNwRixDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDOUQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQ3ZDLENBQUE7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFVLElBQUksR0FBRyxNQUFNO1NBQzFCLE9BQU8sQ0FDTixNQUFNO1NBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUNULElBQUksY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ3JHLEVBQ0gsQ0FBQSxRQUFRLENBQUMsSUFBb0IsQ0FBQSxDQUM5QjtTQUNBLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakIsdUJBQXVCLENBQUMsRUFBRSxDQUFDO1FBQ3pCLGNBQWMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNqQyxNQUFNLEVBQUUsQ0FBQyxDQUF3QyxFQUFFLEVBQUUsQ0FDbkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25HLEtBQUssRUFBRSxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbEcsQ0FBQyxDQUNILEVBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDbkIsQ0FBQTs7QUFHTCw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQWlCLGlCQUFpQixDQUFDLENBQUEifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "0.233.
|
|
3
|
+
"version": "0.233.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"mongodb": "6.5.0",
|
|
38
38
|
"redis": "^3.1.2",
|
|
39
39
|
"ts-node": "^10.9.2",
|
|
40
|
-
"typescript": "^5.4.
|
|
40
|
+
"typescript": "^5.4.5",
|
|
41
41
|
"vitest": "^1.4.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
package/src/RequestContext.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { literal, NonEmptyString255, struct
|
|
1
|
+
import { ExtendedTaggedClass, literal, NonEmptyString255, struct } from "@effect-app/schema"
|
|
2
2
|
import { S } from "effect-app"
|
|
3
3
|
import { RequestId, UserProfileId } from "effect-app/ids"
|
|
4
4
|
|
|
5
|
-
export class RequestContextParent extends
|
|
6
|
-
RequestContextParent
|
|
5
|
+
export class RequestContextParent extends ExtendedTaggedClass<
|
|
6
|
+
RequestContextParent,
|
|
7
|
+
RequestContextParent.From
|
|
7
8
|
>()("RequestContext", {
|
|
8
9
|
id: RequestId,
|
|
9
10
|
name: NonEmptyString255,
|
|
@@ -16,8 +17,9 @@ export class RequestContextParent extends TaggedClass<
|
|
|
16
17
|
* @tsplus type RequestContext
|
|
17
18
|
* @tsplus companion RequestContext.Ops
|
|
18
19
|
*/
|
|
19
|
-
export class RequestContext extends
|
|
20
|
-
RequestContext
|
|
20
|
+
export class RequestContext extends ExtendedTaggedClass<
|
|
21
|
+
RequestContext,
|
|
22
|
+
RequestContext.From
|
|
21
23
|
>()("RequestContext", {
|
|
22
24
|
...RequestContextParent.omit("_tag", "id"),
|
|
23
25
|
id: RequestId.withDefault,
|
|
@@ -56,9 +58,34 @@ export class RequestContext extends TaggedClass<
|
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
|
|
61
|
+
export const spanAttributes = (ctx: RequestContext) => ({
|
|
62
|
+
"request.id": ctx.id,
|
|
63
|
+
"request.root.id": ctx.rootId,
|
|
64
|
+
"request.name": ctx.name,
|
|
65
|
+
"request.locale": ctx.locale,
|
|
66
|
+
"request.namespace": ctx.namespace,
|
|
67
|
+
...(ctx.userProfile?.sub
|
|
68
|
+
? {
|
|
69
|
+
"request.user.sub": ctx
|
|
70
|
+
.userProfile
|
|
71
|
+
.sub,
|
|
72
|
+
"request.user.roles": "roles" in ctx
|
|
73
|
+
.userProfile
|
|
74
|
+
? ctx.userProfile.roles
|
|
75
|
+
: undefined
|
|
76
|
+
}
|
|
77
|
+
: {})
|
|
78
|
+
})
|
|
79
|
+
|
|
59
80
|
// codegen:start {preset: model}
|
|
60
81
|
//
|
|
61
82
|
/* eslint-disable */
|
|
83
|
+
export namespace RequestContextParent {
|
|
84
|
+
export interface From extends S.Struct.Encoded<typeof RequestContextParent["fields"]> {}
|
|
85
|
+
}
|
|
86
|
+
export namespace RequestContext {
|
|
87
|
+
export interface From extends S.Struct.Encoded<typeof RequestContext["fields"]> {}
|
|
88
|
+
}
|
|
62
89
|
/* eslint-enable */
|
|
63
90
|
//
|
|
64
91
|
// codegen:end
|
package/src/api/setupRequest.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { NonEmptyString255 } from "@effect-app/schema"
|
|
2
2
|
import { Effect, Layer, pipe } from "effect-app"
|
|
3
3
|
import { RequestId } from "effect-app/ids"
|
|
4
|
-
import { RequestContext } from "../RequestContext.js"
|
|
5
|
-
import { RequestContextContainer
|
|
4
|
+
import { RequestContext, spanAttributes } from "../RequestContext.js"
|
|
5
|
+
import { RequestContextContainer } from "../services/RequestContextContainer.js"
|
|
6
6
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js"
|
|
7
7
|
|
|
8
8
|
function makeInternalRequestContext(name: string) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HashMap, Logger, Option } from "effect-app"
|
|
2
|
-
import { spanAttributes } from "
|
|
2
|
+
import { spanAttributes } from "../RequestContext.js"
|
|
3
3
|
import { getRequestContext } from "./shared.js"
|
|
4
4
|
|
|
5
5
|
export const logfmtLogger = Logger.make<unknown, void>(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NonEmptyString255 } from "@effect-app/schema"
|
|
2
2
|
import { Context, Effect, FiberRef, Layer, Option } from "effect-app"
|
|
3
3
|
import { RequestId } from "effect-app/ids"
|
|
4
|
-
import { RequestContext } from "../RequestContext.js"
|
|
4
|
+
import { RequestContext, spanAttributes } from "../RequestContext.js"
|
|
5
5
|
import { restoreFromRequestContext } from "./Store/Memory.js"
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -51,25 +51,3 @@ export abstract class RequestContextContainer
|
|
|
51
51
|
|
|
52
52
|
/** @tsplus static RequestContext.Ops Tag */
|
|
53
53
|
export const RCTag = Context.GenericTag<RequestContext>("@services/RCTag")
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @tsplus getter RequestContext spanAttributes
|
|
57
|
-
*/
|
|
58
|
-
export const spanAttributes = (ctx: RequestContext) => ({
|
|
59
|
-
"request.id": ctx.id,
|
|
60
|
-
"request.root.id": ctx.rootId,
|
|
61
|
-
"request.name": ctx.name,
|
|
62
|
-
"request.locale": ctx.locale,
|
|
63
|
-
"request.namespace": ctx.namespace,
|
|
64
|
-
...(ctx.userProfile?.sub
|
|
65
|
-
? {
|
|
66
|
-
"request.user.sub": ctx
|
|
67
|
-
.userProfile
|
|
68
|
-
.sub,
|
|
69
|
-
"request.user.roles": "roles" in ctx
|
|
70
|
-
.userProfile
|
|
71
|
-
? ctx.userProfile.roles
|
|
72
|
-
: undefined
|
|
73
|
-
}
|
|
74
|
-
: {})
|
|
75
|
-
})
|