effect-lens 0.2.1 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,17 +2,15 @@
2
2
 
3
3
  A Lens type for [Effect](https://effect.website/) to easily manage nested state.
4
4
 
5
- This version is for Effect v3. For Effect v4, use version 2.X.X-beta.X.
6
-
7
5
  ## Install
8
6
  ```
9
- npm install effect-lens
10
- yarn add effect-lens
11
- bun add effect-lens
7
+ npm install effect-lens@beta effect@4.0.0-beta.85
8
+ yarn add effect-lens@beta effect@4.0.0-beta.85
9
+ bun add effect-lens@beta effect@4.0.0-beta.85
12
10
  ```
13
11
 
14
12
  ## Peer dependencies
15
- - `effect` 3.21+
13
+ - `effect` 4.0.0-beta.85
16
14
 
17
15
 
18
16
  ## Quickstart
@@ -51,7 +49,9 @@ const lens = Lens.fromSubscriptionRef(ref)
51
49
 
52
50
  const value = yield* Lens.get(lens)
53
51
  yield* Effect.forkScoped(Stream.runForEach(lens.changes, Console.log))
54
- yield* Lens.update(lens, Array.replace(1, 1664))
52
+ yield* Lens.updateEffect(lens, values =>
53
+ Effect.fromOption(Array.replace(values, 1, 1664))
54
+ )
55
55
  ```
56
56
 
57
57
  Currently available:
@@ -72,7 +72,7 @@ You can get pretty creative! Here's an example of a Lens that points to a specif
72
72
  const lens = Effect.all([
73
73
  KeyValueStore.KeyValueStore,
74
74
  Effect.succeed("someKey"),
75
- Effect.makeSemaphore(1),
75
+ Semaphore.make(1),
76
76
  ]).pipe(
77
77
  Effect.map(([kv, key, semaphore]) => Lens.make({
78
78
  get: kv.get(key),
@@ -137,19 +137,19 @@ const ref = yield* SubscriptionRef.make<{
137
137
  readonly users: readonly User[]
138
138
  }>({
139
139
  users: [
140
- { name: "Jean Dupont", age: yield* DateTime.make("03/25/1969") },
141
- { name: "Juan Joya Borja", age: yield* DateTime.make("04/05/1956") },
142
- { name: "Benzemonstre", age: yield* DateTime.make("06/12/2000") },
140
+ { name: "Jean Dupont", age: yield* Effect.fromOption(DateTime.make("03/25/1969")) },
141
+ { name: "Juan Joya Borja", age: yield* Effect.fromOption(DateTime.make("04/05/1956")) },
142
+ { name: "Benzemonstre", age: yield* Effect.fromOption(DateTime.make("06/12/2000")) },
143
143
  ]
144
144
  })
145
145
 
146
- // \/ Lens<User, NoSuchElementException, NoSuchElementException, never, never>
146
+ // \/ Lens<User, NoSuchElementError, NoSuchElementError, never, never>
147
147
  const jeanDupontLens = ref.pipe(
148
148
  Lens.fromSubscriptionRef, // Creates a lens that proxies the ref
149
149
  Lens.focusObjectOn("users"), // Creates a focused lens that points to the users field
150
150
  Lens.focusArrayAt(0), // Creates a focused lens that points to the first entry of the user array
151
151
  )
152
- // Reading or writing from this lens can fail with NoSuchElementException
152
+ // Reading or writing from this lens can fail with NoSuchElementError
153
153
  // This is because of Lens.focusArrayAt(0), as reading and writing to an array is an unsafe operation
154
154
 
155
155
  const jeanDupont = yield* Lens.get(jeanDupontLens)
@@ -157,7 +157,7 @@ const jeanDupont = yield* Lens.get(jeanDupontLens)
157
157
  yield* Lens.set(
158
158
  // You can focus even further down
159
159
  Lens.focusObjectOn(jeanDupontLens, "age"),
160
- yield* DateTime.make("03/25/1970"),
160
+ yield* Effect.fromOption(DateTime.make("03/25/1970")),
161
161
  )
162
162
  // Mutations with the parent state are performed immutably by default
163
163
  // unless you use a specific mutable transform such as 'focusObjectOnWritable'
@@ -173,33 +173,33 @@ Currently available:
173
173
  | `focusTupleAt` | Focuses to an indexed entry of a readonly tuple. Replaces the parent tuple immutably when writing to the focused index | Immutable | |
174
174
  | `focusMutableTupleAt` | Focuses to an indexed entry of a mutable tuple. Mutates the parent tuple in place at the focused index | Mutable | Type-safe: will not allow you to mutate `readonly` tuples |
175
175
  | `focusChunkAt` | Focuses to an indexed entry of a `Chunk`. Replaces the parent `Chunk` immutably when writing to the focused element | Immutable | |
176
- | `focusOption` | Focuses to the value inside an `Option`. Wraps writes back into `Option.some` | Immutable | Reading or writing fails with `NoSuchElementException` when the parent option is `None` |
176
+ | `focusOption` | Focuses to the value inside an `Option`. Wraps writes back into `Option.some` | Immutable | Reading or writing fails with `NoSuchElementError` when the parent option is `None` |
177
177
 
178
178
  #### Manually
179
179
  You can create focused Lenses by composing them manually using `map`, `mapEffect` and `unwrap`:
180
180
  ```typescript
181
181
  const ref = yield* SubscriptionRef.make<readonly User[]>([
182
- { name: "Jean Dupont", age: yield* DateTime.make("03/25/1969") },
183
- { name: "Juan Joya Borja", age: yield* DateTime.make("04/05/1956") },
184
- { name: "Benzemonstre", age: yield* DateTime.make("06/12/2000") },
182
+ { name: "Jean Dupont", age: yield* Effect.fromOption(DateTime.make("03/25/1969")) },
183
+ { name: "Juan Joya Borja", age: yield* Effect.fromOption(DateTime.make("04/05/1956")) },
184
+ { name: "Benzemonstre", age: yield* Effect.fromOption(DateTime.make("06/12/2000")) },
185
185
  ])
186
186
 
187
- // \/ Lens<User, NoSuchElementException, NoSuchElementException, never, never>
187
+ // \/ Lens<User, NoSuchElementError, NoSuchElementError, never, never>
188
188
  const benzemonstreLens = ref.pipe(
189
189
  Lens.fromSubscriptionRef,
190
190
 
191
191
  // Manually focus
192
192
  Lens.mapEffect(
193
193
  // Getter:
194
- Array.get(2),
194
+ a => Effect.fromOption(Array.get(a, 2)),
195
195
  // Setter:
196
- (a, b) => Array.replaceOption(a, 2, b),
196
+ (a, b) => Effect.fromOption(Array.replace(a, 2, b)),
197
197
  // ^ The current Lens value (readonly User[])
198
198
  // ^ The new focused value to push (User)
199
199
  ),
200
200
  )
201
- // Both Array.get and Array.replaceOption return an Option
202
- // When evaluated by the lens, Option<A> becomes Effect<A, NoSuchElementException>
201
+ // Both Array.get and Array.replace return an Option, which Effect.fromOption
202
+ // converts into Effect<A, NoSuchElementError>
203
203
  // As you can see, this is automatically tracked by the Lens type
204
204
  ```
205
205
 
@@ -242,7 +242,7 @@ const nameLens = lens.pipe(
242
242
 
243
243
  ### Subscribable
244
244
 
245
- Lens implements both Effect's `Subscribable` and `Readable`, which you can use as a constraint to allow some parts of your app to only read and subscribe to the Lenses you provide them:
245
+ Effect 4 no longer provides `Subscribable` and `Readable`. This library provides its own `Subscribable` interface, which you can use as a constraint to allow some parts of your app to only read and subscribe to the Lenses you provide them:
246
246
  ```typescript
247
247
  const ref = yield* SubscriptionRef.make<{
248
248
  readonly users: readonly User[]
@@ -265,13 +265,13 @@ yield* someFunctionThatShouldOnlyHaveReadonlyAccessToTheState(lens)
265
265
  ```
266
266
 
267
267
  #### Focusing
268
- This library re-exports Effect's `Subscribable` module and adds error transforms and recovery (`catchAll`, `catchAllCause`, `orElse`, `orElseSucceed`, and `retry`), plus transforms to narrow the focus of `Subscribable`'s, same as Lenses:
268
+ This library provides a `Subscribable` module with value and error transforms, recovery (`catch`, `catchCause`, `orElse`, `orElseSucceed`, and `retry`), and transforms to narrow the focus of `Subscribable`'s, same as Lenses:
269
269
  ```typescript
270
270
  import { Subscribable } from "effect-lens"
271
271
 
272
272
  declare const sub: Subscribable.Subscribable<readonly { name: string }[], never, never>
273
273
 
274
- // \/ Subscribable.Subscribable<string, NoSuchElementException, never>
274
+ // \/ Subscribable.Subscribable<string, NoSuchElementError, never>
275
275
  const nameSub = sub.pipe(
276
276
  Subscribable.focusArrayAt(1),
277
277
  Subscribable.focusObjectOn("name"),
@@ -288,11 +288,3 @@ Currently available:
288
288
  | `focusChunkAt` | Focuses to an indexed entry of a `Chunk` |
289
289
  | `focusChunkSize` | Focuses to the size of a `Chunk` |
290
290
  | `focusIterableSize` | Focuses to the size of an iterable |
291
-
292
-
293
- ## Todo
294
-
295
- This library is already ready to use! However, there is always more to do...
296
- - Provide an API reference
297
- - Add new adapters for various data source types
298
- - Add new focus transforms
package/dist/Lens.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { Chunk, type Context, Effect, Option, Pipeable, PubSub, Readable, Ref, Stream, type SubscriptionRef, type SynchronizedRef } from "effect";
2
- import type { NoSuchElementException } from "effect/Cause";
1
+ import { type Cause, Chunk, type Context, Effect, Option, Pipeable, Ref, Semaphore, Stream, SubscriptionRef, SynchronizedRef } from "effect";
3
2
  import * as Subscribable from "./Subscribable.js";
4
3
  export declare const LensTypeId: unique symbol;
5
4
  export type LensTypeId = typeof LensTypeId;
@@ -13,6 +12,7 @@ export type LensTypeId = typeof LensTypeId;
13
12
  export interface Lens<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> extends Subscribable.Subscribable<A, ER, RR> {
14
13
  readonly [LensTypeId]: LensTypeId;
15
14
  readonly modifyEffect: <B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>) => Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
15
+ readonly modifySomeEffect: <B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E1, R1>) => Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
16
16
  }
17
17
  /**
18
18
  * Checks whether a value is a `Lens`.
@@ -29,10 +29,8 @@ export declare namespace LensImpl {
29
29
  <A1, E1, R1>(self: Effect.Effect<A1, E1, R1>): Effect.Effect<A1, E1, R1>;
30
30
  }
31
31
  }
32
- declare const LensImpl_base: Pipeable.PipeableConstructor;
33
- export declare abstract class LensImpl<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> extends LensImpl_base implements Lens<A, ER, EW, RR, RW> {
34
- readonly [Readable.TypeId]: Readable.TypeId;
35
- readonly [Subscribable.TypeId]: Subscribable.TypeId;
32
+ export declare abstract class LensImpl<in out A, in out ER = never, in out EW = never, in out RR = never, in out RW = never> extends Pipeable.Class implements Lens<A, ER, EW, RR, RW> {
33
+ readonly [Subscribable.SubscribableTypeId]: Subscribable.SubscribableTypeId;
36
34
  readonly [LensTypeId]: LensTypeId;
37
35
  readonly [LensImplTypeId]: LensImplTypeId;
38
36
  abstract readonly resolve: Effect.Effect<LensImpl.Resolved<A, EW, RW>, ER, RR>;
@@ -40,6 +38,7 @@ export declare abstract class LensImpl<in out A, in out ER = never, in out EW =
40
38
  abstract readonly lock: Effect.Effect<LensImpl.Lock, EW, RW>;
41
39
  get get(): Effect.Effect<A, ER, RR>;
42
40
  modifyEffect<B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, A], E1, R1>): Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
41
+ modifySomeEffect<B, E1 = never, R1 = never>(f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E1, R1>): Effect.Effect<B, ER | EW | E1, RR | RW | R1>;
43
42
  }
44
43
  export declare const isLensImpl: (u: unknown) => u is LensImpl<unknown, unknown, unknown, unknown, unknown>;
45
44
  export declare const asLensImpl: <A, ER, EW, RR, RW>(lens: Lens<A, ER, EW, RR, RW>) => LensImpl<A, ER, EW, RR, RW>;
@@ -67,7 +66,7 @@ export declare class UnwrappedLensImpl<in out A, in out ER, in out EW, in out RR
67
66
  readonly effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>;
68
67
  constructor(effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>);
69
68
  get resolve(): Effect.Effect<LensImpl.Resolved<A, EW | E1, RW | R1>, ER | E1, RR | R1>;
70
- get changes(): Stream.Stream<A, ER | E1, RR | R1>;
69
+ get changes(): Stream.Stream<A, ER | E1, RR | Exclude<R1, import("effect/Scope").Scope>>;
71
70
  get lock(): Effect.Effect<LensImpl.Lock, EW | E1, RW | R1>;
72
71
  }
73
72
  /**
@@ -76,8 +75,8 @@ export declare class UnwrappedLensImpl<in out A, in out ER, in out EW, in out RR
76
75
  export declare const unwrap: <A, ER, EW, RR, RW, E1, R1>(effect: Effect.Effect<Lens<A, ER, EW, RR, RW>, E1, R1>) => Lens<A, ER | E1, EW | E1, RR | R1, RW | R1>;
77
76
  export declare class RefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
78
77
  readonly ref: Ref.Ref<A>;
79
- readonly semaphore: Effect.Semaphore;
80
- constructor(ref: Ref.Ref<A>, semaphore: Effect.Semaphore);
78
+ readonly semaphore: Semaphore.Semaphore;
79
+ constructor(ref: Ref.Ref<A>, semaphore: Semaphore.Semaphore);
81
80
  get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
82
81
  get changes(): Stream.Stream<A, never, never>;
83
82
  get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
@@ -89,18 +88,12 @@ export declare class RefLensImpl<in out A> extends LensImpl<A, never, never, nev
89
88
  * This means its `changes` stream will only emit the current value once when evaluated and nothing else.
90
89
  */
91
90
  export declare const fromRef: <A>(ref: Ref.Ref<A>) => Effect.Effect<Lens<A, never, never, never, never>, never, never>;
92
- export declare namespace SynchronizedRefLensImpl {
93
- interface SynchronizedRefWithInternals<in out A> extends SynchronizedRef.SynchronizedRef<A> {
94
- readonly ref: Ref.Ref<A>;
95
- readonly withLock: LensImpl.Lock;
96
- }
97
- }
98
91
  export declare class SynchronizedRefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
99
- readonly ref: SynchronizedRefLensImpl.SynchronizedRefWithInternals<A>;
100
- constructor(ref: SynchronizedRefLensImpl.SynchronizedRefWithInternals<A>);
92
+ readonly ref: SynchronizedRef.SynchronizedRef<A>;
93
+ constructor(ref: SynchronizedRef.SynchronizedRef<A>);
101
94
  get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
102
95
  get changes(): Stream.Stream<A, never, never>;
103
- get lock(): Effect.Effect<LensImpl.Lock, never, never>;
96
+ get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
104
97
  }
