synstate 2.0.2 → 3.0.1

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 (230) hide show
  1. package/README.md +2 -2
  2. package/dist/core/base/create-child-observable.d.mts +65 -0
  3. package/dist/core/base/create-child-observable.d.mts.map +1 -0
  4. package/dist/core/base/create-child-observable.mjs +181 -0
  5. package/dist/core/base/create-child-observable.mjs.map +1 -0
  6. package/dist/core/base/create-observable-base.d.mts +82 -0
  7. package/dist/core/base/create-observable-base.d.mts.map +1 -0
  8. package/dist/core/base/create-observable-base.mjs +156 -0
  9. package/dist/core/base/create-observable-base.mjs.map +1 -0
  10. package/dist/core/base/create-root-observable.d.mts +37 -0
  11. package/dist/core/base/create-root-observable.d.mts.map +1 -0
  12. package/dist/core/base/create-root-observable.mjs +50 -0
  13. package/dist/core/base/create-root-observable.mjs.map +1 -0
  14. package/dist/core/base/index.d.mts +3 -0
  15. package/dist/core/base/index.d.mts.map +1 -0
  16. package/dist/core/base/index.mjs +3 -0
  17. package/dist/core/base/index.mjs.map +1 -0
  18. package/dist/core/combine/combine.d.mts.map +1 -1
  19. package/dist/core/combine/combine.mjs +132 -39
  20. package/dist/core/combine/combine.mjs.map +1 -1
  21. package/dist/core/combine/index.mjs +4 -4
  22. package/dist/core/combine/index.mjs.map +1 -1
  23. package/dist/core/combine/merge.d.mts.map +1 -1
  24. package/dist/core/combine/merge.mjs +78 -29
  25. package/dist/core/combine/merge.mjs.map +1 -1
  26. package/dist/core/combine/zip.d.mts.map +1 -1
  27. package/dist/core/combine/zip.mjs +124 -42
  28. package/dist/core/combine/zip.mjs.map +1 -1
  29. package/dist/core/create/counter.d.mts.map +1 -1
  30. package/dist/core/create/counter.mjs +82 -57
  31. package/dist/core/create/counter.mjs.map +1 -1
  32. package/dist/core/create/from-abortable-promise.d.mts.map +1 -1
  33. package/dist/core/create/from-abortable-promise.mjs +62 -36
  34. package/dist/core/create/from-abortable-promise.mjs.map +1 -1
  35. package/dist/core/create/from-promise.d.mts.map +1 -1
  36. package/dist/core/create/from-promise.mjs +67 -25
  37. package/dist/core/create/from-promise.mjs.map +1 -1
  38. package/dist/core/create/from-subscribable.d.mts.map +1 -1
  39. package/dist/core/create/from-subscribable.mjs +72 -28
  40. package/dist/core/create/from-subscribable.mjs.map +1 -1
  41. package/dist/core/create/index.mjs +8 -8
  42. package/dist/core/create/index.mjs.map +1 -1
  43. package/dist/core/create/just.d.mts.map +1 -1
  44. package/dist/core/create/just.mjs +36 -12
  45. package/dist/core/create/just.mjs.map +1 -1
  46. package/dist/core/create/source.mjs +15 -20
  47. package/dist/core/create/source.mjs.map +1 -1
  48. package/dist/core/create/timer.d.mts.map +1 -1
  49. package/dist/core/create/timer.mjs +67 -44
  50. package/dist/core/create/timer.mjs.map +1 -1
  51. package/dist/core/index.d.mts +0 -1
  52. package/dist/core/index.d.mts.map +1 -1
  53. package/dist/core/index.mjs +6 -44
  54. package/dist/core/index.mjs.map +1 -1
  55. package/dist/core/operators/audit.d.mts.map +1 -1
  56. package/dist/core/operators/audit.mjs +127 -48
  57. package/dist/core/operators/audit.mjs.map +1 -1
  58. package/dist/core/operators/debounce.d.mts.map +1 -1
  59. package/dist/core/operators/debounce.mjs +115 -45
  60. package/dist/core/operators/debounce.mjs.map +1 -1
  61. package/dist/core/operators/filter.d.mts.map +1 -1
  62. package/dist/core/operators/filter.mjs +43 -32
  63. package/dist/core/operators/filter.mjs.map +1 -1
  64. package/dist/core/operators/index.mjs +18 -18
  65. package/dist/core/operators/index.mjs.map +1 -1
  66. package/dist/core/operators/map.d.mts.map +1 -1
  67. package/dist/core/operators/map.mjs +79 -38
  68. package/dist/core/operators/map.mjs.map +1 -1
  69. package/dist/core/operators/merge-map.d.mts.map +1 -1
  70. package/dist/core/operators/merge-map.mjs +131 -47
  71. package/dist/core/operators/merge-map.mjs.map +1 -1
  72. package/dist/core/operators/pairwise.d.mts.map +1 -1
  73. package/dist/core/operators/pairwise.mjs +79 -31
  74. package/dist/core/operators/pairwise.mjs.map +1 -1
  75. package/dist/core/operators/scan.d.mts.map +1 -1
  76. package/dist/core/operators/scan.mjs +64 -25
  77. package/dist/core/operators/scan.mjs.map +1 -1
  78. package/dist/core/operators/skip-if-no-change.d.mts.map +1 -1
  79. package/dist/core/operators/skip-if-no-change.mjs +93 -39
  80. package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
  81. package/dist/core/operators/skip-until.d.mts.map +1 -1
  82. package/dist/core/operators/skip-until.mjs +73 -32
  83. package/dist/core/operators/skip-until.mjs.map +1 -1
  84. package/dist/core/operators/skip-while.d.mts.map +1 -1
  85. package/dist/core/operators/skip-while.mjs +85 -38
  86. package/dist/core/operators/skip-while.mjs.map +1 -1
  87. package/dist/core/operators/switch-map.d.mts.map +1 -1
  88. package/dist/core/operators/switch-map.mjs +121 -40
  89. package/dist/core/operators/switch-map.mjs.map +1 -1
  90. package/dist/core/operators/take-until.d.mts.map +1 -1
  91. package/dist/core/operators/take-until.mjs +71 -36
  92. package/dist/core/operators/take-until.mjs.map +1 -1
  93. package/dist/core/operators/take-while.d.mts.map +1 -1
  94. package/dist/core/operators/take-while.mjs +103 -35
  95. package/dist/core/operators/take-while.mjs.map +1 -1
  96. package/dist/core/operators/throttle.d.mts.map +1 -1
  97. package/dist/core/operators/throttle.mjs +109 -47
  98. package/dist/core/operators/throttle.mjs.map +1 -1
  99. package/dist/core/operators/with-buffered-from.d.mts.map +1 -1
  100. package/dist/core/operators/with-buffered-from.mjs +93 -46
  101. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  102. package/dist/core/operators/with-current-value-from.d.mts.map +1 -1
  103. package/dist/core/operators/with-current-value-from.mjs +84 -34
  104. package/dist/core/operators/with-current-value-from.mjs.map +1 -1
  105. package/dist/core/operators/with-initial-value.d.mts.map +1 -1
  106. package/dist/core/operators/with-initial-value.mjs +68 -21
  107. package/dist/core/operators/with-initial-value.mjs.map +1 -1
  108. package/dist/core/predefined/index.mjs +2 -12
  109. package/dist/core/predefined/index.mjs.map +1 -1
  110. package/dist/core/predefined/operators/attach-index.mjs +55 -7
  111. package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
  112. package/dist/core/predefined/operators/index.mjs +12 -12
  113. package/dist/core/predefined/operators/index.mjs.map +1 -1
  114. package/dist/core/predefined/operators/map-optional.mjs +48 -5
  115. package/dist/core/predefined/operators/map-optional.mjs.map +1 -1
  116. package/dist/core/predefined/operators/map-result-err.mjs +48 -5
  117. package/dist/core/predefined/operators/map-result-err.mjs.map +1 -1
  118. package/dist/core/predefined/operators/map-result-ok.mjs +48 -5
  119. package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -1
  120. package/dist/core/predefined/operators/map-to.mjs +41 -6
  121. package/dist/core/predefined/operators/map-to.mjs.map +1 -1
  122. package/dist/core/predefined/operators/pluck.mjs +45 -7
  123. package/dist/core/predefined/operators/pluck.mjs.map +1 -1
  124. package/dist/core/predefined/operators/skip.mjs +49 -6
  125. package/dist/core/predefined/operators/skip.mjs.map +1 -1
  126. package/dist/core/predefined/operators/take.mjs +42 -6
  127. package/dist/core/predefined/operators/take.mjs.map +1 -1
  128. package/dist/core/predefined/operators/unwrap-optional.mjs +43 -8
  129. package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -1
  130. package/dist/core/predefined/operators/unwrap-result-err.mjs +41 -5
  131. package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -1
  132. package/dist/core/predefined/operators/unwrap-result-ok.mjs +43 -8
  133. package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -1
  134. package/dist/core/types/id.mjs +2 -2
  135. package/dist/core/types/id.mjs.map +1 -1
  136. package/dist/core/types/index.mjs +7 -3
  137. package/dist/core/types/index.mjs.map +1 -1
  138. package/dist/core/types/observable-family.mjs +14 -2
  139. package/dist/core/types/observable-family.mjs.map +1 -1
  140. package/dist/core/types/observable-kind.mjs +2 -2
  141. package/dist/core/types/observable-kind.mjs.map +1 -1
  142. package/dist/core/types/observable.mjs +14 -6
  143. package/dist/core/types/observable.mjs.map +1 -1
  144. package/dist/core/types/timer.mjs +2 -2
  145. package/dist/core/types/timer.mjs.map +1 -1
  146. package/dist/core/types/types.mjs +9 -2
  147. package/dist/core/types/types.mjs.map +1 -1
  148. package/dist/core/utils/id-maker.mjs +10 -11
  149. package/dist/core/utils/id-maker.mjs.map +1 -1
  150. package/dist/core/utils/index.mjs +5 -5
  151. package/dist/core/utils/index.mjs.map +1 -1
  152. package/dist/core/utils/max-depth.mjs +7 -4
  153. package/dist/core/utils/max-depth.mjs.map +1 -1
  154. package/dist/core/utils/observable-utils.mjs +4 -7
  155. package/dist/core/utils/observable-utils.mjs.map +1 -1
  156. package/dist/core/utils/utils.mjs +32 -28
  157. package/dist/core/utils/utils.mjs.map +1 -1
  158. package/dist/entry-point.mjs +2 -49
  159. package/dist/entry-point.mjs.map +1 -1
  160. package/dist/index.mjs +3 -49
  161. package/dist/index.mjs.map +1 -1
  162. package/dist/utils/collect-to-array.mjs +8 -13
  163. package/dist/utils/collect-to-array.mjs.map +1 -1
  164. package/dist/utils/create-boolean-state.mjs +47 -22
  165. package/dist/utils/create-boolean-state.mjs.map +1 -1
  166. package/dist/utils/create-event-emitter.mjs +67 -19
  167. package/dist/utils/create-event-emitter.mjs.map +1 -1
  168. package/dist/utils/create-reducer.mjs +54 -16
  169. package/dist/utils/create-reducer.mjs.map +1 -1
  170. package/dist/utils/create-state.mjs +54 -27
  171. package/dist/utils/create-state.mjs.map +1 -1
  172. package/dist/utils/index.mjs +6 -6
  173. package/dist/utils/index.mjs.map +1 -1
  174. package/package.json +17 -19
  175. package/src/core/{class → base}/circular-dependency-comparison.test.mts +28 -18
  176. package/src/core/base/circular-dependency.test.mts +322 -0
  177. package/src/core/base/create-child-observable.mts +340 -0
  178. package/src/core/base/create-observable-base.mts +358 -0
  179. package/src/core/base/create-root-observable.mts +102 -0
  180. package/src/core/base/index.mts +2 -0
  181. package/src/core/{class/observable.class.test.mts → base/observable-base.test.mts} +25 -17
  182. package/src/core/combine/combine.mts +51 -53
  183. package/src/core/combine/merge.mts +21 -23
  184. package/src/core/combine/zip.mts +54 -58
  185. package/src/core/create/counter.mts +42 -59
  186. package/src/core/create/from-abortable-promise.mts +38 -45
  187. package/src/core/create/from-promise.mts +25 -28
  188. package/src/core/create/from-subscribable.mts +23 -27
  189. package/src/core/create/just.mts +5 -4
  190. package/src/core/create/source.mts +11 -17
  191. package/src/core/create/timer.mts +32 -47
  192. package/src/core/index.mts +0 -1
  193. package/src/core/operators/audit.mts +43 -57
  194. package/src/core/operators/debounce.mts +35 -45
  195. package/src/core/operators/filter.mts +31 -39
  196. package/src/core/operators/map.mts +32 -40
  197. package/src/core/operators/merge-map.mts +44 -59
  198. package/src/core/operators/pairwise.mts +30 -33
  199. package/src/core/operators/scan.mts +24 -35
  200. package/src/core/operators/skip-if-no-change.mts +31 -36
  201. package/src/core/operators/skip-until.mts +32 -35
  202. package/src/core/operators/skip-while.mts +31 -40
  203. package/src/core/operators/switch-map.mts +36 -48
  204. package/src/core/operators/take-until.mts +31 -29
  205. package/src/core/operators/take-while.mts +33 -41
  206. package/src/core/operators/throttle.mts +37 -51
  207. package/src/core/operators/with-buffered-from.mts +35 -30
  208. package/src/core/operators/with-current-value-from.mts +23 -28
  209. package/src/core/operators/with-initial-value.mts +21 -22
  210. package/dist/core/class/child-observable-class.d.mts +0 -39
  211. package/dist/core/class/child-observable-class.d.mts.map +0 -1
  212. package/dist/core/class/child-observable-class.mjs +0 -173
  213. package/dist/core/class/child-observable-class.mjs.map +0 -1
  214. package/dist/core/class/index.d.mts +0 -4
  215. package/dist/core/class/index.d.mts.map +0 -1
  216. package/dist/core/class/index.mjs +0 -4
  217. package/dist/core/class/index.mjs.map +0 -1
  218. package/dist/core/class/observable-base-class.d.mts +0 -28
  219. package/dist/core/class/observable-base-class.d.mts.map +0 -1
  220. package/dist/core/class/observable-base-class.mjs +0 -120
  221. package/dist/core/class/observable-base-class.mjs.map +0 -1
  222. package/dist/core/class/root-observable-class.d.mts +0 -14
  223. package/dist/core/class/root-observable-class.d.mts.map +0 -1
  224. package/dist/core/class/root-observable-class.mjs +0 -43
  225. package/dist/core/class/root-observable-class.mjs.map +0 -1
  226. package/src/core/class/child-observable-class.mts +0 -286
  227. package/src/core/class/circular-dependency.test.mts +0 -251
  228. package/src/core/class/index.mts +0 -3
  229. package/src/core/class/observable-base-class.mts +0 -187
  230. package/src/core/class/root-observable-class.mts +0 -73
