synstate 6.1.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/README.md +3 -3
  2. package/dist/core/authoring.d.mts +3 -3
  3. package/dist/core/class/child-observable-class.d.mts +40 -27
  4. package/dist/core/class/child-observable-class.d.mts.map +1 -1
  5. package/dist/core/class/child-observable-class.mjs +78 -46
  6. package/dist/core/class/child-observable-class.mjs.map +1 -1
  7. package/dist/core/class/create-child-observable.d.mts +28 -30
  8. package/dist/core/class/create-child-observable.d.mts.map +1 -1
  9. package/dist/core/class/create-child-observable.mjs +6 -8
  10. package/dist/core/class/create-child-observable.mjs.map +1 -1
  11. package/dist/core/class/create-root-observable.d.mts +12 -12
  12. package/dist/core/class/create-root-observable.d.mts.map +1 -1
  13. package/dist/core/class/create-root-observable.mjs +1 -5
  14. package/dist/core/class/create-root-observable.mjs.map +1 -1
  15. package/dist/core/class/manager-observable-class.d.mts +6 -6
  16. package/dist/core/class/manager-observable-class.mjs.map +1 -1
  17. package/dist/core/class/observable-base-class.d.mts +29 -31
  18. package/dist/core/class/observable-base-class.d.mts.map +1 -1
  19. package/dist/core/class/observable-base-class.mjs +0 -2
  20. package/dist/core/class/observable-base-class.mjs.map +1 -1
  21. package/dist/core/class/observable-node.d.mts +3 -4
  22. package/dist/core/class/observable-node.d.mts.map +1 -1
  23. package/dist/core/class/observable-node.mjs +0 -1
  24. package/dist/core/class/observable-node.mjs.map +1 -1
  25. package/dist/core/class/propagation-state.d.mts +6 -8
  26. package/dist/core/class/propagation-state.d.mts.map +1 -1
  27. package/dist/core/class/propagation-state.mjs +1 -3
  28. package/dist/core/class/propagation-state.mjs.map +1 -1
  29. package/dist/core/class/root-observable-class.d.mts +4 -4
  30. package/dist/core/combine/derive.d.mts +7 -8
  31. package/dist/core/combine/derive.d.mts.map +1 -1
  32. package/dist/core/combine/derive.mjs +2 -2
  33. package/dist/core/combine/derive.mjs.map +1 -1
  34. package/dist/core/combine/merge.mjs.map +1 -1
  35. package/dist/core/combine/zip.d.mts +3 -3
  36. package/dist/core/combine/zip.d.mts.map +1 -1
  37. package/dist/core/combine/zip.mjs +5 -2
  38. package/dist/core/combine/zip.mjs.map +1 -1
  39. package/dist/core/create/counter.d.mts +3 -3
  40. package/dist/core/create/counter.mjs +2 -2
  41. package/dist/core/create/counter.mjs.map +1 -1
  42. package/dist/core/create/from-abortable-promise.d.mts.map +1 -1
  43. package/dist/core/create/from-abortable-promise.mjs +10 -3
  44. package/dist/core/create/from-abortable-promise.mjs.map +1 -1
  45. package/dist/core/create/from-promise.d.mts.map +1 -1
  46. package/dist/core/create/from-promise.mjs +10 -3
  47. package/dist/core/create/from-promise.mjs.map +1 -1
  48. package/dist/core/create/from-subscribable.mjs.map +1 -1
  49. package/dist/core/create/source.d.mts.map +1 -1
  50. package/dist/core/create/source.mjs +2 -1
  51. package/dist/core/create/source.mjs.map +1 -1
  52. package/dist/core/create/timer.mjs.map +1 -1
  53. package/dist/core/operators/audit.mjs.map +1 -1
  54. package/dist/core/operators/debounce.mjs.map +1 -1
  55. package/dist/core/operators/filter.d.mts +1 -1
  56. package/dist/core/operators/filter.d.mts.map +1 -1
  57. package/dist/core/operators/filter.mjs +2 -3
  58. package/dist/core/operators/filter.mjs.map +1 -1
  59. package/dist/core/operators/keep-equal-parts.d.mts +14 -15
  60. package/dist/core/operators/keep-equal-parts.d.mts.map +1 -1
  61. package/dist/core/operators/keep-equal-parts.mjs +0 -1
  62. package/dist/core/operators/keep-equal-parts.mjs.map +1 -1
  63. package/dist/core/operators/map.mjs.map +1 -1
  64. package/dist/core/operators/merge-map.d.mts +7 -3
  65. package/dist/core/operators/merge-map.d.mts.map +1 -1
  66. package/dist/core/operators/merge-map.mjs +47 -16
  67. package/dist/core/operators/merge-map.mjs.map +1 -1
  68. package/dist/core/operators/pairwise.mjs.map +1 -1
  69. package/dist/core/operators/scan.mjs.map +1 -1
  70. package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
  71. package/dist/core/operators/skip-until.mjs.map +1 -1
  72. package/dist/core/operators/skip-while.d.mts +1 -1
  73. package/dist/core/operators/skip-while.d.mts.map +1 -1
  74. package/dist/core/operators/skip-while.mjs +9 -6
  75. package/dist/core/operators/skip-while.mjs.map +1 -1
  76. package/dist/core/operators/switch-map.d.mts +4 -0
  77. package/dist/core/operators/switch-map.d.mts.map +1 -1
  78. package/dist/core/operators/switch-map.mjs +16 -6
  79. package/dist/core/operators/switch-map.mjs.map +1 -1
  80. package/dist/core/operators/take-until.mjs.map +1 -1
  81. package/dist/core/operators/take-while.d.mts +2 -2
  82. package/dist/core/operators/take-while.d.mts.map +1 -1
  83. package/dist/core/operators/take-while.mjs +10 -8
  84. package/dist/core/operators/take-while.mjs.map +1 -1
  85. package/dist/core/operators/take.mjs.map +1 -1
  86. package/dist/core/operators/throttle.mjs +3 -2
  87. package/dist/core/operators/throttle.mjs.map +1 -1
  88. package/dist/core/operators/with-buffered-from.d.mts.map +1 -1
  89. package/dist/core/operators/with-buffered-from.mjs +13 -3
  90. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  91. package/dist/core/operators/with-current-value-from.mjs.map +1 -1
  92. package/dist/core/operators/with-initial-value.mjs.map +1 -1
  93. package/dist/core/predefined/operators/attach-index.d.mts +1 -1
  94. package/dist/core/predefined/operators/attach-index.d.mts.map +1 -1
  95. package/dist/core/predefined/operators/attach-index.mjs +2 -3
  96. package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
  97. package/dist/core/predefined/operators/map-to.d.mts +3 -4
  98. package/dist/core/predefined/operators/map-to.d.mts.map +1 -1
  99. package/dist/core/predefined/operators/map-to.mjs +0 -1
  100. package/dist/core/predefined/operators/map-to.mjs.map +1 -1
  101. package/dist/core/predefined/operators/skip.d.mts.map +1 -1
  102. package/dist/core/predefined/operators/skip.mjs +2 -2
  103. package/dist/core/predefined/operators/skip.mjs.map +1 -1
  104. package/dist/core/scope/scope.d.mts +4 -4
  105. package/dist/core/types/observable-family.d.mts.map +1 -1
  106. package/dist/core/types/observable-family.mjs.map +1 -1
  107. package/dist/core/types/observable.d.mts +5 -5
  108. package/dist/core/types/observable.mjs.map +1 -1
  109. package/dist/core/utils/current-scope.d.mts +6 -6
  110. package/dist/core/utils/id-maker.d.mts +2 -2
  111. package/dist/core/utils/index.d.mts +1 -0
  112. package/dist/core/utils/index.d.mts.map +1 -1
  113. package/dist/core/utils/index.mjs +1 -0
  114. package/dist/core/utils/index.mjs.map +1 -1
  115. package/dist/core/utils/observable-brand.d.mts +5 -5
  116. package/dist/core/utils/rethrow-out-of-promise.d.mts +10 -0
  117. package/dist/core/utils/rethrow-out-of-promise.d.mts.map +1 -0
  118. package/dist/core/utils/rethrow-out-of-promise.mjs +17 -0
  119. package/dist/core/utils/rethrow-out-of-promise.mjs.map +1 -0
  120. package/dist/utils/create-boolean-state.d.mts +2 -2
  121. package/dist/utils/create-reducer.d.mts +18 -18
  122. package/dist/utils/create-state.d.mts +2 -2
  123. package/dist/utils/create-state.mjs.map +1 -1
  124. package/dist/utils/state-source.d.mts +3 -3
  125. package/package.json +12 -11
  126. package/src/core/authoring.mts +3 -3
  127. package/src/core/class/child-observable-class.mts +131 -90
  128. package/src/core/class/circular-dependency-comparison.test.mts +2 -2
  129. package/src/core/class/create-child-observable.mts +35 -34
  130. package/src/core/class/create-root-observable.mts +13 -12
  131. package/src/core/class/manager-observable-class.mts +12 -12
  132. package/src/core/class/observable-base-class.mts +33 -35
  133. package/src/core/class/observable-node.mts +3 -4
  134. package/src/core/class/propagation-state.mts +27 -29
  135. package/src/core/class/remove-completed.test.mts +2 -2
  136. package/src/core/class/root-observable-class.mts +9 -9
  137. package/src/core/class/unobserved-write.test.mts +4 -4
  138. package/src/core/class/write-during-propagation.test.mts +75 -4
  139. package/src/core/combine/derive.mts +12 -12
  140. package/src/core/combine/merge.mts +2 -2
  141. package/src/core/combine/zip.mts +12 -9
  142. package/src/core/create/counter.mts +7 -7
  143. package/src/core/create/from-abortable-promise.mts +35 -25
  144. package/src/core/create/from-promise.mts +30 -20
  145. package/src/core/create/from-promise.test.mts +97 -0
  146. package/src/core/create/from-subscribable.mts +2 -2
  147. package/src/core/create/source.mts +7 -6
  148. package/src/core/create/timer.mts +2 -2
  149. package/src/core/operators/audit.mts +2 -2
  150. package/src/core/operators/debounce.mts +2 -2
  151. package/src/core/operators/filter.mts +6 -7
  152. package/src/core/operators/flat-map-initial-value.test.mts +269 -0
  153. package/src/core/operators/flat-map-sync-inner.test.mts +4 -2
  154. package/src/core/operators/inner-ownership.test.mts +145 -2
  155. package/src/core/operators/keep-equal-parts.mts +16 -17
  156. package/src/core/operators/map.mts +2 -2
  157. package/src/core/operators/merge-map.mts +59 -29
  158. package/src/core/operators/pairwise.mts +4 -4
  159. package/src/core/operators/scan.mts +2 -2
  160. package/src/core/operators/skip-if-no-change.mts +4 -4
  161. package/src/core/operators/skip-until.mts +4 -4
  162. package/src/core/operators/skip-while.mts +14 -10
  163. package/src/core/operators/skip-while.test.mts +59 -0
  164. package/src/core/operators/switch-map.mts +26 -15
  165. package/src/core/operators/take-until.mts +2 -2
  166. package/src/core/operators/take-while.mts +17 -19
  167. package/src/core/operators/take-while.test.mts +51 -0
  168. package/src/core/operators/take.mts +2 -2
  169. package/src/core/operators/throttle.mts +6 -5
  170. package/src/core/operators/with-buffered-from.mts +18 -5
  171. package/src/core/operators/with-buffered-from.test.mts +27 -0
  172. package/src/core/operators/with-current-value-from.mts +2 -2
  173. package/src/core/operators/with-initial-value.mts +2 -2
  174. package/src/core/predefined/operators/attach-index.mts +4 -5
  175. package/src/core/predefined/operators/map-to.mts +3 -4
  176. package/src/core/predefined/operators/skip.mts +2 -2
  177. package/src/core/scope/scope.mts +6 -6
  178. package/src/core/types/observable-family.mts +4 -5
  179. package/src/core/types/observable.mts +7 -7
  180. package/src/core/utils/current-scope.mts +8 -8
  181. package/src/core/utils/id-maker.mts +2 -2
  182. package/src/core/utils/index.mts +1 -0
  183. package/src/core/utils/observable-brand.mts +5 -5
  184. package/src/core/utils/rethrow-out-of-promise.mts +16 -0
  185. package/src/utils/create-boolean-state.mts +2 -2
  186. package/src/utils/create-reducer.mts +18 -18
  187. package/src/utils/create-state.mts +4 -4
  188. package/src/utils/create-state.test.mts +2 -2
  189. package/src/utils/state-source.mts +3 -3
