effect-app 1.6.0 → 1.8.0

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d12fc1a: improve: expose interrupt, not waitUntilEmpty on FiberSets
8
+
9
+ ## 1.7.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 613c148: update packages
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [613c148]
18
+ - @effect-app/schema@1.5.0
19
+ - @effect-app/core@1.5.0
20
+
3
21
  ## 1.6.0
4
22
 
5
23
  ### Minor Changes
@@ -11,7 +11,19 @@ const make = _core.Effect.gen(function* ($) {
11
11
  const addAll = fibers => _core.Effect.sync(() => fibers.forEach(_ => _core.FiberSet.unsafeAdd(set, _)));
12
12
  const join = _core.FiberSet.size(set).pipe(_core.Effect.andThen(count => _core.Effect.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), _core.Effect.andThen(_core.FiberSet.join(set)));
13
13
  const run = _core.FiberSet.run(set);
14
+ // const waitUntilEmpty = Effect.gen(function*($) {
15
+ // const currentSize = yield* $(FiberSet.size(set))
16
+ // if (currentSize === 0) {
17
+ // return
18
+ // }
19
+ // yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
20
+ // while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
21
+ // yield* $(Effect.logDebug("MainFiberSet is empty"))
22
+ // })
23
+ // TODO: loop and interrupt all fibers in the set continuously?
24
+ const interrupt = _core.Fiber.interruptAll(set);
14
25
  return {
26
+ interrupt,
15
27
  join,
16
28
  run,
17
29
  add,
@@ -1 +1 @@
1
- {"version":3,"file":"MainFiberSet.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","logDebug","run","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAKA,MAAMC,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAkB,CAAC;EACrD,MAAMM,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIL,MAAmD,IACjEN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAMG,IAAI,GAAGR,cAAQ,CAACS,IAAI,CAACV,GAAG,CAAC,CAACW,IAAI,CAClCd,YAAM,CAACe,OAAO,CAAEC,KAAK,IAAKhB,YAAM,CAACiB,QAAQ,CAAC,WAAWD,KAAK,qCAAqC,CAAC,CAAC,EACjGhB,YAAM,CAACe,OAAO,CAACX,cAAQ,CAACQ,IAAI,CAACT,GAAG,CAAC,CAAC,CACnC;EACD,MAAMe,GAAG,GAAGd,cAAQ,CAACc,GAAG,CAACf,GAAG,CAAC;EAE7B,OAAO;IACLS,IAAI;IACJM,GAAG;IACHb,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOQ,YAAa,SAAQC,aAAO,CAACC,SAAS,CAAC,cAAc,EAAEtB,IAAI,CAAC,EAAgB;EACvF,OAAgBuB,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACV,IAAI,CAACd,YAAM,CAACe,OAAO,CAAEN,CAAC,IAAKA,CAAC,CAACG,IAAI,CAAC,EAAEa,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBJ,GAAG,GAAUU,IAAyB,IAAK,IAAI,CAACC,GAAG,CAAEpB,CAAC,IAAKA,CAAC,CAACS,GAAG,CAACU,IAAI,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"MainFiberSet.cjs","names":["_core","require","make","Effect","gen","$","set","FiberSet","add","fibers","sync","forEach","_","unsafeAdd","addAll","join","size","pipe","andThen","count","logDebug","run","interrupt","Fiber","interruptAll","MainFiberSet","Context","TagMakeId","Live","toLayerScoped","JoinLive","Layer","effectDiscard","provide","self","use"],"sources":["../../src/services/MainFiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAKA,MAAMC,IAAI,GAAGC,YAAM,CAACC,GAAG,CAAC,WAAUC,CAAC;EACjC,MAAMC,GAAG,GAAG,OAAOD,CAAC,CAACE,cAAQ,CAACL,IAAI,EAAkB,CAAC;EACrD,MAAMM,GAAG,GAAGA,CAAC,GAAGC,MAA0C,KACxDN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAME,MAAM,GAAIL,MAAmD,IACjEN,YAAM,CAACO,IAAI,CAAC,MAAMD,MAAM,CAACE,OAAO,CAAEC,CAAC,IAAKL,cAAQ,CAACM,SAAS,CAACP,GAAG,EAAEM,CAAC,CAAC,CAAC,CAAC;EACtE,MAAMG,IAAI,GAAGR,cAAQ,CAACS,IAAI,CAACV,GAAG,CAAC,CAACW,IAAI,CAClCd,YAAM,CAACe,OAAO,CAAEC,KAAK,IAAKhB,YAAM,CAACiB,QAAQ,CAAC,WAAWD,KAAK,qCAAqC,CAAC,CAAC,EACjGhB,YAAM,CAACe,OAAO,CAACX,cAAQ,CAACQ,IAAI,CAACT,GAAG,CAAC,CAAC,CACnC;EACD,MAAMe,GAAG,GAAGd,cAAQ,CAACc,GAAG,CAACf,GAAG,CAAC;EAE7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA,MAAMgB,SAAS,GAAGC,WAAK,CAACC,YAAY,CAAClB,GAAG,CAAC;EAEzC,OAAO;IACLgB,SAAS;IACTP,IAAI;IACJM,GAAG;IACHb,GAAG;IACHM;GACD;AACH,CAAC,CAAC;AAEF;;;;;AAKM,MAAOW,YAAa,SAAQC,aAAO,CAACC,SAAS,CAAC,cAAc,EAAEzB,IAAI,CAAC,EAAgB;EACvF,OAAgB0B,IAAI,GAAG,IAAI,CAACC,aAAa,EAAE;EAC3C,OAAgBC,QAAQ,GAAG,IAAI,CAACb,IAAI,CAACd,YAAM,CAACe,OAAO,CAAEN,CAAC,IAAKA,CAAC,CAACG,IAAI,CAAC,EAAEgB,WAAK,CAACC,aAAa,EAAED,WAAK,CAACE,OAAO,CAAC,IAAI,CAACL,IAAI,CAAC,CAAC;EAClH,OAAgBP,GAAG,GAAUa,IAAyB,IAAK,IAAI,CAACC,GAAG,CAAEvB,CAAC,IAAKA,CAAC,CAACS,GAAG,CAACa,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -1,16 +1,18 @@
1
- import type { Fiber } from "@effect-app/core";
2
- import { Context, Effect, Layer } from "@effect-app/core";
1
+ import { Context, Effect, Fiber, Layer } from "@effect-app/core";
3
2
  declare const MainFiberSet_base: (abstract new (service: {
3
+ interrupt: Effect.Effect<void, never, never>;
4
4
  join: Effect.Effect<void, never, never>;
5
5
  run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
6
6
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
7
7
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
8
8
  }) => Readonly<{
9
+ interrupt: Effect.Effect<void, never, never>;
9
10
  join: Effect.Effect<void, never, never>;
10
11
  run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
11
12
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
12
13
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
13
14
  }> & Context.TagClassShape<"MainFiberSet", {
15
+ interrupt: Effect.Effect<void, never, never>;
14
16
  join: Effect.Effect<void, never, never>;
15
17
  run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
16
18
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
@@ -27,11 +29,13 @@ declare const MainFiberSet_base: (abstract new (service: {
27
29
  of: (service: Context.TagClassShape<any, any>) => MainFiberSet;
28
30
  make: Effect<MainFiberSet, never, import("effect/Scope").Scope>;
29
31
  } & Context.Tag<MainFiberSet, MainFiberSet> & {
32
+ interrupt: Effect<void, never, MainFiberSet>;
30
33
  join: Effect<void, never, MainFiberSet>;
31
34
  add: (...args: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet | never>;
32
35
  addAll: (fibers: readonly Fiber.RuntimeFiber<never, never>[]) => Effect<void, never, MainFiberSet | never>;
33
36
  } & {
34
37
  use: <X>(body: (_: {
38
+ interrupt: Effect.Effect<void, never, never>;
35
39
  join: Effect.Effect<void, never, never>;
36
40
  run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.RuntimeFiber<XA, XE>, never, R>;
37
41
  add: (...fibers: Fiber.RuntimeFiber<never, never>[]) => Effect.Effect<void, never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;qBAOzC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;yBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;AAgBrE;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAAuD;IACvF,MAAM,CAAC,QAAQ,CAAC,IAAI,oCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEAAiC;CACxF"}
1
+ {"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../../src/services/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,kBAAkB,CAAA;;;;;qBAOhD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;qBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;qBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;yBAF3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;yBAElC,SAAS,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;;AA8BrE;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAAuD;IACvF,MAAM,CAAC,QAAQ,CAAC,IAAI,oCAAuB;IAC3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAA0F;IAClH,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEAAiC;CACxF"}
@@ -1,11 +1,23 @@
1
- import { Context, Effect, FiberSet, Layer } from "@effect-app/core";
1
+ import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core";
2
2
  const make = Effect.gen(function* ($) {
3
3
  const set = yield* $(FiberSet.make());
4
4
  const add = (...fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
5
5
  const addAll = (fibers) => Effect.sync(() => fibers.forEach((_) => FiberSet.unsafeAdd(set, _)));
6
6
  const join = FiberSet.size(set).pipe(Effect.andThen((count) => Effect.logDebug(`Joining ${count} current fibers on the MainFiberSet`)), Effect.andThen(FiberSet.join(set)));
7
7
  const run = FiberSet.run(set);
8
+ // const waitUntilEmpty = Effect.gen(function*($) {
9
+ // const currentSize = yield* $(FiberSet.size(set))
10
+ // if (currentSize === 0) {
11
+ // return
12
+ // }
13
+ // yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
14
+ // while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
15
+ // yield* $(Effect.logDebug("MainFiberSet is empty"))
16
+ // })
17
+ // TODO: loop and interrupt all fibers in the set continuously?
18
+ const interrupt = Fiber.interruptAll(set);
8
19
  return {
20
+ interrupt,
9
21
  join,
10
22
  run,
11
23
  add,
@@ -22,4 +34,4 @@ export class MainFiberSet extends Context.TagMakeId("MainFiberSet", make)() {
22
34
  static JoinLive = this.pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
23
35
  static run = (self) => this.use((_) => _.run(self));
24
36
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFLbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFrQixDQUFDLENBQUE7SUFDckQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQTBDLEVBQUUsRUFBRSxDQUM1RCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQW1ELEVBQUUsRUFBRSxDQUNyRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUsscUNBQXFDLENBQUMsQ0FBQyxFQUNqRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbkMsQ0FBQTtJQUNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFN0IsT0FBTztRQUNMLElBQUk7UUFDSixHQUFHO1FBQ0gsR0FBRztRQUNILE1BQU07S0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBZ0I7SUFDdkYsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDM0MsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEgsTUFBTSxDQUFVLEdBQUcsR0FBRyxDQUFPLElBQXlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSJ9
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBSzFFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBa0IsQ0FBQyxDQUFBO0lBQ3JELE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxNQUEwQyxFQUFFLEVBQUUsQ0FDNUQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFtRCxFQUFFLEVBQUUsQ0FDckUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLHFDQUFxQyxDQUFDLENBQUMsRUFDakcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ25DLENBQUE7SUFDRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTdCLG1EQUFtRDtJQUNuRCxxREFBcUQ7SUFDckQsNkJBQTZCO0lBQzdCLGFBQWE7SUFDYixNQUFNO0lBQ04saUZBQWlGO0lBQ2pGLG9GQUFvRjtJQUNwRix1REFBdUQ7SUFDdkQsS0FBSztJQUVMLCtEQUErRDtJQUMvRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRXpDLE9BQU87UUFDTCxTQUFTO1FBQ1QsSUFBSTtRQUNKLEdBQUc7UUFDSCxHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFnQjtJQUN2RixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLENBQVUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsSCxNQUFNLENBQVUsR0FBRyxHQUFHLENBQU8sSUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-app",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -12,24 +12,24 @@
12
12
  "ts-pattern": "^5.2.0",
13
13
  "uuid": "^10.0.0",
14
14
  "validator": "^13.12.0",
15
- "@effect-app/schema": "1.4.0",
16
- "@effect-app/core": "1.4.0"
15
+ "@effect-app/core": "1.5.0",
16
+ "@effect-app/schema": "1.5.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@babel/cli": "^7.24.7",
20
20
  "@faker-js/faker": "^8.4.1",
21
- "@types/node": "~20.14.9",
21
+ "@types/node": "~20.14.10",
22
22
  "@types/uuid": "^10.0.0",
23
23
  "@types/validator": "^13.12.0",
24
24
  "fast-check": "~3.19.0",
25
25
  "ts-node": "^10.9.2",
26
- "typescript": "^5.5.2",
27
- "vitest": "^1.6.0"
26
+ "typescript": "^5.5.3",
27
+ "vitest": "^2.0.1"
28
28
  },
29
29
  "peerDependencies": {
30
- "@effect/platform": "^0.58.17",
31
- "effect": "^3.4.6",
32
- "@effect/schema": "^0.68.15"
30
+ "@effect/platform": "^0.58.21",
31
+ "effect": "^3.4.8",
32
+ "@effect/schema": "^0.68.18"
33
33
  },
34
34
  "typesVersions": {
35
35
  "*": {
@@ -1,5 +1,4 @@
1
- import type { Fiber } from "@effect-app/core"
2
- import { Context, Effect, FiberSet, Layer } from "@effect-app/core"
1
+ import { Context, Effect, Fiber, FiberSet, Layer } from "@effect-app/core"
3
2
 
4
3
  import type {} from "effect/Scope"
5
4
  import type {} from "effect/Context"
@@ -16,7 +15,21 @@ const make = Effect.gen(function*($) {
16
15
  )
17
16
  const run = FiberSet.run(set)
18
17
 
18
+ // const waitUntilEmpty = Effect.gen(function*($) {
19
+ // const currentSize = yield* $(FiberSet.size(set))
20
+ // if (currentSize === 0) {
21
+ // return
22
+ // }
23
+ // yield* $(Effect.logInfo("Waiting MainFiberSet to be empty: " + currentSize))
24
+ // while ((yield* $(FiberSet.size(set))) > 0) yield* $(Effect.sleep("250 millis"))
25
+ // yield* $(Effect.logDebug("MainFiberSet is empty"))
26
+ // })
27
+
28
+ // TODO: loop and interrupt all fibers in the set continuously?
29
+ const interrupt = Fiber.interruptAll(set)
30
+
19
31
  return {
32
+ interrupt,
20
33
  join,
21
34
  run,
22
35
  add,
@@ -0,0 +1,23 @@
1
+ // vitest.config.ts
2
+ import { defineConfig } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/node_modules/.pnpm/vite@4.0.0_@types+node@18.11.12/node_modules/vite/dist/node/index.js";
3
+
4
+ // ../../vite.config.base.ts
5
+ import { tsPlugin } from "file:///Users/patrickroza/Projects/Personal/effect-ts-app/libs/packages/compiler/dist/vitePlugin.js";
6
+ function makeConfig() {
7
+ return {
8
+ plugins: [tsPlugin({})],
9
+ test: {
10
+ include: ["./_src/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
11
+ exclude: ["./_test/**/*"],
12
+ reporters: "verbose",
13
+ globals: true
14
+ }
15
+ };
16
+ }
17
+
18
+ // vitest.config.ts
19
+ var vitest_config_default = defineConfig(makeConfig());
20
+ export {
21
+ vitest_config_default as default
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZXN0LmNvbmZpZy50cyIsICIuLi8uLi92aXRlLmNvbmZpZy5iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy9wYWNrYWdlcy9ib2lsZXJwbGF0ZS1wcmVsdWRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvcGF0cmlja3JvemEvUHJvamVjdHMvUGVyc29uYWwvZWZmZWN0LXRzLWFwcC9saWJzL3BhY2thZ2VzL2JvaWxlcnBsYXRlLXByZWx1ZGUvdml0ZXN0LmNvbmZpZy50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBtYWtlQ29uZmlnIGZyb20gXCIuLi8uLi92aXRlLmNvbmZpZy5iYXNlXCJcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKG1ha2VDb25maWcoKSlcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlic1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3BhdHJpY2tyb3phL1Byb2plY3RzL1BlcnNvbmFsL2VmZmVjdC10cy1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9Qcm9qZWN0cy9QZXJzb25hbC9lZmZlY3QtdHMtYXBwL2xpYnMvdml0ZS5jb25maWcuYmFzZS50c1wiOy8vLyA8cmVmZXJlbmNlIHR5cGVzPVwidml0ZXN0XCIgLz5cbmltcG9ydCB7IHRzUGx1Z2luIH0gZnJvbSBcIkBlZmZlY3QtdHMtYXBwL2NvbXBpbGVyL3ZpdGVQbHVnaW5cIlxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZygpIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIHBsdWdpbnM6IFt0c1BsdWdpbih7fSldLFxuICAgIHRlc3Q6IHtcbiAgICAgIGluY2x1ZGU6IFtcIi4vX3NyYy8qKi8qLnRlc3Que2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fVwiXSxcbiAgICAgIGV4Y2x1ZGU6IFtcIi4vX3Rlc3QvKiovKlwiXSxcbiAgICAgIHJlcG9ydGVyczogXCJ2ZXJib3NlXCIsXG4gICAgICBnbG9iYWxzOiB0cnVlXG4gICAgfSxcbiAgICAvLyByZXNvbHZlOiB7XG4gICAgLy8gICBhbGlhczoge1xuICAgIC8vICAgICBcIkBlZmZlY3QvaW8vdGVzdFwiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi90ZXN0XCIpLFxuICAgIC8vICAgICBcIkBlZmZlY3QvaW9cIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCIvc3JjXCIpXG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixTQUFTLGdCQUFnQjtBQUNWLFNBQVIsYUFBOEI7QUFDbkMsU0FBTztBQUFBLElBRUwsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFBQSxJQUN0QixNQUFNO0FBQUEsTUFDSixTQUFTLENBQUMsa0RBQWtEO0FBQUEsTUFDNUQsU0FBUyxDQUFDLGNBQWM7QUFBQSxNQUN4QixXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLEVBT0Y7QUFDRjs7O0FEZkEsSUFBTyx3QkFBUSxhQUFhLFdBQVcsQ0FBQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,33 +0,0 @@
1
- // packages/prelude/vitest.config.ts
2
- import { defineConfig } from "file:///Users/patrickroza/pj/effect-app/libs/node_modules/.pnpm/vite@5.1.5_@types+node@20.11.25/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: packages.reduce((acc, cur) => {
20
- acc[JSON.parse(fs.readFileSync(cur + "/package.json", "utf-8")).name] = path.resolve(cur, "src");
21
- return acc;
22
- }, {})
23
- };
24
- return cfg;
25
- }
26
-
27
- // packages/prelude/vitest.config.ts
28
- var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/prelude";
29
- var vitest_config_default = defineConfig(makeConfig(__vite_injected_original_dirname2));
30
- export {
31
- vitest_config_default as default
32
- };
33
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzIiwgInZpdGUuY29uZmlnLmJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3BhY2thZ2VzL3ByZWx1ZGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IG1ha2VDb25maWcgZnJvbSBcIi4uLy4uL3ZpdGUuY29uZmlnLmJhc2VcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcobWFrZUNvbmZpZyhfX2Rpcm5hbWUpKVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3ZpdGUuY29uZmlnLmJhc2UudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tIFwidW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZVwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiXG5cbi8vIGNvbnN0IGF1dG9JbXBvcnQgPSBBdXRvSW1wb3J0KHtcbi8vICAgZHRzOiBcIi4vdGVzdC9hdXRvLWltcG9ydHMuZC50c1wiLFxuLy8gICAvLyBpbmNsdWRlOiBbXG4vLyAgIC8vICAgL1xcLnRlc3RcXC5bdGpdc3g/JC8gLy8gLnRzLCAudHN4LCAuanMsIC5qc3hcbi8vICAgLy8gXSxcbi8vICAgaW1wb3J0czogW1xuLy8gICAgIFwidml0ZXN0XCJcbi8vICAgXVxuLy8gfSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZyhkaXJOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicGFja2FnZXNcIilcbiAgY29uc3QgcGFja2FnZXMgPSBmcy5yZWFkZGlyU3luYyhwcmVmaXgpLm1hcChmID0+IHByZWZpeCArIFwiL1wiICsgZikuZmlsdGVyKGYgPT4gZnMubHN0YXRTeW5jKGYpLmlzRGlyZWN0b3J5KCkgKVxuICBjb25zdCBjZmcgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAvL3BsdWdpbnM6IFthdXRvSW1wb3J0XSxcbiAgICB0ZXN0OiB7XG4gICAgICBpbmNsdWRlOiAgW1wiLi90ZXN0LyoqLyoudGVzdC57anMsbWpzLGNqcyx0cyxtdHMsY3RzLGpzeCx0c3h9XCJdLFxuICAgICAgcmVwb3J0ZXJzOiBcInZlcmJvc2VcIixcbiAgICAgIGdsb2JhbHM6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmU6IHBhY2thZ2VzLnJlZHVjZSgoYWNjLCBjdXIpID0+IHtcbiAgICAgIGFjY1tKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjdXIgKyBcIi9wYWNrYWdlLmpzb25cIiwgXCJ1dGYtOFwiKSkubmFtZV0gPSBwYXRoLnJlc29sdmUoY3VyLCBcInNyY1wiKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9KVxuICB9XG4gIC8vY29uc29sZS5sb2coY2ZnKVxuICByZXR1cm4gY2ZnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxvQkFBb0I7OztBQ0E3QixPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBRmYsSUFBTSxtQ0FBbUM7QUFnQjFCLFNBQVIsV0FBNEIsU0FBa0I7QUFDbkQsUUFBTSxTQUFTLEtBQUssUUFBUSxrQ0FBVyxVQUFVO0FBQ2pELFFBQU0sV0FBVyxHQUFHLFlBQVksTUFBTSxFQUFFLElBQUksT0FBSyxTQUFTLE1BQU0sQ0FBQyxFQUFFLE9BQU8sT0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBRTtBQUM3RyxRQUFNLE1BQU07QUFBQTtBQUFBO0FBQUEsSUFHVixNQUFNO0FBQUEsTUFDSixTQUFVLENBQUMsa0RBQWtEO0FBQUEsTUFDN0QsV0FBVztBQUFBLE1BQ1gsU0FBUztBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVMsU0FBUyxPQUFPLENBQUMsS0FBSyxRQUFRO0FBQ3JDLFVBQUksS0FBSyxNQUFNLEdBQUcsYUFBYSxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksS0FBSyxRQUFRLEtBQUssS0FBSztBQUMvRixhQUFPO0FBQUEsSUFDVCxHQUFHLENBQUMsQ0FBQztBQUFBLEVBQ1A7QUFFQSxTQUFPO0FBQ1Q7OztBRGxDQSxJQUFNQSxvQ0FBbUM7QUFJekMsSUFBTyx3QkFBUSxhQUFhLFdBQVdDLGlDQUFTLENBQUM7IiwKICAibmFtZXMiOiBbIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIl0KfQo=
@@ -1,37 +0,0 @@
1
- // packages/prelude/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/prelude/vitest.config.ts
32
- var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/prelude";
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzIiwgInZpdGUuY29uZmlnLmJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3BhY2thZ2VzL3ByZWx1ZGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IG1ha2VDb25maWcgZnJvbSBcIi4uLy4uL3ZpdGUuY29uZmlnLmJhc2VcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcobWFrZUNvbmZpZyhfX2Rpcm5hbWUpKVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3ZpdGUuY29uZmlnLmJhc2UudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tIFwidW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZVwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiXG5cbi8vIGNvbnN0IGF1dG9JbXBvcnQgPSBBdXRvSW1wb3J0KHtcbi8vICAgZHRzOiBcIi4vdGVzdC9hdXRvLWltcG9ydHMuZC50c1wiLFxuLy8gICAvLyBpbmNsdWRlOiBbXG4vLyAgIC8vICAgL1xcLnRlc3RcXC5bdGpdc3g/JC8gLy8gLnRzLCAudHN4LCAuanMsIC5qc3hcbi8vICAgLy8gXSxcbi8vICAgaW1wb3J0czogW1xuLy8gICAgIFwidml0ZXN0XCJcbi8vICAgXVxuLy8gfSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZyhkaXJOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicGFja2FnZXNcIilcbiAgY29uc3QgcGFja2FnZXMgPSBmcy5yZWFkZGlyU3luYyhwcmVmaXgpLm1hcChmID0+IHByZWZpeCArIFwiL1wiICsgZikuZmlsdGVyKGYgPT4gZnMubHN0YXRTeW5jKGYpLmlzRGlyZWN0b3J5KCkgKVxuICBjb25zdCBjZmcgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAvL3BsdWdpbnM6IFthdXRvSW1wb3J0XSxcbiAgICB0ZXN0OiB7XG4gICAgICBpbmNsdWRlOiAgW1wiLi90ZXN0LyoqLyoudGVzdC57anMsbWpzLGNqcyx0cyxtdHMsY3RzLGpzeCx0c3h9XCJdLFxuICAgICAgcmVwb3J0ZXJzOiBcInZlcmJvc2VcIixcbiAgICAgIGdsb2JhbHM6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiBwYWNrYWdlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7IC8vIHdvcmthcm91bmQgZm9yIC9QcmVsdWRlIGlzc3VlXG4gICAgICBhY2NbSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoY3VyICsgXCIvcGFja2FnZS5qc29uXCIsIFwidXRmLThcIikpLm5hbWVdID0gcGF0aC5yZXNvbHZlKGN1ciwgY3VyLmVuZHNXaXRoKFwiY29yZVwiKSA/IFwiZGlzdFwiIDogXCJzcmNcIilcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7IH0pIC8vIFwiQGVmZmVjdC1hcHAvY29yZS9QcmVsdWRlXCI6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwicGFja2FnZXMvY29yZS9zcmMvUHJlbHVkZS5jb2RlLnRzXCIpXG4gIH1cbiAgfVxuICBjb25zb2xlLmxvZyhjZmcpXG4gIHJldHVybiBjZmdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQSxTQUFTLG9CQUFvQjs7O0FDQTdCLE9BQU8sVUFBVTtBQUNqQixPQUFPLFFBQVE7QUFGZixJQUFNLG1DQUFtQztBQWdCMUIsU0FBUixXQUE0QixTQUFrQjtBQUNuRCxRQUFNLFNBQVMsS0FBSyxRQUFRLGtDQUFXLFVBQVU7QUFDakQsUUFBTSxXQUFXLEdBQUcsWUFBWSxNQUFNLEVBQUUsSUFBSSxPQUFLLFNBQVMsTUFBTSxDQUFDLEVBQUUsT0FBTyxPQUFLLEdBQUcsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFFO0FBQzdHLFFBQU0sTUFBTTtBQUFBO0FBQUE7QUFBQSxJQUdWLE1BQU07QUFBQSxNQUNKLFNBQVUsQ0FBQyxrREFBa0Q7QUFBQSxNQUM3RCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFLLFFBQVE7QUFDckMsWUFBSSxLQUFLLE1BQU0sR0FBRyxhQUFhLE1BQU0saUJBQWlCLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLFFBQVEsS0FBSyxJQUFJLFNBQVMsTUFBTSxJQUFJLFNBQVMsS0FBSztBQUMvSCxlQUFPO0FBQUEsTUFDVCxHQUFHLENBQUUsQ0FBQztBQUFBO0FBQUEsSUFDUjtBQUFBLEVBQ0E7QUFDQSxVQUFRLElBQUksR0FBRztBQUNmLFNBQU87QUFDVDs7O0FEcENBLElBQU1BLG9DQUFtQztBQUl6QyxJQUFPLHdCQUFRLGFBQWEsV0FBV0MsaUNBQVMsQ0FBQzsiLAogICJuYW1lcyI6IFsiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiXQp9Cg==
@@ -1,37 +0,0 @@
1
- // packages/prelude/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/prelude/vitest.config.ts
32
- var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/prelude";
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzIiwgInZpdGUuY29uZmlnLmJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3BhY2thZ2VzL3ByZWx1ZGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IG1ha2VDb25maWcgZnJvbSBcIi4uLy4uL3ZpdGUuY29uZmlnLmJhc2VcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcobWFrZUNvbmZpZyhfX2Rpcm5hbWUpKVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3ZpdGUuY29uZmlnLmJhc2UudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tIFwidW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZVwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiXG5cbi8vIGNvbnN0IGF1dG9JbXBvcnQgPSBBdXRvSW1wb3J0KHtcbi8vICAgZHRzOiBcIi4vdGVzdC9hdXRvLWltcG9ydHMuZC50c1wiLFxuLy8gICAvLyBpbmNsdWRlOiBbXG4vLyAgIC8vICAgL1xcLnRlc3RcXC5bdGpdc3g/JC8gLy8gLnRzLCAudHN4LCAuanMsIC5qc3hcbi8vICAgLy8gXSxcbi8vICAgaW1wb3J0czogW1xuLy8gICAgIFwidml0ZXN0XCJcbi8vICAgXVxuLy8gfSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZyhkaXJOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicGFja2FnZXNcIilcbiAgY29uc3QgcGFja2FnZXMgPSBmcy5yZWFkZGlyU3luYyhwcmVmaXgpLm1hcChmID0+IHByZWZpeCArIFwiL1wiICsgZikuZmlsdGVyKGYgPT4gZnMubHN0YXRTeW5jKGYpLmlzRGlyZWN0b3J5KCkgKVxuICBjb25zdCBjZmcgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAvL3BsdWdpbnM6IFthdXRvSW1wb3J0XSxcbiAgICB0ZXN0OiB7XG4gICAgICBpbmNsdWRlOiAgW1wiLi90ZXN0LyoqLyoudGVzdC57anMsbWpzLGNqcyx0cyxtdHMsY3RzLGpzeCx0c3h9XCJdLFxuICAgICAgcmVwb3J0ZXJzOiBcInZlcmJvc2VcIixcbiAgICAgIGdsb2JhbHM6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiBwYWNrYWdlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7IC8vIHdvcmthcm91bmQgZm9yIC9QcmVsdWRlIGlzc3VlXG4gICAgICBhY2NbSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoY3VyICsgXCIvcGFja2FnZS5qc29uXCIsIFwidXRmLThcIikpLm5hbWVdID0gcGF0aC5yZXNvbHZlKGN1ciwgY3VyLmVuZHNXaXRoKFwiY29yZVwiKSA/IFwiZGlzdFwiIDogXCJzcmNcIilcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7IH0pIC8vIFwiQGVmZmVjdC1hcHAvY29yZS9QcmVsdWRlXCI6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwicGFja2FnZXMvY29yZS9zcmMvUHJlbHVkZS5jb2RlLnRzXCIpXG4gIH1cbiAgfVxuICBjb25zb2xlLmxvZyhjZmcpXG4gIHJldHVybiBjZmdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQSxTQUFTLG9CQUFvQjs7O0FDQTdCLE9BQU8sVUFBVTtBQUNqQixPQUFPLFFBQVE7QUFGZixJQUFNLG1DQUFtQztBQWdCMUIsU0FBUixXQUE0QixTQUFrQjtBQUNuRCxRQUFNLFNBQVMsS0FBSyxRQUFRLGtDQUFXLFVBQVU7QUFDakQsUUFBTSxXQUFXLEdBQUcsWUFBWSxNQUFNLEVBQUUsSUFBSSxPQUFLLFNBQVMsTUFBTSxDQUFDLEVBQUUsT0FBTyxPQUFLLEdBQUcsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFFO0FBQzdHLFFBQU0sTUFBTTtBQUFBO0FBQUE7QUFBQSxJQUdWLE1BQU07QUFBQSxNQUNKLFNBQVUsQ0FBQyxrREFBa0Q7QUFBQSxNQUM3RCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFLLFFBQVE7QUFDckMsWUFBSSxLQUFLLE1BQU0sR0FBRyxhQUFhLE1BQU0saUJBQWlCLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLFFBQVEsS0FBSyxJQUFJLFNBQVMsTUFBTSxJQUFJLFNBQVMsS0FBSztBQUMvSCxlQUFPO0FBQUEsTUFDVCxHQUFHLENBQUUsQ0FBQztBQUFBO0FBQUEsSUFDUjtBQUFBLEVBQ0E7QUFDQSxVQUFRLElBQUksR0FBRztBQUNmLFNBQU87QUFDVDs7O0FEcENBLElBQU1BLG9DQUFtQztBQUl6QyxJQUFPLHdCQUFRLGFBQWEsV0FBV0MsaUNBQVMsQ0FBQzsiLAogICJuYW1lcyI6IFsiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiXQp9Cg==
@@ -1,37 +0,0 @@
1
- // packages/prelude/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/prelude/vitest.config.ts
32
- var __vite_injected_original_dirname2 = "/Users/patrickroza/pj/effect-app/libs/packages/prelude";
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzIiwgInZpdGUuY29uZmlnLmJhc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3BhY2thZ2VzL3ByZWx1ZGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9wYXRyaWNrcm96YS9wai9lZmZlY3QtYXBwL2xpYnMvcGFja2FnZXMvcHJlbHVkZS92aXRlc3QuY29uZmlnLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IG1ha2VDb25maWcgZnJvbSBcIi4uLy4uL3ZpdGUuY29uZmlnLmJhc2VcIlxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcobWFrZUNvbmZpZyhfX2Rpcm5hbWUpKVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvcGF0cmlja3JvemEvcGovZWZmZWN0LWFwcC9saWJzL3ZpdGUuY29uZmlnLmJhc2UudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3BhdHJpY2tyb3phL3BqL2VmZmVjdC1hcHAvbGlicy92aXRlLmNvbmZpZy5iYXNlLnRzXCI7Ly8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlc3RcIiAvPlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tIFwidW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZVwiXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiXG5cbi8vIGNvbnN0IGF1dG9JbXBvcnQgPSBBdXRvSW1wb3J0KHtcbi8vICAgZHRzOiBcIi4vdGVzdC9hdXRvLWltcG9ydHMuZC50c1wiLFxuLy8gICAvLyBpbmNsdWRlOiBbXG4vLyAgIC8vICAgL1xcLnRlc3RcXC5bdGpdc3g/JC8gLy8gLnRzLCAudHN4LCAuanMsIC5qc3hcbi8vICAgLy8gXSxcbi8vICAgaW1wb3J0czogW1xuLy8gICAgIFwidml0ZXN0XCJcbi8vICAgXVxuLy8gfSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWFrZUNvbmZpZyhkaXJOYW1lPzogc3RyaW5nKSB7XG4gIGNvbnN0IHByZWZpeCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIFwicGFja2FnZXNcIilcbiAgY29uc3QgcGFja2FnZXMgPSBmcy5yZWFkZGlyU3luYyhwcmVmaXgpLm1hcChmID0+IHByZWZpeCArIFwiL1wiICsgZikuZmlsdGVyKGYgPT4gZnMubHN0YXRTeW5jKGYpLmlzRGlyZWN0b3J5KCkgKVxuICBjb25zdCBjZmcgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAvL3BsdWdpbnM6IFthdXRvSW1wb3J0XSxcbiAgICB0ZXN0OiB7XG4gICAgICBpbmNsdWRlOiAgW1wiLi90ZXN0LyoqLyoudGVzdC57anMsbWpzLGNqcyx0cyxtdHMsY3RzLGpzeCx0c3h9XCJdLFxuICAgICAgcmVwb3J0ZXJzOiBcInZlcmJvc2VcIixcbiAgICAgIGdsb2JhbHM6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiBwYWNrYWdlcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7IC8vIHdvcmthcm91bmQgZm9yIC9QcmVsdWRlIGlzc3VlXG4gICAgICBhY2NbSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoY3VyICsgXCIvcGFja2FnZS5qc29uXCIsIFwidXRmLThcIikpLm5hbWVdID0gcGF0aC5yZXNvbHZlKGN1ciwgY3VyLmVuZHNXaXRoKFwiY29yZVwiKSA/IFwiZGlzdFwiIDogXCJzcmNcIilcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LCB7IH0pIC8vIFwiQGVmZmVjdC1hcHAvY29yZS9QcmVsdWRlXCI6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwicGFja2FnZXMvY29yZS9zcmMvUHJlbHVkZS5jb2RlLnRzXCIpXG4gIH1cbiAgfVxuICBjb25zb2xlLmxvZyhjZmcpXG4gIHJldHVybiBjZmdcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQSxTQUFTLG9CQUFvQjs7O0FDQTdCLE9BQU8sVUFBVTtBQUNqQixPQUFPLFFBQVE7QUFGZixJQUFNLG1DQUFtQztBQWdCMUIsU0FBUixXQUE0QixTQUFrQjtBQUNuRCxRQUFNLFNBQVMsS0FBSyxRQUFRLGtDQUFXLFVBQVU7QUFDakQsUUFBTSxXQUFXLEdBQUcsWUFBWSxNQUFNLEVBQUUsSUFBSSxPQUFLLFNBQVMsTUFBTSxDQUFDLEVBQUUsT0FBTyxPQUFLLEdBQUcsVUFBVSxDQUFDLEVBQUUsWUFBWSxDQUFFO0FBQzdHLFFBQU0sTUFBTTtBQUFBO0FBQUE7QUFBQSxJQUdWLE1BQU07QUFBQSxNQUNKLFNBQVUsQ0FBQyxrREFBa0Q7QUFBQSxNQUM3RCxXQUFXO0FBQUEsTUFDWCxTQUFTO0FBQUEsSUFDWDtBQUFBLElBQ0EsU0FBUztBQUFBLE1BQ1AsT0FBTyxTQUFTLE9BQU8sQ0FBQyxLQUFLLFFBQVE7QUFDckMsWUFBSSxLQUFLLE1BQU0sR0FBRyxhQUFhLE1BQU0saUJBQWlCLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxLQUFLLFFBQVEsS0FBSyxJQUFJLFNBQVMsTUFBTSxJQUFJLFNBQVMsS0FBSztBQUMvSCxlQUFPO0FBQUEsTUFDVCxHQUFHLENBQUUsQ0FBQztBQUFBO0FBQUEsSUFDUjtBQUFBLEVBQ0E7QUFDQSxVQUFRLElBQUksR0FBRztBQUNmLFNBQU87QUFDVDs7O0FEcENBLElBQU1BLG9DQUFtQztBQUl6QyxJQUFPLHdCQUFRLGFBQWEsV0FBV0MsaUNBQVMsQ0FBQzsiLAogICJuYW1lcyI6IFsiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiXQp9Cg==