105
98
  /**
106
99
  * Creates a `Lens` that proxies a `SynchronizedRef`.
@@ -109,16 +102,9 @@ export declare class SynchronizedRefLensImpl<in out A> extends LensImpl<A, never
109
102
  * This means its `changes` stream will only emit the current value once when evaluated and nothing else.
110
103
  */
111
104
  export declare const fromSynchronizedRef: <A>(ref: SynchronizedRef.SynchronizedRef<A>) => Lens<A, never, never, never, never>;
112
- export declare namespace SubscriptionRefLensImpl {
113
- interface SubscriptionRefWithInternals<in out A> extends SubscriptionRef.SubscriptionRef<A> {
114
- readonly ref: Ref.Ref<A>;
115
- readonly pubsub: PubSub.PubSub<A>;
116
- readonly semaphore: Effect.Semaphore;
117
- }
118
- }
119
105
  export declare class SubscriptionRefLensImpl<in out A> extends LensImpl<A, never, never, never, never> {
120
- readonly ref: SubscriptionRefLensImpl.SubscriptionRefWithInternals<A>;
121
- constructor(ref: SubscriptionRefLensImpl.SubscriptionRefWithInternals<A>);
106
+ readonly ref: SubscriptionRef.SubscriptionRef<A>;
107
+ constructor(ref: SubscriptionRef.SubscriptionRef<A>);
122
108
  get resolve(): Effect.Effect<LensImpl.Resolved<A>, never, never>;
123
109
  get changes(): Stream.Stream<A, never, never>;
124
110
  get lock(): Effect.Effect<(<A_1, E, R>(self: Effect.Effect<A_1, E, R>) => Effect.Effect<A_1, E, R>), never, never>;
@@ -261,11 +247,11 @@ export declare const provideContext: {
261
247
  * Provides a single service to a `Lens`, removing it from both the read and write environments.
262
248
  *
263
249
  * This is the `Lens` equivalent of `Effect.provideService`: use it when a lens requires one
264
- * `Context.Tag` and you already have the concrete service value.
250
+ * `Context.Key` and you already have the concrete service value.
265
251
  */
266
252
  export declare const provideService: {
267
- <I, S>(tag: Context.Tag<I, S>, service: NoInfer<S>): <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
268
- <A, ER, EW, RR, RW, I, S>(self: Lens<A, ER, EW, RR, RW>, tag: Context.Tag<I, S>, service: NoInfer<S>): Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
253
+ <I, S>(tag: Context.Key<I, S>, service: NoInfer<S>): <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
254
+ <A, ER, EW, RR, RW, I, S>(self: Lens<A, ER, EW, RR, RW>, tag: Context.Key<I, S>, service: NoInfer<S>): Lens<A, ER, EW, Exclude<RR, I>, Exclude<RW, I>>;
269
255
  };
270
256
  /**
271
257
  * Narrows the focus to a field of an object. Replaces the object in an immutable fashion when written to.
@@ -295,15 +281,15 @@ export declare const focusObjectOnWritable: {
295
281
  * Narrows the focus to an indexed element of an array. Replaces the array in an immutable fashion when written to.
296
282
  */
297
283
  export declare const focusArrayAt: {
298
- <A extends readonly any[], ER, EW, RR, RW>(index: number): (self: Lens<A, ER, EW, RR, RW>) => Lens<A[number], ER | NoSuchElementException, EW | NoSuchElementException, RR, RW>;
299
- <A extends readonly any[], ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, index: number): Lens<A[number], ER | NoSuchElementException, EW | NoSuchElementException, RR, RW>;
284
+ <A extends readonly any[], ER, EW, RR, RW>(index: number): (self: Lens<A, ER, EW, RR, RW>) => Lens<A[number], ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
285
+ <A extends readonly any[], ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>, index: number): Lens<A[number], ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
300
286
  };
