@effect-app/infra 1.46.0 → 1.46.2
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 +12 -0
- package/_cjs/RequestContext.cjs +1 -1
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +7 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +2 -2
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +1 -1
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +1 -1
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +2 -2
- package/_cjs/logger/shared.cjs.map +1 -1
- package/dist/RequestContext.d.ts +2 -4
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +3 -3
- package/dist/api/setupRequest.d.ts +5 -0
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +7 -2
- package/dist/errorReporter.js +4 -4
- package/dist/logger/jsonLogger.js +3 -3
- package/dist/logger/logFmtLogger.js +3 -3
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +2 -2
- package/dist/services/QueueMaker/sbqueue.d.ts +1 -1
- package/package.json +4 -4
- package/src/RequestContext.ts +4 -4
- package/src/api/setupRequest.ts +7 -1
- package/src/errorReporter.ts +3 -3
- package/src/logger/jsonLogger.ts +2 -2
- package/src/logger/logFmtLogger.ts +2 -2
- package/src/logger/shared.ts +1 -1
package/CHANGELOG.md
CHANGED
package/_cjs/RequestContext.cjs
CHANGED
|
@@ -13,7 +13,7 @@ const LocaleRef = exports.LocaleRef = _effectApp.FiberRef.unsafeMake("en");
|
|
|
13
13
|
* @tsplus type RequestContext
|
|
14
14
|
* @tsplus companion RequestContext.Ops
|
|
15
15
|
*/
|
|
16
|
-
class RequestContext extends
|
|
16
|
+
class RequestContext extends _effectApp.S.ExtendedClass()({
|
|
17
17
|
span: _effectApp.S.Struct({
|
|
18
18
|
traceId: _effectApp.S.String,
|
|
19
19
|
spanId: _effectApp.S.String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.cjs","names":["_schema","require","_effectApp","_ids","Locale","exports","S","Literal","LocaleRef","FiberRef","unsafeMake","RequestContext","
|
|
1
|
+
{"version":3,"file":"RequestContext.cjs","names":["_schema","require","_effectApp","_ids","Locale","exports","S","Literal","LocaleRef","FiberRef","unsafeMake","RequestContext","ExtendedClass","span","Struct","traceId","String","spanId","sampled","Boolean","name","NonEmptyString255","locale","sourceId","optional","namespace","userProfile","sub","UserProfileId","toMonitoring","self","operationName","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;AAEO,MAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGE,YAAC,CAACC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAGpC,MAAMC,SAAS,GAAAH,OAAA,CAAAG,SAAA,GAAGC,mBAAQ,CAACC,UAAU,CAAS,IAAI,CAAC;AAE1D;;;;AAIM,MAAOC,cAAe,SAAQL,YAAC,CAACM,aAAa,EAGhD,CAAC;EACFC,IAAI,EAAEP,YAAC,CAACQ,MAAM,CAAC;IACbC,OAAO,EAAET,YAAC,CAACU,MAAM;IACjBC,MAAM,EAAEX,YAAC,CAACU,MAAM;IAChBE,OAAO,EAAEZ,YAAC,CAACa;GACZ,CAAC;EACFC,IAAI,EAAEC,yBAAiB;EACvBC,MAAM,EAAElB,MAAM;EACdmB,QAAQ,EAAEjB,YAAC,CAACkB,QAAQ,CAACH,yBAAiB,CAAC;EAAE;EACzCI,SAAS,EAAEJ,yBAAiB;EAC5B;EACAK,WAAW,EAAEpB,YAAC,CAACkB,QAAQ,CAAClB,YAAC,CAACQ,MAAM,CAAC;IAAEa,GAAG,EAAEC;EAAa,CAAE,CAAC,CAAC,CAAC;CAC3D,CAAC;EACA;EAEA,OAAOC,YAAYA,CAAaC,IAAoB;IAClD,OAAO;MACLC,aAAa,EAAED,IAAI,CAACV,IAAI;MACxBE,MAAM,EAAEQ,IAAI,CAACR;KACd;EACH;;AACDjB,OAAA,CAAAM,cAAA,GAAAA,cAAA;AAEM,MAAMqB,cAAc,GAAIC,GAA2E,KAAM;EAC9G,cAAc,EAAEA,GAAG,CAACb,IAAI;EACxB,gBAAgB,EAAEa,GAAG,CAACX,MAAM;EAC5B,mBAAmB,EAAEW,GAAG,CAACR,SAAS;EAClC,IAAGQ,GAAG,CAACV,QAAQ,GAAG;IAAE,mBAAmB,EAAEU,GAAG,CAACV;EAAQ,CAAE,GAAG,EAAE;EAC5D,IAAIU,GAAG,CAACP,WAAW,EAAEC,GAAG,GACpB;IACA,kBAAkB,EAAEM,GAAG,CACpBP,WAAW,CACXC,GAAG;IACN,oBAAoB,EAAE,OAAO,IAAIM,GAAG,CAC/BP,WAAW,GACZO,GAAG,CAACP,WAAW,CAACQ,KAAK,GACrBC;GACL,GACC,EAAE;CACP,CAAC;AAQF;AACA;AACA;AACA;AAAA9B,OAAA,CAAA2B,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getRequestContext = void 0;
|
|
6
|
+
exports.getRequestContext = exports.getRC = void 0;
|
|
7
7
|
exports.setupRequestContext = setupRequestContext;
|
|
8
8
|
exports.setupRequestContextFromCurrent = void 0;
|
|
9
9
|
var _schema = require("@effect-app/schema");
|
|
@@ -26,7 +26,11 @@ const getRequestContext = exports.getRequestContext = _effectApp.Effect.all({
|
|
|
26
26
|
// TODO: get through span context, or don't care at all.
|
|
27
27
|
name: (0, _schema.NonEmptyString255)("_root_")
|
|
28
28
|
})));
|
|
29
|
-
const
|
|
29
|
+
const getRC = exports.getRC = _effectApp.Effect.all({
|
|
30
|
+
locale: _effectApp.FiberRef.get(_RequestContext.LocaleRef),
|
|
31
|
+
namespace: _effectApp.FiberRef.get(_Memory.storeId)
|
|
32
|
+
});
|
|
33
|
+
const withRequestSpan = (name = "request") => f => _effectApp.Effect.andThen(getRC, ctx => f.pipe(_effectApp.Effect.withSpan(name, {
|
|
30
34
|
attributes: (0, _RequestContext.spanAttributes)(ctx),
|
|
31
35
|
captureStackTrace: false
|
|
32
36
|
}),
|
|
@@ -35,6 +39,7 @@ const withRequestSpan = (name = "request") => f => _effectApp.Effect.andThen(get
|
|
|
35
39
|
_effectApp.Effect.withLogSpan(name)));
|
|
36
40
|
const setupContextMap = _effectApp.Effect.andThen(_ContextMapContainer.ContextMapContainer, _ => _.start).pipe(_effectApp.Layer.effectDiscard);
|
|
37
41
|
const setupRequestContextFromCurrent = (name = "request") => self => self.pipe(withRequestSpan(name), _effectApp.Effect.provide(setupContextMap));
|
|
42
|
+
// TODO: consider integrating Effect.withParentSpan
|
|
38
43
|
exports.setupRequestContextFromCurrent = setupRequestContextFromCurrent;
|
|
39
44
|
function setupRequestContext(self, requestContext) {
|
|
40
45
|
return _effectApp.Effect.gen(function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.cjs","names":["_schema","require","_effectApp","_RequestContext","_ContextMapContainer","_Memory","getRequestContext","exports","Effect","all","span","currentSpan","pipe","orDie","locale","FiberRef","get","LocaleRef","namespace","storeId","map","RequestContext","name","NonEmptyString255","withRequestSpan","f","andThen","ctx","withSpan","attributes","spanAttributes","captureStackTrace","withLogSpan","setupContextMap","ContextMapContainer","_","start","Layer","effectDiscard","setupRequestContextFromCurrent","self","provide","setupRequestContext","requestContext","gen","set"],"sources":["../../src/api/setupRequest.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAGE,iBAAM,CACpCC,GAAG,CAAC;EACHC,IAAI,EAAEF,iBAAM,CAACG,WAAW,CAACC,IAAI,CAACJ,iBAAM,CAACK,KAAK,CAAC;EAC3CC,MAAM,EAAEC,mBAAQ,CAACC,GAAG,CAACC,yBAAS,CAAC;EAC/BC,SAAS,EAAEH,mBAAQ,CAACC,GAAG,CAACG,eAAO;CAChC,CAAC,CACDP,IAAI,CACHJ,iBAAM,CAACY,GAAG,CAAC,CAAC;EAAEN,MAAM;EAAEI,SAAS;EAAER;AAAI,CAAE,KACrC,IAAIW,8BAAc,CAAC;EACjBX,IAAI;EACJI,MAAM;EACNI,SAAS;EACT;EACAI,IAAI,EAAE,IAAAC,yBAAiB,EAAC,QAAQ;CACjC,CAAC,CACH,CACF;
|
|
1
|
+
{"version":3,"file":"setupRequest.cjs","names":["_schema","require","_effectApp","_RequestContext","_ContextMapContainer","_Memory","getRequestContext","exports","Effect","all","span","currentSpan","pipe","orDie","locale","FiberRef","get","LocaleRef","namespace","storeId","map","RequestContext","name","NonEmptyString255","getRC","withRequestSpan","f","andThen","ctx","withSpan","attributes","spanAttributes","captureStackTrace","withLogSpan","setupContextMap","ContextMapContainer","_","start","Layer","effectDiscard","setupRequestContextFromCurrent","self","provide","setupRequestContext","requestContext","gen","set"],"sources":["../../src/api/setupRequest.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEO,MAAMK,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAGE,iBAAM,CACpCC,GAAG,CAAC;EACHC,IAAI,EAAEF,iBAAM,CAACG,WAAW,CAACC,IAAI,CAACJ,iBAAM,CAACK,KAAK,CAAC;EAC3CC,MAAM,EAAEC,mBAAQ,CAACC,GAAG,CAACC,yBAAS,CAAC;EAC/BC,SAAS,EAAEH,mBAAQ,CAACC,GAAG,CAACG,eAAO;CAChC,CAAC,CACDP,IAAI,CACHJ,iBAAM,CAACY,GAAG,CAAC,CAAC;EAAEN,MAAM;EAAEI,SAAS;EAAER;AAAI,CAAE,KACrC,IAAIW,8BAAc,CAAC;EACjBX,IAAI;EACJI,MAAM;EACNI,SAAS;EACT;EACAI,IAAI,EAAE,IAAAC,yBAAiB,EAAC,QAAQ;CACjC,CAAC,CACH,CACF;AAEI,MAAMC,KAAK,GAAAjB,OAAA,CAAAiB,KAAA,GAAGhB,iBAAM,CAACC,GAAG,CAAC;EAC9BK,MAAM,EAAEC,mBAAQ,CAACC,GAAG,CAACC,yBAAS,CAAC;EAC/BC,SAAS,EAAEH,mBAAQ,CAACC,GAAG,CAACG,eAAO;CAChC,CAAC;AAEF,MAAMM,eAAe,GAAGA,CAACH,IAAI,GAAG,SAAS,KAAeI,CAAkB,IACxElB,iBAAM,CAACmB,OAAO,CACZH,KAAK,EACJI,GAAG,IACFF,CAAC,CAACd,IAAI,CACJJ,iBAAM,CAACqB,QAAQ,CAACP,IAAI,EAAE;EAAEQ,UAAU,EAAE,IAAAC,8BAAc,EAACH,GAAG,CAAC;EAAEI,iBAAiB,EAAE;AAAK,CAAE,CAAC;AACpF;AACA;AACAxB,iBAAM,CAACyB,WAAW,CAACX,IAAI,CAAC,CACzB,CACJ;AAEH,MAAMY,eAAe,GAAG1B,iBAAM,CAACmB,OAAO,CAACQ,wCAAmB,EAAGC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAAC,CAACzB,IAAI,CAAC0B,gBAAK,CAACC,aAAa,CAAC;AAE9F,MAAMC,8BAA8B,GAAGA,CAAClB,IAAI,GAAG,SAAS,KAAemB,IAAqB,IACjGA,IAAI,CACD7B,IAAI,CACHa,eAAe,CAACH,IAAI,CAAC,EACrBd,iBAAM,CAACkC,OAAO,CAACR,eAAe,CAAC,CAChC;AAEL;AAAA3B,OAAA,CAAAiC,8BAAA,GAAAA,8BAAA;AACM,SAAUG,mBAAmBA,CAAUF,IAAqB,EAAEG,cAA8B;EAChG,OAAOpC,iBAAM,CAACqC,GAAG,CAAC,aAAS;IACzB,OAAO9B,mBAAQ,CAAC+B,GAAG,CAAC7B,yBAAS,EAAE2B,cAAc,CAAC9B,MAAM,CAAC;IACrD,OAAOC,mBAAQ,CAAC+B,GAAG,CAAC3B,eAAO,EAAEyB,cAAc,CAAC1B,SAAS,CAAC;IAEtD,OAAO,OAAOuB,IAAI,CACf7B,IAAI,CACHa,eAAe,CAACmB,cAAc,CAACtB,IAAI,CAAC,EACpCd,iBAAM,CAACkC,OAAO,CAACR,eAAe,CAAC,CAChC;EACL,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/_cjs/errorReporter.cjs
CHANGED
|
@@ -33,7 +33,7 @@ function reportError(name) {
|
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
function reportSentry(error, extras) {
|
|
36
|
-
return _setupRequest.
|
|
36
|
+
return _setupRequest.getRC.pipe(_effectApp.Effect.map(context => {
|
|
37
37
|
const scope = new Sentry.Scope();
|
|
38
38
|
if (context) scope.setContext("context", context);
|
|
39
39
|
if (extras) scope.setContext("extras", extras);
|
|
@@ -62,7 +62,7 @@ function captureException(error) {
|
|
|
62
62
|
console.error(error);
|
|
63
63
|
}
|
|
64
64
|
function reportMessage(message, extras) {
|
|
65
|
-
return _setupRequest.
|
|
65
|
+
return _setupRequest.getRC.pipe(_effectApp.Effect.map(context => {
|
|
66
66
|
const scope = new Sentry.Scope();
|
|
67
67
|
if (context) scope.setContext("context", context);
|
|
68
68
|
if (extras) scope.setContext("extras", extras);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_setupRequest","_errors","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","Cause","isInterrupted","InfraLogger","logDebug","pipe","annotateLogs","JSON","stringify","error","CauseException","reportSentry","logError","dropUndefined","tryToJson","__error_name__","catchAllCause","ErrorReported","
|
|
1
|
+
{"version":3,"file":"errorReporter.cjs","names":["_utils","require","Sentry","_interopRequireWildcard","_effectApp","_setupRequest","_errors","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","reportError","name","cause","extras","Effect","gen","Cause","isInterrupted","InfraLogger","logDebug","pipe","annotateLogs","JSON","stringify","error","CauseException","reportSentry","logError","dropUndefined","tryToJson","__error_name__","catchAllCause","ErrorReported","getRC","map","context","scope","Scope","setContext","originalCause","captureException","logWarning","console","reportMessage","message","captureMessage","warn"],"sources":["../src/errorReporter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ const jsonLogger = exports.jsonLogger = _effectApp.Logger.make(({
|
|
|
17
17
|
}) => {
|
|
18
18
|
const now = new Date();
|
|
19
19
|
const nowMillis = now.getTime();
|
|
20
|
-
const request = (0, _shared.
|
|
20
|
+
const request = (0, _shared.getRequestContextFromFiberRefs)(context);
|
|
21
21
|
const data = {
|
|
22
22
|
timestamp: now,
|
|
23
23
|
level: logLevel.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonLogger.cjs","names":["_effectApp","require","_shared","jsonLogger","exports","Logger","make","annotations","cause","context","fiberId","logLevel","message","spans","now","Date","nowMillis","getTime","request","
|
|
1
|
+
{"version":3,"file":"jsonLogger.cjs","names":["_effectApp","require","_shared","jsonLogger","exports","Logger","make","annotations","cause","context","fiberId","logLevel","message","spans","now","Date","nowMillis","getTime","request","getRequestContextFromFiberRefs","data","timestamp","level","label","fiber","FiberId","threadName","Cause","empty","pretty","renderErrorCause","undefined","List","map","_","timing","startTime","pipe","toArray","HashMap","size","reduce","prev","k","v","globalThis","console","log","JSON","stringify","logJson","replace","defaultLogger","withSpanAnnotations"],"sources":["../../src/logger/jsonLogger.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEO,MAAME,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGE,iBAAM,CAACC,IAAI,CACnC,CAAC;EAAEC,WAAW;EAAEC,KAAK;EAAEC,OAAO;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,OAAO;EAAEC;AAAK,CAAE,KAAI;EACrE,MAAMC,GAAG,GAAG,IAAIC,IAAI,EAAE;EACtB,MAAMC,SAAS,GAAGF,GAAG,CAACG,OAAO,EAAE;EAE/B,MAAMC,OAAO,GAAG,IAAAC,sCAA8B,EAACV,OAAO,CAAC;EAEvD,MAAMW,IAAI,GAAG;IACXC,SAAS,EAAEP,GAAG;IACdQ,KAAK,EAAEX,QAAQ,CAACY,KAAK;IACrBC,KAAK,EAAEC,kBAAO,CAACC,UAAU,CAAChB,OAAO,CAAC;IAClCE,OAAO;IACPM,OAAO;IACPV,KAAK,EAAEA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKmB,gBAAK,CAACC,KAAK,GAAGD,gBAAK,CAACE,MAAM,CAACrB,KAAK,EAAE;MAAEsB,gBAAgB,EAAE;IAAI,CAAE,CAAC,GAAGC,SAAS;IAC5GlB,KAAK,EAAEmB,eAAI,CAACC,GAAG,CAACpB,KAAK,EAAGqB,CAAC,KAAM;MAAEX,KAAK,EAAEW,CAAC,CAACX,KAAK;MAAEY,MAAM,EAAEnB,SAAS,GAAGkB,CAAC,CAACE;IAAS,CAAE,CAAC,CAAC,CAACC,IAAI,CAACL,eAAI,CAACM,OAAO,CAAC;IACvG/B,WAAW,EAAEgC,kBAAO,CAACC,IAAI,CAACjC,WAAW,CAAC,GAAG,CAAC,GACtC,CAAC,GAAGA,WAAW,CAAC,CAACkC,MAAM,CAAC,CAACC,IAAI,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAI;MACzCF,IAAI,CAACC,CAAC,CAAC,GAAGC,CAAC;MACX,OAAOF,IAAI;IACb,CAAC,EAAE,EAA6B,CAAC,GAC/BX;GACL;EAEDc,UAAU,CAACC,OAAO,CAACC,GAAG,CAACC,IAAI,CAACC,SAAS,CAAC7B,IAAI,CAAC,CAAC;AAC9C,CAAC,CACF;AAEM,MAAM8B,OAAO,GAAA9C,OAAA,CAAA8C,OAAA,GAAG7C,iBAAM,CAAC8C,OAAO,CAAC9C,iBAAM,CAAC+C,aAAa,EAAE/C,iBAAM,CAACgD,mBAAmB,CAAClD,UAAU,CAAC,CAAC","ignoreList":[]}
|
|
@@ -11,7 +11,7 @@ const logfmtLogger = exports.logfmtLogger = _effectApp.Logger.make(_ => {
|
|
|
11
11
|
let {
|
|
12
12
|
annotations
|
|
13
13
|
} = _;
|
|
14
|
-
const requestContext = (0, _shared.
|
|
14
|
+
const requestContext = (0, _shared.getRequestContextFromFiberRefs)(_.context);
|
|
15
15
|
if (requestContext && requestContext.name !== "_root_") {
|
|
16
16
|
annotations = _effectApp.HashMap.make(...[...annotations, ...Object.entries((0, _RequestContext.spanAttributes)(requestContext))]);
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","_RequestContext","_shared","logfmtLogger","exports","Logger","make","_","annotations","requestContext","
|
|
1
|
+
{"version":3,"file":"logFmtLogger.cjs","names":["_effectApp","require","_RequestContext","_shared","logfmtLogger","exports","Logger","make","_","annotations","requestContext","getRequestContextFromFiberRefs","context","name","HashMap","Object","entries","spanAttributes","formatted","log","globalThis","console","logFmt","replace","defaultLogger","withSpanAnnotations"],"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,sCAA8B,EAACH,CAAC,CAACI,OAAO,CAAC;EAChE,IAAIF,cAAc,IAAIA,cAAc,CAACG,IAAI,KAAK,QAAQ,EAAE;IACtDJ,WAAW,GAAGK,kBAAO,CAACP,IAAI,CAAC,GAAG,CAC5B,GAAGE,WAAW,EACd,GAAGM,MAAM,CAACC,OAAO,CAAC,IAAAC,8BAAc,EAACP,cAAc,CAAC,CAAC,CAClD,CAAC;EACJ;EACA,MAAMQ,SAAS,GAAGZ,iBAAM,CAACF,YAAY,CAACe,GAAG,CAAC;IAAE,GAAGX,CAAC;IAAEC;EAAW,CAAE,CAAC;EAChEW,UAAU,CAACC,OAAO,CAACF,GAAG,CAACD,SAAS,CAAC;AACnC,CAAC,CACF;AAEM,MAAMI,MAAM,GAAAjB,OAAA,CAAAiB,MAAA,GAAGhB,iBAAM,CAACiB,OAAO,CAACjB,iBAAM,CAACkB,aAAa,EAAElB,iBAAM,CAACmB,mBAAmB,CAACrB,YAAY,CAAC,CAAC","ignoreList":[]}
|
package/_cjs/logger/shared.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.getRequestContextFromFiberRefs = getRequestContextFromFiberRefs;
|
|
7
7
|
var _schema = require("@effect-app/schema");
|
|
8
8
|
var _effectApp = require("effect-app");
|
|
9
9
|
var FiberRefs = _interopRequireWildcard(require("effect/FiberRefs"));
|
|
@@ -11,7 +11,7 @@ var _RequestContext = require("../RequestContext.cjs");
|
|
|
11
11
|
var _Memory = require("../services/Store/Memory.cjs");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
-
function
|
|
14
|
+
function getRequestContextFromFiberRefs(fiberRefs) {
|
|
15
15
|
const context = FiberRefs.getOrDefault(fiberRefs, _effectApp.FiberRef.currentContext);
|
|
16
16
|
const span = _effectApp.Context.getOption(context, _effectApp.Tracer.ParentSpan);
|
|
17
17
|
const locale = FiberRefs.getOrDefault(fiberRefs, _RequestContext.LocaleRef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.cjs","names":["_schema","require","_effectApp","FiberRefs","_interopRequireWildcard","_RequestContext","_Memory","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","
|
|
1
|
+
{"version":3,"file":"shared.cjs","names":["_schema","require","_effectApp","FiberRefs","_interopRequireWildcard","_RequestContext","_Memory","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","getRequestContextFromFiberRefs","fiberRefs","context","getOrDefault","FiberRef","currentContext","span","Context","getOption","Tracer","ParentSpan","locale","LocaleRef","namespace","storeId","RequestContext","Option","getOrElse","spanId","sampled","traceId","name","NonEmptyString255"],"sources":["../../src/logger/shared.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAqD,SAAAM,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,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE/C,SAAUW,8BAA8BA,CAACC,SAA8B;EAC3E,MAAMC,OAAO,GAAG1B,SAAS,CAAC2B,YAAY,CAACF,SAAS,EAAEG,mBAAQ,CAACC,cAAc,CAAC;EAC1E,MAAMC,IAAI,GAAGC,kBAAO,CAACC,SAAS,CAACN,OAAO,EAAEO,iBAAM,CAACC,UAAU,CAAC;EAC1D,MAAMC,MAAM,GAAGnC,SAAS,CAAC2B,YAAY,CAACF,SAAS,EAAEW,yBAAS,CAAC;EAC3D,MAAMC,SAAS,GAAGrC,SAAS,CAAC2B,YAAY,CAACF,SAAS,EAAEa,eAAO,CAAC;EAC5D,OAAO,IAAIC,8BAAc,CAAC;IACxBT,IAAI,EAAEU,iBAAM,CAACC,SAAS,CACpBX,IAAI,EACJ,OAAO;MAAEY,MAAM,EAAE,OAAO;MAAEC,OAAO,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAO,CAAE,CAAC,CAC7D;IACDC,IAAI,EAAE,IAAAC,yBAAiB,EAAC,GAAG,CAAC;IAC5BX,MAAM;IACNE;GACD,CAAC;AACJ","ignoreList":[]}
|
package/dist/RequestContext.d.ts
CHANGED
|
@@ -3,8 +3,6 @@ export declare const Locale: S.Literal<["en", "de"]>;
|
|
|
3
3
|
export type Locale = typeof Locale.Type;
|
|
4
4
|
export declare const LocaleRef: FiberRef.FiberRef<"en" | "de">;
|
|
5
5
|
declare const RequestContext_base: S.EnhancedClass<RequestContext, {
|
|
6
|
-
readonly _tag: S.tag<"RequestContext">;
|
|
7
|
-
} & {
|
|
8
6
|
span: import("@effect/schema/Schema").Struct<{
|
|
9
7
|
traceId: typeof S.String;
|
|
10
8
|
spanId: typeof S.String;
|
|
@@ -50,11 +48,11 @@ export declare class RequestContext extends RequestContext_base {
|
|
|
50
48
|
locale: "en" | "de";
|
|
51
49
|
};
|
|
52
50
|
}
|
|
53
|
-
export declare const spanAttributes: (ctx: RequestContext) => {
|
|
51
|
+
export declare const spanAttributes: (ctx: Pick<RequestContext, "locale" | "namespace"> & Partial<RequestContext>) => {
|
|
54
52
|
"request.user.sub"?: string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand;
|
|
55
53
|
"request.user.roles"?: unknown;
|
|
56
54
|
"request.source.id"?: string & S.NonEmptyString255Brand;
|
|
57
|
-
"request.name": string & S.NonEmptyString255Brand;
|
|
55
|
+
"request.name": (string & S.NonEmptyString255Brand) | undefined;
|
|
58
56
|
"request.locale": "en" | "de";
|
|
59
57
|
"request.namespace": string & S.NonEmptyString255Brand;
|
|
60
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAGxC,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,SAAS,gCAAoC,CAAA
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAGxC,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,SAAS,gCAAoC,CAAA;;;;;;;;;;;;;IAmBxD,kBAAkB;;;;2BAkBG,iBAElB;;;2BAegC,iBAAiB;;;;;;;;;;;;;;;;;AApDtD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAelC;IAGA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;CAMrD;AAED,eAAO,MAAM,cAAc,QAAS,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;CAgBxG,CAAA;AAKF,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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NonEmptyString255 } from "@effect-app/schema";
|
|
2
2
|
import { FiberRef, S } from "effect-app";
|
|
3
3
|
import { UserProfileId } from "effect-app/ids";
|
|
4
4
|
export const Locale = S.Literal("en", "de");
|
|
@@ -7,7 +7,7 @@ export const LocaleRef = FiberRef.unsafeMake("en");
|
|
|
7
7
|
* @tsplus type RequestContext
|
|
8
8
|
* @tsplus companion RequestContext.Ops
|
|
9
9
|
*/
|
|
10
|
-
export class RequestContext extends
|
|
10
|
+
export class RequestContext extends S.ExtendedClass()({
|
|
11
11
|
span: S.Struct({
|
|
12
12
|
traceId: S.String,
|
|
13
13
|
spanId: S.String,
|
|
@@ -49,4 +49,4 @@ export const spanAttributes = (ctx) => ({
|
|
|
49
49
|
//
|
|
50
50
|
// codegen:end
|
|
51
51
|
//
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUczQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBUyxJQUFJLENBQUMsQ0FBQTtBQUUxRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLENBQUMsQ0FBQyxhQUFhLEVBR2hELENBQUM7SUFDRixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO0tBQ25CLENBQUM7SUFDRixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNO0lBQ2QsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRO0lBQ2pELFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsa0JBQWtCO0lBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Q0FDN0QsQ0FBQztJQUNBLDZDQUE2QztJQUU3QyxNQUFNLENBQUMsWUFBWSxDQUFhLElBQW9CO1FBQ2xELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUEyRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLGNBQWMsRUFBRSxHQUFHLENBQUMsSUFBSTtJQUN4QixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsTUFBTTtJQUM1QixtQkFBbUIsRUFBRSxHQUFHLENBQUMsU0FBUztJQUNsQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUc7UUFDdEIsQ0FBQyxDQUFDO1lBQ0Esa0JBQWtCLEVBQUUsR0FBRztpQkFDcEIsV0FBVztpQkFDWCxHQUFHO1lBQ04sb0JBQW9CLEVBQUUsT0FBTyxJQUFJLEdBQUc7aUJBQy9CLFdBQVc7Z0JBQ2QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSztnQkFDdkIsQ0FBQyxDQUFDLFNBQVM7U0FDZDtRQUNELENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDUixDQUFDLENBQUE7QUFRRixtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLGNBQWM7QUFDZCxFQUFFIn0=
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { NonEmptyString255 } from "@effect-app/schema";
|
|
1
2
|
import { Effect } from "effect-app";
|
|
2
3
|
import { RequestContext } from "../RequestContext.js";
|
|
3
4
|
import { ContextMapContainer } from "../services/Store/ContextMapContainer.js";
|
|
4
5
|
export declare const getRequestContext: Effect.Effect<RequestContext, never, never>;
|
|
6
|
+
export declare const getRC: Effect.Effect<{
|
|
7
|
+
locale: "en" | "de";
|
|
8
|
+
namespace: NonEmptyString255;
|
|
9
|
+
}, never, never>;
|
|
5
10
|
export declare const setupRequestContextFromCurrent: (name?: string) => <R, E, A>(self: Effect<A, E, R>) => Effect.Effect<A, E, ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
|
|
6
11
|
export declare function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext): Effect.Effect<A, E, ContextMapContainer | Exclude<Exclude<R, import("effect/Tracer").ParentSpan>, never>>;
|
|
7
12
|
//# sourceMappingURL=setupRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAmB,MAAM,YAAY,CAAA;AACpD,OAAO,EAAa,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAG9E,eAAO,MAAM,iBAAiB,6CAgB3B,CAAA;AAEH,eAAO,MAAM,KAAK;;;gBAGhB,CAAA;AAgBF,eAAO,MAAM,8BAA8B,sBAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8GAK9F,CAAA;AAGL,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,6GAWjG"}
|
package/dist/api/setupRequest.js
CHANGED
|
@@ -16,13 +16,18 @@ export const getRequestContext = Effect
|
|
|
16
16
|
// TODO: get through span context, or don't care at all.
|
|
17
17
|
name: NonEmptyString255("_root_")
|
|
18
18
|
})));
|
|
19
|
-
const
|
|
19
|
+
export const getRC = Effect.all({
|
|
20
|
+
locale: FiberRef.get(LocaleRef),
|
|
21
|
+
namespace: FiberRef.get(storeId)
|
|
22
|
+
});
|
|
23
|
+
const withRequestSpan = (name = "request") => (f) => Effect.andThen(getRC, (ctx) => f.pipe(Effect.withSpan(name, { attributes: spanAttributes(ctx), captureStackTrace: false }),
|
|
20
24
|
// TODO: false
|
|
21
25
|
// request context info is picked up directly in the logger for annotations.
|
|
22
26
|
Effect.withLogSpan(name)));
|
|
23
27
|
const setupContextMap = Effect.andThen(ContextMapContainer, (_) => _.start).pipe(Layer.effectDiscard);
|
|
24
28
|
export const setupRequestContextFromCurrent = (name = "request") => (self) => self
|
|
25
29
|
.pipe(withRequestSpan(name), Effect.provide(setupContextMap));
|
|
30
|
+
// TODO: consider integrating Effect.withParentSpan
|
|
26
31
|
export function setupRequestContext(self, requestContext) {
|
|
27
32
|
return Effect.gen(function* () {
|
|
28
33
|
yield* FiberRef.set(LocaleRef, requestContext.locale);
|
|
@@ -31,4 +36,4 @@ export function setupRequestContext(self, requestContext) {
|
|
|
31
36
|
.pipe(withRequestSpan(requestContext.name), Effect.provide(setupContextMap));
|
|
32
37
|
});
|
|
33
38
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUVyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNO0tBQ3BDLEdBQUcsQ0FBQztJQUNILElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDakMsQ0FBQztLQUNELElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDekMsSUFBSSxjQUFjLENBQUM7SUFDakIsSUFBSTtJQUNKLE1BQU07SUFDTixTQUFTO0lBQ1Qsd0RBQXdEO0lBQ3hELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7Q0FDbEMsQ0FBQyxDQUNILENBQ0YsQ0FBQTtBQUVILE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQzlCLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDakMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFVLENBQWtCLEVBQUUsRUFBRSxDQUM1RSxNQUFNLENBQUMsT0FBTyxDQUNaLEtBQUssRUFDTCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sQ0FBQyxDQUFDLElBQUksQ0FDSixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDcEYsY0FBYztBQUNkLDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUN6QixDQUNKLENBQUE7QUFFSCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVyRyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQUksR0FBRyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQVUsSUFBcUIsRUFBRSxFQUFFLENBQ3JHLElBQUk7S0FDRCxJQUFJLENBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUNyQixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUNoQyxDQUFBO0FBRUwsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxtQkFBbUIsQ0FBVSxJQUFxQixFQUFFLGNBQThCO0lBQ2hHLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3JELEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUV0RCxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUk7YUFDZixJQUFJLENBQ0gsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDcEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQTtJQUNMLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
|
package/dist/errorReporter.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dropUndefined } from "@effect-app/core/utils";
|
|
2
2
|
import * as Sentry from "@sentry/node";
|
|
3
3
|
import { Cause, Effect } from "effect-app";
|
|
4
|
-
import {
|
|
4
|
+
import { getRC } from "./api/setupRequest.js";
|
|
5
5
|
import { CauseException, ErrorReported, tryToJson } from "./errors.js";
|
|
6
6
|
import { InfraLogger } from "./logger.js";
|
|
7
7
|
export function reportError(name) {
|
|
@@ -24,7 +24,7 @@ export function reportError(name) {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
function reportSentry(error, extras) {
|
|
27
|
-
return
|
|
27
|
+
return getRC.pipe(Effect.map((context) => {
|
|
28
28
|
const scope = new Sentry.Scope();
|
|
29
29
|
if (context)
|
|
30
30
|
scope.setContext("context", context);
|
|
@@ -55,7 +55,7 @@ export function captureException(error) {
|
|
|
55
55
|
console.error(error);
|
|
56
56
|
}
|
|
57
57
|
export function reportMessage(message, extras) {
|
|
58
|
-
return
|
|
58
|
+
return getRC.pipe(Effect.map((context) => {
|
|
59
59
|
const scope = new Sentry.Scope();
|
|
60
60
|
if (context)
|
|
61
61
|
scope.setContext("context", context);
|
|
@@ -65,4 +65,4 @@ export function reportMessage(message, extras) {
|
|
|
65
65
|
console.warn(message);
|
|
66
66
|
}));
|
|
67
67
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFekMsTUFBTSxVQUFVLFdBQVcsQ0FDekIsSUFBWTtJQUVaLE9BQU8sQ0FBQyxLQUFxQixFQUFFLE1BQWdDLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNsQixJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDNUcsT0FBTTtRQUNSLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFN0MsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUNsQyxLQUFLLENBQUMsQ0FBQyxXQUFXO2FBQ2YsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FB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
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Cause, FiberId, HashMap, List, Logger } from "effect-app";
|
|
2
|
-
import {
|
|
2
|
+
import { getRequestContextFromFiberRefs } from "./shared.js";
|
|
3
3
|
export const jsonLogger = Logger.make(({ annotations, cause, context, fiberId, logLevel, message, spans }) => {
|
|
4
4
|
const now = new Date();
|
|
5
5
|
const nowMillis = now.getTime();
|
|
6
|
-
const request =
|
|
6
|
+
const request = getRequestContextFromFiberRefs(context);
|
|
7
7
|
const data = {
|
|
8
8
|
timestamp: now,
|
|
9
9
|
level: logLevel.label,
|
|
@@ -22,4 +22,4 @@ export const jsonLogger = Logger.make(({ annotations, cause, context, fiberId, l
|
|
|
22
22
|
globalThis.console.log(JSON.stringify(data));
|
|
23
23
|
});
|
|
24
24
|
export const logJson = Logger.replace(Logger.defaultLogger, Logger.withSpanAnnotations(jsonLogger));
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbkxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXIvanNvbkxvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ25DLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7SUFDdEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRS9CLE1BQU0sT0FBTyxHQUFHLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXZELE1BQU0sSUFBSSxHQUFHO1FBQ1gsU0FBUyxFQUFFLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ2xDLE9BQU87UUFDUCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkcsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNYLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQyxFQUFFLEVBQTZCLENBQUM7WUFDakMsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFBO0lBRUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FDRixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { HashMap, Logger } from "effect-app";
|
|
2
2
|
import { spanAttributes } from "../RequestContext.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getRequestContextFromFiberRefs } from "./shared.js";
|
|
4
4
|
export const logfmtLogger = Logger.make((_) => {
|
|
5
5
|
let { annotations } = _;
|
|
6
|
-
const requestContext =
|
|
6
|
+
const requestContext = getRequestContextFromFiberRefs(_.context);
|
|
7
7
|
if (requestContext && requestContext.name !== "_root_") {
|
|
8
8
|
annotations = HashMap.make(...[
|
|
9
9
|
...annotations,
|
|
@@ -14,4 +14,4 @@ export const logfmtLogger = Logger.make((_) => {
|
|
|
14
14
|
globalThis.console.log(formatted);
|
|
15
15
|
});
|
|
16
16
|
export const logFmt = Logger.replace(Logger.defaultLogger, Logger.withSpanAnnotations(logfmtLogger));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nRm10TG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9sb2dGbXRMb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3JELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUU1RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDckMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNKLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdkIsTUFBTSxjQUFjLEdBQUcsOEJBQThCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2hFLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRztZQUM1QixHQUFHLFdBQVc7WUFDZCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2xELENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDaEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUNGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBIn0=
|
package/dist/logger/shared.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as FiberRefs from "effect/FiberRefs";
|
|
2
2
|
import { RequestContext } from "../RequestContext.js";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function getRequestContextFromFiberRefs(fiberRefs: FiberRefs.FiberRefs): RequestContext;
|
|
4
4
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/logger/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGhE,wBAAgB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/logger/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGhE,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,kBAc5E"}
|
package/dist/logger/shared.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Context, FiberRef, Option, Tracer } from "effect-app";
|
|
|
3
3
|
import * as FiberRefs from "effect/FiberRefs";
|
|
4
4
|
import { LocaleRef, RequestContext } from "../RequestContext.js";
|
|
5
5
|
import { storeId } from "../services/Store/Memory.js";
|
|
6
|
-
export function
|
|
6
|
+
export function getRequestContextFromFiberRefs(fiberRefs) {
|
|
7
7
|
const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext);
|
|
8
8
|
const span = Context.getOption(context, Tracer.ParentSpan);
|
|
9
9
|
const locale = FiberRefs.getOrDefault(fiberRefs, LocaleRef);
|
|
@@ -15,4 +15,4 @@ export function getRequestContext(fiberRefs) {
|
|
|
15
15
|
namespace
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dlci9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM5RCxPQUFPLEtBQUssU0FBUyxNQUFNLGtCQUFrQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXJELE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxTQUE4QjtJQUMzRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDMUUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzFELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzNELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQUksRUFDSixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUM3RDtRQUNELElBQUksRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTTtRQUNOLFNBQVM7S0FDVixDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -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, import("
|
|
15
|
+
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, import("../Store/ContextMapContainer.js").ContextMapContainer | import("effect/Scope").Scope | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, ServiceBusReceiverFactory>>;
|
|
16
16
|
publish: (messages_0: Evt, ...messages: Evt[]) => Effect.Effect<void, never, never>;
|
|
17
17
|
}, never, ServiceBusReceiverFactory | import("@azure/service-bus").ServiceBusSender>;
|
|
18
18
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "1.46.
|
|
3
|
+
"version": "1.46.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
"proper-lockfile": "^4.1.2",
|
|
21
21
|
"pure-rand": "6.1.0",
|
|
22
22
|
"redlock": "^4.2.0",
|
|
23
|
-
"@effect-app/
|
|
23
|
+
"@effect-app/core": "1.17.1",
|
|
24
24
|
"effect-app": "1.30.5",
|
|
25
|
-
"@effect-app/
|
|
26
|
-
"@effect-app/
|
|
25
|
+
"@effect-app/infra-adapters": "1.21.0",
|
|
26
|
+
"@effect-app/schema": "1.19.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/cli": "^7.25.7",
|
package/src/RequestContext.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NonEmptyString255 } from "@effect-app/schema"
|
|
2
2
|
import { FiberRef, S } from "effect-app"
|
|
3
3
|
import { UserProfileId } from "effect-app/ids"
|
|
4
4
|
|
|
@@ -11,10 +11,10 @@ export const LocaleRef = FiberRef.unsafeMake<Locale>("en")
|
|
|
11
11
|
* @tsplus type RequestContext
|
|
12
12
|
* @tsplus companion RequestContext.Ops
|
|
13
13
|
*/
|
|
14
|
-
export class RequestContext extends
|
|
14
|
+
export class RequestContext extends S.ExtendedClass<
|
|
15
15
|
RequestContext,
|
|
16
16
|
RequestContext.From
|
|
17
|
-
>()(
|
|
17
|
+
>()({
|
|
18
18
|
span: S.Struct({
|
|
19
19
|
traceId: S.String,
|
|
20
20
|
spanId: S.String,
|
|
@@ -37,7 +37,7 @@ export class RequestContext extends ExtendedTaggedClass<
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
export const spanAttributes = (ctx: RequestContext) => ({
|
|
40
|
+
export const spanAttributes = (ctx: Pick<RequestContext, "locale" | "namespace"> & Partial<RequestContext>) => ({
|
|
41
41
|
"request.name": ctx.name,
|
|
42
42
|
"request.locale": ctx.locale,
|
|
43
43
|
"request.namespace": ctx.namespace,
|
package/src/api/setupRequest.ts
CHANGED
|
@@ -22,9 +22,14 @@ export const getRequestContext = Effect
|
|
|
22
22
|
)
|
|
23
23
|
)
|
|
24
24
|
|
|
25
|
+
export const getRC = Effect.all({
|
|
26
|
+
locale: FiberRef.get(LocaleRef),
|
|
27
|
+
namespace: FiberRef.get(storeId)
|
|
28
|
+
})
|
|
29
|
+
|
|
25
30
|
const withRequestSpan = (name = "request") => <R, E, A>(f: Effect<A, E, R>) =>
|
|
26
31
|
Effect.andThen(
|
|
27
|
-
|
|
32
|
+
getRC,
|
|
28
33
|
(ctx) =>
|
|
29
34
|
f.pipe(
|
|
30
35
|
Effect.withSpan(name, { attributes: spanAttributes(ctx), captureStackTrace: false }),
|
|
@@ -43,6 +48,7 @@ export const setupRequestContextFromCurrent = (name = "request") => <R, E, A>(se
|
|
|
43
48
|
Effect.provide(setupContextMap)
|
|
44
49
|
)
|
|
45
50
|
|
|
51
|
+
// TODO: consider integrating Effect.withParentSpan
|
|
46
52
|
export function setupRequestContext<R, E, A>(self: Effect<A, E, R>, requestContext: RequestContext) {
|
|
47
53
|
return Effect.gen(function*() {
|
|
48
54
|
yield* FiberRef.set(LocaleRef, requestContext.locale)
|
package/src/errorReporter.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { dropUndefined } from "@effect-app/core/utils"
|
|
2
2
|
import * as Sentry from "@sentry/node"
|
|
3
3
|
import { Cause, Effect } from "effect-app"
|
|
4
|
-
import {
|
|
4
|
+
import { getRC } from "./api/setupRequest.js"
|
|
5
5
|
import { CauseException, ErrorReported, tryToJson } from "./errors.js"
|
|
6
6
|
import { InfraLogger } from "./logger.js"
|
|
7
7
|
|
|
@@ -38,7 +38,7 @@ function reportSentry(
|
|
|
38
38
|
error: CauseException<unknown>,
|
|
39
39
|
extras: Record<string, unknown> | undefined
|
|
40
40
|
) {
|
|
41
|
-
return
|
|
41
|
+
return getRC.pipe(Effect.map((context) => {
|
|
42
42
|
const scope = new Sentry.Scope()
|
|
43
43
|
if (context) scope.setContext("context", context as unknown as Record<string, unknown>)
|
|
44
44
|
if (extras) scope.setContext("extras", extras)
|
|
@@ -77,7 +77,7 @@ export function captureException(error: unknown) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
export function reportMessage(message: string, extras?: Record<string, unknown>) {
|
|
80
|
-
return
|
|
80
|
+
return getRC.pipe(Effect.map((context) => {
|
|
81
81
|
const scope = new Sentry.Scope()
|
|
82
82
|
if (context) scope.setContext("context", context as unknown as Record<string, unknown>)
|
|
83
83
|
if (extras) scope.setContext("extras", extras)
|
package/src/logger/jsonLogger.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Cause, FiberId, HashMap, List, Logger } from "effect-app"
|
|
2
|
-
import {
|
|
2
|
+
import { getRequestContextFromFiberRefs } from "./shared.js"
|
|
3
3
|
|
|
4
4
|
export const jsonLogger = Logger.make<unknown, void>(
|
|
5
5
|
({ annotations, cause, context, fiberId, logLevel, message, spans }) => {
|
|
6
6
|
const now = new Date()
|
|
7
7
|
const nowMillis = now.getTime()
|
|
8
8
|
|
|
9
|
-
const request =
|
|
9
|
+
const request = getRequestContextFromFiberRefs(context)
|
|
10
10
|
|
|
11
11
|
const data = {
|
|
12
12
|
timestamp: now,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { HashMap, Logger } from "effect-app"
|
|
2
2
|
import { spanAttributes } from "../RequestContext.js"
|
|
3
|
-
import {
|
|
3
|
+
import { getRequestContextFromFiberRefs } from "./shared.js"
|
|
4
4
|
|
|
5
5
|
export const logfmtLogger = Logger.make<unknown, void>(
|
|
6
6
|
(_) => {
|
|
7
7
|
let { annotations } = _
|
|
8
|
-
const requestContext =
|
|
8
|
+
const requestContext = getRequestContextFromFiberRefs(_.context)
|
|
9
9
|
if (requestContext && requestContext.name !== "_root_") {
|
|
10
10
|
annotations = HashMap.make(...[
|
|
11
11
|
...annotations,
|
package/src/logger/shared.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as FiberRefs from "effect/FiberRefs"
|
|
|
4
4
|
import { LocaleRef, RequestContext } from "../RequestContext.js"
|
|
5
5
|
import { storeId } from "../services/Store/Memory.js"
|
|
6
6
|
|
|
7
|
-
export function
|
|
7
|
+
export function getRequestContextFromFiberRefs(fiberRefs: FiberRefs.FiberRefs) {
|
|
8
8
|
const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext)
|
|
9
9
|
const span = Context.getOption(context, Tracer.ParentSpan)
|
|
10
10
|
const locale = FiberRefs.getOrDefault(fiberRefs, LocaleRef)
|