@effect-app/infra 2.13.0 → 2.13.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 +16 -0
- package/_cjs/errorReporter.cjs +3 -2
- package/_cjs/errorReporter.cjs.map +1 -1
- package/dist/Emailer/service.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +1 -1
- package/dist/Model/Repository/internal/internal.d.ts +2 -2
- package/dist/Model/query/new-kid-interpreter.d.ts +1 -1
- package/dist/Operations.d.ts +3 -3
- package/dist/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/Store/service.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +5 -4
- package/package.json +3 -3
- package/src/errorReporter.ts +4 -3
- package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
- package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
- package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
- package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +37 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 2.13.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 19ea035: update packages
|
|
8
|
+
- Updated dependencies [19ea035]
|
|
9
|
+
- effect-app@2.5.2
|
|
10
|
+
|
|
11
|
+
## 2.13.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 724a1a8: error bs
|
|
16
|
+
- Updated dependencies [724a1a8]
|
|
17
|
+
- effect-app@2.5.1
|
|
18
|
+
|
|
3
19
|
## 2.13.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/_cjs/errorReporter.cjs
CHANGED
|
@@ -25,7 +25,8 @@ function reportError(name) {
|
|
|
25
25
|
yield* reportSentry(error, extras);
|
|
26
26
|
yield* _logger.InfraLogger.logError("Reporting error", cause).pipe(_effectApp.Effect.annotateLogs((0, _utils.dropUndefined)({
|
|
27
27
|
extras,
|
|
28
|
-
|
|
28
|
+
error: (0, _errors.tryToReport)(error),
|
|
29
|
+
cause: (0, _errors.tryToJson)(cause),
|
|
29
30
|
__error_name__: name
|
|
30
31
|
})), _effectApp.Effect.catchAllCause(cause => _logger.InfraLogger.logError("Failed to log error", cause)), _effectApp.Effect.catchAllCause(() => _logger.InfraLogger.logError("Failed to log error cause")));
|
|
31
32
|
error[_errors.ErrorReported] = true;
|
|
@@ -37,7 +38,7 @@ function reportSentry(error, extras) {
|
|
|
37
38
|
const scope = new Sentry.Scope();
|
|
38
39
|
if (context) scope.setContext("context", context);
|
|
39
40
|
if (extras) scope.setContext("extras", extras);
|
|
40
|
-
scope.setContext("error", (0, _errors.
|
|
41
|
+
scope.setContext("error", (0, _errors.tryToReport)(error));
|
|
41
42
|
scope.setContext("cause", (0, _errors.tryToJson)(error.originalCause));
|
|
42
43
|
Sentry.captureException(error, scope);
|
|
43
44
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.cjs","names":["Sentry","_interopRequireWildcard","require","_effectApp","_utils","_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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAyC,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,SAAAR,wBAAAQ,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;AAEnC,SAAUW,WAAWA,CACzBC,IAAY;EAEZ,OAAO,CAACC,KAAqB,EAAEC,MAAgC,KAC7DC,iBAAM,CAACC,GAAG,CAAC,aAAS;IAClB,IAAIC,gBAAK,CAACC,aAAa,CAACL,KAAK,CAAC,EAAE;MAC9B,OAAOM,mBAAW,CAACC,QAAQ,CAAC,aAAa,CAAC,CAACC,IAAI,CAACN,iBAAM,CAACO,YAAY,CAAC,QAAQ,EAAEC,IAAI,CAACC,SAAS,CAACV,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;MAC5G;IACF;IACA,MAAMW,KAAK,GAAG,IAAIC,sBAAc,CAACb,KAAK,EAAED,IAAI,CAAC;IAE7C,OAAOe,YAAY,CAACF,KAAK,EAAEX,MAAM,CAAC;IAClC,OAAOK,mBAAW,CACfS,QAAQ,CAAC,iBAAiB,EAAEf,KAAK,CAAC,CAClCQ,IAAI,CACHN,iBAAM,CAACO,YAAY,CAAC,IAAAO,oBAAa,EAAC;MAChCf,MAAM;
|
|
1
|
+
{"version":3,"file":"errorReporter.cjs","names":["Sentry","_interopRequireWildcard","require","_effectApp","_utils","_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","tryToReport","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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAyC,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,SAAAR,wBAAAQ,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;AAEnC,SAAUW,WAAWA,CACzBC,IAAY;EAEZ,OAAO,CAACC,KAAqB,EAAEC,MAAgC,KAC7DC,iBAAM,CAACC,GAAG,CAAC,aAAS;IAClB,IAAIC,gBAAK,CAACC,aAAa,CAACL,KAAK,CAAC,EAAE;MAC9B,OAAOM,mBAAW,CAACC,QAAQ,CAAC,aAAa,CAAC,CAACC,IAAI,CAACN,iBAAM,CAACO,YAAY,CAAC,QAAQ,EAAEC,IAAI,CAACC,SAAS,CAACV,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;MAC5G;IACF;IACA,MAAMW,KAAK,GAAG,IAAIC,sBAAc,CAACb,KAAK,EAAED,IAAI,CAAC;IAE7C,OAAOe,YAAY,CAACF,KAAK,EAAEX,MAAM,CAAC;IAClC,OAAOK,mBAAW,CACfS,QAAQ,CAAC,iBAAiB,EAAEf,KAAK,CAAC,CAClCQ,IAAI,CACHN,iBAAM,CAACO,YAAY,CAAC,IAAAO,oBAAa,EAAC;MAChCf,MAAM;MACNW,KAAK,EAAE,IAAAK,mBAAW,EAACL,KAAK,CAAC;MACzBZ,KAAK,EAAE,IAAAkB,iBAAS,EAAClB,KAAK,CAAC;MACvBmB,cAAc,EAAEpB;KACjB,CAAC,CAAC,EACHG,iBAAM,CAACkB,aAAa,CAAEpB,KAAK,IAAKM,mBAAW,CAACS,QAAQ,CAAC,qBAAqB,EAAEf,KAAK,CAAC,CAAC,EACnFE,iBAAM,CAACkB,aAAa,CAAC,MAAMd,mBAAW,CAACS,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAC9E;IAEHH,KAAK,CAACS,qBAAa,CAAC,GAAG,IAAI;IAC3B,OAAOT,KAAK;EACd,CAAC,CAAC;AACN;AAEA,SAASE,YAAYA,CACnBF,KAA8B,EAC9BX,MAA2C;EAE3C,OAAOqB,mBAAK,CAACd,IAAI,CAACN,iBAAM,CAACqB,GAAG,CAAEC,OAAO,IAAI;IACvC,MAAMC,KAAK,GAAG,IAAIvD,MAAM,CAACwD,KAAK,EAAE;IAChC,IAAIF,OAAO,EAAEC,KAAK,CAACE,UAAU,CAAC,SAAS,EAAEH,OAA6C,CAAC;IACvF,IAAIvB,MAAM,EAAEwB,KAAK,CAACE,UAAU,CAAC,QAAQ,EAAE1B,MAAM,CAAC;IAC9CwB,KAAK,CAACE,UAAU,CAAC,OAAO,EAAE,IAAAV,mBAAW,EAACL,KAAK,CAAQ,CAAC;IACpDa,KAAK,CAACE,UAAU,CAAC,OAAO,EAAE,IAAAT,iBAAS,EAACN,KAAK,CAACgB,aAAa,CAAQ,CAAC;IAChE1D,MAAM,CAAC2D,gBAAgB,CAACjB,KAAK,EAAEa,KAAK,CAAC;EACvC,CAAC,CAAC,CAAC;AACL;AAEM,SAAUV,QAAQA,CACtBhB,IAAY;EAEZ,OAAO,CAACC,KAAe,EAAEC,MAAgC,KACvDC,iBAAM,CAACC,GAAG,CAAC,aAAS;IAClB,IAAIC,gBAAK,CAACC,aAAa,CAACL,KAAK,CAAC,EAAE;MAC9B,OAAOM,mBAAW,CAACC,QAAQ,CAAC,aAAa,CAAC,CAACC,IAAI,CAACN,iBAAM,CAACO,YAAY,CAAC,IAAAO,oBAAa,EAAC;QAAEf;MAAM,CAAE,CAAC,CAAC,CAAC;MAC/F;IACF;IACA,OAAOK,mBAAW,CACfwB,UAAU,CAAC,eAAe,EAAE9B,KAAK,CAAC,CAClCQ,IAAI,CACHN,iBAAM,CAACO,YAAY,CAAC,IAAAO,oBAAa,EAAC;MAChCf,MAAM;MACND,KAAK,EAAE,IAAAkB,iBAAS,EAAClB,KAAK,CAAC;MACvBmB,cAAc,EAAEpB;KACjB,CAAC,CAAC,EACHG,iBAAM,CAACkB,aAAa,CAAEpB,KAAK,IAAKM,mBAAW,CAACS,QAAQ,CAAC,qBAAqB,EAAEf,KAAK,CAAC,CAAC,EACnFE,iBAAM,CAACkB,aAAa,CAAC,MAAMd,mBAAW,CAACS,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAC9E;EACL,CAAC,CAAC;AACN;AAEM,SAAUc,gBAAgBA,CAACjB,KAAc;EAC7C1C,MAAM,CAAC2D,gBAAgB,CAACjB,KAAK,CAAC;EAC9BmB,OAAO,CAACnB,KAAK,CAACA,KAAK,CAAC;AACtB;AAEM,SAAUoB,aAAaA,CAACC,OAAe,EAAEhC,MAAgC;EAC7E,OAAOqB,mBAAK,CAACd,IAAI,CAACN,iBAAM,CAACqB,GAAG,CAAEC,OAAO,IAAI;IACvC,MAAMC,KAAK,GAAG,IAAIvD,MAAM,CAACwD,KAAK,EAAE;IAChC,IAAIF,OAAO,EAAEC,KAAK,CAACE,UAAU,CAAC,SAAS,EAAEH,OAA6C,CAAC;IACvF,IAAIvB,MAAM,EAAEwB,KAAK,CAACE,UAAU,CAAC,QAAQ,EAAE1B,MAAM,CAAC;IAC9C/B,MAAM,CAACgE,cAAc,CAACD,OAAO,EAAER,KAAK,CAAC;IAErCM,OAAO,CAACI,IAAI,CAACF,OAAO,CAAC;EACvB,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ declare const Emailer_base: (abstract new (service: {
|
|
|
19
19
|
} & {
|
|
20
20
|
use: <X>(body: (_: {
|
|
21
21
|
sendMail: (msg: EmailMsgOptionalFrom) => Effect<void, Error | ResponseError>;
|
|
22
|
-
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1,
|
|
22
|
+
}) => X) => X extends Effect.Effect<infer A_1, infer E_1, infer R_3> ? Effect.Effect<A_1, E_1, R_3 | Emailer> : Effect.Effect<X, never, Emailer>;
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
25
|
* @tsplus type Emailer
|
package/dist/MainFiberSet.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ declare const MainFiberSet_base: (abstract new (service: {
|
|
|
44
44
|
run: <R_1, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R_1>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R_1>;
|
|
45
45
|
add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
46
46
|
addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
|
|
47
|
-
}) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2,
|
|
47
|
+
}) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2, MainFiberSet | R_4> : Effect.Effect<X, never, MainFiberSet>;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* Whenever you fork long running (e.g worker) fibers via e.g `Effect.forkScoped` or `Effect.forkDaemon`
|
|
@@ -22,12 +22,12 @@ export declare function makeRepoInternal<Evt = never>(): <ItemType extends strin
|
|
|
22
22
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
23
23
|
partitionValue?: (a: Encoded) => string;
|
|
24
24
|
};
|
|
25
|
-
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish>, E,
|
|
25
|
+
}) => Effect.Effect<Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish>, E, R | RInitial | StoreMaker>;
|
|
26
26
|
Q: Q.Query<Encoded>;
|
|
27
27
|
};
|
|
28
28
|
export declare function makeStore<Encoded extends FieldValues>(): <ItemType extends string, R, E, T, IdKey extends keyof Encoded>(name: ItemType, schema: S.Schema<T, E, R>, mapTo: (e: E, etag: string | undefined) => Encoded, idKey: IdKey) => <RInitial = never, EInitial = never>(makeInitial?: Effect<readonly T[], EInitial, RInitial>, config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
29
29
|
partitionValue?: (a: Encoded) => string;
|
|
30
|
-
}) => Effect.Effect<import("../../../Store.js").Store<IdKey, Encoded, PersistenceModelType<Encoded>>, EInitial,
|
|
30
|
+
}) => Effect.Effect<import("../../../Store.js").Store<IdKey, Encoded, PersistenceModelType<Encoded>>, EInitial, R | RInitial | StoreMaker>;
|
|
31
31
|
export interface Repos<T, Encoded extends {
|
|
32
32
|
id: string;
|
|
33
33
|
}, RSchema, Evt, ItemType extends string, IdKey extends keyof T, RPublish> {
|
|
@@ -15,7 +15,7 @@ export declare const toFilter: <TFieldValues extends FieldValues, A, R, TFieldVa
|
|
|
15
15
|
key: import("../filter/types/path/eager.js").Path<TFieldValues>;
|
|
16
16
|
direction: "ASC" | "DESC";
|
|
17
17
|
}[]];
|
|
18
|
-
ttype: "one" | "
|
|
18
|
+
ttype: "one" | "count" | "many";
|
|
19
19
|
mode: "project" | "collect" | "transform";
|
|
20
20
|
filter: FilterResult[];
|
|
21
21
|
};
|
package/dist/Operations.d.ts
CHANGED
|
@@ -56,15 +56,15 @@ declare const Operations_base: (abstract new (service: {
|
|
|
56
56
|
update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
|
|
57
57
|
}>) & {
|
|
58
58
|
toLayer: {
|
|
59
|
-
(): Layer.Layer<Operations, never,
|
|
59
|
+
(): Layer.Layer<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
60
60
|
<E_1, R_1>(eff: Effect.Effect<Omit<Operations, keyof Context.TagClassShape<any, any>>, E_1, R_1>): Layer.Layer<Operations, E_1, R_1>;
|
|
61
61
|
};
|
|
62
62
|
toLayerScoped: {
|
|
63
|
-
(): Layer.Layer<Operations, never,
|
|
63
|
+
(): Layer.Layer<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
64
64
|
<E_1, R_2>(eff: Effect.Effect<Context.TagClassShape<any, any>, E_1, R_2>): Layer.Layer<Operations, E_1, Exclude<R_2, Scope.Scope>>;
|
|
65
65
|
};
|
|
66
66
|
of: (service: Context.TagClassShape<any, any>) => Operations;
|
|
67
|
-
make: Effect.Effect<Operations, never,
|
|
67
|
+
make: Effect.Effect<Operations, never, OperationsRepo | RequestFiberSet>;
|
|
68
68
|
} & Context.Tag<Operations, Operations> & {
|
|
69
69
|
cleanup: Effect.Effect<void[], never, Operations>;
|
|
70
70
|
register: (title: S.NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope | Operations>;
|
|
@@ -14,9 +14,9 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
14
14
|
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
15
|
drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, 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
|
-
}, never,
|
|
17
|
+
}, never, import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory>;
|
|
18
18
|
/**
|
|
19
19
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
20
20
|
*/
|
|
21
|
-
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<
|
|
21
|
+
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<import("@azure/service-bus").ServiceBusSender | ServiceBusReceiverFactory, never, never>;
|
|
22
22
|
//# sourceMappingURL=sbqueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAIxC,eAAO,MAAM,MAAM,yBAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC,eAAO,MAAM,SAAS,gCAAoC,CAAA;;;;;;;;;;;;;IAmBxD,kBAAkB;;;;
|
|
1
|
+
{"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAIxC,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/Store/service.d.ts
CHANGED
|
@@ -127,7 +127,7 @@ declare const ContextMap_base: (abstract new (service: {
|
|
|
127
127
|
use: <X>(body: (_: {
|
|
128
128
|
get: (id: string) => string | undefined;
|
|
129
129
|
set: (id: string, eTag: string | undefined) => void;
|
|
130
|
-
}) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2,
|
|
130
|
+
}) => X) => X extends Effect.Effect<infer A_1, infer E_2, infer R_4> ? Effect.Effect<A_1, E_2, R_4 | ContextMap> : Effect.Effect<X, never, ContextMap>;
|
|
131
131
|
};
|
|
132
132
|
/**
|
|
133
133
|
* @tsplus type ContextMap
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"errorReporter.d.ts","sourceRoot":"","sources":["../src/errorReporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAG1C,OAAO,EAAE,cAAc,EAAyC,MAAM,aAAa,CAAA;AAGnF,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,WAEG,KAAK,CAAC,OAAO,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sEAyBhE;AAgBD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,WAEG,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,uCAkB1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,QAG9C;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,qCAS9E"}
|
package/dist/errorReporter.js
CHANGED
|
@@ -2,7 +2,7 @@ import * as Sentry from "@sentry/node";
|
|
|
2
2
|
import { Cause, Effect } from "effect-app";
|
|
3
3
|
import { dropUndefined } from "effect-app/utils";
|
|
4
4
|
import { getRC } from "./api/setupRequest.js";
|
|
5
|
-
import { CauseException, ErrorReported, tryToJson } from "./errors.js";
|
|
5
|
+
import { CauseException, ErrorReported, tryToJson, tryToReport } from "./errors.js";
|
|
6
6
|
import { InfraLogger } from "./logger.js";
|
|
7
7
|
export function reportError(name) {
|
|
8
8
|
return (cause, extras) => Effect.gen(function* () {
|
|
@@ -16,7 +16,8 @@ export function reportError(name) {
|
|
|
16
16
|
.logError("Reporting error", cause)
|
|
17
17
|
.pipe(Effect.annotateLogs(dropUndefined({
|
|
18
18
|
extras,
|
|
19
|
-
|
|
19
|
+
error: tryToReport(error),
|
|
20
|
+
cause: tryToJson(cause),
|
|
20
21
|
__error_name__: name
|
|
21
22
|
})), Effect.catchAllCause((cause) => InfraLogger.logError("Failed to log error", cause)), Effect.catchAllCause(() => InfraLogger.logError("Failed to log error cause")));
|
|
22
23
|
error[ErrorReported] = true;
|
|
@@ -30,7 +31,7 @@ function reportSentry(error, extras) {
|
|
|
30
31
|
scope.setContext("context", context);
|
|
31
32
|
if (extras)
|
|
32
33
|
scope.setContext("extras", extras);
|
|
33
|
-
scope.setContext("error",
|
|
34
|
+
scope.setContext("error", tryToReport(error));
|
|
34
35
|
scope.setContext("cause", tryToJson(error.originalCause));
|
|
35
36
|
Sentry.captureException(error, scope);
|
|
36
37
|
}));
|
|
@@ -65,4 +66,4 @@ export function reportMessage(message, extras) {
|
|
|
65
66
|
console.warn(message);
|
|
66
67
|
}));
|
|
67
68
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvclJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQVk7SUFFWixPQUFPLENBQUMsS0FBcUIsRUFBRSxNQUFnQyxFQUFFLEVBQUUsQ0FDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDbEIsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzVHLE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBRTdDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbEMsS0FBSyxDQUFDLENBQUMsV0FBVzthQUNmLFFBQVEsQ0FBQyxpQkFBaUIsRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/infra",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"proper-lockfile": "^4.1.2",
|
|
14
14
|
"pure-rand": "6.1.0",
|
|
15
15
|
"query-string": "^9.1.1",
|
|
16
|
-
"effect-app": "2.5.
|
|
16
|
+
"effect-app": "2.5.2"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@azure/cosmos": "^4.1.1",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"redlock": "^4.2.0",
|
|
34
34
|
"strip-ansi": "^7.1.0",
|
|
35
35
|
"typescript": "^5.6.3",
|
|
36
|
-
"vitest": "^2.1.
|
|
36
|
+
"vitest": "^2.1.4"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@azure/cosmos": "^4.1.1",
|
package/src/errorReporter.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as Sentry from "@sentry/node"
|
|
|
2
2
|
import { Cause, Effect } from "effect-app"
|
|
3
3
|
import { dropUndefined } from "effect-app/utils"
|
|
4
4
|
import { getRC } from "./api/setupRequest.js"
|
|
5
|
-
import { CauseException, ErrorReported, tryToJson } from "./errors.js"
|
|
5
|
+
import { CauseException, ErrorReported, tryToJson, tryToReport } from "./errors.js"
|
|
6
6
|
import { InfraLogger } from "./logger.js"
|
|
7
7
|
|
|
8
8
|
export function reportError(
|
|
@@ -22,7 +22,8 @@ export function reportError(
|
|
|
22
22
|
.pipe(
|
|
23
23
|
Effect.annotateLogs(dropUndefined({
|
|
24
24
|
extras,
|
|
25
|
-
|
|
25
|
+
error: tryToReport(error),
|
|
26
|
+
cause: tryToJson(cause),
|
|
26
27
|
__error_name__: name
|
|
27
28
|
})),
|
|
28
29
|
Effect.catchAllCause((cause) => InfraLogger.logError("Failed to log error", cause)),
|
|
@@ -42,7 +43,7 @@ function reportSentry(
|
|
|
42
43
|
const scope = new Sentry.Scope()
|
|
43
44
|
if (context) scope.setContext("context", context as unknown as Record<string, unknown>)
|
|
44
45
|
if (extras) scope.setContext("extras", extras)
|
|
45
|
-
scope.setContext("error",
|
|
46
|
+
scope.setContext("error", tryToReport(error) as any)
|
|
46
47
|
scope.setContext("cause", tryToJson(error.originalCause) as any)
|
|
47
48
|
Sentry.captureException(error, scope)
|
|
48
49
|
}))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// packages/infra/vitest.config.ts
|
|
2
|
+
import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.2.6_@types+node@20.11.30/node_modules/vite/dist/node/index.js";
|
|
3
|
+
|
|
4
|
+
// vite.config.base.ts
|
|
5
|
+
import path from "path";
|
|
6
|
+
import fs from "fs";
|
|
7
|
+
var __vite_injected_original_dirname = "/Users/patrickroza/pj/effect-app/libs";
|
|
8
|
+
function makeConfig(dirName) {
|
|
9
|
+
const prefix = path.resolve(__vite_injected_original_dirname, "packages");
|
|
10
|
+
const packages = fs.readdirSync(prefix).map((f) => prefix + "/" + f).filter((f) => fs.lstatSync(f).isDirectory());
|
|
11
|
+
const cfg = {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
//plugins: [autoImport],
|
|
14
|
+
test: {
|
|
15
|
+
include: ["./test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
|
|
16
|
+
reporters: "verbose",
|
|
17
|
+
globals: true
|
|
18
|
+
},
|
|
19
|
+
resolve: {
|
|
20
|
+
alias: packages.reduce((acc, cur) => {
|
|
21
|
+
acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, cur.endsWith("core") ? "dist" : "src");
|
|
22
|
+
return acc;
|
|
23
|
+
}, {})
|
|
24
|
+
// "@effect-app/core/Prelude": path.join(__dirname, "packages/core/src/Prelude.code.ts")
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
console.log(cfg);
|
|
28
|
+
return cfg;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// packages/infra/vitest.config.ts
|
|
32
|
+
var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/infra";
|
|
33
|
+
var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
|
|
34
|
+
export {
|
|
35
|
+
vitest_config_default as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50cyIsICJ2aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy9wYWNrYWdlcy9pbmZyYS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvaW5mcmEvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoX19kaXJuYW1lKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVzdC9jb25maWdcIlxuXG4vLyBjb25zdCBhdXRvSW1wb3J0ID0gQXV0b0ltcG9ydCh7XG4vLyAgIGR0czogXCIuL3Rlc3QvYXV0by1pbXBvcnRzLmQudHNcIixcbi8vICAgLy8gaW5jbHVkZTogW1xuLy8gICAvLyAgIC9cXC50ZXN0XFwuW3RqXXN4PyQvIC8vIC50cywgLnRzeCwgLmpzLCAuanN4XG4vLyAgIC8vIF0sXG4vLyAgIGltcG9ydHM6IFtcbi8vICAgICBcInZpdGVzdFwiXG4vLyAgIF1cbi8vIH0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1ha2VDb25maWcoZGlyTmFtZT86IHN0cmluZykge1xuICBjb25zdCBwcmVmaXggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInBhY2thZ2VzXCIpXG4gIGNvbnN0IHBhY2thZ2VzID0gZnMucmVhZGRpclN5bmMocHJlZml4KS5tYXAoZiA9PiBwcmVmaXggKyBcIi9cIiArIGYpLmZpbHRlcihmID0+IGZzLmxzdGF0U3luYyhmKS5pc0RpcmVjdG9yeSgpIClcbiAgY29uc3QgY2ZnID0ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzXG4gICAgLy9wbHVnaW5zOiBbYXV0b0ltcG9ydF0sXG4gICAgdGVzdDoge1xuICAgICAgaW5jbHVkZTogIFtcIi4vdGVzdC8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczogcGFja2FnZXMucmVkdWNlKChhY2MsIGN1cikgPT4geyAvLyB3b3JrYXJvdW5kIGZvciAvUHJlbHVkZSBpc3N1ZVxuICAgICAgYWNjW0pTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGN1ciArIFwiL3BhY2thZ2UuanNvblwiLCBcInV0Zi04XCIpKS5uYW1lXSA9IHBhdGgucmVzb2x2ZShjdXIsIGN1ci5lbmRzV2l0aChcImNvcmVcIikgPyBcImRpc3RcIiA6IFwic3JjXCIpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwgeyB9KSAvLyBcIkBlZmZlY3QtYXBwL2NvcmUvUHJlbHVkZVwiOiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInBhY2thZ2VzL2NvcmUvc3JjL1ByZWx1ZGUuY29kZS50c1wiKVxuICB9XG4gIH1cbiAgY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxNQUNQLE9BQU8sU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFlBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssSUFBSSxTQUFTLE1BQU0sSUFBSSxTQUFTLEtBQUs7QUFDL0gsZUFBTztBQUFBLE1BQ1QsR0FBRyxDQUFFLENBQUM7QUFBQTtBQUFBLElBQ1I7QUFBQSxFQUNBO0FBQ0EsVUFBUSxJQUFJLEdBQUc7QUFDZixTQUFPO0FBQ1Q7OztBRHBDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
|