synstate 3.0.0 → 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 (137) hide show
  1. package/dist/core/base/create-child-observable.mjs +164 -140
  2. package/dist/core/base/create-child-observable.mjs.map +1 -1
  3. package/dist/core/base/create-observable-base.mjs +148 -152
  4. package/dist/core/base/create-observable-base.mjs.map +1 -1
  5. package/dist/core/base/create-root-observable.mjs +48 -34
  6. package/dist/core/base/create-root-observable.mjs.map +1 -1
  7. package/dist/core/base/index.mjs +3 -3
  8. package/dist/core/base/index.mjs.map +1 -1
  9. package/dist/core/combine/combine.mjs +129 -37
  10. package/dist/core/combine/combine.mjs.map +1 -1
  11. package/dist/core/combine/index.mjs +4 -4
  12. package/dist/core/combine/index.mjs.map +1 -1
  13. package/dist/core/combine/merge.mjs +75 -24
  14. package/dist/core/combine/merge.mjs.map +1 -1
  15. package/dist/core/combine/zip.mjs +120 -39
  16. package/dist/core/combine/zip.mjs.map +1 -1
  17. package/dist/core/create/counter.mjs +81 -45
  18. package/dist/core/create/counter.mjs.map +1 -1
  19. package/dist/core/create/from-abortable-promise.mjs +63 -38
  20. package/dist/core/create/from-abortable-promise.mjs.map +1 -1
  21. package/dist/core/create/from-promise.mjs +67 -25
  22. package/dist/core/create/from-promise.mjs.map +1 -1
  23. package/dist/core/create/from-subscribable.mjs +70 -26
  24. package/dist/core/create/from-subscribable.mjs.map +1 -1
  25. package/dist/core/create/index.mjs +8 -8
  26. package/dist/core/create/index.mjs.map +1 -1
  27. package/dist/core/create/just.mjs +36 -13
  28. package/dist/core/create/just.mjs.map +1 -1
  29. package/dist/core/create/source.mjs +15 -19
  30. package/dist/core/create/source.mjs.map +1 -1
  31. package/dist/core/create/timer.mjs +66 -37
  32. package/dist/core/create/timer.mjs.map +1 -1
  33. package/dist/core/index.mjs +6 -41
  34. package/dist/core/index.mjs.map +1 -1
  35. package/dist/core/operators/audit.mjs +126 -39
  36. package/dist/core/operators/audit.mjs.map +1 -1
  37. package/dist/core/operators/debounce.mjs +114 -37
  38. package/dist/core/operators/debounce.mjs.map +1 -1
  39. package/dist/core/operators/filter.mjs +39 -24
  40. package/dist/core/operators/filter.mjs.map +1 -1
  41. package/dist/core/operators/index.mjs +18 -18
  42. package/dist/core/operators/index.mjs.map +1 -1
  43. package/dist/core/operators/map.mjs +74 -26
  44. package/dist/core/operators/map.mjs.map +1 -1
  45. package/dist/core/operators/merge-map.mjs +128 -35
  46. package/dist/core/operators/merge-map.mjs.map +1 -1
  47. package/dist/core/operators/pairwise.mjs +73 -23
  48. package/dist/core/operators/pairwise.mjs.map +1 -1
  49. package/dist/core/operators/scan.mjs +59 -15
  50. package/dist/core/operators/scan.mjs.map +1 -1
  51. package/dist/core/operators/skip-if-no-change.mjs +89 -31
  52. package/dist/core/operators/skip-if-no-change.mjs.map +1 -1
  53. package/dist/core/operators/skip-until.mjs +71 -29
  54. package/dist/core/operators/skip-until.mjs.map +1 -1
  55. package/dist/core/operators/skip-while.mjs +79 -27
  56. package/dist/core/operators/skip-while.mjs.map +1 -1
  57. package/dist/core/operators/switch-map.mjs +118 -31
  58. package/dist/core/operators/switch-map.mjs.map +1 -1
  59. package/dist/core/operators/take-until.mjs +70 -35
  60. package/dist/core/operators/take-until.mjs.map +1 -1
  61. package/dist/core/operators/take-while.mjs +97 -25
  62. package/dist/core/operators/take-while.mjs.map +1 -1
  63. package/dist/core/operators/throttle.mjs +108 -38
  64. package/dist/core/operators/throttle.mjs.map +1 -1
  65. package/dist/core/operators/with-buffered-from.mjs +94 -47
  66. package/dist/core/operators/with-buffered-from.mjs.map +1 -1
  67. package/dist/core/operators/with-current-value-from.mjs +78 -23
  68. package/dist/core/operators/with-current-value-from.mjs.map +1 -1
  69. package/dist/core/operators/with-initial-value.mjs +64 -14
  70. package/dist/core/operators/with-initial-value.mjs.map +1 -1
  71. package/dist/core/predefined/index.mjs +2 -12
  72. package/dist/core/predefined/index.mjs.map +1 -1
  73. package/dist/core/predefined/operators/attach-index.mjs +55 -7
  74. package/dist/core/predefined/operators/attach-index.mjs.map +1 -1
  75. package/dist/core/predefined/operators/index.mjs +12 -12
  76. package/dist/core/predefined/operators/index.mjs.map +1 -1
  77. package/dist/core/predefined/operators/map-optional.mjs +48 -5
  78. package/dist/core/predefined/operators/map-optional.mjs.map +1 -1
  79. package/dist/core/predefined/operators/map-result-err.mjs +48 -5
  80. package/dist/core/predefined/operators/map-result-err.mjs.map +1 -1
  81. package/dist/core/predefined/operators/map-result-ok.mjs +48 -5
  82. package/dist/core/predefined/operators/map-result-ok.mjs.map +1 -1
  83. package/dist/core/predefined/operators/map-to.mjs +41 -6
  84. package/dist/core/predefined/operators/map-to.mjs.map +1 -1
  85. package/dist/core/predefined/operators/pluck.mjs +45 -7
  86. package/dist/core/predefined/operators/pluck.mjs.map +1 -1
  87. package/dist/core/predefined/operators/skip.mjs +49 -6
  88. package/dist/core/predefined/operators/skip.mjs.map +1 -1
  89. package/dist/core/predefined/operators/take.mjs +42 -6
  90. package/dist/core/predefined/operators/take.mjs.map +1 -1
  91. package/dist/core/predefined/operators/unwrap-optional.mjs +43 -8
  92. package/dist/core/predefined/operators/unwrap-optional.mjs.map +1 -1
  93. package/dist/core/predefined/operators/unwrap-result-err.mjs +41 -5
  94. package/dist/core/predefined/operators/unwrap-result-err.mjs.map +1 -1
  95. package/dist/core/predefined/operators/unwrap-result-ok.mjs +43 -8
  96. package/dist/core/predefined/operators/unwrap-result-ok.mjs.map +1 -1
  97. package/dist/core/types/id.mjs +2 -2
  98. package/dist/core/types/id.mjs.map +1 -1
  99. package/dist/core/types/index.mjs +7 -3
  100. package/dist/core/types/index.mjs.map +1 -1
  101. package/dist/core/types/observable-family.mjs +14 -2
  102. package/dist/core/types/observable-family.mjs.map +1 -1
  103. package/dist/core/types/observable-kind.mjs +2 -2
  104. package/dist/core/types/observable-kind.mjs.map +1 -1
  105. package/dist/core/types/observable.mjs +14 -6
  106. package/dist/core/types/observable.mjs.map +1 -1
  107. package/dist/core/types/timer.mjs +2 -2
  108. package/dist/core/types/timer.mjs.map +1 -1
  109. package/dist/core/types/types.mjs +9 -2
  110. package/dist/core/types/types.mjs.map +1 -1
  111. package/dist/core/utils/id-maker.mjs +10 -11
  112. package/dist/core/utils/id-maker.mjs.map +1 -1
  113. package/dist/core/utils/index.mjs +5 -5
  114. package/dist/core/utils/index.mjs.map +1 -1
  115. package/dist/core/utils/max-depth.mjs +7 -4
  116. package/dist/core/utils/max-depth.mjs.map +1 -1
  117. package/dist/core/utils/observable-utils.mjs +4 -7
  118. package/dist/core/utils/observable-utils.mjs.map +1 -1
  119. package/dist/core/utils/utils.mjs +32 -28
  120. package/dist/core/utils/utils.mjs.map +1 -1
  121. package/dist/entry-point.mjs +2 -46
  122. package/dist/entry-point.mjs.map +1 -1
  123. package/dist/index.mjs +3 -46
  124. package/dist/index.mjs.map +1 -1
  125. package/dist/utils/collect-to-array.mjs +8 -13
  126. package/dist/utils/collect-to-array.mjs.map +1 -1
  127. package/dist/utils/create-boolean-state.mjs +47 -22
  128. package/dist/utils/create-boolean-state.mjs.map +1 -1
  129. package/dist/utils/create-event-emitter.mjs +67 -19
  130. package/dist/utils/create-event-emitter.mjs.map +1 -1
  131. package/dist/utils/create-reducer.mjs +54 -16
  132. package/dist/utils/create-reducer.mjs.map +1 -1
  133. package/dist/utils/create-state.mjs +54 -27
  134. package/dist/utils/create-state.mjs.map +1 -1
  135. package/dist/utils/index.mjs +6 -6
  136. package/dist/utils/index.mjs.map +1 -1
  137. package/package.json +11 -12
