@fncts/observable 0.0.25 → 0.0.27

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 (199) hide show
  1. package/Observable/api/raceWith.d.ts +0 -1
  2. package/Observable/api/repeatWhen.d.ts +1 -1
  3. package/Observable/api/share.d.ts +1 -1
  4. package/Observable/api.d.ts +4 -4
  5. package/Observable/definition.d.ts +1 -4
  6. package/Observable.d.ts +16 -16
  7. package/ObservableRef.d.ts +2 -2
  8. package/Operator.d.ts +3 -3
  9. package/Subject.d.ts +16 -7
  10. package/Subscriber.d.ts +23 -8
  11. package/Subscription.d.ts +2 -2
  12. package/_cjs/Action.cjs +2 -3
  13. package/_cjs/Action.cjs.map +1 -1
  14. package/_cjs/AnimationFrameAction.cjs +3 -3
  15. package/_cjs/AnimationFrameAction.cjs.map +1 -1
  16. package/_cjs/AnimationFrameScheduler.cjs +3 -3
  17. package/_cjs/AnimationFrameScheduler.cjs.map +1 -1
  18. package/_cjs/AsyncAction.cjs +5 -5
  19. package/_cjs/AsyncAction.cjs.map +1 -1
  20. package/_cjs/AsyncScheduler.cjs +3 -5
  21. package/_cjs/AsyncScheduler.cjs.map +1 -1
  22. package/_cjs/BehaviorSubject.cjs +3 -3
  23. package/_cjs/BehaviorSubject.cjs.map +1 -1
  24. package/_cjs/Notification.cjs.map +1 -1
  25. package/_cjs/Observable/api/connect.cjs +8 -8
  26. package/_cjs/Observable/api/connect.cjs.map +1 -1
  27. package/_cjs/Observable/api/connectable.cjs +5 -5
  28. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  29. package/_cjs/Observable/api/fromCallback.cjs +3 -3
  30. package/_cjs/Observable/api/fromCallback.cjs.map +1 -1
  31. package/_cjs/Observable/api/fromEvent.cjs +2 -2
  32. package/_cjs/Observable/api/fromEvent.cjs.map +1 -1
  33. package/_cjs/Observable/api/index.cjs.map +1 -1
  34. package/_cjs/Observable/api/race.cjs +5 -5
  35. package/_cjs/Observable/api/race.cjs.map +1 -1
  36. package/_cjs/Observable/api/raceWith.cjs +4 -5
  37. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  38. package/_cjs/Observable/api/repeatWhen.cjs +10 -9
  39. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  40. package/_cjs/Observable/api/retryWhen.cjs +10 -9
  41. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  42. package/_cjs/Observable/api/share.cjs +10 -10
  43. package/_cjs/Observable/api/share.cjs.map +1 -1
  44. package/_cjs/Observable/api/window.cjs +13 -12
  45. package/_cjs/Observable/api/window.cjs.map +1 -1
  46. package/_cjs/Observable/api/windowCount.cjs +13 -11
  47. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  48. package/_cjs/Observable/api/windowTime.cjs +13 -12
  49. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  50. package/_cjs/Observable/api/windowToggle.cjs +27 -25
  51. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  52. package/_cjs/Observable/api/windowWhen.cjs +18 -16
  53. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  54. package/_cjs/Observable/api.cjs +328 -317
  55. package/_cjs/Observable/api.cjs.map +1 -1
  56. package/_cjs/Observable/definition.cjs +8 -15
  57. package/_cjs/Observable/definition.cjs.map +1 -1
  58. package/_cjs/Observable/dom/animationFrames.cjs +4 -4
  59. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  60. package/_cjs/Observable/instances.cjs.map +1 -1
  61. package/_cjs/Observable.cjs +64 -64
  62. package/_cjs/Observable.cjs.map +1 -1
  63. package/_cjs/ObservableRef/api.cjs +3 -3
  64. package/_cjs/ObservableRef/api.cjs.map +1 -1
  65. package/_cjs/ObservableRef/atomic.cjs +3 -3
  66. package/_cjs/ObservableRef/atomic.cjs.map +1 -1
  67. package/_cjs/ObservableRef/definition.cjs +2 -2
  68. package/_cjs/ObservableRef/definition.cjs.map +1 -1
  69. package/_cjs/ObservableRef.cjs +8 -8
  70. package/_cjs/ObservableRef.cjs.map +1 -1
  71. package/_cjs/Observer.cjs.map +1 -1
  72. package/_cjs/Operator.cjs +10 -15
  73. package/_cjs/Operator.cjs.map +1 -1
  74. package/_cjs/Scheduler.cjs +3 -3
  75. package/_cjs/Scheduler.cjs.map +1 -1
  76. package/_cjs/Subject.cjs +70 -44
  77. package/_cjs/Subject.cjs.map +1 -1
  78. package/_cjs/Subscriber.cjs +123 -71
  79. package/_cjs/Subscriber.cjs.map +1 -1
  80. package/_cjs/Subscription.cjs +8 -8
  81. package/_cjs/Subscription.cjs.map +1 -1
  82. package/_cjs/config.cjs +15 -0
  83. package/_cjs/config.cjs.map +1 -0
  84. package/_cjs/global.cjs.map +1 -1
  85. package/_cjs/index.cjs +14 -14
  86. package/_cjs/index.cjs.map +1 -1
  87. package/_cjs/internal/animationFrameProvider.cjs +2 -2
  88. package/_cjs/internal/animationFrameProvider.cjs.map +1 -1
  89. package/_cjs/internal/args.cjs +2 -2
  90. package/_cjs/internal/args.cjs.map +1 -1
  91. package/_cjs/internal/intervalProvider.cjs.map +1 -1
  92. package/_cjs/internal/performanceTimestampProvider.cjs.map +1 -1
  93. package/_cjs/internal/timeoutProvider.cjs.map +1 -1
  94. package/_cjs/internal/timestampProvider.cjs.map +1 -1
  95. package/_cjs/internal/util.cjs +3 -3
  96. package/_cjs/internal/util.cjs.map +1 -1
  97. package/_mjs/Action.mjs +0 -1
  98. package/_mjs/Action.mjs.map +1 -1
  99. package/_mjs/AnimationFrameAction.mjs.map +1 -1
  100. package/_mjs/AnimationFrameScheduler.mjs.map +1 -1
  101. package/_mjs/AsyncAction.mjs +3 -3
  102. package/_mjs/AsyncAction.mjs.map +1 -1
  103. package/_mjs/AsyncScheduler.mjs +0 -2
  104. package/_mjs/AsyncScheduler.mjs.map +1 -1
  105. package/_mjs/BehaviorSubject.mjs +1 -1
  106. package/_mjs/BehaviorSubject.mjs.map +1 -1
  107. package/_mjs/Notification.mjs.map +1 -1
  108. package/_mjs/Observable/api/connect.mjs +6 -6
  109. package/_mjs/Observable/api/connect.mjs.map +1 -1
  110. package/_mjs/Observable/api/connectable.mjs +1 -1
  111. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  112. package/_mjs/Observable/api/fromCallback.mjs.map +1 -1
  113. package/_mjs/Observable/api/fromEvent.mjs.map +1 -1
  114. package/_mjs/Observable/api/index.mjs.map +1 -1
  115. package/_mjs/Observable/api/race.mjs +1 -1
  116. package/_mjs/Observable/api/race.mjs.map +1 -1
  117. package/_mjs/Observable/api/raceWith.mjs +3 -4
  118. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  119. package/_mjs/Observable/api/repeatWhen.mjs +9 -8
  120. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  121. package/_mjs/Observable/api/retryWhen.mjs +9 -8
  122. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  123. package/_mjs/Observable/api/share.mjs +8 -8
  124. package/_mjs/Observable/api/share.mjs.map +1 -1
  125. package/_mjs/Observable/api/window.mjs +12 -11
  126. package/_mjs/Observable/api/window.mjs.map +1 -1
  127. package/_mjs/Observable/api/windowCount.mjs +12 -10
  128. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  129. package/_mjs/Observable/api/windowTime.mjs +11 -10
  130. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  131. package/_mjs/Observable/api/windowToggle.mjs +25 -23
  132. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  133. package/_mjs/Observable/api/windowWhen.mjs +17 -15
  134. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  135. package/_mjs/Observable/api.mjs +306 -295
  136. package/_mjs/Observable/api.mjs.map +1 -1
  137. package/_mjs/Observable/definition.mjs +2 -9
  138. package/_mjs/Observable/definition.mjs.map +1 -1
  139. package/_mjs/Observable/dom/animationFrames.mjs +1 -1
  140. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  141. package/_mjs/Observable/instances.mjs.map +1 -1
  142. package/_mjs/Observable.mjs +16 -19
  143. package/_mjs/Observable.mjs.map +1 -1
  144. package/_mjs/ObservableRef/api.mjs.map +1 -1
  145. package/_mjs/ObservableRef/atomic.mjs.map +1 -1
  146. package/_mjs/ObservableRef/definition.mjs.map +1 -1
  147. package/_mjs/ObservableRef.mjs +2 -3
  148. package/_mjs/ObservableRef.mjs.map +1 -1
  149. package/_mjs/Observer.mjs.map +1 -1
  150. package/_mjs/Operator.mjs +6 -11
  151. package/_mjs/Operator.mjs.map +1 -1
  152. package/_mjs/Scheduler.mjs.map +1 -1
  153. package/_mjs/Subject.mjs +65 -39
  154. package/_mjs/Subject.mjs.map +1 -1
  155. package/_mjs/Subscriber.mjs +119 -67
  156. package/_mjs/Subscriber.mjs.map +1 -1
  157. package/_mjs/Subscription.mjs +6 -6
  158. package/_mjs/Subscription.mjs.map +1 -1
  159. package/_mjs/config.mjs +9 -0
  160. package/_mjs/config.mjs.map +1 -0
  161. package/_mjs/global.mjs.map +1 -1
  162. package/_mjs/index.mjs.map +1 -1
  163. package/_mjs/internal/animationFrameProvider.mjs.map +1 -1
  164. package/_mjs/internal/args.mjs.map +1 -1
  165. package/_mjs/internal/intervalProvider.mjs.map +1 -1
  166. package/_mjs/internal/performanceTimestampProvider.mjs.map +1 -1
  167. package/_mjs/internal/timeoutProvider.mjs.map +1 -1
  168. package/_mjs/internal/timestampProvider.mjs.map +1 -1
  169. package/_mjs/internal/util.mjs.map +1 -1
  170. package/_src/Action.ts +0 -1
  171. package/_src/AsyncAction.ts +3 -3
  172. package/_src/AsyncScheduler.ts +0 -2
  173. package/_src/BehaviorSubject.ts +1 -1
  174. package/_src/Observable/api/connect.ts +2 -2
  175. package/_src/Observable/api/connectable.ts +1 -1
  176. package/_src/Observable/api/race.ts +1 -1
  177. package/_src/Observable/api/raceWith.ts +2 -5
  178. package/_src/Observable/api/repeatWhen.ts +4 -4
  179. package/_src/Observable/api/retryWhen.ts +3 -3
  180. package/_src/Observable/api/share.ts +6 -6
  181. package/_src/Observable/api/window.ts +3 -3
  182. package/_src/Observable/api/windowCount.ts +30 -33
  183. package/_src/Observable/api/windowTime.ts +4 -4
  184. package/_src/Observable/api/windowToggle.ts +19 -21
  185. package/_src/Observable/api/windowWhen.ts +10 -13
  186. package/_src/Observable/api.ts +358 -366
  187. package/_src/Observable/definition.ts +2 -17
  188. package/_src/Observable/dom/animationFrames.ts +1 -1
  189. package/_src/Observable.ts +18 -19
  190. package/_src/ObservableRef.ts +2 -3
  191. package/_src/Operator.ts +9 -21
  192. package/_src/Subject.ts +66 -39
  193. package/_src/Subscriber.ts +134 -59
  194. package/_src/Subscription.ts +8 -8
  195. package/_src/config.ts +40 -0
  196. package/_src/global.ts +1 -1
  197. package/config.d.ts +36 -0
  198. package/global.d.ts +1 -1
  199. package/package.json +2 -2