@@ -1,2 +1,14 @@
1
- import 'ts-data-forge';
2
- //# sourceMappingURL=observable-family.mjs.map
1
+
2
+
3
+ var SynStateInternals;
4
+ (function (SynStateInternals) {
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ })(SynStateInternals || (SynStateInternals = {}));
14
+ //# sourceMappingURL=observable-family.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable-family.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"observable-family.mjs","sourceRoot":"","sources":["../../../src/core/types/observable-family.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,MAAM,eAAe,CAAC;AA6DxD,sBAAsB;AAEtB,IAAU,iBAAiB,CAgG1B;AAhGD,WAAU,iBAAiB;IA0BzB,UAAU,CAAoD,GAAG,CAAC,CAAC;IAEnE,UAAU,CAA8D,GAAG,CAAC,CAAC;IAE7E,UAAU,CAKR,GAAG,CAAC,CAAC;IAEP,UAAU,CAGR,GAAG,CAAC,CAAC;IAEP,UAAU,CAAmD,GAAG,CAAC,CAAC;IAElE,UAAU,CAA6D,GAAG,CAAC,CAAC;IAE5E,UAAU,CAKR,GAAG,CAAC,CAAC;IAEP,UAAU,CAGR,GAAG,CAAC,CAAC;AAwCT,CAAC,EAhGS,iBAAiB,KAAjB,iBAAiB,QAgG1B"}
@@ -1,2 +1,2 @@
1
-
2
- //# sourceMappingURL=observable-kind.mjs.map
1
+ export {};
2
+ //# sourceMappingURL=observable-kind.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable-kind.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"observable-kind.mjs","sourceRoot":"","sources":["../../../src/core/types/observable-kind.mts"],"names":[],"mappings":""}
@@ -1,8 +1,16 @@
1
- import 'ts-data-forge';
2
1
 
