@effect-app/vue 2.77.4 → 2.77.6

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.
@@ -74,270 +74,272 @@ export const useMutationInt = () => {
74
74
  const _useMutation = useMakeMutation();
75
75
  return (self, options) => Object.assign(mapHandler(_useMutation(self, options), Effect.withSpan(`mutation ${self.id}`, { captureStackTrace: false })), { id: self.id });
76
76
  };
77
+ export class LegacyMutationImpl {
78
+ getRuntime;
79
+ toast;
80
+ intl;
81
+ constructor(getRuntime, toast, intl) {
82
+ this.getRuntime = getRuntime;
83
+ this.toast = toast;
84
+ this.intl = intl;
85
+ }
86
+ /**
87
+ * Effect results are converted to Exit, so errors are ignored by default.
88
+ * you should use the result ref to render errors!
89
+ * @deprecated use `Command.fn` and friends instead
90
+ */
91
+ useSafeMutation = (self, options) => {
92
+ const unsafe = _useMutation(self, options);
93
+ const mh = options?.mapHandler ?? identity;
94
+ const [a, b] = asResult(mapHandler(mapHandler(unsafe, mh), Effect.tapDefect(reportRuntimeError)));
95
+ return [
96
+ a,
97
+ mapHandler(b, Effect.withSpan(`mutation ${self.id}`, { captureStackTrace: false }))
98
+ ];
99
+ };
100
+ /** handles errors as toasts and reports defects
101
+ * @deprecated use `Command.fn` and friends instead
102
+ */
103
+ useHandleRequestWithToast = () => {
104
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
105
+ const self = this;
106
+ return handleRequestWithToast;
107
+ /**
108
+ * Pass a function that returns a Promise.
109
+ * Returns an execution function which reports errors as Toast.
110
+ */
111
+ function handleRequestWithToast(f, id, action, options = {}) {
112
+ const actionMessage = self.intl.formatMessage({ id: `action.${action}`, defaultMessage: action });
113
+ const defaultWarnMessage = self.intl.formatMessage({ id: "handle.with_warnings" }, { action: actionMessage });
114
+ const defaultSuccessMessage = self.intl.formatMessage({ id: "handle.success" }, { action: actionMessage });
115
+ const defaultErrorMessage = self.intl.formatMessage({ id: "handle.with_errors" }, { action: actionMessage });
116
+ return handleRequest(f, id, action, {
117
+ onSuccess: Effect.fnUntraced(function* (a, i) {
118
+ const message = options.successMessage ? yield* options.successMessage(a, i) : defaultSuccessMessage
119
+ + (S.is(OperationSuccess)(a) && a.message
120
+ ? "\n" + a.message
121
+ : "");
122
+ if (message) {
123
+ yield* self.toast.success(message);
124
+ }
125
+ }),
126
+ onFail: Effect.fnUntraced(function* (e, i) {
127
+ if (!options.failMessage && e._tag === "OperationFailure") {
128
+ yield* self.toast.warning(defaultWarnMessage + e.message
129
+ ? "\n" + e.message
130
+ : "");
131
+ return;
132
+ }
133
+ const message = options.failMessage
134
+ ? yield* options.failMessage(e, i)
135
+ : `${defaultErrorMessage}:\n` + renderError(e);
136
+ if (message) {
137
+ yield* self.toast.error(message);
138
+ }
139
+ }),
140
+ onDefect: Effect.fnUntraced(function* (cause, i) {
141
+ const message = options.defectMessage
142
+ ? yield* options.defectMessage(cause, i)
143
+ : self.intl.formatMessage({ id: "handle.unexpected_error" }, {
144
+ action: actionMessage,
145
+ error: Cause.pretty(cause)
146
+ });
147
+ if (message) {
148
+ yield* self.toast.error(message);
149
+ }
150
+ })
151
+ });
152
+ }
153
+ function renderError(e) {
154
+ return Match.value(e).pipe(Match.tags({
155
+ // HttpErrorRequest: e =>
156
+ // this.intl.value.formatMessage(
157
+ // { id: "handle.request_error" },
158
+ // { error: `${e.error}` },
159
+ // ),
160
+ // HttpErrorResponse: e =>
161
+ // e.response.status >= 500 ||
162
+ // e.response.body._tag !== "Some" ||
163
+ // !e.response.body.value
164
+ // ? this.intl.value.formatMessage(
165
+ // { id: "handle.error_response" },
166
+ // {
167
+ // error: `${
168
+ // e.response.body._tag === "Some" && e.response.body.value
169
+ // ? parseError(e.response.body.value)
170
+ // : "Unknown"
171
+ // } (${e.response.status})`,
172
+ // },
173
+ // )
174
+ // : this.intl.value.formatMessage(
175
+ // { id: "handle.unexpected_error" },
176
+ // {
177
+ // error:
178
+ // JSON.stringify(e.response.body, undefined, 2) +
179
+ // "( " +
180
+ // e.response.status +
181
+ // ")",
182
+ // },
183
+ // ),
184
+ // ResponseError: e =>
185
+ // this.intl.value.formatMessage(
186
+ // { id: "handle.response_error" },
187
+ // { error: `${e.error}` },
188
+ // ),
189
+ ParseError: (e) => {
190
+ console.warn(e.toString());
191
+ return self.intl.formatMessage({ id: "validation.failed" });
192
+ }
193
+ }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
194
+ }
195
+ };
196
+ /**
197
+ * Pass a function that returns an Effect, e.g from a client action, give it a name.
198
+ * Returns a tuple with raw Result and execution function which reports success and errors as Toast.
199
+ * @deprecated use `Command.fn` and friends instead
200
+ */
201
+ useAndHandleMutationResult = (self, action, options) => {
202
+ const handleRequestWithToast = this.useHandleRequestWithToast();
203
+ const handler = self.handler;
204
+ const unsafe = _useMutation({
205
+ ...self,
206
+ handler: Effect.isEffect(handler)
207
+ ? pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler))
208
+ : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler(...args)))
209
+ }, options ? dropUndefinedT(options) : undefined);
210
+ const mh = options?.mapHandler ?? identity;
211
+ // Effect.tapDefect(reportRuntimeError) handled in toast handler,
212
+ const [a, b] = asResult(mapHandler(unsafe, mh));
213
+ return tuple(a, handleRequestWithToast(b, self.id, action, options));
214
+ };
215
+ //
216
+ /**
217
+ * Pass a function that returns an Effect, e.g from a client action, give it a name.
218
+ * Returns a tuple with state ref and execution function which reports success and errors as Toast.
219
+ *
220
+ * @deprecated use `Command.fn` and friends instead
221
+ */
222
+ useAndHandleMutation = (self, action, options) => {
223
+ const [a, b] = this.useAndHandleMutationResult(self, action, options);
224
+ return tuple(computed(() => mutationResultToVue(a.value)), b);
225
+ };
226
+ /** @deprecated use `Command.fn` and friends instead */
227
+ makeUseAndHandleMutation = (defaultOptions) => ((self, action, options) => {
228
+ return this.useAndHandleMutation(self, action, { ...defaultOptions, ...options });
229
+ });
230
+ /**
231
+ * The same as @see useAndHandleMutation, but does not display any toasts by default.
232
+ * Messages for success, error and defect toasts can be provided in the Options.
233
+ * @deprecated use `Command.fn` and friends instead
234
+ */
235
+ useAndHandleMutationSilently = this.makeUseAndHandleMutation({
236
+ successMessage: suppressToast,
237
+ failMessage: suppressToast,
238
+ defectMessage: suppressToast
239
+ });
240
+ /**
241
+ * The same as @see useAndHandleMutation, but does not act on success, error or defect by default.
242
+ * Actions for success, error and defect can be provided in the Options.
243
+ * @deprecated use `Command.fn` and friends instead
244
+ */
245
+ useAndHandleMutationCustom = (self, action, options) => {
246
+ const unsafe = _useMutation({
247
+ ...self,
248
+ handler: Effect.isEffect(self.handler)
249
+ ? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
250
+ : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
251
+ }, options ? dropUndefinedT(options) : undefined);
252
+ const mh = options?.mapHandler ?? identity;
253
+ const [a, b] = asResult(mapHandler(mapHandler(unsafe, mh), Effect.tapDefect(reportRuntimeError)));
254
+ return tuple(computed(() => mutationResultToVue(a.value)), handleRequest(b, self.id, action, {
255
+ onSuccess: suppressToast,
256
+ onDefect: suppressToast,
257
+ onFail: suppressToast,
258
+ ...options
259
+ }));
260
+ };
261
+ /**
262
+ * Effect results are converted to Exit, so errors are ignored by default.
263
+ * you should use the result ref to render errors!
264
+ * @deprecated use `Command.fn` and friends instead
265
+ */
266
+ useSafeMutationWithState = (self, options) => {
267
+ const [a, b] = this.useSafeMutation(self, options);
268
+ return tuple(computed(() => mutationResultToVue(a.value)), b);
269
+ };
270
+ /** @deprecated use OmegaForm */
271
+ buildFormFromSchema = (s, state, onSubmit) => {
272
+ const fields = buildFieldInfoFromFieldsRoot(s).fields;
273
+ const schema = S.Struct(Struct.omit(s.fields, "_tag"));
274
+ const parse = S.decodeUnknown(schema);
275
+ const isDirty = ref(false);
276
+ const isValid = ref(true);
277
+ const isLoading = ref(false);
278
+ const runPromise = Runtime.runPromise(this.getRuntime());
279
+ const submit1 = (onSubmit) => async (e) => {
280
+ isLoading.value = true;
281
+ try {
282
+ const r = await e;
283
+ if (!r.valid)
284
+ return;
285
+ return await runPromise(onSubmit(new s(await runPromise(parse(state.value)))));
286
+ }
287
+ finally {
288
+ isLoading.value = false;
289
+ }
290
+ };
291
+ const submit = submit1(onSubmit);
292
+ watch(state, (v) => {
293
+ // TODO: do better
294
+ isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
295
+ }, { deep: true });
296
+ const submitFromState = Effect.gen(function* () {
297
+ return yield* onSubmit(yield* parse(state.value));
298
+ });
299
+ const submitFromStatePromise = () => runPromise(submitFromState);
300
+ return {
301
+ fields,
302
+ /** optimized for Vuetify v-form submit callback */
303
+ submit,
304
+ /** optimized for Native form submit callback or general use */
305
+ submitFromState,
306
+ submitFromStatePromise,
307
+ isDirty,
308
+ isValid,
309
+ isLoading
310
+ };
311
+ };
312
+ }
77
313
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
78
314
  export class LegacyMutation extends Effect.Service()("LegacyMutation", {
79
315
  effect: Effect.gen(function* () {
80
316
  const intl = yield* I18n;
81
317
  const toast = yield* Toast;
82
- return (getRuntime) => {
83
- /**
84
- * Effect results are converted to Exit, so errors are ignored by default.
85
- * you should use the result ref to render errors!
86
- */
87
- const _useSafeMutation = (self, options) => {
88
- const unsafe = _useMutation(self, options);
89
- const mh = options?.mapHandler ?? identity;
90
- const [a, b] = asResult(mapHandler(mapHandler(unsafe, mh), Effect.tapDefect(reportRuntimeError)));
91
- return [
92
- a,
93
- mapHandler(b, Effect.withSpan(`mutation ${self.id}`, { captureStackTrace: false }))
94
- ];
95
- };
96
- /** handles errors as toasts and reports defects */
97
- const _useHandleRequestWithToast = () => {
98
- return handleRequestWithToast;
99
- /**
100
- * Pass a function that returns a Promise.
101
- * Returns an execution function which reports errors as Toast.
102
- */
103
- function handleRequestWithToast(f, id, action, options = {}) {
104
- const actionMessage = intl.formatMessage({ id: `action.${action}`, defaultMessage: action });
105
- const defaultWarnMessage = intl.formatMessage({ id: "handle.with_warnings" }, { action: actionMessage });
106
- const defaultSuccessMessage = intl.formatMessage({ id: "handle.success" }, { action: actionMessage });
107
- const defaultErrorMessage = intl.formatMessage({ id: "handle.with_errors" }, { action: actionMessage });
108
- return handleRequest(f, id, action, {
109
- onSuccess: Effect.fnUntraced(function* (a, i) {
110
- const message = options.successMessage ? yield* options.successMessage(a, i) : defaultSuccessMessage
111
- + (S.is(OperationSuccess)(a) && a.message
112
- ? "\n" + a.message
113
- : "");
114
- if (message) {
115
- yield* toast.success(message);
116
- }
117
- }),
118
- onFail: Effect.fnUntraced(function* (e, i) {
119
- if (!options.failMessage && e._tag === "OperationFailure") {
120
- yield* toast.warning(defaultWarnMessage + e.message
121
- ? "\n" + e.message
122
- : "");
123
- return;
124
- }
125
- const message = options.failMessage
126
- ? yield* options.failMessage(e, i)
127
- : `${defaultErrorMessage}:\n` + renderError(e);
128
- if (message) {
129
- yield* toast.error(message);
130
- }
131
- }),
132
- onDefect: Effect.fnUntraced(function* (cause, i) {
133
- const message = options.defectMessage
134
- ? yield* options.defectMessage(cause, i)
135
- : intl.formatMessage({ id: "handle.unexpected_error" }, {
136
- action: actionMessage,
137
- error: Cause.pretty(cause)
138
- });
139
- if (message) {
140
- yield* toast.error(message);
141
- }
142
- })
143
- });
144
- }
145
- function renderError(e) {
146
- return Match.value(e).pipe(Match.tags({
147
- // HttpErrorRequest: e =>
148
- // intl.value.formatMessage(
149
- // { id: "handle.request_error" },
150
- // { error: `${e.error}` },
151
- // ),
152
- // HttpErrorResponse: e =>
153
- // e.response.status >= 500 ||
154
- // e.response.body._tag !== "Some" ||
155
- // !e.response.body.value
156
- // ? intl.value.formatMessage(
157
- // { id: "handle.error_response" },
158
- // {
159
- // error: `${
160
- // e.response.body._tag === "Some" && e.response.body.value
161
- // ? parseError(e.response.body.value)
162
- // : "Unknown"
163
- // } (${e.response.status})`,
164
- // },
165
- // )
166
- // : intl.value.formatMessage(
167
- // { id: "handle.unexpected_error" },
168
- // {
169
- // error:
170
- // JSON.stringify(e.response.body, undefined, 2) +
171
- // "( " +
172
- // e.response.status +
173
- // ")",
174
- // },
175
- // ),
176
- // ResponseError: e =>
177
- // intl.value.formatMessage(
178
- // { id: "handle.response_error" },
179
- // { error: `${e.error}` },
180
- // ),
181
- ParseError: (e) => {
182
- console.warn(e.toString());
183
- return intl.formatMessage({ id: "validation.failed" });
184
- }
185
- }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
186
- }
187
- };
188
- /**
189
- * Pass a function that returns an Effect, e.g from a client action, give it a name.
190
- * Returns a tuple with raw Result and execution function which reports success and errors as Toast.
191
- */
192
- const _useAndHandleMutationResult = (self, action, options) => {
193
- const handleRequestWithToast = _useHandleRequestWithToast();
194
- const handler = self.handler;
195
- const unsafe = _useMutation({
196
- ...self,
197
- handler: Effect.isEffect(handler)
198
- ? pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler))
199
- : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.zipRight(handler(...args)))
200
- }, options ? dropUndefinedT(options) : undefined);
201
- const mh = options?.mapHandler ?? identity;
202
- // Effect.tapDefect(reportRuntimeError) handled in toast handler,
203
- const [a, b] = asResult(mapHandler(unsafe, mh));
204
- return tuple(a, handleRequestWithToast(b, self.id, action, options));
205
- };
206
- //
207
- /**
208
- * Pass a function that returns an Effect, e.g from a client action, give it a name.
209
- * Returns a tuple with state ref and execution function which reports success and errors as Toast.
210
- */
211
- const _useAndHandleMutation = (self, action, options) => {
212
- const [a, b] = _useAndHandleMutationResult(self, action, options);
213
- return tuple(computed(() => mutationResultToVue(a.value)), b);
214
- };
215
- function _makeUseAndHandleMutation(defaultOptions) {
216
- return ((self, action, options) => {
217
- return _useAndHandleMutation(self, action, { ...defaultOptions, ...options });
218
- });
219
- }
220
- /**
221
- * The same as @see useAndHandleMutation, but does not display any toasts by default.
222
- * Messages for success, error and defect toasts can be provided in the Options.
223
- */
224
- const _useAndHandleMutationSilently = _makeUseAndHandleMutation({
225
- successMessage: suppressToast,
226
- failMessage: suppressToast,
227
- defectMessage: suppressToast
228
- });
229
- /**
230
- * The same as @see useAndHandleMutation, but does not act on success, error or defect by default.
231
- * Actions for success, error and defect can be provided in the Options.
232
- */
233
- const _useAndHandleMutationCustom = (self, action, options) => {
234
- const unsafe = _useMutation({
235
- ...self,
236
- handler: Effect.isEffect(self.handler)
237
- ? pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler))
238
- : (...args) => pipe(Effect.annotateCurrentSpan({ action }), Effect.andThen(self.handler(...args)))
239
- }, options ? dropUndefinedT(options) : undefined);
240
- const mh = options?.mapHandler ?? identity;
241
- const [a, b] = asResult(mapHandler(mapHandler(unsafe, mh), Effect.tapDefect(reportRuntimeError)));
242
- return tuple(computed(() => mutationResultToVue(a.value)), handleRequest(b, self.id, action, {
243
- onSuccess: suppressToast,
244
- onDefect: suppressToast,
245
- onFail: suppressToast,
246
- ...options
247
- }));
248
- };
249
- /**
250
- * Effect results are converted to Exit, so errors are ignored by default.
251
- * you should use the result ref to render errors!
252
- */
253
- const _useSafeMutationWithState = (self, options) => {
254
- const [a, b] = _useSafeMutation(self, options);
255
- return tuple(computed(() => mutationResultToVue(a.value)), b);
256
- };
257
- /** @deprecated use OmegaForm */
258
- const _buildFormFromSchema = (s, state, onSubmit) => {
259
- const fields = buildFieldInfoFromFieldsRoot(s).fields;
260
- const schema = S.Struct(Struct.omit(s.fields, "_tag"));
261
- const parse = S.decodeUnknown(schema);
262
- const isDirty = ref(false);
263
- const isValid = ref(true);
264
- const isLoading = ref(false);
265
- const runPromise = Runtime.runPromise(getRuntime());
266
- const submit1 = (onSubmit) => async (e) => {
267
- isLoading.value = true;
268
- try {
269
- const r = await e;
270
- if (!r.valid)
271
- return;
272
- return await runPromise(onSubmit(new s(await runPromise(parse(state.value)))));
273
- }
274
- finally {
275
- isLoading.value = false;
276
- }
277
- };
278
- const submit = submit1(onSubmit);
279
- watch(state, (v) => {
280
- // TODO: do better
281
- isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
282
- }, { deep: true });
283
- const submitFromState = Effect.gen(function* () {
284
- return yield* onSubmit(yield* parse(state.value));
285
- });
286
- const submitFromStatePromise = () => runPromise(submitFromState);
287
- return {
288
- fields,
289
- /** optimized for Vuetify v-form submit callback */
290
- submit,
291
- /** optimized for Native form submit callback or general use */
292
- submitFromState,
293
- submitFromStatePromise,
294
- isDirty,
295
- isValid,
296
- isLoading
297
- };
298
- };
299
- return {
300
- /** @deprecated use Command.fn */
301
- useSafeMutationWithState: _useSafeMutationWithState,
302
- /** @deprecated use Command.fn */
303
- useAndHandleMutation: _useAndHandleMutation,
304
- /** @deprecated use Command.fn */
305
- useAndHandleMutationResult: _useAndHandleMutationResult,
306
- /** @deprecated use Command.fn */
307
- useAndHandleMutationSilently: _useAndHandleMutationSilently,
308
- /** @deprecated use Command.fn */
309
- useAndHandleMutationCustom: _useAndHandleMutationCustom,
310
- /** @deprecated use Command.fn */
311
- makeUseAndHandleMutation: _makeUseAndHandleMutation,
312
- /**
313
- * handles errors as toasts and reports defects
314
- * @deprecated use Command.fn
315
- */
316
- useHandleRequestWithToast: _useHandleRequestWithToast,
317
- /** @deprecated use OmegaForm */
318
- buildFormFromSchema: _buildFormFromSchema,
319
- /** @deprecated use Command.fn */
320
- useSafeMutation: _useSafeMutation
321
- };
322
- };
318
+ return (getRuntime) => new LegacyMutationImpl(getRuntime, toast, intl);
323
319
  })
