@effect-app/vue 2.67.7 → 2.69.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.
@@ -41,13 +41,89 @@ export class CommandContext extends Effect.Tag("CommandContext")() {
41
41
  * Useful when the publisher wants to wait for the subscriber to finish processing.
42
42
  */
43
43
  export const wrapEmit = (emit, event) => (value) => new Promise((resolve) => emit(event, value, resolve));
44
+ const renderErrorMaker = I18n.use(({ intl }) => (action, errorRenderer) => (e, ...args) => {
45
+ if (errorRenderer) {
46
+ const m = errorRenderer(e, action, ...args);
47
+ if (m) {
48
+ return m;
49
+ }
50
+ }
51
+ if (!S.is(SupportedErrors)(e) && !S.ParseResult.isParseError(e)) {
52
+ if (typeof e === "object" && e !== null) {
53
+ if ("message" in e) {
54
+ return `${e.message}`;
55
+ }
56
+ if ("_tag" in e) {
57
+ return `${e._tag}`;
58
+ }
59
+ }
60
+ return "";
61
+ }
62
+ const e2 = e;
63
+ return Match.value(e2).pipe(Match.tags({
64
+ ParseError: (e) => {
65
+ console.warn(e.toString());
66
+ return intl.formatMessage({ id: "validation.failed" });
67
+ }
68
+ }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
69
+ });
70
+ const defaultFailureMessageHandler = (actionMaker, errorRenderer) => Effect.fnUntraced(function* (o, ...args) {
71
+ const action = yield* wrapEffect(actionMaker)(o, ...args);
72
+ const { intl } = yield* I18n;
73
+ const renderError = yield* renderErrorMaker;
74
+ return Option.match(o, {
75
+ onNone: () => intl.formatMessage({ id: "handle.unexpected_error2" }, {
76
+ action,
77
+ error: "" // TODO consider again Cause.pretty(cause), // will be reported to Sentry/Otel anyway.. and we shouldn't bother users with error dumps?
78
+ }),
79
+ onSome: (e) => S.is(OperationFailure)(e)
80
+ ? {
81
+ level: "warn",
82
+ message: intl.formatMessage({ id: "handle.with_warnings" }, { action }) + e.message
83
+ ? "\n" + e.message
84
+ : ""
85
+ }
86
+ : `${intl.formatMessage({ id: "handle.with_errors" }, { action })}:\n` + renderError(action, errorRenderer)(e, ...args)
87
+ });
88
+ });
89
+ export const CommanderStatic = {
90
+ /** Version of @see confirmOrInterrupt that automatically includes the action name in the default messages */
91
+ confirmOrInterrupt: Effect.fnUntraced(function* (message = undefined) {
92
+ const context = yield* CommandContext;
93
+ const { intl } = yield* I18n;
94
+ yield* Confirm.confirmOrInterrupt(message
95
+ ?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
96
+ }),
97
+ /** Version of @see confirm that automatically includes the action name in the default messages */
98
+ confirm: Effect.fnUntraced(function* (message = undefined) {
99
+ const context = yield* CommandContext;
100
+ const { intl } = yield* I18n;
101
+ return yield* Confirm.confirm(message
102
+ ?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
103
+ }),
104
+ updateAction: (update) => (_, ...input) => Effect.updateService(_, CommandContext, (c) => ({ ...c, action: update(c.action, ...input) })),
105
+ defaultFailureMessageHandler,
106
+ renderError: renderErrorMaker,
107
+ /** Version of withDefaultToast that automatically includes the action name in the default messages and uses intl */
108
+ withDefaultToast: (options) => (self, ...args) => Effect.gen(function* () {
109
+ const cc = yield* CommandContext;
110
+ const { intl } = yield* I18n;
111
+ const withToast = yield* WithToast;
112
+ return yield* self.pipe((_) => withToast({
113
+ onWaiting: options?.onWaiting === null ? null : intl.formatMessage({ id: "handle.waiting" }, { action: cc.action }),
114
+ onSuccess: options?.onSuccess === null
115
+ ? null
116
+ : (a, ..._args) => intl.formatMessage({ id: "handle.success" }, { action: cc.action })
117
+ + (S.is(OperationSuccess)(a) && a.message ? "\n" + a.message : ""),
118
+ onFailure: defaultFailureMessageHandler(cc.action, options?.errorRenderer)
119
+ })(_, ...args));
120
+ })
121
+ };
44
122
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
45
123
  export class Commander extends Effect.Service()("Commander", {
46
124
  dependencies: [WithToast.Default, Confirm.Default],
47
125
  effect: Effect.gen(function* () {
48
126
  const { intl } = yield* I18n;
49
- const withToast = yield* WithToast;
50
- const { confirm, confirmOrInterrupt } = yield* Confirm;
51
127
  const makeContext = (id) => {
52
128
  if (!id)
53
129
  throw new Error("must specify an id");
@@ -250,115 +326,53 @@ export class Commander extends Effect.Service()("Commander", {
250
326
  }, context);
251
327
  };
252
328
  };
253
- const renderError = (action, errorRenderer) => (e, ...args) => {
254
- if (errorRenderer) {
255
- const m = errorRenderer(e, action, ...args);
256
- if (m) {
257
- return m;
258
- }
259
- }
260
- if (!S.is(SupportedErrors)(e) && !S.ParseResult.isParseError(e)) {
261
- if (typeof e === "object" && e !== null) {
262
- if ("message" in e) {
263
- return `${e.message}`;
264
- }
265
- if ("_tag" in e) {
266
- return `${e._tag}`;
267
- }
268
- }
269
- return "";
270
- }
271
- const e2 = e;
272
- return Match.value(e2).pipe(Match.tags({
273
- ParseError: (e) => {
274
- console.warn(e.toString());
275
- return intl.formatMessage({ id: "validation.failed" });
276
- }
277
- }), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
278
- };
279
- const defaultFailureMessageHandler = (actionMaker, errorRenderer) => Effect.fnUntraced(function* (o, ...args) {
280
- const action = yield* wrapEffect(actionMaker)(o, ...args);
281
- return Option.match(o, {
282
- onNone: () => intl.formatMessage({ id: "handle.unexpected_error2" }, {
283
- action,
284
- error: "" // TODO consider again Cause.pretty(cause), // will be reported to Sentry/Otel anyway.. and we shouldn't bother users with error dumps?
285
- }),
286
- onSome: (e) => S.is(OperationFailure)(e)
287
- ? {
288
- level: "warn",
289
- message: intl.formatMessage({ id: "handle.with_warnings" }, { action }) + e.message
290
- ? "\n" + e.message
291
- : ""
292
- }
293
- : `${intl.formatMessage({ id: "handle.with_errors" }, { action })}:\n` + renderError(action, errorRenderer)(e, ...args)
294
- });
295
- });
296
329
  return {
297
- /** @experimental */
298
- takeOver: (command) => (...args) => {
299
- // we capture the call site stack here
300
- const limit = Error.stackTraceLimit;
301
- Error.stackTraceLimit = 2;
302
- const errorCall = new Error();
303
- const localErrorDef = new Error();
304
- Error.stackTraceLimit = limit;
305
- // TODO
306
- const errorDef = localErrorDef;
307
- let cache = false;
308
- const captureStackTrace = () => {
309
- // in case of an error, we want to append the definition stack to the call site stack,
310
- // so we can see where the handler was defined too
311
- if (cache !== false) {
312
- return cache;
313
- }
314
- if (errorCall.stack) {
315
- const stackDef = errorDef.stack.trim().split("\n");
316
- const stackCall = errorCall.stack.trim().split("\n");
317
- let endStackDef = stackDef.slice(2).join("\n").trim();
318
- if (!endStackDef.includes(`(`)) {
319
- endStackDef = endStackDef.replace(/at (.*)/, "at ($1)");
320
- }
321
- let endStackCall = stackCall.slice(2).join("\n").trim();
322
- if (!endStackCall.includes(`(`)) {
323
- endStackCall = endStackCall.replace(/at (.*)/, "at ($1)");
324
- }
325
- cache = `${endStackDef}\n${endStackCall}`;
326
- return cache;
327
- }
328
- };
329
- return Effect.gen(function* () {
330
- const ctx = yield* CommandContext;
331
- ctx.action = command.action;
332
- return yield* command.exec(...args).pipe(Effect.flatten, Effect.withSpan(command.action, { captureStackTrace }));
333
- });
334
- },
335
- /** Version of @see confirmOrInterrupt that automatically includes the action name in the default messages */
336
- confirmOrInterrupt: Effect.fnUntraced(function* (message = undefined) {
337
- const context = yield* CommandContext;
338
- yield* confirmOrInterrupt(message
339
- ?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
340
- }),
341
- /** Version of @see confirm that automatically includes the action name in the default messages */
342
- confirm: Effect.fnUntraced(function* (message = undefined) {
343
- const context = yield* CommandContext;
344
- return yield* confirm(message
345
- ?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
346
- }),
347
- updateAction: (update) => (_, ...input) => Effect.updateService(_, CommandContext, (c) => ({ ...c, action: update(c.action, ...input) })),
348
- defaultFailureMessageHandler,
349
- renderError,
350
- /** Version of withDefaultToast that automatically includes the action name in the default messages and uses intl */
351
- withDefaultToast: (options) => (self, ...args) => Effect.gen(function* () {
352
- const cc = yield* CommandContext;
353
- return yield* self.pipe((_) => withToast({
354
- onWaiting: options?.onWaiting === null ? null : intl.formatMessage({ id: "handle.waiting" }, { action: cc.action }),
355
- onSuccess: options?.onSuccess === null
356
- ? null
357
- : (a, ..._args) => intl.formatMessage({ id: "handle.success" }, { action: cc.action })
358
- + (S.is(OperationSuccess)(a) && a.message ? "\n" + a.message : ""),
359
- onFailure: defaultFailureMessageHandler(cc.action, options?.errorRenderer)
360
- })(_, ...args));
361
- }),
330
+ // /** @experimental */
331
+ // takeOver:
332
+ // <Args extends any[], A, E, R, const Id extends string>(command: Commander.CommandOut<Args, A, E, R, Id>) =>
333
+ // (...args: Args) => {
334
+ // // we capture the call site stack here
335
+ // const limit = Error.stackTraceLimit
336
+ // Error.stackTraceLimit = 2
337
+ // const errorCall = new Error()
338
+ // const localErrorDef = new Error()
339
+ // Error.stackTraceLimit = limit
340
+ // // TODO
341
+ // const errorDef = localErrorDef
342
+ // let cache: false | string = false
343
+ // const captureStackTrace = () => {
344
+ // // in case of an error, we want to append the definition stack to the call site stack,
345
+ // // so we can see where the handler was defined too
346
+ // if (cache !== false) {
347
+ // return cache
348
+ // }
349
+ // if (errorCall.stack) {
350
+ // const stackDef = errorDef.stack!.trim().split("\n")
351
+ // const stackCall = errorCall.stack.trim().split("\n")
352
+ // let endStackDef = stackDef.slice(2).join("\n").trim()
353
+ // if (!endStackDef.includes(`(`)) {
354
+ // endStackDef = endStackDef.replace(/at (.*)/, "at ($1)")
355
+ // }
356
+ // let endStackCall = stackCall.slice(2).join("\n").trim()
357
+ // if (!endStackCall.includes(`(`)) {
358
+ // endStackCall = endStackCall.replace(/at (.*)/, "at ($1)")
359
+ // }
360
+ // cache = `${endStackDef}\n${endStackCall}`
361
+ // return cache
362
+ // }
363
+ // }
364
+ // return Effect.gen(function*() {
365
+ // const ctx = yield* CommandContext
366
+ // ctx.action = command.action
367
+ // return yield* command.exec(...args).pipe(
368
+ // Effect.flatten,
369
+ // Effect.withSpan(
370
+ // command.action,
371
+ // { captureStackTrace }
372
+ // )
373
+ // )
374
+ // })
375
+ // },
362
376
  /**
363
377
  * Define a Command for handling user actions with built-in error reporting and state management.
364
378
  *
@@ -434,4 +448,4 @@ export class Commander extends Effect.Service()("Commander", {
434
448
  })
435
449
  }) {
436
450
  }
437
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cGVyaW1lbnRhbC9jb21tYW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxjQUFjLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsRUFBRSxFQUFFO1FBQ0YscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGdCQUFnQixFQUFFLDZCQUE2QjtRQUMvQyxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO1FBQy9DLHNCQUFzQixFQUFFLHFDQUFxQztRQUM3RCx1QkFBdUIsRUFDckIsaUhBQWlIO1FBQ25ILHVCQUF1QixFQUFFLHVEQUF1RDtRQUNoRixzQkFBc0IsRUFBRSxvREFBb0Q7UUFDNUUsMEJBQTBCLEVBQUUsbUVBQW1FO0tBQ2hHO0lBQ0QsRUFBRSxFQUFFO1FBQ0YscUJBQXFCLEVBQUUsbUJBQW1CO1FBQzFDLGdCQUFnQixFQUFFLHVCQUF1QjtRQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0I7UUFDcEMsb0JBQW9CLEVBQUUsaUJBQWlCO1FBQ3ZDLHNCQUFzQixFQUFFLHlCQUF5QjtRQUNqRCx1QkFBdUIsRUFDckIsa0hBQWtIO1FBQ3BILHNCQUFzQixFQUFFLDZDQUE2QztRQUNyRSx1QkFBdUIsRUFBRSwwQ0FBMEM7UUFDbkUsMEJBQTBCLEVBQUUsc0RBQXNEO0tBQ25GO0NBQ0YsQ0FBQTtBQUVELE1BQU0sT0FBTyxjQUFlLFNBQVEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUc3RDtDQUFHO0FBSU47OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQ3RCLElBQXlDLEVBQ3pDLEtBQVksRUFDWixFQUFFLENBQ0osQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBdXJCekUsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxTQUFVLFNBQVEsTUFBTSxDQUFDLE9BQU8sRUFBYSxDQUFDLFdBQVcsRUFBRTtJQUN0RSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDbEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDNUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBQ2xDLE1BQU0sRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFFdEQsTUFBTSxXQUFXLEdBQUcsQ0FBb0IsRUFBTSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEVBQUU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQzlDLE1BQU0sU0FBUyxHQUFHLFVBQVUsRUFBRSxFQUFXLENBQUE7WUFFekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDaEMsRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsY0FBYyxFQUFFLEVBQUU7YUFDbkIsQ0FBQyxDQUFBO1lBQ0YsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsTUFBTTtnQkFDTixFQUFFO2dCQUNGLFNBQVM7Z0JBQ1QsVUFBVSxFQUFFLENBQXlCLENBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQyxFQUFXO2FBQzNFLENBQUE7WUFFRCxPQUFPLE9BQU8sQ0FBQTtRQUNoQixDQUFDLENBQUE7UUFFRCxNQUFNLFdBQVcsR0FBRyxDQUFLLE9BQTRCLEVBQUUsRUFBRTtZQUN2RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3hDLE9BQU8sQ0FBMEIsRUFBTSxFQUFFLFFBQWdCLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUUvQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDbkIsT0FBa0QsRUFDbEQsRUFBRTtvQkFDRixrRkFBa0Y7b0JBQ2xGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7b0JBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO29CQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO29CQUNqQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNkLFFBQVEsR0FBRyxhQUFhLENBQUE7b0JBQzFCLENBQUM7b0JBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtvQkFFN0IsTUFBTSxhQUFhLEdBQUcsQ0FBVSxJQUE0QixFQUFFLEVBQUUsQ0FDOUQsSUFBSSxDQUFDLElBQUksQ0FDUCxNQUFNLENBQUMsYUFBYSxDQUNsQixNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEtBQUs7d0JBQy9CLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEVBQUUsRUFBRSxDQUFDLENBQUE7NEJBQ2pELE9BQU07d0JBQ1IsQ0FBQzt3QkFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUN2QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzs0QkFDeEIsOENBQThDOzRCQUM5QyxrQkFBa0I7NEJBQ2xCLDhDQUE4Qzs0QkFDOUMsa0JBQWtCOzRCQUNsQixNQUFNOzRCQUNOLFdBQVc7NEJBQ1gsSUFBSTs0QkFDSixNQUFNLE9BQU8sR0FBRyxxQkFBcUIsRUFBRSxFQUFFLENBQUE7NEJBQ3pDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUU7Z0NBQzVCLE1BQU0sRUFBRSxFQUFFO2dDQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzs2QkFDbEIsQ0FBQyxDQUFBOzRCQUNGLE9BQU07d0JBQ1IsQ0FBQzt3QkFFRCxNQUFNLEtBQUssR0FBRzs0QkFDWixNQUFNOzRCQUNOLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxFQUFFO3lCQUM1QyxDQUFBO3dCQUNELEtBQUssQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtvQkFDekMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FDM0IsQ0FDRixDQUFBO29CQUVILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FDckIsT0FBTztvQkFDUCwwREFBMEQ7b0JBQzFELE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxFQUM5QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN0RSxhQUFhLENBQ2QsQ0FBQTtvQkFFRCxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtvQkFFM0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7b0JBRXBELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQVUsRUFBRSxFQUFFO3dCQUM3QyxzQ0FBc0M7d0JBQ3RDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7d0JBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO3dCQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO3dCQUM3QixLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTt3QkFFN0IsSUFBSSxLQUFLLEdBQW1CLEtBQUssQ0FBQTt3QkFDakMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7NEJBQzdCLHNGQUFzRjs0QkFDdEYsa0RBQWtEOzRCQUVsRCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxLQUFLLENBQUE7NEJBQ2QsQ0FBQzs0QkFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQ0FDcEIsTUFBTSxRQUFRLEdBQUcsUUFBUyxDQUFDLEtBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Z0NBQ3BELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dDQUNwRCxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQ0FDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQ0FDL0IsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dDQUN6RCxDQUFDO2dDQUNELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO2dDQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29DQUNoQyxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0NBQzNELENBQUM7Z0NBQ0QsS0FBSyxHQUFHLEdBQUcsV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFBO2dDQUN6QyxPQUFPLEtBQUssQ0FBQTs0QkFDZCxDQUFDO3dCQUNILENBQUMsQ0FBQTt3QkFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFDYixFQUFFLEVBQ0YsRUFBRSxpQkFBaUIsRUFBRSxDQUN0QixDQUFBO3dCQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUN6QixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO29CQUVkLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQVUsRUFBRSxFQUFFO3dCQUNuRCxzQ0FBc0M7d0JBQ3RDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7d0JBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO3dCQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO3dCQUM3QixLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTt3QkFFN0IsSUFBSSxLQUFLLEdBQW1CLEtBQUssQ0FBQTt3QkFDakMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7NEJBQzdCLHNGQUFzRjs0QkFDdEYsa0RBQWtEOzRCQUVsRCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxLQUFLLENBQUE7NEJBQ2QsQ0FBQzs0QkFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQ0FDcEIsTUFBTSxRQUFRLEdBQUcsUUFBUyxDQUFDLEtBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Z0NBQ3BELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dDQUNwRCxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQ0FDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQ0FDL0IsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dDQUN6RCxDQUFDO2dDQUNELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO2dDQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29DQUNoQyxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7Z0NBQzNELENBQUM7Z0NBQ0QsS0FBSyxHQUFHLEdBQUcsV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFBO2dDQUN6QyxPQUFPLEtBQUssQ0FBQTs0QkFDZCxDQUFDO3dCQUNILENBQUMsQ0FBQTt3QkFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUM3QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFDYixFQUFFLEVBQ0YsRUFBRSxpQkFBaUIsRUFBRSxDQUN0QixDQUFBO3dCQUVELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzVCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2xCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUN6RixDQUNGLENBQUE7b0JBQ0gsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtvQkFFZCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFVLEVBQUUsRUFBRTt3QkFDOUMsc0NBQXNDO3dCQUN0QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFBO3dCQUNuQyxLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTt3QkFDekIsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTt3QkFDN0IsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7d0JBRTdCLElBQUksS0FBSyxHQUFtQixLQUFLLENBQUE7d0JBQ2pDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFOzRCQUM3QixzRkFBc0Y7NEJBQ3RGLGtEQUFrRDs0QkFFbEQsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sS0FBSyxDQUFBOzRCQUNkLENBQUM7NEJBQ0QsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0NBQ3BCLE1BQU0sUUFBUSxHQUFHLFFBQVMsQ0FBQyxLQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dDQUNwRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQ0FDcEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7Z0NBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0NBQy9CLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtnQ0FDekQsQ0FBQztnQ0FDRCxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQ0FDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQ0FDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dDQUMzRCxDQUFDO2dDQUNELEtBQUssR0FBRyxHQUFHLFdBQVcsS0FBSyxZQUFZLEVBQUUsQ0FBQTtnQ0FDekMsT0FBTyxLQUFLLENBQUE7NEJBQ2QsQ0FBQzt3QkFDSCxDQUFDLENBQUE7d0JBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQ2IsRUFBRSxFQUNGLEVBQUUsaUJBQWlCLEVBQUUsQ0FDdEIsQ0FBQTt3QkFFRCxPQUFPLE9BQU8sQ0FBQTtvQkFDaEIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtvQkFFZCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFVLEVBQUUsRUFBRTt3QkFDL0Msc0NBQXNDO3dCQUN0QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFBO3dCQUNuQyxLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTt3QkFDekIsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTt3QkFDN0IsS0FBSyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7d0JBRTdCLElBQUksS0FBSyxHQUFtQixLQUFLLENBQUE7d0JBQ2pDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFOzRCQUM3QixzRkFBc0Y7NEJBQ3RGLGtEQUFrRDs0QkFFbEQsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sS0FBSyxDQUFBOzRCQUNkLENBQUM7NEJBQ0QsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0NBQ3BCLE1BQU0sUUFBUSxHQUFHLFFBQVMsQ0FBQyxLQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dDQUNwRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQ0FDcEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7Z0NBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0NBQy9CLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtnQ0FDekQsQ0FBQztnQ0FDRCxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQ0FDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQ0FDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2dDQUMzRCxDQUFDO2dDQUNELEtBQUssR0FBRyxHQUFHLFdBQVcsS0FBSyxZQUFZLEVBQUUsQ0FBQTtnQ0FDekMsT0FBTyxLQUFLLENBQUE7NEJBQ2QsQ0FBQzt3QkFDSCxDQUFDLENBQUE7d0JBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDbEMsRUFBRSxFQUNGLEVBQUUsaUJBQWlCLEVBQUUsQ0FDdEIsQ0FBQTt3QkFFRCxPQUFPLE9BQU8sQ0FBQTtvQkFDaEIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtvQkFFZCxPQUFPLFFBQVEsQ0FBQzt3QkFDZCxFQUFFO3dCQUNGLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTt3QkFDOUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO3dCQUM1QixNQUFNO3dCQUNOLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixNQUFNO3dCQUNOLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxRQUFRO3dCQUNSLElBQUk7cUJBQ0wsQ0FBQyxDQUFBO2dCQUNKLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUNiLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQTtRQUVELE1BQU0sV0FBVyxHQUNmLENBQWlDLE1BQWMsRUFBRSxhQUFzQyxFQUFFLEVBQUUsQ0FDM0YsQ0FBQyxDQUFJLEVBQUUsR0FBRyxJQUFVLEVBQVUsRUFBRTtZQUM5QixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO2dCQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxDQUFBO2dCQUNWLENBQUM7WUFDSCxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ3hDLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNuQixPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO29CQUN2QixDQUFDO29CQUNELElBQUksTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNoQixPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO29CQUNwQixDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUE7WUFDWCxDQUFDO1lBQ0QsTUFBTSxFQUFFLEdBQStDLENBQUMsQ0FBQTtZQUN4RCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNULFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO29CQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBO2dCQUN4RCxDQUFDO2FBQ0YsQ0FBQyxFQUNGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ25ELENBQUE7UUFDSCxDQUFDLENBQUE7UUFFSCxNQUFNLDRCQUE0QixHQUFHLENBQ25DLFdBRzZFLEVBQzdFLGFBQXNDLEVBQ3RDLEVBQUUsQ0FDRixNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQW1CLEVBQUUsR0FBRyxJQUFVO1lBQzVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtZQUV6RCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNyQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsRUFBRSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsRUFDbEM7b0JBQ0UsTUFBTTtvQkFDTixLQUFLLEVBQUUsRUFBRSxDQUFDLHVJQUF1STtpQkFDbEosQ0FDRjtnQkFDSCxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNaLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQzt3QkFDQSxLQUFLLEVBQUUsTUFBZTt3QkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQ3ZCLEVBQUUsRUFBRSxFQUFFLHNCQUFzQixFQUFFLEVBQzlCLEVBQUUsTUFBTSxFQUFFLENBQ1gsR0FBRyxDQUFDLENBQUMsT0FBTzs0QkFDYixDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPOzRCQUNsQixDQUFDLENBQUMsRUFBRTtxQkFDUDtvQkFDRCxDQUFDLENBQUMsR0FDQSxJQUFJLENBQUMsYUFBYSxDQUNoQixFQUFFLEVBQUUsRUFBRSxvQkFBb0IsRUFBRSxFQUM1QixFQUFFLE1BQU0sRUFBRSxDQUVkLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQzthQUMzRCxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUVKLE9BQU87WUFDTCxvQkFBb0I7WUFDcEIsUUFBUSxFQUNOLENBQXVELE9BQWdELEVBQUUsRUFBRSxDQUMzRyxDQUFDLEdBQUcsSUFBVSxFQUFFLEVBQUU7Z0JBQ2hCLHNDQUFzQztnQkFDdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQTtnQkFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7Z0JBQzdCLE1BQU0sYUFBYSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7Z0JBQ2pDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO2dCQUU3QixPQUFPO2dCQUNQLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQTtnQkFFOUIsSUFBSSxLQUFLLEdBQW1CLEtBQUssQ0FBQTtnQkFDakMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7b0JBQzdCLHNGQUFzRjtvQkFDdEYsa0RBQWtEO29CQUVsRCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQzt3QkFDcEIsT0FBTyxLQUFLLENBQUE7b0JBQ2QsQ0FBQztvQkFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDcEIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBQ25ELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNwRCxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTt3QkFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzs0QkFDL0IsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFBO3dCQUN6RCxDQUFDO3dCQUNELElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO3dCQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNoQyxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUE7d0JBQzNELENBQUM7d0JBQ0QsS0FBSyxHQUFHLEdBQUcsV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFBO3dCQUN6QyxPQUFPLEtBQUssQ0FBQTtvQkFDZCxDQUFDO2dCQUNILENBQUMsQ0FBQTtnQkFFRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUN6QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUE7b0JBQ2pDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQTtvQkFDM0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUN0QyxNQUFNLENBQUMsT0FBTyxFQUNkLE1BQU0sQ0FBQyxRQUFRLENBQ2IsT0FBTyxDQUFDLE1BQU0sRUFDZCxFQUFFLGlCQUFpQixFQUFFLENBQ3RCLENBQ0YsQ0FBQTtnQkFDSCxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFSCw2R0FBNkc7WUFDN0csa0JBQWtCLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDN0MsVUFBOEIsU0FBUztnQkFFdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFBO2dCQUNyQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FDdkIsT0FBTzt1QkFDRixJQUFJLENBQUMsYUFBYSxDQUNuQixFQUFFLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxFQUM3QixFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQzNCLENBQ0osQ0FBQTtZQUNILENBQUMsQ0FBQztZQUNGLGtHQUFrRztZQUNsRyxPQUFPLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDbEMsVUFBOEIsU0FBUztnQkFFdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFBO2dCQUNyQyxPQUFPLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FDbkIsT0FBTzt1QkFDRixJQUFJLENBQUMsYUFBYSxDQUNuQixFQUFFLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSxFQUM3QixFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQzNCLENBQ0osQ0FBQTtZQUNILENBQUMsQ0FBQztZQUNGLFlBQVksRUFDVixDQUE4QixNQUEwRCxFQUFFLEVBQUUsQ0FDNUYsQ0FBVSxDQUF5QixFQUFFLEdBQUcsS0FBVyxFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLGFBQWEsQ0FDbEIsQ0FBQyxFQUNELGNBQWMsRUFDZCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FDdEQ7WUFDTCw0QkFBNEI7WUFDNUIsV0FBVztZQUNYLG9IQUFvSDtZQUNwSCxnQkFBZ0IsRUFBRSxDQUNoQixPQUlDLEVBQ0QsRUFBRSxDQUNKLENBQ0UsSUFBNEIsRUFDNUIsR0FBRyxJQUFVLEVBQ2IsRUFBRSxDQUNGLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUNsQixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUE7Z0JBRWhDLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDckIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLFNBQVMsQ0FBZ0I7b0JBQ3ZCLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUNoRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUN4QixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQ3RCO29CQUNELFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxLQUFLLElBQUk7d0JBQ3BDLENBQUMsQ0FBQyxJQUFJO3dCQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7OEJBQ2pFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3RFLFNBQVMsRUFBRSw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUM7aUJBQzNFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FDakIsQ0FBQTtZQUNILENBQUMsQ0FBQztZQUNKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2VBbUJHO1lBQ0gsRUFBRSxFQUFFLENBQUssT0FBNEIsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ2pDLE9BQU8sQ0FBMEIsRUFBTSxFQUFvRCxFQUFFLENBQzNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDWixFQUFPLEVBQ1AsR0FBRyxXQUFrQixFQUNoQixFQUFFO29CQUNQLGtGQUFrRjtvQkFDbEYsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQTtvQkFDbkMsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUE7b0JBQ3pCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7b0JBQzVCLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO29CQUU3QixPQUFPLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQ3ZCLE1BQU0sQ0FBQyxVQUFVO29CQUNmLHlGQUF5RjtvQkFDekYsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsR0FBRyxJQUFJO3dCQUM5QyxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO29CQUMzQixDQUFDLEVBQ0QsR0FBRyxXQUFvQixDQUNqQixDQUNULENBQUE7Z0JBQ0gsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3ZCLENBQUM7WUFFRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUNqQixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDbEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQTtvQkFDckUsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7b0JBQ2xDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDL0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO29CQUNyQix1Q0FBdUM7b0JBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQy9CLEtBQUssQ0FBQyxFQUFFLENBQ04sTUFBTSxDQUFDLE1BQU0sQ0FDWCxDQUFDLEVBQU8sRUFBRSxHQUFHLFdBQWtCLEVBQUUsRUFBRSxDQUNqQyxNQUFNLENBQUMsVUFBVTtvQkFDZix5RkFBeUY7b0JBQ3pGLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsSUFBSTt3QkFDOUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtvQkFDM0IsQ0FBQyxFQUNELEdBQUcsV0FBb0IsQ0FDeEIsRUFDSCxPQUFPLEVBQ1AsUUFBUTt3QkFDTixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTt3QkFDeEYsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxDQUNGLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDaEIsQ0FBQyxDQUFBO1lBQ0gsQ0FBQyxDQWdCOEM7WUFFL0Msb0JBQW9CO1lBQ3BCLEdBQUcsRUFBRSxXQU0wQztZQUUvQyxvQkFBb0I7WUFDcEIsSUFBSSxFQUFFLENBQUssT0FBNEIsRUFBRSxFQUFFO2dCQUN6QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ2pDLE9BQU8sQ0FDTCxRQUU0RCxFQUlkLEVBQUUsQ0FDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUNaLEdBQUcsV0FBa0IsRUFDaEIsRUFBRTtvQkFDUCxrRkFBa0Y7b0JBQ2xGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUE7b0JBQ25DLEtBQUssQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO29CQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO29CQUM1QixLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtvQkFFN0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO29CQUVoRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUNoQyxNQUFNLENBQUMsVUFBVTtvQkFDZix5RkFBeUY7b0JBQ3pGLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLEdBQUcsSUFBVTt3QkFDNUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtvQkFDL0IsQ0FBQyxFQUNELEdBQUcsV0FBb0IsQ0FDakIsQ0FDVCxDQUFBO2dCQUNILENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7WUFDaEMsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDLENBQUM7Q0FDSCxDQUFDO0NBQUcifQ==
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cGVyaW1lbnRhbC9jb21tYW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxjQUFjLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsRUFBRSxFQUFFO1FBQ0YscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGdCQUFnQixFQUFFLDZCQUE2QjtRQUMvQyxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO1FBQy9DLHNCQUFzQixFQUFFLHFDQUFxQztRQUM3RCx1QkFBdUIsRUFDckIsaUhBQWlIO1FBQ25I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
@@ -5,6 +5,7 @@ declare const Confirm_base: Effect.Service.Class<Confirm, "Confirm", {
5
5
  confirm: (message?: string) => Effect.Effect<boolean, never, never>;
6
6
  confirmOrInterrupt: (message?: string) => Effect.Effect<void, never, never>;
7
7
  }, never, I18n>;
8
+ readonly accessors: true;
8
9
  }>;
9
10
  export declare class Confirm extends Confirm_base {
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/experimental/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;;;;;;;AAGhC,qBAAa,OAAQ,SAAQ,YAe3B;CAAG"}
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/experimental/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;;;;;;;;AAGhC,qBAAa,OAAQ,SAAQ,YAgB3B;CAAG"}
@@ -8,7 +8,8 @@ export class Confirm extends Effect.Service()("Confirm", {
8
8
  const confirm = (message = getDefaultMessage()) => Effect.sync(() => window.confirm(message));
9
9
  const confirmOrInterrupt = (message = getDefaultMessage()) => confirm(message).pipe(Effect.flatMap((result) => (result ? Effect.void : Effect.interrupt)));
10
10
  return { confirm, confirmOrInterrupt };
11
- })
11
+ }),
12
+ accessors: true
12
13
  }) {
13
14
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBlcmltZW50YWwvY29uZmlybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFaEMsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxPQUFRLFNBQVEsTUFBTSxDQUFDLE9BQU8sRUFBVyxDQUFDLFNBQVMsRUFBRTtJQUNoRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUU1QixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtRQUVqSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUU3RixNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBTyxHQUFHLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3RFLENBQUE7UUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUE7SUFDeEMsQ0FBQyxDQUFDO0NBQ0gsQ0FBQztDQUFHIn0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBlcmltZW50YWwvY29uZmlybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFaEMsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxPQUFRLFNBQVEsTUFBTSxDQUFDLE9BQU8sRUFBVyxDQUFDLFNBQVMsRUFBRTtJQUNoRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUU1QixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtRQUVqSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUU3RixNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBTyxHQUFHLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3RFLENBQUE7UUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUE7SUFDeEMsQ0FBQyxDQUFDO0lBQ0YsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztDQUFHIn0=
@@ -1,36 +1,35 @@
1
1
  import { Effect } from "effect-app";
2
2
  import { Commander } from "./commander.js";
3
3
  export declare const makeUseCommand: <R = never>() => Effect.Effect<{
4
- alt: <const Id extends string>(id: Id) => Commander.CommandContextLocal<Id> & (<Args extends Array<unknown>, A, E, R_1 extends import("./commander.js").CommandContext | R>(handler: (...args: Args) => Effect.Effect<A, E, R_1>) => Commander.CommandOut<Args, A, E, R_1, Id>);
4
+ confirmOrInterrupt: (message?: string | undefined) => Effect.Effect<void, never, import("./confirm.js").Confirm | import("./intl.js").I18n | import("./commander.js").CommandContext>;
5
+ confirm: (message?: string | undefined) => Effect.Effect<boolean, never, import("./confirm.js").Confirm | import("./intl.js").I18n | import("./commander.js").CommandContext>;
6
+ updateAction: <Args extends Array<unknown>>(update: (currentActionId: string, ...args: Args) => string) => <A, E, R_1>(_: Effect.Effect<A, E, R_1>, ...input: Args) => Effect.Effect<A, E, import("./commander.js").CommandContext | R_1>;
7
+ defaultFailureMessageHandler: <E_1, Args extends Array<unknown>, AME, AMR>(actionMaker: string | ((o: import("effect/Option").Option<E_1>, ...args: Args) => string) | ((o: import("effect/Option").Option<E_1>, ...args: Args) => Effect.Effect<string, AME, AMR>), errorRenderer?: (e: E_1, action: string, ...args: Args) => string | undefined) => (o: import("effect/Option").Option<E_1>, ...args: Args) => Effect.Effect<string | {
8
+ level: "warn";
9
+ message: string;
10
+ }, AME, import("./intl.js").I18n | AMR>;
11
+ renderError: Effect.Effect<(<E_1, Args_1 extends readonly any[]>(action: string, errorRenderer?: (e: E_1, action: string, ...args: Args_1) => string | undefined) => (e: E_1, ...args: Args_1) => string), never, import("./intl.js").I18n>;
12
+ withDefaultToast: <A, E_1, R_2, Args_2 extends Array<unknown>>(options?: {
13
+ errorRenderer?: (e: E_1, action: string, ...args: Args_2) => string | undefined;
14
+ onWaiting?: null | undefined | string | ((action: string, ...args: Args_2) => string | null | undefined);
15
+ onSuccess?: null | undefined | string | ((a: A, action: string, ...args: Args_2) => string | null | undefined);
16
+ }) => (self: Effect.Effect<A, E_1, R_2>, ...args: Args_2) => Effect.Effect<A, E_1, import("./intl.js").I18n | import("./withToast.js").WithToast | import("./commander.js").CommandContext | R_2>;
17
+ alt: <const Id extends string>(id: Id) => Commander.CommandContextLocal<Id> & (<Args_3 extends Array<unknown>, A, E_2, R_3 extends import("./commander.js").CommandContext | R>(handler: (...args: Args_3) => Effect.Effect<A, E_2, R_3>) => Commander.CommandOut<Args_3, A, E_2, R_3, Id>);
5
18
  fn: <const Id extends string>(id: Id) => Commander.Gen<R, Id> & Commander.NonGen<R, Id>;
6
- wrap: <const Id extends string, Args extends Array<unknown>, A_1, E_1, R_2>(mutation: {
7
- mutate: (...args: Args) => Effect.Effect<A_1, E_1, R_2>;
19
+ wrap: <const Id extends string, Args_3 extends Array<unknown>, A_1, E_3, R_4>(mutation: (((...args: Args_3) => Effect.Effect<A_1, E_3, R_4>) & {
8
20
  id: Id;
9
- } | (((...args: Args) => Effect.Effect<A_1, E_1, R_2>) & {
21
+ }) | {
22
+ mutate: (...args: Args_3) => Effect.Effect<A_1, E_3, R_4>;
10
23
  id: Id;
11
- })) => Commander.CommandContextLocal<Id> & Commander.GenWrap<R, Id, Args, A_1, E_1, R_2> & Commander.NonGenWrap<R, Id, Args, A_1, E_1, R_2>;
12
- alt2: <const Id extends string, MutArgs extends Array<unknown>, MutA, MutE, MutR>(id: Id | {
24
+ }) => Commander.CommandContextLocal<Id> & Commander.GenWrap<R, Id, Args_3, A_1, E_3, R_4> & Commander.NonGenWrap<R, Id, Args_3, A_1, E_3, R_4>;
25
+ alt2: <const Id extends string, MutArgs extends Array<unknown>, MutA, MutE, MutR>(id: Id | (((...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>) & {
13
26
  id: Id;
14
- mutate: (...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>;
15
- } | (((...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>) & {
27
+ }) | {
16
28
  id: Id;
17
- })) => Commander.CommandContextLocal<Id> & (<Args_1 extends Array<unknown>, A_2, E_2, R_3 extends import("./commander.js").CommandContext | R>(handler: (ctx: Effect.fn.Gen & Effect.fn.NonGen & Commander.CommandContextLocal<Id> & {
18
29
  mutate: (...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>;
19
- }) => (...args: Args_1) => Effect.Effect<A_2, E_2, R_3>) => Commander.CommandOut<Args_1, A_2, E_2, R_3, Id>);
20
- takeOver: <Args_1 extends any[], A_3, E_3, R_4, const Id extends string>(command: Commander.CommandOut<Args_1, A_3, E_3, R_4, Id>) => (...args: Args_1) => Effect.Effect<A_3, E_3, import("./commander.js").CommandContext | Exclude<Exclude<R_4, import("./commander.js").CommandContext>, import("effect/Tracer").ParentSpan>>;
21
- confirmOrInterrupt: (message?: string | undefined) => Effect.Effect<void, never, import("./commander.js").CommandContext>;
22
- confirm: (message?: string | undefined) => Effect.Effect<boolean, never, import("./commander.js").CommandContext>;
23
- updateAction: <Args_1 extends Array<unknown>>(update: (currentActionId: string, ...args: Args_1) => string) => <A_4, E_4, R_5>(_: Effect.Effect<A_4, E_4, R_5>, ...input: Args_1) => Effect.Effect<A_4, E_4, import("./commander.js").CommandContext | R_5>;
24
- defaultFailureMessageHandler: <E_5, Args_1 extends Array<unknown>, AME, AMR>(actionMaker: string | ((o: import("effect/Option").Option<E_5>, ...args: Args_1) => string) | ((o: import("effect/Option").Option<E_5>, ...args: Args_1) => Effect.Effect<string, AME, AMR>), errorRenderer?: ((e: E_5, action: string, ...args: Args_1) => string | undefined) | undefined) => (o: import("effect/Option").Option<E_5>, ...args: Args_1) => Effect.Effect<string | {
25
- level: "warn";
26
- message: string;
27
- }, AME, AMR>;
28
- renderError: <E_5, Args_2 extends readonly any[]>(action: string, errorRenderer?: ((e: E_5, action: string, ...args: Args_2) => string | undefined) | undefined) => (e: E_5, ...args: Args_2) => string;
29
- withDefaultToast: <A_4, E_5, R_6, Args_3 extends Array<unknown>>(options?: {
30
- errorRenderer?: (e: E_5, action: string, ...args: Args_3) => string | undefined;
31
- onWaiting?: string | ((action: string, ...args: Args_3) => string | null | undefined) | null | undefined;
32
- onSuccess?: string | ((a: A_4, action: string, ...args: Args_3) => string | null | undefined) | null | undefined;
33
- } | undefined) => (self: Effect.Effect<A_4, E_5, R_6>, ...args: Args_3) => Effect.Effect<A_4, E_5, import("./commander.js").CommandContext | R_6>;
30
+ }) => Commander.CommandContextLocal<Id> & (<Args_4 extends Array<unknown>, A_2, E_4, R_5 extends import("./commander.js").CommandContext | R>(handler: (ctx: Effect.fn.Gen & Effect.fn.NonGen & Commander.CommandContextLocal<Id> & {
31
+ mutate: (...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>;
32
+ }) => (...args: Args_4) => Effect.Effect<A_2, E_4, R_5>) => Commander.CommandOut<Args_4, A_2, E_4, R_5, Id>);
34
33
  _tag: "Commander";
35
34
  }, never, Commander | R>;
36
35
  //# sourceMappingURL=makeUseCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../../src/experimental/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,eAAO,MAAM,cAAc,GAA+B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAWzD,CAAA"}
1
+ {"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../../src/experimental/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAA;AAE3D,eAAO,MAAM,cAAc,GAA+B,CAAC;;;kFAaim4B,GAAI,2BAA+B,CAAC,EAAC,CAAE,EAAC,GAAE,EAAE,2BAAyB,EAAC,cAAe;+IAAxyE,GAAI,mEAAmD,GAAI;;;;;;qBAA+oF,CAAC;iBAAwC,CAAC,gDAA+C,GAAI;iBAAyD,CAAC,sDAAqD,GAAI;WAA0D,gCAAiC,EAAC,eAAkB;;;;;;;;;;;;;;;;;;wBAD/85B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect-app";
2
- import { Commander } from "./commander.js";
2
+ import { Commander, CommanderStatic } from "./commander.js";
3
3
  export const makeUseCommand = Effect.fnUntraced(function* () {
4
4
  const cmndr = yield* Commander;
5
5
  const runtime = yield* Effect.runtime();
@@ -8,7 +8,8 @@ export const makeUseCommand = Effect.fnUntraced(function* () {
8
8
  alt: cmndr.alt(runtime),
9
9
  fn: cmndr.fn(runtime),
10
10
  wrap: cmndr.wrap(runtime),
11
- alt2: cmndr.alt2(runtime)
11
+ alt2: cmndr.alt2(runtime),
12
+ ...CommanderStatic
12
13
  };
13
14
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVVzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwZXJpbWVudGFsL21ha2VVc2VDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDOUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBSyxDQUFBO0lBRTFDLE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDdkIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ3JCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7S0FDMUIsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBIn0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVVzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwZXJpbWVudGFsL21ha2VVc2VDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUssQ0FBQTtJQUUxQyxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUNyQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLEdBQUcsZUFBZTtLQUNuQixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEifQ==