@effect-app/infra 0.234.7 → 0.235.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/_cjs/RequestContext.cjs +8 -5
  3. package/_cjs/RequestContext.cjs.map +1 -1
  4. package/_cjs/api/routing/base.cjs +1 -2
  5. package/_cjs/api/routing/base.cjs.map +1 -1
  6. package/_cjs/api/routing/makeRequestHandler.cjs +2 -2
  7. package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
  8. package/_cjs/api/routing/schema/jwt.cjs +1 -1
  9. package/_cjs/api/routing/schema/jwt.cjs.map +1 -1
  10. package/_cjs/services/QueueMaker/memQueue.cjs +2 -2
  11. package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
  12. package/_cjs/services/QueueMaker/sbqueue.cjs +2 -2
  13. package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
  14. package/_cjs/services/QueueMaker/service.cjs +5 -6
  15. package/_cjs/services/QueueMaker/service.cjs.map +1 -1
  16. package/_cjs/services/RepositoryBase.cjs +9 -9
  17. package/_cjs/services/RepositoryBase.cjs.map +1 -1
  18. package/_cjs/services/query/dsl.cjs +1 -1
  19. package/_cjs/services/query/new-kid-interpreter.cjs +3 -3
  20. package/_cjs/services/query/new-kid-interpreter.cjs.map +1 -1
  21. package/_cjs/test.arbs.cjs.map +1 -1
  22. package/dist/RequestContext.d.ts +27 -30
  23. package/dist/RequestContext.d.ts.map +1 -1
  24. package/dist/RequestContext.js +7 -6
  25. package/dist/api/routing/base.d.ts +3 -2
  26. package/dist/api/routing/base.d.ts.map +1 -1
  27. package/dist/api/routing/base.js +2 -3
  28. package/dist/api/routing/makeRequestHandler.d.ts +1 -1
  29. package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
  30. package/dist/api/routing/makeRequestHandler.js +3 -3
  31. package/dist/api/routing/match.d.ts +1 -1
  32. package/dist/api/routing/match.d.ts.map +1 -1
  33. package/dist/api/routing/schema/jwt.js +1 -1
  34. package/dist/services/QueueMaker/memQueue.js +4 -4
  35. package/dist/services/QueueMaker/sbqueue.js +4 -4
  36. package/dist/services/QueueMaker/service.d.ts +1 -1
  37. package/dist/services/QueueMaker/service.d.ts.map +1 -1
  38. package/dist/services/QueueMaker/service.js +6 -7
  39. package/dist/services/RepositoryBase.d.ts +1 -1
  40. package/dist/services/RepositoryBase.js +9 -9
  41. package/dist/services/query/dsl.js +1 -1
  42. package/dist/services/query/new-kid-interpreter.js +3 -3
  43. package/dist/test.arbs.d.ts +1 -1
  44. package/dist/test.arbs.d.ts.map +1 -1
  45. package/dist/test.arbs.js +1 -1
  46. package/examples/query.ts +4 -4
  47. package/package.json +10 -10
  48. package/src/RequestContext.ts +6 -5
  49. package/src/api/routing/base.ts +3 -3
  50. package/src/api/routing/makeRequestHandler.ts +5 -4
  51. package/src/api/routing/match.ts +1 -1
  52. package/src/api/routing/schema/jwt.ts +2 -2
  53. package/src/services/QueueMaker/memQueue.ts +3 -3
  54. package/src/services/QueueMaker/sbqueue.ts +3 -3
  55. package/src/services/QueueMaker/service.ts +5 -6
  56. package/src/services/RepositoryBase.ts +9 -9
  57. package/src/services/query/dsl.ts +1 -1
  58. package/src/services/query/new-kid-interpreter.ts +2 -2
  59. package/src/services/simpledb/shared.ts.bak +1 -1
  60. package/src/test.arbs.ts +1 -1
  61. package/test/query.test.ts +11 -11
  62. package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
  63. package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
  64. package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
  65. package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +0 -37