324
320
  }) {
325
321
  }
326
- const mkQuery = (getRuntime) => {
327
- // making sure names do not collide with auto exports in nuxt apps, please do not rename..
322
+ export class QueryImpl {
323
+ getRuntime;
324
+ constructor(getRuntime) {
325
+ this.getRuntime = getRuntime;
326
+ this.useQuery = makeQuery(this.getRuntime);
327
+ }
328
328
  /**
329
329
  * Effect results are passed to the caller, including errors.
330
+ * @deprecated use client helpers instead (.query())
330
331
  */
331
332
  // TODO
332
- const _useQuery = makeQuery(getRuntime);
333
+ useQuery;
333
334
  /**
334
335
  * The difference with useQuery is that this function will return a Promise you can await in the Setup,
335
336
  * which ensures that either there always is a latest value, or an error occurs on load.
336
337
  * So that Suspense and error boundaries can be used.
338
+ * @deprecated use client helpers instead (.suspense())
337
339
  */
338
- const useSuspenseQuery = (self) => {
339
- const runPromise = Runtime.runPromise(getRuntime());
340
- const q = _useQuery(self);
340
+ useSuspenseQuery = (self) => {
341
+ const runPromise = Runtime.runPromise(this.getRuntime());
342
+ const q = this.useQuery(self);
341
343
  return (argOrOptions, options) => {
342
344
  const [resultRef, latestRef, fetch, uqrt] = q(argOrOptions, { ...options, suspense: true } // experimental_prefetchInRender: true }
343
345
  );
@@ -377,8 +379,7 @@ const mkQuery = (getRuntime) => {
377
379
  return runPromise(eff);
378
380
  };
379
381
  };
380
- return { useQuery: _useQuery, useSuspenseQuery };
381
- };
382
+ }
382
383
  // somehow mrt.runtimeEffect doesnt work sync, but this workaround works fine? not sure why though as the layers are generally only sync
383
384
  const managedRuntimeRt = (mrt) => mrt.runSync(Effect.runtime());
384
385
  export const makeClient = (
@@ -409,12 +410,13 @@ getBaseMrt, clientFor_) => {
409
410
  "useSafeMutation"
410
411
  ];
411
412
  const mutations = keys.reduce((prev, cur) => {
413
+ ;
412
414
  prev[cur] = ((...args) => {
413
415
  return getMutation()[cur](...args);
414
416
  });
415
417
  return prev;
416
418
  }, {});
417
- const query = mkQuery(getBaseRt);
419
+ const query = new QueryImpl(getBaseRt);
418
420
  const useQuery = query.useQuery;
419
421
  const useSuspenseQuery = query.useSuspenseQuery;
420
422
  const mapQuery = (client) => {
@@ -492,10 +494,7 @@ getBaseMrt, clientFor_) => {
492
494
  };
493
495
  const legacy = {
494
496
  ...mutations,
495
- /** @deprecated use .query on the clientFor(x).Action */
496
- useQuery,
497
- /** @deprecated use .suspense on the clientFor(x).Action */
498
- useSuspenseQuery
497
+ ...query
499
498
  };
500
499
  const Command = {
501
500
  ...{
@@ -514,4 +513,4 @@ getBaseMrt, clientFor_) => {
514
513
  legacy
515
514
  };
516
515
  };
517
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQ2xELE9BQU8sRUFBaUYsZ0JBQWdCLEVBQTBFLE1BQU0scUJBQXFCLENBQUE7QUFDN00sT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXVCLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHeEcsT0FBTyxFQUFFLGFBQWEsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckUsT0FBTyxFQUF5QixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRS9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFvQixlQUFlLEVBQVksR0FBRyxFQUFFLEtBQUssRUFBb0IsTUFBTSxLQUFLLENBQUE7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzdDLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtB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
516
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLDBCQUEwQixDQUFBO0FBQ2xELE9BQU8sRUFBaUYsZ0JBQWdCLEVBQTBFLE1BQU0scUJBQXFCLENBQUE7QUFDN00sT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXVCLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFHeEcsT0FBTyxFQUFFLGFBQWEsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckUsT0FBTyxFQUF5QixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRS9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFvQixlQUFlLEVBQVksR0FBRyxFQUFFLEtBQUssRUFBb0IsTUFBTSxLQUFLLENBQUE7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2xELE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzdDLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDekYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQy9DLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtB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