@@ -145,7 +145,7 @@ function from_1(input) {
145
145
  }
146
146
  export function fromArrayLike(input) {
147
147
  return new Observable(s => {
148
- for (let i = 0; i < input.length && !s.closed; i++) {
148
+ for (let i = 0; i < input.length && !s._closed; i++) {
149
149
  s.next(input[i]);
150
150
  }
151
151
  s.complete();
@@ -160,7 +160,7 @@ export function fromIterable(iterable) {
160
160
  return new Observable(s => {
161
161
  for (const value of iterable) {
162
162
  s.next(value);
163
- if (s.closed) {
163
+ if (s._closed) {
164
164
  return;
165
165
  }
166
166
  }
@@ -170,7 +170,7 @@ export function fromIterable(iterable) {
170
170
  export function fromPromise(promise) {
171
171
  return new Observable(s => {
172
172
  promise.then(value => {
173
- if (!s.closed) {
173
+ if (!s._closed) {
174
174
  s.next(value);
175
175
  s.complete();
176
176
  }
@@ -214,7 +214,7 @@ export function iterate(options) {
214
214
  async function process(asyncIterable, subscriber) {
215
215
  for await (const value of asyncIterable) {
216
216
  subscriber.next(value);
217
- if (subscriber.closed) {
217
+ if (subscriber._closed) {
218
218
  return;
219
219
  }
220
220
  }
@@ -225,7 +225,6 @@ async function process(asyncIterable, subscriber) {
225
225
  */
226
226
  function interval_1(period = 0, scheduler = tsplus_module_5.asyncScheduler) {
227
227
  if (period < 0) {
228
- // eslint-disable-next-line no-param-reassign
229
228
  period = 0;
230
229
  }
231
230
  return timer_1(period, period, scheduler);
@@ -281,7 +280,7 @@ export function scheduleArray(input, scheduler) {
281
280
  s.complete();
282
281
  } else {
283
282
  s.next(input[i++]);
284
- if (!s.closed) {
283
+ if (!s._closed) {
285
284
  this.schedule();
286
285
  }
287
286
  }
@@ -367,7 +366,6 @@ function timer_1(time = 0, intervalOrScheduler, scheduler = tsplus_module_5.asyn
367
366
  let intervalDuration = -1;
368
367
  if (intervalOrScheduler != null) {
369
368
  if (tsplus_module_7.isScheduler(intervalOrScheduler)) {
370
- // eslint-disable-next-line no-param-reassign
371
369
  scheduler = intervalOrScheduler;
372
370
  } else {
373
371
  intervalDuration = intervalOrScheduler;
@@ -380,7 +378,7 @@ function timer_1(time = 0, intervalOrScheduler, scheduler = tsplus_module_5.asyn
380
378
  }
381
379
  let n = 0;
382
380
  return scheduler.schedule(function () {
383
- if (!s.closed) {
381
+ if (!s._closed) {
384
382
  s.next(n++);
385
383
  if (0 <= intervalDuration) {
386
384
  this.schedule(undefined, intervalDuration);
@@ -401,7 +399,7 @@ export function makeZip(...sources) {
401
399
  subscriber.add(() => {
402
400
  buffers = completed = null;
403
401
  });
404
- for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {
402
+ for (let sourceIndex = 0; !subscriber._closed && sourceIndex < sources.length; sourceIndex++) {
405
403
  from_1(sources[sourceIndex]).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
406
404
  next: value => {
407
405
  buffers[sourceIndex].push(value);
@@ -431,9 +429,9 @@ function fromIO_1(io, scheduler = tsplus_module_5.asyncScheduler) {
431
429
  return new Observable((s, env) => {
432
430
  let fiber;
433
431
  const scheduled = scheduler.schedule(() => {
434
- fiber = tsplus_module_10.unsafeRunFiber(tsplus_module_9.provideEnvironment(env, fileName_1 + ":489:36")(io), fileName_1 + ":489:56");
432
+ fiber = tsplus_module_10.unsafeRunFiber(tsplus_module_9.provideEnvironment(env, fileName_1 + ":487:36")(io), fileName_1 + ":487:56");
435
433
  fiber.addObserver(exit => {
436
- if (!s.closed) {
434
+ if (!s._closed) {
437
435
  tsplus_module_11.match(cause => s.error(cause), a => s.next(a))(exit);
438
436
  s.complete();
439
437
  }
@@ -441,7 +439,7 @@ function fromIO_1(io, scheduler = tsplus_module_5.asyncScheduler) {
441
439
  });
442
440
  return () => {
443
441
  scheduled.unsubscribe();
444
- fiber && tsplus_module_10.unsafeRunFiber(tsplus_module_12.interrupt(fiber), fileName_1 + ":502:46");
442
+ fiber && tsplus_module_10.unsafeRunFiber(tsplus_module_12.interrupt(fiber), fileName_1 + ":500:46");
445
443
  };
446
444
  });
447
445
  }
@@ -478,14 +476,14 @@ export function ap(fa) {
478
476
  */
479
477
  function mapWithIndex_1(f) {
480
478
  return fa => {
481
- return tsplus_module_8.operate_((source, subscriber, environment) => {
479
+ return new Observable((destination, environment) => {
482
480
  let i = 0;
483
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
481
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
484
482
  next: value => {
485
- subscriber.next(f(i++, value));
483
+ destination.next(f(i++, value));
486
484
  }
487
- }));
488
- })(fa);
485
+ })(destination));
486
+ });
489
487
  };
490
488
  }
491
489
  /**
@@ -509,21 +507,21 @@ function as_1(b) {
509
507
  */
510
508
  export function mapError(f) {
511
509
  return fa => {
512
- return tsplus_module_8.operate_((source, subscriber, environment) => {
513
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
510
+ return new Observable((subscriber, environment) => {
511
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
514
512
  error: err => {
515
513
  subscriber.error(tsplus_module_1.map(f)(err));
516
514
  }
517
- }));
518
- })(fa);
515
+ })(subscriber));
516
+ });
519
517
  };
520
518
  }
521
519
  /**
522
520
  * @tsplus getter fncts.observable.Observable swap
523
521
  */
524
522
  export function swap(fa) {
525
- return tsplus_module_8.operate_((source, subscriber, environment) => {
526
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
523
+ return new Observable((subscriber, environment) => {
524
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
527
525
  next: value => {
528
526
  subscriber.error(tsplus_module_1.fail(value));
529
527
  },
@@ -534,17 +532,17 @@ export function swap(fa) {
534
532
  subscriber.error(cause);
535
533
  })(tsplus_module_1.failureOrCause(err));
536
534
  }
537
- }));
538
- })(fa);
535
+ })(subscriber));
536
+ });
539
537
  }
540
538
  function filterWithIndex_1(predicate) {
541
539
  return fa => {
542
- return tsplus_module_8.operate_((source, subscriber, environment) => {
540
+ return new Observable((subscriber, environment) => {
543
541
  let index = 0;
544
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
542
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
545
543
  next: value => predicate(index++, value) && subscriber.next(value)
546
- }));
547
- })(fa);
544
+ })(subscriber));
545
+ });
548
546
  };
549
547
  }
550
548
  export function filter(predicate) {
@@ -557,12 +555,12 @@ export function filter(predicate) {
557
555
  */
558
556
  function filterMapWithIndex_1(f) {
559
557
  return fa => {
560
- return tsplus_module_8.operate_((source, subscriber, environment) => {
558
+ return new Observable((subscriber, environment) => {
561
559
  let index = 0;
562
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
560
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
563
561
  next: value => tsplus_module_15.match(() => tsplus_module_2.noop, b => subscriber.next(b))(f(index++, value))
564
- }));
565
- })(fa);
562
+ })(subscriber));
563
+ });
566
564
  };
567
565
  }
568
566
  /**
@@ -588,21 +586,21 @@ export function partition(predicate) {
588
586
  */
589
587
  function partitionMapWithIndex_1(f) {
590
588
  return fa => {
591
- return [tsplus_module_8.operate_((source, subscriber, environment) => {
589
+ return [new Observable((subscriber, environment) => {
592
590
  let index = 0;
593
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
591
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
594
592
  next: value => {
595
593
  tsplus_module_14.match(b => subscriber.next(b), tsplus_module_2.noop)(f(index++, value));
596
594
  }
597
- }));
598
- })(fa), tsplus_module_8.operate_((source, subscriber, environment) => {
595
+ })(subscriber));
596
+ }), new Observable((subscriber, environment) => {
599
597
  let index = 0;
600
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
598
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
601
599
  next: value => {
602
600
  tsplus_module_14.match(tsplus_module_2.noop, c => subscriber.next(c))(f(index++, value));
603
601
  }
604
- }));
605
- })(fa)];
602
+ })(subscriber));
603
+ })];
606
604
  };