@@ -1 +1 @@
1
- {"version":3,"file":"map-result-err.mjs","sources":["../../../../src/core/predefined/operators/map-result-err.mts"],"sourcesContent":["import { Result, type UnknownResult } from 'ts-data-forge';\nimport { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Transforms the error value (`Err`) of a `Result` type emitted by the source.\n * If the value is `Err`, the mapping function is applied; if `Ok`, it remains unchanged.\n *\n * @template R - The Result type from the source\n * @template E2 - The type of the mapped error value\n * @param mapFn - A function to transform the Err value\n * @returns An operator that maps the Err side of Result emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // result$ Ok(1) Err(\"bad\") Err(\"fail\")\n * // mapped$ Ok(1) Err(\"BAD\") Err(\"FAIL\")\n * //\n * // Explanation:\n * // - mapResultErr transforms the Err value of Result emissions\n * // - Ok values pass through unchanged\n *\n * const result$ = source<Result<number, string>>();\n *\n * const mapped$ = result$.pipe(mapResultErr((e) => e.toUpperCase()));\n *\n * const valueHistory: Result<number, string>[] = [];\n *\n * mapped$.subscribe((v) => {\n * valueHistory.push(v);\n * });\n *\n * result$.next(Result.ok(1));\n *\n * assert.deepStrictEqual(valueHistory, [Result.ok(1)]);\n *\n * result$.next(Result.err('bad'));\n *\n * assert.deepStrictEqual(valueHistory, [Result.ok(1), Result.err('BAD')]);\n *\n * result$.next(Result.err('fail'));\n *\n * assert.deepStrictEqual(valueHistory, [\n * Result.ok(1),\n * Result.err('BAD'),\n * Result.err('FAIL'),\n * ]);\n * ```\n */\nexport const mapResultErr = <R extends UnknownResult, E2>(\n mapFn: (x: Result.UnwrapErr<R>) => E2,\n): KeepInitialValueOperator<R, Result<Result.UnwrapOk<R>, E2>> =>\n map(Result.mapErr(mapFn));\n"],"names":[],"mappings":";;;;AAmDO,MAAM,eAAe,CAC1B,KAAA,KAEA,IAAI,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC;;;;"}
1
+ {"version":3,"file":"map-result-err.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-result-err.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAqC,EACwB,EAAE,CAC/D,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -1,8 +1,51 @@
1
1
  import { Result } from 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
2
+ import { map } from '../../operators/index.mjs';
4
3
 
5
- const mapResultOk = (mapFn) => map(Result.map(mapFn));
6
4
 
7
- export { mapResultOk };
8
- //# sourceMappingURL=map-result-ok.mjs.map
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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ export const mapResultOk = (mapFn) => map(Result.map(mapFn));
51
+ //# sourceMappingURL=map-result-ok.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-result-ok.mjs","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"sourcesContent":["import { Result, type UnknownResult } from 'ts-data-forge';\nimport { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Transforms the success value (`Ok`) of a `Result` type emitted by the source.\n * If the value is `Ok`, the mapping function is applied; if `Err`, it remains unchanged.\n *\n * @template R - The Result type from the source\n * @template S2 - The type of the mapped success value\n * @param mapFn - A function to transform the Ok value\n * @returns An operator that maps the Ok side of Result emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // result$ Ok(2) Err(\"e\") Ok(5)\n * // doubled$ Ok(4) Err(\"e\") Ok(10)\n * //\n * // Explanation:\n * // - mapResultOk transforms the Ok value of Result emissions\n * // - Err values pass through unchanged\n *\n * const result$ = source<Result<number, string>>();\n *\n * const doubled$ = result$.pipe(mapResultOk((x) => x * 2));\n *\n * const valueHistory: Result<number, string>[] = [];\n *\n * doubled$.subscribe((v) => {\n * valueHistory.push(v);\n * });\n *\n * result$.next(Result.ok(2));\n *\n * assert.deepStrictEqual(valueHistory, [Result.ok(4)]);\n *\n * result$.next(Result.err('e'));\n *\n * assert.deepStrictEqual(valueHistory, [Result.ok(4), Result.err('e')]);\n *\n * result$.next(Result.ok(5));\n *\n * assert.deepStrictEqual(valueHistory, [\n * Result.ok(4),\n * Result.err('e'),\n * Result.ok(10),\n * ]);\n * ```\n */\nexport const mapResultOk = <R extends UnknownResult, S2>(\n mapFn: (x: Result.UnwrapOk<R>) => S2,\n): KeepInitialValueOperator<R, Result<S2, Result.UnwrapErr<R>>> =>\n map(Result.map(mapFn));\n"],"names":[],"mappings":";;;;AAmDO,MAAM,cAAc,CACzB,KAAA,KAEA,IAAI,MAAA,CAAO,GAAA,CAAI,KAAK,CAAC;;;;"}
1
+ {"version":3,"file":"map-result-ok.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAoC,EAC0B,EAAE,CAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC"}
@@ -1,8 +1,43 @@
1
- import 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
1
+ import { map } from '../../operators/index.mjs';
4
2
 
5
- const mapTo = (value) => map(() => value);
6
3
 
7
- export { mapTo };
8
- //# sourceMappingURL=map-to.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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ export const mapTo = (value) => map(() => value);
43
+ //# sourceMappingURL=map-to.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"map-to.mjs","sources":["../../../../src/core/predefined/operators/map-to.mts"],"sourcesContent":["import { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Maps all emitted values to a constant value, ignoring the source values.\n * Equivalent to `map(() => value)`.\n *\n * @template A - The type of values from the source\n * @template B - The type of the constant value\n * @param value - The constant value to emit\n * @returns An operator that always emits the given constant\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // click$ MouseEvent MouseEvent MouseEvent\n * // count$ 1 1 1\n * //\n * // Explanation:\n * // - mapTo maps all emitted values to a constant value\n * // - Ignores the source values entirely\n * // - Useful for converting events to signals\n *\n * const click$ = source<string>();\n *\n * const one$ = click$.pipe(mapTo(1));\n *\n * const valueHistory: number[] = [];\n *\n * one$.subscribe((value) => {\n * valueHistory.push(value);\n * });\n *\n * click$.next('click1');\n *\n * click$.next('click2');\n *\n * click$.next('click3');\n *\n * assert.deepStrictEqual(valueHistory, [1, 1, 1]);\n * ```\n */\nexport const mapTo = <A, B>(value: B): KeepInitialValueOperator<A, B> =>\n map(() => value);\n"],"names":[],"mappings":";;;;AA2CO,MAAM,KAAA,GAAQ,CAAO,KAAA,KAC1B,GAAA,CAAI,MAAM,KAAK;;;;"}
1
+ {"version":3,"file":"map-to.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/map-to.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAO,KAAQ,EAAkC,EAAE,CACtE,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC"}
@@ -1,9 +1,47 @@
1
- import 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
1
+ import { map } from '../../operators/index.mjs';
4
2
 
5
- const pluck = (key) => map((a) => a[key]);
6
- const getKey = pluck;
7
3
 
8
- export { getKey, pluck };
9
- //# sourceMappingURL=pluck.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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ export const pluck = (key) => map((a) => a[key]);
42
+
43
+
44
+
45
+
46
+ export const getKey = pluck;
47
+ //# sourceMappingURL=pluck.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluck.mjs","sources":["../../../../src/core/predefined/operators/pluck.mts"],"sourcesContent":["import { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Extracts a property value from each emitted object by key.\n * Equivalent to `map(value => value[key])`.\n *\n * @template A - The type of the emitted object\n * @template K - The key to extract\n * @param key - The property key to pluck\n * @returns An operator that emits the property value\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // user$ { name: \"Alice\", age: 25 } { name: \"Bob\", age: 30 }\n * // name$ \"Alice\" \"Bob\"\n * //\n * // Explanation:\n * // - getKey extracts a property value from each emitted object\n * // - Equivalent to map(value => value[key])\n *\n * const user$ = source<Readonly<{ name: string; age: number }>>();\n *\n * const name$ = user$.pipe(getKey('name'));\n *\n * const valueHistory: string[] = [];\n *\n * name$.subscribe((n) => {\n * valueHistory.push(n);\n * });\n *\n * user$.next({ name: 'Alice', age: 25 });\n *\n * assert.deepStrictEqual(valueHistory, ['Alice']);\n *\n * user$.next({ name: 'Bob', age: 30 });\n *\n * assert.deepStrictEqual(valueHistory, ['Alice', 'Bob']);\n * ```\n */\nexport const pluck = <A, K extends keyof A>(\n key: K,\n): KeepInitialValueOperator<A, A[K]> => map((a) => a[key]);\n\n/**\n * Alias for `pluck`.\n * @see pluck\n */\nexport const getKey = pluck;\n"],"names":[],"mappings":";;;;AA0CO,MAAM,KAAA,GAAQ,CACnB,GAAA,KACsC,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,GAAG,CAAC;AAMlD,MAAM,MAAA,GAAS;;;;"}
1
+ {"version":3,"file":"pluck.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/pluck.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,GAAM,EAC6B,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC"}
@@ -1,9 +1,52 @@
1
1
  import { PositiveSafeInt } from 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { skipWhile } from '../../operators/skip-while.mjs';
2
+ import { skipWhile } from '../../operators/index.mjs';
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
4
26
 
5
- const skip = (n) => !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
6
- const idFn = (value) => value;
7
27
 
8
- export { skip };
9
- //# sourceMappingURL=skip.mjs.map
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ export const skip = (n) => !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);
51
+ const idFn = (value) => value;
52
+ //# sourceMappingURL=skip.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skip.mjs","sources":["../../../../src/core/predefined/operators/skip.mts"],"sourcesContent":["import { PositiveSafeInt } from 'ts-data-forge';\nimport { type PositiveSafeIntWithSmallInt } from 'ts-type-forge';\nimport { skipWhile } from '../../operators/index.mjs';\nimport { type DropInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Skips the first `n` emissions from the source observable.\n * After `n` values are skipped, all subsequent values pass through.\n *\n * @template A - The type of values from the source\n * @param n - The number of values to skip\n * @returns An operator that skips the first n emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // num$ 1 2 3 4 5\n * // skipped$ 3 4 5\n * // |skip 2|\n * //\n * // Explanation:\n * // - skip ignores the first n emissions from the source\n * // - After n values are skipped, all subsequent values pass through\n *\n * const num$ = source<number>();\n *\n * const skipped$ = num$.pipe(skip(2));\n *\n * const valueHistory: number[] = [];\n *\n * skipped$.subscribe((x) => {\n * valueHistory.push(x);\n * });\n *\n * num$.next(1); // skipped\n *\n * num$.next(2); // skipped\n *\n * assert.deepStrictEqual(valueHistory, []);\n *\n * num$.next(3); // logs: 3\n *\n * assert.deepStrictEqual(valueHistory, [3]);\n *\n * num$.next(4); // logs: 4\n *\n * num$.next(5); // logs: 5\n *\n * assert.deepStrictEqual(valueHistory, [3, 4, 5]);\n * ```\n */\nexport const skip = <A,>(\n n: PositiveSafeIntWithSmallInt,\n): DropInitialValueOperator<A, A> =>\n !PositiveSafeInt.is(n) ? idFn : skipWhile((_, index) => index + 1 <= n);\n\nconst idFn = <T,>(value: T): T => value;\n"],"names":[],"mappings":";;;;AAoDO,MAAM,IAAA,GAAO,CAClB,CAAA,KAEA,CAAC,gBAAgB,EAAA,CAAG,CAAC,CAAA,GAAI,IAAA,GAAO,UAAU,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,KAAK,CAAC;AAExE,MAAM,IAAA,GAAO,CAAK,KAAA,KAAgB,KAAA;;;;"}
1
+ {"version":3,"file":"skip.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/skip.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,CAA8B,EACE,EAAE,CAClC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1E,MAAM,IAAI,GAAG,CAAK,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC"}
@@ -1,8 +1,44 @@
1
- import 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { takeWhile } from '../../operators/take-while.mjs';
1
+ import { takeWhile } from '../../operators/index.mjs';
4
2
 
