@effect-app/vue 4.0.0-beta.181 → 4.0.0-beta.183

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/dist/commander.js CHANGED
@@ -1,14 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { asResult, deepToRaw, reportRuntimeError } from "@effect-app/vue";
2
+ import { asResult, asStreamResult, deepToRaw, reportRuntimeError } from "@effect-app/vue";
3
3
  import { reportMessage } from "@effect-app/vue/errorReporter";
4
4
  import { Cause, Context, Effect, flow, Layer, Match, MutableHashMap, Option, Predicate, S } from "effect-app";
5
5
  import { SupportedErrors } from "effect-app/client";
6
6
  import { OperationFailure, OperationSuccess } from "effect-app/Operations";
7
7
  import { isGeneratorFunction, wrapEffect } from "effect-app/utils";
8
+ import * as Stream from "effect/Stream";
9
+ import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
8
10
  import { computed, reactive, ref, toRaw } from "vue";
9
11
  import { Confirm } from "./confirm.js";
10
12
  import { I18n } from "./intl.js";
11
13
  import { WithToast } from "./withToast.js";
14
+ const isStreamFactory = (x) => typeof x === "function" && x._streamFactory === true;
15
+ const isStreamCallable = (x) => x !== null && x !== undefined && x._streamCallable === true;
12
16
  export const DefaultIntl = {
13
17
  de: {
14
18
  "handle.confirmation": "{action} bestätigen?",
@@ -39,6 +43,33 @@ export const DefaultIntl = {
39
43
  };
40
44
  export class CommandContext extends Context.Service()("CommandContext") {
41
45
  }
46
+ /**
47
+ * Service available inside `streamFn` stream handlers that lets you imperatively push
48
+ * progress updates to the command's reactive `progress` ref.
49
+ *
50
+ * Use `Command.mapProgress(fn)` or `Command.updateProgress(progress)` to interact with this service.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * // Using mapProgress (recommended) — applied as a stream pipe operator:
55
+ * const exportCmd = Command.streamFn("exportData")(
56
+ * function*(arg, ctx) {
57
+ * return makeExportStream(arg.id).pipe(
58
+ * Command.mapProgress((r) =>
59
+ * AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
60
+ * ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
61
+ * : undefined
62
+ * )
63
+ * )
64
+ * }
65
+ * )
66
+ * // exportCmd.progress is updated for every OperationProgress event
67
+ * ```
68
+ */
69
+ export class CommandProgress extends Context.Reference("Commander.CommandProgress", {
70
+ defaultValue: () => ({ update: (_progress) => Effect.void })
71
+ }) {
72
+ }
42
73
  /**
43
74
  * Use to wrap emit calls with a callback to signal completion.
44
75
  * Useful when the publisher wants to wait for the subscriber to finish processing.
@@ -119,6 +150,58 @@ const defaultFailureMessageHandler = (actionMaker, errorRenderer) => Effect.fnUn
119
150
  });
120
151
  export const CommanderStatic = {
121
152
  accessArgs: (cb) => (self, arg, arg2) => cb(arg, arg2)(self),
153
+ /**
154
+ * Stream pipe operator that maps each emitted value to a `Progress` entry and updates the
155
+ * command's reactive `progress` ref via the `CommandProgress` service.
156
+ *
157
+ * The mapper receives an `AsyncResult<A, E>` (each emitted value wrapped as
158
+ * `AsyncResult.success(value, { waiting: true })`), matching the same shape used by
159
+ * `CommandButton`'s `:progress-map` prop.
160
+ *
161
+ * Designed to be used inside a `streamFn` handler (either directly with `.pipe()`, or as
162
+ * a combinator argument):
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * // Inside the handler body:
167
+ * Command.streamFn("exportData")(function*(arg, ctx) {
168
+ * return makeExportStream(arg.id).pipe(
169
+ * Command.mapProgress((r) =>
170
+ * AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress"
171
+ * ? { text: `${r.value.completed}/${r.value.total}`, percentage: r.value.completed / r.value.total * 100 }
172
+ * : undefined
173
+ * )
174
+ * )
175
+ * })
176
+ *
177
+ * // Or as a stream combinator argument:
178
+ * Command.streamFn("exportData")(
179
+ * function*(arg, ctx) { return makeExportStream(arg.id) },
180
+ * (s) => s.pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress" ? { text: `${r.value.completed}/${r.value.total}` } : undefined))
181
+ * )
182
+ * ```
183
+ */
184
+ mapProgress: (fn) => (stream) => stream.pipe(Stream.tap((v) => {
185
+ const p = fn(AsyncResult.success(v, { waiting: true }));
186
+ return p !== undefined ? CommandProgress.use((s) => s.update(p)) : Effect.void;
187
+ })),
188
+ /**
189
+ * Imperatively push a progress update from inside a `streamFn` handler.
190
+ * Requires `CommandProgress` to be in context — provided automatically for all `streamFn` streams.
191
+ *
192
+ * @example
193
+ * ```ts
194
+ * // In a streamFn handler:
195
+ * stream.pipe(
196
+ * Stream.tap((event) =>
197
+ * event._tag === "OperationProgress"
198
+ * ? Command.updateProgress({ text: `${event.completed}/${event.total}`, percentage: event.completed / event.total * 100 })
199
+ * : Effect.void
200
+ * )
201
+ * )
202
+ * ```
203
+ */
204
+ updateProgress: (progress) => CommandProgress.use((s) => s.update(progress)),
122
205
  /** Version of @see confirmOrInterrupt that automatically includes the action name in the default messages */
123
206
  confirmOrInterrupt: Effect.fnUntraced(function* (message = undefined) {
124
207
  const context = yield* CommandContext;
@@ -514,16 +597,16 @@ export class CommanderImpl {
514
597
  fn = (id, options) => {
515
598
  // Resolve id and (optionally) per-build stream metadata.
516
599
  const resolvedId = typeof id === "string" ? id : id.id;
517
- const isStreamFactory = typeof id === "function" && "id" in id && id.length <= 1;
518
- const isStreamTuple = Array.isArray(id) && "id" in id;
600
+ const factory = isStreamFactory(id);
601
+ const callable = !factory && isStreamCallable(id);
519
602
  const resolveStreamMeta = () => {
520
- if (isStreamTuple) {
521
- const t = id;
522
- return { running: t.running, progress: t.progress };
603
+ if (factory) {
604
+ const c = id();
605
+ return { running: c.running, progress: c.progress };
523
606
  }
524
- if (isStreamFactory) {
525
- const t = id();
526
- return { running: t.running, progress: t.progress };
607
+ if (callable) {
608
+ const c = id;
609
+ return { running: c.running, progress: c.progress };
527
610
  }
528
611
  return undefined;
529
612
  };
@@ -543,6 +626,237 @@ export class CommanderImpl {
543
626
  state: Context.Service(`Commander.Command.${resolvedId}.state`)
544
627
  });
545
628
  };
629
+ /**
630
+ * Internal factory for stream-backed commands. Accepts a handler that returns a `Stream` directly.
631
+ * Services (`CommandContext`, `stateTag`) are provided to the stream via `Stream.provideServiceEffect`.
632
+ */
633
+ makeStreamCommand = (id_, options, errorDef) => {
634
+ const id = typeof id_ === "string" ? id_ : id_.id;
635
+ const state = getStateValues(options);
636
+ return Object.assign((handler) => {
637
+ const limit = Error.stackTraceLimit;
638
+ Error.stackTraceLimit = 2;
639
+ const localErrorDef = new Error();
640
+ Error.stackTraceLimit = limit;
641
+ if (!errorDef) {
642
+ errorDef = localErrorDef;
643
+ }
644
+ const key = `Commander.Command.${id}.state`;
645
+ const stateTag = Context.Service(key);
646
+ const makeContext_ = () => this.makeContext(id, { ...options, state: state?.value });
647
+ const initialContext = makeContext_();
648
+ const context = computed(() => makeContext_());
649
+ const action = computed(() => context.value.action);
650
+ const label = computed(() => context.value.label);
651
+ const currentState = Effect.sync(() => state.value);
652
+ // Reactive ref driven by the CommandProgress service — updated imperatively
653
+ // from inside the stream via `Command.mapProgress(fn)` or `Command.updateProgress(p)`.
654
+ const progressRef = ref(undefined);
655
+ const commandProgressService = {
656
+ update: (p) => Effect.sync(() => {
657
+ progressRef.value = p;
658
+ })
659
+ };
660
+ const streamErrorReporter = (self) => self.pipe(Stream.tapCause(Effect.fnUntraced(function* (cause) {
661
+ if (Cause.hasInterruptsOnly(cause)) {
662
+ console.info(`Interrupted while trying to ${id}`);
663
+ return;
664
+ }
665
+ const fail = Cause.findErrorOption(cause);
666
+ if (Option.isSome(fail)) {
667
+ const message = `Failure trying to ${id}`;
668
+ yield* reportMessage(message, {
669
+ action: id,
670
+ error: fail.value
671
+ });
672
+ return;
673
+ }
674
+ const ctx = yield* CommandContext;
675
+ const extra = {
676
+ action: ctx.action,
677
+ message: `Unexpected Error trying to ${id}`
678
+ };
679
+ yield* reportRuntimeError(cause, extra);
680
+ }, Effect.uninterruptible)));
681
+ const theStreamHandler = (arg, ctx) => handler(arg, ctx).pipe(streamErrorReporter, Stream.provideService(CommandProgress, commandProgressService), Stream.provideServiceEffect(stateTag, currentState), Stream.provideServiceEffect(CommandContext, Effect.sync(() => makeContext_())));
682
+ const waitId = options?.waitKey ? options.waitKey(id) : undefined;
683
+ const blockId = options?.blockKey ? options.blockKey(id) : undefined;
684
+ const [result, exec_] = asStreamResult(theStreamHandler);
685
+ const exec = Effect
686
+ .fnUntraced(function* (...args) {
687
+ if (waitId !== undefined)
688
+ registerWait(waitId);
689
+ if (blockId !== undefined && blockId !== waitId) {
690
+ registerWait(blockId);
691
+ }
692
+ return yield* exec_(...args);
693
+ }, Effect.onExit(() => Effect.sync(() => {
694
+ if (waitId !== undefined)
695
+ unregisterWait(waitId);
696
+ if (blockId !== undefined && blockId !== waitId) {
697
+ unregisterWait(blockId);
698
+ }
699
+ })));
700
+ const waiting = waitId !== undefined
701
+ ? computed(() => result.value.waiting || (waitState.value[waitId] ?? 0) > 0)
702
+ : computed(() => result.value.waiting);
703
+ const blocked = blockId !== undefined
704
+ ? computed(() => waiting.value || (waitState.value[blockId] ?? 0) > 0)
705
+ : computed(() => waiting.value);
706
+ const computeAllowed = options?.allowed;
707
+ const allowed = computeAllowed ? computed(() => computeAllowed(id, state)) : true;
708
+ const rt = Effect.context().pipe(Effect.provide(this.hooks)).pipe(Effect.runSyncWith(this.rt));
709
+ const runFork = Effect.runForkWith(rt);
710
+ const progress = progressRef;
711
+ const handle = Object.assign((arg) => {
712
+ arg = toRaw(arg);
713
+ progressRef.value = undefined; // reset progress on new invocation
714
+ const limit = Error.stackTraceLimit;
715
+ Error.stackTraceLimit = 2;
716
+ const errorCall = new Error();
717
+ Error.stackTraceLimit = limit;
718
+ let cache = false;
719
+ const captureStackTrace = () => {
720
+ if (cache !== false) {
721
+ return cache;
722
+ }
723
+ if (errorCall.stack) {
724
+ const stackDef = errorDef.stack.trim().split("\n");
725
+ const stackCall = errorCall.stack.trim().split("\n");
726
+ let endStackDef = stackDef.slice(2).join("\n").trim();
727
+ if (!endStackDef.includes(`(`)) {
728
+ endStackDef = endStackDef.replace(/at (.*)/, "at ($1)");
729
+ }
730
+ let endStackCall = stackCall.slice(2).join("\n").trim();
731
+ if (!endStackCall.includes(`(`)) {
732
+ endStackCall = endStackCall.replace(/at (.*)/, "at ($1)");
733
+ }
734
+ cache = `${endStackDef}\n${endStackCall}`;
735
+ return cache;
736
+ }
737
+ };
738
+ const command = currentState.pipe(Effect.flatMap((state) => {
739
+ const rawArg = deepToRaw(arg);
740
+ const rawState = deepToRaw(state);
741
+ return Effect.withSpan(exec(arg, { ...context.value, state }), id, {
742
+ captureStackTrace,
743
+ attributes: {
744
+ input: rawArg,
745
+ state: rawState,
746
+ action: initialContext.action,
747
+ label: initialContext.label,
748
+ id: initialContext.id,
749
+ i18nKey: initialContext.i18nKey
750
+ }
751
+ });
752
+ }));
753
+ return runFork(command);
754
+ }, { action, label });
755
+ return reactive({
756
+ id,
757
+ i18nKey: initialContext.i18nKey,
758
+ namespace: initialContext.namespace,
759
+ namespaced: initialContext.namespaced,
760
+ result,
761
+ /** always undefined for streamFn commands — `result` already exposes the live stream state */
762
+ running: undefined,
763
+ /** reactive – progress driven by `Command.mapProgress` or `Command.updateProgress` inside the stream */
764
+ progress,
765
+ waiting,
766
+ blocked,
767
+ allowed,
768
+ action,
769
+ label,
770
+ state,
771
+ handle
772
+ });
773
+ }, { id });
774
+ };
775
+ /**
776
+ * Define a stream-backed Command for handling user actions.
777
+ *
778
+ * Like `fn`, but the body generator (or function) must **return** a `Stream` rather than
779
+ * an `Effect`. The command's `waiting` state stays `true` while the stream is running and
780
+ * is set to `false` once it terminates. The reactive `result` ref is updated for every
781
+ * value emitted by the stream.
782
+ *
783
+ * Three handler shapes are accepted:
784
+ * 1. **Generator returning a Stream** (primary) — may yield Effects freely before returning the stream:
785
+ * ```ts
786
+ * Command.streamFn("exportData")(
787
+ * function*(arg, ctx) {
788
+ * const token = yield* getAuthToken
789
+ * return Stream.fromEffect(startExport(token, arg.id)).pipe(
790
+ * Stream.flatMap((job) => pollProgress(job.id))
791
+ * )
792
+ * }
793
+ * )
794
+ * ```
795
+ * 2. **Function returning a Stream directly**: `(arg, ctx) => Stream.make(1, 2, 3)`
796
+ * 3. **Function returning `Effect<Stream>`**: `(arg, ctx) => Effect.map(setup, (s) => s.stream)`
797
+ *
798
+ * @param id The internal identifier for the action (used for tracing and i18n lookup).
799
+ * @param options Same options as `fn` (`state`, `blockKey`, `waitKey`, `allowed`, `i18nCustomKey`).
800
+ *
801
+ * **Progress** — use `Command.mapProgress(fn)` as a stream pipe operator; the mapper receives
802
+ * `AsyncResult<A, E>` (each value wrapped as `AsyncResult.success(v, { waiting: true })`),
803
+ * matching the same shape as CommandButton’s `:progress-map` prop. Or call
804
+ * `Command.updateProgress(p)` for imperative control:
805
+ *
806
+ * ```ts
807
+ * // mapProgress as a combinator arg (outside the handler):
808
+ * Command.streamFn("exportData")(
809
+ * function*(arg, ctx) { return makeExportStream(arg.id) },
810
+ * (s) => s.pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) && r.value._tag === "OperationProgress" ? { text: `${r.value.completed}/${r.value.total}` } : undefined))
811
+ * )
812
+ *
813
+ * // Or inline inside the handler body:
814
+ * Command.streamFn("exportData")(function*(arg, ctx) {
815
+ * return makeExportStream(arg.id).pipe(Command.mapProgress((r) => AsyncResult.isSuccess(r) ? ... : undefined))
816
+ * })
817
+ * ```
818
+ *
819
+ * **Pipeable combinators** — the 2nd–Nth args follow the same pattern as `fn`: each combinator
820
+ * receives `(stream, arg, ctx)` and returns a transformed stream:
821
+ * ```ts
822
+ * Command.streamFn("exportData")(
823
+ * handler,
824
+ * (s, arg, ctx) => s.pipe(Command.mapProgress(fn), Stream.take(100))
825
+ * )
826
+ * ```
827
+ *
828
+ * **Returned Properties**: `action`, `label`, `result`, `progress`, `waiting`, `blocked`,
829
+ * `allowed`, `handle`, `i18nKey`, `namespace`, `namespaced`.
830
+ */
831
+ streamFn = (id, options) => {
832
+ const resolvedId = typeof id === "string" ? id : id.id;
833
+ const toRawHandler = (fn) => {
834
+ if (isGeneratorFunction(fn)) {
835
+ return Effect.fnUntraced(function* (arg, ctx) {
836
+ return yield* fn(arg, ctx);
837
+ });
838
+ }
839
+ return fn;
840
+ };
841
+ const toFinalStream = (value) => Stream.isStream(value) ? value : Stream.unwrap(value);
842
+ return Object.assign((fn, ...combinators) => {
843
+ const limit = Error.stackTraceLimit;
844
+ Error.stackTraceLimit = 2;
845
+ const errorDef = new Error();
846
+ Error.stackTraceLimit = limit;
847
+ const rawHandler = toRawHandler(fn);
848
+ const handler = (arg, ctx) => {
849
+ let current = rawHandler(arg, ctx);
850
+ for (const combinator of combinators) {
851
+ current = combinator(current, arg, ctx);
852
+ }
853
+ return toFinalStream(current);
854
+ };
855
+ return this.makeStreamCommand(id, options, errorDef)(handler);
856
+ }, makeBaseInfo(resolvedId, options), {
857
+ state: Context.Service(`Commander.Command.${resolvedId}.state`)
858
+ });
859
+ };
546
860
  /** @deprecated */
547
861
  alt2 = (_id, options) => {
548
862
  const isObject = Predicate.isObjectKeyword(_id);
@@ -590,10 +904,7 @@ export class CommanderImpl {
590
904
  if (mutation !== null && typeof mutation === "object" && "mutateStream" in mutation) {
591
905
  return this.wrapStream(mutation, options);
592
906
  }
593
- if (Array.isArray(mutation) && "id" in mutation) {
594
- return this.wrapStream(mutation, options);
595
- }
596
- if (typeof mutation === "function" && "id" in mutation && mutation.length <= 1) {
907
+ if (isStreamCallable(mutation) || isStreamFactory(mutation)) {
597
908
  return this.wrapStream(mutation, options);
598
909
  }
599
910
  // At this point mutation is either { mutate, id } or (fn & { id })
@@ -646,26 +957,27 @@ export class CommanderImpl {
646
957
  */
647
958
  wrapStream = (mutation, options) => {
648
959
  const id = mutation.id;
649
- // Resolve `source` to the factory or already-called tuple.
960
+ // Resolve `source` to the factory or already-invoked callable.
650
961
  const source = mutation !== null && typeof mutation === "object" && "mutateStream" in mutation
651
962
  ? mutation.mutateStream
652
963
  : mutation;
653
- const resolveTuple = () => (typeof source === "function" ? source() : source);
964
+ const resolveCallable = () => (isStreamFactory(source)
965
+ ? source()
966
+ : source);
654
967
  return Object.assign((...combinators) => {
655
968
  // we capture the definition stack here, so we can append it to later stack traces
656
969
  const limit = Error.stackTraceLimit;
657
970
  Error.stackTraceLimit = 2;
658
971
  const errorDef = new Error();
659
972
  Error.stackTraceLimit = limit;
660
- // Fresh per build: call the factory once per command instance so each
661
- // wrap call gets its own ComputedRef + execute pair. `running`/`progress`
973
+ // Fresh per build: invoke the factory once per command instance so each
974
+ // wrap call gets its own state + execute pair. `running`/`progress`
662
975
  // are only surfaced when the factory was called with a `progress` formatter.
663
- const tuple = resolveTuple();
664
- const [, executeRaw] = tuple;
665
- const mutate = Effect.isEffect(executeRaw)
666
- ? (_arg) => executeRaw
667
- : executeRaw;
668
- const streamMeta = { running: tuple.running, progress: tuple.progress };
976
+ const callable = resolveCallable();
977
+ const mutate = Effect.isEffect(callable)
978
+ ? (_arg) => callable
979
+ : callable;
980
+ const streamMeta = { running: callable.running, progress: callable.progress };
669
981
  return this.makeCommand(id, options, errorDef, streamMeta)(Effect.fnUntraced(isGeneratorFunction(mutate) ? mutate : function* (arg) {
670
982
  return yield* mutate(arg);
671
983
  }, ...combinators));
@@ -684,4 +996,4 @@ export class Commander extends Context.Service()("Commander", {
684
996
  static DefaultWithoutDependencies = Layer.effect(this, this.make);
685
997
  static Default = this.DefaultWithoutDependencies;
686
998
  }
687
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQTRCLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3BJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFJbEUsT0FBTyxFQUFFLFFBQVEsRUFBb0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQTBEMUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLEVBQUUsRUFBRTtRQUNGLHFCQUFxQixFQUFFLHNCQUFzQjtRQUM3QyxnQkFBZ0IsRUFBRSw2QkFBNkI7UUFDL0MsZ0JBQWdCLEVBQUUsc0JBQXNCO1FBQ3hDLG9CQUFvQixFQUFFLHlCQUF5QjtRQUMvQyxzQkFBc0IsRUFBRSxxQ0FBcUM7UUFDN0QsdUJBQXVCLEVB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
999
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbW1hbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUE0QixrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWxFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxXQUFXLE1BQU0sd0NBQXdDLENBQUE7QUFFckUsT0FBTyxFQUFFLFFBQVEsRUFBb0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQXdDMUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFVLEVBQTBELEVBQUUsQ0FDN0YsT0FBTyxDQUFDLEtBQUssVUFBVSxJQUFLLENBQVMsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFB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