607
605
  }
608
606
  /**
@@ -626,7 +624,9 @@ export function provideService(service, /** @tsplus auto */tag) {
626
624
  */
627
625
  function mergeMapWithIndex_1(f, concurrent = Infinity) {
628
626
  return ma => {
629
- return tsplus_module_8.operate_((source, sub, environment) => mergeInternal(source, sub, environment, f, concurrent))(ma);
627
+ return new Observable((subscriber, environment) => {
628
+ return mergeInternal(ma, subscriber, environment, f, concurrent);
629
+ });
630
630
  };
631
631
  }
632
632
  /**
@@ -672,7 +672,9 @@ export function flatten(mma) {
672
672
  */
673
673
  function foldLeftWithIndex_1(initial, f) {
674
674
  return fa => {
675
- return tsplus_module_8.operate_(scanInternal(f, initial, true, false, true))(fa);
675
+ return new Observable((subscriber, environment) => {
676
+ return scanInternal(fa, subscriber, environment, f, initial, true, false, true);
677
+ });
676
678
  };
677
679
  }
678
680
  /**
@@ -688,7 +690,7 @@ function foldLeft_1(initial, f) {
688
690
  */
689
691
  export function at(index) {
690
692
  return fa => {
691
- return onEmpty_1(() => tsplus_module_17.nothing(fileName_1 + ":841:29"))(map_1(tsplus_module_17.just)(take_1(1)(filterWithIndex_1(i => i === index)(fa))));
693
+ return onEmpty_1(() => tsplus_module_17.nothing(fileName_1 + ":843:29"))(map_1(tsplus_module_17.just)(take_1(1)(filterWithIndex_1(i => i === index)(fa))));
692
694
  };
693
695
  }
694
696
  /**
@@ -696,8 +698,8 @@ export function at(index) {
696
698
  */
697
699
  function audit_1(durationSelector) {
698
700
  return fa => {
699
- return tsplus_module_8.operate_((source, subscriber, environment) => {
700
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":851:40");
701
+ return new Observable((subscriber, environment) => {
702
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":853:40");
701
703
  let durationSubscriber = null;
702
704
  let isComplete = false;
703
705
  const endDuration = () => {
@@ -707,7 +709,7 @@ function audit_1(durationSelector) {
707
709
  const {
708
710
  value
709
711
  } = lastValue;
710
- lastValue = tsplus_module_17.nothing(fileName_1 + ":859:36");
712
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":861:36");
711
713
  subscriber.next(value);
712
714
  }
713
715
  isComplete && subscriber.complete();
@@ -716,9 +718,9 @@ function audit_1(durationSelector) {
716
718
  durationSubscriber = null;
717
719
  isComplete && subscriber.complete();
718
720
  };
719
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
721
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
720
722
  next: value => {
721
- lastValue = tsplus_module_17.just(value, fileName_1 + ":871:29");
723
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":873:29");
722
724
  if (!durationSubscriber) {
723
725
  from_1(durationSelector(value)).provideEnvironment(environment).subscribe(durationSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
724
726
  next: endDuration,
@@ -728,10 +730,10 @@ function audit_1(durationSelector) {
728
730
  },
729
731
  complete: () => {
730
732
  isComplete = true;
731
- (tsplus_module_18.isNothing(lastValue) || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();
733
+ (tsplus_module_18.isNothing(lastValue) || !durationSubscriber || durationSubscriber._closed) && subscriber.complete();
732
734
  }
733
735
  }));
734
- })(fa);
736
+ });
735
737
  };
736
738
  }
737
739
  /**
@@ -747,27 +749,27 @@ export function auditTime(duration, scheduler = tsplus_module_5.asyncScheduler)
747
749
  */
748
750
  export function buffer(closingNotifier) {
749
751
  return fa => {
750
- return tsplus_module_8.operate_((source, subscriber, environment) => {
752
+ return new Observable((subscriber, environment) => {
751
753
  let buffer = [];
752
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
754
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
753
755
  next: value => buffer.push(value),
754
756
  complete: () => {
755
757
  subscriber.next(buffer);
756
758
  subscriber.complete();
757
759
  }
758
- }));
759
- closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
760
+ })(subscriber));
761
+ closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
760
762
  next: () => {
761
763
  const b = buffer;
762
764
  buffer = [];
763
765
  subscriber.next(b);
764
766
  },
765
767
  complete: tsplus_module_2.noop
766
- }));
768
+ })(subscriber));
767
769
  return () => {
768
770
  buffer = null;
769
771
  };
770
- })(fa);
772
+ });
771
773
  };
772
774
  }
773
775
  /**
@@ -775,12 +777,11 @@ export function buffer(closingNotifier) {
775
777
  */
776
778
  export function bufferCount(bufferSize, startBufferEvery) {
777
779
  return fa => {
778
- // eslint-disable-next-line no-param-reassign
779
780
  startBufferEvery = startBufferEvery ?? bufferSize;
780
- return tsplus_module_8.operate_((source, subscriber, environment) => {
781
+ return new Observable((subscriber, environment) => {
781
782
  let buffers = [];
782
783
  let count = 0;
783
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
784
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
784
785
  next: value => {
785
786
  let toEmit = null;
786
787
  if (count++ % startBufferEvery === 0) {
@@ -805,11 +806,12 @@ export function bufferCount(bufferSize, startBufferEvery) {
805
806
  subscriber.next(buffer);
806
807
  }
807
808
  subscriber.complete();
809
+ },
810
+ finalize: () => {
811
+ buffers = null;
808
812
  }
809
- }, () => {
810
- buffers = null;
811
- }));
812
- })(fa);
813
+ })(subscriber));
814
+ });
813
815
  };
814
816
  }
815
817
  /**
@@ -823,7 +825,7 @@ export function bufferTime(config) {
823
825
  maxBufferSize = Infinity,
824
826
  scheduler = tsplus_module_5.asyncScheduler
825
827
  } = config;
826
- return tsplus_module_8.operate_((source, subscriber, environment) => {
828
+ return new Observable((subscriber, environment) => {
827
829
  let bufferRecords = [];
828
830
  let restartOnEmit = true;
829
831
  const emit = record => {
@@ -851,10 +853,10 @@ export function bufferTime(config) {
851
853
  };
852
854
  bufferCreationInterval !== null && bufferCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function () {
853
855
  startBuffer();
854
- !this.closed && subscriber.add(this.schedule(null, bufferCreationInterval));
856
+ !this._closed && subscriber.add(this.schedule(null, bufferCreationInterval));
855
857
  }, bufferCreationInterval)) : restartOnEmit = true;
856
858
  startBuffer();
857
- const bufferTimeSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
859
+ const bufferTimeSubscriber = tsplus_module_8.operate_({
858
860
  next: value => {
859
861
  const recordsCopy = bufferRecords.slice();
860
862
  for (const record of recordsCopy) {
@@ -872,10 +874,13 @@ export function bufferTime(config) {
872
874
  bufferTimeSubscriber?.unsubscribe();
873
875
  subscriber.complete();
874
876
  subscriber.unsubscribe();
877
+ },
878
+ finalize: () => {
879
+ bufferRecords = null;
875
880
  }
876
- }, () => bufferRecords = null);
877
- source.provideEnvironment(environment).subscribe(bufferTimeSubscriber);
878
- })(fa);
881
+ })(subscriber);
882
+ return fa.provideEnvironment(environment).subscribe(bufferTimeSubscriber);
883
+ });
879
884
  };
880
885
  }
881
886
  /**
@@ -883,7 +888,7 @@ export function bufferTime(config) {
883
888
  */