@@ -95,9 +95,9 @@ export function makeRepo() {
95
95
  return Effect
96
96
  .gen(function* ($) {
97
97
  const rctx = yield* $(Effect.context());
98
- const encodeMany = flow(S.encode(S.array(schema)), Effect.provide(rctx), Effect.withSpan("encodeMany"));
98
+ const encodeMany = flow(S.encode(S.Array(schema)), Effect.provide(rctx), Effect.withSpan("encodeMany"));
99
99
  const decode = flow(S.decode(schema), Effect.provide(rctx));
100
- const decodeMany = flow(S.decode(S.array(schema)), Effect.provide(rctx), Effect.withSpan("decodeMany"));
100
+ const decodeMany = flow(S.decode(S.Array(schema)), Effect.provide(rctx), Effect.withSpan("decodeMany"));
101
101
  const store = yield* $(mkStore(args.makeInitial, args.config));
102
102
  const { get } = yield* $(ContextMapContainer);
103
103
  const cms = Effect.andThen(get, (_) => ({
@@ -115,10 +115,10 @@ export function makeRepo() {
115
115
  .flatMap(allE, (_) => decodeMany(_).pipe(Effect.orDie))
116
116
  .pipe(Effect.map((_) => _));
117
117
  const fieldsSchema = schema;
118
- const i = ("fields" in fieldsSchema ? S.struct(fieldsSchema["fields"]) : schema)
118
+ const i = ("fields" in fieldsSchema ? S.Struct(fieldsSchema["fields"]) : schema)
119
119
  .pipe((_) => _.ast._tag === "Union"
120
120
  // we need to get the TypeLiteral, incase of class it's behind a transform...
121
- ? S.union(..._.ast.types.map((_) => S.make(_._tag === "Transformation" ? _.from : _)
121
+ ? S.Union(..._.ast.types.map((_) => S.make(_._tag === "Transformation" ? _.from : _)
122
122
  .pipe(S.pick("id"))))
123
123
  : _
124
124
  .ast
@@ -189,7 +189,7 @@ export function makeRepo() {
189
189
  .pipe(Effect.orDie, Effect.withSpan("parseMany")));
190
190
  const parseMany2 = (items, schema) => Effect
191
191
  .flatMap(cms, (cm) => S
192
- .decode(S.array(schema))(items.map((_) => mapReverse(_, cm.set)))
192
+ .decode(S.Array(schema))(items.map((_) => mapReverse(_, cm.set)))
193
193
  .pipe(Effect.orDie, Effect.withSpan("parseMany2")));
194
194
  const filter = (args) => store
195
195
  .filter(args)
@@ -202,11 +202,11 @@ export function makeRepo() {
202
202
  const eff = a.mode === "project"
203
203
  ? filter(a)
204
204
  // TODO: mapFrom but need to support per field and dependencies
205
- .pipe(Effect.andThen(flow(S.decode(S.array(a.schema ?? schema)), Effect.provide(rctx))))
205
+ .pipe(Effect.andThen(flow(S.decode(S.Array(a.schema ?? schema)), Effect.provide(rctx))))
206
206
  : a.mode === "collect"
207
207
  ? filter(a)
208
208
  // TODO: mapFrom but need to support per field and dependencies
209
- .pipe(Effect.flatMap(flow(S.decode(S.array(a.schema)), Effect.map(ReadonlyArray.getSomes), Effect.provide(rctx))))
209
+ .pipe(Effect.flatMap(flow(S.decode(S.Array(a.schema)), Effect.map(ReadonlyArray.getSomes), Effect.provide(rctx))))
210
210
  : Effect.flatMap(filter(a), (_) => Unify.unify(a.schema
211
211
  // TODO: partial may not match?
212
212
  ? parseMany2(_, a.schema)
@@ -237,8 +237,8 @@ export function makeRepo() {
237
237
  */
238
238
  mapped: (schema) => {
239
239
  const dec = S.decode(schema);
240
- const encMany = S.encode(S.array(schema));
241
- const decMany = S.decode(S.array(schema));
240
+ const encMany = S.encode(S.Array(schema));
241
+ const decMany = S.decode(S.Array(schema));
242
242
  return {
243
243
  all: allE.pipe(Effect.flatMap(decMany), Effect.map((_) => _)),
244
244
  find: (id) => flatMapOption(findE(id), dec),
@@ -83,7 +83,7 @@ export const one = (current) => new One({
83
83
  // TODO: implement count like one instead? or should we change schema projection to work with arrays, so we can count the elements?
84
84
  // no it's better to implement a distinct count so that the implementation can be optimised per adapter.
85
85
  export const count = (current) =>
86
- // new Project({ current: current as any, /* TODO: why */ schema: S.struct({ id: S.unknown }) })
86
+ // new Project({ current: current as any, /* TODO: why */ schema: S.Struct({ id: S.unknown }) })
87
87
  new Count({ current });
88
88
  /*
89
89
  .andThen(flow(
@@ -78,7 +78,7 @@ const interpret = (_) => {
78
78
  count: ({ current }) => {
79
79
  upd(interpret(current));
80
80
  data.ttype = "count";
81
- data.schema = S.struct({ id: S.string });
81
+ data.schema = S.Struct({ id: S.String });
82
82
  },
83
83
  order: ({ current, direction, field }) => {
84
84
  upd(interpret(current));
@@ -104,7 +104,7 @@ export const toFilter = (q) => {
104
104
  let select = [];
105
105
  if (schema) {
106
106
  let t = schema.ast;
107
- if (S.AST.isTransform(t)) {
107
+ if (S.AST.isTransformation(t)) {
108
108
  t = t.from;
109
109
  }
110
110
  if (S.AST.isTypeLiteral(t)) {
@@ -127,4 +127,4 @@ export const toFilter = (q) => {
127
127
  : undefined
128
128
  });
129
129
  };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWtpZC1pbnRlcnByZXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9xdWVyeS9uZXcta2lkLWludGVycHJldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBR2pELE9BQU8sRUFBRSxJQUFJLEVBQXFCLE1BQU0sYUFBYSxDQUFBO0FBYXJELE1BQU0sU0FBUyxHQUFHLENBQWdFLENBQTJCLEVBQUUsRUFBRTtJQUMvRyxNQUFNLENBQUMsR0FBRyxDQUFvQixDQUFBO0lBRTlCLE1BQU0sSUFBSSxHQUFtQztRQUMzQyxNQUFNLEVBQUUsRUFBRTtRQUNWLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLEVBQUU7UUFDVCxLQUFLLEVBQUUsU0FBUztRQUNoQixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFBO0lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FDVixDQUFpQyxFQUNqQyxFQUFFO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0IsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDL0MsSUFBSSxDQUFDLENBQUMs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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWtpZC1pbnRlcnByZXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9xdWVyeS9uZXcta2lkLWludGVycHJldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBR2pELE9BQU8sRUFBRSxJQUFJLEVBQXFCLE1BQU0sYUFBYSxDQUFBO0FBYXJELE1BQU0sU0FBUyxHQUFHLENBQWdFLENBQTJCLEVBQUUsRUFBRTtJQUMvRyxNQUFNLENBQUMsR0FBRyxDQUFvQixDQUFBO0lBRTlCLE1BQU0sSUFBSSxHQUFtQztRQUMzQyxNQUFNLEVBQUUsRUFBRTtRQUNWLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLEVBQUU7UUFDVCxLQUFLLEVBQUUsU0FBUztRQUNoQixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFBO0lBRUQsTUFBTSxHQUFHLEdBQUcsQ0FDVixDQUFpQyxFQUNqQyxFQUFFO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0IsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDL0MsSUFBSSxDQUFDLENBQUMs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
@@ -7,5 +7,5 @@ export declare function generate<T>(arb: fc.Arbitrary<T>): fc.Value<T>;
7
7
  /**
8
8
  * @tsplus getter effect/schema/Arbitrary generate
9
9
  */
10
- export declare function generateFromArbitrary<T>(arb: A.Arbitrary<T>): fc.Value<T>;
10
+ export declare function generateFromArbitrary<T>(arb: A.LazyArbitrary<T>): fc.Value<T>;
11
11
  //# sourceMappingURL=test.arbs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.arbs.d.ts","sourceRoot":"","sources":["../src/test.arbs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAOhC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,eAE/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAG3D"}
1
+ {"version":3,"file":"test.arbs.d.ts","sourceRoot":"","sources":["../src/test.arbs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,YAAY,CAAA;AAOhC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,eAE/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAG/D"}
package/dist/test.arbs.js CHANGED
@@ -19,4 +19,4 @@ export function generateFromArbitrary(arb) {
19
19
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
20
20
  return generate(arb(fc));
21
21
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hcmJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QuYXJicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFFNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRWpDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUU5QyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFZjs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUksR0FBb0I7SUFDOUMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUksR0FBbUI7SUFDMUQscUdBQXFHO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFTLENBQUMsQ0FBQyxDQUFBO0FBQ2pDLENBQUMifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hcmJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3QuYXJicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFFNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRWpDLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUU5QyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7QUFFZjs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUksR0FBb0I7SUFDOUMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUksR0FBdUI7SUFDOUQscUdBQXFHO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFTLENBQUMsQ0FBQyxDQUFBO0FBQ2pDLENBQUMifQ==
package/examples/query.ts CHANGED
@@ -4,9 +4,9 @@ import { and, or, order, page, project, where } from "../src/services/query.js"
4
4
  import { ContextMapContainer } from "../src/services/Store/ContextMapContainer.js"
5
5
  import { MemoryStoreLive } from "../src/services/Store/Memory.js"
6
6
 
7
- const str = S.struct({ _tag: S.literal("string"), value: S.string })
8
- const num = S.struct({ _tag: S.literal("number"), value: S.number })
9
- const someUnion = S.union(str, num)
7
+ const str = S.Struct({ _tag: S.Literal("string"), value: S.String })
8
+ const num = S.Struct({ _tag: S.Literal("number"), value: S.Number })
9
+ const someUnion = S.Union(str, num)
10
10
 
11
11
  export class Something extends S.Class<Something>()({
12
12
  id: S.StringId.withDefault,
@@ -51,7 +51,7 @@ const program = Effect.gen(function*($) {
51
51
  ),
52
52
  order("displayName"),
53
53
  page({ take: 1 }),
54
- project(S.struct(Something.pick("id", "displayName")))
54
+ project(S.Struct(Something.pick("id", "displayName")))
55
55
  )))
56
56
  console.log("$$ result", r)
57
57
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "0.234.7",
3
+ "version": "0.235.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -18,14 +18,14 @@
18
18
  "proper-lockfile": "^4.1.2",
19
19
  "pure-rand": "6.1.0",
20
20
  "redlock": "^4.2.0",
21
- "effect-app": "0.202.1",
22
- "@effect-app/infra-adapters": "0.154.9",
23
- "@effect-app/schema": "0.220.4",
24
- "@effect-app/core": "0.169.1"
21
+ "@effect-app/core": "0.170.0",
22
+ "effect-app": "0.203.0",
23
+ "@effect-app/infra-adapters": "0.155.0",
24
+ "@effect-app/schema": "0.221.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/cli": "^7.24.1",
28
- "@sentry/node": "^7.109.0",
28
+ "@sentry/node": "^7.110.1",
29
29
  "@types/express": "^4.17.21",
30
30
  "@types/node": "~20.12.7",
31
31
  "@types/proper-lockfile": "^4.1.4",
@@ -38,13 +38,13 @@
38
38
  "redis": "^3.1.2",
39
39
  "ts-node": "^10.9.2",
40
40
  "typescript": "^5.4.5",
41
- "vitest": "^1.4.0"
41
+ "vitest": "^1.5.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "express": "^4.19.2",
45
- "@effect/platform": "^0.48.27",
46
- "@effect/schema": "^0.64.20",
47
- "effect": "^2.4.18"
45
+ "@effect/platform": "^0.48.28",
46
+ "@effect/schema": "^0.65.0",
47
+ "effect": "^2.4.19"
48
48
  },
49
49
  "typesVersions": {
50
50
  "*": {
@@ -1,5 +1,6 @@
1
- import { ExtendedTaggedClass, literal, NonEmptyString255, struct } from "@effect-app/schema"
2
- import { S } from "effect-app"
1
+ import { ExtendedTaggedClass, NonEmptyString255 } from "@effect-app/schema"
2
+ import * as S from "@effect/schema/Schema"
3
+ import { S as S2 } from "effect-app"
3
4
  import { RequestId, UserProfileId } from "effect-app/ids"
4
5
 
5
6
  export class RequestContextParent extends ExtendedTaggedClass<
@@ -8,9 +9,9 @@ export class RequestContextParent extends ExtendedTaggedClass<
8
9
  >()("RequestContext", {
9
10
  id: RequestId,
10
11
  name: NonEmptyString255,
11
- userProfile: S.optional(struct({ sub: UserProfileId })),
12
- locale: literal("en", "de"),
13
- createdAt: S.Date.withDefault
12
+ userProfile: S.optional(S.Struct({ sub: UserProfileId })),
13
+ locale: S.Literal("en", "de"),
14
+ createdAt: S2.Date.withDefault
14
15
  }) {}
15
16
 
16
17
  /**
@@ -1,14 +1,14 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
 
3
3
  /* eslint-disable @typescript-eslint/ban-types */
4
- import * as S from "effect-app/schema"
5
-
6
4
  import type { EnforceNonEmptyRecord } from "@effect-app/core/utils"
7
5
  import { ValidationError } from "@effect-app/infra/errors"
6
+ import type { Struct } from "@effect/schema/Schema"
7
+ import * as S from "@effect/schema/Schema"
8
8
  import type { Context } from "effect-app"
9
9
  import { Cause, Effect, Exit, Option } from "effect-app"
10
10
  import type { HttpRouter, HttpServerError } from "effect-app/http"
11
- import type { REST, Struct } from "effect-app/schema"
11
+ import type { REST } from "effect-app/schema"
12
12
  import type { Simplify } from "effect/Types"
13
13
 
14
14
  export type RouteMatch<
@@ -8,12 +8,13 @@ import { reportError } from "@effect-app/infra/errorReporter"
8
8
  import type { ValidationError } from "@effect-app/infra/errors"
9
9
  import type { RequestContextContainer } from "@effect-app/infra/services/RequestContextContainer"
10
10
  import type { ContextMapContainer } from "@effect-app/infra/services/Store/ContextMapContainer"
11
+ import type { Struct } from "@effect/schema/Schema"
11
12
  import type { Layer } from "effect-app"
12
13
  import { Console, Effect, FiberRef, Option, S } from "effect-app"
13
14
  import type { HttpServerError } from "effect-app/http"
14
15
  import { HttpBody, HttpRouter, HttpServerRequest, HttpServerResponse } from "effect-app/http"
15
16
  import { NonEmptyString255 } from "effect-app/schema"
16
- import type { REST, Struct } from "effect-app/schema"
17
+ import type { REST } from "effect-app/schema"
17
18
  import { updateRequestContext } from "../setupRequest.js"
18
19
  import { makeRequestParsers, parseRequestParams } from "./base.js"
19
20
  import type { RequestHandler, RequestHandlerBase } from "./base.js"
@@ -129,11 +130,11 @@ export function makeRequestHandler<
129
130
  > {
130
131
  const { Request, Response, h: handle } = handler
131
132
 
132
- const response: REST.ReqRes<any, any, any> = Response ? Response : S.void
133
- const resp = response as typeof response & { fields?: S.Struct.Fields }
133
+ const response: REST.ReqRes<any, any, any> = Response ? Response : S.Void
134
+ const resp = response as typeof response & { fields?: Struct.Fields }
134
135
  // TODO: consider if the alternative of using the struct schema is perhaps just better.
135
136
  const encoder = "fields" in resp && resp.fields
136
- ? S.encode(handler.rt === "raw" ? S.encodedSchema(S.struct(resp.fields)) : S.struct(resp.fields))
137
+ ? S.encode(handler.rt === "raw" ? S.encodedSchema(S.Struct(resp.fields)) : S.Struct(resp.fields))
137
138
  // ? (i: any) => {
138
139
  // if (i instanceof (response as any)) return S.encodeSync(response)(i)
139
140
  // else return S.encodeSync(response)(new (response as any)(i))
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/ban-types */
3
3
  import type { ValidationError } from "@effect-app/infra/errors"
4
- import type { Struct } from "effect-app/schema"
5
4
  import { type RouteDescriptorAny } from "./schema/routing.js"
6
5
  import type {} from "effect-app/utils"
6
+ import type { Struct } from "@effect/schema/Schema"
7
7
  import type { Layer, Ref, Scope } from "effect-app"
8
8
  import { Context, Effect } from "effect-app"
9
9
  import { HttpRouter } from "effect-app/http"
@@ -10,8 +10,8 @@ export const parseJwt = <R, I, A>(
10
10
  ): S.Schema<A, string, R> =>
11
11
  S
12
12
  .transformToOrFail(
13
- S.string,
14
- S.unknown,
13
+ S.String,
14
+ S.Unknown,
15
15
  (s, __, ast) =>
16
16
  S.ParseResult.try({
17
17
  try: () => jwtDecode(s, options),
@@ -1,6 +1,6 @@
1
1
  import { MemQueue } from "@effect-app/infra-adapters/memQueue"
2
2
  import { RequestContext } from "@effect-app/infra/RequestContext"
3
- import { NonEmptyString255, struct } from "@effect-app/schema"
3
+ import { NonEmptyString255 } from "@effect-app/schema"
4
4
  import { Tracer } from "effect"
5
5
  import { Effect, Fiber, flow, Option, S } from "effect-app"
6
6
  import { RequestId } from "effect-app/ids"
@@ -30,8 +30,8 @@ export function makeMemQueue<
30
30
  const qDrain = yield* $(mem.getOrCreateQueue(queueDrainName))
31
31
  const rcc = yield* $(RequestContextContainer)
32
32
 
33
- const wireSchema = struct({ body: schema, meta: QueueMeta })
34
- const drainW = struct({ body: drainSchema, meta: QueueMeta })
33
+ const wireSchema = S.Struct({ body: schema, meta: QueueMeta })
34
+ const drainW = S.Struct({ body: drainSchema, meta: QueueMeta })
35
35
  const parseDrain = flow(S.decodeUnknown(drainW), Effect.orDie)
36
36
 
37
37
  return {
@@ -12,7 +12,7 @@ import { Tracer } from "effect"
12
12
  import { Effect, flow, Layer, Option, S } from "effect-app"
13
13
  import { RequestId } from "effect-app/ids"
14
14
  import type { StringId } from "effect-app/schema"
15
- import { NonEmptyString255, struct } from "effect-app/schema"
15
+ import { NonEmptyString255 } from "effect-app/schema"
16
16
  import { pretty } from "effect-app/utils"
17
17
  import { setupRequestContext } from "../../api/setupRequest.js"
18
18
  import { RequestContextContainer } from "../RequestContextContainer.js"
@@ -33,11 +33,11 @@ export function makeServiceBusQueue<
33
33
  schema: S.Schema<Evt, EvtE>,
34
34
  drainSchema: S.Schema<DrainEvt, DrainEvtE>
35
35
  ) {
36
- const wireSchema = struct({
36
+ const wireSchema = S.Struct({
37
37
  body: schema,
38
38
  meta: QueueMeta
39
39
  })
40
- const drainW = struct({ body: drainSchema, meta: QueueMeta })
40
+ const drainW = S.Struct({ body: drainSchema, meta: QueueMeta })
41
41
  const parseDrain = flow(S.decodeUnknown(drainW), Effect.orDie)
42
42
 
43
43
  return Effect.gen(function*($) {
@@ -1,4 +1,3 @@
1
- import { struct } from "@effect-app/schema"
2
1
  import { S } from "effect-app"
3
2
  import type { Effect, NonEmptyReadonlyArray, Scope } from "effect-app"
4
3
  import { RequestContext } from "../../RequestContext.js"
@@ -21,11 +20,11 @@ export interface QueueBase<Evt, DrainEvt> {
21
20
  export interface QueueMakerOps {}
22
21
  export const QueueMaker: QueueMakerOps = {}
23
22
 
24
- export const QueueMeta = struct({
23
+ export const QueueMeta = S.Struct({
25
24
  requestContext: RequestContext,
26
- span: S.optional(struct({
27
- spanId: S.string,
28
- traceId: S.string,
29
- sampled: S.boolean
25
+ span: S.optional(S.Struct({
26
+ spanId: S.String,
27
+ traceId: S.String,
28
+ sampled: S.Boolean
30
29
  }))
31
30
  })
@@ -374,10 +374,10 @@ export function makeRepo<
374
374
  return Effect
375
375
  .gen(function*($) {
376
376
  const rctx = yield* $(Effect.context<R>())
377
- const encodeMany = flow(S.encode(S.array(schema)), Effect.provide(rctx), Effect.withSpan("encodeMany"))
377
+ const encodeMany = flow(S.encode(S.Array(schema)), Effect.provide(rctx), Effect.withSpan("encodeMany"))
378
378
  const decode = flow(S.decode(schema), Effect.provide(rctx))
379
379
  const decodeMany = flow(
380
- S.decode(S.array(schema)),
380
+ S.decode(S.Array(schema)),
381
381
  Effect.provide(rctx),
382
382
  Effect.withSpan("decodeMany")
383
383
  )
@@ -406,11 +406,11 @@ export function makeRepo<
406
406
  .pipe(Effect.map((_) => _ as T[]))
407
407
 
408
408
  const fieldsSchema = schema as unknown as { fields: any }
409
- const i = ("fields" in fieldsSchema ? S.struct(fieldsSchema["fields"]) as unknown as typeof schema : schema)
409
+ const i = ("fields" in fieldsSchema ? S.Struct(fieldsSchema["fields"]) as unknown as typeof schema : schema)
410
410
  .pipe((_) =>
411
411
  _.ast._tag === "Union"
412
412
  // we need to get the TypeLiteral, incase of class it's behind a transform...
413
- ? S.union(..._.ast.types.map((_) =>
413
+ ? S.Union(..._.ast.types.map((_) =>
414
414
  (S.make(_._tag === "Transformation" ? _.from : _) as unknown as Schema<T, Encoded>)
415
415
  .pipe(S.pick("id"))
416
416
  ))
@@ -524,7 +524,7 @@ export function makeRepo<
524
524
  Effect
525
525
  .flatMap(cms, (cm) =>
526
526
  S
527
- .decode(S.array(schema))(
527
+ .decode(S.Array(schema))(
528
528
  items.map((_) => mapReverse(_, cm.set))
529
529
  )
530
530
  .pipe(Effect.orDie, Effect.withSpan("parseMany2")))
@@ -548,13 +548,13 @@ export function makeRepo<
548
548
  const eff = a.mode === "project"
549
549
  ? filter(a)
550
550
  // TODO: mapFrom but need to support per field and dependencies
551
- .pipe(Effect.andThen(flow(S.decode(S.array(a.schema ?? schema)), Effect.provide(rctx))))
551
+ .pipe(Effect.andThen(flow(S.decode(S.Array(a.schema ?? schema)), Effect.provide(rctx))))
552
552
  : a.mode === "collect"
553
553
  ? filter(a)
554
554
  // TODO: mapFrom but need to support per field and dependencies
555
555
  .pipe(
556
556
  Effect.flatMap(flow(
557
- S.decode(S.array(a.schema)),
557
+ S.decode(S.Array(a.schema)),
558
558
  Effect.map(ReadonlyArray.getSomes),
559
559
  Effect.provide(rctx)
560
560
  ))
@@ -606,8 +606,8 @@ export function makeRepo<
606
606
  */
607
607
  mapped: <A, R>(schema: S.Schema<A, any, R>) => {
608
608
  const dec = S.decode(schema)
609
- const encMany = S.encode(S.array(schema))
610
- const decMany = S.decode(S.array(schema))
609
+ const encMany = S.encode(S.Array(schema))
610
+ const decMany = S.decode(S.Array(schema))
611
611
  return {
612
612
  all: allE.pipe(
613
613
  Effect.flatMap(decMany),
@@ -219,7 +219,7 @@ export const count: <
219
219
  >(
220
220
  current: Query<TFieldValues> | QueryWhere<TFieldValues> | QueryEnd<TFieldValues, "many">
221
221
  ) => QueryProjection<TFieldValues, NonNegativeInt, never, "count"> = (current) =>
222
- // new Project({ current: current as any, /* TODO: why */ schema: S.struct({ id: S.unknown }) })
222
+ // new Project({ current: current as any, /* TODO: why */ schema: S.Struct({ id: S.unknown }) })
223
223
  new Count({ current })
224
224
 
225
225
  /*
@@ -102,7 +102,7 @@ const interpret = <TFieldValues extends FieldValues, A = TFieldValues, R = never
102
102
  count: ({ current }) => {
103
103
  upd(interpret(current))
104
104
  data.ttype = "count"
105
- data.schema = S.struct({ id: S.string }) as any
105
+ data.schema = S.Struct({ id: S.String }) as any
106
106
  },
107
107
  order: ({ current, direction, field }) => {
108
108
  upd(interpret(current))
@@ -137,7 +137,7 @@ export const toFilter = <
137
137
  let select: (keyof TFieldValues)[] = []
138
138
  if (schema) {
139
139
  let t = schema.ast
140
- if (S.AST.isTransform(t)) {
140
+ if (S.AST.isTransformation(t)) {
141
141
  t = t.from
142
142
  }
143
143
  if (S.AST.isTypeLiteral(t)) {
@@ -37,7 +37,7 @@ export class SerializedDBRecord extends S.Class<SerializedDBRecord>()({
37
37
  // unknown -> string -> SDB?
38
38
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
39
  export function makeSerialisedDBRecord(s: S.Schema<any>) {
40
- return S.struct({
40
+ return S.Struct({
41
41
  version: S.number,
42
42
  timestamp: S.Date,
43
43
  data: s
package/src/test.arbs.ts CHANGED
@@ -21,7 +21,7 @@ export function generate<T>(arb: fc.Arbitrary<T>) {
21
21
  /**
22
22
  * @tsplus getter effect/schema/Arbitrary generate
23
23
  */
24
- export function generateFromArbitrary<T>(arb: A.Arbitrary<T>) {
24
+ export function generateFromArbitrary<T>(arb: A.LazyArbitrary<T>) {
25
25
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
26
26
  return generate(arb(fc as any))
27
27
  }
@@ -6,9 +6,9 @@ import { RepositoryDefaultImpl } from "../src/services/RepositoryBase.js"
6
6
  import { ContextMapContainer } from "../src/services/Store/ContextMapContainer.js"
7
7
  import { memFilter, MemoryStoreLive } from "../src/services/Store/Memory.js"
8
8
 
9
- const str = S.struct({ _tag: S.literal("string"), value: S.string })
10
- const num = S.struct({ _tag: S.literal("number"), value: S.number })
11
- const someUnion = S.union(str, num)
9
+ const str = S.Struct({ _tag: S.Literal("string"), value: S.String })
10
+ const num = S.Struct({ _tag: S.Literal("number"), value: S.Number })
11
+ const someUnion = S.Union(str, num)
12
12
 
13
13
  export class Something extends S.Class<Something>()({
14
14
  id: S.StringId.withDefault,
@@ -34,8 +34,8 @@ const q = make<Something.Encoded>()
34
34
  page({ take: 10 }),
35
35
  project(
36
36
  S.transformToOrFail(
37
- S.struct({ id: S.StringId, displayName: S.string }), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
38
- S.struct(Struct.pick(Something.fields, "id", "displayName")),
37
+ S.Struct({ id: S.StringId, displayName: S.String }), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
38
+ S.Struct(Struct.pick(Something.fields, "id", "displayName")),
39
39
  (_) => Effect.andThen(SomeService, _)
40
40
  )
41
41
  )
@@ -116,8 +116,8 @@ it("works with repo", () =>
116
116
  page({ take: 10 }),
117
117
  project(
118
118
  S.transformToOrFail(
119
- S.struct({ displayName: S.string }), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
120
- S.struct(Struct.pick(Something.fields, "displayName")),
119
+ S.Struct({ displayName: S.String }), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
120
+ S.Struct(Struct.pick(Something.fields, "displayName")),
121
121
  (_) => Effect.andThen(SomeService, _)
122
122
  )
123
123
  )
@@ -142,8 +142,8 @@ it("collect", () =>
142
142
  project(
143
143
  S.transformTo(
144
144
  // TODO: sample case with narrowing down a union?
145
- S.encodedSchema(S.struct(Struct.pick(Something.fields, "displayName", "n"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
146
- S.typeSchema(S.option(S.string)),
145
+ S.encodedSchema(S.Struct(Struct.pick(Something.fields, "displayName", "n"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
146
+ S.typeSchema(S.Option(S.String)),
147
147
  (_) =>
148
148
  _.displayName === "Riley" && _.n === "2020-01-01T00:00:00.000Z"
149
149
  ? Option.some(`${_.displayName}-${_.n}`)
@@ -165,8 +165,8 @@ it("collect", () =>
165
165
  project(
166
166
  S.transformTo(
167
167
  // TODO: sample case with narrowing down a union?
168
- S.encodedSchema(S.struct(Struct.pick(Something.fields, "union"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
169
- S.typeSchema(S.option(S.string)),
168
+ S.encodedSchema(S.Struct(Struct.pick(Something.fields, "union"))), // for projection performance benefit, this should be limited to the fields interested, and leads to SELECT fields
169
+ S.typeSchema(S.Option(S.String)),
170
170
  (_) =>
171
171
  _.union._tag === "string"
172
172
  ? Option.some(_.union.value)
@@ -1,37 +0,0 @@
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=