301
287
  /**
302
288
  * Narrows the focus to an indexed element of a mutable array. Mutates the array in place when written to.
303
289
  */
304
290
  export declare const focusMutableArrayAt: {
305
- <A, ER, EW, RR, RW>(index: number): (self: Lens<A[], ER, EW, RR, RW>) => Lens<A, ER | NoSuchElementException, EW | NoSuchElementException, RR, RW>;
306
- <A, ER, EW, RR, RW>(self: Lens<A[], ER, EW, RR, RW>, index: number): Lens<A, ER | NoSuchElementException, EW | NoSuchElementException, RR, RW>;
291
+ <A, ER, EW, RR, RW>(index: number): (self: Lens<A[], ER, EW, RR, RW>) => Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
292
+ <A, ER, EW, RR, RW>(self: Lens<A[], ER, EW, RR, RW>, index: number): Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
307
293
  };
308
294
  /**
309
295
  * Narrows the focus to an indexed element of a readonly tuple. Replaces the tuple in an immutable fashion when written to.
@@ -323,17 +309,17 @@ export declare const focusMutableTupleAt: {
323
309
  * Narrows the focus to an indexed element of `Chunk`. Replaces the `Chunk` in an immutable fashion when written to.
324
310
  */
325
311
  export declare const focusChunkAt: {
326
- <A, ER, EW, RR, RW>(index: number): (self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>) => Lens<A, ER | NoSuchElementException, EW, RR, RW>;
327
- <A, ER, EW, RR, RW>(self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>, index: number): Lens<A, ER | NoSuchElementException, EW, RR, RW>;
312
+ <A, ER, EW, RR, RW>(index: number): (self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>) => Lens<A, ER | Cause.NoSuchElementError, EW, RR, RW>;
313
+ <A, ER, EW, RR, RW>(self: Lens<Chunk.Chunk<A>, ER, EW, RR, RW>, index: number): Lens<A, ER | Cause.NoSuchElementError, EW, RR, RW>;
328
314
  };
329
315
  /**
330
316
  * Narrows the focus to the value inside an `Option`.
331
317
  *
332
- * Reading or writing through this lens fails with `NoSuchElementException` when the parent option is `None`.
318
+ * Reading or writing through this lens fails with `NoSuchElementError` when the parent option is `None`.
333
319
  * Writing wraps the new focused value back into `Option.some`.
334
320
  */
335
321
  export declare const focusOption: {
336
- <A, ER, EW, RR, RW>(self: Lens<Option.Option<A>, ER, EW, RR, RW>): Lens<A, ER | NoSuchElementException, EW | NoSuchElementException, RR, RW>;
322
+ <A, ER, EW, RR, RW>(self: Lens<Option.Option<A>, ER, EW, RR, RW>): Lens<A, ER | Cause.NoSuchElementError, EW | Cause.NoSuchElementError, RR, RW>;
337
323
  };
338
324
  /**
339
325
  * Reads the current value from a `Lens`.
@@ -354,18 +340,18 @@ export declare const modifyEffect: {
354
340
  <A, ER, EW, RR, RW, B, E, R>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<readonly [B, A], E, R>): Effect.Effect<B, ER | EW | E, RR | RW | R>;
355
341
  };
356
342
  /**
357
- * Conditionally modifies the value of a `Lens`, returning `fallback` when the function returns `None`.
343
+ * Conditionally modifies a `Lens` without committing when the next value is `None`.
358
344
  */
359
345
  export declare const modifySome: {
360
- <B, A>(fallback: B, pf: (a: NoInfer<A>) => Option.Option<readonly [B, NoInfer<A>]>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW, RR | RW>;
361
- <A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, fallback: B, pf: (a: A) => Option.Option<readonly [B, A]>): Effect.Effect<B, ER | EW, RR | RW>;
346
+ <B, A>(f: (a: NoInfer<A>) => readonly [B, Option.Option<NoInfer<A>>]): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW, RR | RW>;
347
+ <A, ER, EW, RR, RW, B>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => readonly [B, Option.Option<A>]): Effect.Effect<B, ER | EW, RR | RW>;
362
348
  };
363
349
  /**
364
- * Conditionally modifies the value of a `Lens` with an effect, returning `fallback` when the function returns `None`.
350
+ * Conditionally modifies a `Lens` with an effect without committing when the next value is `None`.
365
351
  */
366
352
  export declare const modifySomeEffect: {
367
- <B, A, E = never, R = never>(fallback: B, pf: (a: NoInfer<A>) => Option.Option<Effect.Effect<readonly [B, NoInfer<A>], E, R>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW | E, RR | RW | R>;
368
- <A, ER, EW, RR, RW, B, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, fallback: B, pf: (a: A) => Option.Option<Effect.Effect<readonly [B, A], E, R>>): Effect.Effect<B, ER | EW | E, RR | RW | R>;
353
+ <B, A, E = never, R = never>(f: (a: NoInfer<A>) => Effect.Effect<readonly [B, Option.Option<NoInfer<A>>], E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<B, ER | EW | E, RR | RW | R>;
354
+ <A, ER, EW, RR, RW, B, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, f: (a: A) => Effect.Effect<readonly [B, Option.Option<A>], E, R>): Effect.Effect<B, ER | EW | E, RR | RW | R>;
369
355
  };
370
356
  /**
371
357
  * Sets the value of a `Lens`.
@@ -420,8 +406,8 @@ export declare const getAndUpdateSome: {
420
406
  * Conditionally updates a `Lens` with an effect and returns the previous value.
421
407
  */
422
408
  export declare const getAndUpdateSomeEffect: {
423
- <A, E = never, R = never>(pf: (a: NoInfer<A>) => Option.Option<Effect.Effect<NoInfer<A>, E, R>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
424
- <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
409
+ <A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
410
+ <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
425
411
  };
426
412
  /**
427
413
  * Sets the value of a `Lens` and returns the new value.
@@ -455,8 +441,8 @@ export declare const updateSome: {
455
441
  * Conditionally updates the value of a `Lens` with an effect.
456
442
  */
457
443
  export declare const updateSomeEffect: {
458
- <A, E = never, R = never>(pf: (a: NoInfer<A>) => Option.Option<Effect.Effect<NoInfer<A>, E, R>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW | E, RR | RW | R>;
459
- <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>): Effect.Effect<void, ER | EW | E, RR | RW | R>;
444
+ <A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<void, ER | EW | E, RR | RW | R>;
445
+ <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<void, ER | EW | E, RR | RW | R>;
460
446
  };
461
447
  /**
462
448
  * Conditionally updates a `Lens` and returns the resulting value.
@@ -469,7 +455,6 @@ export declare const updateSomeAndGet: {
469
455
  * Conditionally updates a `Lens` with an effect and returns the resulting value.
470
456
  */
471
457
  export declare const updateSomeAndGetEffect: {
472
- <A, E = never, R = never>(pf: (a: NoInfer<A>) => Option.Option<Effect.Effect<NoInfer<A>, E, R>>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
473
- <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Option.Option<Effect.Effect<A, E, R>>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
458
+ <A, E = never, R = never>(pf: (a: NoInfer<A>) => Effect.Effect<Option.Option<NoInfer<A>>, E, R>): <ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>) => Effect.Effect<A, ER | EW | E, RR | RW | R>;
459
+ <A, ER, EW, RR, RW, E = never, R = never>(self: Lens<A, ER, EW, RR, RW>, pf: (a: A) => Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<A, ER | EW | E, RR | RW | R>;
474
460
  };
475
- export {};
package/dist/Lens.js CHANGED
@@ -1,20 +1,25 @@
1
- import { Array, Chunk, Effect, Function, identity, Option, Pipeable, Predicate, PubSub, Readable, Ref, Stream } from "effect";
1
+ import { Array, Chunk, Effect, Function, identity, Option, Pipeable, Predicate, PubSub, Ref, Semaphore, Stream, SubscriptionRef, SynchronizedRef, } from "effect";
2
2
  import * as Subscribable from "./Subscribable.js";
3
- export const LensTypeId = Symbol.for("@effect-fc/Lens/Lens");
3
+ export const LensTypeId = Symbol.for("@effect-fc/Lens/v4/Lens");
4
4
  /**
5
5
  * Checks whether a value is a `Lens`.
6
6
  */
7
7
  export const isLens = (u) => Predicate.hasProperty(u, LensTypeId);
8
- export const LensImplTypeId = Symbol.for("@effect-fc/Lens/LensImpl");
9
- export class LensImpl extends Pipeable.Class() {
10
- [Readable.TypeId] = Readable.TypeId;
11
- [Subscribable.TypeId] = Subscribable.TypeId;
8
+ export const LensImplTypeId = Symbol.for("@effect-fc/Lens/v4/LensImpl");
9
+ export class LensImpl extends Pipeable.Class {
10
+ [Subscribable.SubscribableTypeId] = Subscribable.SubscribableTypeId;
12
11
  [LensTypeId] = LensTypeId;
13
12
  [LensImplTypeId] = LensImplTypeId;
14
13
  get get() { return Effect.map(this.resolve, resolved => resolved.value); }
15
14
  modifyEffect(f) {
16
15
  return Effect.flatMap(this.lock, lock => lock(Effect.flatMap(this.resolve, resolved => Effect.flatMap(f(resolved.value), ([c, next]) => Effect.as(resolved.commit(Effect.succeed(next)), c)))));
17
16
  }
17
+ modifySomeEffect(f) {
18
+ return Effect.flatMap(this.lock, lock => lock(Effect.flatMap(this.resolve, resolved => Effect.flatMap(f(resolved.value), ([result, next]) => Option.match(next, {
19
+ onSome: value => Effect.as(resolved.commit(Effect.succeed(value)), result),
20
+ onNone: () => Effect.succeed(result),
21
+ })))));
22
+ }
18
23
  }
19
24
  export const isLensImpl = (u) => Predicate.hasProperty(u, LensImplTypeId);
20
25
  export const asLensImpl = (lens) => {
@@ -76,7 +81,7 @@ export class RefLensImpl extends LensImpl {
76
81
  }));
77
82
  }
78
83
  get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref), Stream.make)); }