884
889
  export function bufferToggle(openings, closingSelector) {
885
890
  return fa => {
886
- return tsplus_module_8.operate_((source, subscriber, environment) => {
891
+ return new Observable((subscriber, environment) => {
887
892
  const buffers = [];
888
893
  from_1(openings).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
889
894
  next: openValue => {
@@ -902,7 +907,7 @@ export function bufferToggle(openings, closingSelector) {
902
907
  },
903
908
  complete: tsplus_module_2.noop
904
909
  }));
905
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
910
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
906
911
  next: value => {
907
912
  for (const buffer of buffers) {
908
913
  buffer.push(value);
@@ -914,8 +919,8 @@ export function bufferToggle(openings, closingSelector) {
914
919
  }
915
920
  subscriber.complete();
916
921
  }
917
- }));
918
- })(fa);
922
+ })(subscriber));
923
+ });
919
924
  };
920
925
  }
921
926
  /**
@@ -923,7 +928,7 @@ export function bufferToggle(openings, closingSelector) {
923
928
  */
924
929
  export function bufferWhen(closingSelector) {
925
930
  return fa => {
926
- return tsplus_module_8.operate_((source, subscriber, environment) => {
931
+ return new Observable((subscriber, environment) => {
927
932
  let buffer = null;
928
933
  let closingSubscriber = null;
929
934
  const openBuffer = () => {
@@ -937,14 +942,15 @@ export function bufferWhen(closingSelector) {
937
942
  }));
938
943
  };
939
944
  openBuffer();
940
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
945
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
941
946
  next: value => buffer?.push(value),
942
947
  complete: () => {
943
948
  buffer && subscriber.next(buffer);
944
949
  subscriber.complete();
945
- }
946
- }, () => buffer = closingSubscriber = null));
947
- })(fa);
950
+ },
951
+ finalize: () => buffer = closingSubscriber = null
952
+ })(subscriber));
953
+ });
948
954
  };
949
955
  }
950
956
  /**
@@ -952,13 +958,13 @@ export function bufferWhen(closingSelector) {
952
958
  */
953
959
  function catchAllCause_1(f) {
954
960
  return self => {
955
- return tsplus_module_8.operate_((source, subscriber, environment) => {
961
+ return new Observable((subscriber, environment) => {
956
962
  let innerSub = null;
957
963
  let syncUnsub = false;
958
964
  let handledResult;
959
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
965
+ innerSub = self.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
960
966
  error: cause => {
961
- handledResult = from_1(f(cause, catchAllCause_1(f)(source)));
967
+ handledResult = from_1(f(cause, catchAllCause_1(f)(self)));
962
968
  if (innerSub) {
963
969
  innerSub.unsubscribe();
964
970
  innerSub = null;
@@ -967,13 +973,13 @@ function catchAllCause_1(f) {
967
973
  syncUnsub = true;
968
974
  }
969
975
  }
970
- }));
976
+ })(subscriber));
971
977
  if (syncUnsub) {
972
978
  innerSub.unsubscribe();
973
979
  innerSub = null;
974
980
  handledResult.provideEnvironment(environment).subscribe(subscriber);
975
981
  }
976
- })(self);
982
+ });
977
983
  };
978
984
  }
979
985
  /**
@@ -987,9 +993,9 @@ function concatAll_1(ffa) {
987
993
  */
988
994
  function concat_1(...sources) {
989
995
  return fa => {
990
- return tsplus_module_8.operate_((source, subscriber, environment) => {
991
- concatAll_1(fromArrayLike([source, ...sources])).provideEnvironment(environment).subscribe(subscriber);
992
- })(fa);
996
+ return new Observable((subscriber, environment) => {
997
+ return concatAll_1(fromArrayLike([fa, ...sources])).provideEnvironment(environment).subscribe(subscriber);
998
+ });
993
999
  };
994
1000
  }
995
1001
  /**
@@ -1026,11 +1032,11 @@ export function combineLatestAll(fa) {
1026
1032
  function zipLatest_1(...sources) {
1027
1033
  return self => {
1028
1034
  if (!sources.length) {
1029
- return from_1(self).unsafeCoerce();
1035
+ return from_1(self);
1030
1036
  }
1031
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1032
- combineLatestInternal(subscriber, environment, [source, ...sources]);
1033
- })(from_1(self));
1037
+ return new Observable((subscriber, environment) => {
1038
+ return combineLatestInternal(subscriber, environment, [self, ...sources]);
1039
+ });
1034
1040
  };
1035
1041
  }
1036
1042
  /**
@@ -1046,8 +1052,8 @@ export function zipWithLatest(that, f) {
1046
1052
  */
1047
1053
  export function debounceWith(durationSelector) {
1048
1054
  return fa => {
1049
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1050
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":1290:40");
1055
+ return new Observable((subscriber, environment) => {
1056
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":1288:40");
1051
1057
  let durationSubscriber = null;
1052
1058
  const emit = () => {
1053
1059
  durationSubscriber?.unsubscribe();
@@ -1056,28 +1062,29 @@ export function debounceWith(durationSelector) {
1056
1062
  const {
1057
1063
  value
1058
1064
  } = lastValue;
1059
- lastValue = tsplus_module_17.nothing(fileName_1 + ":1297:36");
1065
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":1295:36");
1060
1066
  subscriber.next(value);
1061
1067
  }
1062
1068
  };
1063
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1069
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1064
1070
  next: value => {
1065
1071
  durationSubscriber?.unsubscribe();
1066
- lastValue = tsplus_module_17.just(value, fileName_1 + ":1307:40");
1067
- durationSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1072
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":1303:38");
1073
+ durationSubscriber = tsplus_module_8.operate_({
1068
1074
  next: emit,
1069
1075
  complete: tsplus_module_2.noop
1070
- });
1076
+ })(subscriber);
1071
1077
  from_1(durationSelector(value)).provideEnvironment(environment).subscribe(durationSubscriber);
1072
1078
  },
1073
1079
  complete: () => {
1074
1080
  emit();
1075
1081
  subscriber.complete();
1082
+ },
1083
+ finalize: () => {
1084
+ lastValue = durationSubscriber = null;
1076
1085
  }
1077
- }, () => {
1078
- lastValue = durationSubscriber = null;
1079
- }));
1080
- })(fa);
1086
+ })(subscriber));
1087
+ });
1081
1088
  };
1082
1089
  }
1083
1090
  /**
@@ -1085,7 +1092,7 @@ export function debounceWith(durationSelector) {
1085
1092
  */
1086
1093
  export function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1087
1094
  return fa => {
1088
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1095
+ return new Observable((subscriber, environment) => {
1089
1096
  let activeTask = null;
1090
1097
  let lastValue = null;
1091
1098
  let lastTime = null;
@@ -1108,7 +1115,7 @@ export function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1108
1115
  }
1109
1116
  emit();
1110
1117
  }
1111
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1118
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1112
1119
  next: value => {
1113
1120
  lastValue = value;
1114
1121
  lastTime = scheduler.now();
@@ -1120,27 +1127,28 @@ export function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1120
1127
  complete: () => {
1121
1128
  emit();
1122
1129
  subscriber.complete();
1130
+ },
1131
+ finalize: () => {
1132
+ lastValue = activeTask = null;
1123
1133
  }
1124
- }, () => {
1125
- lastValue = activeTask = null;
1126
- }));
1127
- })(fa);
1134
+ })(subscriber));
1135
+ });
1128
1136
  };
1129
1137
  }
1130
1138
  /**
1131
1139
  * @tsplus getter fncts.observable.Observable either
1132
1140
  */
1133
1141
  export function either(fa) {
1134
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1135
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1142
+ return new Observable((subscriber, environment) => {
1143
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1136
1144
  next: value => {
1137
- subscriber.next(tsplus_module_19.right(value, fileName_1 + ":1387:39"));
1145
+ subscriber.next(tsplus_module_19.right(value, fileName_1 + ":1379:39"));
1138
1146
  },
1139
1147
  error: error => {
1140
- tsplus_module_14.match(e => subscriber.next(tsplus_module_19.left(e, fileName_1 + ":1391:47")), cause => subscriber.error(cause))(tsplus_module_1.failureOrCause(error));
1148
+ tsplus_module_14.match(e => subscriber.next(tsplus_module_19.left(e, fileName_1 + ":1383:47")), cause => subscriber.error(cause))(tsplus_module_1.failureOrCause(error));
1141
1149
  }
1142
- }));
1143
- })(fa);
1150
+ })(subscriber));
1151
+ });
1144
1152
  }