5
- const take = (n) => takeWhile((_, index) => index + 1 <= n);
6
3
 
7
- export { take };
8
- //# sourceMappingURL=take.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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ export const take = (n) => takeWhile((_, index) => index + 1 <= n);
44
+ //# sourceMappingURL=take.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"take.mjs","sources":["../../../../src/core/predefined/operators/take.mts"],"sourcesContent":["import { type PositiveSafeIntWithSmallInt } from 'ts-type-forge';\nimport { takeWhile } from '../../operators/index.mjs';\nimport { type DropInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Takes only the first `n` emissions from the source observable, then completes.\n *\n * @template A - The type of values from the source\n * @param n - The number of values to take\n * @returns An operator that takes the first n emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // num$ 1 2 3 4 (ignored)\n * // taken$ 1 2 3 | (completes)\n * //\n * // Explanation:\n * // - take emits only the first n values, then completes\n * // - Subsequent emissions from the source are ignored\n *\n * const num$ = source<number>();\n *\n * const taken$ = num$.pipe(take(3));\n *\n * const valueHistory: number[] = [];\n *\n * taken$.subscribe((x) => {\n * valueHistory.push(x);\n * });\n *\n * num$.next(1);\n *\n * num$.next(2);\n *\n * num$.next(3);\n *\n * assert.deepStrictEqual(valueHistory, [1, 2, 3]);\n *\n * num$.next(4); // ignored (already completed)\n *\n * assert.deepStrictEqual(valueHistory, [1, 2, 3]);\n * ```\n */\nexport const take = <A,>(\n n: PositiveSafeIntWithSmallInt,\n): DropInitialValueOperator<A, A> => takeWhile((_, index) => index + 1 <= n);\n"],"names":[],"mappings":";;;;AA6CO,MAAM,IAAA,GAAO,CAClB,CAAA,KACmC,SAAA,CAAU,CAAC,CAAA,EAAG,KAAA,KAAU,KAAA,GAAQ,CAAA,IAAK,CAAC;;;;"}
1
+ {"version":3,"file":"take.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/take.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,CAA8B,EACE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -1,11 +1,46 @@
1
1
  import { Optional } from 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
2
+ import { map } from '../../operators/index.mjs';
4
3
 
5
- const unwrapOptional = () => (
6
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
7
- map(Optional.unwrap)
8
- );
9
4
 
10
- export { unwrapOptional };
11
- //# sourceMappingURL=unwrap-optional.mjs.map
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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ export const unwrapOptional = () =>
44
+
45
+ map(Optional.unwrap);
46
+ //# sourceMappingURL=unwrap-optional.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-optional.mjs","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"sourcesContent":["import { Optional, type UnknownOptional } from 'ts-data-forge';\nimport { type Fn } from 'ts-type-forge';\nimport { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Unwraps `Optional` values, converting `Some(value)` to `value` and `None` to `undefined`.\n *\n * @template O - The Optional type from the source\n * @returns An operator that unwraps Optional emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // opt$ Some(42) None Some(7)\n * // unwrapped$ 42 undefined 7\n * //\n * // Explanation:\n * // - unwrapOptional converts Some(value) to value, and None to undefined\n * // - Useful for extracting raw values from Optional streams\n *\n * const opt$ = source<Optional<number>>();\n *\n * const unwrapped$ = opt$.pipe(unwrapOptional());\n *\n * const valueHistory: (number | undefined)[] = [];\n *\n * unwrapped$.subscribe((v) => {\n * valueHistory.push(v);\n * });\n *\n * opt$.next(Optional.some(42));\n *\n * assert.deepStrictEqual(valueHistory, [42]);\n *\n * opt$.next(Optional.none);\n *\n * assert.deepStrictEqual(valueHistory, [42, undefined]);\n *\n * opt$.next(Optional.some(7));\n *\n * assert.deepStrictEqual(valueHistory, [42, undefined, 7]);\n * ```\n */\nexport const unwrapOptional = <\n O extends UnknownOptional,\n>(): KeepInitialValueOperator<O, Optional.Unwrap<O> | undefined> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n map(Optional.unwrap as Fn<O, Optional.Unwrap<O> | undefined>);\n"],"names":[],"mappings":";;;;AA6CO,MAAM,cAAA,GAAiB;AAAA;AAAA,EAI5B,GAAA,CAAI,SAAS,MAA+C;AAAA;;;;"}
1
+ {"version":3,"file":"unwrap-optional.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-optional.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAEmC,EAAE;AACjE,oEAAoE;AACpE,GAAG,CAAC,QAAQ,CAAC,MAA+C,CAAC,CAAC"}
@@ -1,8 +1,44 @@
1
1
  import { Result } from 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
2
+ import { map } from '../../operators/index.mjs';
4
3
 
5
- const unwrapResultErr = () => map(Result.unwrapErr);
6
4
 
7
- export { unwrapResultErr };
8
- //# sourceMappingURL=unwrap-result-err.mjs.map
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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ export const unwrapResultErr = () => map(Result.unwrapErr);
44
+ //# sourceMappingURL=unwrap-result-err.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-result-err.mjs","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"sourcesContent":["import { Result, type UnknownResult } from 'ts-data-forge';\nimport { type Fn } from 'ts-type-forge';\nimport { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Unwraps the error value from a `Result`, converting `Err(error)` to `error` and `Ok` to `undefined`.\n *\n * @template R - The Result type from the source\n * @returns An operator that unwraps the Err side of Result emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // result$ Ok(1) Err(\"fail\") Ok(2)\n * // unwrapped$ undefined \"fail\" undefined\n * //\n * // Explanation:\n * // - unwrapResultErr converts Err(error) to error, and Ok to undefined\n * // - Useful for extracting error values from Result streams\n *\n * const result$ = source<Result<number, string>>();\n *\n * const unwrapped$ = result$.pipe(unwrapResultErr());\n *\n * const valueHistory: (string | undefined)[] = [];\n *\n * unwrapped$.subscribe((v) => {\n * valueHistory.push(v);\n * });\n *\n * result$.next(Result.ok(1));\n *\n * assert.deepStrictEqual(valueHistory, [undefined]);\n *\n * result$.next(Result.err('fail'));\n *\n * assert.deepStrictEqual(valueHistory, [undefined, 'fail']);\n *\n * result$.next(Result.ok(2));\n *\n * assert.deepStrictEqual(valueHistory, [undefined, 'fail', undefined]);\n * ```\n */\nexport const unwrapResultErr = <\n R extends UnknownResult,\n>(): KeepInitialValueOperator<R, Result.UnwrapErr<R> | undefined> =>\n map(Result.unwrapErr as Fn<R, Result.UnwrapErr<R> | undefined>);\n"],"names":[],"mappings":";;;;AA6CO,MAAM,eAAA,GAAkB,MAG7B,GAAA,CAAI,MAAA,CAAO,SAAmD;;;;"}
1
+ {"version":3,"file":"unwrap-result-err.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-err.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAEmC,EAAE,CAClE,GAAG,CAAC,MAAM,CAAC,SAAmD,CAAC,CAAC"}
@@ -1,11 +1,46 @@
1
1
  import { Result } from 'ts-data-forge';
2
- import '../../utils/id-maker.mjs';
3
- import { map } from '../../operators/map.mjs';
2
+ import { map } from '../../operators/index.mjs';
4
3
 
5
- const unwrapResultOk = () => (
6
- // eslint-disable-next-line total-functions/no-unsafe-type-assertion
7
- map(Result.unwrapOk)
8
- );
9
4
 
10
- export { unwrapResultOk };
11
- //# sourceMappingURL=unwrap-result-ok.mjs.map
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
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ export const unwrapResultOk = () =>
44
+
45
+ map(Result.unwrapOk);
46
+ //# sourceMappingURL=unwrap-result-ok.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-result-ok.mjs","sources":["../../../../src/core/predefined/operators/unwrap-result-ok.mts"],"sourcesContent":["import { Result, type UnknownResult } from 'ts-data-forge';\nimport { type Fn } from 'ts-type-forge';\nimport { map } from '../../operators/index.mjs';\nimport { type KeepInitialValueOperator } from '../../types/index.mjs';\n\n/**\n * Unwraps the success value from a `Result`, converting `Ok(value)` to `value` and `Err` to `undefined`.\n *\n * @template R - The Result type from the source\n * @returns An operator that unwraps the Ok side of Result emissions\n *\n * @example\n * ```ts\n * // Timeline:\n * //\n * // result$ Ok(42) Err(\"e\") Ok(7)\n * // unwrapped$ 42 undefined 7\n * //\n * // Explanation:\n * // - unwrapResultOk converts Ok(value) to value, and Err to undefined\n * // - Useful for extracting success values from Result streams\n *\n * const result$ = source<Result<number, string>>();\n *\n * const unwrapped$ = result$.pipe(unwrapResultOk());\n *\n * const valueHistory: (number | undefined)[] = [];\n *\n * unwrapped$.subscribe((v) => {\n * valueHistory.push(v);\n * });\n *\n * result$.next(Result.ok(42));\n *\n * assert.deepStrictEqual(valueHistory, [42]);\n *\n * result$.next(Result.err('e'));\n *\n * assert.deepStrictEqual(valueHistory, [42, undefined]);\n *\n * result$.next(Result.ok(7));\n *\n * assert.deepStrictEqual(valueHistory, [42, undefined, 7]);\n * ```\n */\nexport const unwrapResultOk = <\n R extends UnknownResult,\n>(): KeepInitialValueOperator<R, Result.UnwrapOk<R> | undefined> =>\n // eslint-disable-next-line total-functions/no-unsafe-type-assertion\n map(Result.unwrapOk as Fn<R, Result.UnwrapOk<R> | undefined>);\n"],"names":[],"mappings":";;;;AA6CO,MAAM,cAAA,GAAiB;AAAA;AAAA,EAI5B,GAAA,CAAI,OAAO,QAAiD;AAAA;;;;"}
1
+ {"version":3,"file":"unwrap-result-ok.mjs","sourceRoot":"","sources":["../../../../src/core/predefined/operators/unwrap-result-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAEmC,EAAE;AACjE,oEAAoE;AACpE,GAAG,CAAC,MAAM,CAAC,QAAiD,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
-
2
- //# sourceMappingURL=id.mjs.map
1
+ export {};
2
+ //# sourceMappingURL=id.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"id.mjs","sourceRoot":"","sources":["../../../src/core/types/id.mts"],"names":[],"mappings":""}
@@ -1,3 +1,7 @@
1
- import 'ts-data-forge';
2
- export { isChildObservable, isManagerObservable, isRootObservable } from './observable.mjs';
3
- //# sourceMappingURL=index.mjs.map
1
+ export * from './id.mjs';
2
+ export * from './observable-family.mjs';
3
+ export * from './observable-kind.mjs';
4
+ export * from './observable.mjs';
5
+ export * from './timer.mjs';
6
+ export * from './types.mjs';
7
+ //# 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/types/index.mts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -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":""}