79
- get lock() { return Effect.succeed(this.semaphore.withPermits(1)); }
84
+ get lock() { return Effect.succeed(this.semaphore.withPermit); }
80
85
  }
81
86
  /**
82
87
  * Creates a `Lens` that proxies a `Ref`.
@@ -84,7 +89,7 @@ export class RefLensImpl extends LensImpl {
84
89
  * Note: since `Ref` does not provide any kind of reactivity mechanism, the produced `Lens` will be non-reactive.
85
90
  * This means its `changes` stream will only emit the current value once when evaluated and nothing else.
86
91
  */
87
- export const fromRef = (ref) => Effect.map(Effect.makeSemaphore(1), semaphore => new RefLensImpl(ref, semaphore));
92
+ export const fromRef = (ref) => Effect.map(Semaphore.make(1), semaphore => new RefLensImpl(ref, semaphore));
88
93
  export class SynchronizedRefLensImpl extends LensImpl {
89
94
  ref;
90
95
  constructor(ref) {
@@ -92,13 +97,13 @@ export class SynchronizedRefLensImpl extends LensImpl {
92
97
  this.ref = ref;
93
98
  }
94
99
  get resolve() {
95
- return Effect.map(Ref.get(this.ref.ref), value => ({
100
+ return Effect.map(SynchronizedRef.get(this.ref), value => ({
96
101
  value,
97
- commit: next => Effect.flatMap(next, value => Ref.set(this.ref.ref, value)),
102
+ commit: next => Effect.flatMap(next, value => Ref.set(this.ref.backing, value)),
98
103
  }));
99
104
  }
100
- get changes() { return Stream.unwrap(Effect.map(Ref.get(this.ref.ref), Stream.make)); }
101
- get lock() { return Effect.succeed(this.ref.withLock); }
105
+ get changes() { return Stream.unwrap(Effect.map(SynchronizedRef.get(this.ref), Stream.make)); }
106
+ get lock() { return Effect.succeed(this.ref.semaphore.withPermit); }
102
107
  }
103
108
  /**
104
109
  * Creates a `Lens` that proxies a `SynchronizedRef`.
@@ -114,13 +119,16 @@ export class SubscriptionRefLensImpl extends LensImpl {
114
119
  this.ref = ref;
115
120
  }
116
121
  get resolve() {
117
- return Effect.map(this.ref.get, value => ({
122
+ return Effect.map(SubscriptionRef.get(this.ref), value => ({
118
123
  value,
119
- commit: next => Effect.flatMap(next, value => Effect.zipLeft(Ref.set(this.ref.ref, value), PubSub.publish(this.ref.pubsub, value))),
124
+ commit: next => Effect.flatMap(next, value => Effect.sync(() => {
125
+ this.ref.value = value;
126
+ PubSub.publishUnsafe(this.ref.pubsub, value);
127
+ })),
120
128
  }));
121
129
  }
122
- get changes() { return this.ref.changes; }
123
- get lock() { return Effect.succeed(this.ref.semaphore.withPermits(1)); }
130
+ get changes() { return SubscriptionRef.changes(this.ref); }
131
+ get lock() { return Effect.succeed(this.ref.semaphore.withPermit); }
124
132
  }
125
133
  /**
126
134
  * Creates a `Lens` that proxies a `SubscriptionRef`.
@@ -273,8 +281,8 @@ export const tapError = Function.dual(2, (self, f) => derive(self, {
273
281
  value: resolved.value,
274
282
  commit: next => Effect.flatMap(next, value => Effect.tapError(resolved.commit(Effect.succeed(value)), f)),
275
283
  })),
276
- mapStream: Stream.tapError(f),
277
- mapLock: Effect.tapError(f),
284
+ mapStream: Stream.tapError(e => f(e)),
285
+ mapLock: Effect.tapError(e => f(e)),
278
286
  }));
279
287
  /**
280
288
  * Provides a `Context` to a `Lens`, removing it from both the read and write environments.
@@ -284,14 +292,14 @@ export const provideContext = Function.dual(2, (self, context) => derive(self, {
284
292
  value: resolved.value,
285
293
  commit: next => Effect.provide(resolved.commit(next), context),
286
294
  })),
287
- mapStream: Stream.provideSomeContext(context),
295
+ mapStream: Stream.provideContext(context),
288
296
  mapLock: Effect.provide(context),
289
297
  }));
290
298
  /**
291
299
  * Provides a single service to a `Lens`, removing it from both the read and write environments.
292
300
  *
293
301
  * This is the `Lens` equivalent of `Effect.provideService`: use it when a lens requires one
294
- * `Context.Tag` and you already have the concrete service value.
302
+ * `Context.Key` and you already have the concrete service value.
295
303
  */
296
304
  export const provideService = Function.dual(3, (self, tag, service) => derive(self, {
297
305
  resolve: parent => Effect.map(Effect.provideService(parent, tag, service), resolved => ({
@@ -312,30 +320,30 @@ export const focusObjectOnWritable = Function.dual(2, (self, key) => map(self, a
312
320
  /**
313
321
  * Narrows the focus to an indexed element of an array. Replaces the array in an immutable fashion when written to.
314
322
  */
315
- export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, Array.get(index), (a, b) => Array.replaceOption(a, index, b)));
323
+ export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index)), (a, b) => Effect.fromOption(Array.replace(a, index, b))));
316
324
  /**
317
325
  * Narrows the focus to an indexed element of a mutable array. Mutates the array in place when written to.
318
326
  */
319
- export const focusMutableArrayAt = Function.dual(2, (self, index) => mapEffect(self, Array.get(index), (a, b) => Effect.flatMap(Array.get(a, index), () => Effect.as(Effect.sync(() => { a[index] = b; }), a))));
327
+ export const focusMutableArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index)), (a, b) => Effect.flatMap(Effect.fromOption(Array.get(a, index)), () => Effect.as(Effect.sync(() => { a[index] = b; }), a))));
320
328
  /**
321
329
  * Narrows the focus to an indexed element of a readonly tuple. Replaces the tuple in an immutable fashion when written to.
322
330
  */
323
- export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.unsafeGet(index), (a, b) => Array.replace(a, index, b)));
331
+ export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index), (a, b) => Option.getOrElse(Array.replace(a, index, b), () => a)));
324
332
  /**
325
333
  * Narrows the focus to an indexed element of a mutable tuple. Mutates the tuple in place when written to.
326
334
  */
327
- export const focusMutableTupleAt = Function.dual(2, (self, index) => map(self, Array.unsafeGet(index), (a, b) => { a[index] = b; return a; }));
335
+ export const focusMutableTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index), (a, b) => { a[index] = b; return a; }));
328
336
  /**
329
337
  * Narrows the focus to an indexed element of `Chunk`. Replaces the `Chunk` in an immutable fashion when written to.
330
338
  */
331
- export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, Chunk.get(index), (a, b) => Effect.succeed(Chunk.replace(a, index, b))));
339
+ export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, chunk => Effect.fromOption(Chunk.get(chunk, index)), (chunk, value) => Effect.succeed(Option.getOrElse(Chunk.replace(chunk, index, value), () => chunk))));
332
340
  /**
333
341
  * Narrows the focus to the value inside an `Option`.
334
342
  *
335
- * Reading or writing through this lens fails with `NoSuchElementException` when the parent option is `None`.
343
+ * Reading or writing through this lens fails with `NoSuchElementError` when the parent option is `None`.
336
344
  * Writing wraps the new focused value back into `Option.some`.
337
345
  */
338
- export const focusOption = (self) => mapEffect(self, identity, (a, b) => Effect.map(a, () => Option.some(b)));
346
+ export const focusOption = (self) => mapEffect(self, Effect.fromOption, (option, value) => Effect.as(Effect.fromOption(option), Option.some(value)));
339
347
  /**
340
348
  * Reads the current value from a `Lens`.
341
349
  */