1145
1153
  /**
1146
1154
  * @tsplus pipeable fncts.observable.Observable delayWithIndex
@@ -1171,39 +1179,39 @@ export function delay(due, scheduler = tsplus_module_5.asyncScheduler) {
1171
1179
  * @tsplus getter fncts.observable.Observable dematerialize
1172
1180
  */
1173
1181
  export function dematerialize(fa) {
1174
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1175
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1182
+ return new Observable((subscriber, environment) => {
1183
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1176
1184
  next: notification => tsplus_module_20.observe(subscriber)(notification)
1177
- }));
1178
- })(fa);
1185
+ })(subscriber));
1186
+ });
1179
1187
  }
1180
1188
  /**
1181
1189
  * @tsplus pipeable fncts.observable.Observable ensuring
1182
1190
  */
1183
1191
  export function ensuring(finalizer) {
1184
1192
  return fa => {
1185
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1186
- source.provideEnvironment(environment).subscribe(subscriber);
1193
+ return new Observable((subscriber, environment) => {
1187
1194
  subscriber.add(finalizer);
1188
- })(fa);
1195
+ return fa.provideEnvironment(environment).subscribe(subscriber);
1196
+ });
1189
1197
  };
1190
1198
  }
1191
1199
  /**
1192
1200
  * @tsplus getter fncts.observable.Observable exhaustAll
1193
1201
  */
1194
1202
  export function exhaustAll(ffa) {
1195
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1203
+ return new Observable((subscriber, environment) => {
1196
1204
  let isComplete = false;
1197
1205
  let innerSub = null;
1198
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1206
+ return ffa.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1199
1207
  next: inner => {
1200
1208
  if (!innerSub) {
1201
- innerSub = from_1(inner).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1209
+ innerSub = from_1(inner).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1202
1210
  complete: () => {
1203
1211
  innerSub = null;
1204
1212
  isComplete && subscriber.complete();
1205
1213
  }
1206
- }));
1214
+ })(subscriber));
1207
1215
  }
1208
1216
  },
1209
1217
  complete: () => {
@@ -1211,26 +1219,26 @@ export function exhaustAll(ffa) {
1211
1219
  !innerSub && subscriber.complete();
1212
1220
  }
1213
1221
  }));
1214
- })(ffa);
1222
+ });
1215
1223
  }
1216
1224
  /**
1217
1225
  * @tsplus pipeable fncts.observable.Observable exhaustMapWithIndex
1218
1226
  */
1219
1227
  function exhaustMapWithIndex_1(f) {
1220
1228
  return self => {
1221
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1229
+ return new Observable((subscriber, environment) => {
1222
1230
  let index = 0;
1223
1231
  let innerSub = null;
1224
1232
  let isComplete = false;
1225
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1233
+ self.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1226
1234
  next: outerValue => {
1227
1235
  if (!innerSub) {
1228
- innerSub = tsplus_module_8.operatorSubscriber(subscriber, {
1236
+ innerSub = tsplus_module_8.operate_({
1229
1237
  complete: () => {
1230
1238
  innerSub = null;
1231
1239
  isComplete && subscriber.complete();
1232
1240
  }
1233
- });
1241
+ })(subscriber);
1234
1242
  from_1(f(index++, outerValue)).provideEnvironment(environment).subscribe(innerSub);
1235
1243
  }
1236
1244
  },
@@ -1238,8 +1246,8 @@ function exhaustMapWithIndex_1(f) {
1238
1246
  isComplete = true;
1239
1247
  !innerSub && subscriber.complete();
1240
1248
  }
1241
- }));
1242
- })(self);
1249
+ })(subscriber));
1250
+ });
1243
1251
  };
1244
1252
  }
1245
1253
  /**
@@ -1256,7 +1264,9 @@ export function exhaustMap(f) {
1256
1264
  function expandWithIndex_1(f, concurrent = Infinity) {
1257
1265
  return fa => {
1258
1266
  concurrent = (concurrent || 0) < 1 ? Infinity : concurrent;
1259
- return tsplus_module_8.operate_((source, subscriber, environment) => mergeInternal(source, subscriber, environment, f, concurrent, undefined, true))(fa);
1267
+ return new Observable((subscriber, environment) => {
1268
+ return mergeInternal(fa, subscriber, environment, f, concurrent, undefined, true);
1269
+ });
1260
1270
  };
1261
1271
  }
1262
1272
  /**
@@ -1269,7 +1279,7 @@ export function expand(f, concurrent = Infinity) {
1269
1279
  }
1270
1280
  function findWithIndex_1(predicate) {
1271
1281
  return fa => {
1272
- return tsplus_module_8.operate_(findInternal(predicate, "value"))(fa);
1282
+ return new Observable(findInternal(fa, predicate, "value"));
1273
1283
  };
1274
1284
  }
1275
1285
  export function find(predicate) {
@@ -1279,7 +1289,7 @@ export function find(predicate) {
1279
1289
  }
1280
1290
  function findIndexWithIndex_1(predicate) {
1281
1291
  return fa => {
1282
- return tsplus_module_8.operate_(findInternal(predicate, "index"))(fa);
1292
+ return new Observable(findInternal(fa, predicate, "index"));
1283
1293
  };
1284
1294
  }
1285
1295
  export function findIndex(predicate) {
@@ -1292,7 +1302,7 @@ export function forkJoin(...args) {
1292
1302
  args: sources,
1293
1303
  keys
1294
1304
  } = arrayOrObject(args);
1295
- return new Observable(s => {
1305
+ return new Observable((s, environment) => {
1296
1306
  const length = sources.length;
1297
1307
  if (!length) {
1298
1308
  s.complete();
@@ -1303,7 +1313,7 @@ export function forkJoin(...args) {
1303
1313
  let remainingEmissions = length;
1304
1314
  for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {
1305
1315
  let hasValue = false;
1306
- from_1(sources[sourceIndex]).subscribe(tsplus_module_8.operatorSubscriber(s, {
1316
+ from_1(sources[sourceIndex]).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1307
1317
  next: value => {
1308
1318
  if (!hasValue) {
1309
1319
  hasValue = true;
@@ -1323,7 +1333,7 @@ export function forkJoin(...args) {
1323
1333
  s.complete();
1324
1334
  }
1325
1335
  }
1326
- }));
1336
+ })(s));
1327
1337
  }
1328
1338
  });
1329
1339
  }
@@ -1331,18 +1341,18 @@ export function forkJoin(...args) {
1331
1341
  * @tsplus getter fncts.observable.Observable ignore
1332
1342
  */
1333
1343
  export function ignore(fa) {
1334
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1335
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1344
+ return new Observable((subscriber, environment) => {
1345
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1336
1346
  next: tsplus_module_2.noop
1337
- }));
1338
- })(fa);
1347
+ })(subscriber));
1348
+ });
1339
1349
  }
1340
1350
  /**
1341
1351
  * @tsplus getter fncts.observable.Observable isEmpty
1342
1352
  */
1343
1353
  export function isEmpty(fa) {
1344
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1345
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1354
+ return new Observable((subscriber, environment) => {
1355
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1346
1356
  next: () => {
1347
1357
  subscriber.next(false);
1348
1358
  subscriber.complete();
@@ -1351,15 +1361,15 @@ export function isEmpty(fa) {
1351
1361
  subscriber.next(true);
1352
1362
  subscriber.complete();
1353
1363
  }
1354
- }));
1355
- })(fa);
1364
+ })(subscriber));
1365
+ });
1356
1366
  }
1357
1367
  /**
1358
1368
  * @tsplus getter fncts.observable.Observable materialize
1359
1369
  */
1360
1370
  export function materialize(fa) {
1361
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1362
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1371
+ return new Observable((subscriber, environment) => {
1372
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1363
1373
  next: value => {
1364
1374
  subscriber.next(tsplus_module_20.next(value));
1365
1375
  },
@@ -1369,8 +1379,8 @@ export function materialize(fa) {
1369
1379
  complete: () => {
1370
1380
  subscriber.next(tsplus_module_20.complete());
1371
1381
  }
1372
- }));
1373
- })(fa);
1382
+ })(subscriber));
1383
+ });
1374
1384
  }
1375
1385
  /**
1376
1386
  * @tsplus pipeable fncts.observable.Observable mergeAll
@@ -1385,12 +1395,12 @@ function mergeAll_1(concurrent = Infinity) {
1385
1395
  */
1386
1396
  function mergeScanWithIndex_1(initial, f, concurrent = Infinity) {
1387
1397
  return fa => {
1388
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1398
+ return new Observable((subscriber, environment) => {
1389
1399
  let state = initial;
1390
- return mergeInternal(source, subscriber, environment, (index, value) => f(index, state, value), concurrent, value => {
1400
+ return mergeInternal(fa, subscriber, environment, (index, value) => f(index, state, value), concurrent, value => {
1391
1401
  state = value;
1392
1402
  }, false, undefined, () => state = null);
1393
- })(fa);
1403
+ });
1394
1404
  };
1395
1405
  }