3
- const isManagerObservable = (obs) => obs.kind !== "sync child";
4
- const isRootObservable = (obs) => obs.kind === "root";
5
- const isChildObservable = (obs) => obs.kind === "sync child" || obs.kind === "async child";
2
+ export const isManagerObservable = (obs) => obs.kind !== 'sync child';
3
+ export const isRootObservable = (obs) => obs.kind === 'root';
4
+ export const isChildObservable = (obs) => obs.kind === 'sync child' || obs.kind === 'async child';
6
5
 
7
- export { isChildObservable, isManagerObservable, isRootObservable };
8
- //# sourceMappingURL=observable.mjs.map
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ //# sourceMappingURL=observable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable.mjs","sources":["../../../src/core/types/observable.mts"],"sourcesContent":["import { expectType, type Optional, type Some } from 'ts-data-forge';\nimport { type FixedLengthTuple, type StrictOmit } from 'ts-type-forge';\nimport { type ObservableId, type UpdateToken } from './id.mjs';\nimport { type ObservableKind } from './observable-kind.mjs';\nimport { type NonEmptyUnknownList, type Subscription } from './types.mjs';\n\n/**\n * Inheritance\n *\n * ```txt\n * ObservableBase\n * |\n * +- SyncChildObservable \\ \\\n * | +-- ChildObservable \\\n * +- AsyncChildObservable X +-- Observable\n * | +-- ManagerObservable /\n * +- RootObservableType / /\n * ```\n */\n\ntype CreateObservableType<A, Kind extends ObservableKind> = Readonly<{\n id: ObservableId;\n kind: Kind;\n\n // reactive dependency tree structure\n depth: ObservableKind extends 'root' ? 0 : number;\n addChild: <B>(child: ChildObservable<B>) => void;\n\n // state\n getSnapshot: () => Optional<A>;\n isCompleted: boolean;\n updateToken: UpdateToken;\n hasSubscriber: boolean;\n hasChild: boolean;\n hasActiveChild: () => boolean;\n\n tryUpdate: (updateToken: UpdateToken) => void;\n tryComplete: () => void;\n complete: () => void;\n subscribe: (onNext: (v: A) => void, onComplete?: () => void) => Subscription;\n\n pipe: PipeMethod<A>;\n}>;\n\n/** @internal */\ntype PipeMethod<A> = (<B>(\n operator: WithInitialValueOperator<A, B>,\n) => InitializedObservable<B>) &\n (<B>(operator: DropInitialValueOperator<A, B>) => Observable<B>) &\n (<B>(operator: KeepInitialValueOperator<A, B>) => Observable<B>);\n\nexport type ObservableBase<A> = CreateObservableType<A, ObservableKind>;\n\n/** @internal */\nnamespace ObservableTypeConverter {\n export type ToInitialized<\n A,\n O extends CreateObservableType<A, ObservableKind>,\n > = StrictOmit<O, 'pipe' | 'getSnapshot'> &\n Readonly<{\n getSnapshot: () => Some<A>;\n\n pipe: PipeMethodForInitialized<A>;\n }>;\n\n type PipeMethodForInitialized<A> = (<B>(\n operator: WithInitialValueOperator<A, B>,\n ) => InitializedObservable<B>) &\n (<B>(operator: DropInitialValueOperator<A, B>) => Observable<B>) &\n (<B>(operator: KeepInitialValueOperator<A, B>) => InitializedObservable<B>);\n\n export type ToChild<\n A,\n O extends CreateObservableType<A, ObservableKind>,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n > = O &\n Readonly<{\n parents: Wrap<P>;\n }>;\n\n export type ToManager<\n A,\n O extends CreateObservableType<A, 'async child' | 'root'>,\n > = O &\n Readonly<{\n addDescendant: <B>(child: ChildObservable<B>) => void;\n }>;\n}\n\nexport type SyncChildObservable<\n A,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n> = ObservableTypeConverter.ToChild<\n A,\n CreateObservableType<A, 'sync child'>,\n P\n>;\n\nexport type InitializedSyncChildObservable<\n A,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n> = ObservableTypeConverter.ToInitialized<A, SyncChildObservable<A, P>>;\n\nexport type AsyncChildObservable<\n A,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n> = ObservableTypeConverter.ToManager<\n A,\n ObservableTypeConverter.ToChild<A, CreateObservableType<A, 'async child'>, P>\n>;\n\nexport type InitializedAsyncChildObservable<\n A,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n> = ObservableTypeConverter.ToInitialized<A, AsyncChildObservable<A, P>>;\n\nexport type ChildObservable<\n A,\n P extends NonEmptyUnknownList = NonEmptyUnknownList,\n> = AsyncChildObservable<A, P> | SyncChildObservable<A, P>;\n\nexport type RootObservable<A> = ObservableTypeConverter.ToManager<\n A,\n CreateObservableType<A, 'root'>\n>;\n\nexport type InitializedRootObservable<A> =\n ObservableTypeConverter.ToInitialized<A, RootObservable<A>>;\n\nexport type Observable<A> =\n AsyncChildObservable<A> | RootObservable<A> | SyncChildObservable<A>;\n\nexport type InitializedObservable<A> =\n | InitializedAsyncChildObservable<A>\n | InitializedRootObservable<A>\n | InitializedSyncChildObservable<A>;\n\nexport type ManagerObservable<A> = AsyncChildObservable<A> | RootObservable<A>;\n\n/* operator types */\n\n/** Type of operator that converts Observable to InitializedObservable */\nexport type WithInitialValueOperator<A, B> = (\n src: Observable<A>,\n) => InitializedObservable<B>;\n\n/** Type of operator that converts Observable to non-initialized Observable */\nexport type DropInitialValueOperator<A, B> = (\n src: InitializedObservable<A> | Observable<A>,\n) => Observable<B>;\n\n/** Type of operator that preserves whether Observable has initial value */\nexport type KeepInitialValueOperator<A, B> = (\n src: InitializedObservable<A>,\n) => InitializedObservable<B>;\n\nexport type Operator<A, B> =\n | WithInitialValueOperator<A, B>\n | DropInitialValueOperator<A, B>\n | KeepInitialValueOperator<A, B>;\n\nexport const isManagerObservable = <A,>(\n obs: Observable<A>,\n): obs is ManagerObservable<A> => obs.kind !== 'sync child';\n\nexport const isRootObservable = <A,>(\n obs: Observable<A>,\n): obs is RootObservable<A> => obs.kind === 'root';\n\nexport const isChildObservable = <A,>(\n obs: Observable<A>,\n): obs is ChildObservable<A> =>\n obs.kind === 'sync child' || obs.kind === 'async child';\n\nexport type ObservableValue<A> = A extends Observable<infer B> ? B : never;\n\nexport type Unwrap<A extends readonly Observable<unknown>[]> = Readonly<{\n [P in keyof A]: ObservableValue<A[P]>;\n}>;\n\nexport type Wrap<A extends readonly unknown[]> = Readonly<{\n [P in keyof A]: Observable<A[P]>;\n}>;\n\nexport type WrapInitialized<A extends readonly unknown[]> = Readonly<{\n [P in keyof A]: InitializedObservable<A[P]>;\n}>;\n\n// type GetDestTypeOfOperator<Op extends Operator<unknown, unknown>> =\n// Op extends Operator<unknown, infer B> ? B : never;\n\nexpectType<keyof AsyncChildObservable<unknown>, 'addDescendant'>('>=');\n\nexpectType<keyof RootObservable<unknown>, 'addDescendant'>('>=');\n\nexpectType<Unwrap<Wrap<readonly [1, 2, 3]>>, readonly [1, 2, 3]>('=');\n\nexpectType<number, ObservableValue<Observable<number>>>('<=');\n\nexpectType<number, ObservableValue<Observable<string>>>('!<=');\n\nexpectType<\n readonly [number, string],\n Unwrap<readonly [Observable<number>, Observable<string>]>\n>('<=');\n\nexpectType<number, ObservableValue<Observable<string>>>('!<=');\n\nexpectType<\n FixedLengthTuple<2, Observable<number>>,\n Wrap<FixedLengthTuple<2, number>>\n>('<=');\n\nexpectType<\n readonly [Observable<number>, Observable<string>],\n Wrap<FixedLengthTuple<2, number>>\n>('!<=');\n"],"names":[],"mappings":";;AAiKO,MAAM,mBAAA,GAAsB,CACjC,GAAA,KACgC,GAAA,CAAI,IAAA,KAAS;AAExC,MAAM,gBAAA,GAAmB,CAC9B,GAAA,KAC6B,GAAA,CAAI,IAAA,KAAS;MAE/B,oBAAoB,CAC/B,GAAA,KAEA,IAAI,IAAA,KAAS,YAAA,IAAgB,IAAI,IAAA,KAAS;;;;"}
1
+ {"version":3,"file":"observable.mjs","sourceRoot":"","sources":["../../../src/core/types/observable.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAC;AAiKrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAkB,EACW,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAkB,EACQ,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAkB,EACS,EAAE,CAC7B,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC;AAgB1D,sEAAsE;AACtE,uDAAuD;AAEvD,UAAU,CAAuD,IAAI,CAAC,CAAC;AAEvE,UAAU,CAAiD,IAAI,CAAC,CAAC;AAEjE,UAAU,CAAuD,GAAG,CAAC,CAAC;AAEtE,UAAU,CAA8C,IAAI,CAAC,CAAC;AAE9D,UAAU,CAA8C,KAAK,CAAC,CAAC;AAE/D,UAAU,CAGR,IAAI,CAAC,CAAC;AAER,UAAU,CAA8C,KAAK,CAAC,CAAC;AAE/D,UAAU,CAGR,IAAI,CAAC,CAAC;AAER,UAAU,CAGR,KAAK,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
-
2
- //# sourceMappingURL=timer.mjs.map
1
+ export {};
2
+ //# sourceMappingURL=timer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"timer.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"timer.mjs","sourceRoot":"","sources":["../../../src/core/types/timer.mts"],"names":[],"mappings":""}
@@ -1,2 +1,9 @@
1
- import 'ts-data-forge';
2
- //# sourceMappingURL=types.mjs.map
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/core/types/types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,eAAe,CAAC;AA0BvD,aAAa;AAEb,UAAU,CAGR,GAAG,CAAC,CAAC;AAEP,0BAA0B;AAC1B,UAAU,CAAoC,IAAI,CAAC,CAAC;AAEpD,UAAU,CAAoC,KAAK,CAAC,CAAC;AAErD,UAAU,CAAsC,KAAK,CAAC,CAAC;AAEvD,UAAU,CAAsC,KAAK,CAAC,CAAC"}
@@ -1,16 +1,15 @@
1
1
  function* idMaker() {
2
- let mut_i = 0;
3
- while (true) {
4
- yield Symbol(mut_i.toString());
5
- mut_i += 1;
6
- }
2
+ let mut_i = 0;
3
+ while (true) {
4
+
5
+ yield Symbol(mut_i.toString());
6
+ mut_i += 1;
7
+ }
7
8
  }
8
9
  const observableIdMaker = idMaker();
9
10
  const subscriberIdMaker = idMaker();
10
11
  const updateTokenMaker = idMaker();
11
- const issueObservableId = () => observableIdMaker.next().value;
12
- const issueSubscriberId = () => subscriberIdMaker.next().value;
13
- const issueUpdateToken = () => updateTokenMaker.next().value;
14
-
15
- export { issueObservableId, issueSubscriberId, issueUpdateToken };
16
- //# sourceMappingURL=id-maker.mjs.map
12
+ export const issueObservableId = () => observableIdMaker.next().value;
13
+ export const issueSubscriberId = () => subscriberIdMaker.next().value;
14
+ export const issueUpdateToken = () => updateTokenMaker.next().value;
15
+ //# sourceMappingURL=id-maker.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"id-maker.mjs","sources":["../../../src/core/utils/id-maker.mts"],"sourcesContent":["import {\n type ObservableId,\n type SubscriberId,\n type UpdateToken,\n} from '../types/index.mjs';\n\nfunction* idMaker<T extends symbol>(): Generator<T, T, T> {\n let mut_i = 0;\n\n while (true) {\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n yield Symbol(mut_i.toString()) as T;\n\n mut_i += 1;\n }\n}\n\nconst observableIdMaker = idMaker<ObservableId>();\n\nconst subscriberIdMaker = idMaker<SubscriberId>();\n\nconst updateTokenMaker = idMaker<UpdateToken>();\n\nexport const issueObservableId = (): ObservableId =>\n observableIdMaker.next().value;\n\nexport const issueSubscriberId = (): SubscriberId =>\n subscriberIdMaker.next().value;\n\nexport const issueUpdateToken = (): UpdateToken =>\n updateTokenMaker.next().value;\n"],"names":[],"mappings":"AAMA,UAAU,OAAA,GAAgD;AACxD,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,OAAO,IAAA,EAAM;AAEX,IAAA,MAAM,MAAA,CAAO,KAAA,CAAM,QAAA,EAAU,CAAA;AAE7B,IAAA,KAAA,IAAS,CAAA;AAAA,EACX;AACF;AAEA,MAAM,oBAAoB,OAAA,EAAsB;AAEhD,MAAM,oBAAoB,OAAA,EAAsB;AAEhD,MAAM,mBAAmB,OAAA,EAAqB;AAEvC,MAAM,iBAAA,GAAoB,MAC/B,iBAAA,CAAkB,IAAA,EAAK,CAAE;AAEpB,MAAM,iBAAA,GAAoB,MAC/B,iBAAA,CAAkB,IAAA,EAAK,CAAE;AAEpB,MAAM,gBAAA,GAAmB,MAC9B,gBAAA,CAAiB,IAAA,EAAK,CAAE;;;;"}
1
+ {"version":3,"file":"id-maker.mjs","sourceRoot":"","sources":["../../../src/core/utils/id-maker.mts"],"names":[],"mappings":"AAMA,QAAQ,CAAC,CAAC,OAAO;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,IAAI,EAAE,CAAC;QACZ,oEAAoE;QACpE,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAM,CAAC;QAEpC,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,OAAO,EAAgB,CAAC;AAElD,MAAM,iBAAiB,GAAG,OAAO,EAAgB,CAAC;AAElD,MAAM,gBAAgB,GAAG,OAAO,EAAe,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAiB,EAAE,CAClD,iBAAiB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAiB,EAAE,CAClD,iBAAiB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;AAEjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAgB,EAAE,CAChD,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC"}
@@ -1,5 +1,5 @@
1
- export { issueObservableId, issueSubscriberId, issueUpdateToken } from './id-maker.mjs';
2
- export { maxDepth } from './max-depth.mjs';
3
- export { toSubscriber } from './observable-utils.mjs';
4
- export { binarySearch, halfInt } from './utils.mjs';
5
- //# sourceMappingURL=index.mjs.map
1
+ export * from './id-maker.mjs';
2
+ export * from './max-depth.mjs';
3
+ export * from './observable-utils.mjs';
4
+ export * from './utils.mjs';
5
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/core/utils/index.mts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC"}
@@ -1,6 +1,9 @@
1
- import { pipe, Arr, Optional } from 'ts-data-forge';
1
+ import { Arr, Optional, pipe } from 'ts-data-forge';
2
+ export const maxDepth = (parents) => pipe(Arr.maxBy(parents, (p) => p.depth))
2
3
 
3
- const maxDepth = (parents) => pipe(Arr.maxBy(parents, (p) => p.depth)).mapOptional((o) => o.depth).map(Optional.unwrapOr(0)).value;
4
4
 
5
- export { maxDepth };
6
- //# sourceMappingURL=max-depth.mjs.map
5
+
6
+
7
+ .mapOptional((o) => o.depth)
8
+ .map(Optional.unwrapOr(0)).value;
9
+ //# sourceMappingURL=max-depth.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"max-depth.mjs","sources":["../../../src/core/utils/max-depth.mts"],"sourcesContent":["import { Arr, Optional, pipe } from 'ts-data-forge';\nimport { type Observable } from '../types/index.mjs';\n\nexport const maxDepth = (parents: readonly Observable<unknown>[]): number =>\n pipe(Arr.maxBy(parents, (p) => p.depth))\n // Explicit return type + non-curried `Optional.unwrapOr` call: TypeScript\n // 7 (native)'s inference for this chained generic call resolves to\n // `unknown` without them, even though TypeScript <= 6.0's checker\n // resolves this fine.\n .mapOptional((o): number => o.depth)\n .map(Optional.unwrapOr(0)).value;\n"],"names":[],"mappings":";;AAGO,MAAM,QAAA,GAAW,CAAC,OAAA,KACvB,IAAA,CAAK,GAAA,CAAI,MAAM,OAAA,EAAS,CAAC,CAAA,KAAM,CAAA,CAAE,KAAK,CAAC,EAKpC,WAAA,CAAY,CAAC,CAAA,KAAc,CAAA,CAAE,KAAK,CAAA,CAClC,IAAI,QAAA,CAAS,QAAA,CAAS,CAAC,CAAC,CAAA,CAAE;;;;"}
1
+ {"version":3,"file":"max-depth.mjs","sourceRoot":"","sources":["../../../src/core/utils/max-depth.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAuC,EAAU,EAAE,CAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,0EAA0E;IAC1E,mEAAmE;IACnE,kEAAkE;IAClE,sBAAsB;KACrB,WAAW,CAAC,CAAC,CAAC,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;KACnC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC"}
@@ -1,8 +1,5 @@
1
- const toSubscriber = (onNext, onComplete) => ({
2
- onNext,
3
- onComplete: onComplete ?? (() => {
4
- })
1
+ export const toSubscriber = (onNext, onComplete) => ({
2
+ onNext,
3
+ onComplete: onComplete ?? (() => { }),
5
4
  });
6
-
7
- export { toSubscriber };
8
- //# sourceMappingURL=observable-utils.mjs.map
5
+ //# sourceMappingURL=observable-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable-utils.mjs","sources":["../../../src/core/utils/observable-utils.mts"],"sourcesContent":["import { type Subscriber } from '../types/index.mjs';\n\nexport const toSubscriber = <A,>(\n onNext: (v: A) => void,\n onComplete?: () => void,\n): Subscriber<A> =>\n ({\n onNext,\n onComplete: onComplete ?? (() => {}),\n }) as const;\n"],"names":[],"mappings":"AAEO,MAAM,YAAA,GAAe,CAC1B,MAAA,EACA,UAAA,MAEC;AAAA,EACC,MAAA;AAAA,EACA,UAAA,EAAY,eAAe,MAAM;AAAA,EAAC,CAAA;AACpC,CAAA;;;;"}
1
+ {"version":3,"file":"observable-utils.mjs","sourceRoot":"","sources":["../../../src/core/utils/observable-utils.mts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,MAAsB,EACtB,UAAuB,EACR,EAAE,CACjB,CAAC;IACC,MAAM;IACN,UAAU,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;CACrC,CAAU,CAAC"}
@@ -1,31 +1,35 @@
1
- import { asUint32, Arr, asSafeInt, SafeInt } from 'ts-data-forge';
1
+ import { Arr, asSafeInt, asUint32, SafeInt } from 'ts-data-forge';
2
+ export const halfInt = (x) => x % 2 === 0
3
+ ? SafeInt.div(x, 2)
4
+ : x > 0
5
+ ? SafeInt.div(SafeInt.sub(x, 1), 2)
6
+ : SafeInt.div(SafeInt.add(x, 1), 2);
2
7
 
3
- const halfInt = (x) => x % 2 === 0 ? SafeInt.div(x, 2) : x > 0 ? SafeInt.div(SafeInt.sub(x, 1), 2) : SafeInt.div(SafeInt.add(x, 1), 2);
4
- const binarySearch = (sortedArray, x) => {
5
- const uint32Result = asUint32(0);
6
- if (Arr.isEmpty(sortedArray)) {
7
- return uint32Result;
8
- }
9
- const left0 = asSafeInt(0);
10
- let mut_left = left0;
11
- let mut_right = SafeInt.sub(Arr.length(sortedArray), 1);
12
- let mut_mid = SafeInt.add(
13
- mut_left,
14
- halfInt(SafeInt.sub(mut_right, mut_left))
15
- );
16
- while (mut_left <= mut_right) {
17
- const curr = sortedArray[mut_mid];
18
- if (x === curr) break;
19
- if (curr === void 0) break;
20
- if (curr > x) {
21
- mut_right = SafeInt.sub(mut_mid, 1);
22
- } else {
23
- mut_left = SafeInt.add(mut_mid, 1);
8
+ export const binarySearch = (sortedArray, x) => {
9
+ const uint32Result = asUint32(0);
10
+ if (Arr.isEmpty(sortedArray)) {
11
+ return uint32Result;
12
+ }
13
+ const left0 = asSafeInt(0);
14
+ let mut_left = left0;
15
+ let mut_right = SafeInt.sub(Arr.length(sortedArray), 1);
16
+ let mut_mid = SafeInt.add(mut_left, halfInt(SafeInt.sub(mut_right, mut_left)));
17
+
18
+ while (mut_left <= mut_right) {
19
+ const curr = sortedArray[mut_mid];
20
+ if (x === curr)
21
+ break;
22
+ if (curr === undefined)
23
+ break;
24
+ if (curr > x) {
25
+ mut_right = SafeInt.sub(mut_mid, 1);
26
+ }
27
+ else {
28
+ mut_left = SafeInt.add(mut_mid, 1);
29
+ }
30
+ mut_mid = SafeInt.add(mut_left, halfInt(SafeInt.sub(mut_right, mut_left)));
24
31
  }
25
- mut_mid = SafeInt.add(mut_left, halfInt(SafeInt.sub(mut_right, mut_left)));
26
- }
27
- return mut_mid;
28
- };
29
32
 
30
- export { binarySearch, halfInt };
31
- //# sourceMappingURL=utils.mjs.map
33
+ return mut_mid;
34
+ };
35
+ //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../src/core/utils/utils.mts"],"sourcesContent":["import { Arr, asSafeInt, asUint32, SafeInt } from 'ts-data-forge';\nimport { type NegativeInt32, type Uint32 } from 'ts-type-forge';\n\nexport const halfInt = (x: SafeInt): SafeInt =>\n x % 2 === 0\n ? SafeInt.div(x, 2)\n : x > 0\n ? SafeInt.div(SafeInt.sub(x, 1), 2) // (x-1) / 2. e.g. 3 -> 1, 5 -> 2\n : SafeInt.div(SafeInt.add(x, 1), 2); // (x+1) / 2. e.g. -3 -> -1, -5 -> -2\n\n/** Returns the position where x should be inserted in a sorted array. */\nexport const binarySearch = <N extends number>(\n sortedArray: readonly N[],\n x: N,\n): NegativeInt32 | Uint32 => {\n const uint32Result = asUint32(0);\n\n if (Arr.isEmpty(sortedArray)) {\n return uint32Result;\n }\n\n const left0 = asSafeInt(0);\n\n let mut_left: SafeInt = left0;\n\n let mut_right: SafeInt = SafeInt.sub(Arr.length(sortedArray), 1);\n\n let mut_mid: SafeInt = SafeInt.add(\n mut_left,\n halfInt(SafeInt.sub(mut_right, mut_left)),\n );\n\n // loop while x is in the range of [left, right)\n while (mut_left <= mut_right) {\n const curr = sortedArray[mut_mid];\n\n if (x === curr) break;\n\n if (curr === undefined) break;\n\n if (curr > x) {\n mut_right = SafeInt.sub(mut_mid, 1);\n } else {\n mut_left = SafeInt.add(mut_mid, 1);\n }\n\n mut_mid = SafeInt.add(mut_left, halfInt(SafeInt.sub(mut_right, mut_left)));\n }\n\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n return mut_mid as NegativeInt32 | Uint32;\n};\n"],"names":[],"mappings":";;AAGO,MAAM,OAAA,GAAU,CAAC,CAAA,KACtB,CAAA,GAAI,CAAA,KAAM,CAAA,GACN,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA,GAChB,CAAA,GAAI,CAAA,GACF,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA,EAAG,CAAC,CAAA,GAChC,OAAA,CAAQ,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,CAAC,GAAG,CAAC;AAGjC,MAAM,YAAA,GAAe,CAC1B,WAAA,EACA,CAAA,KAC2B;AAC3B,EAAA,MAAM,YAAA,GAAe,SAAS,CAAC,CAAA;AAE/B,EAAA,IAAI,GAAA,CAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC5B,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,MAAM,KAAA,GAAQ,UAAU,CAAC,CAAA;AAEzB,EAAA,IAAI,QAAA,GAAoB,KAAA;AAExB,EAAA,IAAI,YAAqB,OAAA,CAAQ,GAAA,CAAI,IAAI,MAAA,CAAO,WAAW,GAAG,CAAC,CAAA;AAE/D,EAAA,IAAI,UAAmB,OAAA,CAAQ,GAAA;AAAA,IAC7B,QAAA;AAAA,IACA,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC;AAAA,GAC1C;AAGA,EAAA,OAAO,YAAY,SAAA,EAAW;AAC5B,IAAA,MAAM,IAAA,GAAO,YAAY,OAAO,CAAA;AAEhC,IAAA,IAAI,MAAM,IAAA,EAAM;AAEhB,IAAA,IAAI,SAAS,MAAA,EAAW;AAExB,IAAA,IAAI,OAAO,CAAA,EAAG;AACZ,MAAA,SAAA,GAAY,OAAA,CAAQ,GAAA,CAAI,OAAA,EAAS,CAAC,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAA,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,OAAA,EAAS,CAAC,CAAA;AAAA,IACnC;AAEA,IAAA,OAAA,GAAU,OAAA,CAAQ,IAAI,QAAA,EAAU,OAAA,CAAQ,QAAQ,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAC,CAAA;AAAA,EAC3E;AAGA,EAAA,OAAO,OAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.mjs","sourceRoot":"","sources":["../../../src/core/utils/utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGlE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,GAAG,CAAC,KAAK,CAAC;IACT,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC,GAAG,CAAC;QACL,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC;QACrE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qCAAqC;AAEhF,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAAyB,EACzB,CAAI,EACoB,EAAE;IAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,QAAQ,GAAY,KAAK,CAAC;IAE9B,IAAI,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,OAAO,GAAY,OAAO,CAAC,GAAG,CAChC,QAAQ,EACR,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAC1C,CAAC;IAEF,gDAAgD;IAChD,OAAO,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM;QAEtB,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAE9B,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,oEAAoE;IACpE,OAAO,OAAiC,CAAC;AAC3C,CAAC,CAAC"}
@@ -1,49 +1,2 @@
1
- export { AsyncChildObservableClass, InitializedSyncChildObservableClass, SyncChildObservableClass } from './core/class/child-observable-class.mjs';
2
- export { ObservableBaseClass } from './core/class/observable-base-class.mjs';
3
- export { RootObservableClass } from './core/class/root-observable-class.mjs';
4
- export { combine, combineLatest } from './core/combine/combine.mjs';
5
- export { merge } from './core/combine/merge.mjs';
6
- export { zip } from './core/combine/zip.mjs';
7
- export { counter } from './core/create/counter.mjs';
8
- export { fromAbortablePromise } from './core/create/from-abortable-promise.mjs';
9
- export { fromPromise } from './core/create/from-promise.mjs';
10
- export { fromSubscribable } from './core/create/from-subscribable.mjs';
11
- export { just } from './core/create/just.mjs';
12
- export { source } from './core/create/source.mjs';
13
- export { timer } from './core/create/timer.mjs';
14
- export { audit } from './core/operators/audit.mjs';
15
- export { debounce } from './core/operators/debounce.mjs';
16
- export { filter } from './core/operators/filter.mjs';
17
- export { map } from './core/operators/map.mjs';
18
- export { flatMap, mergeMap } from './core/operators/merge-map.mjs';
19
- export { pairwise } from './core/operators/pairwise.mjs';
20
- export { scan } from './core/operators/scan.mjs';
21
- export { distinctUntilChanged, skipIfNoChange } from './core/operators/skip-if-no-change.mjs';
22
- export { skipUntil } from './core/operators/skip-until.mjs';
23
- export { skipWhile } from './core/operators/skip-while.mjs';
24
- export { switchMap } from './core/operators/switch-map.mjs';
25
- export { takeUntil } from './core/operators/take-until.mjs';
26
- export { takeWhile } from './core/operators/take-while.mjs';
27
- export { throttle } from './core/operators/throttle.mjs';
28
- export { withBuffered, withBufferedFrom } from './core/operators/with-buffered-from.mjs';
29
- export { withCurrentValueFrom, withLatestFrom } from './core/operators/with-current-value-from.mjs';
30
- export { withInitialValue } from './core/operators/with-initial-value.mjs';
31
- export { attachIndex, withIndex } from './core/predefined/operators/attach-index.mjs';
32
- export { mapOptional } from './core/predefined/operators/map-optional.mjs';
33
- export { mapResultErr } from './core/predefined/operators/map-result-err.mjs';
34
- export { mapResultOk } from './core/predefined/operators/map-result-ok.mjs';
35
- export { mapTo } from './core/predefined/operators/map-to.mjs';
36
- export { getKey, pluck } from './core/predefined/operators/pluck.mjs';
37
- export { skip } from './core/predefined/operators/skip.mjs';
38
- export { take } from './core/predefined/operators/take.mjs';
39
- export { unwrapOptional } from './core/predefined/operators/unwrap-optional.mjs';
40
- export { unwrapResultErr } from './core/predefined/operators/unwrap-result-err.mjs';
41
- export { unwrapResultOk } from './core/predefined/operators/unwrap-result-ok.mjs';
42
- import 'ts-data-forge';
43
- export { isChildObservable, isManagerObservable, isRootObservable } from './core/types/observable.mjs';
44
- export { collectToArray } from './utils/collect-to-array.mjs';
45
- export { createBooleanState } from './utils/create-boolean-state.mjs';
46
- export { createEventEmitter, createValueEmitter } from './utils/create-event-emitter.mjs';
47
- export { createReducer } from './utils/create-reducer.mjs';
48
- export { createState } from './utils/create-state.mjs';
49
- //# sourceMappingURL=entry-point.mjs.map
1
+ export * from './index.mjs';
2
+ //# sourceMappingURL=entry-point.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"entry-point.mjs","sourceRoot":"","sources":["../src/entry-point.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,49 +1,3 @@
1
- export { AsyncChildObservableClass, InitializedSyncChildObservableClass, SyncChildObservableClass } from './core/class/child-observable-class.mjs';
2
- export { ObservableBaseClass } from './core/class/observable-base-class.mjs';
3
- export { RootObservableClass } from './core/class/root-observable-class.mjs';
4
- export { combine, combineLatest } from './core/combine/combine.mjs';
5
- export { merge } from './core/combine/merge.mjs';
6
- export { zip } from './core/combine/zip.mjs';
7
- export { counter } from './core/create/counter.mjs';
8
- export { fromAbortablePromise } from './core/create/from-abortable-promise.mjs';
9
- export { fromPromise } from './core/create/from-promise.mjs';
10
- export { fromSubscribable } from './core/create/from-subscribable.mjs';
11
- export { just } from './core/create/just.mjs';
12
- export { source } from './core/create/source.mjs';
13
- export { timer } from './core/create/timer.mjs';
14
- export { audit } from './core/operators/audit.mjs';
15
- export { debounce } from './core/operators/debounce.mjs';
16
- export { filter } from './core/operators/filter.mjs';
17
- export { map } from './core/operators/map.mjs';
18
- export { flatMap, mergeMap } from './core/operators/merge-map.mjs';
19
- export { pairwise } from './core/operators/pairwise.mjs';
20
- export { scan } from './core/operators/scan.mjs';
21
- export { distinctUntilChanged, skipIfNoChange } from './core/operators/skip-if-no-change.mjs';
22
- export { skipUntil } from './core/operators/skip-until.mjs';
23
- export { skipWhile } from './core/operators/skip-while.mjs';
24
- export { switchMap } from './core/operators/switch-map.mjs';
25
- export { takeUntil } from './core/operators/take-until.mjs';
26
- export { takeWhile } from './core/operators/take-while.mjs';
27
- export { throttle } from './core/operators/throttle.mjs';
28
- export { withBuffered, withBufferedFrom } from './core/operators/with-buffered-from.mjs';
29
- export { withCurrentValueFrom, withLatestFrom } from './core/operators/with-current-value-from.mjs';
30
- export { withInitialValue } from './core/operators/with-initial-value.mjs';
31
- export { attachIndex, withIndex } from './core/predefined/operators/attach-index.mjs';
32
- export { mapOptional } from './core/predefined/operators/map-optional.mjs';
33
- export { mapResultErr } from './core/predefined/operators/map-result-err.mjs';
34
- export { mapResultOk } from './core/predefined/operators/map-result-ok.mjs';
35
- export { mapTo } from './core/predefined/operators/map-to.mjs';
36
- export { getKey, pluck } from './core/predefined/operators/pluck.mjs';
37
- export { skip } from './core/predefined/operators/skip.mjs';
38
- export { take } from './core/predefined/operators/take.mjs';
39
- export { unwrapOptional } from './core/predefined/operators/unwrap-optional.mjs';
40
- export { unwrapResultErr } from './core/predefined/operators/unwrap-result-err.mjs';
41
- export { unwrapResultOk } from './core/predefined/operators/unwrap-result-ok.mjs';
42
- import 'ts-data-forge';
43
- export { isChildObservable, isManagerObservable, isRootObservable } from './core/types/observable.mjs';
44
- export { collectToArray } from './utils/collect-to-array.mjs';
45
- export { createBooleanState } from './utils/create-boolean-state.mjs';
46
- export { createEventEmitter, createValueEmitter } from './utils/create-event-emitter.mjs';
47
- export { createReducer } from './utils/create-reducer.mjs';
48
- export { createState } from './utils/create-state.mjs';
49
- //# sourceMappingURL=index.mjs.map
1
+ export * from './core/index.mjs';
2
+ export * from './utils/index.mjs';
3
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.mts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -1,14 +1,9 @@
1
- const collectToArray = (observable) => new Promise((resolve) => {
2
- const mut_buffer = [];
3
- observable.subscribe(
4
- (value) => {
5
- mut_buffer.push(value);
6
- },
7
- () => {
8
- resolve(mut_buffer);
9
- }
10
- );
1
+ export const collectToArray = (observable) => new Promise((resolve) => {
2
+ const mut_buffer = [];
3
+ observable.subscribe((value) => {
4
+ mut_buffer.push(value);
5
+ }, () => {
6
+ resolve(mut_buffer);
7
+ });
11
8
  });
12
-
13
- export { collectToArray };
14
- //# sourceMappingURL=collect-to-array.mjs.map
9
+ //# sourceMappingURL=collect-to-array.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"collect-to-array.mjs","sources":["../../src/utils/collect-to-array.mts"],"sourcesContent":["import { type Observable } from '../core/index.mjs';\n\nexport const collectToArray = <A,>(\n observable: Observable<A>,\n): Promise<readonly A[]> =>\n new Promise<readonly A[]>((resolve) => {\n const mut_buffer: A[] = [];\n\n observable.subscribe(\n (value) => {\n mut_buffer.push(value);\n },\n () => {\n resolve(mut_buffer);\n },\n );\n });\n"],"names":[],"mappings":"AAEO,MAAM,iBAAiB,CAC5B,UAAA,KAEA,IAAI,OAAA,CAAsB,CAAC,OAAA,KAAY;AACrC,EAAA,MAAM,aAAkB,EAAC;AAEzB,EAAA,UAAA,CAAW,SAAA;AAAA,IACT,CAAC,KAAA,KAAU;AACT,MAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAAA,IACvB,CAAA;AAAA,IACA,MAAM;AACJ,MAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,IACpB;AAAA,GACF;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"collect-to-array.mjs","sourceRoot":"","sources":["../../src/utils/collect-to-array.mts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAyB,EACF,EAAE,CACzB,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,EAAE;IACpC,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,UAAU,CAAC,SAAS,CAClB,CAAC,KAAK,EAAE,EAAE;QACR,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EACD,GAAG,EAAE;QACH,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,25 +1,50 @@
1
1
  import { createState } from './create-state.mjs';
2
2
 
3
- const createBooleanState = (initialState) => {
4
- const [state, setState, { updateState, resetState, getSnapshot }] = createState(initialState);
5
- return [
6
- state,
7
- {
8
- setTrue: () => {
9
- setState(true);
10
- },
11
- setFalse: () => {
12
- setState(false);
13
- },
14
- toggle: () => updateState((s) => !s),
15
- setState,
16
- updateState,
17
- resetState,
18
- getSnapshot,
19
- initialState
20
- }
21
- ];
22
- };
23
3
 
24
- export { createBooleanState };
25
- //# sourceMappingURL=create-boolean-state.mjs.map
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+ export const createBooleanState = (initialState) => {
31
+ const [state, setState, { updateState, resetState, getSnapshot }] = createState(initialState);
32
+ return [
33
+ state,
34
+ {
35
+ setTrue: () => {
36
+ setState(true);
37
+ },
38
+ setFalse: () => {
39
+ setState(false);
40
+ },
41
+ toggle: () => updateState((s) => !s),
42
+ setState,
43
+ updateState,
44
+ resetState,
45
+ getSnapshot,
46
+ initialState,
47
+ },
48
+ ];
49
+ };
50
+ //# sourceMappingURL=create-boolean-state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-boolean-state.mjs","sources":["../../src/utils/create-boolean-state.mts"],"sourcesContent":["import { type InitializedObservable } from '../core/index.mjs';\nimport { createState } from './create-state.mjs';\n\n/**\n * Creates a reactive boolean state with convenient methods for boolean operations.\n * Extends `createState` with boolean-specific helpers like `toggle`, `setTrue`, and `setFalse`.\n *\n * @param initialState - The initial boolean value\n * @returns A 2-element tuple: `[state, { setTrue, setFalse, toggle, setState, updateState, resetState, getSnapshot, initialState }]`\n *\n * @example\n * ```ts\n * import type * as React from 'react';\n * import { createBooleanState } from 'synstate';\n * import { useObservableValue } from 'synstate-react-hooks';\n *\n * // Menu drawer open/close state.\n * // setTrue and setFalse can be passed directly as callbacks\n * // — no need to create wrapper functions like `() => setState(true)`.\n * const [menuOpen$, { setTrue: openMenu, setFalse: closeMenu }] =\n * createBooleanState(false);\n *\n * const SampleComponent = (): React.JSX.Element => (\n * <MenuDrawer\n * open={useObservableValue(menuOpen$)}\n * onClose={closeMenu}\n * onOpen={openMenu}\n * />\n * );\n * ```\n */\n\nexport const createBooleanState = (\n initialState: boolean,\n): readonly [\n state: InitializedObservable<boolean>,\n utils: Readonly<{\n setTrue: () => void;\n setFalse: () => void;\n setState: (next: boolean) => boolean;\n toggle: () => boolean;\n updateState: (updateFn: (prev: boolean) => boolean) => boolean;\n resetState: () => boolean;\n getSnapshot: () => boolean;\n initialState: boolean;\n }>,\n] => {\n const [state, setState, { updateState, resetState, getSnapshot }] =\n createState(initialState);\n\n return [\n state,\n {\n setTrue: () => {\n setState(true);\n },\n setFalse: () => {\n setState(false);\n },\n toggle: () => updateState((s) => !s),\n setState,\n updateState,\n resetState,\n getSnapshot,\n initialState,\n },\n ] as const;\n};\n"],"names":[],"mappings":";;AAgCO,MAAM,kBAAA,GAAqB,CAChC,YAAA,KAaG;AACH,EAAA,MAAM,CAAC,KAAA,EAAO,QAAA,EAAU,EAAE,WAAA,EAAa,YAAY,WAAA,EAAa,CAAA,GAC9D,WAAA,CAAY,YAAY,CAAA;AAE1B,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA;AAAA,MACE,SAAS,MAAM;AACb,QAAA,QAAA,CAAS,IAAI,CAAA;AAAA,MACf,CAAA;AAAA,MACA,UAAU,MAAM;AACd,QAAA,QAAA,CAAS,KAAK,CAAA;AAAA,MAChB,CAAA;AAAA,MACA,QAAQ,MAAM,WAAA,CAAY,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,MACnC,QAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA;AACF,GACF;AACF;;;;"}
1
+ {"version":3,"file":"create-boolean-state.mjs","sourceRoot":"","sources":["../../src/utils/create-boolean-state.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAAqB,EAarB,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,GAC/D,WAAW,CAAC,YAAY,CAAC,CAAC;IAE5B,OAAO;QACL,KAAK;QACL;YACE,OAAO,EAAE,GAAG,EAAE;gBACZ,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,QAAQ;YACR,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;SACb;KACO,CAAC;AACb,CAAC,CAAC"}