@@ -349,13 +357,13 @@ export const modify = Function.dual(2, (self, f) => self.modifyEffect(a => Effec
349
357
  */
350
358
  export const modifyEffect = Function.dual(2, (self, f) => self.modifyEffect(f));
351
359
  /**
352
- * Conditionally modifies the value of a `Lens`, returning `fallback` when the function returns `None`.
360
+ * Conditionally modifies a `Lens` without committing when the next value is `None`.
353
361
  */
354
- export const modifySome = Function.dual(3, (self, fallback, pf) => self.modifyEffect(a => Effect.succeed(Option.getOrElse(pf(a), () => [fallback, a]))));
362
+ export const modifySome = Function.dual(2, (self, f) => self.modifySomeEffect(a => Effect.succeed(f(a))));
355
363
  /**
356
- * Conditionally modifies the value of a `Lens` with an effect, returning `fallback` when the function returns `None`.
364
+ * Conditionally modifies a `Lens` with an effect without committing when the next value is `None`.
357
365
  */
358
- export const modifySomeEffect = Function.dual(3, (self, fallback, pf) => self.modifyEffect(a => Option.getOrElse(pf(a), () => Effect.succeed([fallback, a]))));
366
+ export const modifySomeEffect = Function.dual(2, (self, f) => self.modifySomeEffect(f));
359
367
  /**
360
368
  * Sets the value of a `Lens`.
361
369
  */
@@ -383,11 +391,11 @@ export const getAndUpdateEffect = Function.dual(2, (self, f) => self.modifyEffec
383
391
  /**
384
392
  * Conditionally updates a `Lens` and returns the previous value.
385
393
  */
386
- export const getAndUpdateSome = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.succeed([a, Option.getOrElse(pf(a), () => a)])));
394
+ export const getAndUpdateSome = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed([a, pf(a)])));
387
395
  /**
388
396
  * Conditionally updates a `Lens` with an effect and returns the previous value.
389
397
  */
390
- export const getAndUpdateSomeEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [a, next])));
398
+ export const getAndUpdateSomeEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => [a, next])));
391
399
  /**
392
400
  * Sets the value of a `Lens` and returns the new value.
393
401
  */
@@ -406,20 +414,23 @@ export const updateAndGetEffect = Function.dual(2, (self, f) => self.modifyEffec
406
414
  /**
407
415
  * Conditionally updates the value of a `Lens`.
408
416
  */
409
- export const updateSome = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.succeed([void 0, Option.getOrElse(pf(a), () => a)])));
417
+ export const updateSome = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed([void 0, pf(a)])));
410
418
  /**
411
419
  * Conditionally updates the value of a `Lens` with an effect.
412
420
  */
413
- export const updateSomeEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [void 0, next])));
421
+ export const updateSomeEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => [void 0, next])));
414
422
  /**
415
423
  * Conditionally updates a `Lens` and returns the resulting value.
416
424
  */
417
- export const updateSomeAndGet = Function.dual(2, (self, pf) => self.modifyEffect(a => {
418
- const next = Option.getOrElse(pf(a), () => a);
419
- return Effect.succeed([next, next]);
420
- }));
425
+ export const updateSomeAndGet = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.succeed(Option.match(pf(a), {
426
+ onNone: () => [a, Option.none()],
427
+ onSome: next => [next, Option.some(next)],
428
+ }))));
421
429
  /**
422
430
  * Conditionally updates a `Lens` with an effect and returns the resulting value.
423
431
  */
424
- export const updateSomeAndGetEffect = Function.dual(2, (self, pf) => self.modifyEffect(a => Effect.map(Option.getOrElse(pf(a), () => Effect.succeed(a)), next => [next, next])));
432
+ export const updateSomeAndGetEffect = Function.dual(2, (self, pf) => self.modifySomeEffect(a => Effect.map(pf(a), next => Option.match(next, {
433
+ onNone: () => [a, Option.none()],
434
+ onSome: value => [value, Option.some(value)],
435
+ }))));
425
436
  //# sourceMappingURL=Lens.js.map