1396
1406
  /**
@@ -1402,10 +1412,10 @@ export function mergeScan(initial, f, concurrent = Infinity) {
1402
1412
  };
1403
1413
  }
1404
1414
  export function onErrorResumeNext(fa, ...sources) {
1405
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1406
- const remaining = [source, ...sources];
1415
+ return new Observable((subscriber, environment) => {
1416
+ const remaining = [fa, ...sources];
1407
1417
  const subscribeNext = () => {
1408
- if (!subscriber.closed) {
1418
+ if (!subscriber._closed) {
1409
1419
  if (remaining.length > 0) {
1410
1420
  let nextSource;
1411
1421
  try {
@@ -1414,10 +1424,10 @@ export function onErrorResumeNext(fa, ...sources) {
1414
1424
  subscribeNext();
1415
1425
  return;
1416
1426
  }
1417
- const innerSub = tsplus_module_8.operatorSubscriber(subscriber, {
1427
+ const innerSub = tsplus_module_8.operate_({
1418
1428
  error: tsplus_module_2.noop,
1419
1429
  complete: tsplus_module_2.noop
1420
- });
1430
+ })(subscriber);
1421
1431
  subscriber.add(nextSource.provideEnvironment(environment).subscribe(innerSub));
1422
1432
  innerSub.add(subscribeNext);
1423
1433
  } else {
@@ -1426,16 +1436,16 @@ export function onErrorResumeNext(fa, ...sources) {
1426
1436
  }
1427
1437
  };
1428
1438
  subscribeNext();
1429
- })(fa);
1439
+ });
1430
1440
  }
1431
1441
  /**
1432
1442
  * @tsplus pipeable fncts.observable.Observable onEmpty
1433
1443
  */
1434
1444
  function onEmpty_1(f) {
1435
1445
  return fa => {
1436
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1446
+ return new Observable((subscriber, environment) => {
1437
1447
  let hasValue = false;
1438
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1448
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1439
1449
  next: value => {
1440
1450
  hasValue = true;
1441
1451
  subscriber.next(value);
@@ -1446,8 +1456,8 @@ function onEmpty_1(f) {
1446
1456
  }
1447
1457
  subscriber.complete();
1448
1458
  }
1449
- }));
1450
- })(fa);
1459
+ })(subscriber));
1460
+ });
1451
1461
  };
1452
1462
  }
1453
1463
  /**
@@ -1455,12 +1465,12 @@ function onEmpty_1(f) {
1455
1465
  */
1456
1466
  export function repeat(count = Infinity) {
1457
1467
  return fa => {
1458
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, subscriber, environment) => {
1468
+ return count <= 0 ? empty_1() : new Observable((subscriber, environment) => {
1459
1469
  let repeats = 0;
1460
1470
  let innerSub;
1461
1471
  const loop = () => {
1462
1472
  let syncUnsub = false;
1463
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1473
+ innerSub = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1464
1474
  complete: () => {
1465
1475
  if (++repeats < count) {
1466
1476
  if (innerSub) {
@@ -1474,7 +1484,7 @@ export function repeat(count = Infinity) {
1474
1484
  subscriber.complete;
1475
1485
  }
1476
1486
  }
1477
- }));
1487
+ })(subscriber));
1478
1488
  if (syncUnsub) {
1479
1489
  innerSub.unsubscribe();
1480
1490
  innerSub = null;
@@ -1482,7 +1492,7 @@ export function repeat(count = Infinity) {
1482
1492
  }
1483
1493
  };
1484
1494
  loop();
1485
- })(fa);
1495
+ });
1486
1496
  };
1487
1497
  }
1488
1498
  export function retry(configOrCount = Infinity) {
@@ -1499,12 +1509,12 @@ export function retry(configOrCount = Infinity) {
1499
1509
  count,
1500
1510
  resetOnSuccess = false
1501
1511
  } = config;
1502
- return count <= 0 ? fa : tsplus_module_8.operate_((source, subscriber, environment) => {
1512
+ return count <= 0 ? fa : new Observable((subscriber, environment) => {
1503
1513
  let retries = 0;
1504
1514
  let innerSub;
1505
1515
  const loop = () => {
1506
1516
  let syncUnsub = false;
1507
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1517
+ innerSub = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1508
1518
  next: value => {
1509
1519
  if (resetOnSuccess) {
1510
1520
  retries = 0;
@@ -1524,7 +1534,7 @@ export function retry(configOrCount = Infinity) {
1524
1534
  subscriber.error(err);
1525
1535
  }
1526
1536
  }
1527
- }));
1537
+ })(subscriber));
1528
1538
  if (syncUnsub) {
1529
1539
  innerSub.unsubscribe();
1530
1540
  innerSub = null;
@@ -1532,7 +1542,7 @@ export function retry(configOrCount = Infinity) {
1532
1542
  }
1533
1543
  };
1534
1544
  loop();
1535
- })(fa);
1545
+ });
1536
1546
  };
1537
1547
  }
1538
1548
  /**
@@ -1540,15 +1550,15 @@ export function retry(configOrCount = Infinity) {
1540
1550
  */
1541
1551
  function sample_1(notifier) {
1542
1552
  return fa => {
1543
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1553
+ return new Observable((subscriber, environment) => {
1544
1554
  let hasValue = false;
1545
1555
  let lastValue = null;
1546
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1556
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1547
1557
  next: value => {
1548
1558
  hasValue = true;
1549
1559
  lastValue = value;
1550
1560
  }
1551
- }));
1561
+ })(subscriber));
1552
1562
  const emit = () => {
1553
1563
  if (hasValue) {
1554
1564
  hasValue = false;
@@ -1557,11 +1567,11 @@ function sample_1(notifier) {
1557
1567
  subscriber.next(value);
1558
1568
  }
1559
1569
  };
1560
- notifier.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1570
+ notifier.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1561
1571
  next: emit,
1562
1572
  complete: tsplus_module_2.noop
1563
- }));
1564
- })(fa);
1573
+ })(subscriber));
1574
+ });
1565
1575
  };
1566
1576
  }
1567
1577
  /**
@@ -1577,7 +1587,7 @@ export function sampleTime(period, scheduler = tsplus_module_5.asyncScheduler) {
1577
1587
  */
1578
1588
  function scanLeftWithIndex_1(initial, f) {
1579
1589
  return fa => {
1580
- return tsplus_module_8.operate_(scanInternal(f, initial, true, true))(fa);
1590
+ return new Observable((subscriber, environment) => scanInternal(fa, subscriber, environment, f, initial, true, true));
1581
1591
  };
1582
1592
  }
1583
1593
  /**
@@ -1591,7 +1601,7 @@ export function scanLeft(initial, f) {
1591
1601
  /**
1592
1602
  * @tsplus static fncts.observable.ObservableOps service
1593
1603
  */
1594
- export function service( /** @tsplus auto */tag) {
1604
+ export function service(/** @tsplus auto */tag) {
1595
1605
  return serviceWithObservable_1(service => of_1(service), tag);
1596
1606
  }
1597
1607
  /**
@@ -1619,10 +1629,10 @@ export function skip(count) {
1619
1629
  */
1620
1630
  export function skipLast(skipCount) {
1621
1631
  return fa => {
1622
- return skipCount <= 0 ? fa : tsplus_module_8.operate_((source, subscriber, environment) => {
1632
+ return skipCount <= 0 ? fa : new Observable((subscriber, environment) => {
1623
1633
  let ring = new Array(skipCount);
1624
1634
  let seen = 0;
1625
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1635
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1626
1636
  next: value => {
1627
1637
  const valueIndex = seen++;
1628
1638
  if (valueIndex < skipCount) {
@@ -1634,11 +1644,11 @@ export function skipLast(skipCount) {
1634
1644
  subscriber.next(oldValue);
1635
1645
  }
1636
1646
  }
1637
- }));
1647
+ })(subscriber));
1638
1648
  return () => {
1639
1649
  ring = null;
1640
1650
  };
1641
- })(fa);
1651
+ });
1642
1652
  };
1643
1653
  }
1644
1654
  /**
@@ -1646,20 +1656,20 @@ export function skipLast(skipCount) {
1646
1656
  */
1647
1657
  export function skipUntil(notifier) {
1648
1658
  return fa => {
1649
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1659
+ return new Observable((subscriber, environment) => {
1650
1660
  let taking = false;
1651
- const skipSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1661
+ const skipSubscriber = tsplus_module_8.operate_({
1652
1662
  next: () => {
1653
1663
  skipSubscriber?.unsubscribe();
1654
1664
  taking = true;
1655
1665
  },
1656
1666
  complete: tsplus_module_2.noop
1657
- });
1667
+ })(subscriber);
1658
1668
  from_1(notifier).provideEnvironment(environment).subscribe(skipSubscriber);
1659
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1669
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1660
1670
  next: value => taking && subscriber.next(value)
1661
- }));
1662
- })(fa);
1671
+ })(subscriber));
1672
+ });
1663
1673
  };
1664
1674
  }
1665
1675
  /**
@@ -1667,13 +1677,13 @@ export function skipUntil(notifier) {
1667
1677
  */
1668
1678
  export function skipWhile(predicate) {
1669
1679
  return fa => {
1670
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1680
+ return new Observable((subscriber, environment) => {
1671
1681
  let taking = false;
1672
1682
  let index = 0;
1673
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1683
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1674
1684
  next: value => (taking || (taking = !predicate(index++, value))) && subscriber.next(value)
1675
- }));
1676
- })(fa);
1685
+ })(subscriber));
1686
+ });
1677
1687
  };