package/README.md CHANGED
@@ -24,7 +24,7 @@
24
24
  - 🎯 **Simple State Management**: Easy-to-use `createState` and `createReducer` similar to React useState/useReducer for global state
25
25
  - ⚡ **Glitch-Free Through Every Operator**: Every update is one depth-ordered pass over what it reaches, the ones `debounce` or `switchMap` start later included, so no subscriber sees a half-updated graph, and its cost grows with the nodes it reaches, never with the paths between them ([why SynState](https://noshiro-pf.github.io/mono/synstate/guides/why-synstate/), [benchmark](https://noshiro-pf.github.io/mono/synstate/guides/library-comparison/benchmark/))
26
26
  - 🎨 **Type-Safe**: Full TypeScript support with precise type inference
27
- - 🚀 **Lightweight**: <!-- bundle-size:synstate -->~6.8 kB min+gzip<!-- /bundle-size:synstate --> with two external runtime dependencies ([ts-data-forge](https://www.npmjs.com/package/ts-data-forge) and [ts-std-forge](https://www.npmjs.com/package/ts-std-forge), and the first depends on the second)
27
+ - 🚀 **Lightweight**: <!-- bundle-size:synstate -->~6.9 kB min+gzip<!-- /bundle-size:synstate --> with two external runtime dependencies ([ts-data-forge](https://www.npmjs.com/package/ts-data-forge) and [ts-std-forge](https://www.npmjs.com/package/ts-std-forge), and the first depends on the second)
28
28
  - 🌐 **Framework Agnostic**: Works with React, Vue, Svelte, or vanilla JavaScript
29
29
  - 🔄 **Reactive Updates**: Automatic propagation of state changes to all subscribers
30
30
  - 📡 **Event System**: Built-in `createValueEmitter`, `createEventEmitter` for event-driven architecture
@@ -374,8 +374,8 @@ setReport({
374
374
 
375
375
  assert.strictEqual(report.getSnapshot().value, held);
376
376
 
377
- // An edited title: a new report and a new array, while the summary is
378
- // the one held, so `summary` is not told of it.
377
+ // An edited title: a new report and a new array, while the summary is the
378
+ // one held, so `summary` is not told of it.
379
379
  setReport({
380
380
  summary: { open: 1 },
381
381
  pulls: [{ number: 1, title: 'one (edited)' }],
@@ -1,7 +1,7 @@
1
1
  /**
2
- * What custom creators and operators are written with: the factories every
3
- * built-in observable is made by (#2117). The rest of `core/base` stays
4
- * internal.
2
+ * What custom creators and operators are written with: factories that wrap the
3
+ * base classes the built-in observables extend (#2117). The rest of `core/base`
4
+ * stays internal.
5
5
  */
6
6
  export { createAsyncChildObservable, createInitializedSyncChildObservable, createRootObservable, createSyncChildObservable, type AsyncChildObservableHooks, type AsyncChildObservableTools, type ChildObservableConfig, type InitializedChildObservableConfig, type RootObservableConfig, type RootObservableTools, type SyncChildObservableHooks, type SyncChildObservableTools, } from './class/index.mjs';
7
7
  //# sourceMappingURL=authoring.d.mts.map
@@ -1,15 +1,15 @@
1
- import { type Optional, type Some } from 'ts-data-forge';
1
+ import { Optional, type Some } from 'ts-data-forge';
2
2
  import type { AsyncChildObservable, DropInitialValueOperator, InitializedObservable, InitializedSyncChildObservable, KeepInitialValueOperator, NonEmptyUnknownList, Observable, Subscription, SyncChildObservable, UpdateToken, WithInitialValueOperator, Wrap } from '../types/index.mjs';
3
3
  import { ManagerObservableClass } from './manager-observable-class.mjs';
4
4
  import { ObservableBaseClass } from './observable-base-class.mjs';
5
5
  type ChildObservableConfig<A, P extends NonEmptyUnknownList> = Readonly<{
6
6
  parents: Wrap<P>;
7
7
  /**
8
- * Defaults to one more than the deepest parent. An update reaches
9
- * observables in ascending depth, so an observable `tryUpdate` reads with
10
- * `getSnapshot` without being its child (`withCurrentValueFrom`'s second
11
- * source) has to be shallower than this one too, or this one reads its value
12
- * from before the update: pass `1 + Math.max(...)` over both then.
8
+ * Defaults to one more than the deepest parent. An update reaches observables
9
+ * in ascending depth, so an observable `tryUpdate` reads with `getSnapshot`
10
+ * without being its child (`withCurrentValueFrom`'s second source) has to be
11
+ * shallower than this one too, or this one reads its value from before the
12
+ * update: pass `1 + Math.max(...)` over both then.
13
13
  */
14
14
  depth?: number;
15
15
  initialValue: Optional<A>;
@@ -18,9 +18,9 @@ type ChildObservableConfig<A, P extends NonEmptyUnknownList> = Readonly<{
18
18
  * An observable derived from `parents` that emits, if at all, in the same
19
19
  * update as they do (`map`, `filter`, `combine`, …).
20
20
  *
21
- * A subclass overrides `tryUpdate`, and, when it holds something to
22
- * release, `teardown`; its constructor ends with `this.attach()`, once
23
- * everything `tryUpdate` and `teardown` read is in place.
21
+ * A subclass overrides `tryUpdate`, and, when it holds something to release,
22
+ * `teardown`; its constructor ends with `this.attach()`, once everything
23
+ * `tryUpdate` and `teardown` read is in place.
24
24
  */
25
25
  export declare class SyncChildObservableClass<A, const P extends NonEmptyUnknownList> extends ObservableBaseClass<A, 'sync child', number> implements SyncChildObservable<A, P> {
26
26
  #private;
@@ -36,21 +36,20 @@ export declare class SyncChildObservableClass<A, const P extends NonEmptyUnknown
36
36
  protected detach(): void;
37
37
  tryComplete(): void;
38
38
  /**
39
- * Whether this observable can emit nothing more although some parent is
40
- * still live, asked whenever a parent completes. `true` completes it then,
41
- * as all parents completing does (`zip` once a completed source's queue is
42
- * empty).
39
+ * Whether this observable can emit nothing more although some parent is still
40
+ * live, asked whenever a parent completes. `true` completes it then, as all
41
+ * parents completing does (`zip` once a completed source's queue is empty).
43
42
  */
44
43
  canEmitNoMore(): boolean;
45
44
  /**
46
- * Completes this observable once the update now propagating has reached
47
- * every descendant, so that they see the value just passed on first.
45
+ * Completes this observable once the update now propagating has reached every
46
+ * descendant, so that they see the value just passed on first.
48
47
  */
49
48
  protected completeAfterPropagation(): void;
50
49
  }
51
50
  /**
52
- * An observable derived from `parents` that may emit later, in an update of
53
- * its own, through `startUpdate` (`debounce`, `switchMap`). It may also emit
51
+ * An observable derived from `parents` that may emit later, in an update of its
52
+ * own, through `startUpdate` (`debounce`, `switchMap`). It may also emit
54
53
  * synchronously with `setNext`, as a sync child does. A subclass may also
55
54
  * override `flush`, to pass on at completion what it still holds.
56
55
  */
@@ -66,27 +65,41 @@ export declare class AsyncChildObservableClass<A, const P extends NonEmptyUnknow
66
65
  canEmitNoMore(): boolean;
67
66
  /** See `SyncChildObservableClass.completeAfterPropagation`. */
68
67
  protected completeAfterPropagation(): void;
68
+ /**
69
+ * `attach`, then projects the value `parent` holds when `switchMap` /
70
+ * `mergeMap` is created, as `map` and `filter` start from it; a completed
71
+ * parent is not projected. Nothing observes the operator yet, so a value the
72
+ * inner observable emits while it is subscribed is only stored: the token is
73
+ * one no update is queued with.
74
+ *
75
+ * If the projection throws, the operator is disposed, which disposes what the
76
+ * projection made and takes the operator off its parent, and the exception
77
+ * goes on to the caller of `pipe`.
78
+ */
79
+ protected attachProjectingHeldValue<V>(parent: Observable<V>, project: (value: V, updateToken: UpdateToken) => void): void;
69
80
  /**
70
81
  * Subscribes to the inner observable that the projection of `switchMap` /
71
82
  * `mergeMap` returned.
72
83
  *
73
84
  * If the inner observable already holds a value (`just(x)`, a state), it
74
- * emits that value synchronously while being subscribed. That first value
75
- * is emitted with `updateToken`, the token of the update that ran the
76
- * projection, so it joins the propagation in progress like a sync
77
- * operator's value would. Starting an update of its own instead would
78
- * reach the nodes below before the current update reached this
79
- * observable's siblings: a node reading both would see the new inner value
80
- * beside stale sibling values (a glitch), and would emit twice.
85
+ * emits that value synchronously while being subscribed. That first value is
86
+ * emitted with `updateToken`, the token of the update that ran the
87
+ * projection, so it joins the propagation in progress like a sync operator's
88
+ * value would. Starting an update of its own instead would reach the nodes
89
+ * below before the current update reached this observable's siblings: a node
90
+ * reading both would see the new inner value beside stale sibling values (a
91
+ * glitch), and would emit twice.
81
92
  *
82
93
  * Values the inner observable emits later start updates of their own.
94
+ * `onComplete` is called when it completes, which may be while it is being
95
+ * subscribed, before this returns.
83
96
  */
84
- protected subscribeInner(inner: Observable<A>, updateToken: UpdateToken): Subscription;
97
+ protected subscribeInner(inner: Observable<A>, updateToken: UpdateToken, onComplete?: () => void): Subscription;
85
98
  }
86
99
  /**
87
100
  * A sync child that always holds a value: a subclass passes a `Some` as its
88
- * `initialValue`. It differs from its base only in the types of
89
- * `getSnapshot` and `pipe`.
101
+ * `initialValue`. It differs from its base only in the types of `getSnapshot`
102
+ * and `pipe`.
90
103
  */
91
104
  export declare class InitializedSyncChildObservableClass<A, const P extends NonEmptyUnknownList> extends SyncChildObservableClass<A, P> implements InitializedSyncChildObservable<A, P> {
92
105
  getSnapshot(): Some<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"child-observable-class.d.mts","sourceRoot":"","sources":["../../../src/core/class/child-observable-class.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"child-observable-class.d.mts","sourceRoot":"","sources":["../../../src/core/class/child-observable-class.mts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- import { hasKey, isRecord } from 'ts-data-forge';
5
+ import { hasKey, isRecord, Optional } from 'ts-data-forge';
6
6
  import { panic } from 'ts-std-forge';
7
- import { maxDepth } from '../utils/index.mjs';
7
+ import { issueUnqueuedToken, maxDepth } from '../utils/index.mjs';
8
8
  import { ManagerObservableClass } from './manager-observable-class.mjs';
9
9
  import { ObservableBaseClass } from './observable-base-class.mjs';
10
10
  import { toNode } from './observable-node.mjs';
@@ -63,7 +63,6 @@ export class SyncChildObservableClass extends ObservableBaseClass {
63
63
 
64
64
 
65
65
 
66
-
67
66
  canEmitNoMore() {
68
67
  return false;
69
68
  }
@@ -140,11 +139,44 @@ export class AsyncChildObservableClass extends ManagerObservableClass {
140
139
 
141
140
 
142
141
 
142
+ attachProjectingHeldValue(parent, project) {
143
+ this.attach();
144
+ const sn = parent.getSnapshot();
145
+ if (this.isCompleted || Optional.isNone(sn)) {
146
+ return;
147
+ }
148
+
149
+
150
+ let mut_projected = false;
151
+
152
+ try {
153
+ project(sn.value, issueUnqueuedToken());
154
+ mut_projected = true;
155
+ }
156
+ finally {
157
+ if (!mut_projected) {
158
+ this.dispose();
159
+ }
160
+ }
161
+ }
162
+
163
+
164
+
165
+
143
166
 
144
167
 
145
168
 
146
169
 
147
- subscribeInner(inner, updateToken) {
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ subscribeInner(inner, updateToken, onComplete) {
148
180
  let mut_isSubscribing = true;
149
181
  const subscription = inner.subscribe((value) => {
150
182
  if (mut_isSubscribing) {
@@ -153,7 +185,7 @@ export class AsyncChildObservableClass extends ManagerObservableClass {
153
185
  else {
154
186
  this.startUpdate(value);
155
187
  }
156
- });
188
+ }, onComplete);
157
189
  mut_isSubscribing = false;
158
190
  return subscription;
159
191
  }
@@ -180,6 +212,47 @@ export class InitializedSyncChildObservableClass extends SyncChildObservableClas
180
212
 
181
213
  const shouldComplete = (child) => !child.isCompleted &&
182
214
  (child.parents.every((p) => p.isCompleted) || child.canEmitNoMore());
215
+ const hasCircularDependencyFrom = (node, mut_visited, mut_inPath) => {
216
+ if (mut_inPath.has(node)) {
217
+ return true;
218
+ }
219
+ if (mut_visited.has(node)) {
220
+ return false;
221
+ }
222
+ mut_visited.add(node);
223
+ mut_inPath.add(node);
224
+ if (node.kind !== 'root') {
225
+ for (const parent of node.parents) {
226
+ if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
227
+ return true;
228
+ }
229
+ }
230
+ }
231
+ mut_inPath.delete(node);
232
+ return false;
233
+ };
234
+
235
+
236
+
237
+
238
+
239
+
240
+ const detectCircularDependency = (child) => {
241
+ const mut_visited = new Set();
242
+ const mut_inPath = new Set([
243
+
244
+ child,
245
+ ]);
246
+ for (const parent of child.parents) {
247
+ if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
248
+
249
+
250
+
251
+
252
+ panic('Circular dependency detected in observable graph: a child observable cannot be its own ancestor.');
253
+ }
254
+ }
255
+ };
183
256
 
184
257
  const registerChild = (child) => {
185
258
  if (checksCircularDependency) {
@@ -218,45 +291,4 @@ const isDevelopmentProcess = () => {
218
291
 
219
292
 
220
293
  export const checksCircularDependency = isDevelopmentProcess();
221
-
222
-
223
-
224
-
225
-
226
-
227
- const detectCircularDependency = (child) => {
228
- const mut_visited = new Set();
229
- const mut_inPath = new Set([
230
-
231
- child,
232
- ]);
233
- for (const parent of child.parents) {
234
- if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
235
-
236
-
237
-
238
-
239
- panic('Circular dependency detected in observable graph: a child observable cannot be its own ancestor.');
240
- }
241
- }
242
- };
243
- const hasCircularDependencyFrom = (node, mut_visited, mut_inPath) => {
244
- if (mut_inPath.has(node)) {
245
- return true;
246
- }
247
- if (mut_visited.has(node)) {
248
- return false;
249
- }
250
- mut_visited.add(node);
251
- mut_inPath.add(node);
252
- if (node.kind !== 'root') {
253
- for (const parent of node.parents) {
254
- if (hasCircularDependencyFrom(parent, mut_visited, mut_inPath)) {
255
- return true;
256
- }
257
- }
258
- }
259
- mut_inPath.delete(node);
260
- return false;
261
- };
262
294
  //# sourceMappingURL=child-observable-class.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"child-observable-class.mjs","sourceRoot":"","sources":["../../../src/core/class/child-observable-class.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"child-observable-class.mjs","sourceRoot":"","sources":["../../../src/core/class/child-observable-class.mts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Optional, type Some } from 'ts-data-forge';
1
+ import type { Optional, Some } from 'ts-data-forge';
2
2
  import type { AsyncChildObservable, InitializedSyncChildObservable, NonEmptyUnknownList, SyncChildObservable, UpdateToken, Wrap } from '../types/index.mjs';
3
3
  /**
4
4
  * The tools a sync-child factory (`map`, `filter`, `zip`, …) receives: what
@@ -11,16 +11,15 @@ export type SyncChildObservableTools<A> = Readonly<{
11
11
  /** Completes this observable (leaf teardown included). */
12
12
  complete: () => void;
13
13
  /**
14
- * Completes this observable once the update now propagating has reached
15
- * every descendant, so that they see the value just passed on first.
14
+ * Completes this observable once the update now propagating has reached every
15
+ * descendant, so that they see the value just passed on first.
16
16
  */
17
17
  completeAfterPropagation: () => void;
18
18
  /**
19
19
  * Registers a teardown (clear timers, unsubscribe inner observables, …) to
20
- * run when this observable completes or is disposed, in the order
21
- * registered. Called from `init`, it lets the teardown close over what
22
- * `init` creates. Registered once the observable has completed, the
23
- * teardown runs at once.
20
+ * run when this observable completes or is disposed, in the order registered.
21
+ * Called from `init`, it lets the teardown close over what `init` creates.
22
+ * Registered once the observable has completed, the teardown runs at once.
24
23
  */
25
24
  onComplete: (teardown: () => void) => void;
26
25
  }>;
@@ -33,20 +32,19 @@ export type AsyncChildObservableTools<A> = Readonly<{
33
32
  startUpdate: (nextValue: A) => void;
34
33
  }> & SyncChildObservableTools<A>;
35
34
  /**
36
- * What a sync child's `init` may return instead of `tryUpdate` alone: the
37
- * hooks the factory calls, which read the state `init` creates.
35
+ * What a sync child's `init` may return instead of `tryUpdate` alone: the hooks
36
+ * the factory calls, which read the state `init` creates.
38
37
  */
39
38
  export type SyncChildObservableHooks = Readonly<{
40
39
  /**
41
- * Called with the token of every update in which a parent of this
42
- * observable emitted.
40
+ * Called with the token of every update in which a parent of this observable
41
+ * emitted.
43
42
  */
44
43
  tryUpdate: (updateToken: UpdateToken) => void;
45
44
  /**
46
- * Whether this observable can emit nothing more although some parent is
47
- * still live, asked whenever a parent completes. `true` completes it then,
48
- * as all parents completing does (`zip` once a completed source's queue is
49
- * empty).
45
+ * Whether this observable can emit nothing more although some parent is still
46
+ * live, asked whenever a parent completes. `true` completes it then, as all
47
+ * parents completing does (`zip` once a completed source's queue is empty).
50
48
  */
51
49
  canEmitNoMore?: () => boolean;
52
50
  }>;
@@ -57,8 +55,8 @@ export type SyncChildObservableHooks = Readonly<{
57
55
  */
58
56
  export type AsyncChildObservableHooks = SyncChildObservableHooks & Readonly<{
59
57
  /**
60
- * Run at the beginning of `complete()`, before the teardowns, and never
61
- * by `dispose()`: passes on what this observable still holds through
58
+ * Run at the beginning of `complete()`, before the teardowns, and never by
59
+ * `dispose()`: passes on what this observable still holds through
62
60
  * `startUpdate`, so that its subscribers see it before they see the
63
61
  * completion. A disposed observable has no one left to tell.
64
62
  */
@@ -67,11 +65,11 @@ export type AsyncChildObservableHooks = SyncChildObservableHooks & Readonly<{
67
65
  type ChildObservableConfigBase<P extends NonEmptyUnknownList> = Readonly<{
68
66
  parents: Wrap<P>;
69
67
  /**
70
- * Defaults to one more than the deepest parent. An update reaches
71
- * observables in ascending depth, so an observable `tryUpdate` reads with
72
- * `getSnapshot` without being its child (`withCurrentValueFrom`'s second
73
- * source) has to be shallower than this one too, or this one reads its value
74
- * from before the update: pass `1 + Math.max(...)` over both then.
68
+ * Defaults to one more than the deepest parent. An update reaches observables
69
+ * in ascending depth, so an observable `tryUpdate` reads with `getSnapshot`
70
+ * without being its child (`withCurrentValueFrom`'s second source) has to be
71
+ * shallower than this one too, or this one reads its value from before the
72
+ * update: pass `1 + Math.max(...)` over both then.
75
73
  */
76
74
  depth?: number;
77
75
  }>;
@@ -82,15 +80,15 @@ export type InitializedChildObservableConfig<A, P extends NonEmptyUnknownList> =
82
80
  initialValue: Some<A>;
83
81
  }>;
84
82
  /**
85
- * Creates a sync-child observable: one derived from `parents` that emits, if
86
- * at all, in the same update as they do. `map`, `filter`, `combine` and the
87
- * other synchronous operators are built with it.
83
+ * Creates a sync-child observable: one derived from `parents` that emits, if at
84
+ * all, in the same update as they do. `map`, `filter`, `combine` and the other
85
+ * synchronous operators are built with it.
88
86
  *
89
87
  * `init` runs during construction and receives the tools. It returns
90
88
  * `tryUpdate`, which is called with the token of every update in which some
91
- * parent of this observable emitted — a parent that did not emit in that
92
- * update has a different `updateToken`; to emit, call `setNext` with the
93
- * token received — or an object holding `tryUpdate` and the other hooks
89
+ * parent of this observable emitted — a parent that did not emit in that update
90
+ * has a different `updateToken`; to emit, call `setNext` with the token
91
+ * received — or an object holding `tryUpdate` and the other hooks
94
92
  * ({@link SyncChildObservableHooks}). State the hooks share can live inside
95
93
  * `init`, next to the teardown it registers with the `onComplete` tool.
96
94
  * `init` may complete the observable; it is then never registered to its
@@ -148,8 +146,8 @@ export declare const createInitializedSyncChildObservable: <A, P extends NonEmpt
148
146
  * Creates an async-child observable: one derived from `parents` that may emit
149
147
  * later, in an update of its own, through `startUpdate` (`debounce`,
150
148
  * `switchMap`). It may also emit synchronously with `setNext`, as a sync child
151
- * does. See {@link createSyncChildObservable} for the `init` contract; an
152
- * async child's `init` may also return a `flush` hook
149
+ * does. See {@link createSyncChildObservable} for the `init` contract; an async
150
+ * child's `init` may also return a `flush` hook
153
151
  * ({@link AsyncChildObservableHooks}).
154
152
  */
155
153
  export declare const createAsyncChildObservable: <A, P extends NonEmptyUnknownList>(config: ChildObservableConfig<A, P>, init: (tools: AsyncChildObservableTools<A>) => ((updateToken: UpdateToken) => void) | AsyncChildObservableHooks) => AsyncChildObservable<A, P>;
@@ -1 +1 @@
1
- {"version":3,"file":"create-child-observable.d.mts","sourceRoot":"","sources":["../../../src/core/class/create-child-observable.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-child-observable.d.mts","sourceRoot":"","sources":["../../../src/core/class/create-child-observable.mts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
-
2
-
3
-
4
-
5
- import { Arr } from 'ts-data-forge';
1
+ import * as Arr from 'ts-data-forge/array';
6
2
  import { unreachable } from 'ts-std-forge';
7
3
  import { AsyncChildObservableClass, SyncChildObservableClass, } from './child-observable-class.mjs';
8
4
 
@@ -132,6 +128,8 @@ class CustomSyncChildObservableClass extends SyncChildObservableClass {
132
128
  }
133
129
  class CustomAsyncChildObservableClass extends AsyncChildObservableClass {
134
130
  #mut_teardowns;
131
+
132
+
135
133
  #hooks;
136
134
  constructor(config, init) {
137
135
  super(config);
@@ -162,13 +160,13 @@ class CustomAsyncChildObservableClass extends AsyncChildObservableClass {
162
160
  this.attach();
163
161
  }
164
162
  tryUpdate(updateToken) {
165
- this.#hooks.tryUpdate(updateToken);
163
+ this.#hooks?.tryUpdate(updateToken);
166
164
  }
167
165
  canEmitNoMore() {
168
- return this.#hooks.canEmitNoMore?.() === true;
166
+ return this.#hooks?.canEmitNoMore?.() === true;
169
167
  }
170
168
  flush() {
171
- this.#hooks.flush?.();
169
+ this.#hooks?.flush?.();
172
170
  }
173
171
  teardown() {
174
172
  for (const teardown of this.#mut_teardowns ?? []) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-child-observable.mjs","sourceRoot":"","sources":["../../../src/core/class/create-child-observable.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-child-observable.mjs","sourceRoot":"","sources":["../../../src/core/class/create-child-observable.mts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { type Optional } from 'ts-data-forge';
1
+ import type { Optional } from 'ts-data-forge';
2
2
  import type { ReadonlyRecord } from 'ts-type-forge';
3
3
  import type { RootObservable } from '../types/index.mjs';
4
4
  /**
5
- * The tools a custom root's `init` receives: the `protected` methods a
6
- * subclass of `RootObservableClass` inherits.
5
+ * The tools a custom root's `init` receives: the `protected` methods a subclass
6
+ * of `RootObservableClass` inherits.
7
7
  */
8
8
  export type RootObservableTools<A> = Readonly<{
9
9
  /** Emits `nextValue` and propagates the update to all descendants. */
@@ -13,9 +13,9 @@ export type RootObservableTools<A> = Readonly<{
13
13
  /** Completes this observable (leaf teardown included). */
14
14
  complete: () => void;
15
15
  /**
16
- * Registers a teardown (clear timers, abort requests, remove listeners, …)
17
- * to run at the beginning of `complete()`, in the order registered. Called
18
- * from `init`, it lets the teardown close over what `init` creates.
16
+ * Registers a teardown (clear timers, abort requests, remove listeners, …) to
17
+ * run at the beginning of `complete()`, in the order registered. Called from
18
+ * `init`, it lets the teardown close over what `init` creates.
19
19
  * Registered once the observable has completed — `init` may complete it
20
20
  * synchronously first — the teardown runs at once.
21
21
  */
@@ -25,13 +25,13 @@ export type RootObservableConfig<A> = Readonly<{
25
25
  initialValue: Optional<A>;
26
26
  }>;
27
27
  /**
28
- * Creates a root observable, for a custom creator written without a class
29
- * of its own.
28
+ * Creates a root observable, for a custom creator written without a class of
29
+ * its own.
30
30
  *
31
- * `init` runs during construction, receives the tools, and returns extra
32
- * public members to merge into the observable (e.g. `next` for a source,
33
- * `start` for a timer). It may register asynchronous callbacks that use the
34
- * tools, and may call `complete` synchronously.
31
+ * `init` runs during construction, receives the tools, and returns extra public
32
+ * members to merge into the observable (e.g. `next` for a source, `start` for a
33
+ * timer). It may register asynchronous callbacks that use the tools, and may
34
+ * call `complete` synchronously.
35
35
  */
36
36
  export declare const createRootObservable: <A, Extension extends ReadonlyRecord<string, unknown> = ReadonlyRecord<never, never>>({ initialValue }: RootObservableConfig<A>, init: (tools: RootObservableTools<A>) => Extension) => Extension & RootObservable<A>;
37
37
  //# sourceMappingURL=create-root-observable.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-root-observable.d.mts","sourceRoot":"","sources":["../../../src/core/class/create-root-observable.mts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC5C,sEAAsE;IACtE,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAEpC,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/B,WAAW,EAAE,MAAM,OAAO,CAAC;IAE3B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC/B,CAAC,EAGD,SAAS,SAAS,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAChE,KAAK,EACL,KAAK,CACN,oBAEiB,oBAAoB,CAAC,CAAC,CAAC,QACnC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,SAAS,KACjD,SAAS,GAAG,cAAc,CAAC,CAAC,CAIV,CAAC"}
1
+ {"version":3,"file":"create-root-observable.d.mts","sourceRoot":"","sources":["../../../src/core/class/create-root-observable.mts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC5C,sEAAsE;IACtE,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAEpC,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/B,WAAW,EAAE,MAAM,OAAO,CAAC;IAE3B,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC/B,CAAC,EAGD,SAAS,SAAS,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAChE,KAAK,EACL,KAAK,CACN,oBAEiB,oBAAoB,CAAC,CAAC,CAAC,QACnC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,SAAS,KACjD,SAAS,GAAG,cAAc,CAAC,CAAC,CAIV,CAAC"}
@@ -1,8 +1,4 @@
1
-
2
-
3
-
4
-
5
- import { Arr } from 'ts-data-forge';
1
+ import * as Arr from 'ts-data-forge/array';
6
2
  import { RootObservableClass } from './root-observable-class.mjs';
7
3
 
8
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"create-root-observable.mjs","sourceRoot":"","sources":["../../../src/core/class/create-root-observable.mts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,gDAAgD;AAChD,0DAA0D;AAC1D,kEAAkE;AAClE,OAAO,EAAE,GAAG,EAAiB,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AA+BlE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CASlC,EAAE,YAAY,EAA2B,EACzC,IAAkD,EACnB,EAAE;AACjC,8DAA8D;AAC9D,4DAA4D;AAC5D,IAAI,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAC7B,CAAC;AAEtB,oBAAoB;AAEpB,MAAM,yBAA6B,SAAQ,mBAAsB;IAC/D,cAAc,CAAsC;IAEpD,YACE,YAAyB,EACzB,IAAwE;QAExE,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAExB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC;YACrB,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YACrC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW;YACnC,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;YACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,QAAQ,EAAE,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAChC,IAAI,CAAC,cAAc,IAAI,EAAE,EACzB,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAEkB,QAAQ;QACzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACjD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"create-root-observable.mjs","sourceRoot":"","sources":["../../../src/core/class/create-root-observable.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AA+BlE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CASlC,EAAE,YAAY,EAA2B,EACzC,IAAkD,EACnB,EAAE;AACjC,8DAA8D;AAC9D,4DAA4D;AAC5D,IAAI,yBAAyB,CAAC,YAAY,EAAE,IAAI,CAC7B,CAAC;AAEtB,oBAAoB;AAEpB,MAAM,yBAA6B,SAAQ,mBAAsB;IAC/D,cAAc,CAAsC;IAEpD,YACE,YAAyB,EACzB,IAAwE;QAExE,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAExB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC;YACrB,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YACrC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW;YACnC,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;YACD,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,QAAQ,EAAE,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAChC,IAAI,CAAC,cAAc,IAAI,EAAE,EACzB,QAAQ,CACT,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAEkB,QAAQ;QACzB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACjD,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}