package/dist/Lens.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Lens.js","sourceRoot":"","sources":["../src/Lens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAA8C,MAAM,QAAQ,CAAA;AAEvL,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAGjD,MAAM,CAAC,MAAM,UAAU,GAAkB,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAmB3E;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAU,EAA0D,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAGlI,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AAgBnF,MAAM,OAAgB,QACtB,SAAQ,QAAQ,CAAC,KAAK,EAAE;IACX,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAoB,QAAQ,CAAC,MAAM,CAAA;IACpD,CAAC,YAAY,CAAC,MAAM,CAAC,GAAwB,YAAY,CAAC,MAAM,CAAA;IAChE,CAAC,UAAU,CAAC,GAAe,UAAU,CAAA;IACrC,CAAC,cAAc,CAAC,GAAmB,cAAc,CAAA;IAM1D,IAAI,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IAEzE,YAAY,CACR,CAAmD;QAEnD,OAAO,MAAM,CAAC,OAAO,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CACvB,IAAI,CAAC,OAAO,EACZ,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACrE,CACJ,CAAC,CACL,CAAA;IACL,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAU,EAA8D,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AAE9I,MAAM,CAAC,MAAM,UAAU,GAAG,CACtB,IAA6B,EACF,EAAE;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,OAAO,IAAmC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,IAA6B,EACO,EAAE,CAAC,IAAI,CAAA;AAY/C,MAAM,OAAO,YACb,SAAQ,QAA2B;IAElB;IADb,YACa,MAA8C;QAEvD,KAAK,EAAE,CAAA;QAFE,WAAM,GAAN,MAAM,CAAwC;IAG3D,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,IAAI,CAAC,MAAM,CAAC,GAAG,EACf,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3E,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAChB,MAA8C,EACvB,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;AAGtD,MAAM,OAAO,iBACb,SAAQ,QAA+C;IAEtC;IADb,YACa,MAAsD;QAE/D,KAAK,EAAE,CAAA;QAFE,WAAM,GAAN,MAAM,CAAgD;IAGnE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EACvD,QAAQ,CAAC,EAAE,CAAC,CAAC;YACT,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;SACxC,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC;IAC/E,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAClB,MAAsD,EACX,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAG/E,MAAM,OAAO,WACb,SAAQ,QAAuC;IAE9B;IACA;IAFb,YACa,GAAe,EACf,SAA2B;QAEpC,KAAK,EAAE,CAAA;QAHE,QAAG,GAAH,GAAG,CAAY;QACf,cAAS,GAAT,SAAS,CAAkB;IAGxC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EACjB,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CACpC;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC;IAClF,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;CACtE;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,GAAe,EACiD,EAAE,CAAC,MAAM,CAAC,GAAG,CAC7E,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EACvB,SAAS,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAC/C,CAAA;AAWD,MAAM,OAAO,uBACb,SAAQ,QAAuC;IAE9B;IADb,YACa,GAA4D;QAErE,KAAK,EAAE,CAAA;QAFE,QAAG,GAAH,GAAG,CAAyD;IAGzE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EACrB,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CACxC;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC;IACtF,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,GAAuC,EACJ,EAAE,CAAC,IAAI,uBAAuB,CAAC,GAA8D,CAAC,CAAA;AAYrI,MAAM,OAAO,uBACb,SAAQ,QAAuC;IAE9B;IADb,YACa,GAA4D;QAErE,KAAK,EAAE,CAAA;QAFE,QAAG,GAAH,GAAG,CAAyD;IAGzE,CAAC;IAED,IAAI,OAAO;QACP,OAAO,MAAM,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,GAAG,EACZ,KAAK,CAAC,EAAE,CAAC,CAAC;YACN,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CACzC,CACJ;SACJ,CAAC,CACL,CAAA;IACL,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAA,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,GAAuC,EACJ,EAAE,CAAC,IAAI,uBAAuB,CAAC,GAA8D,CAAC,CAAA;AAsBrI,MAAM,OAAO,eAYb,SAAQ,QAA2B;IAElB;IACA;IAFb,YACa,MAAuC,EACvC,MAAwE;QAEjF,KAAK,EAAE,CAAA;QAHE,WAAM,GAAN,MAAM,CAAiC;QACvC,WAAM,GAAN,MAAM,CAAkE;IAGrF,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IACnE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAQf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,MAAwE,EAC7C,EAAE,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAGhF;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAUZ,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAyB,EACzB,GAAwC,EACjB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,EACN,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACjF,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAUlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAoD,EACpD,GAAmE,EAChB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACnE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC7B,MAAM,EACN,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAClB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnB,KAAK,CAAC,EAAE,CAAC,CAAC;QACN,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACrF,CAAC,CACL,CACJ;IACD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;IAChC,OAAO,EAAE,CAAA,QAA4D,CAAA;CACxE,CAAC,CAAC,CAAA;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAUlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA4C,EAC5C,GAAyB,EACzB,GAAwC,EACF,EAAE,CAAC,GAAG,CAC5C,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;CAC9B,CAAC,CACL,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAUxB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA4C,EAC5C,GAAoD,EACpD,GAAmE,EACD,EAAE,CAAC,SAAS,CAC9E,IAAI,EACJ,MAAM,CAAC,KAAK,CAAC;IACT,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;IAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;CAC9C,CAAC,EACF,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;QAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;CAC9C,CAAC,CACL,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAQlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAwH,EACjG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAA6B,EACN,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAA6B,EACN,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CAAC;IACH,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAQjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAkC,EACX,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAmD,EAClB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ;CACpB,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAmD,EAClB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CAAC;IACH,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAQjB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,CAAwD,EACb,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IAC3D,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1B,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CACtE;KACJ,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC9B,CAAC,CAAC,CAAA;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAQvB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,OAA4B,EACqB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IACjE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;KACjE,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;CACnC,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAUvB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAsB,EACtB,OAAmB,EAC4B,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;IAC/D,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;KAC7E,CAAC,CACL;IACD,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;CAC/C,CAAC,CAAC,CAAA;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAQtB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAM,EACoB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAChF,CAAC,CAAA;AAeF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAQ9B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,GAAM,EACoB,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAa,EACoE,EAAE,CAAC,SAAS,CAC7F,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAQ,CACpD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAQ5B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA+B,EAC/B,KAAa,EAC4D,EAAE,CAAC,SAAS,CACrF,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CACpB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EACnB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1D,CACJ,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAQ,EACkB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAQ,CAC9C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAQ5B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA6B,EAC7B,KAAQ,EACkB,EAAE,CAAC,GAAG,CAChC,IAAI,EACJ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CACvC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAQrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CACjB,IAA0C,EAC1C,KAAa,EACmC,EAAE,CAAC,SAAS,CAC5D,IAAI,EACJ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CACxD,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAIpB,CACA,IAA4C,EAC6B,EAAE,CAAC,SAAS,CACrF,IAAI,EACJ,QAAQ,EACR,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChD,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAoB,IAA6B,EAA4B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAA;AAE3G;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAGf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAuB,IAA6B,EAAE,CAA4B,EAAE,EAAE,CACvG,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAChE,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA6B,IAA6B,EAAE,CAAiD,EAAE,EAAE,CAClI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CACvB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAGnB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAuB,IAA6B,EAAE,QAAW,EAAE,EAA4C,EAAE,EAAE,CACpI,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC,CACjH,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA6B,IAA6B,EAAE,QAAW,EAAE,EAAiE,EAAE,EAAE,CAC/J,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC,CACzG,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAGZ,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAU,CAAC,CAAC,CACxF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAU,CAAC,CAAC,CAC/E,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAGf,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAqB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CACtF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAa,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC7C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAU,CAAC,CAClD,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CAC9E,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAU,CAAC,CAC7C,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,EAA8B,EAAE,EAAE,CACtG,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CAC1G,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,EAAmD,EAAE,EAAE,CACjI,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACtC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAU,CAC7B,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,KAAQ,EAAE,EAAE,CAChF,IAAI,CAAC,YAAY,CAAkB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC,CAAC,CACpF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAGrB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,CAAc,EAAE,EAAE,CACtF,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE;IACnC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAA;AAChD,CAAC,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAG3B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,CAAmC,EAAE,EAAE,CACjH,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAC1C,CAAC,CAAC,CAAC,CAAC,EACJ,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAChD,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAGnB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,EAA8B,EAAE,EAAE,CACtG,IAAI,CAAC,YAAY,CAAqB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAU,CAAC,CAAC,CAClH,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,EAAmD,EAAE,EAAE,CACjI,IAAI,CAAC,YAAY,CAAa,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACzC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAU,CAClC,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAGzB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAoB,IAA6B,EAAE,EAA8B,EAAE,EAAE,CACtG,IAAI,CAAC,YAAY,CAAkB,CAAC,CAAC,EAAE;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAA;AAChD,CAAC,CAAC,CACL,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAG/B,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAA0B,IAA6B,EAAE,EAAmD,EAAE,EAAE,CACjI,IAAI,CAAC,YAAY,CAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACtC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAChD,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAU,CAChC,CAAC,CACL,CAAA"}
1
+ {"version":3,"file":"Lens.js","sourceRoot":"","sources":["../src/Lens.ts"],"names":[],"mappings":"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"}
@@ -1,108 +1,113 @@
1
- import { type Cause, Chunk, Effect, type Either, Option, type Schedule, Subscribable } from "effect";
2
- import type { NoSuchElementException } from "effect/Cause";
3
- export * from "effect/Subscribable";
4
- /**
5
- * Maps over an `Option` value in the `Subscribable`.
6
- */
1
+ import { type Cause, Chunk, Effect, Option, Pipeable, type Result, type Schedule, Stream } from "effect";
2
+ export declare const SubscribableTypeId: unique symbol;
3
+ export type SubscribableTypeId = typeof SubscribableTypeId;
4
+ export interface Subscribable<in out A, in out E = never, in out R = never> extends Pipeable.Pipeable {
5
+ readonly [SubscribableTypeId]: SubscribableTypeId;
6
+ readonly get: Effect.Effect<A, E, R>;
7
+ readonly changes: Stream.Stream<A, E, R>;
8
+ }
9
+ export declare const isSubscribable: (u: unknown) => u is Subscribable<unknown, unknown, unknown>;
10
+ export declare const SubscribableImplTypeId: unique symbol;
11
+ export type SubscribableImplTypeId = typeof SubscribableImplTypeId;
12
+ export declare namespace SubscribableImpl {
13
+ interface Source<in out A, in out E = never, in out R = never> {
14
+ readonly get: Effect.Effect<A, E, R>;
15
+ readonly changes: Stream.Stream<A, E, R>;
16
+ }
17
+ }
18
+ export declare class SubscribableImpl<in out A, in out E = never, in out R = never> extends Pipeable.Class implements Subscribable<A, E, R> {
19
+ readonly source: SubscribableImpl.Source<A, E, R>;
20
+ readonly [SubscribableTypeId]: SubscribableTypeId;
21
+ readonly [SubscribableImplTypeId]: SubscribableImplTypeId;
22
+ constructor(source: SubscribableImpl.Source<A, E, R>);
23
+ get get(): Effect.Effect<A, E, R>;
24
+ get changes(): Stream.Stream<A, E, R>;
25
+ }
26
+ export declare const isSubscribableImpl: (u: unknown) => u is SubscribableImpl<unknown, unknown, unknown>;
27
+ export declare const asSubscribableImpl: <A, E, R>(subscribable: Subscribable<A, E, R>) => SubscribableImpl<A, E, R>;
28
+ export declare const make: <A, E, R>(source: SubscribableImpl.Source<A, E, R>) => Subscribable<A, E, R>;
29
+ export declare const unwrap: <A, E, R, E1, R1>(effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>) => Subscribable<A, E | E1, R | R1>;
30
+ export declare const map: {
31
+ <A, B>(f: (a: NoInfer<A>) => B): <E, R>(self: Subscribable<A, E, R>) => Subscribable<B, E, R>;
32
+ <A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>;
33
+ };
34
+ export declare const mapEffect: {
35
+ <A, B, E2, R2>(f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): <E, R>(self: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>;
36
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): Subscribable<B, E | E2, R | R2>;
37
+ };
38
+ /** Maps over an `Option` value in the `Subscribable`. */
7
39
  export declare const mapOption: {
8
- <A, B>(f: (a: A) => B): <E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>) => Subscribable.Subscribable<Option.Option<B>, E, R>;
9
- <A, B, E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => B): Subscribable.Subscribable<Option.Option<B>, E, R>;
40
+ <A, B>(f: (a: A) => B): <E, R>(self: Subscribable<Option.Option<A>, E, R>) => Subscribable<Option.Option<B>, E, R>;
41
+ <A, B, E, R>(self: Subscribable<Option.Option<A>, E, R>, f: (a: A) => B): Subscribable<Option.Option<B>, E, R>;
10
42
  };
11
- /**
12
- * Maps over an `Option` value in the `Subscribable` with an Effect.
13
- */
43
+ /** Maps over an `Option` value in the `Subscribable` with an Effect. */
14
44
  export declare const mapOptionEffect: {
15
- <A, B, E2>(f: (a: A) => Effect.Effect<B, E2>): <E, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>) => Subscribable.Subscribable<Option.Option<B>, E | E2, R>;
16
- <A, B, E, E2, R>(self: Subscribable.Subscribable<Option.Option<A>, E, R>, f: (a: A) => Effect.Effect<B, E2, R>): Subscribable.Subscribable<Option.Option<B>, E | E2, R>;
45
+ <A, B, E2, R2>(f: (a: A) => Effect.Effect<B, E2, R2>): <E, R>(self: Subscribable<Option.Option<A>, E, R>) => Subscribable<Option.Option<B>, E | E2, R | R2>;
46
+ <A, B, E, R, E2, R2>(self: Subscribable<Option.Option<A>, E, R>, f: (a: A) => Effect.Effect<B, E2, R2>): Subscribable<Option.Option<B>, E | E2, R | R2>;
17
47
  };
18
- /**
19
- * Maps errors from both the current value and the stream of changes.
20
- */
48
+ /** Maps errors from both the current value and the stream of changes. */
21
49
  export declare const mapError: {
22
- <E, E2>(f: (error: NoInfer<E>) => E2): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E2, R>;
23
- <A, E, R, E2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => E2): Subscribable.Subscribable<A, E2, R>;
50
+ <E, E2>(f: (error: NoInfer<E>) => E2): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E2, R>;
51
+ <A, E, R, E2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => E2): Subscribable<A, E2, R>;
24
52
  };
25
- /** Maps complete failure causes from both channels. */
26
- export declare const mapErrorCause: {
27
- <E, E2>(f: (cause: Cause.Cause<NoInfer<E>>) => Cause.Cause<E2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E2, R>;
28
- <A, E, R, E2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Cause.Cause<E2>): Subscribable.Subscribable<A, E2, R>;
29
- };
30
- /**
31
- * Runs an effect when either the current value or the stream of changes fails.
32
- */
53
+ /** Runs an effect when either the current value or the stream of changes fails. */
33
54
  export declare const tapError: {
34
- <E, B, E2, R2>(f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E | E2, R | R2>;
35
- <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): Subscribable.Subscribable<A, E | E2, R | R2>;
55
+ <E, B, E2, R2>(f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
56
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => Effect.Effect<B, E2, R2>): Subscribable<A, E | E2, R | R2>;
36
57
  };