1678
1688
  }
1679
1689
  /**
@@ -1681,10 +1691,10 @@ export function skipWhile(predicate) {
1681
1691
  */
1682
1692
  export function startWith(...values) {
1683
1693
  return fa => {
1684
- return tsplus_module_8.operate_((source, subscriber) => {
1694
+ return new Observable((subscriber, environment) => {
1685
1695
  // @ts-expect-error
1686
- concat_1(values)(source).subscribe(subscriber);
1687
- })(fa);
1696
+ return concat_1(values)(fa).provideEnvironment(environment).subscribe(subscriber);
1697
+ });
1688
1698
  };
1689
1699
  }
1690
1700
  /**
@@ -1692,9 +1702,9 @@ export function startWith(...values) {
1692
1702
  */
1693
1703
  export function subscribeOn(scheduler, delay = 0) {
1694
1704
  return fa => {
1695
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1696
- subscriber.add(scheduler.schedule(() => source.provideEnvironment(environment).subscribe(subscriber), delay));
1697
- })(fa);
1705
+ return new Observable((subscriber, environment) => {
1706
+ subscriber.add(scheduler.schedule(() => fa.provideEnvironment(environment).subscribe(subscriber), delay));
1707
+ });
1698
1708
  };
1699
1709
  }
1700
1710
  /**
@@ -1708,28 +1718,29 @@ export function switchAll(ffa) {
1708
1718
  */
1709
1719
  function switchMapWithIndex_1(f) {
1710
1720
  return fa => {
1711
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1721
+ return new Observable((destination, environment) => {
1712
1722
  let innerSubscriber = null;
1713
1723
  let index = 0;
1714
1724
  let isComplete = false;
1715
- const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();
1716
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1725
+ const checkComplete = () => isComplete && !innerSubscriber && destination.complete();
1726
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1717
1727
  next: value => {
1718
1728
  innerSubscriber?.unsubscribe();
1719
1729
  const outerIndex = index++;
1720
- from_1(f(outerIndex, value)).provideEnvironment(environment).subscribe(innerSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1721
- next: innerValue => subscriber.next(innerValue),
1730
+ from_1(f(outerIndex, value)).provideEnvironment(environment).subscribe(innerSubscriber = tsplus_module_8.operate_({
1731
+ next: innerValue => destination.next(innerValue),
1722
1732
  complete: () => {
1723
1733
  innerSubscriber = null;
1724
1734
  checkComplete();
1725
1735
  }
1726
- }));
1736
+ })(destination));
1737
+ },
1738
+ complete: () => {
1739
+ isComplete = true;
1740
+ checkComplete();
1727
1741
  }
1728
- }, () => {
1729
- isComplete = true;
1730
- checkComplete();
1731
- }));
1732
- })(fa);
1742
+ })(destination));
1743
+ });
1733
1744
  };
1734
1745
  }
1735
1746
  /**
@@ -1745,13 +1756,13 @@ function switchMap_1(f) {
1745
1756
  */
1746
1757
  function switchScanWithIndex_1(initial, f) {
1747
1758
  return fa => {
1748
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1759
+ return new Observable((subscriber, environment) => {
1749
1760
  let state = initial;
1750
- switchMapWithIndex_1((index, value) => map_1(b => (state = b, b))(from_1(f(index, state, value))))(source).provideEnvironment(environment).subscribe(subscriber);
1761
+ switchMapWithIndex_1((index, value) => map_1(b => (state = b, b))(from_1(f(index, state, value))))(fa).provideEnvironment(environment).subscribe(subscriber);
1751
1762
  return () => {
1752
1763
  state = null;
1753
1764
  };
1754
- })(fa);
1765
+ });
1755
1766
  };
1756
1767
  }
1757
1768
  /**
@@ -1767,9 +1778,9 @@ export function switchScan(initial, f) {
1767
1778
  */
1768
1779
  function take_1(count) {
1769
1780
  return fa => {
1770
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, sub, environment) => {
1781
+ return count <= 0 ? empty_1() : new Observable((sub, environment) => {
1771
1782
  let seen = 0;
1772
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(sub, {
1783
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1773
1784
  next: value => {
1774
1785
  if (++seen <= count) {
1775
1786
  sub.next(value);
@@ -1778,8 +1789,8 @@ function take_1(count) {
1778
1789
  }
1779
1790
  }
1780
1791
  }
1781
- }));
1782
- })(fa);
1792
+ })(sub));
1793
+ });
1783
1794
  };
1784
1795
  }
1785
1796
  /**
@@ -1787,9 +1798,9 @@ function take_1(count) {
1787
1798
  */
1788
1799
  export function takeLast(count) {
1789
1800
  return fa => {
1790
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, subscriber, environment) => {
1801
+ return count <= 0 ? empty_1() : new Observable((subscriber, environment) => {
1791
1802
  let buffer = [];
1792
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1803
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1793
1804
  next: value => {
1794
1805
  buffer.push(value);
1795
1806
  count < buffer.length && buffer.shift();
@@ -1799,11 +1810,12 @@ export function takeLast(count) {
1799
1810
  subscriber.next(value);
1800
1811
  }
1801
1812
  subscriber.complete();
1813
+ },
1814
+ finalize: () => {
1815
+ buffer = null;
1802
1816
  }
1803
- }, () => {
1804
- buffer = null;
1805
- }));
1806
- })(fa);
1817
+ })(subscriber));
1818
+ });
1807
1819
  };
1808
1820
  }
1809
1821
  /**
@@ -1811,27 +1823,27 @@ export function takeLast(count) {
1811
1823
  */
1812
1824
  export function takeUntil(notifier) {
1813
1825
  return fa => {
1814
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1815
- from_1(notifier).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1826
+ return new Observable((subscriber, environment) => {
1827
+ from_1(notifier).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1816
1828
  next: () => subscriber.complete(),
1817
1829
  complete: tsplus_module_2.noop
1818
- }));
1819
- !subscriber.closed && source.provideEnvironment(environment).subscribe(subscriber);
1820
- })(fa);
1830
+ })(subscriber));
1831
+ !subscriber._closed && fa.provideEnvironment(environment).subscribe(subscriber);
1832
+ });
1821
1833
  };
1822
1834
  }
1823
1835
  function takeWhileWithIndex_1(predicate, inclusive) {
1824
1836
  return fa => {
1825
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1837
+ return new Observable((subscriber, environment) => {
1826
1838
  let index = 0;
1827
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1839
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1828
1840
  next: value => {
1829
1841
  const result = predicate(index++, value);
1830
1842
  (result || inclusive) && subscriber.next(value);
1831
1843
  !result && subscriber.complete();
1832
1844
  }
1833
- }));
1834
- })(fa);
1845
+ })(subscriber));
1846
+ });
1835
1847
  };
1836
1848
  }
1837
1849
  export function takeWhile(predicate, inclusive) {
@@ -1844,8 +1856,8 @@ export function takeWhile(predicate, inclusive) {
1844
1856
  */
1845
1857
  export function tap(observer) {
1846
1858
  return fa => {
1847
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1848
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1859
+ return new Observable((subscriber, environment) => {
1860
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1849
1861
  next: value => {
1850
1862
  observer.next?.(value);
1851
1863
  subscriber.next(value);
@@ -1858,8 +1870,8 @@ export function tap(observer) {
1858
1870
  observer.complete?.();
1859
1871
  subscriber.complete();
1860
1872
  }
1861
- }));
1862
- })(fa);
1873
+ })(subscriber));
1874
+ });
1863
1875
  };
1864
1876
  }
1865
1877
  export const defaultThrottleConfig = {
@@ -1874,8 +1886,8 @@ function throttle_1(durationSelector, {
1874
1886
  trailing
1875
1887
  } = defaultThrottleConfig) {
1876
1888
  return fa => {
1877
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1878
- let sendValue = tsplus_module_17.nothing(fileName_1 + ":2375:51");
1889
+ return new Observable((subscriber, environment) => {
1890
+ let sendValue = tsplus_module_17.nothing(fileName_1 + ":2363:51");
1879
1891
  let throttled = null;
1880
1892
  let isComplete = false;
1881
1893
  const endThrottling = () => {
@@ -1890,31 +1902,31 @@ function throttle_1(durationSelector, {
1890
1902
  throttled = null;
1891
1903
  isComplete && subscriber.complete();
1892
1904
  };
1893
- const startThrottling = value => throttled = from_1(durationSelector(value)).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1905
+ const startThrottling = value => throttled = from_1(durationSelector(value)).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1894
1906
  next: endThrottling,
1895
1907
  complete: cleanupThrottling
1896
- }));
1908
+ })(subscriber));
1897
1909
  const send = () => {
1898
1910
  if (tsplus_module_18.isJust(sendValue)) {
1899
1911
  const {
1900
1912
  value
1901
1913
  } = sendValue;
1902
- sendValue = tsplus_module_17.nothing(fileName_1 + ":2397:36");
1914
+ sendValue = tsplus_module_17.nothing(fileName_1 + ":2385:36");
1903
1915
  subscriber.next(value);
1904
1916
  !isComplete && startThrottling(value);
1905
1917
  }
1906
1918
  };
1907
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1919
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1908
1920
  next: value => {
1909
- sendValue = tsplus_module_17.just(value, fileName_1 + ":2405:29");
1910
- !(throttled && !throttled.closed) && (leading ? send() : startThrottling(value));
1921
+ sendValue = tsplus_module_17.just(value, fileName_1 + ":2393:29");
1922
+ !(throttled && !throttled._closed) && (leading ? send() : startThrottling(value));
1911
1923
  },
1912
1924
  complete: () => {
1913
1925
  isComplete = true;
1914
- !(trailing && tsplus_module_18.isJust(sendValue) && throttled && !throttled.closed) && subscriber.complete();
1926
+ !(trailing && tsplus_module_18.isJust(sendValue) && throttled && !throttled._closed) && subscriber.complete();
1915
1927
  }
1916
- }));
1917
- })(fa);
1928
+ })(subscriber));
1929
+ });
1918
1930
  };