37
- /** Recovers from typed errors with another `Subscribable`. */
38
- export declare const catchAll: {
39
- <E, B, E2, R2>(f: (error: NoInfer<E>) => Subscribable.Subscribable<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
40
- <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (error: NoInfer<E>) => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
58
+ declare const catch_: {
59
+ <E, B, E2, R2>(f: (error: NoInfer<E>) => Subscribable<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
60
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (error: NoInfer<E>) => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
41
61
  };
62
+ /** Recovers from typed errors with another `Subscribable`. */
63
+ export { catch_ as catch };
42
64
  /** Recovers from all failure causes with another `Subscribable`. */
43
- export declare const catchAllCause: {
44
- <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable.Subscribable<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
45
- <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
65
+ export declare const catchCause: {
66
+ <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
67
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
46
68
  };
47
69
  /** Runs an effect when either channel fails, exposing the complete failure cause. */
48
- export declare const tapErrorCause: {
49
- <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E | E2, R | R2>;
50
- <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): Subscribable.Subscribable<A, E | E2, R | R2>;
70
+ export declare const tapCause: {
71
+ <E, B, E2, R2>(f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
72
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<B, E2, R2>): Subscribable<A, E | E2, R | R2>;
51
73
  };
52
74
  /** Falls back to another `Subscribable` when either channel fails. */
53
75
  export declare const orElse: {
54
- <B, E2, R2>(that: () => Subscribable.Subscribable<B, E2, R2>): <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, E2, R | R2>;
55
- <A, E, R, B, E2, R2>(self: Subscribable.Subscribable<A, E, R>, that: () => Subscribable.Subscribable<B, E2, R2>): Subscribable.Subscribable<A | B, E2, R | R2>;
76
+ <B, E2, R2>(that: () => Subscribable<B, E2, R2>): <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, E2, R | R2>;
77
+ <A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, that: () => Subscribable<B, E2, R2>): Subscribable<A | B, E2, R | R2>;
56
78
  };
57
79
  /** Replaces typed errors from either channel with a lazily evaluated value. */
58
80
  export declare const orElseSucceed: {
59
- <B>(value: () => B): <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A | B, never, R>;
60
- <A, E, R, B>(self: Subscribable.Subscribable<A, E, R>, value: () => B): Subscribable.Subscribable<A | B, never, R>;
81
+ <B>(value: () => B): <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<A | B, never, R>;
82
+ <A, E, R, B>(self: Subscribable<A, E, R>, value: () => B): Subscribable<A | B, never, R>;
61
83
  };
62
84
  /** Retries failures from both channels according to the supplied schedule. */
63
85
  export declare const retry: {
64
- <E, X, R2>(policy: Schedule.Schedule<X, NoInfer<E>, R2>): <A, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A, E, R | R2>;
65
- <A, E, R, X, R2>(self: Subscribable.Subscribable<A, E, R>, policy: Schedule.Schedule<X, NoInfer<E>, R2>): Subscribable.Subscribable<A, E, R | R2>;
66
- };
67
- /** Converts typed failures from both channels into `Either` values. */
68
- export declare const either: <A, E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<Either.Either<A, E>, never, R>;
69
- /**
70
- * Narrows the focus to a field of an object.
71
- */
86
+ <E, X, E2, R2>(policy: Schedule.Schedule<X, NoInfer<E>, E2, R2>): <A, R>(self: Subscribable<A, E, R>) => Subscribable<A, E | E2, R | R2>;
87
+ <A, E, R, X, E2, R2>(self: Subscribable<A, E, R>, policy: Schedule.Schedule<X, NoInfer<E>, E2, R2>): Subscribable<A, E | E2, R | R2>;
88
+ };
89
+ /** Converts typed failures from both channels into `Result` values. */
90
+ export declare const result: <A, E, R>(self: Subscribable<A, E, R>) => Subscribable<Result.Result<A, E>, never, R>;
91
+ /** Narrows the focus to a field of an object. */
72
92
  export declare const focusObjectOn: {
73
- <A extends object, K extends keyof A, E, R>(key: K): (self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A[K], E, R>;
74
- <A extends object, K extends keyof A, E, R>(self: Subscribable.Subscribable<A, E, R>, key: K): Subscribable.Subscribable<A[K], E, R>;
93
+ <A extends object, K extends keyof A>(key: K): <E, R>(self: Subscribable<A, E, R>) => Subscribable<A[K], E, R>;
94
+ <A extends object, K extends keyof A, E, R>(self: Subscribable<A, E, R>, key: K): Subscribable<A[K], E, R>;
75
95
  };
76
- /**
77
- * Narrows the focus to an indexed element of an array.
78
- */
96
+ /** Narrows the focus to an indexed element of an array. */
79
97
  export declare const focusArrayAt: {
80
- <A extends readonly any[], E, R>(index: number): (self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<A[number], E | NoSuchElementException, R>;
81
- <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>, index: number): Subscribable.Subscribable<A[number], E, R>;
82
- };
83
- /**
84
- * Narrows the focus to the length of an array.
85
- */
86
- export declare const focusArrayLength: <A extends readonly any[], E, R>(self: Subscribable.Subscribable<A, E, R>) => Subscribable.Subscribable<number, E, R>;
87
- /**
88
- * Narrows the focus to an indexed element of a readonly tuple.
89
- */
98
+ <A extends readonly any[]>(index: number): <E, R>(self: Subscribable<A, E, R>) => Subscribable<A[number], E | Cause.NoSuchElementError, R>;
99
+ <A extends readonly any[], E, R>(self: Subscribable<A, E, R>, index: number): Subscribable<A[number], E | Cause.NoSuchElementError, R>;
100
+ };
101
+ export declare const focusArrayLength: <A extends readonly any[], E, R>(self: Subscribable<A, E, R>) => Subscribable<number, E, R>;
102
+ /** Narrows the focus to an indexed element of a readonly tuple. */
90
103
  export declare const focusTupleAt: {
91
- <T extends readonly [any, ...any[]], I extends number, E, R>(index: I): (self: Subscribable.Subscribable<T, E, R>) => Subscribable.Subscribable<T[I], E, R>;
92
- <T extends readonly [any, ...any[]], I extends number, E, R>(self: Subscribable.Subscribable<T, E, R>, index: I): Subscribable.Subscribable<T[I], E, R>;
104
+ <T extends readonly [any, ...any[]], I extends number>(index: I): <E, R>(self: Subscribable<T, E, R>) => Subscribable<T[I], E, R>;
105
+ <T extends readonly [any, ...any[]], I extends number, E, R>(self: Subscribable<T, E, R>, index: I): Subscribable<T[I], E, R>;
93
106
  };
94
- /**
95
- * Narrows the focus to an indexed element of `Chunk`.
96
- */
107
+ /** Narrows the focus to an indexed element of `Chunk`. */
97
108
  export declare const focusChunkAt: {
98
- <A, E, R>(index: number): (self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable.Subscribable<A, E | NoSuchElementException, R>;
99
- <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>, index: number): Subscribable.Subscribable<A, E | NoSuchElementException, R>;
100
- };
101
- /**
102
- * Narrows the focus to the size of a `Chunk`.
103
- */
104
- export declare const focusChunkSize: <A, E, R>(self: Subscribable.Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable.Subscribable<number, E, R>;
105
- /**
106
- * Narrows the focus to the size of a `Iterable`.
107
- */
108
- export declare const focusIterableSize: <A, E, R>(self: Subscribable.Subscribable<Iterable<A>, E, R>) => Subscribable.Subscribable<number, E, R>;
109
+ <A>(index: number): <E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable<A, E | Cause.NoSuchElementError, R>;
110
+ <A, E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>, index: number): Subscribable<A, E | Cause.NoSuchElementError, R>;
111
+ };
112
+ export declare const focusChunkSize: <A, E, R>(self: Subscribable<Chunk.Chunk<A>, E, R>) => Subscribable<number, E, R>;
113
+ export declare const focusIterableSize: <A extends Iterable<any>, E, R>(self: Subscribable<A, E, R>) => Subscribable<number, E, R>;
@@ -1,93 +1,96 @@
1
- import { Array, Chunk, Effect, Function, Iterable, Option, Stream, Subscribable } from "effect";
2
- export * from "effect/Subscribable";
3
- /**
4
- * Maps over an `Option` value in the `Subscribable`.
5
- */
6
- export const mapOption = Function.dual(2, (self, f) => Subscribable.map(self, Option.map(f)));
7
- /**
8
- * Maps over an `Option` value in the `Subscribable` with an Effect.
9
- */
10
- export const mapOptionEffect = Function.dual(2, (self, f) => Subscribable.mapEffect(self, Option.match({
1
+ import { Array, Chunk, Effect, Function, Iterable, Option, Pipeable, Predicate, Stream } from "effect";
2
+ export const SubscribableTypeId = Symbol.for("@effect-fc/Lens/v4/Subscribable");
3
+ export const isSubscribable = (u) => Predicate.hasProperty(u, SubscribableTypeId);
4
+ export const SubscribableImplTypeId = Symbol.for("@effect-fc/Lens/v4/SubscribableImpl");
5
+ export class SubscribableImpl extends Pipeable.Class {
6
+ source;
7
+ [SubscribableTypeId] = SubscribableTypeId;
8
+ [SubscribableImplTypeId] = SubscribableImplTypeId;
9
+ constructor(source) {
10
+ super();
11
+ this.source = source;
12
+ }
13
+ get get() { return this.source.get; }
14
+ get changes() { return this.source.changes; }
15
+ }
16
+ export const isSubscribableImpl = (u) => Predicate.hasProperty(u, SubscribableImplTypeId);
17
+ export const asSubscribableImpl = (subscribable) => {
18
+ if (!isSubscribableImpl(subscribable))
19
+ throw new Error("Not a 'SubscribableImpl'");
20
+ return subscribable;
21
+ };
22
+ export const make = (source) => new SubscribableImpl(source);
23
+ export const unwrap = (effect) => make({
24
+ get: Effect.flatMap(effect, self => self.get),
25
+ changes: Stream.unwrap(Effect.map(effect, self => self.changes)),
26
+ });
27
+ export const map = Function.dual(2, (self, f) => make({
28
+ get get() { return Effect.map(self.get, f); },
29
+ get changes() { return Stream.map(self.changes, f); },
30
+ }));
31
+ export const mapEffect = Function.dual(2, (self, f) => make({
32
+ get get() { return Effect.flatMap(self.get, f); },
33
+ get changes() { return Stream.mapEffect(self.changes, f); },
34
+ }));
35
+ /** Maps over an `Option` value in the `Subscribable`. */
36
+ export const mapOption = Function.dual(2, (self, f) => map(self, Option.map(f)));
37
+ /** Maps over an `Option` value in the `Subscribable` with an Effect. */
38
+ export const mapOptionEffect = Function.dual(2, (self, f) => mapEffect(self, Option.match({
11
39
  onSome: a => Effect.map(f(a), Option.some),
12
40
  onNone: () => Effect.succeed(Option.none()),
13
41
  })));
14
- /**
15
- * Maps errors from both the current value and the stream of changes.
16
- */
17
- export const mapError = Function.dual(2, (self, f) => Subscribable.make({
42
+ /** Maps errors from both the current value and the stream of changes. */
43
+ export const mapError = Function.dual(2, (self, f) => make({
18
44
  get get() { return Effect.mapError(self.get, f); },
19
45
  get changes() { return Stream.mapError(self.changes, f); },
20
46
  }));
21
- /** Maps complete failure causes from both channels. */
22
- export const mapErrorCause = Function.dual(2, (self, f) => Subscribable.make({
23
- get get() { return Effect.mapErrorCause(self.get, f); },
24
- get changes() { return Stream.mapErrorCause(self.changes, f); },
25
- }));
26
- /**
27
- * Runs an effect when either the current value or the stream of changes fails.
28
- */
29
- export const tapError = Function.dual(2, (self, f) => Subscribable.make({
47
+ /** Runs an effect when either the current value or the stream of changes fails. */
48
+ export const tapError = Function.dual(2, (self, f) => make({
30
49
  get get() { return Effect.tapError(self.get, f); },
31
50
  get changes() { return Stream.tapError(self.changes, f); },
32
51
  }));
33
- /** Recovers from typed errors with another `Subscribable`. */
34
- export const catchAll = Function.dual(2, (self, f) => Subscribable.make({
35
- get get() { return Effect.catchAll(self.get, error => f(error).get); },
36
- get changes() { return Stream.catchAll(self.changes, error => f(error).changes); },
52
+ const catch_ = Function.dual(2, (self, f) => make({
53
+ get get() { return Effect.catch(self.get, error => f(error).get); },
54
+ get changes() { return Stream.catch(self.changes, error => f(error).changes); },
37
55
  }));
56
+ /** Recovers from typed errors with another `Subscribable`. */
57
+ export { catch_ as catch };
38
58
  /** Recovers from all failure causes with another `Subscribable`. */
39
- export const catchAllCause = Function.dual(2, (self, f) => Subscribable.make({
40
- get get() { return Effect.catchAllCause(self.get, cause => f(cause).get); },
41
- get changes() { return Stream.catchAllCause(self.changes, cause => f(cause).changes); },
59
+ export const catchCause = Function.dual(2, (self, f) => make({
60
+ get get() { return Effect.catchCause(self.get, cause => f(cause).get); },
61
+ get changes() { return Stream.catchCause(self.changes, cause => f(cause).changes); },
42
62
  }));
43
63
  /** Runs an effect when either channel fails, exposing the complete failure cause. */
44
- export const tapErrorCause = Function.dual(2, (self, f) => Subscribable.make({
45
- get get() { return Effect.tapErrorCause(self.get, f); },
46
- get changes() { return Stream.tapErrorCause(self.changes, f); },
64
+ export const tapCause = Function.dual(2, (self, f) => make({
65
+ get get() { return Effect.tapCause(self.get, f); },
66
+ get changes() { return Stream.tapCause(self.changes, f); },
47
67
  }));
48
68
  /** Falls back to another `Subscribable` when either channel fails. */
49
- export const orElse = Function.dual(2, (self, that) => catchAll(self, that));
69
+ export const orElse = Function.dual(2, (self, that) => catch_(self, that));
50
70
  /** Replaces typed errors from either channel with a lazily evaluated value. */
51
- export const orElseSucceed = Function.dual(2, (self, value) => Subscribable.make({
71
+ export const orElseSucceed = Function.dual(2, (self, value) => make({
52
72
  get get() { return Effect.orElseSucceed(self.get, value); },
53
73
  get changes() { return Stream.orElseSucceed(self.changes, value); },
54
74
  }));
55
75
  /** Retries failures from both channels according to the supplied schedule. */
56
- export const retry = Function.dual(2, (self, policy) => Subscribable.make({
76
+ export const retry = Function.dual(2, (self, policy) => make({
57
77
  get get() { return Effect.retry(self.get, policy); },
58
78
  get changes() { return Stream.retry(self.changes, policy); },
59
79
  }));
60
- /** Converts typed failures from both channels into `Either` values. */
61
- export const either = (self) => Subscribable.make({
62
- get get() { return Effect.either(self.get); },
63
- get changes() { return Stream.either(self.changes); },
80
+ /** Converts typed failures from both channels into `Result` values. */
81
+ export const result = (self) => make({
82
+ get get() { return Effect.result(self.get); },
83
+ get changes() { return Stream.result(self.changes); },
64
84
  });
65
- /**
66
- * Narrows the focus to a field of an object.
67
- */
68
- export const focusObjectOn = Function.dual(2, (self, key) => Subscribable.map(self, a => a[key]));
69
- /**
70
- * Narrows the focus to an indexed element of an array.
71
- */
72
- export const focusArrayAt = Function.dual(2, (self, index) => Subscribable.mapEffect(self, Array.get(index)));
73
- /**
74
- * Narrows the focus to the length of an array.
75
- */
76
- export const focusArrayLength = (self) => Subscribable.map(self, Array.length);
77
- /**
78
- * Narrows the focus to an indexed element of a readonly tuple.
79
- */
80
- export const focusTupleAt = Function.dual(2, (self, index) => Subscribable.map(self, Array.unsafeGet(index)));
81
- /**
82
- * Narrows the focus to an indexed element of `Chunk`.
83
- */
84
- export const focusChunkAt = Function.dual(2, (self, index) => Subscribable.mapEffect(self, Chunk.get(index)));
85
- /**
86
- * Narrows the focus to the size of a `Chunk`.
87
- */
88
- export const focusChunkSize = (self) => Subscribable.map(self, Chunk.size);
89
- /**
90
- * Narrows the focus to the size of a `Iterable`.
91
- */
92
- export const focusIterableSize = (self) => Subscribable.map(self, Iterable.size);
85
+ /** Narrows the focus to a field of an object. */
86
+ export const focusObjectOn = Function.dual(2, (self, key) => map(self, a => a[key]));
87
+ /** Narrows the focus to an indexed element of an array. */
88
+ export const focusArrayAt = Function.dual(2, (self, index) => mapEffect(self, a => Effect.fromOption(Array.get(a, index))));
89
+ export const focusArrayLength = (self) => map(self, Array.length);
90
+ /** Narrows the focus to an indexed element of a readonly tuple. */
91
+ export const focusTupleAt = Function.dual(2, (self, index) => map(self, Array.getUnsafe(index)));
92
+ /** Narrows the focus to an indexed element of `Chunk`. */
93
+ export const focusChunkAt = Function.dual(2, (self, index) => mapEffect(self, chunk => Effect.fromOption(Chunk.get(chunk, index))));
94
+ export const focusChunkSize = (self) => map(self, Chunk.size);
95
+ export const focusIterableSize = (self) => map(self, Iterable.size);
93
96
  //# sourceMappingURL=Subscribable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subscribable.js","sourceRoot":"","sources":["../src/Subscribable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Subscribable.js","sourceRoot":"","sources":["../src/Subscribable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "effect-lens",
3
3
  "description": "An effectful Lens type to easily manage nested state",
4
- "version": "0.2.1",
4
+ "version": "2.0.0-beta.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "./README.md",
@@ -36,9 +36,9 @@
36
36
  "clean:modules": "rm -rf node_modules"
37
37
  },
38
38
  "peerDependencies": {
39
- "effect": "^3.21.0"
39
+ "effect": "4.0.0-beta.85"
40
40
  },
41
41
  "devDependencies": {
42
- "effect": "^3.21.0"
42
+ "effect": "4.0.0-beta.85"
43
43
  }
44
44
  }