1919
1931
  }
1920
1932
  /**
@@ -1942,11 +1954,11 @@ export function timeout(config) {
1942
1954
  scheduler = tsplus_module_5.asyncScheduler,
1943
1955
  meta = null
1944
1956
  } = config;
1945
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1957
+ return new Observable((subscriber, environment) => {
1946
1958
  // eslint-disable-next-line prefer-const
1947
1959
  let originalSourceSubscription;
1948
1960
  let timerSubscription;
1949
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":2486:40");
1961
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":2474:40");
1950
1962
  let seen = 0;
1951
1963
  const startTimer = delay => {
1952
1964
  timerSubscription = caughtSchedule(subscriber, scheduler, () => {
@@ -1958,22 +1970,23 @@ export function timeout(config) {
1958
1970
  })).provideEnvironment(environment).subscribe(subscriber);
1959
1971
  }, delay);
1960
1972
  };
1961
- originalSourceSubscription = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1973
+ originalSourceSubscription = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1962
1974
  next: value => {
1963
1975
  timerSubscription?.unsubscribe();
1964
1976
  seen++;
1965
- lastValue = tsplus_module_17.just(value, fileName_1 + ":2514:31");
1977
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":2500:29");
1966
1978
  subscriber.next(value);
1967
1979
  each > 0 && startTimer(each);
1980
+ },
1981
+ finalize: () => {
1982
+ if (!timerSubscription?._closed) {
1983
+ timerSubscription?.unsubscribe();
1984
+ }
1985
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":2508:32");
1968
1986
  }
1969
- }, () => {
1970
- if (!timerSubscription?.closed) {
1971
- timerSubscription?.unsubscribe();
1972
- }
1973
- lastValue = tsplus_module_17.nothing(fileName_1 + ":2523:32");
1974
- }));
1987
+ })(subscriber));
1975
1988
  startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each);
1976
- })(fa);
1989
+ });
1977
1990
  };
1978
1991
  }
1979
1992
  function timeoutError(info) {
@@ -1986,18 +1999,18 @@ function toArrayAccumulator(arr, value) {
1986
1999
  * @tsplus getter fncts.observable.Observable toArray
1987
2000
  */
1988
2001
  function toArray_1(fa) {
1989
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1990
- foldLeft_1([], toArrayAccumulator)(source).provideEnvironment(environment).subscribe(subscriber);
1991
- })(fa);
2002
+ return new Observable((subscriber, environment) => {
2003
+ foldLeft_1([], toArrayAccumulator)(fa).provideEnvironment(environment).subscribe(subscriber);
2004
+ });
1992
2005
  }
1993
2006
  /**
1994
2007
  * @tsplus pipeable fncts.observable.Observable unique
1995
2008
  */
1996
2009
  export function unique(toKey, flushes) {
1997
2010
  return fa => {
1998
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2011
+ return new Observable((subscriber, environment) => {
1999
2012
  let distinctKeys = tsplus_module_21.empty();
2000
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2013
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2001
2014
  next: value => {
2002
2015
  const key = toKey ? toKey(value) : value;
2003
2016
  if (!tsplus_module_21.has(key)(distinctKeys)) {
@@ -2005,21 +2018,21 @@ export function unique(toKey, flushes) {
2005
2018
  subscriber.next(value);
2006
2019
  }
2007
2020
  }
2008
- }));
2009
- flushes?.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2021
+ })(subscriber));
2022
+ flushes?.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2010
2023
  next: () => distinctKeys = tsplus_module_21.empty(),
2011
2024
  complete: tsplus_module_2.noop
2012
- }));
2013
- })(fa);
2025
+ })(subscriber));
2026
+ });
2014
2027
  };
2015
2028
  }
2016
2029
  function uniqueUntilChanged_1(E, keySelector = tsplus_module_13.identity) {
2017
2030
  return fa => {
2018
2031
  const compare = "equals" in E ? E.equals : E;
2019
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2032
+ return new Observable((subscriber, environment) => {
2020
2033
  let previousKey;
2021
2034
  let first = true;
2022
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2035
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2023
2036
  next: value => {
2024
2037
  const currentKey = keySelector(value);
2025
2038
  if (first || !compare(previousKey, currentKey)) {
@@ -2028,8 +2041,8 @@ function uniqueUntilChanged_1(E, keySelector = tsplus_module_13.identity) {
2028
2041
  subscriber.next(value);
2029
2042
  }
2030
2043
  }
2031
- }));
2032
- })(fa);
2044
+ })(subscriber));
2045
+ });
2033
2046
  };
2034
2047
  }
2035
2048
  export function uniqueUntilKeyChanged(key, equals) {
@@ -2051,7 +2064,7 @@ function combineLatestInternal(subscriber, environment, observables, scheduler,
2051
2064
  maybeSchedule(subscriber, scheduler, () => {
2052
2065
  const source = scheduler ? scheduled_1(scheduler)(observables[i]) : from_1(observables[i]);
2053
2066
  let hasFirstValue = false;
2054
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2067
+ source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2055
2068
  next: value => {
2056
2069
  values[i] = value;
2057
2070
  if (!hasFirstValue) {
@@ -2067,28 +2080,28 @@ function combineLatestInternal(subscriber, environment, observables, scheduler,
2067
2080
  subscriber.complete();
2068
2081
  }
2069
2082
  }
2070
- }));
2083
+ })(subscriber));
2071
2084
  });
2072
2085
  }
2073
2086
  });
2074
2087
  }
2075
- function findInternal(predicate, emit) {
2088
+ function findInternal(source, predicate, emit) {
2076
2089
  const findIndex = emit === "index";
2077
- return (source, subscriber, environment) => {
2090
+ return (subscriber, environment) => {
2078
2091
  let index = 0;
2079
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2092
+ source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2080
2093
  next: value => {
2081
2094
  const i = index++;
2082
2095
  if (predicate(index++, value)) {
2083
- subscriber.next(findIndex ? i : tsplus_module_17.just(value, fileName_1 + ":2693:49"));
2096
+ subscriber.next(findIndex ? i : tsplus_module_17.just(value, fileName_1 + ":2678:49"));
2084
2097
  subscriber.complete();
2085
2098
  }
2086
2099
  },
2087
2100
  complete: () => {
2088
- subscriber.next(findIndex ? -1 : tsplus_module_17.nothing(fileName_1 + ":2698:51"));
2101
+ subscriber.next(findIndex ? -1 : tsplus_module_17.nothing(fileName_1 + ":2683:51"));
2089
2102
  subscriber.complete();
2090
2103
  }
2091
- }));
2104
+ })(subscriber));
2092
2105
  };
2093
2106
  }
2094
2107
  export function joinAllInternal(fa, joiner) {
@@ -2154,22 +2167,20 @@ function mergeInternal(source, subscriber, environment, f, concurrent, onBeforeN
2154
2167
  additionalTeardown?.();
2155
2168
  };
2156
2169
  }
2157
- export function scanInternal(f, initial, hasInitial, emitOnNext, emitBeforeComplete) {
2158
- return (source, subscriber, environment) => {
2159
- let hasState = hasInitial;
2160
- let state = initial;
2161
- let index = 0;
2162
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2163
- next: value => {
2164
- const i = index++;
2165
- state = hasState ? f(i, state, value) : (hasState = true, value);
2166
- emitOnNext && subscriber.next(state);
2167
- },
2168
- complete: emitBeforeComplete && (() => {
2169
- hasState && subscriber.next(state);
2170
- subscriber.complete();
2171
- })
2172
- }));
2173
- };
2170
+ export function scanInternal(source, subscriber, environment, f, initial, hasInitial, emitOnNext, emitBeforeComplete) {
2171
+ let hasState = hasInitial;
2172
+ let state = initial;
2173
+ let index = 0;
2174
+ return source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2175
+ next: value => {
2176
+ const i = index++;
2177
+ state = hasState ? f(i, state, value) : (hasState = true, value);
2178
+ emitOnNext && subscriber.next(state);
2179
+ },
2180
+ complete: emitBeforeComplete && (() => {
2181
+ hasState && subscriber.next(state);
2182
+ subscriber.complete();
2183
+ })
2184
+ })(subscriber));
2174
2185
  }
2175
2186
  //# sourceMappingURL=api.mjs.map